@esfaenza/flow-builder 20.3.2 → 20.3.4
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/README.md +59 -14
- package/fesm2022/esfaenza-flow-builder.mjs +917 -154
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +466 -36
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -13,8 +13,13 @@ import { EFMarkerType, EFConnectableSide } from '@foblex/flow';
|
|
|
13
13
|
* - gli enum sono stringhe, ma i tipi sono aperti (`| string`) perche' gli elenchi
|
|
14
14
|
* autoritativi arrivano da `GET /flows/dictionaries` e possono crescere (§13.11).
|
|
15
15
|
*/
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* §4.2 — gli otto tipi del sistema. Aperto: il dizionario `dataTypes` e' autoritativo.
|
|
18
|
+
*
|
|
19
|
+
* `Structure` non e' un doppione di `Object` (§4.7): di un `Object` non record il flow non sa
|
|
20
|
+
* nulla oltre a trasportarlo, di una `Structure` legge e scrive i **membri**.
|
|
21
|
+
*/
|
|
22
|
+
type FlowDataType = 'String' | 'Integer' | 'Number' | 'Date' | 'Boolean' | 'Enum' | 'Object' | 'Structure' | string;
|
|
18
23
|
type FlowProcessType = 'Screen' | 'AutoLaunched' | 'Evaluation' | 'Orchestration' | string;
|
|
19
24
|
type FlowVersionStatus = 'Draft' | 'InvalidDraft' | 'UnderReview' | 'Active' | 'Obsolete' | string;
|
|
20
25
|
type FlowTriggerType = 'None' | 'RecordBeforeSave' | 'RecordAfterSave' | 'RecordBeforeDelete' | 'Scheduled' | 'Event' | string;
|
|
@@ -28,6 +33,9 @@ type FlowTransactionModel = 'Automatic' | 'CurrentTransaction' | 'NewTransaction
|
|
|
28
33
|
* §4.2 — un riferimento **oppure** un valore letterale.
|
|
29
34
|
* Va valorizzato **uno e un solo** campo; `formulaExpression` e' l'unica eccezione
|
|
30
35
|
* (espressione + tipo atteso). Piu' campi insieme = `VALUE_AMBIGUOUS`.
|
|
36
|
+
*
|
|
37
|
+
* Non esiste un `structureValue` e non ci sara' (§4.7): un'istanza di classe nasce dal runtime
|
|
38
|
+
* e nel metadata si cita solo per riferimento, come un record.
|
|
31
39
|
*/
|
|
32
40
|
interface FlowValue {
|
|
33
41
|
elementReference?: string;
|
|
@@ -98,7 +106,11 @@ interface FlowVariable {
|
|
|
98
106
|
name?: string;
|
|
99
107
|
description?: string;
|
|
100
108
|
dataType?: FlowDataType;
|
|
101
|
-
/**
|
|
109
|
+
/**
|
|
110
|
+
* Obbligatorio per `Object`, `Enum` e `Structure`: nome dell'entita', del tipo di enum o
|
|
111
|
+
* della classe. Su una `Structure` la sua assenza e' un **errore** (`OBJECT_TYPE_MISSING`),
|
|
112
|
+
* non un avviso: senza il nome della classe il runtime non ha nulla da istanziare (§4.7).
|
|
113
|
+
*/
|
|
102
114
|
objectType?: string;
|
|
103
115
|
isCollection?: boolean;
|
|
104
116
|
isInput?: boolean;
|
|
@@ -348,6 +360,10 @@ interface FlowCustomError extends FlowNodeBase {
|
|
|
348
360
|
/** §5.12 */
|
|
349
361
|
interface FlowTransformValueAction {
|
|
350
362
|
transformType?: FlowTransformType;
|
|
363
|
+
/**
|
|
364
|
+
* Il campo di destinazione, oppure — se il target e' una `Structure` — il nome del
|
|
365
|
+
* **membro** della classe (§5.12, §4.7).
|
|
366
|
+
*/
|
|
351
367
|
outputFieldApiName?: string;
|
|
352
368
|
value?: FlowValue;
|
|
353
369
|
inputParameters?: FlowInputParameter[];
|
|
@@ -539,10 +555,19 @@ interface FlowDictionaryEntry {
|
|
|
539
555
|
}
|
|
540
556
|
interface FlowDataTypeEntry extends FlowDictionaryEntry {
|
|
541
557
|
value: FlowDataType;
|
|
542
|
-
/**
|
|
558
|
+
/**
|
|
559
|
+
* `Object`, `Enum` e `Structure` richiedono `objectType` (§4.6). Su una `Structure` la sua
|
|
560
|
+
* assenza e' un errore e non un avviso: vedi {@link isStructure} e §4.7.
|
|
561
|
+
*/
|
|
543
562
|
requiresObjectType?: boolean;
|
|
544
563
|
/** `scale` si applica solo ai numerici (§4.6). */
|
|
545
564
|
supportsScale?: boolean;
|
|
565
|
+
/**
|
|
566
|
+
* §4.7 — il tipo e' un'istanza di classe: `objectType` porta il nome della classe, i valori
|
|
567
|
+
* proponibili arrivano da `listStructures()` e i suoi **membri** da
|
|
568
|
+
* `describeStructure()`. Non ha una forma letterale con cui esprimersi.
|
|
569
|
+
*/
|
|
570
|
+
isStructure?: boolean;
|
|
546
571
|
}
|
|
547
572
|
/** §3.2 — la voce che descrive un tipo di elemento. */
|
|
548
573
|
interface FlowElementTypeEntry extends FlowDictionaryEntry {
|
|
@@ -658,20 +683,69 @@ interface FlowFieldDescription {
|
|
|
658
683
|
label?: string | null;
|
|
659
684
|
dataType?: FlowDataType;
|
|
660
685
|
objectType?: string | null;
|
|
686
|
+
/**
|
|
687
|
+
* `false` → non si puo' filtrare su questo campo. Non e' un dettaglio: la chiave di
|
|
688
|
+
* un'entita' con chiave composta puo' essere **non filtrabile** (porta la forma canonica
|
|
689
|
+
* della chiave), e il filtro «per identificativo» va scritto una colonna alla volta (§5.7).
|
|
690
|
+
*/
|
|
661
691
|
isFilterable?: boolean;
|
|
662
692
|
isSortable?: boolean;
|
|
693
|
+
/** Aggiornabile da un Update: altrimenti `FIELD_NOT_UPDATEABLE` (§5.7). */
|
|
663
694
|
isUpdateable?: boolean;
|
|
695
|
+
/**
|
|
696
|
+
* Valorizzabile da un Create: altrimenti `FIELD_NOT_CREATEABLE` (§5.7). **Non** e' lo stesso
|
|
697
|
+
* insieme di `isUpdateable` — la colonna di una chiave naturale la scrive chi crea il record
|
|
698
|
+
* e non si cambia dopo, un identificativo generato dal database e' l'opposto.
|
|
699
|
+
*/
|
|
700
|
+
isCreateable?: boolean;
|
|
664
701
|
isRequired?: boolean;
|
|
665
702
|
/** `true` → i valori ammessi si chiedono a `.../fields/{field}/values`. */
|
|
666
703
|
hasClosedValueSet?: boolean;
|
|
667
704
|
}
|
|
668
|
-
/** `any` | `filterable` | `sortable` | `updateable` (§6.4). */
|
|
669
|
-
type FlowFieldUsage = 'any' | 'filterable' | 'sortable' | 'updateable';
|
|
705
|
+
/** `any` | `filterable` | `sortable` | `updateable` | `createable` (§6.4). */
|
|
706
|
+
type FlowFieldUsage = 'any' | 'filterable' | 'sortable' | 'updateable' | 'createable';
|
|
670
707
|
interface FlowFieldValue {
|
|
671
708
|
value: string;
|
|
672
709
|
label?: string | null;
|
|
673
710
|
}
|
|
674
|
-
/**
|
|
711
|
+
/**
|
|
712
|
+
* §4.7 — un membro di una classe utilizzabile come `Structure`.
|
|
713
|
+
*
|
|
714
|
+
* È l'analogo di {@link FlowFieldDescription} per le classi, e la colonna che conta e'
|
|
715
|
+
* `isWritable`: un membro calcolato (una property senza setter) si legge in una condizione ma
|
|
716
|
+
* assegnarlo e' `TARGET_NOT_WRITABLE`. Nei campi che chiedono una **destinazione** si propongono
|
|
717
|
+
* quindi solo i membri scrivibili.
|
|
718
|
+
*/
|
|
719
|
+
interface FlowStructureMember {
|
|
720
|
+
name: string;
|
|
721
|
+
label?: string | null;
|
|
722
|
+
description?: string | null;
|
|
723
|
+
dataType?: FlowDataType;
|
|
724
|
+
isCollection?: boolean;
|
|
725
|
+
/** Per un membro `Object`, `Enum` o `Structure`: l'entita', l'enum o la classe annidata. */
|
|
726
|
+
objectType?: string | null;
|
|
727
|
+
isWritable?: boolean;
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* §4.7.1 — la risposta di `GET /catalog/structures/{className}/members`: **non** un array di
|
|
731
|
+
* membri, ma la descrizione della classe con l'array sotto `members`.
|
|
732
|
+
*
|
|
733
|
+
* L'involucro porta la `label` della classe, che l'array nudo perderebbe e che serve
|
|
734
|
+
* all'intestazione dell'elenco dei membri; `className` e' ridondante rispetto al path e rende la
|
|
735
|
+
* risposta autoconsistente se finisce in cache. `members` e' **piatto e non ricorsivo**: un membro
|
|
736
|
+
* di tipo `Structure` porta la classe annidata in `objectType` e i suoi membri sono una seconda
|
|
737
|
+
* chiamata, altrimenti una classe che si referenzia renderebbe la risposta infinita.
|
|
738
|
+
*/
|
|
739
|
+
interface FlowStructureDescription {
|
|
740
|
+
className?: string;
|
|
741
|
+
label?: string | null;
|
|
742
|
+
/**
|
|
743
|
+
* Vuoto significa **membri non dichiarati**, non "classe inesistente": quella e' un 404, e le
|
|
744
|
+
* due cose portano a comportamenti opposti (digitare a mano contro segnalare la classe).
|
|
745
|
+
*/
|
|
746
|
+
members?: FlowStructureMember[];
|
|
747
|
+
}
|
|
748
|
+
/** Voce di catalogo per action, script, form, eventi, tipi di enum, classi. */
|
|
675
749
|
interface FlowCatalogEntry {
|
|
676
750
|
name: string;
|
|
677
751
|
label?: string | null;
|
|
@@ -852,10 +926,35 @@ type FlowInterviewStatus = 'Completed' | 'WaitingForScreen' | 'Paused' | 'Suspen
|
|
|
852
926
|
/** I criteri dello Start non erano soddisfatti: non e' un errore (§6.5). */
|
|
853
927
|
| 'NotStarted' | string;
|
|
854
928
|
type FlowScreenNavigation = 'Next' | 'Previous' | 'Pause' | 'Finish' | string;
|
|
855
|
-
/**
|
|
929
|
+
/** §6.5 — un record dentro un valore tipizzato: forma propria, non `value`. */
|
|
930
|
+
interface FlowRecordValue {
|
|
931
|
+
objectType?: string;
|
|
932
|
+
id?: string | null;
|
|
933
|
+
fields?: Record<string, unknown>;
|
|
934
|
+
}
|
|
935
|
+
/**
|
|
936
|
+
* §4.7, §6.5 — un'istanza di classe: `className` piu' i **membri**, ognuno a sua volta un
|
|
937
|
+
* valore tipizzato. È la stessa forma in lettura e in scrittura: passando un'istanza come input
|
|
938
|
+
* si scrive `className` e i soli membri che si vogliono valorizzare.
|
|
939
|
+
*/
|
|
940
|
+
interface FlowStructureInstance {
|
|
941
|
+
className?: string;
|
|
942
|
+
members?: Record<string, FlowTypedValue>;
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Il tipo dichiarato **vince** in lettura: distingue `Integer` da `Number` (§6.5).
|
|
946
|
+
*
|
|
947
|
+
* Due tipi hanno una forma propria invece di `value`: un record (`record`) e un'istanza di
|
|
948
|
+
* classe (`instance`). Chi legge guarda `type` e poi il campo giusto — un `Structure` con
|
|
949
|
+
* `value` valorizzato non esiste.
|
|
950
|
+
*/
|
|
856
951
|
interface FlowTypedValue {
|
|
857
952
|
type?: FlowDataType;
|
|
858
953
|
value?: unknown;
|
|
954
|
+
/** Con `type: 'Object'` su un record (§6.5). */
|
|
955
|
+
record?: FlowRecordValue;
|
|
956
|
+
/** Con `type: 'Structure'` (§4.7). */
|
|
957
|
+
instance?: FlowStructureInstance;
|
|
859
958
|
}
|
|
860
959
|
interface FlowPendingScreen {
|
|
861
960
|
elementName?: string;
|
|
@@ -975,7 +1074,15 @@ type FlowErrorCategory =
|
|
|
975
1074
|
/** Qualcun altro ha salvato: proponi ricarica (§9). */
|
|
976
1075
|
| 'VersionConflict'
|
|
977
1076
|
/** Funzione non configurata su questo ambiente: disabilita il comando. */
|
|
978
|
-
| 'MissingService'
|
|
1077
|
+
| 'MissingService'
|
|
1078
|
+
/**
|
|
1079
|
+
* §4.7.1 — classe non registrata (o `IStructureMgr` assente sull'host): il 404 dei membri di
|
|
1080
|
+
* una classe. **Non e' una lista vuota**: quella dice "membri non dichiarati" e lascia
|
|
1081
|
+
* digitare il nome, questa dice "classe sconosciuta" e va segnalata sulla risorsa
|
|
1082
|
+
* (`STRUCTURE_TYPE_UNKNOWN`). Categoria propria perche' altrimenti un 404 ricadrebbe su
|
|
1083
|
+
* `FlowNotFound`, che qui vorrebbe dire una cosa diversa e falsa.
|
|
1084
|
+
*/
|
|
1085
|
+
| 'StructureNotFound' | 'InvalidToken' | 'InterviewNotFound'
|
|
979
1086
|
/** Fallback per un errore di trasporto non categorizzato. */
|
|
980
1087
|
| 'Unknown' | string;
|
|
981
1088
|
/** L'errore che ogni primitiva puo' rifiutare (§6, §10). */
|
|
@@ -1121,6 +1228,38 @@ declare abstract class FlowBuilderApi {
|
|
|
1121
1228
|
abstract listFormParameters(formName: string): Promise<FlowCatalogParameter[]>;
|
|
1122
1229
|
/** `GET /catalog/enum-types` — per `objectType` delle risorse `Enum`. */
|
|
1123
1230
|
abstract listEnumTypes(): Promise<FlowCatalogEntry[]>;
|
|
1231
|
+
/**
|
|
1232
|
+
* `GET /catalog/structures` — le classi utilizzabili come `objectType` di una risorsa
|
|
1233
|
+
* `Structure` (§4.7). È un **elenco di classi** nella forma di ogni altro catalogo: i membri
|
|
1234
|
+
* non ci sono, si chiedono con {@link describeStructure} (§4.7.1).
|
|
1235
|
+
*
|
|
1236
|
+
* Opzionale di proposito: un ambiente che non la espone non deve rompersi. L'effetto e' che le
|
|
1237
|
+
* classi non sono verificabili — elenco vuoto significa "non lo so", non "nessuna" — e il nome
|
|
1238
|
+
* si scrive a mano, esattamente come per un catalogo non popolato (§7).
|
|
1239
|
+
*/
|
|
1240
|
+
listStructures(): Promise<FlowCatalogEntry[]>;
|
|
1241
|
+
/**
|
|
1242
|
+
* `GET /catalog/structures/{className}/members` — la **descrizione** di una classe: l'analogo di
|
|
1243
|
+
* `listFields` per le `Structure` (§4.7). Si chiama `describeStructure` e non
|
|
1244
|
+
* `listStructureMembers` perche' la risposta non e' un elenco: e' un oggetto con `className`,
|
|
1245
|
+
* `label` e l'array sotto `members` (§4.7.1, `IStructureMgr.DescribeStructure`).
|
|
1246
|
+
*
|
|
1247
|
+
* `members` e' **piatto**: nessuna paginazione e **nessun membro annidato** — un membro di tipo
|
|
1248
|
+
* `Structure` porta la classe in `objectType` e i suoi membri si chiedono con una seconda
|
|
1249
|
+
* chiamata. La risposta e' non ricorsiva di proposito: una classe che si referenzia sarebbe
|
|
1250
|
+
* infinita.
|
|
1251
|
+
*
|
|
1252
|
+
* `isWritable` e' la colonna che decide: nei campi che chiedono una **destinazione** si
|
|
1253
|
+
* propongono solo i membri scrivibili, perche' un membro calcolato si legge ma assegnarlo e'
|
|
1254
|
+
* `TARGET_NOT_WRITABLE`.
|
|
1255
|
+
*
|
|
1256
|
+
* **Tre esiti, non due** (§4.7.1): `members` popolato e' un elenco **autorevole** (fuori
|
|
1257
|
+
* elenco = `STRUCTURE_MEMBER_UNKNOWN`); `members` **vuoto** dice "membri non dichiarati" e il
|
|
1258
|
+
* nome del membro va lasciato digitare; un rifiuto `StructureNotFound` dice "classe non
|
|
1259
|
+
* registrata", ed e' la classe che va segnalata, non il membro. Chi implementa l'interfaccia
|
|
1260
|
+
* non deve appiattire il rifiuto in una descrizione vuota: sono cose diverse.
|
|
1261
|
+
*/
|
|
1262
|
+
describeStructure(className: string): Promise<FlowStructureDescription>;
|
|
1124
1263
|
/** `GET /catalog/events` — per gli eventi di un Wait. */
|
|
1125
1264
|
abstract listEvents(): Promise<FlowCatalogEntry[]>;
|
|
1126
1265
|
/**
|
|
@@ -1217,6 +1356,18 @@ declare class HttpFlowBuilderApi extends FlowBuilderApi {
|
|
|
1217
1356
|
listForms(): Promise<FlowCatalogEntry[]>;
|
|
1218
1357
|
listFormParameters(formName: string): Promise<FlowCatalogParameter[]>;
|
|
1219
1358
|
listEnumTypes(): Promise<FlowCatalogEntry[]>;
|
|
1359
|
+
/** §4.7.1 — solo l'elenco delle classi: i membri **non** ci sono, si chiedono a parte. */
|
|
1360
|
+
listStructures(): Promise<FlowCatalogEntry[]>;
|
|
1361
|
+
/**
|
|
1362
|
+
* §4.7.1 — la descrizione della classe: `className`, `label` e i membri sotto `members`. Non e'
|
|
1363
|
+
* un array nudo, e leggerlo come tale darebbe zero membri senza un errore.
|
|
1364
|
+
*
|
|
1365
|
+
* Il 404 non e' `members: []`, e qui e' l'unico posto che lo sappia: senza questa traduzione
|
|
1366
|
+
* ricadrebbe su `FlowNotFound` («il flow non esiste piu’»), che sarebbe falso e indistinguibile
|
|
1367
|
+
* da "membri non dichiarati". Diventa `StructureNotFound`, e chi chiama decide: classe
|
|
1368
|
+
* sconosciuta = segnalare, lista vuota = lasciar digitare.
|
|
1369
|
+
*/
|
|
1370
|
+
describeStructure(className: string): Promise<FlowStructureDescription>;
|
|
1220
1371
|
listEvents(): Promise<FlowCatalogEntry[]>;
|
|
1221
1372
|
listSubflowCandidates(excluding?: string): Promise<FlowSummary[]>;
|
|
1222
1373
|
startInterview(request: FlowStartInterviewRequest): Promise<FlowInterviewResult>;
|
|
@@ -1294,10 +1445,45 @@ declare const TYPES_WITH_AUTOMATIC_OUTPUT: ReadonlySet<string>;
|
|
|
1294
1445
|
*/
|
|
1295
1446
|
declare const FLOW_ELEMENT_ICONS: Record<string, string>;
|
|
1296
1447
|
/**
|
|
1297
|
-
* Il glifo
|
|
1298
|
-
*
|
|
1448
|
+
* Il glifo delle varianti (§5.5): due voci di palette dello stesso tipo con lo stesso simbolo
|
|
1449
|
+
* si distinguerebbero solo dall'etichetta, e sulla palette il simbolo e' la prima cosa che si
|
|
1450
|
+
* guarda. La chiave e' `tipo:variante`.
|
|
1451
|
+
*/
|
|
1452
|
+
declare const FLOW_ELEMENT_VARIANT_ICONS: Record<string, string>;
|
|
1453
|
+
/**
|
|
1454
|
+
* Il glifo del tipo, o della sua variante quando c'e'. Per un tipo che il dizionario del
|
|
1455
|
+
* backend aggiunge e questa mappa non conosce, l'iniziale dell'etichetta e' un segnaposto
|
|
1456
|
+
* migliore di un simbolo generico.
|
|
1457
|
+
*/
|
|
1458
|
+
declare function elementIcon(type: string, label?: string, variant?: string): string;
|
|
1459
|
+
|
|
1460
|
+
/**
|
|
1461
|
+
* I tipi che sulla palette valgono per **piu' di una voce** — FRONTEND.md §5.5.
|
|
1462
|
+
*
|
|
1463
|
+
* Il Collection Processor e' un solo tipo di node con un discriminatore
|
|
1464
|
+
* (`collectionProcessorType`: `Sort` o `Filter`), e i campi rilevanti cambiano con esso: un
|
|
1465
|
+
* `Sort` vuole `sortOptions`, un `Filter` vuole condizioni. Sono due gesti diversi, e una
|
|
1466
|
+
* voce sola («ordina o filtra») costringe a scegliere dopo, dentro il form.
|
|
1467
|
+
*
|
|
1468
|
+
* Qui sta **solo** la mappa tipo → campo del discriminatore: i valori ammessi restano nel
|
|
1469
|
+
* dizionario del backend (`collectionProcessorTypes`), come per ogni altro enum (§6.4). Senza
|
|
1470
|
+
* quel dizionario il tipo torna a essere una voce sola, che e' il comportamento giusto quando
|
|
1471
|
+
* non si sa quali varianti esistano.
|
|
1472
|
+
*
|
|
1473
|
+
* Se un tipo nuovo arrivasse con lo stesso schema — un node con un discriminatore che ne
|
|
1474
|
+
* cambia i campi — si aggiunge una riga qui e la palette si divide da se'.
|
|
1475
|
+
*/
|
|
1476
|
+
/** Tipo di elemento → campo del node che porta la variante. */
|
|
1477
|
+
declare const FLOW_ELEMENT_VARIANT_FIELDS: Record<string, string>;
|
|
1478
|
+
/** Il campo del discriminatore, se il tipo ne ha uno. */
|
|
1479
|
+
declare function variantFieldOf(type: string): string | undefined;
|
|
1480
|
+
/** La variante di un node già scritto, letta dal suo discriminatore. */
|
|
1481
|
+
declare function variantOf(type: string, node: Record<string, unknown>): string | undefined;
|
|
1482
|
+
/**
|
|
1483
|
+
* I campi da scrivere su un node appena creato dalla variante scelta. Vuoto per i tipi senza
|
|
1484
|
+
* varianti: chi crea l'elemento non deve sapere quali sono.
|
|
1299
1485
|
*/
|
|
1300
|
-
declare function
|
|
1486
|
+
declare function variantPresetOf(type: string, variant: string | undefined): Record<string, unknown>;
|
|
1301
1487
|
|
|
1302
1488
|
/**
|
|
1303
1489
|
* Nomi — FRONTEND.md §3.3, §13.5.
|
|
@@ -1634,6 +1820,15 @@ declare class FlowDictionaryStore {
|
|
|
1634
1820
|
/** Le categorie della palette, nell'ordine di prima apparizione nel dizionario. */
|
|
1635
1821
|
readonly paletteCategories: _angular_core.Signal<string[]>;
|
|
1636
1822
|
elementType(value: string): FlowElementTypeEntry | undefined;
|
|
1823
|
+
/**
|
|
1824
|
+
* Le varianti di un tipo, cioe' i valori del suo discriminatore (§5.5). L'unico oggi e' il
|
|
1825
|
+
* Collection Processor. Elenco vuoto = tipo senza varianti, **oppure** dizionario non
|
|
1826
|
+
* disponibile: in entrambi i casi la palette mostra una voce sola, che e' l'unica cosa
|
|
1827
|
+
* onesta da fare quando non si sa quali varianti esistano.
|
|
1828
|
+
*/
|
|
1829
|
+
variantsOf(type: string): FlowDictionaryEntry[];
|
|
1830
|
+
/** L'etichetta di una variante, con fallback sul valore grezzo. */
|
|
1831
|
+
variantLabelOf(type: string, variant: string | undefined): string;
|
|
1637
1832
|
/** La collection in cui scrivere un node: `metadataProperty`, con fallback locale (§3.2). */
|
|
1638
1833
|
collectionOf(type: string): FlowNodeCollection | undefined;
|
|
1639
1834
|
/** Etichetta di un tipo, con fallback: un tipo sconosciuto mostra il proprio `value`. */
|
|
@@ -1673,13 +1868,48 @@ declare class FlowDictionaryStore {
|
|
|
1673
1868
|
/** `stepInteractive` e `stepApproval` vogliono gli assegnatari (§5.13). */
|
|
1674
1869
|
stageStepRequiresAssignees(actionType: string | undefined | null): boolean;
|
|
1675
1870
|
dataType(value: string | undefined | null): FlowDataTypeEntry | undefined;
|
|
1676
|
-
/** §4.6 — `Object`
|
|
1871
|
+
/** §4.6, §4.7 — `Object`, `Enum` e `Structure` richiedono `objectType`. */
|
|
1677
1872
|
requiresObjectType(dataType: string | undefined | null): boolean;
|
|
1873
|
+
/**
|
|
1874
|
+
* §4.7 — il tipo e' un'istanza di classe. Il flag arriva dal dizionario (`isStructure`); il
|
|
1875
|
+
* fallback sul nome serve solo se il backend non lo dichiara.
|
|
1876
|
+
*/
|
|
1877
|
+
isStructure(dataType: string | undefined | null): boolean;
|
|
1878
|
+
/**
|
|
1879
|
+
* §4.7 — su una `Structure` un `objectType` mancante **blocca l'attivazione**: e' un errore
|
|
1880
|
+
* (`OBJECT_TYPE_MISSING`), non un avviso, perche' il runtime non ha nulla da istanziare. La
|
|
1881
|
+
* differenza serve all'interfaccia, che deve mostrare i due casi con colori diversi.
|
|
1882
|
+
*/
|
|
1883
|
+
objectTypeIsError(dataType: string | undefined | null): boolean;
|
|
1678
1884
|
/** §4.6 — `scale` si applica solo ai numerici. */
|
|
1679
1885
|
supportsScale(dataType: string | undefined | null): boolean;
|
|
1680
1886
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlowDictionaryStore, never>;
|
|
1681
1887
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FlowDictionaryStore>;
|
|
1682
1888
|
}
|
|
1889
|
+
/**
|
|
1890
|
+
* §4.7.1 — la descrizione di una classe come la vede la UI: i membri, la `label` della classe che
|
|
1891
|
+
* arriva dall'involucro della risposta, e l'**esito**, che ha **tre** casi da non confondere:
|
|
1892
|
+
*
|
|
1893
|
+
* - `declared`: elenco **autorevole**. Si propongono solo questi, e un membro fuori elenco e'
|
|
1894
|
+
* `STRUCTURE_MEMBER_UNKNOWN`.
|
|
1895
|
+
* - `undeclared`: la classe e' valida ma `members` e' vuoto — i membri non sono dichiarati (un
|
|
1896
|
+
* host con `IStructureMgr` a registro esplicito). Tendina vuota, nome del membro
|
|
1897
|
+
* **digitabile**, e nessuna accusa: non si sa, non e' "sbagliato".
|
|
1898
|
+
* - `unknown-class`: 404, la classe non e' registrata. Non si propone e non si digita niente di
|
|
1899
|
+
* utile: e' la **classe** a essere segnalata (`STRUCTURE_TYPE_UNKNOWN`), una volta sulla
|
|
1900
|
+
* risorsa e non a ogni riferimento.
|
|
1901
|
+
* - `unknown-catalog`: la primitiva non c'e' o la richiesta e' fallita. Come `undeclared` per
|
|
1902
|
+
* la UI, ma per un motivo diverso, e non dice nulla sulla classe.
|
|
1903
|
+
*
|
|
1904
|
+
* Trattare il 404 come "nessun membro" farebbe digitare membri che il runtime rifiutera';
|
|
1905
|
+
* trattare `members: []` come un 404 renderebbe inutilizzabile una classe perfettamente valida.
|
|
1906
|
+
*/
|
|
1907
|
+
interface FlowStructureDescribed {
|
|
1908
|
+
status: 'declared' | 'undeclared' | 'unknown-class' | 'unknown-catalog';
|
|
1909
|
+
members: FlowStructureMember[];
|
|
1910
|
+
/** La `label` della classe, quando la descrizione l'ha portata: `null` = ricadi sul nome. */
|
|
1911
|
+
label?: string | null;
|
|
1912
|
+
}
|
|
1683
1913
|
declare class FlowCatalogStore {
|
|
1684
1914
|
private readonly api;
|
|
1685
1915
|
private readonly objectsCache;
|
|
@@ -1687,6 +1917,7 @@ declare class FlowCatalogStore {
|
|
|
1687
1917
|
private readonly fieldValuesCache;
|
|
1688
1918
|
private readonly entriesCache;
|
|
1689
1919
|
private readonly parametersCache;
|
|
1920
|
+
private readonly membersCache;
|
|
1690
1921
|
/**
|
|
1691
1922
|
* Una lista vuota significa "non lo so", non "nessuno": con il catalogo non popolato la
|
|
1692
1923
|
* validazione salta i controlli invece di produrre falsi allarmi (§7). L'editor fa lo
|
|
@@ -1706,6 +1937,22 @@ declare class FlowCatalogStore {
|
|
|
1706
1937
|
listForms(): Promise<FlowCatalogEntry[]>;
|
|
1707
1938
|
listFormParameters(formName: string): Promise<FlowCatalogParameter[]>;
|
|
1708
1939
|
listEnumTypes(): Promise<FlowCatalogEntry[]>;
|
|
1940
|
+
/**
|
|
1941
|
+
* §4.7 — le classi utilizzabili come `objectType` di una `Structure`. La primitiva e'
|
|
1942
|
+
* opzionale: se l'ambiente non la espone, l'errore non si memoizza e l'elenco resta vuoto —
|
|
1943
|
+
* che significa "non lo so", e il nome della classe si scrive a mano.
|
|
1944
|
+
*/
|
|
1945
|
+
listStructures(): Promise<FlowCatalogEntry[]>;
|
|
1946
|
+
/**
|
|
1947
|
+
* §4.7.1 — la descrizione di una classe, **con l'esito**: sono tre e non due, e appiattirli in
|
|
1948
|
+
* una lista vuota perde l'informazione che serve alla UI. Vedi {@link FlowStructureDescribed}.
|
|
1949
|
+
*/
|
|
1950
|
+
describeStructure(className: string): Promise<FlowStructureDescribed>;
|
|
1951
|
+
/**
|
|
1952
|
+
* §4.7 — i soli membri, per chi non deve distinguere gli esiti. Chi mostra un avviso o accusa
|
|
1953
|
+
* un membro usa {@link describeStructure}: qui una lista vuota e' ambigua per costruzione.
|
|
1954
|
+
*/
|
|
1955
|
+
listStructureMembers(className: string): Promise<FlowStructureMember[]>;
|
|
1709
1956
|
listEvents(): Promise<FlowCatalogEntry[]>;
|
|
1710
1957
|
/** Da chiamare se lo schema cambia sotto i piedi (raro, ma il comando esiste). */
|
|
1711
1958
|
clear(): void;
|
|
@@ -2018,6 +2265,8 @@ declare class FlowCanvasComponent {
|
|
|
2018
2265
|
/** Rilascio di un elemento dalla palette: tipo + punto nel sistema del canvas. */
|
|
2019
2266
|
readonly elementDropped: _angular_core.OutputEmitterRef<{
|
|
2020
2267
|
type: FlowElementType;
|
|
2268
|
+
/** La variante scelta sulla palette, dove il tipo ne ha (§5.5). */
|
|
2269
|
+
variant?: string;
|
|
2021
2270
|
x: number;
|
|
2022
2271
|
y: number;
|
|
2023
2272
|
}>;
|
|
@@ -2068,7 +2317,11 @@ declare class FlowCanvasComponent {
|
|
|
2068
2317
|
onDeleteSelected(event: {
|
|
2069
2318
|
nodeIds: string[];
|
|
2070
2319
|
}): void;
|
|
2071
|
-
/**
|
|
2320
|
+
/**
|
|
2321
|
+
* Rilascio di un elemento trascinato dalla palette. Il dato e' `{type, variant}`, ma si
|
|
2322
|
+
* accetta ancora la stringa nuda: un ospite che monta il canvas con una palette propria
|
|
2323
|
+
* potrebbe passare il solo tipo.
|
|
2324
|
+
*/
|
|
2072
2325
|
onCreateNode(event: {
|
|
2073
2326
|
data: unknown;
|
|
2074
2327
|
externalItemRect: {
|
|
@@ -2094,9 +2347,27 @@ declare class FlowCanvasComponent {
|
|
|
2094
2347
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlowCanvasComponent, "fb-flow-canvas", never, { "selectedName": { "alias": "selectedName"; "required": false; "isSignal": true; }; "outline": { "alias": "outline"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "nodeOpened": "nodeOpened"; "nodeRemoveRequested": "nodeRemoveRequested"; "nodeDuplicateRequested": "nodeDuplicateRequested"; "elementDropped": "elementDropped"; }, never, never, true, never>;
|
|
2095
2348
|
}
|
|
2096
2349
|
|
|
2350
|
+
/** Il gesto scelto sulla palette: un tipo e, dove esiste, la sua variante (§5.5). */
|
|
2351
|
+
interface FlowPalettePick {
|
|
2352
|
+
type: FlowElementType;
|
|
2353
|
+
variant?: string;
|
|
2354
|
+
}
|
|
2355
|
+
/**
|
|
2356
|
+
* Una voce della palette. Non coincide con una voce del dizionario: un tipo con varianti ne
|
|
2357
|
+
* produce una per variante, perche' «ordina» e «filtra» sono due gesti diversi anche se il
|
|
2358
|
+
* modello li scrive nello stesso node.
|
|
2359
|
+
*/
|
|
2360
|
+
interface PaletteItem {
|
|
2361
|
+
/** Chiave stabile della voce: serve al `track` e all'id del trascinamento. */
|
|
2362
|
+
key: string;
|
|
2363
|
+
entry: FlowElementTypeEntry;
|
|
2364
|
+
variant?: string;
|
|
2365
|
+
label: string;
|
|
2366
|
+
data: FlowPalettePick;
|
|
2367
|
+
}
|
|
2097
2368
|
interface PaletteGroup {
|
|
2098
2369
|
category: string;
|
|
2099
|
-
|
|
2370
|
+
items: PaletteItem[];
|
|
2100
2371
|
}
|
|
2101
2372
|
declare class ElementPaletteComponent {
|
|
2102
2373
|
private readonly dictionaries;
|
|
@@ -2106,23 +2377,29 @@ declare class ElementPaletteComponent {
|
|
|
2106
2377
|
* prima che l'utente lo scopra dal pannello dei problemi.
|
|
2107
2378
|
*/
|
|
2108
2379
|
readonly processType: _angular_core.InputSignal<string | undefined>;
|
|
2109
|
-
readonly elementPicked: _angular_core.OutputEmitterRef<
|
|
2380
|
+
readonly elementPicked: _angular_core.OutputEmitterRef<FlowPalettePick>;
|
|
2110
2381
|
private readonly filter;
|
|
2382
|
+
/** Le voci, con i tipi a varianti già divisi: e' l'elenco che l'utente vede. */
|
|
2383
|
+
private readonly items;
|
|
2111
2384
|
readonly groups: _angular_core.Signal<PaletteGroup[]>;
|
|
2112
2385
|
readonly isEmpty: _angular_core.Signal<boolean>;
|
|
2113
2386
|
onFilter(value: string): void;
|
|
2114
|
-
pick(
|
|
2387
|
+
pick(item: PaletteItem): void;
|
|
2115
2388
|
/** Uno screen in un flow che non mostra nulla: si segnala, non si nasconde (§3.1). */
|
|
2116
|
-
isIncompatible(
|
|
2117
|
-
|
|
2389
|
+
isIncompatible(item: PaletteItem): boolean;
|
|
2390
|
+
/**
|
|
2391
|
+
* Il testo del tooltip. Su una voce che nasce da una variante ci va anche il nome del tipo:
|
|
2392
|
+
* e' l'unico posto in cui si vede che «ordina» e «filtra» sono lo stesso elemento.
|
|
2393
|
+
*/
|
|
2394
|
+
hintOf(item: PaletteItem): string;
|
|
2118
2395
|
/** Lo stesso glifo che l'elemento avra' sul canvas, così il trascinamento e' prevedibile. */
|
|
2119
|
-
iconOf(
|
|
2396
|
+
iconOf(item: PaletteItem): string;
|
|
2120
2397
|
/**
|
|
2121
2398
|
* L'etichetta del ramo di fault, presa dalla mappa delle uscite invece di scrivere «ramo di
|
|
2122
2399
|
* errore» per tutti: su uno stage di orchestrazione quel ramo **non** e' un guasto, e' lo step
|
|
2123
2400
|
* rifiutato (§5.13). Un tipo nuovo eredita l'etichetta giusta senza toccare la palette.
|
|
2124
2401
|
*/
|
|
2125
|
-
faultLabel(
|
|
2402
|
+
faultLabel(item: PaletteItem): string | null;
|
|
2126
2403
|
categoryClass(category: string): string;
|
|
2127
2404
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ElementPaletteComponent, never>;
|
|
2128
2405
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ElementPaletteComponent, "fb-element-palette", never, { "processType": { "alias": "processType"; "required": false; "isSignal": true; }; }, { "elementPicked": "elementPicked"; }, never, never, true, never>;
|
|
@@ -2132,6 +2409,7 @@ declare class ReferencePickerComponent {
|
|
|
2132
2409
|
private readonly api;
|
|
2133
2410
|
private readonly store;
|
|
2134
2411
|
private readonly dictionaries;
|
|
2412
|
+
private readonly catalog;
|
|
2135
2413
|
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
2136
2414
|
readonly label: _angular_core.InputSignal<string>;
|
|
2137
2415
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
@@ -2157,6 +2435,14 @@ declare class ReferencePickerComponent {
|
|
|
2157
2435
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
2158
2436
|
readonly query: _angular_core.WritableSignal<string>;
|
|
2159
2437
|
constructor();
|
|
2438
|
+
/**
|
|
2439
|
+
* §4.7 — la risorsa `Structure` da cui il valore corrente sta navigando, se c'e'. È quella
|
|
2440
|
+
* che rende i membri proponibili: senza classe non c'e' catalogo da interrogare.
|
|
2441
|
+
*/
|
|
2442
|
+
readonly structureRoot: _angular_core.Signal<FlowReference | undefined>;
|
|
2443
|
+
private readonly members;
|
|
2444
|
+
/** I membri come riferimenti navigati: `Richiesta.Ragione`, col tipo del membro. */
|
|
2445
|
+
private readonly memberReferences;
|
|
2160
2446
|
readonly options: _angular_core.Signal<FlowReference[]>;
|
|
2161
2447
|
/** Le opzioni raggruppate per `kind`, così gli output automatici si distinguono. */
|
|
2162
2448
|
readonly groups: _angular_core.Signal<{
|
|
@@ -2172,12 +2458,19 @@ declare class ReferencePickerComponent {
|
|
|
2172
2458
|
* output automatico navigato): la validazione non verifica i percorsi con il punto,
|
|
2173
2459
|
* quindi si accetta senza segnalare;
|
|
2174
2460
|
* - `host`: scope del sistema ospite che **non dichiara percorsi**: non verificabile (§4.1);
|
|
2461
|
+
* - `member`: membro di una classe, esistente: qui il percorso **e'** verificato (§4.7);
|
|
2462
|
+
* - `memberUnknown`: la radice e' una `Structure` ma il membro non c'e': e'
|
|
2463
|
+
* `STRUCTURE_MEMBER_UNKNOWN`, e a differenza di un campo di record si sa per certo;
|
|
2464
|
+
* - `memberNotWritable`: il membro esiste, e' calcolato, e questo campo vuole una
|
|
2465
|
+
* destinazione: `TARGET_NOT_WRITABLE`;
|
|
2175
2466
|
* - `unknown`: nessuna corrispondenza: si avvisa, senza bloccare. Ci finisce anche il
|
|
2176
2467
|
* percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
|
|
2177
2468
|
* risponderebbe `GLOBAL_UNKNOWN`.
|
|
2178
2469
|
*/
|
|
2179
|
-
readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "unknown">;
|
|
2470
|
+
readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "member" | "memberUnknown" | "memberNotWritable" | "unknown">;
|
|
2180
2471
|
readonly hint: _angular_core.Signal<string | null>;
|
|
2472
|
+
/** I due stati che sono errori e non avvisi: il colore deve dirlo. */
|
|
2473
|
+
readonly isHintError: _angular_core.Signal<boolean>;
|
|
2181
2474
|
readonly errorMessage: _angular_core.Signal<string | null>;
|
|
2182
2475
|
open(): void;
|
|
2183
2476
|
close(): void;
|
|
@@ -2255,7 +2548,7 @@ declare class FieldPickerComponent {
|
|
|
2255
2548
|
readonly isRelationPath: _angular_core.Signal<boolean>;
|
|
2256
2549
|
readonly isUnknown: _angular_core.Signal<boolean>;
|
|
2257
2550
|
/** L'avviso dipende dall'uso: un campo puo' esistere e non essere filtrabile. */
|
|
2258
|
-
readonly unknownMessage: _angular_core.Signal<"Questo campo non e’ fra quelli filtrabili dell’oggetto." | "Questo campo non e’ fra quelli su cui si puo’ ordinare." | "Questo campo non e’ fra quelli aggiornabili dell’oggetto." | "Questo campo non e’ fra quelli dell’oggetto.">;
|
|
2551
|
+
readonly unknownMessage: _angular_core.Signal<"Questo campo non e’ fra quelli filtrabili dell’oggetto." | "Questo campo non e’ fra quelli su cui si puo’ ordinare." | "Questo campo non e’ fra quelli aggiornabili dell’oggetto." | "Questo campo non e’ fra quelli valorizzabili alla creazione." | "Questo campo non e’ fra quelli dell’oggetto.">;
|
|
2259
2552
|
readonly describeValue: _angular_core.Signal<string | null>;
|
|
2260
2553
|
readonly loadErrored: _angular_core.Signal<boolean>;
|
|
2261
2554
|
open(): void;
|
|
@@ -2282,6 +2575,12 @@ declare class NamePickerComponent {
|
|
|
2282
2575
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2283
2576
|
/** Il testo dell'avviso sul nome fuori elenco: dipende da cosa si sta scegliendo. */
|
|
2284
2577
|
readonly unknownMessage: _angular_core.InputSignal<string>;
|
|
2578
|
+
/**
|
|
2579
|
+
* La gravita' dell'avviso. Non e' cosmetica: un'action o un form che non esistono sono
|
|
2580
|
+
* **errori** che bloccano l'attivazione (`ACTION_UNKNOWN`, `FORM_UNKNOWN`), mentre un flow
|
|
2581
|
+
* senza versione attiva e' un avviso. Mostrarli con lo stesso colore direbbe il falso.
|
|
2582
|
+
*/
|
|
2583
|
+
readonly unknownSeverity: _angular_core.InputSignal<"error" | "warn">;
|
|
2285
2584
|
/** Cosa dire quando l'elenco e' vuoto: e' il caso "non lo so", non un errore. */
|
|
2286
2585
|
readonly emptyMessage: _angular_core.InputSignal<string>;
|
|
2287
2586
|
/** Testo monospazio: i nomi tecnici si leggono meglio, ed e' come li mostra il resto del form. */
|
|
@@ -2303,7 +2602,86 @@ declare class NamePickerComponent {
|
|
|
2303
2602
|
clear(): void;
|
|
2304
2603
|
describe(option: NamePickerOption): string;
|
|
2305
2604
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NamePickerComponent, never>;
|
|
2306
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NamePickerComponent, "fb-name-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "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; }; "unknownMessage": { "alias": "unknownMessage"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "isMono": { "alias": "isMono"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2605
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NamePickerComponent, "fb-name-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "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; }; "unknownMessage": { "alias": "unknownMessage"; "required": false; "isSignal": true; }; "unknownSeverity": { "alias": "unknownSeverity"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "isMono": { "alias": "isMono"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2606
|
+
}
|
|
2607
|
+
|
|
2608
|
+
declare class StructurePickerComponent {
|
|
2609
|
+
private readonly catalog;
|
|
2610
|
+
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
2611
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2612
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
2613
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2614
|
+
readonly valueChange: _angular_core.OutputEmitterRef<string | undefined>;
|
|
2615
|
+
private readonly structures;
|
|
2616
|
+
constructor();
|
|
2617
|
+
readonly options: _angular_core.Signal<NamePickerOption[]>;
|
|
2618
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructurePickerComponent, never>;
|
|
2619
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructurePickerComponent, "fb-structure-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; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2620
|
+
}
|
|
2621
|
+
|
|
2622
|
+
/** `any` per un membro da leggere, `writable` per una destinazione. */
|
|
2623
|
+
type StructureMemberUsage = 'any' | 'writable';
|
|
2624
|
+
declare class StructureMemberPickerComponent {
|
|
2625
|
+
private readonly catalog;
|
|
2626
|
+
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
2627
|
+
/** La classe di cui elencare i membri: senza classe non c'e' catalogo. */
|
|
2628
|
+
readonly className: _angular_core.InputSignal<string | undefined>;
|
|
2629
|
+
readonly usage: _angular_core.InputSignal<StructureMemberUsage>;
|
|
2630
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2631
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
2632
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2633
|
+
readonly valueChange: _angular_core.OutputEmitterRef<string | undefined>;
|
|
2634
|
+
/**
|
|
2635
|
+
* §4.7.1 — non basta l'elenco: serve l'**esito**. Elenco vuoto perche' i membri non sono
|
|
2636
|
+
* dichiarati (si digita a mano) e classe non registrata (non c'e' niente da digitare) hanno
|
|
2637
|
+
* la stessa lista e messaggi opposti.
|
|
2638
|
+
*/
|
|
2639
|
+
private readonly result;
|
|
2640
|
+
private readonly members;
|
|
2641
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
2642
|
+
/** Il testo digitato mentre il pannello e' aperto: filtra l'elenco. */
|
|
2643
|
+
private readonly query;
|
|
2644
|
+
constructor();
|
|
2645
|
+
readonly text: _angular_core.Signal<string>;
|
|
2646
|
+
/** Con `usage="writable"` i membri di sola lettura non si propongono affatto. */
|
|
2647
|
+
readonly available: _angular_core.Signal<FlowStructureMember[]>;
|
|
2648
|
+
readonly options: _angular_core.Signal<FlowStructureMember[]>;
|
|
2649
|
+
/**
|
|
2650
|
+
* Come chiamare la classe: la `label` la porta l'involucro della descrizione, ed e' il motivo
|
|
2651
|
+
* per cui l'involucro esiste (§4.7.1). Assente, si mostra il nome della classe.
|
|
2652
|
+
*/
|
|
2653
|
+
readonly classLabel: _angular_core.Signal<string>;
|
|
2654
|
+
/** Elenco autorevole: solo qui un membro fuori elenco e' un errore (§4.7.1). */
|
|
2655
|
+
readonly hasCatalog: _angular_core.Signal<boolean>;
|
|
2656
|
+
/** 404: la classe non e' registrata. Il nome del membro non c'e' modo di indovinarlo. */
|
|
2657
|
+
readonly isClassUnknown: _angular_core.Signal<boolean>;
|
|
2658
|
+
/** Classe valida, membri non dichiarati: si digita, e non si segnala niente. */
|
|
2659
|
+
readonly isUndeclared: _angular_core.Signal<boolean>;
|
|
2660
|
+
/** Il primo segmento: e' l'unico che si puo' verificare (§4.7). */
|
|
2661
|
+
private readonly firstSegment;
|
|
2662
|
+
/** `true` se il valore naviga dentro un membro: oltre il primo segmento non si verifica. */
|
|
2663
|
+
readonly isNestedPath: _angular_core.Signal<boolean>;
|
|
2664
|
+
private readonly declared;
|
|
2665
|
+
readonly isUnknown: _angular_core.Signal<boolean>;
|
|
2666
|
+
/** Il messaggio elenca i disponibili: dire solo "non esiste" non aiuta a correggere. */
|
|
2667
|
+
readonly unknownMessage: _angular_core.Signal<string>;
|
|
2668
|
+
/**
|
|
2669
|
+
* Un membro che esiste ma non e' scrivibile, scelto dove serve una destinazione: capita su un
|
|
2670
|
+
* documento scritto altrove, e va detto qui invece di lasciarlo scoprire dall'attivazione.
|
|
2671
|
+
*/
|
|
2672
|
+
readonly isNotWritable: _angular_core.Signal<boolean>;
|
|
2673
|
+
readonly describeValue: _angular_core.Signal<string | null>;
|
|
2674
|
+
/** Catalogo assente per un motivo che non riguarda la classe: "non lo so". */
|
|
2675
|
+
readonly loadErrored: _angular_core.Signal<boolean>;
|
|
2676
|
+
open(): void;
|
|
2677
|
+
close(): void;
|
|
2678
|
+
toggle(): void;
|
|
2679
|
+
onInput(text: string): void;
|
|
2680
|
+
choose(member: FlowStructureMember): void;
|
|
2681
|
+
clear(): void;
|
|
2682
|
+
describe(member: FlowStructureMember): string;
|
|
2683
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructureMemberPickerComponent, never>;
|
|
2684
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructureMemberPickerComponent, "fb-structure-member-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "usage": { "alias": "usage"; "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; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2307
2685
|
}
|
|
2308
2686
|
|
|
2309
2687
|
/** Le modalita' offerte: una per campo del modello. */
|
|
@@ -2329,13 +2707,19 @@ declare class ValueEditorComponent {
|
|
|
2329
2707
|
*/
|
|
2330
2708
|
readonly filledFieldCount: _angular_core.Signal<number>;
|
|
2331
2709
|
readonly isAmbiguous: _angular_core.Signal<boolean>;
|
|
2332
|
-
/**
|
|
2710
|
+
/**
|
|
2711
|
+
* Il campo del valore che corrisponde al `dataType` (§4.2, tabella degli otto tipi). `Object` e
|
|
2712
|
+
* `Structure` non ci sono: si passano per riferimento, e {@link literalAllowed} li esclude.
|
|
2713
|
+
*/
|
|
2333
2714
|
readonly literalField: _angular_core.Signal<keyof FlowValue>;
|
|
2334
2715
|
/**
|
|
2335
2716
|
* `Object` non ha un campo letterale: un record si passa per riferimento (§4.2).
|
|
2336
|
-
* Lo stesso vale per una collection
|
|
2717
|
+
* Lo stesso vale per una collection e per una `Structure`, che non ha un `structureValue` e
|
|
2718
|
+
* non lo avra': un'istanza nasce dal runtime e nel metadata si cita per riferimento (§4.7).
|
|
2337
2719
|
*/
|
|
2338
2720
|
readonly literalAllowed: _angular_core.Signal<boolean>;
|
|
2721
|
+
/** §4.7 — la destinazione e' un'istanza di classe: si passa per riferimento e basta. */
|
|
2722
|
+
readonly isStructureTarget: _angular_core.Signal<boolean>;
|
|
2339
2723
|
readonly literalInputType: _angular_core.Signal<string>;
|
|
2340
2724
|
readonly literalText: _angular_core.Signal<string>;
|
|
2341
2725
|
readonly booleanValue: _angular_core.Signal<boolean>;
|
|
@@ -2407,7 +2791,7 @@ declare class ConditionEditorComponent {
|
|
|
2407
2791
|
*/
|
|
2408
2792
|
hasTypeMismatch(condition: FlowCondition): boolean;
|
|
2409
2793
|
typeMismatchMessage(condition: FlowCondition): string;
|
|
2410
|
-
readonly logicMode: _angular_core.Signal<"and" | "or" | "
|
|
2794
|
+
readonly logicMode: _angular_core.Signal<"and" | "or" | "formula" | "custom">;
|
|
2411
2795
|
readonly customLogic: _angular_core.Signal<string>;
|
|
2412
2796
|
/** Feedback immediato sull'espressione: la verita' resta della validazione backend. */
|
|
2413
2797
|
readonly customLogicError: _angular_core.Signal<string | null>;
|
|
@@ -2475,13 +2859,21 @@ declare class RecordFilterEditorComponent {
|
|
|
2475
2859
|
* (§5.7, §13.10).
|
|
2476
2860
|
*/
|
|
2477
2861
|
readonly emptyWarning: _angular_core.InputSignal<string | null>;
|
|
2478
|
-
readonly emptyWarningSeverity: _angular_core.InputSignal<"
|
|
2862
|
+
readonly emptyWarningSeverity: _angular_core.InputSignal<"error" | "warn">;
|
|
2479
2863
|
readonly changed: _angular_core.OutputEmitterRef<(holder: FilterHolder) => void>;
|
|
2480
2864
|
private readonly fields;
|
|
2865
|
+
/** Tutti i campi, filtrabili o no: serve solo a riconoscere le chiavi composte (§5.7). */
|
|
2866
|
+
private readonly allFields;
|
|
2481
2867
|
readonly filters: _angular_core.Signal<FlowRecordFilter[]>;
|
|
2482
2868
|
readonly operators: _angular_core.Signal<_esfaenza_flow_builder.FlowDictionaryEntry[]>;
|
|
2483
2869
|
constructor();
|
|
2484
|
-
|
|
2870
|
+
/**
|
|
2871
|
+
* §5.7 — l'identificativo esiste ma **non e' filtrabile**: e' il caso di una chiave composta,
|
|
2872
|
+
* dove `Id` porta la forma canonica della chiave e le colonne filtrabili sono altre. Dirlo
|
|
2873
|
+
* evita la ricerca di un campo che nell'elenco non c'e' e non ci sara'.
|
|
2874
|
+
*/
|
|
2875
|
+
readonly identifierNotFilterable: _angular_core.Signal<boolean>;
|
|
2876
|
+
readonly logicMode: _angular_core.Signal<"and" | "or" | "formula" | "custom">;
|
|
2485
2877
|
readonly customLogic: _angular_core.Signal<string>;
|
|
2486
2878
|
readonly showEmptyWarning: _angular_core.Signal<boolean>;
|
|
2487
2879
|
addFilter(): void;
|
|
@@ -2525,11 +2917,18 @@ declare class ParameterEditorComponent {
|
|
|
2525
2917
|
readonly hasCatalog: _angular_core.Signal<boolean>;
|
|
2526
2918
|
readonly inputCatalog: _angular_core.Signal<FlowCatalogParameter[]>;
|
|
2527
2919
|
readonly outputCatalog: _angular_core.Signal<FlowCatalogParameter[]>;
|
|
2920
|
+
/**
|
|
2921
|
+
* I candidati come li vuole il picker. Il tipo e l'obbligatorieta' finiscono nella
|
|
2922
|
+
* descrizione: nel `<select>` erano un asterisco muto, che non diceva quale valore ci sta.
|
|
2923
|
+
*/
|
|
2924
|
+
readonly inputOptions: _angular_core.Signal<NamePickerOption[]>;
|
|
2925
|
+
readonly outputOptions: _angular_core.Signal<NamePickerOption[]>;
|
|
2528
2926
|
/** Parametri obbligatori dichiarati dal catalogo e non ancora presenti. */
|
|
2529
2927
|
readonly missingRequired: _angular_core.Signal<FlowCatalogParameter[]>;
|
|
2530
|
-
/**
|
|
2531
|
-
|
|
2532
|
-
|
|
2928
|
+
/**
|
|
2929
|
+
* Il parametro fuori catalogo (`PARAMETER_UNKNOWN`) lo segnala il picker, che ha in mano sia
|
|
2930
|
+
* l'elenco sia il valore. Qui resta la descrizione, che serve all'editor di valore.
|
|
2931
|
+
*/
|
|
2533
2932
|
describe(name: string | undefined): FlowCatalogParameter | undefined;
|
|
2534
2933
|
addInput(name?: string): void;
|
|
2535
2934
|
addOutput(name?: string): void;
|
|
@@ -2550,6 +2949,8 @@ declare class FieldAssignmentEditorComponent {
|
|
|
2550
2949
|
private readonly catalog;
|
|
2551
2950
|
readonly holder: _angular_core.InputSignal<FieldAssignmentHolder>;
|
|
2552
2951
|
readonly object: _angular_core.InputSignal<string | undefined>;
|
|
2952
|
+
/** `createable` su un Create, `updateable` su un Update: lo decide il chiamante (§5.7). */
|
|
2953
|
+
readonly usage: _angular_core.InputSignal<FlowFieldUsage>;
|
|
2553
2954
|
readonly title: _angular_core.InputSignal<string>;
|
|
2554
2955
|
readonly disabledReason: _angular_core.InputSignal<string | null>;
|
|
2555
2956
|
readonly changed: _angular_core.OutputEmitterRef<(holder: FieldAssignmentHolder) => void>;
|
|
@@ -2569,7 +2970,7 @@ declare class FieldAssignmentEditorComponent {
|
|
|
2569
2970
|
*/
|
|
2570
2971
|
describe(name: string | undefined): FlowFieldDescription | undefined;
|
|
2571
2972
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldAssignmentEditorComponent, never>;
|
|
2572
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FieldAssignmentEditorComponent, "fb-field-assignment-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "object": { "alias": "object"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "disabledReason": { "alias": "disabledReason"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
2973
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FieldAssignmentEditorComponent, "fb-field-assignment-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "object": { "alias": "object"; "required": false; "isSignal": true; }; "usage": { "alias": "usage"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "disabledReason": { "alias": "disabledReason"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
2573
2974
|
}
|
|
2574
2975
|
|
|
2575
2976
|
declare class ConnectorEditorComponent {
|
|
@@ -2882,6 +3283,16 @@ declare class ResourcePanelComponent {
|
|
|
2882
3283
|
requiresObjectType(reference: FlowResourceRef): boolean;
|
|
2883
3284
|
supportsScale(reference: FlowResourceRef): boolean;
|
|
2884
3285
|
isEnum(reference: FlowResourceRef): boolean;
|
|
3286
|
+
/** §4.7 — un'istanza di classe: `objectType` e' il nome della classe, non di un'entita'. */
|
|
3287
|
+
isStructure(reference: FlowResourceRef): boolean;
|
|
3288
|
+
/**
|
|
3289
|
+
* §4.7 — una `Structure` non ha una forma letterale: nasce dal runtime come istanza vuota e i
|
|
3290
|
+
* membri si assegnano uno alla volta. Mostrare un campo «valore iniziale» prometterebbe una
|
|
3291
|
+
* cosa che il modello non sa esprimere.
|
|
3292
|
+
*/
|
|
3293
|
+
supportsInitialValue(reference: FlowResourceRef): boolean;
|
|
3294
|
+
/** Su una `Structure` l'`objectType` mancante e' un errore, non un avviso (§4.7). */
|
|
3295
|
+
missingObjectType(reference: FlowResourceRef): boolean;
|
|
2885
3296
|
/** Una costante che referenzia una risorsa e' `CONSTANT_REFERENCES_RESOURCE`. */
|
|
2886
3297
|
constantReferencesResource(reference: FlowResourceRef): boolean;
|
|
2887
3298
|
/** `stageOrder` duplicati: quale stage sia il corrente all'avvio diventa arbitrario. */
|
|
@@ -2950,6 +3361,9 @@ declare class DebugPanelComponent {
|
|
|
2950
3361
|
private readonly api;
|
|
2951
3362
|
private readonly store;
|
|
2952
3363
|
private readonly session;
|
|
3364
|
+
private readonly dictionaries;
|
|
3365
|
+
private readonly catalog;
|
|
3366
|
+
constructor();
|
|
2953
3367
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
2954
3368
|
/** Chiede all'host di evidenziare l'elemento corrente dell'esecuzione. */
|
|
2955
3369
|
readonly elementFocused: _angular_core.OutputEmitterRef<string>;
|
|
@@ -2963,6 +3377,14 @@ declare class DebugPanelComponent {
|
|
|
2963
3377
|
readonly screenOutputs: _angular_core.WritableSignal<Record<string, string>>;
|
|
2964
3378
|
/** Le variabili `isInput` del flow: il contratto verso chi lo invoca (§4.6). */
|
|
2965
3379
|
readonly inputVariables: _angular_core.Signal<FlowVariable[]>;
|
|
3380
|
+
/**
|
|
3381
|
+
* §4.7 — i membri delle classi delle variabili `Structure` di input, per classe. Un'istanza si
|
|
3382
|
+
* compila un membro alla volta: non c'e' un letterale con cui scriverla in un campo solo.
|
|
3383
|
+
*/
|
|
3384
|
+
private readonly membersByClass;
|
|
3385
|
+
/** I membri **scrivibili** di una classe: gli altri li calcola il backend. */
|
|
3386
|
+
membersOf(className: string | undefined): FlowStructureMember[];
|
|
3387
|
+
isStructureVariable(variable: FlowVariable): boolean;
|
|
2966
3388
|
readonly canRun: _angular_core.Signal<boolean>;
|
|
2967
3389
|
readonly status: _angular_core.Signal<string | null>;
|
|
2968
3390
|
readonly pendingScreen: _angular_core.Signal<_esfaenza_flow_builder.FlowPendingScreen | null>;
|
|
@@ -2994,10 +3416,17 @@ declare class DebugPanelComponent {
|
|
|
2994
3416
|
}[]>;
|
|
2995
3417
|
/** I nomi degli output dichiarati dallo screen, per generare i campi da compilare. */
|
|
2996
3418
|
readonly screenOutputNames: _angular_core.Signal<string[]>;
|
|
3419
|
+
/**
|
|
3420
|
+
* §6.5 — il tipo dichiarato vince, e due tipi hanno una forma propria invece di `value`: un
|
|
3421
|
+
* record e un'istanza di classe. Cercare `value` su un `Structure` mostrerebbe «—» pur avendo
|
|
3422
|
+
* i dati sotto gli occhi (§4.7).
|
|
3423
|
+
*/
|
|
2997
3424
|
private static render;
|
|
2998
3425
|
setDebugEnabled(value: boolean): void;
|
|
2999
3426
|
setInputValue(name: string, value: string): void;
|
|
3000
3427
|
setScreenOutput(name: string, value: string): void;
|
|
3428
|
+
/** Converte un valore del form nel tipo dichiarato: il tipo vince, anche in scrittura (§6.5). */
|
|
3429
|
+
private static coerce;
|
|
3001
3430
|
/** Converte i valori del form nel tipo dichiarato dalla variabile. */
|
|
3002
3431
|
private coerceInputs;
|
|
3003
3432
|
start(): Promise<void>;
|
|
@@ -3128,11 +3557,12 @@ declare class FlowBuilderComponent {
|
|
|
3128
3557
|
/** Rilascio dalla palette: il punto di rilascio diventa `locationX`/`locationY` (§11). */
|
|
3129
3558
|
onElementDropped(event: {
|
|
3130
3559
|
type: FlowElementType;
|
|
3560
|
+
variant?: string;
|
|
3131
3561
|
x: number;
|
|
3132
3562
|
y: number;
|
|
3133
3563
|
}): void;
|
|
3134
3564
|
/** Click sulla palette: l'elemento si posiziona in una zona libera. */
|
|
3135
|
-
onElementPicked(
|
|
3565
|
+
onElementPicked(pick: FlowPalettePick): void;
|
|
3136
3566
|
private createElement;
|
|
3137
3567
|
onRemoveNode(name: string): void;
|
|
3138
3568
|
onDuplicateNode(name: string): void;
|
|
@@ -3176,5 +3606,5 @@ declare class SelectValueDirective implements AfterViewChecked {
|
|
|
3176
3606
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueDirective, "select[fbValue]", never, { "fbValue": { "alias": "fbValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3177
3607
|
}
|
|
3178
3608
|
|
|
3179
|
-
export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_ELEMENT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_RESOURCE_COLLECTIONS, FieldAssignmentEditorComponent, FieldPickerComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, HttpFlowBuilderApi, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourcePanelComponent, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, areTypesComparable, canvasNodeId, checkConditionLogic, checkFlowName, elementIcon, emptyFlowDefinition, flowNodeWidth, flowNodeWidthClass, isCustomConditionLogic, isGlobalReference, isNumericType, isTypeCheckedOperator, isValidFlowName, moveCondition, outletByKey, outletsOf, parseCanvasNodeId, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, referenceRoot, remapConditionLogic, removeCondition, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, uniqueFlowName };
|
|
3180
|
-
export type { FieldAssignmentHolder, FilterHolder, FlowActionCall, FlowAnyNode, FlowAssignment, FlowAssignmentItem, FlowAssignmentOperator, FlowAssignmentOperatorEntry, FlowBuilderHttpConfig, FlowCanvasEdge, FlowCanvasNode, FlowCatalogEntry, FlowCatalogParameter, FlowChoice, 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, FlowEdge, FlowElementType, FlowElementTypeEntry, FlowErrorCategory, FlowExportQuery, FlowFieldDescription, FlowFieldUsage, FlowFieldValue, FlowFormula, FlowGlobalVariableEntry, FlowInputFieldAssignment, FlowInputParameter, FlowInterviewResult, FlowInterviewStatus, FlowIssueSeverity, FlowLayoutDirection, FlowLayoutNodeInput, FlowLayoutOptions, FlowLayoutResult, FlowListQuery, FlowLoop, FlowNameCheck, FlowNameProblem, FlowNewVersionRequest, FlowNodeBase, FlowNodeCollection, FlowNodeRef, FlowObjectDescription, FlowObjectSummary, FlowOffsetUnit, FlowOrchestratedStage, FlowOutlet, FlowOutline, FlowOutlineConnection, FlowOutlineNode, FlowOutputFieldAssignment, FlowOutputParameter, FlowPendingScreen, FlowProcessType, FlowRecordCreate, FlowRecordDelete, FlowRecordFilter, FlowRecordFilterOperator, FlowRecordLookup, FlowRecordRollback, FlowRecordTriggerType, FlowRecordUpdate, FlowReference, FlowReferenceKind, FlowReferenceQuery, FlowResourceCollection, FlowResourceKindEntry, FlowResourceRef, FlowResumeRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenNavigation, FlowScreenResponseRequest, FlowScriptPluginCall, FlowSortOption, FlowSortOrder, FlowStage, FlowStageStep, FlowStageStepActionType, FlowStageStepAssignee, FlowStageStepConditionActionType, FlowStageStepRequest, FlowStageStepState, FlowStageStepStatus, FlowStageStepTypeEntry, FlowStart, FlowStartInterviewRequest, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, NamePickerOption, ParameterHolder, ValueMode };
|
|
3609
|
+
export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_ELEMENT_ICONS, FLOW_ELEMENT_VARIANT_FIELDS, FLOW_ELEMENT_VARIANT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_RESOURCE_COLLECTIONS, FieldAssignmentEditorComponent, FieldPickerComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, HttpFlowBuilderApi, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourcePanelComponent, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, StructureMemberPickerComponent, StructurePickerComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, areTypesComparable, canvasNodeId, checkConditionLogic, checkFlowName, elementIcon, emptyFlowDefinition, flowNodeWidth, flowNodeWidthClass, isCustomConditionLogic, isGlobalReference, isNumericType, isTypeCheckedOperator, isValidFlowName, moveCondition, outletByKey, outletsOf, parseCanvasNodeId, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, referenceRoot, remapConditionLogic, removeCondition, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, uniqueFlowName, variantFieldOf, variantOf, variantPresetOf };
|
|
3610
|
+
export type { FieldAssignmentHolder, FilterHolder, FlowActionCall, FlowAnyNode, FlowAssignment, FlowAssignmentItem, FlowAssignmentOperator, FlowAssignmentOperatorEntry, FlowBuilderHttpConfig, FlowCanvasEdge, FlowCanvasNode, FlowCatalogEntry, FlowCatalogParameter, FlowChoice, 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, FlowEdge, FlowElementType, FlowElementTypeEntry, FlowErrorCategory, FlowExportQuery, FlowFieldDescription, FlowFieldUsage, FlowFieldValue, FlowFormula, FlowGlobalVariableEntry, FlowInputFieldAssignment, FlowInputParameter, FlowInterviewResult, FlowInterviewStatus, FlowIssueSeverity, FlowLayoutDirection, FlowLayoutNodeInput, FlowLayoutOptions, FlowLayoutResult, FlowListQuery, FlowLoop, FlowNameCheck, FlowNameProblem, FlowNewVersionRequest, FlowNodeBase, FlowNodeCollection, FlowNodeRef, FlowObjectDescription, FlowObjectSummary, FlowOffsetUnit, FlowOrchestratedStage, FlowOutlet, FlowOutline, FlowOutlineConnection, FlowOutlineNode, FlowOutputFieldAssignment, FlowOutputParameter, FlowPalettePick, FlowPendingScreen, FlowProcessType, FlowRecordCreate, FlowRecordDelete, FlowRecordFilter, FlowRecordFilterOperator, FlowRecordLookup, FlowRecordRollback, FlowRecordTriggerType, FlowRecordUpdate, FlowRecordValue, FlowReference, FlowReferenceKind, FlowReferenceQuery, FlowResourceCollection, FlowResourceKindEntry, FlowResourceRef, FlowResumeRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenNavigation, FlowScreenResponseRequest, FlowScriptPluginCall, 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, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, NamePickerOption, PaletteGroup, PaletteItem, ParameterHolder, StructureMemberUsage, ValueMode };
|