@esfaenza/flow-builder 20.3.44 → 20.3.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -234,7 +234,7 @@ interface FlowScreen extends FlowNodeBase {
234
234
  * `screenFieldTypes`, che porta anche i flag (`storesValue`, `isContainer`, …) con cui
235
235
  * l'editor decide quali campi mostrare: qui il tipo e' aperto proprio per quello.
236
236
  */
237
- type FlowScreenFieldType = 'DisplayText' | 'InputField' | 'LargeTextArea' | 'PasswordField' | 'RadioButtons' | 'DropdownBox' | 'MultiSelectCheckboxes' | 'MultiSelectPicklist' | 'ComponentInstance' | 'Region' | 'RegionContainer' | 'ObjectProvided' | string;
237
+ type FlowScreenFieldType = 'DisplayText' | 'InputField' | 'LargeTextArea' | 'PasswordField' | 'RadioButtons' | 'DropdownBox' | 'MultiSelectCheckboxes' | 'MultiSelectPicklist' | 'ComponentInstance' | 'Region' | 'RegionContainer' | 'RepeatingSection' | 'ObjectProvided' | string;
238
238
  /** §5.2 — la sezione con o senza intestazione. */
239
239
  type FlowRegionContainerType = 'SectionWithHeader' | 'SectionWithoutHeader' | string;
240
240
  /** §5.2 — cosa succede ai valori quando si torna sulla schermata. */
@@ -253,6 +253,12 @@ interface FlowScreenValidationRule {
253
253
  * di node e risorse (§3.3), e un Assignment che ci scrive e' `TARGET_NOT_WRITABLE`;
254
254
  * - `fields` esiste solo sui contenitori (`Region`, `RegionContainer`) e l'annidamento previsto
255
255
  * e' **sezione → colonne → campi**: piu' profondo di così e' un avviso.
256
+ *
257
+ * L'unica eccezione alla prima e' un campo dentro una `RepeatingSection`: esiste in una riga per ogni
258
+ * elemento della collection, quindi il suo nome non individua alcun valore. Non e' una risorsa, non si
259
+ * propone fra i riferimenti, e nominarlo e' `SCREEN_FIELD_IN_REPEATER`. Il nome resta comunque **unico**
260
+ * — e' l'indirizzo con cui il frontend rende il campo — quindi un omonimo di una variabile resta
261
+ * `NAME_DUPLICATED`.
256
262
  */
257
263
  interface FlowScreenField {
258
264
  name?: string;
@@ -282,9 +288,49 @@ interface FlowScreenField {
282
288
  maxLength?: number;
283
289
  /** 1..12 nella griglia della schermata: il frontend puo' ignorarla. */
284
290
  width?: number;
285
- /** Solo sui contenitori: sezione → colonne → campi. */
291
+ /**
292
+ * Solo sui contenitori: sezione → colonne → campi. Su una `RepeatingSection` e' il **modello di una
293
+ * riga**: la schermata ne rende una copia per ogni elemento di `collectionReference`.
294
+ */
286
295
  fields?: FlowScreenField[];
287
296
  regionContainerType?: FlowRegionContainerType;
297
+ /**
298
+ * §5.2 — `RepeatingSection`: **dove vivono le righe**, una variabile collection di tipo `Structure`.
299
+ * E' quella che il resto del flow attraversa con un Loop, ed e' il motivo per cui la sezione non
300
+ * introduce un posto nuovo in cui i dati stanno. **Obbligatoria**: senza,
301
+ * `REPEATING_SECTION_INVALID`.
302
+ */
303
+ collectionReference?: string;
304
+ /**
305
+ * §5.2 — `RepeatingSection`: il **cursore**, una variabile `Structure` non collection dello stesso
306
+ * `objectType` di {@link collectionReference}, su cui il runtime appoggia la riga corrente. Ha lo
307
+ * stesso ruolo di `assignNextValueToReference` in un Loop, ed e' cio' che si nomina dentro una riga:
308
+ * `PuntoCorrente.PodId`, mai `Luce_POD`. **Obbligatorio**.
309
+ */
310
+ itemReference?: string;
311
+ /**
312
+ * §5.2 — sui campi **dentro** una `RepeatingSection`: il membro della riga che il campo raccoglie.
313
+ * Senza, vale il nome del campo. Il membro deve esistere sulla classe delle righe e non essere di
314
+ * sola lettura: `STRUCTURE_MEMBER_UNKNOWN` e `TARGET_NOT_WRITABLE`.
315
+ */
316
+ memberName?: string;
317
+ /** §5.2 — `RepeatingSection`: righe minime. */
318
+ minInstances?: number;
319
+ /** §5.2 — `RepeatingSection`: righe massime. Assente e' l'avviso `REPEATING_SECTION_WITHOUT_LIMIT`. */
320
+ maxInstances?: number;
321
+ /** §5.2 — `RepeatingSection`: default `true`. */
322
+ allowAdd?: boolean;
323
+ /** §5.2 — `RepeatingSection`: default `true`. */
324
+ allowRemove?: boolean;
325
+ /** §5.2 — `RepeatingSection`: la scritta del comando che aggiunge una riga. */
326
+ addButtonLabel?: string;
327
+ /** §5.2 — `RepeatingSection`: la scritta del comando che toglie una riga. */
328
+ removeButtonLabel?: string;
329
+ /**
330
+ * §5.2 — `RepeatingSection`: l'intestazione della **singola riga**. Supporta i merge field e viene
331
+ * risolta sulla riga, quindi ci si nomina il cursore: `Punto {!PuntoCorrente.PodId}`.
332
+ */
333
+ itemLabel?: string;
288
334
  /** `ComponentInstance`: il componente del frontend, dal catalogo dei form. */
289
335
  extensionName?: string;
290
336
  inputParameters?: FlowInputParameter[];
@@ -866,6 +912,13 @@ interface FlowScreenFieldTypeEntry extends FlowDictionaryEntry {
866
912
  acceptsChoices?: boolean;
867
913
  /** Il campo contiene altri campi (`Region`, `RegionContainer`). */
868
914
  isContainer?: boolean;
915
+ /**
916
+ * §5.2 — sezione **ripetibile**, ed e' distinto da {@link isContainer} di proposito: contiene campi
917
+ * ma quelli che contiene sono il *modello di una riga*, non i campi della schermata. Un editor che le
918
+ * trattasse allo stesso modo proporrebbe quei nomi fra i riferimenti, che e' esattamente cio' che la
919
+ * validazione rifiuta (`SCREEN_FIELD_IN_REPEATER`).
920
+ */
921
+ isRepeatingSection?: boolean;
869
922
  /** `dataType` obbligatorio: senza, `DATA_TYPE_MISSING`. */
870
923
  requiresDataType?: boolean;
871
924
  }
@@ -2272,6 +2325,12 @@ declare const ORCHESTRATION_CONDITION_OUTPUT = "isOrchestrationConditionMet";
2272
2325
  * del flow** (§5.2). I loro nomi vivono nello stesso spazio dei nomi di node e risorse (§3.3),
2273
2326
  * quindi `usedNames` dello store deve comprenderli — un campo omonimo di una variabile e'
2274
2327
  * `NAME_DUPLICATED`, non una stranezza tollerata.
2328
+ *
2329
+ * L'unica eccezione a quest'ultima e' la `RepeatingSection`, e le due meta' vanno tenute distinte perche'
2330
+ * e' facile appiattirle: i campi **dentro** una riga non sono risorse (il loro nome non individua alcun
2331
+ * valore, perche' la riga esiste una volta per elemento della collection) ma un nome unico ce l'hanno
2332
+ * comunque. Quindi `screenFieldNames` li comprende — `NAME_DUPLICATED` vale — mentre
2333
+ * {@link resourceFieldsOf} no: proporli fra i riferimenti e' `SCREEN_FIELD_IN_REPEATER`.
2275
2334
  */
2276
2335
 
2277
2336
  /** Il percorso di un campo nell'albero: indici dalla radice alla foglia. */
@@ -2299,7 +2358,9 @@ declare function allFieldsOf(screen: FlowDynamicScreen | undefined): FlowScreenF
2299
2358
  *
2300
2359
  * Contenitori compresi: un `Region` non e' una risorsa — non raccoglie un valore — ma il suo
2301
2360
  * nome resta un nome, e due campi omonimi nella stessa schermata sono comunque un problema.
2302
- * Chi vuole i **soli** riferimenti proponibili usa `isFieldResource`.
2361
+ * Ci sono anche i campi **dentro una riga** di una sezione ripetibile, che risorse non sono ma un nome
2362
+ * ce l'hanno lo stesso: e' l'indirizzo con cui il frontend rende il campo, e due omonimi lo renderebbero
2363
+ * ambiguo (§5.2). Chi vuole i **soli** riferimenti proponibili usa {@link resourceFieldsOf}.
2303
2364
  */
2304
2365
  declare function screenFieldNames(definition: FlowDefinition | undefined): string[];
2305
2366
  /**
@@ -2322,8 +2383,40 @@ declare function screenActionNames(definition: FlowDefinition | undefined): stri
2322
2383
  * i suoi output. Il flag `storesValue` arriva dal dizionario, che e' l'unica fonte autoritativa:
2323
2384
  * senza la voce del dizionario si risponde `false`, cioe' "non lo so" — proporre un riferimento
2324
2385
  * che il backend non conosce e' peggio che non proporlo.
2386
+ *
2387
+ * Guarda il **solo campo**, e non basta: un campo dentro una `RepeatingSection` raccoglie un valore ma
2388
+ * non e' una risorsa, perche' esiste in una riga per ogni elemento della collection. Quella domanda ha
2389
+ * bisogno del contesto, e la risponde {@link resourceFieldsOf}.
2325
2390
  */
2326
2391
  declare function isFieldResource(field: FlowScreenField | undefined, entry: FlowScreenFieldTypeEntry | undefined): boolean;
2392
+ /** Come si riconosce una voce del dizionario a partire dal campo: il flag e' del dizionario, non del codice. */
2393
+ type FlowScreenFieldTypeResolver = (field: FlowScreenField) => FlowScreenFieldTypeEntry | undefined;
2394
+ /**
2395
+ * §5.2 — i campi dichiarati dentro una `RepeatingSection` sono il **modello di una riga**, e la riga
2396
+ * esiste una volta per elemento della collection: il loro nome non individua alcun valore.
2397
+ *
2398
+ * Da qui discende tutto cio' che l'editor fa di diverso lì dentro. Non sono risorse del flow, non si
2399
+ * propongono fra i riferimenti, non innescano screen action e non sono destinazioni: nominarli e'
2400
+ * `SCREEN_FIELD_IN_REPEATER`. Dentro una riga si nomina il **cursore** (`itemReference`), che e' una
2401
+ * variabile vera — `PuntoCorrente.PodId`, mai `Luce_POD`.
2402
+ *
2403
+ * Cio' che invece **non** cambia: il nome resta unico, perche' e' l'indirizzo con cui il frontend rende
2404
+ * il campo, quindi un omonimo di una variabile e' `NAME_DUPLICATED` come sempre e `screenFieldNames` li
2405
+ * comprende tutti.
2406
+ */
2407
+ declare function repeatedFieldNames(definition: FlowDefinition | undefined, typeOf: FlowScreenFieldTypeResolver): Set<string>;
2408
+ /**
2409
+ * I campi di una schermata che sono **risorse del flow**: raccolgono un valore e non stanno dentro una
2410
+ * riga. Sono gli unici da proporre come riferimento, come innesco di una screen action e come
2411
+ * destinazione dei suoi output.
2412
+ */
2413
+ declare function resourceFieldsOf(screen: FlowDynamicScreen | undefined, typeOf: FlowScreenFieldTypeResolver): FlowScreenField[];
2414
+ /**
2415
+ * La sezione ripetibile che **contiene** il campo a un percorso, se c'e'. Un antenato stretto: la
2416
+ * sezione stessa non sta dentro se stessa, ed e' la differenza fra «configuro la sezione» e «configuro
2417
+ * un campo di una riga», che sono due pannelli diversi.
2418
+ */
2419
+ declare function repeatingSectionOf(screen: FlowDynamicScreen | undefined, path: FlowScreenFieldPath | null, typeOf: FlowScreenFieldTypeResolver): FlowScreenField | undefined;
2327
2420
  /** Inserisce un campo dentro `parentPath` alla posizione indicata (in fondo se assente). */
2328
2421
  declare function insertField(screen: FlowDynamicScreen, parentPath: FlowScreenFieldPath, field: FlowScreenField, index?: number): FlowScreenFieldPath | undefined;
2329
2422
  /** Rimuove il campo a un percorso, e con esso tutto cio' che conteneva. */
@@ -2504,6 +2597,13 @@ declare class FlowDictionaryStore {
2504
2597
  screenFieldStoresValue(value: string | undefined | null): boolean;
2505
2598
  /** §5.2 — il campo contiene altri campi: `Region`, `RegionContainer`. */
2506
2599
  screenFieldIsContainer(value: string | undefined | null): boolean;
2600
+ /**
2601
+ * §5.2 — sezione **ripetibile**. Distinto da {@link screenFieldIsContainer} di proposito: contiene
2602
+ * campi, ma quelli che contiene sono il modello di una riga e i loro nomi **non** sono riferimenti
2603
+ * proponibili (`SCREEN_FIELD_IN_REPEATER`). E' il flag su cui si accende tutto cio' che l'editor fa di
2604
+ * diverso dentro una riga.
2605
+ */
2606
+ screenFieldIsRepeatingSection(value: string | undefined | null): boolean;
2507
2607
  /** §5.2 — il campo si configura con `choiceReferences`. */
2508
2608
  screenFieldAcceptsChoices(value: string | undefined | null): boolean;
2509
2609
  /** §5.2 — `dataType` obbligatorio: senza, `DATA_TYPE_MISSING`. */
@@ -4542,6 +4642,16 @@ declare class ReferencePickerComponent {
4542
4642
  * verrebbe accusato di non esistere.
4543
4643
  */
4544
4644
  readonly extraReferences: _angular_core.InputSignal<FlowReference[]>;
4645
+ /**
4646
+ * Le radici da proporre **per prime**. Oggi c'e' un chiamante solo: dentro una riga di sezione
4647
+ * ripetibile la strada normale e' il **cursore** (`PuntoCorrente.PodId`), e i campi della riga —
4648
+ * che sono cio' che uno cerca istintivamente — non sono nemmeno riferimenti validi (§5.2).
4649
+ *
4650
+ * Non aggiunge e non toglie niente: riordina. L'elenco resta quello della primitiva, e un
4651
+ * riferimento preferito che non c'e' semplicemente non compare — proporre un nome che il backend
4652
+ * non conosce sarebbe peggio che non metterlo in cima.
4653
+ */
4654
+ readonly preferredRoots: _angular_core.InputSignal<string[]>;
4545
4655
  readonly valueChange: _angular_core.OutputEmitterRef<string | undefined>;
4546
4656
  /**
4547
4657
  * L'elenco come arriva dalla primitiva, **senza** il filtro di tipo.
@@ -4637,6 +4747,12 @@ declare class ReferencePickerComponent {
4637
4747
  /** `true` → questa riga apre il percorso e non e' un valore valido per il campo. */
4638
4748
  isContainerOnly(reference: FlowReference): boolean;
4639
4749
  readonly options: _angular_core.Signal<FlowReference[]>;
4750
+ /**
4751
+ * Porta in testa le radici preferite, **senza** cambiare l'ordine relativo del resto. I gruppi si
4752
+ * costruiscono per ordine di prima apparizione, quindi bastano questi due passaggi perche' il
4753
+ * gruppo giusto risulti il primo della tendina.
4754
+ */
4755
+ private preferFirst;
4640
4756
  /** Le opzioni raggruppate per `kind`, così gli output automatici si distinguono. */
4641
4757
  readonly groups: _angular_core.Signal<{
4642
4758
  kind: string;
@@ -4665,7 +4781,7 @@ declare class ReferencePickerComponent {
4665
4781
  * percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
4666
4782
  * risponderebbe `GLOBAL_UNKNOWN`.
4667
4783
  */
4668
- readonly valueState: _angular_core.Signal<"empty" | "unknown" | "member" | "known" | "navigated" | "host" | "containerRoot" | "memberUnknown" | "memberNotWritable" | "pathUnverified" | "globalPathUntyped" | "globalPathInvalid">;
4784
+ readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "member" | "containerRoot" | "memberUnknown" | "memberNotWritable" | "pathUnverified" | "globalPathUntyped" | "globalPathInvalid" | "unknown">;
4669
4785
  /** Le parole cambiano con la tappa: un campo di un'entita' non e' un membro di una classe. */
4670
4786
  private readonly tailIsObject;
4671
4787
  private readonly tailContainer;
@@ -4703,7 +4819,7 @@ declare class ReferencePickerComponent {
4703
4819
  clear(): void;
4704
4820
  describe(reference: FlowReference): string;
4705
4821
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ReferencePickerComponent, never>;
4706
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ReferencePickerComponent, "fb-reference-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "isCollection": { "alias": "isCollection"; "required": false; "isSignal": true; }; "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "writableOnly": { "alias": "writableOnly"; "required": false; "isSignal": true; }; "elementsOnly": { "alias": "elementsOnly"; "required": false; "isSignal": true; }; "extraReferences": { "alias": "extraReferences"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
4822
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ReferencePickerComponent, "fb-reference-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "isCollection": { "alias": "isCollection"; "required": false; "isSignal": true; }; "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "writableOnly": { "alias": "writableOnly"; "required": false; "isSignal": true; }; "elementsOnly": { "alias": "elementsOnly"; "required": false; "isSignal": true; }; "extraReferences": { "alias": "extraReferences"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
4707
4823
  }
4708
4824
 
4709
4825
  declare class ObjectPickerComponent {
@@ -5041,13 +5157,19 @@ declare class FormulaEditorComponent {
5041
5157
  readonly ariaLabel: _angular_core.InputSignal<string>;
5042
5158
  readonly disabled: _angular_core.InputSignal<boolean>;
5043
5159
  readonly rows: _angular_core.InputSignal<number>;
5160
+ /**
5161
+ * I nomi da suggerire **per primi** (§5.2). Lo passa un chiamante solo: la regola di validazione
5162
+ * di un campo dentro una riga di sezione ripetibile, dove la strada normale e' il cursore. Non
5163
+ * aggiunge nomi all'elenco di `POST /flows/references`: riordina i suggerimenti.
5164
+ */
5165
+ readonly preferredRoots: _angular_core.InputSignal<string[]>;
5044
5166
  /**
5045
5167
  * Quando propagare al documento. `input` a ogni tasto, `change` all'uscita dal campo: la
5046
5168
  * seconda serve dove mutare il documento ridisegna mezza schermata — l'anteprima dello screen
5047
5169
  * dinamico — e riscriverla a ogni tasto costa. La **verifica** parte comunque durante la
5048
5170
  * digitazione: usa la bozza locale, non cio' che e' arrivato al documento.
5049
5171
  */
5050
- readonly commitOn: _angular_core.InputSignal<"change" | "input">;
5172
+ readonly commitOn: _angular_core.InputSignal<"input" | "change">;
5051
5173
  readonly expressionChange: _angular_core.OutputEmitterRef<string>;
5052
5174
  private readonly area;
5053
5175
  /**
@@ -5162,7 +5284,7 @@ declare class FormulaEditorComponent {
5162
5284
  private run;
5163
5285
  private cancel;
5164
5286
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormulaEditorComponent, never>;
5165
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormulaEditorComponent, "fb-formula-editor", never, { "expression": { "alias": "expression"; "required": false; "isSignal": true; }; "usage": { "alias": "usage"; "required": false; "isSignal": true; }; "expectedDataType": { "alias": "expectedDataType"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "commitOn": { "alias": "commitOn"; "required": false; "isSignal": true; }; }, { "expressionChange": "expressionChange"; }, never, ["*"], true, never>;
5287
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormulaEditorComponent, "fb-formula-editor", never, { "expression": { "alias": "expression"; "required": false; "isSignal": true; }; "usage": { "alias": "usage"; "required": false; "isSignal": true; }; "expectedDataType": { "alias": "expectedDataType"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; "commitOn": { "alias": "commitOn"; "required": false; "isSignal": true; }; }, { "expressionChange": "expressionChange"; }, never, ["*"], true, never>;
5166
5288
  }
5167
5289
 
5168
5290
  /** Le modalita' offerte: una per campo del modello. */
@@ -5184,6 +5306,12 @@ declare class ValueEditorComponent {
5184
5306
  readonly disabled: _angular_core.InputSignal<boolean>;
5185
5307
  /** Nasconde la modalita' formula dove il modello non la prevede. */
5186
5308
  readonly allowFormula: _angular_core.InputSignal<boolean>;
5309
+ /**
5310
+ * Le radici da proporre **per prime** nel reference picker (§5.2). Oggi lo passa un chiamante
5311
+ * solo: dentro una riga di sezione ripetibile la strada normale e' il **cursore**, e i campi
5312
+ * della riga non sono nemmeno riferimenti validi. Non aggiunge niente all'elenco: riordina.
5313
+ */
5314
+ readonly preferredRoots: _angular_core.InputSignal<string[]>;
5187
5315
  readonly valueChange: _angular_core.OutputEmitterRef<FlowValue | undefined>;
5188
5316
  /** La modalita' dedotta dal campo effettivamente valorizzato. */
5189
5317
  readonly mode: _angular_core.Signal<ValueMode>;
@@ -5258,7 +5386,7 @@ declare class ValueEditorComponent {
5258
5386
  private emit;
5259
5387
  readonly dataTypeOptions: _angular_core.Signal<_esfaenza_flow_builder.FlowDataTypeEntry[]>;
5260
5388
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ValueEditorComponent, never>;
5261
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ValueEditorComponent, "fb-value-editor", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "isCollection": { "alias": "isCollection"; "required": false; "isSignal": true; }; "valueSet": { "alias": "valueSet"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "allowFormula": { "alias": "allowFormula"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
5389
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ValueEditorComponent, "fb-value-editor", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "isCollection": { "alias": "isCollection"; "required": false; "isSignal": true; }; "valueSet": { "alias": "valueSet"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "allowFormula": { "alias": "allowFormula"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
5262
5390
  }
5263
5391
 
5264
5392
  declare class ConditionEditorComponent {
@@ -5271,6 +5399,12 @@ declare class ConditionEditorComponent {
5271
5399
  readonly title: _angular_core.InputSignal<string>;
5272
5400
  /** `false` dove il modello non prevede la modalita' formula sull'elemento. */
5273
5401
  readonly allowFormula: _angular_core.InputSignal<boolean>;
5402
+ /**
5403
+ * Le radici da proporre **per prime** nel reference picker (§5.2). Oggi lo passa un chiamante
5404
+ * solo: dentro una riga di sezione ripetibile la strada normale e' il **cursore**, e i campi
5405
+ * della riga non sono nemmeno riferimenti validi. Non aggiunge niente all'elenco: riordina.
5406
+ */
5407
+ readonly preferredRoots: _angular_core.InputSignal<string[]>;
5274
5408
  /**
5275
5409
  * `false` dove il modello porta **solo** la lista di condizioni, senza un campo per la
5276
5410
  * logica: gli `entryConditions` / `exitConditions` di uno step di orchestrazione (§5.14).
@@ -5355,7 +5489,7 @@ declare class ConditionEditorComponent {
5355
5489
  setRightValue(index: number, value: FlowValue | undefined): void;
5356
5490
  setUnaryExpectation(index: number, expectation: boolean): void;
5357
5491
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConditionEditorComponent, never>;
5358
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConditionEditorComponent, "fb-condition-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "allowFormula": { "alias": "allowFormula"; "required": false; "isSignal": true; }; "allowLogic": { "alias": "allowLogic"; "required": false; "isSignal": true; }; "issuePath": { "alias": "issuePath"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
5492
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConditionEditorComponent, "fb-condition-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "allowFormula": { "alias": "allowFormula"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; "allowLogic": { "alias": "allowLogic"; "required": false; "isSignal": true; }; "issuePath": { "alias": "issuePath"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
5359
5493
  }
5360
5494
 
5361
5495
  /**
@@ -5499,6 +5633,12 @@ declare class ParameterEditorComponent {
5499
5633
  * quei campi sono una destinazione, e per questo non e' un default ma un parametro del chiamante.
5500
5634
  */
5501
5635
  readonly extraTargets: _angular_core.InputSignal<FlowReference[]>;
5636
+ /**
5637
+ * Le radici da proporre **per prime**, in ingresso e in uscita (§5.2). Dentro una riga di sezione
5638
+ * ripetibile e' il cursore: e' lì che vanno letti gli input di un componente e assegnati i suoi
5639
+ * output, perche' una riga ha un cursore e i campi della riga non sono riferimenti.
5640
+ */
5641
+ readonly preferredRoots: _angular_core.InputSignal<string[]>;
5502
5642
  readonly changed: _angular_core.OutputEmitterRef<(holder: ParameterHolder) => void>;
5503
5643
  readonly inputs: _angular_core.Signal<FlowInputParameter[]>;
5504
5644
  readonly outputs: _angular_core.Signal<FlowOutputParameter[]>;
@@ -5537,7 +5677,7 @@ declare class ParameterEditorComponent {
5537
5677
  setOutputName(index: number, name: string): void;
5538
5678
  setOutputTarget(index: number, reference: string | undefined): void;
5539
5679
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ParameterEditorComponent, never>;
5540
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ParameterEditorComponent, "fb-parameter-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "catalogParameters": { "alias": "catalogParameters"; "required": false; "isSignal": true; }; "inputTitle": { "alias": "inputTitle"; "required": false; "isSignal": true; }; "outputTitle": { "alias": "outputTitle"; "required": false; "isSignal": true; }; "showInputs": { "alias": "showInputs"; "required": false; "isSignal": true; }; "showOutputs": { "alias": "showOutputs"; "required": false; "isSignal": true; }; "outputsDisabledReason": { "alias": "outputsDisabledReason"; "required": false; "isSignal": true; }; "extraTargets": { "alias": "extraTargets"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
5680
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ParameterEditorComponent, "fb-parameter-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "catalogParameters": { "alias": "catalogParameters"; "required": false; "isSignal": true; }; "inputTitle": { "alias": "inputTitle"; "required": false; "isSignal": true; }; "outputTitle": { "alias": "outputTitle"; "required": false; "isSignal": true; }; "showInputs": { "alias": "showInputs"; "required": false; "isSignal": true; }; "showOutputs": { "alias": "showOutputs"; "required": false; "isSignal": true; }; "outputsDisabledReason": { "alias": "outputsDisabledReason"; "required": false; "isSignal": true; }; "extraTargets": { "alias": "extraTargets"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
5541
5681
  }
5542
5682
 
5543
5683
  interface FieldAssignmentHolder {
@@ -5617,7 +5757,7 @@ declare class MergeTextEditorComponent {
5617
5757
  readonly disabled: _angular_core.InputSignal<boolean>;
5618
5758
  readonly rows: _angular_core.InputSignal<number>;
5619
5759
  /** Come nel formula editor: `change` dove mutare il documento ridisegna mezza schermata. */
5620
- readonly commitOn: _angular_core.InputSignal<"change" | "input">;
5760
+ readonly commitOn: _angular_core.InputSignal<"input" | "change">;
5621
5761
  readonly textChange: _angular_core.OutputEmitterRef<string>;
5622
5762
  private readonly area;
5623
5763
  /**
@@ -6179,6 +6319,14 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
6179
6319
  readonly stageOptions: _angular_core.Signal<NamePickerOption[]>;
6180
6320
  isSelected(path: FlowScreenFieldPath): boolean;
6181
6321
  isContainer(field: FlowScreenField | undefined): boolean;
6322
+ isRepeatingSection(field: FlowScreenField | undefined): boolean;
6323
+ /**
6324
+ * §5.2 — il campo ha dei `fields` dentro, quale che sia il loro significato: e' la domanda che
6325
+ * serve al rilascio e al comando «aggiungi qui». I due flag restano distinti — cio' che sta in una
6326
+ * sezione ripetibile e' il **modello di una riga**, non campi della schermata — ma per decidere
6327
+ * *dove* finisce un campo trascinato la differenza non conta.
6328
+ */
6329
+ holdsFields(field: FlowScreenField | undefined): boolean;
6182
6330
  /** `true` sulla sezione, che dispone i figli **in riga**: le colonne stanno una accanto all'altra. */
6183
6331
  isSection(field: FlowScreenField | undefined): boolean;
6184
6332
  childPath(parent: FlowScreenFieldPath, index: number): FlowScreenFieldPath;
@@ -6283,6 +6431,10 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
6283
6431
  */
6284
6432
  private clickTarget;
6285
6433
  addComponentAtSelection(type: string): void;
6434
+ /** Se il tipo puo' finire dove il clic lo metterebbe: e' cio' che disabilita il chip della palette. */
6435
+ canAddAtSelection(type: string): boolean;
6436
+ /** §5.2 — l'unico divieto di collocazione: una sezione ripetibile dentro un'altra. */
6437
+ private canPlaceAt;
6286
6438
  addObjectFieldAtSelection(field: FlowFieldDescription): void;
6287
6439
  /**
6288
6440
  * Un componente nuovo. Una sezione nasce **con una colonna dentro**: una sezione vuota e'
@@ -6347,6 +6499,57 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
6347
6499
  /** L'oggetto di un `ObjectProvided`, cioe' la parte prima del punto (§5.2). */
6348
6500
  readonly providedObject: _angular_core.Signal<string>;
6349
6501
  readonly providedField: _angular_core.Signal<string>;
6502
+ /** Come si legge la voce di dizionario di un campo: il flag e' del dizionario, non del codice. */
6503
+ private readonly typeOfField;
6504
+ readonly selectedIsRepeatingSection: _angular_core.Signal<boolean>;
6505
+ /**
6506
+ * La sezione ripetibile che **contiene** il campo selezionato, se c'e'. Antenato stretto: sulla
6507
+ * sezione stessa e' `undefined`, perche' configurare la sezione e configurare un campo di una riga
6508
+ * sono due pannelli diversi.
6509
+ */
6510
+ readonly selectedRepeater: _angular_core.Signal<FlowScreenField | undefined>;
6511
+ readonly isInsideRepeater: _angular_core.Signal<boolean>;
6512
+ /**
6513
+ * Il **cursore** della riga in cui si sta: e' cio' che si nomina lì dentro (§5.2). Scrivere il nome
6514
+ * del campo — `Luce_POD` — e' `SCREEN_FIELD_IN_REPEATER`, perche' quel campo esiste in una riga per
6515
+ * elemento della collection e il riferimento non ne individua nessuna.
6516
+ */
6517
+ readonly rowCursor: _angular_core.Signal<string>;
6518
+ /**
6519
+ * Cosa proporre **per primo** nei selettori di riferimento del campo selezionato. Dentro una riga
6520
+ * e' il cursore: e' la strada normale, e i campi della riga — che sono cio' che uno cerca per
6521
+ * istinto — non compaiono affatto, perche' non sono riferimenti validi. Fuori e' vuoto, cioe'
6522
+ * l'ordine di sempre.
6523
+ */
6524
+ readonly preferredRoots: _angular_core.Signal<string[]>;
6525
+ /**
6526
+ * I tipi proponibili per il campo selezionato. Dentro una riga manca la sezione ripetibile: **non si
6527
+ * annidano** — il cursore e' una variabile sola per sezione, e due sezioni annidate ne vorrebbero due
6528
+ * vive contemporaneamente. La validazione lo rifiuta comunque, ma un editor che lascia comporre e poi
6529
+ * accusa fa perdere tempo due volte.
6530
+ */
6531
+ readonly fieldTypeOptions: _angular_core.Signal<FlowScreenFieldTypeEntry[]>;
6532
+ /**
6533
+ * La classe delle righe: l'`objectType` della **variabile** in `collectionReference` (§5.2). Si
6534
+ * legge dal documento e non da `getReferences` perche' i due riferimenti di una sezione sono
6535
+ * variabili per forza — ci scrive il runtime — e la risposta serve sincrona, dentro il template.
6536
+ */
6537
+ rowClassOf(section: FlowScreenField | undefined): string | undefined;
6538
+ /** La classe con cui si popolano le tendine dei membri: quella della sezione, dentro o fuori. */
6539
+ readonly rowClass: _angular_core.Signal<string | undefined>;
6540
+ /**
6541
+ * §5.2 — le incoerenze dei due riferimenti sono tutte `REPEATING_SECTION_INVALID`, e si dicono qui
6542
+ * invece di aspettare la validazione: riferimento mancante, costante al posto di una variabile,
6543
+ * collection scambiata col cursore, due classi diverse.
6544
+ */
6545
+ readonly repeaterIssue: _angular_core.Signal<string | null>;
6546
+ /** §5.2 — il massimo mancante e' un **avviso**: senza, l'utente puo' aggiungere righe all'infinito. */
6547
+ readonly repeaterHasNoLimit: _angular_core.Signal<boolean>;
6548
+ /**
6549
+ * La variabile del documento con quel nome, se e' una variabile. Non un riferimento qualunque: una
6550
+ * costante o una formula qui e' `REPEATING_SECTION_INVALID`, e distinguerle e' il punto.
6551
+ */
6552
+ private variableTypeOf;
6350
6553
  /** Scrive una proprieta' del campo selezionato; valore vuoto → chiave omessa (§2). */
6351
6554
  private patchField;
6352
6555
  setFieldProperty(property: keyof FlowScreenField, value: unknown): void;
@@ -6362,7 +6565,12 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
6362
6565
  */
6363
6566
  setFieldType(type: string): void;
6364
6567
  setDefaultValue(value: FlowValue | undefined): void;
6365
- setNumberProperty(property: 'scale' | 'maxLength' | 'width', raw: string): void;
6568
+ setNumberProperty(property: 'scale' | 'maxLength' | 'width' | 'minInstances' | 'maxInstances', raw: string): void;
6569
+ /**
6570
+ * §5.2 — `allowAdd` e `allowRemove` hanno default `true`: si scrive solo il `false`, che e' la
6571
+ * scelta significativa. È la stessa regola dei flag del node (§2), non quella di un `FlowValue`.
6572
+ */
6573
+ setRepeaterFlag(property: 'allowAdd' | 'allowRemove', value: boolean): void;
6366
6574
  /** `isRequired` si scrive solo quando e' vero: il default e' facoltativo. */
6367
6575
  setRequired(value: boolean): void;
6368
6576
  /** `isEditable` ha default `true`: si scrive solo il `false`, che e' la scelta significativa. */
@@ -6405,7 +6613,15 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
6405
6613
  * scrive resta `TARGET_NOT_WRITABLE`. Quindi l'allargamento e' qui, non nel picker.
6406
6614
  */
6407
6615
  readonly screenFieldTargets: _angular_core.Signal<FlowReference[]>;
6408
- /** I campi che raccolgono un valore: gli unici che un'action possa riempire, e gli unici che innescano. */
6616
+ /**
6617
+ * I campi che raccolgono un valore: gli unici che un'action possa riempire, e gli unici che
6618
+ * innescano.
6619
+ *
6620
+ * **Senza quelli dentro una riga**, che raccolgono un valore ma non sono risorse: un trigger nomina
6621
+ * un campo, e il campo di una riga non ne ha uno solo — sarebbe da dichiarare *quale* riga osserva.
6622
+ * Un `triggerFieldName` che punta lì e' `SCREEN_FIELD_IN_REPEATER`, e lo stesso vale per
6623
+ * l'`assignToReference` di un output (§5.2).
6624
+ */
6409
6625
  private valueFieldsOfScreen;
6410
6626
  /**
6411
6627
  * I campi proponibili come innesco. Sono **i campi di questa schermata**, non i riferimenti in
@@ -7186,7 +7402,7 @@ declare class FlowBuilderComponent {
7186
7402
  * troppo. `panel` tiene il form nel pannello laterale, che e' piu' comodo quando si
7187
7403
  * modificano molti elementi di fila perche' non c'e' niente da aprire e chiudere.
7188
7404
  */
7189
- readonly inspectorMode: _angular_core.InputSignal<"dialog" | "panel">;
7405
+ readonly inspectorMode: _angular_core.InputSignal<"panel" | "dialog">;
7190
7406
  /**
7191
7407
  * L'esito dell'ultima esecuzione, se l'ospite ne ha uno da mostrare.
7192
7408
  *
@@ -7588,5 +7804,5 @@ declare class SelectValueDirective implements AfterViewChecked {
7588
7804
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueDirective, "select[fbValue]", never, { "fbValue": { "alias": "fbValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
7589
7805
  }
7590
7806
 
7591
- export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, DynamicScreenInspectorComponent, ENUM_CHOICE_SET_DEFAULT_DISPLAY_FIELD, ENUM_CHOICE_SET_DEFAULT_VALUE_FIELD, ENUM_CHOICE_SET_FIELDS, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, EnumValuePickerComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_CLIPBOARD_KIND, FLOW_CLIPBOARD_VERSION, FLOW_ELEMENT_ICONS, FLOW_ELEMENT_VARIANT_FIELDS, FLOW_ELEMENT_VARIANT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_FOLD_HEIGHT, FLOW_FOLD_WIDTH, FLOW_GROUP_COLORS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_REFERENCE_FIELDS, FLOW_RESOURCE_COLLECTIONS, FLOW_VALUE_FIELDS, FLOW_VALUE_LITERAL_FIELDS, FieldAssignmentEditorComponent, FieldPickerComponent, FieldValuePickerComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowClipboardService, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, FormulaEditorComponent, FormulaValidationService, GROUP_HEADER_HEIGHT, GROUP_MIN_HEIGHT, GROUP_MIN_WIDTH, GROUP_PADDING, GroupPanelComponent, HttpFlowBuilderApi, MergeTextEditorComponent, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, PasteDialogComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourceDialogComponent, ResourceFormComponent, ResourcePanelComponent, RunDialogComponent, SEVERITY_BUCKETS, SEVERITY_ICON, SEVERITY_LABEL, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, StructureMemberPickerComponent, StructurePickerComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, allFieldsOf, applyPaste, areTypesComparable, boundsAround, buildClipboardPayload, canvasFoldId, canvasGroupId, canvasNodeId, checkConditionLogic, checkFlowName, choiceSetSourceOf, declaredChoiceSetSources, describeFieldPath, describePathEntry, duplicateField, elementIcon, emptyFlowDefinition, enumChoiceSetFieldType, fieldAt, filterReferences, flattenFields, flowNodeWidth, flowNodeWidthClass, foldSourceConnectorId, foldTargetConnectorId, groupColorClass, groupRect, hasAutoSize, innerNamesOf, insertField, isClipboardPayload, isCustomConditionLogic, isEmptyReferenceFilter, isFieldResource, isFoldReference, isGlobalReference, isNumericType, isPathInside, isTypeCheckedOperator, isUnknownEnumChoiceSetField, isValidFlowName, isValued, loadPathLevel, matchesReferenceFilter, membersInside, moveCondition, moveField, navigatePath, otherSourceFieldsOf, outletByKey, outletsOf, parseCanvasFoldId, parseCanvasGroupId, parseCanvasNodeId, parseFieldPath, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, pathAvailableNames, pathContainerLabel, pathKey, pathNotVerifiableMessage, planPaste, recomputeMembers, referenceRoot, referencedRootsOf, remapConditionLogic, removeCondition, removeField, resolvePath, rewriteReferences, sameMembers, samePath, screenActionNames, screenFieldNames, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, typeOfCollection, uniqueFlowName, valuedFieldOf, valuedFieldsOf, variantFieldOf, variantOf, variantPresetOf };
7592
- export type { ChoiceSetSource, FieldAssignmentHolder, FilterFieldOption, FilterHolder, FlowActionCall, FlowAnyNode, FlowAssignment, FlowAssignmentItem, FlowAssignmentOperator, FlowAssignmentOperatorEntry, FlowBuilderHttpConfig, FlowCanvasEdge, FlowCanvasFold, FlowCanvasGroup, FlowCanvasNode, FlowCatalogEntry, FlowCatalogParameter, FlowChoice, FlowClipboardNode, FlowClipboardPayload, FlowClipboardResource, FlowCloneRequest, FlowCollectionProcessor, FlowCollectionProcessorType, FlowComparisonOperator, FlowComparisonOperatorEntry, FlowCondition, FlowConditionHolder, FlowConditionLogic, FlowConflictState, FlowConnectionKind, FlowConnector, FlowConnectorTarget, FlowConstant, FlowCreateRequest, FlowCustomError, FlowCustomErrorMessage, FlowCustomProperty, FlowDataType, FlowDataTypeEntry, FlowDecision, FlowDecisionRule, FlowDefinition, FlowDictionaries, FlowDictionaryEntry, FlowDynamicChoiceSet, FlowDynamicScreen, FlowEdge, FlowElementType, FlowElementTypeEntry, FlowEnumValue, FlowErrorCategory, FlowExportQuery, FlowFieldDescription, FlowFieldUsage, FlowFieldValue, FlowFormKind, FlowFormula, FlowFormulaFunction, FlowFormulaFunctionParameter, FlowFormulaIssue, FlowFormulaUsage, FlowFormulaValidationRequest, FlowFormulaValidationResult, FlowGlobalVariableEntry, FlowGroup, FlowGroupRef, FlowGroupTarget, FlowInputFieldAssignment, FlowInputParameter, FlowInterviewResult, FlowInterviewStatus, FlowIssueSeverity, FlowLayoutDirection, FlowLayoutNodeInput, FlowLayoutOptions, FlowLayoutResult, FlowListQuery, FlowLoop, FlowNameCheck, FlowNameProblem, FlowNewVersionRequest, FlowNodeBase, FlowNodeCollection, FlowNodeRef, FlowObjectDescription, FlowObjectSummary, FlowOffsetUnit, FlowOrchestratedStage, FlowOutlet, FlowOutline, FlowOutlineConnection, FlowOutlineGroup, FlowOutlineNode, FlowOutputFieldAssignment, FlowOutputParameter, FlowPalettePick, FlowPastePlan, FlowPasteRename, FlowPasteResource, FlowPendingScreen, FlowProcessType, FlowRecordCreate, FlowRecordDelete, FlowRecordFilter, FlowRecordFilterOperator, FlowRecordLookup, FlowRecordRollback, FlowRecordTriggerType, FlowRecordUpdate, FlowRecordValue, FlowRect, FlowReference, FlowReferenceFilter, FlowReferenceKind, FlowRegionContainerType, FlowResourceCollection, FlowResourceEdit, FlowResourceKindEntry, FlowResourceRef, FlowResourceTarget, FlowResumeRequest, FlowRunOutcome, FlowRunRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenAction, FlowScreenField, FlowScreenFieldInputsRevisited, FlowScreenFieldNode, FlowScreenFieldPath, FlowScreenFieldType, FlowScreenFieldTypeEntry, FlowScreenNavigation, FlowScreenResponseRequest, FlowScreenTrigger, FlowScreenTriggerInitBehavior, FlowScreenValidationRule, FlowScriptPluginCall, FlowSeverityBucket, FlowSortOption, FlowSortOrder, FlowStage, FlowStageStep, FlowStageStepActionType, FlowStageStepAssignee, FlowStageStepConditionActionType, FlowStageStepRequest, FlowStageStepState, FlowStageStepStatus, FlowStageStepTypeEntry, FlowStart, FlowStartInterviewRequest, FlowStructureDescribed, FlowStructureDescription, FlowStructureInstance, FlowStructureMember, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, FlowTypedEntry, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, NamePickerOption, PaletteGroup, PaletteItem, ParameterHolder, PathCatalog, PathContainer, PathContainerKind, PathEntry, PathLevel, PathLevelStatus, PathNavigation, PathNavigationRequest, PathResolution, PathStopReason, PathValueSet, StructureMemberUsage, ValueMode };
7807
+ export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, DynamicScreenInspectorComponent, ENUM_CHOICE_SET_DEFAULT_DISPLAY_FIELD, ENUM_CHOICE_SET_DEFAULT_VALUE_FIELD, ENUM_CHOICE_SET_FIELDS, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, EnumValuePickerComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_CLIPBOARD_KIND, FLOW_CLIPBOARD_VERSION, FLOW_ELEMENT_ICONS, FLOW_ELEMENT_VARIANT_FIELDS, FLOW_ELEMENT_VARIANT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_FOLD_HEIGHT, FLOW_FOLD_WIDTH, FLOW_GROUP_COLORS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_REFERENCE_FIELDS, FLOW_RESOURCE_COLLECTIONS, FLOW_VALUE_FIELDS, FLOW_VALUE_LITERAL_FIELDS, FieldAssignmentEditorComponent, FieldPickerComponent, FieldValuePickerComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowClipboardService, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, FormulaEditorComponent, FormulaValidationService, GROUP_HEADER_HEIGHT, GROUP_MIN_HEIGHT, GROUP_MIN_WIDTH, GROUP_PADDING, GroupPanelComponent, HttpFlowBuilderApi, MergeTextEditorComponent, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, PasteDialogComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourceDialogComponent, ResourceFormComponent, ResourcePanelComponent, RunDialogComponent, SEVERITY_BUCKETS, SEVERITY_ICON, SEVERITY_LABEL, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, StructureMemberPickerComponent, StructurePickerComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, allFieldsOf, applyPaste, areTypesComparable, boundsAround, buildClipboardPayload, canvasFoldId, canvasGroupId, canvasNodeId, checkConditionLogic, checkFlowName, choiceSetSourceOf, declaredChoiceSetSources, describeFieldPath, describePathEntry, duplicateField, elementIcon, emptyFlowDefinition, enumChoiceSetFieldType, fieldAt, filterReferences, flattenFields, flowNodeWidth, flowNodeWidthClass, foldSourceConnectorId, foldTargetConnectorId, groupColorClass, groupRect, hasAutoSize, innerNamesOf, insertField, isClipboardPayload, isCustomConditionLogic, isEmptyReferenceFilter, isFieldResource, isFoldReference, isGlobalReference, isNumericType, isPathInside, isTypeCheckedOperator, isUnknownEnumChoiceSetField, isValidFlowName, isValued, loadPathLevel, matchesReferenceFilter, membersInside, moveCondition, moveField, navigatePath, otherSourceFieldsOf, outletByKey, outletsOf, parseCanvasFoldId, parseCanvasGroupId, parseCanvasNodeId, parseFieldPath, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, pathAvailableNames, pathContainerLabel, pathKey, pathNotVerifiableMessage, planPaste, recomputeMembers, referenceRoot, referencedRootsOf, remapConditionLogic, removeCondition, removeField, repeatedFieldNames, repeatingSectionOf, resolvePath, resourceFieldsOf, rewriteReferences, sameMembers, samePath, screenActionNames, screenFieldNames, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, typeOfCollection, uniqueFlowName, valuedFieldOf, valuedFieldsOf, variantFieldOf, variantOf, variantPresetOf };
7808
+ export type { ChoiceSetSource, FieldAssignmentHolder, FilterFieldOption, FilterHolder, FlowActionCall, FlowAnyNode, FlowAssignment, FlowAssignmentItem, FlowAssignmentOperator, FlowAssignmentOperatorEntry, FlowBuilderHttpConfig, FlowCanvasEdge, FlowCanvasFold, FlowCanvasGroup, FlowCanvasNode, FlowCatalogEntry, FlowCatalogParameter, FlowChoice, FlowClipboardNode, FlowClipboardPayload, FlowClipboardResource, FlowCloneRequest, FlowCollectionProcessor, FlowCollectionProcessorType, FlowComparisonOperator, FlowComparisonOperatorEntry, FlowCondition, FlowConditionHolder, FlowConditionLogic, FlowConflictState, FlowConnectionKind, FlowConnector, FlowConnectorTarget, FlowConstant, FlowCreateRequest, FlowCustomError, FlowCustomErrorMessage, FlowCustomProperty, FlowDataType, FlowDataTypeEntry, FlowDecision, FlowDecisionRule, FlowDefinition, FlowDictionaries, FlowDictionaryEntry, FlowDynamicChoiceSet, FlowDynamicScreen, FlowEdge, FlowElementType, FlowElementTypeEntry, FlowEnumValue, FlowErrorCategory, FlowExportQuery, FlowFieldDescription, FlowFieldUsage, FlowFieldValue, FlowFormKind, FlowFormula, FlowFormulaFunction, FlowFormulaFunctionParameter, FlowFormulaIssue, FlowFormulaUsage, FlowFormulaValidationRequest, FlowFormulaValidationResult, FlowGlobalVariableEntry, FlowGroup, FlowGroupRef, FlowGroupTarget, FlowInputFieldAssignment, FlowInputParameter, FlowInterviewResult, FlowInterviewStatus, FlowIssueSeverity, FlowLayoutDirection, FlowLayoutNodeInput, FlowLayoutOptions, FlowLayoutResult, FlowListQuery, FlowLoop, FlowNameCheck, FlowNameProblem, FlowNewVersionRequest, FlowNodeBase, FlowNodeCollection, FlowNodeRef, FlowObjectDescription, FlowObjectSummary, FlowOffsetUnit, FlowOrchestratedStage, FlowOutlet, FlowOutline, FlowOutlineConnection, FlowOutlineGroup, FlowOutlineNode, FlowOutputFieldAssignment, FlowOutputParameter, FlowPalettePick, FlowPastePlan, FlowPasteRename, FlowPasteResource, FlowPendingScreen, FlowProcessType, FlowRecordCreate, FlowRecordDelete, FlowRecordFilter, FlowRecordFilterOperator, FlowRecordLookup, FlowRecordRollback, FlowRecordTriggerType, FlowRecordUpdate, FlowRecordValue, FlowRect, FlowReference, FlowReferenceFilter, FlowReferenceKind, FlowRegionContainerType, FlowResourceCollection, FlowResourceEdit, FlowResourceKindEntry, FlowResourceRef, FlowResourceTarget, FlowResumeRequest, FlowRunOutcome, FlowRunRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenAction, FlowScreenField, FlowScreenFieldInputsRevisited, FlowScreenFieldNode, FlowScreenFieldPath, FlowScreenFieldType, FlowScreenFieldTypeEntry, FlowScreenFieldTypeResolver, FlowScreenNavigation, FlowScreenResponseRequest, FlowScreenTrigger, FlowScreenTriggerInitBehavior, FlowScreenValidationRule, FlowScriptPluginCall, FlowSeverityBucket, FlowSortOption, FlowSortOrder, FlowStage, FlowStageStep, FlowStageStepActionType, FlowStageStepAssignee, FlowStageStepConditionActionType, FlowStageStepRequest, FlowStageStepState, FlowStageStepStatus, FlowStageStepTypeEntry, FlowStart, FlowStartInterviewRequest, FlowStructureDescribed, FlowStructureDescription, FlowStructureInstance, FlowStructureMember, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, FlowTypedEntry, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, NamePickerOption, PaletteGroup, PaletteItem, ParameterHolder, PathCatalog, PathContainer, PathContainerKind, PathEntry, PathLevel, PathLevelStatus, PathNavigation, PathNavigationRequest, PathResolution, PathStopReason, PathValueSet, StructureMemberUsage, ValueMode };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/flow-builder",
3
- "version": "20.3.44",
3
+ "version": "20.3.45",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^20.2.14",
6
6
  "@angular/common": "^20.3.28",