@esfaenza/flow-builder 20.3.44 → 20.3.46
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 +41 -5
- package/fesm2022/esfaenza-flow-builder.mjs +452 -55
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +288 -14
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -234,7 +234,7 @@ interface FlowScreen extends FlowNodeBase {
|
|
|
234
234
|
* `screenFieldTypes`, che porta anche i flag (`storesValue`, `isContainer`, …) con cui
|
|
235
235
|
* l'editor decide quali campi mostrare: qui il tipo e' aperto proprio per quello.
|
|
236
236
|
*/
|
|
237
|
-
type FlowScreenFieldType = 'DisplayText' | 'InputField' | 'LargeTextArea' | 'PasswordField' | 'RadioButtons' | 'DropdownBox' | 'MultiSelectCheckboxes' | 'MultiSelectPicklist' | 'ComponentInstance' | 'Region' | 'RegionContainer' | 'ObjectProvided' | string;
|
|
237
|
+
type FlowScreenFieldType = 'DisplayText' | 'InputField' | 'LargeTextArea' | 'PasswordField' | 'RadioButtons' | 'DropdownBox' | 'MultiSelectCheckboxes' | 'MultiSelectPicklist' | 'ComponentInstance' | 'Region' | 'RegionContainer' | 'RepeatingSection' | 'ObjectProvided' | string;
|
|
238
238
|
/** §5.2 — la sezione con o senza intestazione. */
|
|
239
239
|
type FlowRegionContainerType = 'SectionWithHeader' | 'SectionWithoutHeader' | string;
|
|
240
240
|
/** §5.2 — cosa succede ai valori quando si torna sulla schermata. */
|
|
@@ -253,6 +253,12 @@ interface FlowScreenValidationRule {
|
|
|
253
253
|
* di node e risorse (§3.3), e un Assignment che ci scrive e' `TARGET_NOT_WRITABLE`;
|
|
254
254
|
* - `fields` esiste solo sui contenitori (`Region`, `RegionContainer`) e l'annidamento previsto
|
|
255
255
|
* e' **sezione → colonne → campi**: piu' profondo di così e' un avviso.
|
|
256
|
+
*
|
|
257
|
+
* L'unica eccezione alla prima e' un campo dentro una `RepeatingSection`: esiste in una riga per ogni
|
|
258
|
+
* elemento della collection, quindi il suo nome non individua alcun valore. Non e' una risorsa, non si
|
|
259
|
+
* propone fra i riferimenti, e nominarlo e' `SCREEN_FIELD_IN_REPEATER`. Il nome resta comunque **unico**
|
|
260
|
+
* — e' l'indirizzo con cui il frontend rende il campo — quindi un omonimo di una variabile resta
|
|
261
|
+
* `NAME_DUPLICATED`.
|
|
256
262
|
*/
|
|
257
263
|
interface FlowScreenField {
|
|
258
264
|
name?: string;
|
|
@@ -282,9 +288,49 @@ interface FlowScreenField {
|
|
|
282
288
|
maxLength?: number;
|
|
283
289
|
/** 1..12 nella griglia della schermata: il frontend puo' ignorarla. */
|
|
284
290
|
width?: number;
|
|
285
|
-
/**
|
|
291
|
+
/**
|
|
292
|
+
* Solo sui contenitori: sezione → colonne → campi. Su una `RepeatingSection` e' il **modello di una
|
|
293
|
+
* riga**: la schermata ne rende una copia per ogni elemento di `collectionReference`.
|
|
294
|
+
*/
|
|
286
295
|
fields?: FlowScreenField[];
|
|
287
296
|
regionContainerType?: FlowRegionContainerType;
|
|
297
|
+
/**
|
|
298
|
+
* §5.2 — `RepeatingSection`: **dove vivono le righe**, una variabile collection di tipo `Structure`.
|
|
299
|
+
* E' quella che il resto del flow attraversa con un Loop, ed e' il motivo per cui la sezione non
|
|
300
|
+
* introduce un posto nuovo in cui i dati stanno. **Obbligatoria**: senza,
|
|
301
|
+
* `REPEATING_SECTION_INVALID`.
|
|
302
|
+
*/
|
|
303
|
+
collectionReference?: string;
|
|
304
|
+
/**
|
|
305
|
+
* §5.2 — `RepeatingSection`: il **cursore**, una variabile `Structure` non collection dello stesso
|
|
306
|
+
* `objectType` di {@link collectionReference}, su cui il runtime appoggia la riga corrente. Ha lo
|
|
307
|
+
* stesso ruolo di `assignNextValueToReference` in un Loop, ed e' cio' che si nomina dentro una riga:
|
|
308
|
+
* `PuntoCorrente.PodId`, mai `Luce_POD`. **Obbligatorio**.
|
|
309
|
+
*/
|
|
310
|
+
itemReference?: string;
|
|
311
|
+
/**
|
|
312
|
+
* §5.2 — sui campi **dentro** una `RepeatingSection`: il membro della riga che il campo raccoglie.
|
|
313
|
+
* Senza, vale il nome del campo. Il membro deve esistere sulla classe delle righe e non essere di
|
|
314
|
+
* sola lettura: `STRUCTURE_MEMBER_UNKNOWN` e `TARGET_NOT_WRITABLE`.
|
|
315
|
+
*/
|
|
316
|
+
memberName?: string;
|
|
317
|
+
/** §5.2 — `RepeatingSection`: righe minime. */
|
|
318
|
+
minInstances?: number;
|
|
319
|
+
/** §5.2 — `RepeatingSection`: righe massime. Assente e' l'avviso `REPEATING_SECTION_WITHOUT_LIMIT`. */
|
|
320
|
+
maxInstances?: number;
|
|
321
|
+
/** §5.2 — `RepeatingSection`: default `true`. */
|
|
322
|
+
allowAdd?: boolean;
|
|
323
|
+
/** §5.2 — `RepeatingSection`: default `true`. */
|
|
324
|
+
allowRemove?: boolean;
|
|
325
|
+
/** §5.2 — `RepeatingSection`: la scritta del comando che aggiunge una riga. */
|
|
326
|
+
addButtonLabel?: string;
|
|
327
|
+
/** §5.2 — `RepeatingSection`: la scritta del comando che toglie una riga. */
|
|
328
|
+
removeButtonLabel?: string;
|
|
329
|
+
/**
|
|
330
|
+
* §5.2 — `RepeatingSection`: l'intestazione della **singola riga**. Supporta i merge field e viene
|
|
331
|
+
* risolta sulla riga, quindi ci si nomina il cursore: `Punto {!PuntoCorrente.PodId}`.
|
|
332
|
+
*/
|
|
333
|
+
itemLabel?: string;
|
|
288
334
|
/** `ComponentInstance`: il componente del frontend, dal catalogo dei form. */
|
|
289
335
|
extensionName?: string;
|
|
290
336
|
inputParameters?: FlowInputParameter[];
|
|
@@ -866,6 +912,13 @@ interface FlowScreenFieldTypeEntry extends FlowDictionaryEntry {
|
|
|
866
912
|
acceptsChoices?: boolean;
|
|
867
913
|
/** Il campo contiene altri campi (`Region`, `RegionContainer`). */
|
|
868
914
|
isContainer?: boolean;
|
|
915
|
+
/**
|
|
916
|
+
* §5.2 — sezione **ripetibile**, ed e' distinto da {@link isContainer} di proposito: contiene campi
|
|
917
|
+
* ma quelli che contiene sono il *modello di una riga*, non i campi della schermata. Un editor che le
|
|
918
|
+
* trattasse allo stesso modo proporrebbe quei nomi fra i riferimenti, che e' esattamente cio' che la
|
|
919
|
+
* validazione rifiuta (`SCREEN_FIELD_IN_REPEATER`).
|
|
920
|
+
*/
|
|
921
|
+
isRepeatingSection?: boolean;
|
|
869
922
|
/** `dataType` obbligatorio: senza, `DATA_TYPE_MISSING`. */
|
|
870
923
|
requiresDataType?: boolean;
|
|
871
924
|
}
|
|
@@ -2272,6 +2325,12 @@ declare const ORCHESTRATION_CONDITION_OUTPUT = "isOrchestrationConditionMet";
|
|
|
2272
2325
|
* del flow** (§5.2). I loro nomi vivono nello stesso spazio dei nomi di node e risorse (§3.3),
|
|
2273
2326
|
* quindi `usedNames` dello store deve comprenderli — un campo omonimo di una variabile e'
|
|
2274
2327
|
* `NAME_DUPLICATED`, non una stranezza tollerata.
|
|
2328
|
+
*
|
|
2329
|
+
* L'unica eccezione a quest'ultima e' la `RepeatingSection`, e le due meta' vanno tenute distinte perche'
|
|
2330
|
+
* e' facile appiattirle: i campi **dentro** una riga non sono risorse (il loro nome non individua alcun
|
|
2331
|
+
* valore, perche' la riga esiste una volta per elemento della collection) ma un nome unico ce l'hanno
|
|
2332
|
+
* comunque. Quindi `screenFieldNames` li comprende — `NAME_DUPLICATED` vale — mentre
|
|
2333
|
+
* {@link resourceFieldsOf} no: proporli fra i riferimenti e' `SCREEN_FIELD_IN_REPEATER`.
|
|
2275
2334
|
*/
|
|
2276
2335
|
|
|
2277
2336
|
/** Il percorso di un campo nell'albero: indici dalla radice alla foglia. */
|
|
@@ -2299,7 +2358,9 @@ declare function allFieldsOf(screen: FlowDynamicScreen | undefined): FlowScreenF
|
|
|
2299
2358
|
*
|
|
2300
2359
|
* Contenitori compresi: un `Region` non e' una risorsa — non raccoglie un valore — ma il suo
|
|
2301
2360
|
* nome resta un nome, e due campi omonimi nella stessa schermata sono comunque un problema.
|
|
2302
|
-
*
|
|
2361
|
+
* Ci sono anche i campi **dentro una riga** di una sezione ripetibile, che risorse non sono ma un nome
|
|
2362
|
+
* ce l'hanno lo stesso: e' l'indirizzo con cui il frontend rende il campo, e due omonimi lo renderebbero
|
|
2363
|
+
* ambiguo (§5.2). Chi vuole i **soli** riferimenti proponibili usa {@link resourceFieldsOf}.
|
|
2303
2364
|
*/
|
|
2304
2365
|
declare function screenFieldNames(definition: FlowDefinition | undefined): string[];
|
|
2305
2366
|
/**
|
|
@@ -2322,8 +2383,40 @@ declare function screenActionNames(definition: FlowDefinition | undefined): stri
|
|
|
2322
2383
|
* i suoi output. Il flag `storesValue` arriva dal dizionario, che e' l'unica fonte autoritativa:
|
|
2323
2384
|
* senza la voce del dizionario si risponde `false`, cioe' "non lo so" — proporre un riferimento
|
|
2324
2385
|
* che il backend non conosce e' peggio che non proporlo.
|
|
2386
|
+
*
|
|
2387
|
+
* Guarda il **solo campo**, e non basta: un campo dentro una `RepeatingSection` raccoglie un valore ma
|
|
2388
|
+
* non e' una risorsa, perche' esiste in una riga per ogni elemento della collection. Quella domanda ha
|
|
2389
|
+
* bisogno del contesto, e la risponde {@link resourceFieldsOf}.
|
|
2325
2390
|
*/
|
|
2326
2391
|
declare function isFieldResource(field: FlowScreenField | undefined, entry: FlowScreenFieldTypeEntry | undefined): boolean;
|
|
2392
|
+
/** Come si riconosce una voce del dizionario a partire dal campo: il flag e' del dizionario, non del codice. */
|
|
2393
|
+
type FlowScreenFieldTypeResolver = (field: FlowScreenField) => FlowScreenFieldTypeEntry | undefined;
|
|
2394
|
+
/**
|
|
2395
|
+
* §5.2 — i campi dichiarati dentro una `RepeatingSection` sono il **modello di una riga**, e la riga
|
|
2396
|
+
* esiste una volta per elemento della collection: il loro nome non individua alcun valore.
|
|
2397
|
+
*
|
|
2398
|
+
* Da qui discende tutto cio' che l'editor fa di diverso lì dentro. Non sono risorse del flow, non si
|
|
2399
|
+
* propongono fra i riferimenti, non innescano screen action e non sono destinazioni: nominarli e'
|
|
2400
|
+
* `SCREEN_FIELD_IN_REPEATER`. Dentro una riga si nomina il **cursore** (`itemReference`), che e' una
|
|
2401
|
+
* variabile vera — `PuntoCorrente.PodId`, mai `Luce_POD`.
|
|
2402
|
+
*
|
|
2403
|
+
* Cio' che invece **non** cambia: il nome resta unico, perche' e' l'indirizzo con cui il frontend rende
|
|
2404
|
+
* il campo, quindi un omonimo di una variabile e' `NAME_DUPLICATED` come sempre e `screenFieldNames` li
|
|
2405
|
+
* comprende tutti.
|
|
2406
|
+
*/
|
|
2407
|
+
declare function repeatedFieldNames(definition: FlowDefinition | undefined, typeOf: FlowScreenFieldTypeResolver): Set<string>;
|
|
2408
|
+
/**
|
|
2409
|
+
* I campi di una schermata che sono **risorse del flow**: raccolgono un valore e non stanno dentro una
|
|
2410
|
+
* riga. Sono gli unici da proporre come riferimento, come innesco di una screen action e come
|
|
2411
|
+
* destinazione dei suoi output.
|
|
2412
|
+
*/
|
|
2413
|
+
declare function resourceFieldsOf(screen: FlowDynamicScreen | undefined, typeOf: FlowScreenFieldTypeResolver): FlowScreenField[];
|
|
2414
|
+
/**
|
|
2415
|
+
* La sezione ripetibile che **contiene** il campo a un percorso, se c'e'. Un antenato stretto: la
|
|
2416
|
+
* sezione stessa non sta dentro se stessa, ed e' la differenza fra «configuro la sezione» e «configuro
|
|
2417
|
+
* un campo di una riga», che sono due pannelli diversi.
|
|
2418
|
+
*/
|
|
2419
|
+
declare function repeatingSectionOf(screen: FlowDynamicScreen | undefined, path: FlowScreenFieldPath | null, typeOf: FlowScreenFieldTypeResolver): FlowScreenField | undefined;
|
|
2327
2420
|
/** Inserisce un campo dentro `parentPath` alla posizione indicata (in fondo se assente). */
|
|
2328
2421
|
declare function insertField(screen: FlowDynamicScreen, parentPath: FlowScreenFieldPath, field: FlowScreenField, index?: number): FlowScreenFieldPath | undefined;
|
|
2329
2422
|
/** Rimuove il campo a un percorso, e con esso tutto cio' che conteneva. */
|
|
@@ -2504,6 +2597,13 @@ declare class FlowDictionaryStore {
|
|
|
2504
2597
|
screenFieldStoresValue(value: string | undefined | null): boolean;
|
|
2505
2598
|
/** §5.2 — il campo contiene altri campi: `Region`, `RegionContainer`. */
|
|
2506
2599
|
screenFieldIsContainer(value: string | undefined | null): boolean;
|
|
2600
|
+
/**
|
|
2601
|
+
* §5.2 — sezione **ripetibile**. Distinto da {@link screenFieldIsContainer} di proposito: contiene
|
|
2602
|
+
* campi, ma quelli che contiene sono il modello di una riga e i loro nomi **non** sono riferimenti
|
|
2603
|
+
* proponibili (`SCREEN_FIELD_IN_REPEATER`). E' il flag su cui si accende tutto cio' che l'editor fa di
|
|
2604
|
+
* diverso dentro una riga.
|
|
2605
|
+
*/
|
|
2606
|
+
screenFieldIsRepeatingSection(value: string | undefined | null): boolean;
|
|
2507
2607
|
/** §5.2 — il campo si configura con `choiceReferences`. */
|
|
2508
2608
|
screenFieldAcceptsChoices(value: string | undefined | null): boolean;
|
|
2509
2609
|
/** §5.2 — `dataType` obbligatorio: senza, `DATA_TYPE_MISSING`. */
|
|
@@ -3683,6 +3783,19 @@ declare class FlowLayoutService {
|
|
|
3683
3783
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FlowLayoutService>;
|
|
3684
3784
|
}
|
|
3685
3785
|
|
|
3786
|
+
/**
|
|
3787
|
+
* §8 — la versione **attiva**, decisa in un posto solo.
|
|
3788
|
+
*
|
|
3789
|
+
* `isActive` e' una comodita' della riga, ma il campo su cui il contratto scrive il ciclo di vita e'
|
|
3790
|
+
* `status`: la tabella della §8 e' fatta di stati, non di flag. Un host che serializza l'uno e non
|
|
3791
|
+
* l'altro — il caso piu' comune e' `IsActive` in PascalCase, che diventa `undefined` senza dire
|
|
3792
|
+
* niente — farebbe credere all'editor che nessuna versione sia attiva, e da lì l'editor sceglierebbe
|
|
3793
|
+
* la piu' recente come «aperta» mentre il backend gli ha consegnato l'attiva.
|
|
3794
|
+
*
|
|
3795
|
+
* Il ripiego va in un verso solo: se il flag manca, decide lo stato. Se ci sono entrambi e si
|
|
3796
|
+
* contraddicono vince lo stato, per la stessa ragione.
|
|
3797
|
+
*/
|
|
3798
|
+
declare function isVersionActive(version: FlowVersionSummary | undefined): boolean;
|
|
3686
3799
|
/** Cosa mostrare quando il salvataggio incontra una versione modificata da altri (§9). */
|
|
3687
3800
|
interface FlowConflictState {
|
|
3688
3801
|
message: string;
|
|
@@ -3734,11 +3847,50 @@ declare class FlowEditorSession {
|
|
|
3734
3847
|
startNew(fullName: string, label: string, processType: string): void;
|
|
3735
3848
|
/**
|
|
3736
3849
|
* Carica una versione e conserva il suo `updatedAt` (§11, "Modificare", passo 1).
|
|
3737
|
-
*
|
|
3850
|
+
*
|
|
3851
|
+
* **La versione si chiede sempre esplicita**, anche quando il chiamante non la indica: la si
|
|
3852
|
+
* risolve prima dall'elenco, con la regola della §6.1 (la attiva, altrimenti l'ultima). Chiedere
|
|
3853
|
+
* la definizione «senza versione» e' comodo — decide il backend — ma lascia poi un numero da
|
|
3854
|
+
* indovinare, perche' il documento porta `status` e **non** il numero (§2): un host che sceglie
|
|
3855
|
+
* diversamente da come si e' dedotto fa evidenziare come «aperta» una riga diversa da quella che
|
|
3856
|
+
* si sta guardando e, molto peggio, conservare l'`updatedAt` di quella riga e mandarlo come
|
|
3857
|
+
* `expectedUpdatedAt` al salvataggio (§9).
|
|
3858
|
+
*
|
|
3859
|
+
* Costa un round trip solo quando serve: la richiesta dell'elenco parte comunque per prima, e la
|
|
3860
|
+
* si aspetta **solo** se il numero non ce l'abbiamo già. Se l'elenco non arriva — host che non
|
|
3861
|
+
* espone la primitiva, o elenco vuoto — si torna a chiedere senza versione e a dedurre
|
|
3862
|
+
* ({@link pickVersion}): degradare e' meglio che non aprire.
|
|
3738
3863
|
*/
|
|
3739
3864
|
open(flowName: string, version?: number): Promise<void>;
|
|
3740
|
-
/**
|
|
3865
|
+
/**
|
|
3866
|
+
* Quale versione il backend ci ha consegnato, quando non gliel'abbiamo chiesta.
|
|
3867
|
+
*
|
|
3868
|
+
* Il documento non porta il numero (§2), quindi si deduce — ma **non si tira a indovinare**: lo
|
|
3869
|
+
* `status` del documento dice quale delle due strade della §6.1 ha preso il backend («la versione
|
|
3870
|
+
* attiva, altrimenti l'ultima»), e se una sola riga porta quello status la deduzione diventa una
|
|
3871
|
+
* constatazione. È il caso che conta: un flow con la **v1 attiva e la v2 in bozza** e' la forma
|
|
3872
|
+
* piu' comune che esista, ed e' quella in cui sbagliare significa evidenziare come «aperta» una
|
|
3873
|
+
* versione diversa da quella che si sta guardando — e, molto peggio, conservare l'`updatedAt`
|
|
3874
|
+
* della riga sbagliata e mandarlo come `expectedUpdatedAt` al salvataggio (§9).
|
|
3875
|
+
*
|
|
3876
|
+
* Il ripiego e' la regola del contratto, con due difese: «attiva» la decide
|
|
3877
|
+
* {@link isVersionActive} e non il solo flag, e «l'ultima» e' il **numero piu' alto** e non la
|
|
3878
|
+
* prima riga — l'elenco arriva dalla piu' recente (§6.1), ma e' una promessa dell'host, e un host
|
|
3879
|
+
* che ordina al contrario farebbe aprire la piu' vecchia senza che niente lo dica.
|
|
3880
|
+
*
|
|
3881
|
+
* Resta un caso che nessuna delle due strade risolve: piu' righe con lo stesso status del
|
|
3882
|
+
* documento e un host che non segue la §6.1. Lì si torna alla regola del contratto, che e' quanto
|
|
3883
|
+
* di meglio si possa dire di un backend che non la rispetta.
|
|
3884
|
+
*/
|
|
3741
3885
|
private static pickVersion;
|
|
3886
|
+
/**
|
|
3887
|
+
* La regola della §6.1 — «la versione attiva, altrimenti l'ultima» — applicata dal client, con due
|
|
3888
|
+
* difese: «attiva» la decide {@link isVersionActive} e non il solo flag, e «l'ultima» e' il
|
|
3889
|
+
* **numero piu' alto** e non la prima riga. L'elenco arriva dalla piu' recente (§6.1), ma e' una
|
|
3890
|
+
* promessa dell'host: un host che ordina al contrario farebbe aprire la piu' vecchia senza che
|
|
3891
|
+
* niente lo dica.
|
|
3892
|
+
*/
|
|
3893
|
+
private static contractVersion;
|
|
3742
3894
|
/**
|
|
3743
3895
|
* Ricarica l'elenco versioni: dopo un'attivazione la precedente e' `Obsolete` (§8.4).
|
|
3744
3896
|
*
|
|
@@ -4542,6 +4694,16 @@ declare class ReferencePickerComponent {
|
|
|
4542
4694
|
* verrebbe accusato di non esistere.
|
|
4543
4695
|
*/
|
|
4544
4696
|
readonly extraReferences: _angular_core.InputSignal<FlowReference[]>;
|
|
4697
|
+
/**
|
|
4698
|
+
* Le radici da proporre **per prime**. Oggi c'e' un chiamante solo: dentro una riga di sezione
|
|
4699
|
+
* ripetibile la strada normale e' il **cursore** (`PuntoCorrente.PodId`), e i campi della riga —
|
|
4700
|
+
* che sono cio' che uno cerca istintivamente — non sono nemmeno riferimenti validi (§5.2).
|
|
4701
|
+
*
|
|
4702
|
+
* Non aggiunge e non toglie niente: riordina. L'elenco resta quello della primitiva, e un
|
|
4703
|
+
* riferimento preferito che non c'e' semplicemente non compare — proporre un nome che il backend
|
|
4704
|
+
* non conosce sarebbe peggio che non metterlo in cima.
|
|
4705
|
+
*/
|
|
4706
|
+
readonly preferredRoots: _angular_core.InputSignal<string[]>;
|
|
4545
4707
|
readonly valueChange: _angular_core.OutputEmitterRef<string | undefined>;
|
|
4546
4708
|
/**
|
|
4547
4709
|
* L'elenco come arriva dalla primitiva, **senza** il filtro di tipo.
|
|
@@ -4637,6 +4799,12 @@ declare class ReferencePickerComponent {
|
|
|
4637
4799
|
/** `true` → questa riga apre il percorso e non e' un valore valido per il campo. */
|
|
4638
4800
|
isContainerOnly(reference: FlowReference): boolean;
|
|
4639
4801
|
readonly options: _angular_core.Signal<FlowReference[]>;
|
|
4802
|
+
/**
|
|
4803
|
+
* Porta in testa le radici preferite, **senza** cambiare l'ordine relativo del resto. I gruppi si
|
|
4804
|
+
* costruiscono per ordine di prima apparizione, quindi bastano questi due passaggi perche' il
|
|
4805
|
+
* gruppo giusto risulti il primo della tendina.
|
|
4806
|
+
*/
|
|
4807
|
+
private preferFirst;
|
|
4640
4808
|
/** Le opzioni raggruppate per `kind`, così gli output automatici si distinguono. */
|
|
4641
4809
|
readonly groups: _angular_core.Signal<{
|
|
4642
4810
|
kind: string;
|
|
@@ -4703,7 +4871,7 @@ declare class ReferencePickerComponent {
|
|
|
4703
4871
|
clear(): void;
|
|
4704
4872
|
describe(reference: FlowReference): string;
|
|
4705
4873
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ReferencePickerComponent, never>;
|
|
4706
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ReferencePickerComponent, "fb-reference-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "isCollection": { "alias": "isCollection"; "required": false; "isSignal": true; }; "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "writableOnly": { "alias": "writableOnly"; "required": false; "isSignal": true; }; "elementsOnly": { "alias": "elementsOnly"; "required": false; "isSignal": true; }; "extraReferences": { "alias": "extraReferences"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
4874
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ReferencePickerComponent, "fb-reference-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "isCollection": { "alias": "isCollection"; "required": false; "isSignal": true; }; "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "writableOnly": { "alias": "writableOnly"; "required": false; "isSignal": true; }; "elementsOnly": { "alias": "elementsOnly"; "required": false; "isSignal": true; }; "extraReferences": { "alias": "extraReferences"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
4707
4875
|
}
|
|
4708
4876
|
|
|
4709
4877
|
declare class ObjectPickerComponent {
|
|
@@ -5041,6 +5209,12 @@ declare class FormulaEditorComponent {
|
|
|
5041
5209
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
5042
5210
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
5043
5211
|
readonly rows: _angular_core.InputSignal<number>;
|
|
5212
|
+
/**
|
|
5213
|
+
* I nomi da suggerire **per primi** (§5.2). Lo passa un chiamante solo: la regola di validazione
|
|
5214
|
+
* di un campo dentro una riga di sezione ripetibile, dove la strada normale e' il cursore. Non
|
|
5215
|
+
* aggiunge nomi all'elenco di `POST /flows/references`: riordina i suggerimenti.
|
|
5216
|
+
*/
|
|
5217
|
+
readonly preferredRoots: _angular_core.InputSignal<string[]>;
|
|
5044
5218
|
/**
|
|
5045
5219
|
* Quando propagare al documento. `input` a ogni tasto, `change` all'uscita dal campo: la
|
|
5046
5220
|
* seconda serve dove mutare il documento ridisegna mezza schermata — l'anteprima dello screen
|
|
@@ -5162,7 +5336,7 @@ declare class FormulaEditorComponent {
|
|
|
5162
5336
|
private run;
|
|
5163
5337
|
private cancel;
|
|
5164
5338
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormulaEditorComponent, never>;
|
|
5165
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormulaEditorComponent, "fb-formula-editor", never, { "expression": { "alias": "expression"; "required": false; "isSignal": true; }; "usage": { "alias": "usage"; "required": false; "isSignal": true; }; "expectedDataType": { "alias": "expectedDataType"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "commitOn": { "alias": "commitOn"; "required": false; "isSignal": true; }; }, { "expressionChange": "expressionChange"; }, never, ["*"], true, never>;
|
|
5339
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormulaEditorComponent, "fb-formula-editor", never, { "expression": { "alias": "expression"; "required": false; "isSignal": true; }; "usage": { "alias": "usage"; "required": false; "isSignal": true; }; "expectedDataType": { "alias": "expectedDataType"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; "commitOn": { "alias": "commitOn"; "required": false; "isSignal": true; }; }, { "expressionChange": "expressionChange"; }, never, ["*"], true, never>;
|
|
5166
5340
|
}
|
|
5167
5341
|
|
|
5168
5342
|
/** Le modalita' offerte: una per campo del modello. */
|
|
@@ -5184,6 +5358,12 @@ declare class ValueEditorComponent {
|
|
|
5184
5358
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
5185
5359
|
/** Nasconde la modalita' formula dove il modello non la prevede. */
|
|
5186
5360
|
readonly allowFormula: _angular_core.InputSignal<boolean>;
|
|
5361
|
+
/**
|
|
5362
|
+
* Le radici da proporre **per prime** nel reference picker (§5.2). Oggi lo passa un chiamante
|
|
5363
|
+
* solo: dentro una riga di sezione ripetibile la strada normale e' il **cursore**, e i campi
|
|
5364
|
+
* della riga non sono nemmeno riferimenti validi. Non aggiunge niente all'elenco: riordina.
|
|
5365
|
+
*/
|
|
5366
|
+
readonly preferredRoots: _angular_core.InputSignal<string[]>;
|
|
5187
5367
|
readonly valueChange: _angular_core.OutputEmitterRef<FlowValue | undefined>;
|
|
5188
5368
|
/** La modalita' dedotta dal campo effettivamente valorizzato. */
|
|
5189
5369
|
readonly mode: _angular_core.Signal<ValueMode>;
|
|
@@ -5258,7 +5438,7 @@ declare class ValueEditorComponent {
|
|
|
5258
5438
|
private emit;
|
|
5259
5439
|
readonly dataTypeOptions: _angular_core.Signal<_esfaenza_flow_builder.FlowDataTypeEntry[]>;
|
|
5260
5440
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ValueEditorComponent, never>;
|
|
5261
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ValueEditorComponent, "fb-value-editor", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "isCollection": { "alias": "isCollection"; "required": false; "isSignal": true; }; "valueSet": { "alias": "valueSet"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "allowFormula": { "alias": "allowFormula"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
5441
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ValueEditorComponent, "fb-value-editor", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "objectType": { "alias": "objectType"; "required": false; "isSignal": true; }; "isCollection": { "alias": "isCollection"; "required": false; "isSignal": true; }; "valueSet": { "alias": "valueSet"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "allowFormula": { "alias": "allowFormula"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
5262
5442
|
}
|
|
5263
5443
|
|
|
5264
5444
|
declare class ConditionEditorComponent {
|
|
@@ -5271,6 +5451,12 @@ declare class ConditionEditorComponent {
|
|
|
5271
5451
|
readonly title: _angular_core.InputSignal<string>;
|
|
5272
5452
|
/** `false` dove il modello non prevede la modalita' formula sull'elemento. */
|
|
5273
5453
|
readonly allowFormula: _angular_core.InputSignal<boolean>;
|
|
5454
|
+
/**
|
|
5455
|
+
* Le radici da proporre **per prime** nel reference picker (§5.2). Oggi lo passa un chiamante
|
|
5456
|
+
* solo: dentro una riga di sezione ripetibile la strada normale e' il **cursore**, e i campi
|
|
5457
|
+
* della riga non sono nemmeno riferimenti validi. Non aggiunge niente all'elenco: riordina.
|
|
5458
|
+
*/
|
|
5459
|
+
readonly preferredRoots: _angular_core.InputSignal<string[]>;
|
|
5274
5460
|
/**
|
|
5275
5461
|
* `false` dove il modello porta **solo** la lista di condizioni, senza un campo per la
|
|
5276
5462
|
* logica: gli `entryConditions` / `exitConditions` di uno step di orchestrazione (§5.14).
|
|
@@ -5355,7 +5541,7 @@ declare class ConditionEditorComponent {
|
|
|
5355
5541
|
setRightValue(index: number, value: FlowValue | undefined): void;
|
|
5356
5542
|
setUnaryExpectation(index: number, expectation: boolean): void;
|
|
5357
5543
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConditionEditorComponent, never>;
|
|
5358
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConditionEditorComponent, "fb-condition-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "allowFormula": { "alias": "allowFormula"; "required": false; "isSignal": true; }; "allowLogic": { "alias": "allowLogic"; "required": false; "isSignal": true; }; "issuePath": { "alias": "issuePath"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
5544
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConditionEditorComponent, "fb-condition-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "allowFormula": { "alias": "allowFormula"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; "allowLogic": { "alias": "allowLogic"; "required": false; "isSignal": true; }; "issuePath": { "alias": "issuePath"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
5359
5545
|
}
|
|
5360
5546
|
|
|
5361
5547
|
/**
|
|
@@ -5499,6 +5685,12 @@ declare class ParameterEditorComponent {
|
|
|
5499
5685
|
* quei campi sono una destinazione, e per questo non e' un default ma un parametro del chiamante.
|
|
5500
5686
|
*/
|
|
5501
5687
|
readonly extraTargets: _angular_core.InputSignal<FlowReference[]>;
|
|
5688
|
+
/**
|
|
5689
|
+
* Le radici da proporre **per prime**, in ingresso e in uscita (§5.2). Dentro una riga di sezione
|
|
5690
|
+
* ripetibile e' il cursore: e' lì che vanno letti gli input di un componente e assegnati i suoi
|
|
5691
|
+
* output, perche' una riga ha un cursore e i campi della riga non sono riferimenti.
|
|
5692
|
+
*/
|
|
5693
|
+
readonly preferredRoots: _angular_core.InputSignal<string[]>;
|
|
5502
5694
|
readonly changed: _angular_core.OutputEmitterRef<(holder: ParameterHolder) => void>;
|
|
5503
5695
|
readonly inputs: _angular_core.Signal<FlowInputParameter[]>;
|
|
5504
5696
|
readonly outputs: _angular_core.Signal<FlowOutputParameter[]>;
|
|
@@ -5537,7 +5729,7 @@ declare class ParameterEditorComponent {
|
|
|
5537
5729
|
setOutputName(index: number, name: string): void;
|
|
5538
5730
|
setOutputTarget(index: number, reference: string | undefined): void;
|
|
5539
5731
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ParameterEditorComponent, never>;
|
|
5540
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ParameterEditorComponent, "fb-parameter-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "catalogParameters": { "alias": "catalogParameters"; "required": false; "isSignal": true; }; "inputTitle": { "alias": "inputTitle"; "required": false; "isSignal": true; }; "outputTitle": { "alias": "outputTitle"; "required": false; "isSignal": true; }; "showInputs": { "alias": "showInputs"; "required": false; "isSignal": true; }; "showOutputs": { "alias": "showOutputs"; "required": false; "isSignal": true; }; "outputsDisabledReason": { "alias": "outputsDisabledReason"; "required": false; "isSignal": true; }; "extraTargets": { "alias": "extraTargets"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
5732
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ParameterEditorComponent, "fb-parameter-editor", never, { "holder": { "alias": "holder"; "required": true; "isSignal": true; }; "catalogParameters": { "alias": "catalogParameters"; "required": false; "isSignal": true; }; "inputTitle": { "alias": "inputTitle"; "required": false; "isSignal": true; }; "outputTitle": { "alias": "outputTitle"; "required": false; "isSignal": true; }; "showInputs": { "alias": "showInputs"; "required": false; "isSignal": true; }; "showOutputs": { "alias": "showOutputs"; "required": false; "isSignal": true; }; "outputsDisabledReason": { "alias": "outputsDisabledReason"; "required": false; "isSignal": true; }; "extraTargets": { "alias": "extraTargets"; "required": false; "isSignal": true; }; "preferredRoots": { "alias": "preferredRoots"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
5541
5733
|
}
|
|
5542
5734
|
|
|
5543
5735
|
interface FieldAssignmentHolder {
|
|
@@ -6179,6 +6371,14 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
|
|
|
6179
6371
|
readonly stageOptions: _angular_core.Signal<NamePickerOption[]>;
|
|
6180
6372
|
isSelected(path: FlowScreenFieldPath): boolean;
|
|
6181
6373
|
isContainer(field: FlowScreenField | undefined): boolean;
|
|
6374
|
+
isRepeatingSection(field: FlowScreenField | undefined): boolean;
|
|
6375
|
+
/**
|
|
6376
|
+
* §5.2 — il campo ha dei `fields` dentro, quale che sia il loro significato: e' la domanda che
|
|
6377
|
+
* serve al rilascio e al comando «aggiungi qui». I due flag restano distinti — cio' che sta in una
|
|
6378
|
+
* sezione ripetibile e' il **modello di una riga**, non campi della schermata — ma per decidere
|
|
6379
|
+
* *dove* finisce un campo trascinato la differenza non conta.
|
|
6380
|
+
*/
|
|
6381
|
+
holdsFields(field: FlowScreenField | undefined): boolean;
|
|
6182
6382
|
/** `true` sulla sezione, che dispone i figli **in riga**: le colonne stanno una accanto all'altra. */
|
|
6183
6383
|
isSection(field: FlowScreenField | undefined): boolean;
|
|
6184
6384
|
childPath(parent: FlowScreenFieldPath, index: number): FlowScreenFieldPath;
|
|
@@ -6283,6 +6483,10 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
|
|
|
6283
6483
|
*/
|
|
6284
6484
|
private clickTarget;
|
|
6285
6485
|
addComponentAtSelection(type: string): void;
|
|
6486
|
+
/** Se il tipo puo' finire dove il clic lo metterebbe: e' cio' che disabilita il chip della palette. */
|
|
6487
|
+
canAddAtSelection(type: string): boolean;
|
|
6488
|
+
/** §5.2 — l'unico divieto di collocazione: una sezione ripetibile dentro un'altra. */
|
|
6489
|
+
private canPlaceAt;
|
|
6286
6490
|
addObjectFieldAtSelection(field: FlowFieldDescription): void;
|
|
6287
6491
|
/**
|
|
6288
6492
|
* Un componente nuovo. Una sezione nasce **con una colonna dentro**: una sezione vuota e'
|
|
@@ -6347,6 +6551,57 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
|
|
|
6347
6551
|
/** L'oggetto di un `ObjectProvided`, cioe' la parte prima del punto (§5.2). */
|
|
6348
6552
|
readonly providedObject: _angular_core.Signal<string>;
|
|
6349
6553
|
readonly providedField: _angular_core.Signal<string>;
|
|
6554
|
+
/** Come si legge la voce di dizionario di un campo: il flag e' del dizionario, non del codice. */
|
|
6555
|
+
private readonly typeOfField;
|
|
6556
|
+
readonly selectedIsRepeatingSection: _angular_core.Signal<boolean>;
|
|
6557
|
+
/**
|
|
6558
|
+
* La sezione ripetibile che **contiene** il campo selezionato, se c'e'. Antenato stretto: sulla
|
|
6559
|
+
* sezione stessa e' `undefined`, perche' configurare la sezione e configurare un campo di una riga
|
|
6560
|
+
* sono due pannelli diversi.
|
|
6561
|
+
*/
|
|
6562
|
+
readonly selectedRepeater: _angular_core.Signal<FlowScreenField | undefined>;
|
|
6563
|
+
readonly isInsideRepeater: _angular_core.Signal<boolean>;
|
|
6564
|
+
/**
|
|
6565
|
+
* Il **cursore** della riga in cui si sta: e' cio' che si nomina lì dentro (§5.2). Scrivere il nome
|
|
6566
|
+
* del campo — `Luce_POD` — e' `SCREEN_FIELD_IN_REPEATER`, perche' quel campo esiste in una riga per
|
|
6567
|
+
* elemento della collection e il riferimento non ne individua nessuna.
|
|
6568
|
+
*/
|
|
6569
|
+
readonly rowCursor: _angular_core.Signal<string>;
|
|
6570
|
+
/**
|
|
6571
|
+
* Cosa proporre **per primo** nei selettori di riferimento del campo selezionato. Dentro una riga
|
|
6572
|
+
* e' il cursore: e' la strada normale, e i campi della riga — che sono cio' che uno cerca per
|
|
6573
|
+
* istinto — non compaiono affatto, perche' non sono riferimenti validi. Fuori e' vuoto, cioe'
|
|
6574
|
+
* l'ordine di sempre.
|
|
6575
|
+
*/
|
|
6576
|
+
readonly preferredRoots: _angular_core.Signal<string[]>;
|
|
6577
|
+
/**
|
|
6578
|
+
* I tipi proponibili per il campo selezionato. Dentro una riga manca la sezione ripetibile: **non si
|
|
6579
|
+
* annidano** — il cursore e' una variabile sola per sezione, e due sezioni annidate ne vorrebbero due
|
|
6580
|
+
* vive contemporaneamente. La validazione lo rifiuta comunque, ma un editor che lascia comporre e poi
|
|
6581
|
+
* accusa fa perdere tempo due volte.
|
|
6582
|
+
*/
|
|
6583
|
+
readonly fieldTypeOptions: _angular_core.Signal<FlowScreenFieldTypeEntry[]>;
|
|
6584
|
+
/**
|
|
6585
|
+
* La classe delle righe: l'`objectType` della **variabile** in `collectionReference` (§5.2). Si
|
|
6586
|
+
* legge dal documento e non da `getReferences` perche' i due riferimenti di una sezione sono
|
|
6587
|
+
* variabili per forza — ci scrive il runtime — e la risposta serve sincrona, dentro il template.
|
|
6588
|
+
*/
|
|
6589
|
+
rowClassOf(section: FlowScreenField | undefined): string | undefined;
|
|
6590
|
+
/** La classe con cui si popolano le tendine dei membri: quella della sezione, dentro o fuori. */
|
|
6591
|
+
readonly rowClass: _angular_core.Signal<string | undefined>;
|
|
6592
|
+
/**
|
|
6593
|
+
* §5.2 — le incoerenze dei due riferimenti sono tutte `REPEATING_SECTION_INVALID`, e si dicono qui
|
|
6594
|
+
* invece di aspettare la validazione: riferimento mancante, costante al posto di una variabile,
|
|
6595
|
+
* collection scambiata col cursore, due classi diverse.
|
|
6596
|
+
*/
|
|
6597
|
+
readonly repeaterIssue: _angular_core.Signal<string | null>;
|
|
6598
|
+
/** §5.2 — il massimo mancante e' un **avviso**: senza, l'utente puo' aggiungere righe all'infinito. */
|
|
6599
|
+
readonly repeaterHasNoLimit: _angular_core.Signal<boolean>;
|
|
6600
|
+
/**
|
|
6601
|
+
* La variabile del documento con quel nome, se e' una variabile. Non un riferimento qualunque: una
|
|
6602
|
+
* costante o una formula qui e' `REPEATING_SECTION_INVALID`, e distinguerle e' il punto.
|
|
6603
|
+
*/
|
|
6604
|
+
private variableTypeOf;
|
|
6350
6605
|
/** Scrive una proprieta' del campo selezionato; valore vuoto → chiave omessa (§2). */
|
|
6351
6606
|
private patchField;
|
|
6352
6607
|
setFieldProperty(property: keyof FlowScreenField, value: unknown): void;
|
|
@@ -6362,7 +6617,12 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
|
|
|
6362
6617
|
*/
|
|
6363
6618
|
setFieldType(type: string): void;
|
|
6364
6619
|
setDefaultValue(value: FlowValue | undefined): void;
|
|
6365
|
-
setNumberProperty(property: 'scale' | 'maxLength' | 'width', raw: string): void;
|
|
6620
|
+
setNumberProperty(property: 'scale' | 'maxLength' | 'width' | 'minInstances' | 'maxInstances', raw: string): void;
|
|
6621
|
+
/**
|
|
6622
|
+
* §5.2 — `allowAdd` e `allowRemove` hanno default `true`: si scrive solo il `false`, che e' la
|
|
6623
|
+
* scelta significativa. È la stessa regola dei flag del node (§2), non quella di un `FlowValue`.
|
|
6624
|
+
*/
|
|
6625
|
+
setRepeaterFlag(property: 'allowAdd' | 'allowRemove', value: boolean): void;
|
|
6366
6626
|
/** `isRequired` si scrive solo quando e' vero: il default e' facoltativo. */
|
|
6367
6627
|
setRequired(value: boolean): void;
|
|
6368
6628
|
/** `isEditable` ha default `true`: si scrive solo il `false`, che e' la scelta significativa. */
|
|
@@ -6405,7 +6665,15 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
|
|
|
6405
6665
|
* scrive resta `TARGET_NOT_WRITABLE`. Quindi l'allargamento e' qui, non nel picker.
|
|
6406
6666
|
*/
|
|
6407
6667
|
readonly screenFieldTargets: _angular_core.Signal<FlowReference[]>;
|
|
6408
|
-
/**
|
|
6668
|
+
/**
|
|
6669
|
+
* I campi che raccolgono un valore: gli unici che un'action possa riempire, e gli unici che
|
|
6670
|
+
* innescano.
|
|
6671
|
+
*
|
|
6672
|
+
* **Senza quelli dentro una riga**, che raccolgono un valore ma non sono risorse: un trigger nomina
|
|
6673
|
+
* un campo, e il campo di una riga non ne ha uno solo — sarebbe da dichiarare *quale* riga osserva.
|
|
6674
|
+
* Un `triggerFieldName` che punta lì e' `SCREEN_FIELD_IN_REPEATER`, e lo stesso vale per
|
|
6675
|
+
* l'`assignToReference` di un output (§5.2).
|
|
6676
|
+
*/
|
|
6409
6677
|
private valueFieldsOfScreen;
|
|
6410
6678
|
/**
|
|
6411
6679
|
* I campi proponibili come innesco. Sono **i campi di questa schermata**, non i riferimenti in
|
|
@@ -7009,6 +7277,12 @@ declare class VersionPanelComponent {
|
|
|
7009
7277
|
/** La versione per cui e' stata chiesta l'eliminazione: conferma in due passi. */
|
|
7010
7278
|
readonly pendingDelete: _angular_core.WritableSignal<number | null>;
|
|
7011
7279
|
isCurrent(version: FlowVersionSummary): boolean;
|
|
7280
|
+
/**
|
|
7281
|
+
* §8 — attiva secondo lo **stato**, non il solo flag: e' la stessa regola con cui la sessione
|
|
7282
|
+
* decide quale versione ha in mano, e tenerne due farebbe una riga marcata attiva e un comando
|
|
7283
|
+
* «Attiva» offerto sopra di essa.
|
|
7284
|
+
*/
|
|
7285
|
+
isActive(version: FlowVersionSummary): boolean;
|
|
7012
7286
|
statusLabel(version: FlowVersionSummary): string;
|
|
7013
7287
|
open(version: FlowVersionSummary): void;
|
|
7014
7288
|
activate(version: FlowVersionSummary): Promise<void>;
|
|
@@ -7588,5 +7862,5 @@ declare class SelectValueDirective implements AfterViewChecked {
|
|
|
7588
7862
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueDirective, "select[fbValue]", never, { "fbValue": { "alias": "fbValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
7589
7863
|
}
|
|
7590
7864
|
|
|
7591
|
-
export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, DynamicScreenInspectorComponent, ENUM_CHOICE_SET_DEFAULT_DISPLAY_FIELD, ENUM_CHOICE_SET_DEFAULT_VALUE_FIELD, ENUM_CHOICE_SET_FIELDS, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, EnumValuePickerComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_CLIPBOARD_KIND, FLOW_CLIPBOARD_VERSION, FLOW_ELEMENT_ICONS, FLOW_ELEMENT_VARIANT_FIELDS, FLOW_ELEMENT_VARIANT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_FOLD_HEIGHT, FLOW_FOLD_WIDTH, FLOW_GROUP_COLORS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_REFERENCE_FIELDS, FLOW_RESOURCE_COLLECTIONS, FLOW_VALUE_FIELDS, FLOW_VALUE_LITERAL_FIELDS, FieldAssignmentEditorComponent, FieldPickerComponent, FieldValuePickerComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowClipboardService, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, FormulaEditorComponent, FormulaValidationService, GROUP_HEADER_HEIGHT, GROUP_MIN_HEIGHT, GROUP_MIN_WIDTH, GROUP_PADDING, GroupPanelComponent, HttpFlowBuilderApi, MergeTextEditorComponent, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, PasteDialogComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourceDialogComponent, ResourceFormComponent, ResourcePanelComponent, RunDialogComponent, SEVERITY_BUCKETS, SEVERITY_ICON, SEVERITY_LABEL, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, StructureMemberPickerComponent, StructurePickerComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, allFieldsOf, applyPaste, areTypesComparable, boundsAround, buildClipboardPayload, canvasFoldId, canvasGroupId, canvasNodeId, checkConditionLogic, checkFlowName, choiceSetSourceOf, declaredChoiceSetSources, describeFieldPath, describePathEntry, duplicateField, elementIcon, emptyFlowDefinition, enumChoiceSetFieldType, fieldAt, filterReferences, flattenFields, flowNodeWidth, flowNodeWidthClass, foldSourceConnectorId, foldTargetConnectorId, groupColorClass, groupRect, hasAutoSize, innerNamesOf, insertField, isClipboardPayload, isCustomConditionLogic, isEmptyReferenceFilter, isFieldResource, isFoldReference, isGlobalReference, isNumericType, isPathInside, isTypeCheckedOperator, isUnknownEnumChoiceSetField, isValidFlowName, isValued, loadPathLevel, matchesReferenceFilter, membersInside, moveCondition, moveField, navigatePath, otherSourceFieldsOf, outletByKey, outletsOf, parseCanvasFoldId, parseCanvasGroupId, parseCanvasNodeId, parseFieldPath, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, pathAvailableNames, pathContainerLabel, pathKey, pathNotVerifiableMessage, planPaste, recomputeMembers, referenceRoot, referencedRootsOf, remapConditionLogic, removeCondition, removeField, resolvePath, rewriteReferences, sameMembers, samePath, screenActionNames, screenFieldNames, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, typeOfCollection, uniqueFlowName, valuedFieldOf, valuedFieldsOf, variantFieldOf, variantOf, variantPresetOf };
|
|
7592
|
-
export type { ChoiceSetSource, FieldAssignmentHolder, FilterFieldOption, FilterHolder, FlowActionCall, FlowAnyNode, FlowAssignment, FlowAssignmentItem, FlowAssignmentOperator, FlowAssignmentOperatorEntry, FlowBuilderHttpConfig, FlowCanvasEdge, FlowCanvasFold, FlowCanvasGroup, FlowCanvasNode, FlowCatalogEntry, FlowCatalogParameter, FlowChoice, FlowClipboardNode, FlowClipboardPayload, FlowClipboardResource, FlowCloneRequest, FlowCollectionProcessor, FlowCollectionProcessorType, FlowComparisonOperator, FlowComparisonOperatorEntry, FlowCondition, FlowConditionHolder, FlowConditionLogic, FlowConflictState, FlowConnectionKind, FlowConnector, FlowConnectorTarget, FlowConstant, FlowCreateRequest, FlowCustomError, FlowCustomErrorMessage, FlowCustomProperty, FlowDataType, FlowDataTypeEntry, FlowDecision, FlowDecisionRule, FlowDefinition, FlowDictionaries, FlowDictionaryEntry, FlowDynamicChoiceSet, FlowDynamicScreen, FlowEdge, FlowElementType, FlowElementTypeEntry, FlowEnumValue, FlowErrorCategory, FlowExportQuery, FlowFieldDescription, FlowFieldUsage, FlowFieldValue, FlowFormKind, FlowFormula, FlowFormulaFunction, FlowFormulaFunctionParameter, FlowFormulaIssue, FlowFormulaUsage, FlowFormulaValidationRequest, FlowFormulaValidationResult, FlowGlobalVariableEntry, FlowGroup, FlowGroupRef, FlowGroupTarget, FlowInputFieldAssignment, FlowInputParameter, FlowInterviewResult, FlowInterviewStatus, FlowIssueSeverity, FlowLayoutDirection, FlowLayoutNodeInput, FlowLayoutOptions, FlowLayoutResult, FlowListQuery, FlowLoop, FlowNameCheck, FlowNameProblem, FlowNewVersionRequest, FlowNodeBase, FlowNodeCollection, FlowNodeRef, FlowObjectDescription, FlowObjectSummary, FlowOffsetUnit, FlowOrchestratedStage, FlowOutlet, FlowOutline, FlowOutlineConnection, FlowOutlineGroup, FlowOutlineNode, FlowOutputFieldAssignment, FlowOutputParameter, FlowPalettePick, FlowPastePlan, FlowPasteRename, FlowPasteResource, FlowPendingScreen, FlowProcessType, FlowRecordCreate, FlowRecordDelete, FlowRecordFilter, FlowRecordFilterOperator, FlowRecordLookup, FlowRecordRollback, FlowRecordTriggerType, FlowRecordUpdate, FlowRecordValue, FlowRect, FlowReference, FlowReferenceFilter, FlowReferenceKind, FlowRegionContainerType, FlowResourceCollection, FlowResourceEdit, FlowResourceKindEntry, FlowResourceRef, FlowResourceTarget, FlowResumeRequest, FlowRunOutcome, FlowRunRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenAction, FlowScreenField, FlowScreenFieldInputsRevisited, FlowScreenFieldNode, FlowScreenFieldPath, FlowScreenFieldType, FlowScreenFieldTypeEntry, FlowScreenNavigation, FlowScreenResponseRequest, FlowScreenTrigger, FlowScreenTriggerInitBehavior, FlowScreenValidationRule, FlowScriptPluginCall, FlowSeverityBucket, FlowSortOption, FlowSortOrder, FlowStage, FlowStageStep, FlowStageStepActionType, FlowStageStepAssignee, FlowStageStepConditionActionType, FlowStageStepRequest, FlowStageStepState, FlowStageStepStatus, FlowStageStepTypeEntry, FlowStart, FlowStartInterviewRequest, FlowStructureDescribed, FlowStructureDescription, FlowStructureInstance, FlowStructureMember, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, FlowTypedEntry, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, NamePickerOption, PaletteGroup, PaletteItem, ParameterHolder, PathCatalog, PathContainer, PathContainerKind, PathEntry, PathLevel, PathLevelStatus, PathNavigation, PathNavigationRequest, PathResolution, PathStopReason, PathValueSet, StructureMemberUsage, ValueMode };
|
|
7865
|
+
export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, DynamicScreenInspectorComponent, ENUM_CHOICE_SET_DEFAULT_DISPLAY_FIELD, ENUM_CHOICE_SET_DEFAULT_VALUE_FIELD, ENUM_CHOICE_SET_FIELDS, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, EnumValuePickerComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_CLIPBOARD_KIND, FLOW_CLIPBOARD_VERSION, FLOW_ELEMENT_ICONS, FLOW_ELEMENT_VARIANT_FIELDS, FLOW_ELEMENT_VARIANT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_FOLD_HEIGHT, FLOW_FOLD_WIDTH, FLOW_GROUP_COLORS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_REFERENCE_FIELDS, FLOW_RESOURCE_COLLECTIONS, FLOW_VALUE_FIELDS, FLOW_VALUE_LITERAL_FIELDS, FieldAssignmentEditorComponent, FieldPickerComponent, FieldValuePickerComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowClipboardService, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, FormulaEditorComponent, FormulaValidationService, GROUP_HEADER_HEIGHT, GROUP_MIN_HEIGHT, GROUP_MIN_WIDTH, GROUP_PADDING, GroupPanelComponent, HttpFlowBuilderApi, MergeTextEditorComponent, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, PasteDialogComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourceDialogComponent, ResourceFormComponent, ResourcePanelComponent, RunDialogComponent, SEVERITY_BUCKETS, SEVERITY_ICON, SEVERITY_LABEL, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, StructureMemberPickerComponent, StructurePickerComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, allFieldsOf, applyPaste, areTypesComparable, boundsAround, buildClipboardPayload, canvasFoldId, canvasGroupId, canvasNodeId, checkConditionLogic, checkFlowName, choiceSetSourceOf, declaredChoiceSetSources, describeFieldPath, describePathEntry, duplicateField, elementIcon, emptyFlowDefinition, enumChoiceSetFieldType, fieldAt, filterReferences, flattenFields, flowNodeWidth, flowNodeWidthClass, foldSourceConnectorId, foldTargetConnectorId, groupColorClass, groupRect, hasAutoSize, innerNamesOf, insertField, isClipboardPayload, isCustomConditionLogic, isEmptyReferenceFilter, isFieldResource, isFoldReference, isGlobalReference, isNumericType, isPathInside, isTypeCheckedOperator, isUnknownEnumChoiceSetField, isValidFlowName, isValued, isVersionActive, loadPathLevel, matchesReferenceFilter, membersInside, moveCondition, moveField, navigatePath, otherSourceFieldsOf, outletByKey, outletsOf, parseCanvasFoldId, parseCanvasGroupId, parseCanvasNodeId, parseFieldPath, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, pathAvailableNames, pathContainerLabel, pathKey, pathNotVerifiableMessage, planPaste, recomputeMembers, referenceRoot, referencedRootsOf, remapConditionLogic, removeCondition, removeField, repeatedFieldNames, repeatingSectionOf, resolvePath, resourceFieldsOf, rewriteReferences, sameMembers, samePath, screenActionNames, screenFieldNames, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, typeOfCollection, uniqueFlowName, valuedFieldOf, valuedFieldsOf, variantFieldOf, variantOf, variantPresetOf };
|
|
7866
|
+
export type { ChoiceSetSource, FieldAssignmentHolder, FilterFieldOption, FilterHolder, FlowActionCall, FlowAnyNode, FlowAssignment, FlowAssignmentItem, FlowAssignmentOperator, FlowAssignmentOperatorEntry, FlowBuilderHttpConfig, FlowCanvasEdge, FlowCanvasFold, FlowCanvasGroup, FlowCanvasNode, FlowCatalogEntry, FlowCatalogParameter, FlowChoice, FlowClipboardNode, FlowClipboardPayload, FlowClipboardResource, FlowCloneRequest, FlowCollectionProcessor, FlowCollectionProcessorType, FlowComparisonOperator, FlowComparisonOperatorEntry, FlowCondition, FlowConditionHolder, FlowConditionLogic, FlowConflictState, FlowConnectionKind, FlowConnector, FlowConnectorTarget, FlowConstant, FlowCreateRequest, FlowCustomError, FlowCustomErrorMessage, FlowCustomProperty, FlowDataType, FlowDataTypeEntry, FlowDecision, FlowDecisionRule, FlowDefinition, FlowDictionaries, FlowDictionaryEntry, FlowDynamicChoiceSet, FlowDynamicScreen, FlowEdge, FlowElementType, FlowElementTypeEntry, FlowEnumValue, FlowErrorCategory, FlowExportQuery, FlowFieldDescription, FlowFieldUsage, FlowFieldValue, FlowFormKind, FlowFormula, FlowFormulaFunction, FlowFormulaFunctionParameter, FlowFormulaIssue, FlowFormulaUsage, FlowFormulaValidationRequest, FlowFormulaValidationResult, FlowGlobalVariableEntry, FlowGroup, FlowGroupRef, FlowGroupTarget, FlowInputFieldAssignment, FlowInputParameter, FlowInterviewResult, FlowInterviewStatus, FlowIssueSeverity, FlowLayoutDirection, FlowLayoutNodeInput, FlowLayoutOptions, FlowLayoutResult, FlowListQuery, FlowLoop, FlowNameCheck, FlowNameProblem, FlowNewVersionRequest, FlowNodeBase, FlowNodeCollection, FlowNodeRef, FlowObjectDescription, FlowObjectSummary, FlowOffsetUnit, FlowOrchestratedStage, FlowOutlet, FlowOutline, FlowOutlineConnection, FlowOutlineGroup, FlowOutlineNode, FlowOutputFieldAssignment, FlowOutputParameter, FlowPalettePick, FlowPastePlan, FlowPasteRename, FlowPasteResource, FlowPendingScreen, FlowProcessType, FlowRecordCreate, FlowRecordDelete, FlowRecordFilter, FlowRecordFilterOperator, FlowRecordLookup, FlowRecordRollback, FlowRecordTriggerType, FlowRecordUpdate, FlowRecordValue, FlowRect, FlowReference, FlowReferenceFilter, FlowReferenceKind, FlowRegionContainerType, FlowResourceCollection, FlowResourceEdit, FlowResourceKindEntry, FlowResourceRef, FlowResourceTarget, FlowResumeRequest, FlowRunOutcome, FlowRunRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenAction, FlowScreenField, FlowScreenFieldInputsRevisited, FlowScreenFieldNode, FlowScreenFieldPath, FlowScreenFieldType, FlowScreenFieldTypeEntry, FlowScreenFieldTypeResolver, FlowScreenNavigation, FlowScreenResponseRequest, FlowScreenTrigger, FlowScreenTriggerInitBehavior, FlowScreenValidationRule, FlowScriptPluginCall, FlowSeverityBucket, FlowSortOption, FlowSortOrder, FlowStage, FlowStageStep, FlowStageStepActionType, FlowStageStepAssignee, FlowStageStepConditionActionType, FlowStageStepRequest, FlowStageStepState, FlowStageStepStatus, FlowStageStepTypeEntry, FlowStart, FlowStartInterviewRequest, FlowStructureDescribed, FlowStructureDescription, FlowStructureInstance, FlowStructureMember, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, FlowTypedEntry, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, NamePickerOption, PaletteGroup, PaletteItem, ParameterHolder, PathCatalog, PathContainer, PathContainerKind, PathEntry, PathLevel, PathLevelStatus, PathNavigation, PathNavigationRequest, PathResolution, PathStopReason, PathValueSet, StructureMemberUsage, ValueMode };
|