Table - Tableau

Le tableau permet de présenter une liste structurée de données textuelles et/ou numériques.

Component checklist

Statut

Fonctionnel

Code source

Storybook

Dernière version de modification

2.19.0

Disponible depuis la version

1.8.0

Usage

Structure

Notre composant dsa-table reprend la même spécification que l'élément HTML table. Ainsi, nous avons développé des sous composants venant structurer celui-ci, listés ici:

  • dsa-table-head: définit un groupe de lignes d'en-tête d'un tableau (équivalent à <thead>).
  • dsa-table-header-row: définit une ligne d'en-tête d'un tableau (équivalent à <tr> dans <thead>).
  • dsa-table-header-cell: définit une cellule d'en-tête d'un tableau (équivalent à <th>).
  • dsa-table-body: définit un groupe de lignes de corps d'un tableau (équivalent à <tbody>).
  • dsa-table-row: définit une ligne de corps d'un tableau (équivalent à <tr> dans <tbody>)
  • dsa-table-cell: définit une cellule de corps d'un tableau (équivalent à <td>).
  • dsa-table-single-cell-row: définit une cellule de corps d'un tableau prenant toute la largeur d’une ligne. Ce composant est à la fois une ligne et une cellule, il est donc à placer dans dsa-table-body .

Exemple d'intégration d'un tableau sur différents framework:

  • app.component.html

                                                                                                                                                        
                                                                                                                                                        
                                                                                                                                                            <dsa-table>
                                                                                                                                                          <dsa-table-head>
                                                                                                                                                            <dsa-table-header-row>
                                                                                                                                                              <dsa-table-header-cell>Nom</dsa-table-header-cell>
                                                                                                                                                              <dsa-table-header-cell>Prénom</dsa-table-header-cell>
                                                                                                                                                            </dsa-table-header-row>  
                                                                                                                                                          </dsa-table-head>
                                                                                                                                                          <dsa-table-body>
                                                                                                                                                            <dsa-table-row>
                                                                                                                                                              <dsa-table-cell>Ocon</dsa-table-cell>
                                                                                                                                                              <dsa-table-cell>Esteban</dsa-table-cell>
                                                                                                                                                            </dsa-table-row>
                                                                                                                                                          </dsa-table-body>
                                                                                                                                                        </dsa-table>    
                                                                                                                                                        
                                                                                                                                                            
  • app.component.ts

                                                                                                                                                        
                                                                                                                                                        
                                                                                                                                                            import {
                                                                                                                                                          DSATable,
                                                                                                                                                          DSATableHead,
                                                                                                                                                          DSATableHeaderRow,
                                                                                                                                                          DSATableHeaderCell,
                                                                                                                                                          DSATableBody,
                                                                                                                                                          DSATableRow,
                                                                                                                                                          DSATableCell,
                                                                                                                                                        } from '@ds-autonomie/web-components';
                                                                                                                                                        import '@ds-autonomie/web-components/dist/components/table/table.js';
                                                                                                                                                        import '@ds-autonomie/web-components/dist/components/table-head/table-head.js';
                                                                                                                                                        import '@ds-autonomie/web-components/dist/components/table-header-row/table-header-row.js';
                                                                                                                                                        import '@ds-autonomie/web-components/dist/components/table-header-cell/table-header-cell.js';
                                                                                                                                                        import '@ds-autonomie/web-components/dist/components/table-body/table-body.js';
                                                                                                                                                        import '@ds-autonomie/web-components/dist/components/table-row/table-row.js';
                                                                                                                                                        import '@ds-autonomie/web-components/dist/components/table-cell/table-cell.js';
                                                                                                                                                        
                                                                                                                                                        @Component({
                                                                                                                                                          selector: 'app-root',
                                                                                                                                                          templateUrl: './app.component.html',
                                                                                                                                                          styleUrls: ['./app.component.css']
                                                                                                                                                        })
                                                                                                                                                        export class AppComponent {}           
                                                                                                                                                        
                                                                                                                                                        
                                                                                                                                                            

 


API

dsa-table

Attributs et propriétés

Propriété

attribut

Description

Type

Valeur par défaut

alignment

Utilisée pour aligner le contenu des cellules du tableau.

left right

left

expandable

Permet au tableau de contenir des lignes extensibles. Veuillez ajouter des éléments dsa-table-expanded-row en-dessous de chaque dsa-table-row afin d'afficher ces lignes extensibles.

boolean

false

reorderable

Permet aux lignes du tableau d'être réordonnables par glisser-déposer ou au clavier.

boolean

false

role

 

