codec
Un codec de valeurs entier à la place de celui qu’apporte le type.
| Type | ValueCodec<V> |
|---|---|
| Par défaut | non défini |
Modifiable en direct (update()) | Oui — en redonnant les colonnes (update({ columns })) |
| Déclaré dans | packages/core/src/columns/defs.ts |
Ce qu’il fait
Section intitulée « Ce qu’il fait »Un codec dit comment une sorte de valeur est lue dans la ligne (coerce), lue dans un texte tapé ou collé
(parse), affichée (format), triée (sortKey, compare), comparée (equals, isEmpty) et écrite dans les
fichiers et le presse-papiers (toExport). Chaque type apporte le sien ; codec le remplace pour cette colonne, et un
type 'custom' en demande un.
@dzgrid/core exporte les codecs fournis, prêts à ajuster : booleanCodecWith({ true, false }) affiche vos propres
mots pour oui et non, enumCodec(options, { sort: 'option-order' }) trie une liste dans son propre ordre plutôt que
par libellé. Étalez-en un pour changer une seule fonction, comme { ...textCodec, format: … }.
import { createGrid } from '@dzgrid/dom';import { booleanCodecWith, enumCodec, textCodec } from '@dzgrid/core';import { FR } from '@dzgrid/dom/locales/fr';
type Order = { id: string; ref: string; stage: string; paid: boolean };
const STAGES = [ { value: 'new', label: 'Nouvelle' }, { value: 'packed', label: 'Emballée' }, { value: 'sent', label: 'Envoyée' },];
createGrid<Order>(document.getElementById('commandes')!, { rows: [{ id: 'o1', ref: 'ord-311', stage: 'packed', paid: false }], columns: [ { id: 'ref', header: 'Commande', codec: { ...textCodec, format: (v: string) => v.toUpperCase() } }, { id: 'stage', header: 'Étape', type: 'enum', codec: enumCodec(STAGES, { sort: 'option-order' }) }, { id: 'paid', header: 'Paiement', type: 'boolean', codec: booleanCodecWith({ true: 'Payée', false: 'À payer' }) }, ], getRowId: (r) => r.id, messages: FR,});