@esfaenza/flow-builder 20.3.3 → 20.3.5
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 +34 -5
- package/fesm2022/esfaenza-flow-builder.mjs +902 -88
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +461 -23
- 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>;
|
|
@@ -1486,6 +1637,34 @@ declare function stageStepOutputReferenced(reference: string | undefined, steps:
|
|
|
1486
1637
|
*/
|
|
1487
1638
|
declare const ORCHESTRATION_CONDITION_OUTPUT = "isOrchestrationConditionMet";
|
|
1488
1639
|
|
|
1640
|
+
/**
|
|
1641
|
+
* La gravita' di un rilievo, ridotta a tre secchi — FRONTEND.md §7.
|
|
1642
|
+
*
|
|
1643
|
+
* Perche' esiste: `FlowIssueSeverity` e' un tipo **aperto** (`'Error' | 'Warning' | 'Info' |
|
|
1644
|
+
* string`) perche' il backend puo' aggiungere livelli senza toccare il frontend (§13.11). La
|
|
1645
|
+
* conseguenza e' che confrontare la stringa cosi' com'e' e' un fallimento silenzioso: un
|
|
1646
|
+
* `error` minuscolo, un `WARN`, un `Log` non corrispondono a niente, e allora il filtro del
|
|
1647
|
+
* pannello non seleziona nulla, il conteggio resta a zero e il node sul canvas non si colora —
|
|
1648
|
+
* senza un errore da nessuna parte. Era il difetto dei filtri della §7.
|
|
1649
|
+
*
|
|
1650
|
+
* Da qui in avanti si confronta il **secchio**, non la stringa. I livelli che non conosciamo
|
|
1651
|
+
* cadono in `Info`: sono note, non problemi, e restano visibili invece di sparire.
|
|
1652
|
+
*/
|
|
1653
|
+
/** Le tre gravita' su cui l'interfaccia decide: colore, icona, filtro, attivazione. */
|
|
1654
|
+
type FlowSeverityBucket = 'Error' | 'Warning' | 'Info';
|
|
1655
|
+
/** Un livello sconosciuto e' una nota: si mostra, non si nasconde. */
|
|
1656
|
+
declare function severityBucket(severity: string | null | undefined): FlowSeverityBucket;
|
|
1657
|
+
/** L'ordine in cui si presentano: prima cio' che blocca l'attivazione. */
|
|
1658
|
+
declare const SEVERITY_BUCKETS: readonly FlowSeverityBucket[];
|
|
1659
|
+
declare const SEVERITY_LABEL: Record<FlowSeverityBucket, string>;
|
|
1660
|
+
/**
|
|
1661
|
+
* Caratteri Unicode, non icone: la libreria non porta asset e non dipende dal font di icone
|
|
1662
|
+
* dell'applicazione ospite — la stessa scelta di `element-icons.ts`. Sono glifi che rendono
|
|
1663
|
+
* bene dentro un pastiglia colorata a 14px e non hanno un fallback emoji che cambia forma da
|
|
1664
|
+
* un sistema all'altro.
|
|
1665
|
+
*/
|
|
1666
|
+
declare const SEVERITY_ICON: Record<FlowSeverityBucket, string>;
|
|
1667
|
+
|
|
1489
1668
|
/** Un node come lo vede l'editor: il node piu' da dove viene. */
|
|
1490
1669
|
interface FlowNodeRef {
|
|
1491
1670
|
name: string;
|
|
@@ -1717,13 +1896,48 @@ declare class FlowDictionaryStore {
|
|
|
1717
1896
|
/** `stepInteractive` e `stepApproval` vogliono gli assegnatari (§5.13). */
|
|
1718
1897
|
stageStepRequiresAssignees(actionType: string | undefined | null): boolean;
|
|
1719
1898
|
dataType(value: string | undefined | null): FlowDataTypeEntry | undefined;
|
|
1720
|
-
/** §4.6 — `Object`
|
|
1899
|
+
/** §4.6, §4.7 — `Object`, `Enum` e `Structure` richiedono `objectType`. */
|
|
1721
1900
|
requiresObjectType(dataType: string | undefined | null): boolean;
|
|
1901
|
+
/**
|
|
1902
|
+
* §4.7 — il tipo e' un'istanza di classe. Il flag arriva dal dizionario (`isStructure`); il
|
|
1903
|
+
* fallback sul nome serve solo se il backend non lo dichiara.
|
|
1904
|
+
*/
|
|
1905
|
+
isStructure(dataType: string | undefined | null): boolean;
|
|
1906
|
+
/**
|
|
1907
|
+
* §4.7 — su una `Structure` un `objectType` mancante **blocca l'attivazione**: e' un errore
|
|
1908
|
+
* (`OBJECT_TYPE_MISSING`), non un avviso, perche' il runtime non ha nulla da istanziare. La
|
|
1909
|
+
* differenza serve all'interfaccia, che deve mostrare i due casi con colori diversi.
|
|
1910
|
+
*/
|
|
1911
|
+
objectTypeIsError(dataType: string | undefined | null): boolean;
|
|
1722
1912
|
/** §4.6 — `scale` si applica solo ai numerici. */
|
|
1723
1913
|
supportsScale(dataType: string | undefined | null): boolean;
|
|
1724
1914
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlowDictionaryStore, never>;
|
|
1725
1915
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FlowDictionaryStore>;
|
|
1726
1916
|
}
|
|
1917
|
+
/**
|
|
1918
|
+
* §4.7.1 — la descrizione di una classe come la vede la UI: i membri, la `label` della classe che
|
|
1919
|
+
* arriva dall'involucro della risposta, e l'**esito**, che ha **tre** casi da non confondere:
|
|
1920
|
+
*
|
|
1921
|
+
* - `declared`: elenco **autorevole**. Si propongono solo questi, e un membro fuori elenco e'
|
|
1922
|
+
* `STRUCTURE_MEMBER_UNKNOWN`.
|
|
1923
|
+
* - `undeclared`: la classe e' valida ma `members` e' vuoto — i membri non sono dichiarati (un
|
|
1924
|
+
* host con `IStructureMgr` a registro esplicito). Tendina vuota, nome del membro
|
|
1925
|
+
* **digitabile**, e nessuna accusa: non si sa, non e' "sbagliato".
|
|
1926
|
+
* - `unknown-class`: 404, la classe non e' registrata. Non si propone e non si digita niente di
|
|
1927
|
+
* utile: e' la **classe** a essere segnalata (`STRUCTURE_TYPE_UNKNOWN`), una volta sulla
|
|
1928
|
+
* risorsa e non a ogni riferimento.
|
|
1929
|
+
* - `unknown-catalog`: la primitiva non c'e' o la richiesta e' fallita. Come `undeclared` per
|
|
1930
|
+
* la UI, ma per un motivo diverso, e non dice nulla sulla classe.
|
|
1931
|
+
*
|
|
1932
|
+
* Trattare il 404 come "nessun membro" farebbe digitare membri che il runtime rifiutera';
|
|
1933
|
+
* trattare `members: []` come un 404 renderebbe inutilizzabile una classe perfettamente valida.
|
|
1934
|
+
*/
|
|
1935
|
+
interface FlowStructureDescribed {
|
|
1936
|
+
status: 'declared' | 'undeclared' | 'unknown-class' | 'unknown-catalog';
|
|
1937
|
+
members: FlowStructureMember[];
|
|
1938
|
+
/** La `label` della classe, quando la descrizione l'ha portata: `null` = ricadi sul nome. */
|
|
1939
|
+
label?: string | null;
|
|
1940
|
+
}
|
|
1727
1941
|
declare class FlowCatalogStore {
|
|
1728
1942
|
private readonly api;
|
|
1729
1943
|
private readonly objectsCache;
|
|
@@ -1731,6 +1945,7 @@ declare class FlowCatalogStore {
|
|
|
1731
1945
|
private readonly fieldValuesCache;
|
|
1732
1946
|
private readonly entriesCache;
|
|
1733
1947
|
private readonly parametersCache;
|
|
1948
|
+
private readonly membersCache;
|
|
1734
1949
|
/**
|
|
1735
1950
|
* Una lista vuota significa "non lo so", non "nessuno": con il catalogo non popolato la
|
|
1736
1951
|
* validazione salta i controlli invece di produrre falsi allarmi (§7). L'editor fa lo
|
|
@@ -1750,6 +1965,22 @@ declare class FlowCatalogStore {
|
|
|
1750
1965
|
listForms(): Promise<FlowCatalogEntry[]>;
|
|
1751
1966
|
listFormParameters(formName: string): Promise<FlowCatalogParameter[]>;
|
|
1752
1967
|
listEnumTypes(): Promise<FlowCatalogEntry[]>;
|
|
1968
|
+
/**
|
|
1969
|
+
* §4.7 — le classi utilizzabili come `objectType` di una `Structure`. La primitiva e'
|
|
1970
|
+
* opzionale: se l'ambiente non la espone, l'errore non si memoizza e l'elenco resta vuoto —
|
|
1971
|
+
* che significa "non lo so", e il nome della classe si scrive a mano.
|
|
1972
|
+
*/
|
|
1973
|
+
listStructures(): Promise<FlowCatalogEntry[]>;
|
|
1974
|
+
/**
|
|
1975
|
+
* §4.7.1 — la descrizione di una classe, **con l'esito**: sono tre e non due, e appiattirli in
|
|
1976
|
+
* una lista vuota perde l'informazione che serve alla UI. Vedi {@link FlowStructureDescribed}.
|
|
1977
|
+
*/
|
|
1978
|
+
describeStructure(className: string): Promise<FlowStructureDescribed>;
|
|
1979
|
+
/**
|
|
1980
|
+
* §4.7 — i soli membri, per chi non deve distinguere gli esiti. Chi mostra un avviso o accusa
|
|
1981
|
+
* un membro usa {@link describeStructure}: qui una lista vuota e' ambigua per costruzione.
|
|
1982
|
+
*/
|
|
1983
|
+
listStructureMembers(className: string): Promise<FlowStructureMember[]>;
|
|
1753
1984
|
listEvents(): Promise<FlowCatalogEntry[]>;
|
|
1754
1985
|
/** Da chiamare se lo schema cambia sotto i piedi (raro, ma il comando esiste). */
|
|
1755
1986
|
clear(): void;
|
|
@@ -1772,7 +2003,16 @@ declare class FlowValidationStore {
|
|
|
1772
2003
|
readonly issues: _angular_core.Signal<FlowValidationIssue[]>;
|
|
1773
2004
|
readonly errorCount: _angular_core.Signal<number>;
|
|
1774
2005
|
readonly warningCount: _angular_core.Signal<number>;
|
|
1775
|
-
|
|
2006
|
+
/**
|
|
2007
|
+
* I conteggi per gravita' **ricavati dai rilievi**, non quelli del risultato.
|
|
2008
|
+
*
|
|
2009
|
+
* Servono a etichettare i filtri del pannello, e un'etichetta di filtro deve contare
|
|
2010
|
+
* esattamente cio' che il filtro mostrera': `errorCount` del backend e' l'unica verita' per
|
|
2011
|
+
* l'attivazione (§8.3) ma non e' allineato ai secchi, quindi usarlo sul chip produrrebbe un
|
|
2012
|
+
* «Errori 3» che apre una lista di due. Il livello si normalizza (`severityBucket`) perche'
|
|
2013
|
+
* la stringa e' aperta.
|
|
2014
|
+
*/
|
|
2015
|
+
readonly issueCounts: _angular_core.Signal<Record<FlowSeverityBucket, number>>;
|
|
1776
2016
|
/**
|
|
1777
2017
|
* `false` finche' non e' arrivata una validazione: non presentare l'assenza di rilievi
|
|
1778
2018
|
* come garanzia di correttezza (§7, ultimo capoverso).
|
|
@@ -1786,7 +2026,7 @@ declare class FlowValidationStore {
|
|
|
1786
2026
|
readonly documentIssues: _angular_core.Signal<FlowValidationIssue[]>;
|
|
1787
2027
|
constructor();
|
|
1788
2028
|
/** La gravita' peggiore su un elemento, per decidere il colore del node sul canvas. */
|
|
1789
|
-
severityOf(elementName: string):
|
|
2029
|
+
severityOf(elementName: string): FlowSeverityBucket | null;
|
|
1790
2030
|
/**
|
|
1791
2031
|
* I rilievi che riguardano un campo dentro un elemento.
|
|
1792
2032
|
* `path` e' del tipo `rules[Approvato].connector.targetReference`: il confronto e' per
|
|
@@ -2000,8 +2240,12 @@ interface FlowCanvasNode {
|
|
|
2000
2240
|
showsOutletLabels: boolean;
|
|
2001
2241
|
/** `false` → nessun percorso lo raggiunge dallo Start: va reso "scollegato" (§6.4). */
|
|
2002
2242
|
isReachable: boolean;
|
|
2003
|
-
/**
|
|
2004
|
-
|
|
2243
|
+
/**
|
|
2244
|
+
* La gravita' peggiore dei rilievi sull'elemento (§7), **normalizzata**: il template
|
|
2245
|
+
* confronta `=== 'Error'`, e `FlowIssueSeverity` e' un tipo aperto in cui un `error`
|
|
2246
|
+
* minuscolo non colorerebbe niente.
|
|
2247
|
+
*/
|
|
2248
|
+
severity: FlowSeverityBucket | null;
|
|
2005
2249
|
/** Numero di rilievi, per il badge. */
|
|
2006
2250
|
issueCount: number;
|
|
2007
2251
|
/** L'elemento espone il proprio risultato sotto il proprio nome (§4.5). */
|
|
@@ -2055,6 +2299,12 @@ declare class FlowCanvasComponent {
|
|
|
2055
2299
|
* Assente → si usa il calcolo locale.
|
|
2056
2300
|
*/
|
|
2057
2301
|
readonly outline: _angular_core.InputSignal<FlowOutline | null>;
|
|
2302
|
+
/**
|
|
2303
|
+
* Lo decide il backend, non il client (§8): su una versione non modificabile i comandi che
|
|
2304
|
+
* mutano il documento non si offrono. Arriva come input invece di leggere la sessione,
|
|
2305
|
+
* perche' il canvas resti montabile da solo.
|
|
2306
|
+
*/
|
|
2307
|
+
readonly isEditable: _angular_core.InputSignal<boolean>;
|
|
2058
2308
|
readonly selectionChange: _angular_core.OutputEmitterRef<string | null>;
|
|
2059
2309
|
readonly nodeOpened: _angular_core.OutputEmitterRef<string>;
|
|
2060
2310
|
readonly nodeRemoveRequested: _angular_core.OutputEmitterRef<string>;
|
|
@@ -2067,6 +2317,28 @@ declare class FlowCanvasComponent {
|
|
|
2067
2317
|
x: number;
|
|
2068
2318
|
y: number;
|
|
2069
2319
|
}>;
|
|
2320
|
+
private readonly canvas;
|
|
2321
|
+
private readonly _hasMovedViewport;
|
|
2322
|
+
/** L'utente ha zoomato o spostato la vista: il comando per rimetterla a posto ha senso. */
|
|
2323
|
+
readonly hasMovedViewport: _angular_core.Signal<boolean>;
|
|
2324
|
+
/** Il primo `fNodesRendered` inquadra, i successivi no: rifarlo combatterebbe con l'utente. */
|
|
2325
|
+
private hasFramedOnce;
|
|
2326
|
+
/**
|
|
2327
|
+
* `fitToScreen` va chiamato **dopo** che i node sono stati renderizzati: prima, la libreria
|
|
2328
|
+
* non conosce ancora le loro dimensioni e inquadra la vista sbagliata (FF1009).
|
|
2329
|
+
*
|
|
2330
|
+
* Con un solo node (un flow appena creato ha solo lo Start) non si inquadra niente: la
|
|
2331
|
+
* vista si spalancherebbe su una card sola.
|
|
2332
|
+
*/
|
|
2333
|
+
onNodesRendered(): void;
|
|
2334
|
+
/**
|
|
2335
|
+
* Qualunque zoom o panoramica accende il pulsante. `frameFlow` passa
|
|
2336
|
+
* `emitCanvasChange: false`, quindi il ritorno alla vista iniziale non rientra da qui e il
|
|
2337
|
+
* pulsante si spegne invece di restare acceso per sempre.
|
|
2338
|
+
*/
|
|
2339
|
+
onCanvasChange(): void;
|
|
2340
|
+
resetViewport(): void;
|
|
2341
|
+
private frameFlow;
|
|
2070
2342
|
/** Raggiungibilita': backend se c'e', locale altrimenti. */
|
|
2071
2343
|
private readonly reachability;
|
|
2072
2344
|
readonly nodes: _angular_core.Signal<FlowCanvasNode[]>;
|
|
@@ -2133,6 +2405,12 @@ declare class FlowCanvasComponent {
|
|
|
2133
2405
|
* dell'area sottostante.
|
|
2134
2406
|
*/
|
|
2135
2407
|
onEditClick(event: Event, name: string): void;
|
|
2408
|
+
/**
|
|
2409
|
+
* `stopPropagation` come per ✎: senza, il clic arriva anche al node e la selezione cambia
|
|
2410
|
+
* mentre l'elemento sta sparendo. La rimozione la esegue il documento, non il canvas:
|
|
2411
|
+
* `removeNode` toglie anche i connector che lo puntavano.
|
|
2412
|
+
*/
|
|
2413
|
+
onRemoveClick(event: Event, name: string): void;
|
|
2136
2414
|
connectorIdOf(node: FlowCanvasNode, outletKey: string): string;
|
|
2137
2415
|
targetIdOf(node: FlowCanvasNode): string;
|
|
2138
2416
|
isSelected(node: FlowCanvasNode): boolean;
|
|
@@ -2141,7 +2419,7 @@ declare class FlowCanvasComponent {
|
|
|
2141
2419
|
/** Classe della fascia colorata, per categoria del dizionario. */
|
|
2142
2420
|
categoryClass(node: FlowCanvasNode): string;
|
|
2143
2421
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlowCanvasComponent, never>;
|
|
2144
|
-
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>;
|
|
2422
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlowCanvasComponent, "fb-flow-canvas", never, { "selectedName": { "alias": "selectedName"; "required": false; "isSignal": true; }; "outline": { "alias": "outline"; "required": false; "isSignal": true; }; "isEditable": { "alias": "isEditable"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "nodeOpened": "nodeOpened"; "nodeRemoveRequested": "nodeRemoveRequested"; "nodeDuplicateRequested": "nodeDuplicateRequested"; "elementDropped": "elementDropped"; }, never, never, true, never>;
|
|
2145
2423
|
}
|
|
2146
2424
|
|
|
2147
2425
|
/** Il gesto scelto sulla palette: un tipo e, dove esiste, la sua variante (§5.5). */
|
|
@@ -2206,6 +2484,7 @@ declare class ReferencePickerComponent {
|
|
|
2206
2484
|
private readonly api;
|
|
2207
2485
|
private readonly store;
|
|
2208
2486
|
private readonly dictionaries;
|
|
2487
|
+
private readonly catalog;
|
|
2209
2488
|
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
2210
2489
|
readonly label: _angular_core.InputSignal<string>;
|
|
2211
2490
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
@@ -2231,6 +2510,14 @@ declare class ReferencePickerComponent {
|
|
|
2231
2510
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
2232
2511
|
readonly query: _angular_core.WritableSignal<string>;
|
|
2233
2512
|
constructor();
|
|
2513
|
+
/**
|
|
2514
|
+
* §4.7 — la risorsa `Structure` da cui il valore corrente sta navigando, se c'e'. È quella
|
|
2515
|
+
* che rende i membri proponibili: senza classe non c'e' catalogo da interrogare.
|
|
2516
|
+
*/
|
|
2517
|
+
readonly structureRoot: _angular_core.Signal<FlowReference | undefined>;
|
|
2518
|
+
private readonly members;
|
|
2519
|
+
/** I membri come riferimenti navigati: `Richiesta.Ragione`, col tipo del membro. */
|
|
2520
|
+
private readonly memberReferences;
|
|
2234
2521
|
readonly options: _angular_core.Signal<FlowReference[]>;
|
|
2235
2522
|
/** Le opzioni raggruppate per `kind`, così gli output automatici si distinguono. */
|
|
2236
2523
|
readonly groups: _angular_core.Signal<{
|
|
@@ -2246,12 +2533,19 @@ declare class ReferencePickerComponent {
|
|
|
2246
2533
|
* output automatico navigato): la validazione non verifica i percorsi con il punto,
|
|
2247
2534
|
* quindi si accetta senza segnalare;
|
|
2248
2535
|
* - `host`: scope del sistema ospite che **non dichiara percorsi**: non verificabile (§4.1);
|
|
2536
|
+
* - `member`: membro di una classe, esistente: qui il percorso **e'** verificato (§4.7);
|
|
2537
|
+
* - `memberUnknown`: la radice e' una `Structure` ma il membro non c'e': e'
|
|
2538
|
+
* `STRUCTURE_MEMBER_UNKNOWN`, e a differenza di un campo di record si sa per certo;
|
|
2539
|
+
* - `memberNotWritable`: il membro esiste, e' calcolato, e questo campo vuole una
|
|
2540
|
+
* destinazione: `TARGET_NOT_WRITABLE`;
|
|
2249
2541
|
* - `unknown`: nessuna corrispondenza: si avvisa, senza bloccare. Ci finisce anche il
|
|
2250
2542
|
* percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
|
|
2251
2543
|
* risponderebbe `GLOBAL_UNKNOWN`.
|
|
2252
2544
|
*/
|
|
2253
|
-
readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "unknown">;
|
|
2545
|
+
readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "member" | "memberUnknown" | "memberNotWritable" | "unknown">;
|
|
2254
2546
|
readonly hint: _angular_core.Signal<string | null>;
|
|
2547
|
+
/** I due stati che sono errori e non avvisi: il colore deve dirlo. */
|
|
2548
|
+
readonly isHintError: _angular_core.Signal<boolean>;
|
|
2255
2549
|
readonly errorMessage: _angular_core.Signal<string | null>;
|
|
2256
2550
|
open(): void;
|
|
2257
2551
|
close(): void;
|
|
@@ -2329,7 +2623,7 @@ declare class FieldPickerComponent {
|
|
|
2329
2623
|
readonly isRelationPath: _angular_core.Signal<boolean>;
|
|
2330
2624
|
readonly isUnknown: _angular_core.Signal<boolean>;
|
|
2331
2625
|
/** L'avviso dipende dall'uso: un campo puo' esistere e non essere filtrabile. */
|
|
2332
|
-
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.">;
|
|
2626
|
+
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.">;
|
|
2333
2627
|
readonly describeValue: _angular_core.Signal<string | null>;
|
|
2334
2628
|
readonly loadErrored: _angular_core.Signal<boolean>;
|
|
2335
2629
|
open(): void;
|
|
@@ -2386,6 +2680,85 @@ declare class NamePickerComponent {
|
|
|
2386
2680
|
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>;
|
|
2387
2681
|
}
|
|
2388
2682
|
|
|
2683
|
+
declare class StructurePickerComponent {
|
|
2684
|
+
private readonly catalog;
|
|
2685
|
+
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
2686
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2687
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
2688
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2689
|
+
readonly valueChange: _angular_core.OutputEmitterRef<string | undefined>;
|
|
2690
|
+
private readonly structures;
|
|
2691
|
+
constructor();
|
|
2692
|
+
readonly options: _angular_core.Signal<NamePickerOption[]>;
|
|
2693
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructurePickerComponent, never>;
|
|
2694
|
+
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>;
|
|
2695
|
+
}
|
|
2696
|
+
|
|
2697
|
+
/** `any` per un membro da leggere, `writable` per una destinazione. */
|
|
2698
|
+
type StructureMemberUsage = 'any' | 'writable';
|
|
2699
|
+
declare class StructureMemberPickerComponent {
|
|
2700
|
+
private readonly catalog;
|
|
2701
|
+
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
2702
|
+
/** La classe di cui elencare i membri: senza classe non c'e' catalogo. */
|
|
2703
|
+
readonly className: _angular_core.InputSignal<string | undefined>;
|
|
2704
|
+
readonly usage: _angular_core.InputSignal<StructureMemberUsage>;
|
|
2705
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2706
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
2707
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
2708
|
+
readonly valueChange: _angular_core.OutputEmitterRef<string | undefined>;
|
|
2709
|
+
/**
|
|
2710
|
+
* §4.7.1 — non basta l'elenco: serve l'**esito**. Elenco vuoto perche' i membri non sono
|
|
2711
|
+
* dichiarati (si digita a mano) e classe non registrata (non c'e' niente da digitare) hanno
|
|
2712
|
+
* la stessa lista e messaggi opposti.
|
|
2713
|
+
*/
|
|
2714
|
+
private readonly result;
|
|
2715
|
+
private readonly members;
|
|
2716
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
2717
|
+
/** Il testo digitato mentre il pannello e' aperto: filtra l'elenco. */
|
|
2718
|
+
private readonly query;
|
|
2719
|
+
constructor();
|
|
2720
|
+
readonly text: _angular_core.Signal<string>;
|
|
2721
|
+
/** Con `usage="writable"` i membri di sola lettura non si propongono affatto. */
|
|
2722
|
+
readonly available: _angular_core.Signal<FlowStructureMember[]>;
|
|
2723
|
+
readonly options: _angular_core.Signal<FlowStructureMember[]>;
|
|
2724
|
+
/**
|
|
2725
|
+
* Come chiamare la classe: la `label` la porta l'involucro della descrizione, ed e' il motivo
|
|
2726
|
+
* per cui l'involucro esiste (§4.7.1). Assente, si mostra il nome della classe.
|
|
2727
|
+
*/
|
|
2728
|
+
readonly classLabel: _angular_core.Signal<string>;
|
|
2729
|
+
/** Elenco autorevole: solo qui un membro fuori elenco e' un errore (§4.7.1). */
|
|
2730
|
+
readonly hasCatalog: _angular_core.Signal<boolean>;
|
|
2731
|
+
/** 404: la classe non e' registrata. Il nome del membro non c'e' modo di indovinarlo. */
|
|
2732
|
+
readonly isClassUnknown: _angular_core.Signal<boolean>;
|
|
2733
|
+
/** Classe valida, membri non dichiarati: si digita, e non si segnala niente. */
|
|
2734
|
+
readonly isUndeclared: _angular_core.Signal<boolean>;
|
|
2735
|
+
/** Il primo segmento: e' l'unico che si puo' verificare (§4.7). */
|
|
2736
|
+
private readonly firstSegment;
|
|
2737
|
+
/** `true` se il valore naviga dentro un membro: oltre il primo segmento non si verifica. */
|
|
2738
|
+
readonly isNestedPath: _angular_core.Signal<boolean>;
|
|
2739
|
+
private readonly declared;
|
|
2740
|
+
readonly isUnknown: _angular_core.Signal<boolean>;
|
|
2741
|
+
/** Il messaggio elenca i disponibili: dire solo "non esiste" non aiuta a correggere. */
|
|
2742
|
+
readonly unknownMessage: _angular_core.Signal<string>;
|
|
2743
|
+
/**
|
|
2744
|
+
* Un membro che esiste ma non e' scrivibile, scelto dove serve una destinazione: capita su un
|
|
2745
|
+
* documento scritto altrove, e va detto qui invece di lasciarlo scoprire dall'attivazione.
|
|
2746
|
+
*/
|
|
2747
|
+
readonly isNotWritable: _angular_core.Signal<boolean>;
|
|
2748
|
+
readonly describeValue: _angular_core.Signal<string | null>;
|
|
2749
|
+
/** Catalogo assente per un motivo che non riguarda la classe: "non lo so". */
|
|
2750
|
+
readonly loadErrored: _angular_core.Signal<boolean>;
|
|
2751
|
+
open(): void;
|
|
2752
|
+
close(): void;
|
|
2753
|
+
toggle(): void;
|
|
2754
|
+
onInput(text: string): void;
|
|
2755
|
+
choose(member: FlowStructureMember): void;
|
|
2756
|
+
clear(): void;
|
|
2757
|
+
describe(member: FlowStructureMember): string;
|
|
2758
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructureMemberPickerComponent, never>;
|
|
2759
|
+
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>;
|
|
2760
|
+
}
|
|
2761
|
+
|
|
2389
2762
|
/** Le modalita' offerte: una per campo del modello. */
|
|
2390
2763
|
type ValueMode = 'reference' | 'literal' | 'formula' | 'globalConstant' | 'empty';
|
|
2391
2764
|
declare class ValueEditorComponent {
|
|
@@ -2409,13 +2782,19 @@ declare class ValueEditorComponent {
|
|
|
2409
2782
|
*/
|
|
2410
2783
|
readonly filledFieldCount: _angular_core.Signal<number>;
|
|
2411
2784
|
readonly isAmbiguous: _angular_core.Signal<boolean>;
|
|
2412
|
-
/**
|
|
2785
|
+
/**
|
|
2786
|
+
* Il campo del valore che corrisponde al `dataType` (§4.2, tabella degli otto tipi). `Object` e
|
|
2787
|
+
* `Structure` non ci sono: si passano per riferimento, e {@link literalAllowed} li esclude.
|
|
2788
|
+
*/
|
|
2413
2789
|
readonly literalField: _angular_core.Signal<keyof FlowValue>;
|
|
2414
2790
|
/**
|
|
2415
2791
|
* `Object` non ha un campo letterale: un record si passa per riferimento (§4.2).
|
|
2416
|
-
* Lo stesso vale per una collection
|
|
2792
|
+
* Lo stesso vale per una collection e per una `Structure`, che non ha un `structureValue` e
|
|
2793
|
+
* non lo avra': un'istanza nasce dal runtime e nel metadata si cita per riferimento (§4.7).
|
|
2417
2794
|
*/
|
|
2418
2795
|
readonly literalAllowed: _angular_core.Signal<boolean>;
|
|
2796
|
+
/** §4.7 — la destinazione e' un'istanza di classe: si passa per riferimento e basta. */
|
|
2797
|
+
readonly isStructureTarget: _angular_core.Signal<boolean>;
|
|
2419
2798
|
readonly literalInputType: _angular_core.Signal<string>;
|
|
2420
2799
|
readonly literalText: _angular_core.Signal<string>;
|
|
2421
2800
|
readonly booleanValue: _angular_core.Signal<boolean>;
|
|
@@ -2558,9 +2937,17 @@ declare class RecordFilterEditorComponent {
|
|
|
2558
2937
|
readonly emptyWarningSeverity: _angular_core.InputSignal<"error" | "warn">;
|
|
2559
2938
|
readonly changed: _angular_core.OutputEmitterRef<(holder: FilterHolder) => void>;
|
|
2560
2939
|
private readonly fields;
|
|
2940
|
+
/** Tutti i campi, filtrabili o no: serve solo a riconoscere le chiavi composte (§5.7). */
|
|
2941
|
+
private readonly allFields;
|
|
2561
2942
|
readonly filters: _angular_core.Signal<FlowRecordFilter[]>;
|
|
2562
2943
|
readonly operators: _angular_core.Signal<_esfaenza_flow_builder.FlowDictionaryEntry[]>;
|
|
2563
2944
|
constructor();
|
|
2945
|
+
/**
|
|
2946
|
+
* §5.7 — l'identificativo esiste ma **non e' filtrabile**: e' il caso di una chiave composta,
|
|
2947
|
+
* dove `Id` porta la forma canonica della chiave e le colonne filtrabili sono altre. Dirlo
|
|
2948
|
+
* evita la ricerca di un campo che nell'elenco non c'e' e non ci sara'.
|
|
2949
|
+
*/
|
|
2950
|
+
readonly identifierNotFilterable: _angular_core.Signal<boolean>;
|
|
2564
2951
|
readonly logicMode: _angular_core.Signal<"and" | "or" | "formula" | "custom">;
|
|
2565
2952
|
readonly customLogic: _angular_core.Signal<string>;
|
|
2566
2953
|
readonly showEmptyWarning: _angular_core.Signal<boolean>;
|
|
@@ -2637,6 +3024,8 @@ declare class FieldAssignmentEditorComponent {
|
|
|
2637
3024
|
private readonly catalog;
|
|
2638
3025
|
readonly holder: _angular_core.InputSignal<FieldAssignmentHolder>;
|
|
2639
3026
|
readonly object: _angular_core.InputSignal<string | undefined>;
|
|
3027
|
+
/** `createable` su un Create, `updateable` su un Update: lo decide il chiamante (§5.7). */
|
|
3028
|
+
readonly usage: _angular_core.InputSignal<FlowFieldUsage>;
|
|
2640
3029
|
readonly title: _angular_core.InputSignal<string>;
|
|
2641
3030
|
readonly disabledReason: _angular_core.InputSignal<string | null>;
|
|
2642
3031
|
readonly changed: _angular_core.OutputEmitterRef<(holder: FieldAssignmentHolder) => void>;
|
|
@@ -2656,7 +3045,7 @@ declare class FieldAssignmentEditorComponent {
|
|
|
2656
3045
|
*/
|
|
2657
3046
|
describe(name: string | undefined): FlowFieldDescription | undefined;
|
|
2658
3047
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldAssignmentEditorComponent, never>;
|
|
2659
|
-
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>;
|
|
3048
|
+
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>;
|
|
2660
3049
|
}
|
|
2661
3050
|
|
|
2662
3051
|
declare class ConnectorEditorComponent {
|
|
@@ -2969,6 +3358,16 @@ declare class ResourcePanelComponent {
|
|
|
2969
3358
|
requiresObjectType(reference: FlowResourceRef): boolean;
|
|
2970
3359
|
supportsScale(reference: FlowResourceRef): boolean;
|
|
2971
3360
|
isEnum(reference: FlowResourceRef): boolean;
|
|
3361
|
+
/** §4.7 — un'istanza di classe: `objectType` e' il nome della classe, non di un'entita'. */
|
|
3362
|
+
isStructure(reference: FlowResourceRef): boolean;
|
|
3363
|
+
/**
|
|
3364
|
+
* §4.7 — una `Structure` non ha una forma letterale: nasce dal runtime come istanza vuota e i
|
|
3365
|
+
* membri si assegnano uno alla volta. Mostrare un campo «valore iniziale» prometterebbe una
|
|
3366
|
+
* cosa che il modello non sa esprimere.
|
|
3367
|
+
*/
|
|
3368
|
+
supportsInitialValue(reference: FlowResourceRef): boolean;
|
|
3369
|
+
/** Su una `Structure` l'`objectType` mancante e' un errore, non un avviso (§4.7). */
|
|
3370
|
+
missingObjectType(reference: FlowResourceRef): boolean;
|
|
2972
3371
|
/** Una costante che referenzia una risorsa e' `CONSTANT_REFERENCES_RESOURCE`. */
|
|
2973
3372
|
constantReferencesResource(reference: FlowResourceRef): boolean;
|
|
2974
3373
|
/** `stageOrder` duplicati: quale stage sia il corrente all'avvio diventa arbitrario. */
|
|
@@ -2981,7 +3380,7 @@ declare class ResourcePanelComponent {
|
|
|
2981
3380
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ResourcePanelComponent, "fb-resource-panel", never, {}, { "closed": "closed"; }, never, never, true, never>;
|
|
2982
3381
|
}
|
|
2983
3382
|
|
|
2984
|
-
type SeverityFilter = 'all' |
|
|
3383
|
+
type SeverityFilter = 'all' | FlowSeverityBucket;
|
|
2985
3384
|
declare class ProblemsPanelComponent {
|
|
2986
3385
|
private readonly validation;
|
|
2987
3386
|
/** Chiede di selezionare l'elemento: `$start` per i rilievi sul documento. */
|
|
@@ -2991,12 +3390,25 @@ declare class ProblemsPanelComponent {
|
|
|
2991
3390
|
readonly isRunning: _angular_core.Signal<boolean>;
|
|
2992
3391
|
readonly hasResult: _angular_core.Signal<boolean>;
|
|
2993
3392
|
readonly lastError: _angular_core.Signal<string | null>;
|
|
3393
|
+
/**
|
|
3394
|
+
* I conteggi dei chip vengono dai rilievi, non dal risultato: il numero sul filtro deve
|
|
3395
|
+
* essere quello che il filtro apre (vedi `FlowValidationStore.issueCounts`).
|
|
3396
|
+
*/
|
|
3397
|
+
private readonly counts;
|
|
2994
3398
|
readonly errorCount: _angular_core.Signal<number>;
|
|
2995
3399
|
readonly warningCount: _angular_core.Signal<number>;
|
|
2996
3400
|
readonly infoCount: _angular_core.Signal<number>;
|
|
3401
|
+
readonly totalCount: _angular_core.Signal<number>;
|
|
2997
3402
|
readonly issues: _angular_core.Signal<FlowValidationIssue[]>;
|
|
2998
3403
|
readonly isClean: _angular_core.Signal<boolean>;
|
|
3404
|
+
/** Ci sono rilievi, ma il filtro attivo non ne mostra nessuno: va detto, non lasciato in bianco. */
|
|
3405
|
+
readonly isFilteredEmpty: _angular_core.Signal<boolean>;
|
|
3406
|
+
readonly activeFilterLabel: _angular_core.Signal<string>;
|
|
3407
|
+
/** Un secondo clic sul filtro attivo torna a «Tutti»: e' l'unico modo per uscirne col mouse dov'e'. */
|
|
2999
3408
|
setFilter(filter: SeverityFilter): void;
|
|
3409
|
+
bucketOf(issue: FlowValidationIssue): FlowSeverityBucket;
|
|
3410
|
+
iconText(bucket: FlowSeverityBucket): string;
|
|
3411
|
+
labelText(bucket: FlowSeverityBucket): string;
|
|
3000
3412
|
focus(issue: FlowValidationIssue): void;
|
|
3001
3413
|
close(): void;
|
|
3002
3414
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProblemsPanelComponent, never>;
|
|
@@ -3037,6 +3449,9 @@ declare class DebugPanelComponent {
|
|
|
3037
3449
|
private readonly api;
|
|
3038
3450
|
private readonly store;
|
|
3039
3451
|
private readonly session;
|
|
3452
|
+
private readonly dictionaries;
|
|
3453
|
+
private readonly catalog;
|
|
3454
|
+
constructor();
|
|
3040
3455
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
3041
3456
|
/** Chiede all'host di evidenziare l'elemento corrente dell'esecuzione. */
|
|
3042
3457
|
readonly elementFocused: _angular_core.OutputEmitterRef<string>;
|
|
@@ -3050,6 +3465,14 @@ declare class DebugPanelComponent {
|
|
|
3050
3465
|
readonly screenOutputs: _angular_core.WritableSignal<Record<string, string>>;
|
|
3051
3466
|
/** Le variabili `isInput` del flow: il contratto verso chi lo invoca (§4.6). */
|
|
3052
3467
|
readonly inputVariables: _angular_core.Signal<FlowVariable[]>;
|
|
3468
|
+
/**
|
|
3469
|
+
* §4.7 — i membri delle classi delle variabili `Structure` di input, per classe. Un'istanza si
|
|
3470
|
+
* compila un membro alla volta: non c'e' un letterale con cui scriverla in un campo solo.
|
|
3471
|
+
*/
|
|
3472
|
+
private readonly membersByClass;
|
|
3473
|
+
/** I membri **scrivibili** di una classe: gli altri li calcola il backend. */
|
|
3474
|
+
membersOf(className: string | undefined): FlowStructureMember[];
|
|
3475
|
+
isStructureVariable(variable: FlowVariable): boolean;
|
|
3053
3476
|
readonly canRun: _angular_core.Signal<boolean>;
|
|
3054
3477
|
readonly status: _angular_core.Signal<string | null>;
|
|
3055
3478
|
readonly pendingScreen: _angular_core.Signal<_esfaenza_flow_builder.FlowPendingScreen | null>;
|
|
@@ -3081,10 +3504,17 @@ declare class DebugPanelComponent {
|
|
|
3081
3504
|
}[]>;
|
|
3082
3505
|
/** I nomi degli output dichiarati dallo screen, per generare i campi da compilare. */
|
|
3083
3506
|
readonly screenOutputNames: _angular_core.Signal<string[]>;
|
|
3507
|
+
/**
|
|
3508
|
+
* §6.5 — il tipo dichiarato vince, e due tipi hanno una forma propria invece di `value`: un
|
|
3509
|
+
* record e un'istanza di classe. Cercare `value` su un `Structure` mostrerebbe «—» pur avendo
|
|
3510
|
+
* i dati sotto gli occhi (§4.7).
|
|
3511
|
+
*/
|
|
3084
3512
|
private static render;
|
|
3085
3513
|
setDebugEnabled(value: boolean): void;
|
|
3086
3514
|
setInputValue(name: string, value: string): void;
|
|
3087
3515
|
setScreenOutput(name: string, value: string): void;
|
|
3516
|
+
/** Converte un valore del form nel tipo dichiarato: il tipo vince, anche in scrittura (§6.5). */
|
|
3517
|
+
private static coerce;
|
|
3088
3518
|
/** Converte i valori del form nel tipo dichiarato dalla variabile. */
|
|
3089
3519
|
private coerceInputs;
|
|
3090
3520
|
start(): Promise<void>;
|
|
@@ -3182,6 +3612,14 @@ declare class FlowBuilderComponent {
|
|
|
3182
3612
|
setInterviewLabel(value: string): void;
|
|
3183
3613
|
setProcessType(value: string): void;
|
|
3184
3614
|
readonly processTypes: _angular_core.Signal<_esfaenza_flow_builder.FlowDictionaryEntry[]>;
|
|
3615
|
+
/**
|
|
3616
|
+
* Il `processType` del documento non e' fra quelli del dizionario. Non e' un caso di scuola:
|
|
3617
|
+
* basta che il dizionario arrivi senza `processTypes`, o che il backend salvi una scrittura
|
|
3618
|
+
* diversa da quella che elenca, e la select — che non ha un'opzione corrispondente — si
|
|
3619
|
+
* presenta bianca su un flow che invece ha il suo tipo. Il template aggiunge l'opzione
|
|
3620
|
+
* mancante; qui si decide solo se serve.
|
|
3621
|
+
*/
|
|
3622
|
+
readonly isProcessTypeOutOfCatalog: _angular_core.Signal<boolean>;
|
|
3185
3623
|
/** `AutoLaunched` + screen e' un errore di validazione: si segnala subito (§13.6). */
|
|
3186
3624
|
readonly hasScreensInAutoLaunched: _angular_core.Signal<boolean>;
|
|
3187
3625
|
/** Un flow `Screen` senza screen e' `SCREEN_FLOW_WITHOUT_SCREENS`. */
|
|
@@ -3264,5 +3702,5 @@ declare class SelectValueDirective implements AfterViewChecked {
|
|
|
3264
3702
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueDirective, "select[fbValue]", never, { "fbValue": { "alias": "fbValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3265
3703
|
}
|
|
3266
3704
|
|
|
3267
|
-
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, 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 };
|
|
3268
|
-
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, 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, PaletteGroup, PaletteItem, ParameterHolder, ValueMode };
|
|
3705
|
+
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, SEVERITY_BUCKETS, SEVERITY_ICON, SEVERITY_LABEL, 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, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, uniqueFlowName, variantFieldOf, variantOf, variantPresetOf };
|
|
3706
|
+
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, 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, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, NamePickerOption, PaletteGroup, PaletteItem, ParameterHolder, StructureMemberUsage, ValueMode };
|