Import
import { NuiGrid, NuiGridCell, type NuiGridColumn } from '@needless-ui/angular/grid';NuiGrid
Une grille de données sur un tableau natif.
| Nom | Type | Par défaut | Description |
|---|---|---|---|
rowsBidirectionnel | readonly T[] | Les données. Les modifications remplacent des lignes : liez-les avec [(rows)]. | |
columnsInput | NuiGridColumn<T>[] | Les colonnes, sous forme d’objets NuiGridColumn. | |
rowIdInput | (row: T) => unknown | row.id ?? row | La clé d’une ligne, pour la sélection et le suivi. |
labelInput | string | Nom accessible de la grille. | |
selectionInput | 'none' | 'single' | 'multiple' | 'none' | Si les lignes sont sélectionnables, et combien. |
selectedBidirectionnel | unknown[] | [] | Les clés des lignes sélectionnées. |
sortBidirectionnel | NuiGridSort[] | [] | Le tri, sous forme d’objets { column, direction } ; le premier trie en premier. |
filtersBidirectionnel | Record<string, NuiGridFilter> | {} | Un filtre par id de colonne : un opérateur et une valeur. |
searchBidirectionnel | string | '' | Des mots qui doivent tous figurer dans une ligne. |
pageSizeBidirectionnel | number | 0 | Lignes par page, ou 0 pour une seule liste défilante. |
pageBidirectionnel | number | 0 | La page affichée, à partir de 0. |
pageSizesInput | number[] | [10, 25, 50, 100] | Les choix de la pagination. |
virtualInput | boolean | 'auto' | 'auto' | Ne rend que les lignes visibles : toujours, jamais, ou auto au-delà de 100 lignes sans pagination. |
heightInput | string | Une longueur CSS qui limite la grille ; elle défile à l’intérieur. | |
columnStateBidirectionnel | NuiGridColumnState[] | [] | La largeur, l’ordre, l’épinglage et la visibilité de chaque colonne, à enregistrer et restaurer. |
modeInput | 'client' | 'server' | 'client' | server affiche les lignes telles qu’elles arrivent et vous laisse le tri, le filtrage et la pagination. |
totalInput | number | Le nombre de lignes sur le serveur. | |
loadingInput | boolean | false | Affiche une barre de progression, et des lignes provisoires tant qu’il n’y en a aucune. |
localeInput | string | LOCALE_ID | Formate les nombres et les dates, et lit les nombres saisis. |
labelsInput | Partial<NuiGridLabels> | Tous les textes que la grille affiche ou annonce, à traduire. | |
cornersInput | NuiCorners | La forme de ses coins : round, squircle, bevel, scoop, notch ou square. | |
radiusInput | NuiRadius | La taille de ses coins : none, small, medium, large ou full. | |
densityInput | NuiDensity | La place qu’il occupe : compact, regular ou roomy. | |
rowActivateOutput | T | Émet une ligne ouverte avec Entrée ou un double clic. | |
cellEditOutput | NuiGridEdit<T> | Émet chaque modification validée. | |
queryChangeOutput | NuiGridQuery | Émet le tri, les filtres, la recherche et la page à chaque changement. | |
exportCsvMéthode | (options?) => string | Les lignes filtrées et triées des colonnes visibles, en CSV. | |
focusCellMéthode | (row: number, col: number) => void | Place le focus sur une cellule ; la ligne -1 est l’en-tête. | |
clearFiltersMéthode | () => void | Efface tous les filtres et la recherche. |
Les inputs de personnalisation que vous ne définissez pas suivent l’attribut data-nui-* le plus proche. Consultez le guide de personnalisation.
NuiGridColumn
Une colonne. Seuls id et header sont obligatoires.
| Nom | Type | Par défaut | Description |
|---|---|---|---|
idPropriété | string | Unique ; la clé dans le tri, les filtres et l’état des colonnes. | |
headerPropriété | string | Le texte de l’en-tête. | |
valuePropriété | keyof T | ((row: T) => V) | Une clé de la ligne, ou une fonction de la ligne. Par défaut, row[id]. | |
typePropriété | 'text' | 'number' | 'date' | 'boolean' | 'enum' | 'text' | Détermine l’alignement, le tri, le filtre et l’éditeur. |
formatPropriété | Intl options | ((value, row) => string) | Options Intl pour les nombres et les dates, ou une fonction qui produit le texte. | |
optionsPropriété | NuiOption<V>[] | Les options d’une colonne enum, sous forme d’objets NuiOption. | |
width, minWidth, maxWidthPropriété | number | En pixels. | |
flexPropriété | number | Partage l’espace restant avec les autres colonnes flex. | |
alignPropriété | 'start' | 'center' | 'end' | Par défaut, selon le type : nombres et dates à la fin. | |
pinned, hiddenPropriété | 'start' | 'end', boolean | L’épinglage et la visibilité initiaux de la colonne. | |
sortable, filterable, resizable, reorderable, hideablePropriété | boolean | true | Chacun se désactive avec false. |
comparePropriété | (a: V, b: V) => number | Un tri personnalisé. | |
editable, validatePropriété | boolean | ((row) => boolean), (value, row) => string | null | Si les cellules sont modifiables, et un message quand une valeur n’est pas valide. | |
setPropriété | (row: T, value: V) => T | Produit la ligne modifiée. Par défaut, une copie avec la nouvelle valeur. |
NuiGridCell
Dessine les cellules d’une colonne. Le contexte contient la ligne, la valeur et le texte.
| Nom | Type | Par défaut | Description |
|---|---|---|---|
nuiGridCellInput | string | L’id de la colonne. |
NuiGridHeader
Dessine l’en-tête d’une colonne.
| Nom | Type | Par défaut | Description |
|---|---|---|---|
nuiGridHeaderInput | string | L’id de la colonne. |
NuiGridEmpty
Ce qui s’affiche quand il n’y a aucune ligne. Le contexte indique si des filtres les ont masquées.