@esfaenza/flow-builder 20.3.3 → 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 +34 -5
- package/fesm2022/esfaenza-flow-builder.mjs +701 -65
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +360 -18
- 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>;
|
|
@@ -1717,13 +1868,48 @@ declare class FlowDictionaryStore {
|
|
|
1717
1868
|
/** `stepInteractive` e `stepApproval` vogliono gli assegnatari (§5.13). */
|
|
1718
1869
|
stageStepRequiresAssignees(actionType: string | undefined | null): boolean;
|
|
1719
1870
|
dataType(value: string | undefined | null): FlowDataTypeEntry | undefined;
|
|
1720
|
-
/** §4.6 — `Object`
|
|
1871
|
+
/** §4.6, §4.7 — `Object`, `Enum` e `Structure` richiedono `objectType`. */
|
|
1721
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;
|
|
1722
1884
|
/** §4.6 — `scale` si applica solo ai numerici. */
|
|
1723
1885
|
supportsScale(dataType: string | undefined | null): boolean;
|
|
1724
1886
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlowDictionaryStore, never>;
|
|
1725
1887
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FlowDictionaryStore>;
|
|
1726
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
|
+
}
|
|
1727
1913
|
declare class FlowCatalogStore {
|
|
1728
1914
|
private readonly api;
|
|
1729
1915
|
private readonly objectsCache;
|
|
@@ -1731,6 +1917,7 @@ declare class FlowCatalogStore {
|
|
|
1731
1917
|
private readonly fieldValuesCache;
|
|
1732
1918
|
private readonly entriesCache;
|
|
1733
1919
|
private readonly parametersCache;
|
|
1920
|
+
private readonly membersCache;
|
|
1734
1921
|
/**
|
|
1735
1922
|
* Una lista vuota significa "non lo so", non "nessuno": con il catalogo non popolato la
|
|
1736
1923
|
* validazione salta i controlli invece di produrre falsi allarmi (§7). L'editor fa lo
|
|
@@ -1750,6 +1937,22 @@ declare class FlowCatalogStore {
|
|
|
1750
1937
|
listForms(): Promise<FlowCatalogEntry[]>;
|
|
1751
1938
|
listFormParameters(formName: string): Promise<FlowCatalogParameter[]>;
|
|
1752
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[]>;
|
|
1753
1956
|
listEvents(): Promise<FlowCatalogEntry[]>;
|
|
1754
1957
|
/** Da chiamare se lo schema cambia sotto i piedi (raro, ma il comando esiste). */
|
|
1755
1958
|
clear(): void;
|
|
@@ -2206,6 +2409,7 @@ declare class ReferencePickerComponent {
|
|
|
2206
2409
|
private readonly api;
|
|
2207
2410
|
private readonly store;
|
|
2208
2411
|
private readonly dictionaries;
|
|
2412
|
+
private readonly catalog;
|
|
2209
2413
|
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
2210
2414
|
readonly label: _angular_core.InputSignal<string>;
|
|
2211
2415
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
@@ -2231,6 +2435,14 @@ declare class ReferencePickerComponent {
|
|
|
2231
2435
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
2232
2436
|
readonly query: _angular_core.WritableSignal<string>;
|
|
2233
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;
|
|
2234
2446
|
readonly options: _angular_core.Signal<FlowReference[]>;
|
|
2235
2447
|
/** Le opzioni raggruppate per `kind`, così gli output automatici si distinguono. */
|
|
2236
2448
|
readonly groups: _angular_core.Signal<{
|
|
@@ -2246,12 +2458,19 @@ declare class ReferencePickerComponent {
|
|
|
2246
2458
|
* output automatico navigato): la validazione non verifica i percorsi con il punto,
|
|
2247
2459
|
* quindi si accetta senza segnalare;
|
|
2248
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`;
|
|
2249
2466
|
* - `unknown`: nessuna corrispondenza: si avvisa, senza bloccare. Ci finisce anche il
|
|
2250
2467
|
* percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
|
|
2251
2468
|
* risponderebbe `GLOBAL_UNKNOWN`.
|
|
2252
2469
|
*/
|
|
2253
|
-
readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "unknown">;
|
|
2470
|
+
readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "member" | "memberUnknown" | "memberNotWritable" | "unknown">;
|
|
2254
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>;
|
|
2255
2474
|
readonly errorMessage: _angular_core.Signal<string | null>;
|
|
2256
2475
|
open(): void;
|
|
2257
2476
|
close(): void;
|
|
@@ -2329,7 +2548,7 @@ declare class FieldPickerComponent {
|
|
|
2329
2548
|
readonly isRelationPath: _angular_core.Signal<boolean>;
|
|
2330
2549
|
readonly isUnknown: _angular_core.Signal<boolean>;
|
|
2331
2550
|
/** 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.">;
|
|
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.">;
|
|
2333
2552
|
readonly describeValue: _angular_core.Signal<string | null>;
|
|
2334
2553
|
readonly loadErrored: _angular_core.Signal<boolean>;
|
|
2335
2554
|
open(): void;
|
|
@@ -2386,6 +2605,85 @@ declare class NamePickerComponent {
|
|
|
2386
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>;
|
|
2387
2606
|
}
|
|
2388
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>;
|
|
2685
|
+
}
|
|
2686
|
+
|
|
2389
2687
|
/** Le modalita' offerte: una per campo del modello. */
|
|
2390
2688
|
type ValueMode = 'reference' | 'literal' | 'formula' | 'globalConstant' | 'empty';
|
|
2391
2689
|
declare class ValueEditorComponent {
|
|
@@ -2409,13 +2707,19 @@ declare class ValueEditorComponent {
|
|
|
2409
2707
|
*/
|
|
2410
2708
|
readonly filledFieldCount: _angular_core.Signal<number>;
|
|
2411
2709
|
readonly isAmbiguous: _angular_core.Signal<boolean>;
|
|
2412
|
-
/**
|
|
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
|
+
*/
|
|
2413
2714
|
readonly literalField: _angular_core.Signal<keyof FlowValue>;
|
|
2414
2715
|
/**
|
|
2415
2716
|
* `Object` non ha un campo letterale: un record si passa per riferimento (§4.2).
|
|
2416
|
-
* 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).
|
|
2417
2719
|
*/
|
|
2418
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>;
|
|
2419
2723
|
readonly literalInputType: _angular_core.Signal<string>;
|
|
2420
2724
|
readonly literalText: _angular_core.Signal<string>;
|
|
2421
2725
|
readonly booleanValue: _angular_core.Signal<boolean>;
|
|
@@ -2558,9 +2862,17 @@ declare class RecordFilterEditorComponent {
|
|
|
2558
2862
|
readonly emptyWarningSeverity: _angular_core.InputSignal<"error" | "warn">;
|
|
2559
2863
|
readonly changed: _angular_core.OutputEmitterRef<(holder: FilterHolder) => void>;
|
|
2560
2864
|
private readonly fields;
|
|
2865
|
+
/** Tutti i campi, filtrabili o no: serve solo a riconoscere le chiavi composte (§5.7). */
|
|
2866
|
+
private readonly allFields;
|
|
2561
2867
|
readonly filters: _angular_core.Signal<FlowRecordFilter[]>;
|
|
2562
2868
|
readonly operators: _angular_core.Signal<_esfaenza_flow_builder.FlowDictionaryEntry[]>;
|
|
2563
2869
|
constructor();
|
|
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>;
|
|
2564
2876
|
readonly logicMode: _angular_core.Signal<"and" | "or" | "formula" | "custom">;
|
|
2565
2877
|
readonly customLogic: _angular_core.Signal<string>;
|
|
2566
2878
|
readonly showEmptyWarning: _angular_core.Signal<boolean>;
|
|
@@ -2637,6 +2949,8 @@ declare class FieldAssignmentEditorComponent {
|
|
|
2637
2949
|
private readonly catalog;
|
|
2638
2950
|
readonly holder: _angular_core.InputSignal<FieldAssignmentHolder>;
|
|
2639
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>;
|
|
2640
2954
|
readonly title: _angular_core.InputSignal<string>;
|
|
2641
2955
|
readonly disabledReason: _angular_core.InputSignal<string | null>;
|
|
2642
2956
|
readonly changed: _angular_core.OutputEmitterRef<(holder: FieldAssignmentHolder) => void>;
|
|
@@ -2656,7 +2970,7 @@ declare class FieldAssignmentEditorComponent {
|
|
|
2656
2970
|
*/
|
|
2657
2971
|
describe(name: string | undefined): FlowFieldDescription | undefined;
|
|
2658
2972
|
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>;
|
|
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>;
|
|
2660
2974
|
}
|
|
2661
2975
|
|
|
2662
2976
|
declare class ConnectorEditorComponent {
|
|
@@ -2969,6 +3283,16 @@ declare class ResourcePanelComponent {
|
|
|
2969
3283
|
requiresObjectType(reference: FlowResourceRef): boolean;
|
|
2970
3284
|
supportsScale(reference: FlowResourceRef): boolean;
|
|
2971
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;
|
|
2972
3296
|
/** Una costante che referenzia una risorsa e' `CONSTANT_REFERENCES_RESOURCE`. */
|
|
2973
3297
|
constantReferencesResource(reference: FlowResourceRef): boolean;
|
|
2974
3298
|
/** `stageOrder` duplicati: quale stage sia il corrente all'avvio diventa arbitrario. */
|
|
@@ -3037,6 +3361,9 @@ declare class DebugPanelComponent {
|
|
|
3037
3361
|
private readonly api;
|
|
3038
3362
|
private readonly store;
|
|
3039
3363
|
private readonly session;
|
|
3364
|
+
private readonly dictionaries;
|
|
3365
|
+
private readonly catalog;
|
|
3366
|
+
constructor();
|
|
3040
3367
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
3041
3368
|
/** Chiede all'host di evidenziare l'elemento corrente dell'esecuzione. */
|
|
3042
3369
|
readonly elementFocused: _angular_core.OutputEmitterRef<string>;
|
|
@@ -3050,6 +3377,14 @@ declare class DebugPanelComponent {
|
|
|
3050
3377
|
readonly screenOutputs: _angular_core.WritableSignal<Record<string, string>>;
|
|
3051
3378
|
/** Le variabili `isInput` del flow: il contratto verso chi lo invoca (§4.6). */
|
|
3052
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;
|
|
3053
3388
|
readonly canRun: _angular_core.Signal<boolean>;
|
|
3054
3389
|
readonly status: _angular_core.Signal<string | null>;
|
|
3055
3390
|
readonly pendingScreen: _angular_core.Signal<_esfaenza_flow_builder.FlowPendingScreen | null>;
|
|
@@ -3081,10 +3416,17 @@ declare class DebugPanelComponent {
|
|
|
3081
3416
|
}[]>;
|
|
3082
3417
|
/** I nomi degli output dichiarati dallo screen, per generare i campi da compilare. */
|
|
3083
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
|
+
*/
|
|
3084
3424
|
private static render;
|
|
3085
3425
|
setDebugEnabled(value: boolean): void;
|
|
3086
3426
|
setInputValue(name: string, value: string): void;
|
|
3087
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;
|
|
3088
3430
|
/** Converte i valori del form nel tipo dichiarato dalla variabile. */
|
|
3089
3431
|
private coerceInputs;
|
|
3090
3432
|
start(): Promise<void>;
|
|
@@ -3140,7 +3482,7 @@ declare class FlowBuilderComponent {
|
|
|
3140
3482
|
* troppo. `panel` tiene il form nel pannello laterale, che e' piu' comodo quando si
|
|
3141
3483
|
* modificano molti elementi di fila perche' non c'e' niente da aprire e chiudere.
|
|
3142
3484
|
*/
|
|
3143
|
-
readonly inspectorMode: _angular_core.InputSignal<"
|
|
3485
|
+
readonly inspectorMode: _angular_core.InputSignal<"panel" | "dialog">;
|
|
3144
3486
|
readonly saved: _angular_core.OutputEmitterRef<FlowSaveResult>;
|
|
3145
3487
|
readonly activated: _angular_core.OutputEmitterRef<FlowSaveResult>;
|
|
3146
3488
|
readonly closeRequested: _angular_core.OutputEmitterRef<void>;
|
|
@@ -3264,5 +3606,5 @@ declare class SelectValueDirective implements AfterViewChecked {
|
|
|
3264
3606
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueDirective, "select[fbValue]", never, { "fbValue": { "alias": "fbValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3265
3607
|
}
|
|
3266
3608
|
|
|
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 };
|
|
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 };
|