Aller au contenu

flex

Fait s’étirer la colonne avec la grille.

Typenumber
Par défautnon défini
Modifiable en direct (update())Oui — en redonnant les colonnes (update({ columns }))
Déclaré danspackages/core/src/columns/defs.ts

Les colonnes avec un flex se partagent la largeur que laissent les autres colonnes, chacune en proportion de son nombre : flex: 2 prend deux fois ce que prend flex: 1. Elles suivent la largeur de la grille quand la fenêtre change de taille, et restent entre leurs minWidth et maxWidth. Quand toutes les colonnes sont flexibles, elles remplissent toujours exactement la grille ; il n’y a pas d’interrupteur « ajuster à la largeur » à part.

Une fois qu’une colonne flexible est redimensionnée par l’utilisateur, elle garde cette largeur ; le « Réinitialiser les colonnes » du menu de colonne la rend de nouveau flexible. Une valeur qui n’est pas un nombre positif ou nul est refusée avec une erreur invalid-column ; 0 n’est pas flexible.

import { createGrid } from '@dzgrid/dom';
import { FR } from '@dzgrid/dom/locales/fr';
type Tool = { id: string; name: string; shelf: number; notes: string };
createGrid<Tool>(document.getElementById('outils')!, {
rows: [{ id: 't1', name: 'Marteau', shelf: 2, notes: 'Arrache-clou, 450 g' }],
columns: [
{ id: 'name', header: 'Outil', flex: 1, minWidth: 120 },
{ id: 'shelf', header: 'Étagère', type: 'number', width: 90 },
{ id: 'notes', header: 'Notes', flex: 2, minWidth: 160 },
],
getRowId: (r) => r.id,
messages: FR,
});

Changez la taille de la page : Outil et Notes se partagent la place, Notes deux fois plus.