Identifie le rôle du tableau. Il est recommandé de ne pas modifier cette propriété.

string

table

size

La taille des éléments du tableau.

small medium large

medium

selectable

Permet aux lignes du tableau d'être sélectionnables.

boolean

false

sortable

Active la fonctionnalité de tri sur toutes les colonnes du tableau.

boolean

false

Méthodes

Slots

Nom

Description

(défaut)

Le contenu principale du dsa-table. Nous vous conseillons fortement d'utiliser les sous-composants développés pour cette occasion.

Événements

Nom

Description

dsa-table-row-all-selected

{{ selectedRows : DSATableRow[] }}
- Émis après que toutes les lignes ont été sélectionnées.

dsa-table-row-selected

{{ selectedRow : DSATableRow, selectedRows : DSATableRow[] }}

- Émis après la sélection d'une ligne.

dsa-table-row-reordered

{{ movedRow : DSATableRow, oldIndex : number, newIndex : number, rows : DSATableRow[], source : 'keyboard' | 'pointer' }} - Émis après qu'une ligne a été réordonnée.

dsa-table-head

Attributs et propriétés

Propriété

attribut

Description

Type

Valeur par défaut

loading

Affiche un état de chargement. Héritée du parent dsa-table-container le cas échéant. Cet état sera appliqué aux composants enfants dsa-table-header-row et dsa-table-header-cell.

boolean

false

role

Identifie le rôle du table-head. Il est recommandé de ne pas modifier cette propriété.

string

rowgroup

skeletonEffect

skeleton-effect

Désigne quel effet le squelette utilisera. Héritée du parent dsa-table-container le cas échéant. Cet état sera appliqué aux composants enfants dsa-table-header-row et dsa-table-header-cell.

pulse sheen none

none

Méthodes

Slots

Nom

Description

(défaut)

Le contenu principale du dsa-table-head. Nous vous conseillons fortement d'utiliser les sous-composants développés pour cette occasion.

Événements

dsa-table-body

Attributs et propriétés

Propriété

attribut

Description

Type

Valeur par défaut

loading

Affiche un état de chargement. Héritée du parent dsa-table-container le cas échéant. Cet état sera appliqué aux composants enfants dsa-table-row et dsa-table-cell.

 

boolean

false

role

 

Identifie le rôle du table-body. Il est recommandé de ne pas modifier cette propriété.

string

rowgroup

skeletonEffect skeleton-effect

Désigne quel effet le squelette utilisera. Héritée du parent dsa-table-container le cas échéant. Cet état sera appliqué aux composants enfants dsa-table-row et dsa-table-cell.

 

pulse sheen none

 

'none'

Méthodes

Slots

Nom

Description

(défaut)

Le contenu principal du dsa-table-body. Nous vous conseillons fortement d'utiliser les sous-composants développés pour cette occasion.

Événements

dsa-table-header-row

Attributs et propriétés

Propriété

attribut

Description

Type

Valeur par défaut

loading

Affiche un état de chargement (désactive les actions sur la ligne). Héritée du parent dsa-table-head.

boolean

false

role

 

Identifie le rôle du table-header-row. Il est recommandé de ne pas modifier cette propriété.

string

row

selected

Indique visuellement que l'élément est sélectionné.

boolean

false

selectionLabel selection-label

L'attribut aria-label pour la <checkbox> à sélectionner.

string

''

selectionName selection-name

L'attribut name pour la <checkbox> à sélectionner. S'il est présent, cette ligne du tableau pourra être sélectionnée.

string

''

selectionValue selection-value

L'attribut value pour la <checkbox> à sélectionner.

string

''

Méthodes

Slots

Nom

Description

(défaut)

Le contenu principal du dsa-table-header-row. Nous vous conseillons fortement d'utiliser les sous-composants développés pour cette occasion.

Événements

Nom

Description

dsa-table-row-all-change-selection

Émis lorsque toutes les lignes sont sélectionnées ou désélectionnées à la suite d'une interaction avec la case à cocher.

dsa-table-header-cell

Attributs et propriétés

Propriété

attribut

Description

Type

Valeur par défaut

alignment

Utilisée pour aligner le contenu de la cellule d'en-tête.

left right

'left'

loading

Affiche un état de chargement. Héritée du parent dsa-table-head.

boolean

false

role

 

Identifie le rôle du table-header-cell. Il est recommandé de ne pas modifier cette propriété.

string

columnheader

skeletonEffect skeleton-effect

Désigne quel effet le squelette utilisera. Héritée du parent dsa-table-head.

pulse sheen none

 

'none'

sortable

Active la fonctionnalité de tri.

