Aller au contenu
SurfaceDocs
ENCommencer
DocsRéférence du Model

workspaceTableLayout

Propriétés, variantes, types et limites de workspaceTableLayout.

Cette référence décrit la structure complète de workspaceTableLayout. Chaque chemin représente une propriété, y compris les objets imbriqués, les éléments de listes et les branches conditionnelles. Une branche identifiée par kind, contract ou mode n’admet que ses propres propriétés.

Structure et valeurs

Champ Options / valeurs attendues Description
contract "WorkspaceTableLayout@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
columns Array<closed object>; min length 1; max length 40 Requis. Colonnes ordonnées et leurs sources de valeurs autorisées.
columns[].columnKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
columns[].visible true | false Requis. Définit « visible » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
columns[].width integer; ≥ 80; ≤ 1000; null Requis. Largeur de l’élément dans l’unité du contrat parent.
columns[].frozen true | false Requis. Maintient la colonne visible pendant le défilement horizontal.
columns[].format closed object OR closed object OR closed object OR closed object OR closed object Requis. Format de présentation compatible avec le type de la valeur.
columns[].format.[kind=text].kind "text" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
columns[].format.[kind=number].kind "number" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
columns[].format.[kind=number].maximumFractionDigits integer; ≥ 0; ≤ 8 Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet.
columns[].format.[kind=boolean].kind "boolean" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
columns[].format.[kind=boolean].trueLabel string; min length 1; max length 4000 Requis. Définit « true Label » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
columns[].format.[kind=boolean].falseLabel string; min length 1; max length 4000 Requis. Définit « false Label » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
columns[].format.[variant 4].kind "date" | "datetime" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
columns[].format.[kind=badge].kind "badge" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
columns[].headerFilterParameterKey string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9-]*$/u; null Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
columnGroups Array<closed object>; max length 20 Requis. Regroupements visuels de colonnes déclarées.
columnGroups[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
columnGroups[].label string; min length 1; max length 4000 Requis. Libellé destiné à l’usager dans l’interface.
columnGroups[].columnKeys Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; min length 1; max length 40 Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
grouping closed object; null Requis. Définit « grouping » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
grouping.contract "WorkspaceTableGrouping@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
grouping.options Array<closed object>; min length 1; max length 20 Requis. Valeurs proposées et admises pour un choix déclaré.
grouping.options[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
grouping.options[].label string; min length 1; max length 4000 Requis. Libellé destiné à l’usager dans l’interface.
grouping.options[].columnKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
grouping.initialOptionKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u; null Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
grouping.maximumGroups integer; ≥ 1; ≤ 100 Requis. Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet.

Règles de lecture

Les chemins suffixés par [] décrivent chaque élément d’une liste; {key} décrit chaque valeur d’un dictionnaire. Le symbole ↻ renvoie à la même expression récursive. Un objet fermé refuse les propriétés supplémentaires. Les mentions de validation sémantique signalent un contrôle complémentaire : la conformité des types ne suffit pas à rendre une référence, une permission ou une transition valide. Les références doivent être résolues dans le Model et le contexte de l’usager.

La présence d’une ancienne variante ne permet pas d’y ajouter une propriété d’une variante plus récente. Le compilateur contrôle la version et la cohérence du Model complet.

Exemple de structure

Ce fragment respecte le schéma de cette section. Ses références métier doivent être définies dans le Model qui l’utilise.

{
  "contract": "WorkspaceTableLayout@1",
  "columns": [
    {
      "columnKey": "title",
      "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": "language",
      "visible": true,
      "width": null,
      "frozen": false,
      "format": {
        "kind": "text"
      },
      "headerFilterParameterKey": null
    },
    {
      "columnKey": "chapters",
      "visible": true,
      "width": null,
      "frozen": false,
      "format": {
        "kind": "number",
        "maximumFractionDigits": 0
      },
      "headerFilterParameterKey": null
    }
  ],
  "columnGroups": [
    {
      "key": "details",
      "label": "Détails",
      "columnKeys": [
        "status",
        "language",
        "chapters"
      ]
    }
  ],
  "grouping": null
}

Références associées

Index complet du Model · Construire un Model

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

Objet du contrat workspaceTableLayout. 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": []
}

Variante et raccordement

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"
}

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.

  1. Numéro
  2. État
  3. Montant
  4. Dernière mise à jour
DISPOSITION ILLUSTRATIVEApp Clients / Soumissions
SurfaceClients / Atelier NordExemple
workspaceTableLayoutworkspaceTableLayout
Clients
CONTEXTE DU MODELAtelier NordConfiguration déclarative
grouping
null
columns
3 éléments
columnGroups
0 éléments

Les valeurs ci-dessus reprennent le fragment de configuration; les références se résolvent dans le Model complet.

Recherchez un concept, un champ ou une action.Esc