WorkspaceTableLayout · types
Interfaces, valeurs et contrats nommés de WorkspaceTableLayout.
Les types ci-dessous définissent les objets nommés et leurs relations. Les propriétés héritées sont incluses dans les tableaux. Les types dérivés d’un schéma renvoient à sa structure; une déclaration TypeScript ne remplace pas les contrôles sémantiques du compilateur.
WorkspaceTableLayout
Exact admitted visual options; persistence and mutation remain separate canonical owners.
export type WorkspaceTableLayout = z.infer<typeof workspaceTableLayoutSchema>;
WorkspaceTableGrouping
One declared set of grouping choices and its bounded group page size.
export type WorkspaceTableGrouping = z.infer<typeof workspaceTableGroupingSchema>;
WorkspaceTableCellFormat
The shared formatter consumes canonical scalar values, never arbitrary renderer code.
export type WorkspaceTableCellFormat = z.infer<typeof workspaceTableCellFormatSchema>;
Exemples appliqués : Colonnes et formats d’une collection
Déclarez la source de chaque colonne avant son format, son ordre et ses filtres.
Configuration
Fragment à placer dans presentation.tableViews[]. Propriétés et valeurs admises.
{
"viewKey": "quotes-table",
"columns": [
{
"key": "number",
"label": "Numéro",
"source": {
"kind": "native",
"property": "title"
}
},
{
"key": "status",
"label": "État",
"source": {
"kind": "field",
"fieldPath": "fields/status"
}
},
{
"key": "amount",
"label": "Montant",
"source": {
"kind": "field",
"fieldPath": "fields/amount"
}
}
],
"openLabel": "Ouvrir la soumission"
}
Variante et raccordement
Fragment à placer dans presentation.tableViews[].layout. Propriétés et valeurs admises.
{
"contract": "WorkspaceTableLayout@1",
"grouping": null,
"columns": [
{
"columnKey": "number",
"visible": true,
"width": null,
"frozen": true,
"format": {
"kind": "text"
},
"headerFilterParameterKey": null
},
{
"columnKey": "status",
"visible": true,
"width": null,
"frozen": false,
"format": {
"kind": "badge"
},
"headerFilterParameterKey": null
},
{
"columnKey": "amount",
"visible": true,
"width": null,
"frozen": false,
"format": {
"kind": "number",
"maximumFractionDigits": 2
},
"headerFilterParameterKey": null
}
],
"columnGroups": []
}
Exemple de disposition UI
La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.
- Numéro
- État
- Montant
- Dernière mise à jour
| Numéro | État | Montant | Ouvrir |
|---|---|---|---|
| S-1042 | Brouillon | 12 500 | ↗ |
| S-1041 | Approuvée | 8 200 | ↗ |
| S-1040 | Envoyée | 4 750 | ↗ |