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

ManagedTypedValue · types

Interfaces, valeurs et contrats nommés de ManagedTypedValue.

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.

ManagedIntegerValueSchema

Exact integers have their own declared bounds, not an implicit decimal scale or unsafe JSON number.

Champ Options / valeurs attendues Description
kind "integer" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
minimum string 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.
maximum string 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.
unit { kind: "dimensionless"; } | { kind: "unit"; key: string; } | { kind: "currency"; key: string; } Requis. Définit « unit » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface ManagedIntegerValueSchema {
  readonly kind: 'integer';
  readonly minimum: string;
  readonly maximum: string;
  readonly unit: ManagedExactDataUnit;
}

ManagedApproximateRealValueSchema

Approximation is explicitly binary64; tolerances are comparison policy, never input rounding.

Champ Options / valeurs attendues Description
kind "real" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
representation "binary64" Requis. Définit « representation » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
precisionBits 53 Requis. Définit « precision Bits » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
minimum number 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.
maximum number 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.
tolerance { readonly absolute: number; readonly relative: number; } Requis. Définit « tolerance » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
unit { kind: "dimensionless"; } | { kind: "unit"; key: string; } Requis. Définit « unit » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface ManagedApproximateRealValueSchema {
  readonly kind: 'real';
  readonly representation: 'binary64';
  readonly precisionBits: 53;
  readonly minimum: number;
  readonly maximum: number;
  readonly tolerance: { readonly absolute: number; readonly relative: number };
  readonly unit: Exclude<ManagedExactDataUnit, { kind: 'currency' }>;
}

ManagedChoiceValueSchema

Labels have stable authored language keys; the selected label locale must exist for every choice.

Champ Options / valeurs attendues Description
kind "choice" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
labelLocale string Requis. Définit « label Locale » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
choices readonly { readonly key: string; readonly labels: Readonly<Record<string, string>>; }[] Requis. Définit « choices » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface ManagedChoiceValueSchema {
  readonly kind: 'choice';
  readonly labelLocale: string;
  readonly choices: readonly { readonly key: string; readonly labels: Readonly<Record<string, string>> }[];
}

ManagedTypedValueSchema

Closed value trees cannot declare identities, rights, Links, content kinds or arbitrary JSON branches.

export type ManagedTypedValueSchema =
  | { readonly kind: 'text'; readonly minimumLength: number; readonly maximumLength: number }
  | { readonly kind: 'boolean' }
  | ManagedIntegerValueSchema
  | ManagedApproximateRealValueSchema
  | ManagedChoiceValueSchema
  | { readonly kind: 'decimal'; readonly precision: number; readonly scale: number; readonly unit: ManagedExactDataUnit;
      readonly minimum?: string | undefined; readonly maximum?: string | undefined }
  | { readonly kind: 'object'; readonly properties: readonly {
      readonly key: string; readonly required: boolean; readonly nullable: boolean;
      readonly schema: ManagedTypedValueSchema;
    }[] }
  | { readonly kind: 'list'; readonly minimumItems: number; readonly maximumItems: number;
      readonly itemsNullable: boolean; readonly items: ManagedTypedValueSchema };
type ManagedTypedValueSchema = ManagedIntegerValueSchema | ManagedApproximateRealValueSchema | ManagedChoiceValueSchema | { readonly kind: "text"; readonly minimumLength: number; readonly maximumLength: number; } | { readonly kind: "boolean"; } | { readonly kind: "decimal"; readonly precision: number; readonly scale: number; readonly unit: ManagedExactDataUnit; readonly minimum?: string | undefined; readonly maximum?: string | undefined; } | { readonly kind: "object"; readonly properties: readonly { readonly key: string; readonly required: boolean; readonly nullable: boolean; readonly schema: ManagedTypedValueSchema; }[]; } | { readonly kind: "list"; readonly minimumItems: number; readonly maximumItems: number; readonly itemsNullable: boolean; readonly items: ManagedTypedValueSchema; };

ManagedTypedValue

Canonical JSON primitives and closed composites retain null, empty objects/lists, false and zero distinctly.

export type ManagedTypedValue = string | number | boolean | null | readonly ManagedTypedValue[] | { readonly [key: string]: ManagedTypedValue };
type ManagedTypedValue = string | number | boolean | readonly ManagedTypedValue[] | { readonly [key: string]: ManagedTypedValue; } | null;

ManagedTypedFieldV2

A Field’s presence and outer repeatability remain separate from its typed value’s own list schema.

Champ Options / valeurs attendues Description
contract "ManagedTypedField@2" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
type "object" | "choice" | "integer" | "real" | "list" Requis. Définit « type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
required boolean Requis. Indique si cette déclaration exige une valeur.
repeatable boolean Requis. Indique si plusieurs valeurs ou instances sont admises.
nullable boolean Requis. Définit « nullable » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
schema ManagedIntegerValueSchema | ManagedApproximateRealValueSchema | ManagedChoiceValueSchema | { readonly kind: "object"; readonly properties: readonly { readonly key: string; readonly required: boolean; readonly nullable: boolean; readonly schema: ManagedTypedValueSchema; }[]; } | { readonly kind: "list"; readonly minimumItems: number; readonly maximumItems: number; readonly itemsNullable: boolean; readonly items: ManagedTypedValueSchema; } Requis. Définit « schema » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
default ManagedTypedValue | undefined Facultatif. Valeur initiale conforme au type déclaré; ne remplace pas une valeur déjà enregistrée.
export interface ManagedTypedFieldV2 {
  readonly contract: 'ManagedTypedField@2';
  readonly key: string;
  readonly type: 'integer' | 'real' | 'choice' | 'object' | 'list';
  readonly required: boolean;
  readonly repeatable: boolean;
  readonly nullable: boolean;
  readonly schema: Exclude<ManagedTypedValueSchema, { kind: 'text' | 'boolean' | 'decimal' }>;
  readonly default?: ManagedTypedValue | undefined;
}

Toutes les références

Exemples appliqués : Texte requis et choix métier

Entreprise utilise une saisie texte obligatoire; État réutilise une liste de valeurs déclarées.

Configuration

Fragment à placer dans forms[].fields[]. Propriétés et valeurs admises.

{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "company",
  "label": "Entreprise",
  "input": "text",
  "binding": {
    "kind": "field",
    "fieldKey": "company"
  },
  "required": true,
  "ruleKeys": [],
  "options": []
}

Variante et raccordement

Fragment à placer dans forms[].fields[]. Propriétés et valeurs admises.

{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "status",
  "label": "État",
  "input": "choice",
  "binding": {
    "kind": "field",
    "fieldKey": "status"
  },
  "required": true,
  "ruleKeys": [],
  "options": [
    "prospect",
    "active"
  ]
}

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. Identité du client
  2. Notes et suivi
  3. Paramètres
  4. Soumissions liées
DISPOSITION ILLUSTRATIVEApp Clients / Soumissions
SurfaceClients / Atelier NordExemple
ManagedTypedValue · typesTexte requis et choix métier
Clients
AN
Atelier NordClient actif · Services professionnels
ÉtatActif
Notes et suivi

Le client souhaite préparer une proposition pour son nouveau projet. Préciser les besoins et confirmer le budget avant la revue.

Texte éditable dans la Surface
Paramètres de la fiche
Recherchez un concept, un champ ou une action.Esc