boolean

false

sortDirection sort-direction

Le sens de tri de la colonne.

ascending descending none

none

Méthodes

Slots

Nom

Description

(défaut)

Le contenu principale du dsa-table-header-cell. Ici, vous pouvez utiliser vos propres composants, ainsi que ceux du design-system.

Événements

Nom

Description

dsa-table-header-cell-sort

{{ oldDirection: TABLE_SORT_DIRECTION, sortDirection: TABLE_SORT_DIRECTION }} - Émis lorsqu'une cellule d'en-tête de tableau change de sens de tri.

dsa-table-row

Attributs et propriétés

Propriété

attribut

Description

Type

Valeur par défaut

expandable

Affiche le bouton permettant d'ouvrir / fermer la ligne extensible (dsa-table-expanded-row) se situant en-dessous de celui-ci.

boolean

false

expanded

Indique si la ligne extensible est affichée ou bien cachée. Cette valeur est propagée à l'élément dsa-table-expanded-row le plus proche de celui-ci.

boolean

false

hideExpandedLabel

hide-expanded-label

Libellé accessible utilisé lorsque le bouton permettant d'ouvrir / fermer la ligne extensible est en état d'ouverture.

string

''

loading

Affiche un état de chargement (désactive les actions sur la ligne). Héritée du parent dsa-table-body.

boolean

false

role

 

Identifie le rôle du table-row. Il est recommandé de ne pas modifier cette propriété.

string

row

selected

Indique visuellement que l'élément est sélectionné.

boolean

false

selectionLabel

selection-label

L'attribut aria-label pour la <checkbox> à sélectionner.

string

''

selectionName

selection-name

L'attribut name pour la <checkbox> à sélectionner. S'il est présent, cette ligne du tableau pourra être sélectionnée. Si le dsa-table parent possède l'attribut selectable à true, des selection-name seront attribués à chaque ligne du tableau par défaut. L'appellation de ces selection-name est la suivante: selection-name='row-${index}'

string

''

selectionValue

selection-value

L'attribut value pour la <checkbox> à sélectionner.

string

''

showExpandedLabel show-expanded-label

Libellé accessible utilisé lorsque le bouton permettant d'ouvrir / fermer la ligne extensible est en état de fermeture.

string

''

size

La taille de la ligne.

small medium large

'medium'

Méthodes

Slots

Nom

Description

(défaut)

Le contenu principale du dsa-table-row. Nous vous conseillons fortement d'utiliser les sous-composants développés pour cette occasion.

Événements

Nom

Description

dsa-table-row-change-selection

Émis lorsqu'une ligne est sélectionnée ou désélectionnée à la suite d'une interaction avec la case à cocher.

dsa-table-row-click

Émis lorsque l'utilisateur clique sur la ligne. Pour éviter d'émettre cet évènement lors du clique sur un élément interactif au sein de la ligne, veuillez utiliser la méthode stopPropagation() lors de la gestion de votre évènement.

dsa-table-cell

Attributs et propriétés

Propriété

attribut

Description

Type

Valeur par défaut

loading

Affiche un état de chargement. Héritée du parent dsa-table-row.

boolean

false

role

 

Identifie le rôle du table-cell. Pour désigner une cellule en temps qu'en-tête de ligne, vous pouvez utiliser la valeur rowheader.

string

cell

skeletonEffect skeleton-effect

Désigne quel effet le squelette utilisera. Héritée du parent dsa-table-row.

pulse sheen none

'none'

Méthodes

Slots


Nom

Description

(défaut)

Le contenu principale du dsa-table-cell. Ici, vous pouvez utiliser vos propres composants, ainsi que ceux du design-system.

Événements

dsa-table-single-cell-row

Attributs et propriétés

Propriété

attribut

Description

Type

Valeur par défaut

role

 

Identifie le rôle du table-single-cell-row. Il est recommandé de ne pas modifier cette propriété.

string

row

colspan

Définit le nombre de colonnes qu’occupera la case/ligne.

Il est recommandé de ne pas modifier cette propriété car sa valeur est définie automatiquement par le dsa-table parent

number

1

Méthodes

Slots


Nom

Description

(défaut)

Le contenu principale du dsa-table-cell. Ici, vous pouvez utiliser vos propres composants, ainsi que ceux du design-system.

Événements


Références

Voici la liste des références vers les composants liés:

 


Tableaux complexes

Le composant <dsa-table> ne permet pas l’utilisation de cellules fusionnées.

Pour appliquer le style du DSA sur votre tableau complexe existant, vous pouvez utiliser les classes CSS à disposition.