@esfaenza/flow-builder 20.0.0 → 20.3.1
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 +372 -354
- package/fesm2022/esfaenza-flow-builder.mjs +1001 -172
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +451 -42
- package/package.json +1 -1
- package/styles/flow-builder.css +12 -0
package/index.d.ts
CHANGED
|
@@ -34,7 +34,11 @@ interface FlowValue {
|
|
|
34
34
|
stringValue?: string;
|
|
35
35
|
integerValue?: number;
|
|
36
36
|
numberValue?: number;
|
|
37
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* `2026-08-15T09:00:00Z` sono le 9 UTC, `2026-08-15T09:00:00` le 9 nel fuso
|
|
39
|
+
* dell'applicazione: sono **due istanti diversi**, e il motore converte prima di
|
|
40
|
+
* confrontare. Scrivere il fuso quando lo si conosce e' una scelta, non un dettaglio (§4.2).
|
|
41
|
+
*/
|
|
38
42
|
dateValue?: string;
|
|
39
43
|
booleanValue?: boolean;
|
|
40
44
|
enumValue?: string;
|
|
@@ -364,6 +368,67 @@ interface FlowUnsupportedNode extends FlowNodeBase {
|
|
|
364
368
|
connector?: FlowConnector;
|
|
365
369
|
[key: string]: unknown;
|
|
366
370
|
}
|
|
371
|
+
/**
|
|
372
|
+
* §5.13 — i tre tipi di step. `stepMuleSoft` non esiste in questo sistema
|
|
373
|
+
* (`ELEMENT_NOT_SUPPORTED`); l'elenco autoritativo e' il dizionario `stageStepTypes`.
|
|
374
|
+
*/
|
|
375
|
+
type FlowStageStepActionType = 'stepBackground' | 'stepInteractive' | 'stepApproval' | string;
|
|
376
|
+
/** A chi e' assegnato uno step interattivo. `assigneeTypes` e' il dizionario (§6.4). */
|
|
377
|
+
interface FlowStageStepAssignee {
|
|
378
|
+
assigneeType?: string;
|
|
379
|
+
assignee?: FlowValue;
|
|
380
|
+
}
|
|
381
|
+
/** Il nome di un *evaluation flow* che decide una condizione di ingresso o di uscita. */
|
|
382
|
+
type FlowStageStepConditionActionType = 'EvaluationFlow' | string;
|
|
383
|
+
/**
|
|
384
|
+
* §5.13 — uno step di uno stage.
|
|
385
|
+
*
|
|
386
|
+
* Due cose che non si vedono dal tipo:
|
|
387
|
+
* - gli step **non hanno un ordine di esecuzione**: parte quello le cui `entryConditions`
|
|
388
|
+
* sono vere, e l'ordine nell'array e' solo l'ordine d'esame;
|
|
389
|
+
* - `name` sta nello **stesso spazio dei nomi** di node e risorse (§3.3), e l'output di uno
|
|
390
|
+
* step e' sempre referenziabile come `<NomeStep>.<NomeOutput>`.
|
|
391
|
+
*
|
|
392
|
+
* I campi riservati (`runAsUser`, ignorato dal runtime, `canAssigneeEdit`, `shouldLock`,
|
|
393
|
+
* `requiresAsyncProcessing`) non sono modellati di proposito: non vanno esposti. Sopravvivono
|
|
394
|
+
* comunque al round-trip, perche' il documento viaggia come JSON.
|
|
395
|
+
*/
|
|
396
|
+
interface FlowStageStep {
|
|
397
|
+
name?: string;
|
|
398
|
+
label?: string;
|
|
399
|
+
description?: string;
|
|
400
|
+
actionType?: FlowStageStepActionType;
|
|
401
|
+
/** Obbligatorio su `stepBackground`: il flow che il motore esegue subito. */
|
|
402
|
+
actionName?: string;
|
|
403
|
+
/** Obbligatori su `stepInteractive` e `stepApproval`. */
|
|
404
|
+
assignees?: FlowStageStepAssignee[];
|
|
405
|
+
/** `"0"` o `"1"`: il modello lo porta come stringa. */
|
|
406
|
+
requiresMultiMemberApproval?: string;
|
|
407
|
+
/** *Se* lo step si applica: se non si avverano, viene saltato (§5.13). */
|
|
408
|
+
entryConditions?: FlowCondition[];
|
|
409
|
+
/** *Quando* lo step libera lo stage: se restano false, lo stage va in stallo (§5.13). */
|
|
410
|
+
exitConditions?: FlowCondition[];
|
|
411
|
+
/** Evaluation flow che decide l'ingresso: deve restituire `isOrchestrationConditionMet`. */
|
|
412
|
+
entryActionName?: string;
|
|
413
|
+
entryActionType?: FlowStageStepConditionActionType;
|
|
414
|
+
exitActionName?: string;
|
|
415
|
+
exitActionType?: FlowStageStepConditionActionType;
|
|
416
|
+
inputParameters?: FlowInputParameter[];
|
|
417
|
+
/** `assignToReference` e' facoltativo: l'output e' già referenziabile (§5.13). */
|
|
418
|
+
outputParameters?: FlowOutputParameter[];
|
|
419
|
+
/** `true` → usa `outputConfigParams` come output finti, senza eseguire lo step. */
|
|
420
|
+
debugSimulateStep?: boolean;
|
|
421
|
+
outputConfigParams?: FlowInputParameter[];
|
|
422
|
+
}
|
|
423
|
+
interface FlowOrchestratedStage extends FlowNodeBase {
|
|
424
|
+
stageSteps?: FlowStageStep[];
|
|
425
|
+
connector?: FlowConnector;
|
|
426
|
+
/**
|
|
427
|
+
* **Non** e' un ramo di guasto: e' il ramo percorso quando uno step viene rifiutato.
|
|
428
|
+
* Senza, un rifiuto fa fallire l'interview (§5.13).
|
|
429
|
+
*/
|
|
430
|
+
faultConnector?: FlowConnector;
|
|
431
|
+
}
|
|
367
432
|
interface FlowSchedule {
|
|
368
433
|
frequency?: 'Once' | 'Daily' | 'Weekly' | 'Monthly' | string;
|
|
369
434
|
/** Data senza fuso: `2026-08-01T00:00:00`. */
|
|
@@ -438,10 +503,10 @@ interface FlowDefinition {
|
|
|
438
503
|
transforms?: FlowTransform[];
|
|
439
504
|
waits?: FlowWait[];
|
|
440
505
|
customErrors?: FlowCustomError[];
|
|
506
|
+
orchestratedStages?: FlowOrchestratedStage[];
|
|
441
507
|
/** Non supportati: conservati nel round-trip ma non creabili dalla palette. */
|
|
442
508
|
steps?: FlowUnsupportedNode[];
|
|
443
509
|
experiments?: FlowUnsupportedNode[];
|
|
444
|
-
orchestratedStages?: FlowUnsupportedNode[];
|
|
445
510
|
apiVersion?: string;
|
|
446
511
|
timeZoneSidKey?: string;
|
|
447
512
|
triggerOrder?: number;
|
|
@@ -449,13 +514,13 @@ interface FlowDefinition {
|
|
|
449
514
|
customProperties?: FlowCustomProperty[];
|
|
450
515
|
}
|
|
451
516
|
/** Le collection di node: `metadataProperty` del dizionario `elementTypes` (§3.2). */
|
|
452
|
-
declare const FLOW_NODE_COLLECTIONS: readonly ["screens", "assignments", "decisions", "loops", "collectionProcessors", "recordLookups", "recordCreates", "recordUpdates", "recordDeletes", "recordRollbacks", "actionCalls", "scriptPluginCalls", "subflows", "transforms", "waits", "customErrors", "
|
|
517
|
+
declare const FLOW_NODE_COLLECTIONS: readonly ["screens", "assignments", "decisions", "loops", "collectionProcessors", "recordLookups", "recordCreates", "recordUpdates", "recordDeletes", "recordRollbacks", "actionCalls", "scriptPluginCalls", "subflows", "transforms", "waits", "customErrors", "orchestratedStages", "steps", "experiments"];
|
|
453
518
|
type FlowNodeCollection = (typeof FLOW_NODE_COLLECTIONS)[number];
|
|
454
519
|
/** Le collection di risorse (§4.6). Condividono lo spazio dei nomi con i node (§3.3). */
|
|
455
520
|
declare const FLOW_RESOURCE_COLLECTIONS: readonly ["variables", "constants", "formulas", "textTemplates", "choices", "dynamicChoiceSets", "stages"];
|
|
456
521
|
type FlowResourceCollection = (typeof FLOW_RESOURCE_COLLECTIONS)[number];
|
|
457
522
|
/** Il discriminatore `value` del dizionario `elementTypes`. */
|
|
458
|
-
type FlowElementType = 'Screen' | 'Assignment' | 'Decision' | 'Loop' | 'CollectionProcessor' | 'CustomError' | 'Wait' | 'RecordLookup' | 'RecordCreate' | 'RecordUpdate' | 'RecordDelete' | 'RecordRollback' | 'ActionCall' | 'ScriptCall' | 'Subflow' | 'Transform' | '
|
|
523
|
+
type FlowElementType = 'Screen' | 'Assignment' | 'Decision' | 'Loop' | 'CollectionProcessor' | 'CustomError' | 'Wait' | 'RecordLookup' | 'RecordCreate' | 'RecordUpdate' | 'RecordDelete' | 'RecordRollback' | 'ActionCall' | 'ScriptCall' | 'Subflow' | 'Transform' | 'OrchestratedStage' | 'Step' | 'Experiment' | string;
|
|
459
524
|
/** Un node qualunque, come lo vede il canvas. */
|
|
460
525
|
type FlowAnyNode = FlowNodeBase & Record<string, unknown>;
|
|
461
526
|
|
|
@@ -508,17 +573,37 @@ interface FlowAssignmentOperatorEntry extends FlowDictionaryEntry {
|
|
|
508
573
|
/** Ha senso solo su destinazioni collection; altrove e' un avviso. */
|
|
509
574
|
expectsCollection?: boolean;
|
|
510
575
|
}
|
|
511
|
-
/**
|
|
576
|
+
/**
|
|
577
|
+
* §4.1 — variabile globale proponibile invece di farla digitare.
|
|
578
|
+
*
|
|
579
|
+
* La verificabilita' e' **per scope**: se `paths` porta almeno una voce, un percorso che non
|
|
580
|
+
* c'e' e' `GLOBAL_UNKNOWN`; se `paths` e' vuoto, lo scope resta non verificabile — che
|
|
581
|
+
* significa "non lo so", non "non esiste".
|
|
582
|
+
*/
|
|
512
583
|
interface FlowGlobalVariableEntry extends FlowDictionaryEntry {
|
|
513
584
|
/** `$Flow`, `$GlobalConstant`, `$Record`, `$User`, … */
|
|
514
585
|
scope?: string;
|
|
515
|
-
/** Percorsi noti dello scope
|
|
586
|
+
/** Percorsi noti dello scope. Vuoto → lo scope non e' verificabile (§4.1). */
|
|
516
587
|
paths?: string[] | null;
|
|
517
|
-
/** `true` →
|
|
588
|
+
/** `true` → i percorsi li dichiara il sistema ospite, e solo quelli che dichiara. */
|
|
518
589
|
isResolvedByHost?: boolean;
|
|
519
590
|
/** Disponibile solo con un trigger su record (`$Record`, `$Record__Prior`). */
|
|
520
591
|
requiresRecordTrigger?: boolean;
|
|
521
592
|
}
|
|
593
|
+
/**
|
|
594
|
+
* §5.13 — i tipi di step di uno stage di orchestrazione (`stageStepTypes`).
|
|
595
|
+
* Le colonne dicono cosa il tipo pretende: senza, l'editor dovrebbe cablare i tre nomi.
|
|
596
|
+
*/
|
|
597
|
+
interface FlowStageStepTypeEntry extends FlowDictionaryEntry {
|
|
598
|
+
/** `stepBackground`: il flow eseguito subito e' obbligatorio. */
|
|
599
|
+
requiresActionName?: boolean;
|
|
600
|
+
/** `stepInteractive` / `stepApproval`: gli assegnatari sono obbligatori. */
|
|
601
|
+
requiresAssignees?: boolean;
|
|
602
|
+
/** `true` → l'interview si **sospende** su questo step, in attesa di una persona. */
|
|
603
|
+
suspendsInterview?: boolean;
|
|
604
|
+
/** `true` → il rifiuto e' un esito previsto, e prende il `faultConnector` dello stage. */
|
|
605
|
+
supportsRejection?: boolean;
|
|
606
|
+
}
|
|
522
607
|
interface FlowResourceKindEntry extends FlowDictionaryEntry {
|
|
523
608
|
/** Solo le variabili sono scrivibili (§4.6). */
|
|
524
609
|
isWritable?: boolean;
|
|
@@ -526,9 +611,13 @@ interface FlowResourceKindEntry extends FlowDictionaryEntry {
|
|
|
526
611
|
metadataProperty?: string;
|
|
527
612
|
}
|
|
528
613
|
/**
|
|
529
|
-
* §6.4 —
|
|
614
|
+
* §6.4 — le tendine in una risposta.
|
|
530
615
|
* I campi sono opzionali: un backend che non popola un dizionario non deve far
|
|
531
616
|
* crollare l'editor, che degrada mostrando il valore grezzo.
|
|
617
|
+
*
|
|
618
|
+
* Sono **quasi** statici: `globalVariables` dipende dal `processType` con cui si sono
|
|
619
|
+
* chiesti, perche' `$Record` non esiste in uno screen flow (§4.1). Chi lavora su piu' tipi di
|
|
620
|
+
* flow ne tiene una copia per tipo — se ne occupa {@link FlowDictionaryStore}.
|
|
532
621
|
*/
|
|
533
622
|
interface FlowDictionaries {
|
|
534
623
|
dataTypes?: FlowDataTypeEntry[];
|
|
@@ -549,6 +638,8 @@ interface FlowDictionaries {
|
|
|
549
638
|
transformTypes?: FlowDictionaryEntry[];
|
|
550
639
|
transactionModels?: FlowDictionaryEntry[];
|
|
551
640
|
waitEventTypes?: FlowDictionaryEntry[];
|
|
641
|
+
stageStepTypes?: FlowStageStepTypeEntry[];
|
|
642
|
+
assigneeTypes?: FlowDictionaryEntry[];
|
|
552
643
|
conditionLogicModes?: FlowDictionaryEntry[];
|
|
553
644
|
screenNavigations?: FlowDictionaryEntry[];
|
|
554
645
|
}
|
|
@@ -706,7 +797,11 @@ interface FlowReference {
|
|
|
706
797
|
dataType?: FlowDataType | null;
|
|
707
798
|
isCollection?: boolean;
|
|
708
799
|
objectType?: string | null;
|
|
709
|
-
/**
|
|
800
|
+
/**
|
|
801
|
+
* Per i campi di destinazione. Scrivibili sono le variabili, `$Flow.CurrentStage`,
|
|
802
|
+
* `$Flow.ActiveStages` e le globali che il sistema ospite dichiara tali: la primitiva
|
|
803
|
+
* `POST /flows/references/writable` le comprende già, non vanno aggiunte lato client (§5.2).
|
|
804
|
+
*/
|
|
710
805
|
isWritable?: boolean;
|
|
711
806
|
description?: string | null;
|
|
712
807
|
}
|
|
@@ -773,6 +868,22 @@ interface FlowPendingScreen {
|
|
|
773
868
|
canFinish?: boolean;
|
|
774
869
|
canPause?: boolean;
|
|
775
870
|
}
|
|
871
|
+
/**
|
|
872
|
+
* §5.13 — lo stato che un assegnatario comunica concludendo uno step.
|
|
873
|
+
* `Pending` non e' accettato in scrittura: e' `INVALID_REQUEST`.
|
|
874
|
+
*/
|
|
875
|
+
type FlowStageStepStatus = 'Completed' | 'Rejected' | 'Cancelled' | 'Pending' | string;
|
|
876
|
+
/** Lo stato di uno step, come lo riporta l'ispezione di una sospesa (§5.13, §6.5). */
|
|
877
|
+
interface FlowStageStepState {
|
|
878
|
+
stepName?: string;
|
|
879
|
+
label?: string | null;
|
|
880
|
+
actionType?: string;
|
|
881
|
+
status?: FlowStageStepStatus;
|
|
882
|
+
/** `true` → c'e' un work item aperto: e' questo step a tenere sospesa l'interview. */
|
|
883
|
+
isWaiting?: boolean;
|
|
884
|
+
assignees?: string[];
|
|
885
|
+
outputs?: Record<string, FlowTypedValue>;
|
|
886
|
+
}
|
|
776
887
|
interface FlowTraceEntry {
|
|
777
888
|
sequence?: number;
|
|
778
889
|
level?: string;
|
|
@@ -796,6 +907,14 @@ interface FlowInterviewResult {
|
|
|
796
907
|
trace?: FlowTraceEntry[];
|
|
797
908
|
/** Con `debug: true`: i valori di **tutte** le risorse, non solo gli output. */
|
|
798
909
|
resources?: Record<string, FlowTypedValue>;
|
|
910
|
+
/**
|
|
911
|
+
* `Suspended` copre due attese diverse, e questi due flag le distinguono: un evento
|
|
912
|
+
* oppure uno step di orchestrazione (§6.5).
|
|
913
|
+
*/
|
|
914
|
+
isWaitingForEvent?: boolean;
|
|
915
|
+
isWaitingForStageStep?: boolean;
|
|
916
|
+
/** Con `isWaitingForStageStep`: lo stato di ogni step dello stage corrente (§5.13). */
|
|
917
|
+
stageSteps?: FlowStageStepState[];
|
|
799
918
|
isSuccess?: boolean;
|
|
800
919
|
}
|
|
801
920
|
interface FlowStartInterviewRequest {
|
|
@@ -815,6 +934,19 @@ interface FlowResumeRequest {
|
|
|
815
934
|
interviewKey: string;
|
|
816
935
|
debug?: boolean;
|
|
817
936
|
}
|
|
937
|
+
/**
|
|
938
|
+
* §5.13 — `POST /interviews/{key}/stage-step`: un assegnatario conclude uno step.
|
|
939
|
+
* Se lo stage si sospende di nuovo, la risposta porta una `interviewKey` **nuova** e la
|
|
940
|
+
* vecchia non e' piu' valida.
|
|
941
|
+
*/
|
|
942
|
+
interface FlowStageStepRequest {
|
|
943
|
+
interviewKey: string;
|
|
944
|
+
stepName: string;
|
|
945
|
+
/** `Pending` viene rifiutato come `INVALID_REQUEST`. */
|
|
946
|
+
status: FlowStageStepStatus;
|
|
947
|
+
stepOutputs?: Record<string, unknown>;
|
|
948
|
+
debug?: boolean;
|
|
949
|
+
}
|
|
818
950
|
interface FlowExportQuery {
|
|
819
951
|
version?: number;
|
|
820
952
|
indented?: boolean;
|
|
@@ -936,10 +1068,14 @@ declare abstract class FlowBuilderApi {
|
|
|
936
1068
|
/** `GET /flows/{name}/versions/{v}/validate` — valida una versione già salvata. */
|
|
937
1069
|
validateVersion(flowName: string, version: number): Promise<FlowValidationResult>;
|
|
938
1070
|
/**
|
|
939
|
-
* `GET /flows/dictionaries
|
|
940
|
-
*
|
|
1071
|
+
* `GET /flows/dictionaries?processType=` — le tendine in una risposta.
|
|
1072
|
+
*
|
|
1073
|
+
* Quasi statiche: si caricano una volta e si tengono in cache (§6.4, §13.11). L'eccezione e'
|
|
1074
|
+
* `globalVariables`, che dipende dal `processType`: `$Record` non esiste in uno screen flow,
|
|
1075
|
+
* e referenziarlo lì e' un errore, non un avviso (§4.1). Chi lavora su piu' tipi di flow
|
|
1076
|
+
* tiene una copia di dizionari per tipo.
|
|
941
1077
|
*/
|
|
942
|
-
abstract getDictionaries(): Promise<FlowDictionaries>;
|
|
1078
|
+
abstract getDictionaries(processType?: string): Promise<FlowDictionaries>;
|
|
943
1079
|
/**
|
|
944
1080
|
* `POST /flows/references` — i valori proponibili in un campo che accetta una risorsa.
|
|
945
1081
|
* Include gli **output automatici** degli elementi, che non sono dichiarati in nessuna
|
|
@@ -947,9 +1083,11 @@ declare abstract class FlowBuilderApi {
|
|
|
947
1083
|
*/
|
|
948
1084
|
abstract getReferences(query: FlowReferenceQuery): Promise<FlowReference[]>;
|
|
949
1085
|
/**
|
|
950
|
-
* `POST /flows/references/writable` —
|
|
951
|
-
*
|
|
952
|
-
*
|
|
1086
|
+
* `POST /flows/references/writable` — le variabili **piu' le globali assegnabili**, per i
|
|
1087
|
+
* campi di destinazione: `$Flow.CurrentStage`, `$Flow.ActiveStages` e quelle che il sistema
|
|
1088
|
+
* ospite dichiara `isWritable`. La primitiva le comprende già, l'editor non le aggiunge
|
|
1089
|
+
* (§5.2). Restano fuori i campi di `$Record`, che dipendono dallo schema: quelli arrivano da
|
|
1090
|
+
* `listFields(object, 'updateable')` (§6.4).
|
|
953
1091
|
*/
|
|
954
1092
|
abstract getWritableReferences(query: FlowReferenceQuery): Promise<FlowReference[]>;
|
|
955
1093
|
/** `POST /flows/connector-targets?excluding=` — i node a cui un arco puo' puntare. */
|
|
@@ -1000,7 +1138,16 @@ declare abstract class FlowBuilderApi {
|
|
|
1000
1138
|
respondToScreen(request: FlowScreenResponseRequest): Promise<FlowInterviewResult>;
|
|
1001
1139
|
/** `POST /interviews/resume` — riprende un'esecuzione in pausa. */
|
|
1002
1140
|
resumeInterview(request: FlowResumeRequest): Promise<FlowInterviewResult>;
|
|
1003
|
-
/**
|
|
1141
|
+
/**
|
|
1142
|
+
* `POST /interviews/{key}/stage-step` — un assegnatario conclude uno step (§5.13).
|
|
1143
|
+
* Se lo stage si sospende di nuovo, la risposta porta una `interviewKey` **nuova**: la
|
|
1144
|
+
* vecchia non e' piu' valida e va sostituita, non conservata.
|
|
1145
|
+
*/
|
|
1146
|
+
completeStageStep(request: FlowStageStepRequest): Promise<FlowInterviewResult>;
|
|
1147
|
+
/**
|
|
1148
|
+
* `GET /interviews/{key}` — ispeziona una sospesa senza consumarla.
|
|
1149
|
+
* Con `isWaitingForStageStep` porta `stageSteps` con lo stato di ognuno (§5.13).
|
|
1150
|
+
*/
|
|
1004
1151
|
inspectInterview(interviewKey: string): Promise<FlowInterviewResult>;
|
|
1005
1152
|
/** `DELETE /interviews/{key}` — abbandona. */
|
|
1006
1153
|
abandonInterview(interviewKey: string): Promise<void>;
|
|
@@ -1053,7 +1200,7 @@ declare class HttpFlowBuilderApi extends FlowBuilderApi {
|
|
|
1053
1200
|
deleteFlow(flowName: string): Promise<void>;
|
|
1054
1201
|
validateDefinition(definition: FlowDefinition): Promise<FlowValidationResult>;
|
|
1055
1202
|
validateVersion(flowName: string, version: number): Promise<FlowValidationResult>;
|
|
1056
|
-
getDictionaries(): Promise<FlowDictionaries>;
|
|
1203
|
+
getDictionaries(processType?: string): Promise<FlowDictionaries>;
|
|
1057
1204
|
getReferences(query: FlowReferenceQuery): Promise<FlowReference[]>;
|
|
1058
1205
|
getWritableReferences(query: FlowReferenceQuery): Promise<FlowReference[]>;
|
|
1059
1206
|
getConnectorTargets(definition: FlowDefinition, excluding?: string): Promise<FlowConnectorTarget[]>;
|
|
@@ -1075,6 +1222,7 @@ declare class HttpFlowBuilderApi extends FlowBuilderApi {
|
|
|
1075
1222
|
startInterview(request: FlowStartInterviewRequest): Promise<FlowInterviewResult>;
|
|
1076
1223
|
respondToScreen(request: FlowScreenResponseRequest): Promise<FlowInterviewResult>;
|
|
1077
1224
|
resumeInterview(request: FlowResumeRequest): Promise<FlowInterviewResult>;
|
|
1225
|
+
completeStageStep(request: FlowStageStepRequest): Promise<FlowInterviewResult>;
|
|
1078
1226
|
inspectInterview(interviewKey: string): Promise<FlowInterviewResult>;
|
|
1079
1227
|
abandonInterview(interviewKey: string): Promise<void>;
|
|
1080
1228
|
}
|
|
@@ -1131,7 +1279,7 @@ declare const FALLBACK_COLLECTION_BY_TYPE: Record<string, FlowNodeCollection>;
|
|
|
1131
1279
|
declare const TYPE_BY_COLLECTION: Record<string, FlowElementType>;
|
|
1132
1280
|
/** Etichette di fallback, se il dizionario non e' caricato. */
|
|
1133
1281
|
declare const FALLBACK_TYPE_LABEL: Record<string, string>;
|
|
1134
|
-
/** I
|
|
1282
|
+
/** I due tipi che il motore rifiuta: nascosti dalla palette (§3.2, §13.9). */
|
|
1135
1283
|
declare const UNSUPPORTED_TYPES: ReadonlySet<string>;
|
|
1136
1284
|
/** Elementi che espongono il proprio risultato sotto il nome dell'elemento (§4.5). */
|
|
1137
1285
|
declare const TYPES_WITH_AUTOMATIC_OUTPUT: ReadonlySet<string>;
|
|
@@ -1231,6 +1379,78 @@ declare function moveCondition(holder: FlowConditionHolder, from: number, to: nu
|
|
|
1231
1379
|
*/
|
|
1232
1380
|
declare function checkConditionLogic(logic: string, conditionCount: number): string | null;
|
|
1233
1381
|
|
|
1382
|
+
/**
|
|
1383
|
+
* Testo e numero non si confrontano — FRONTEND.md §4.3, §13.13.
|
|
1384
|
+
*
|
|
1385
|
+
* `Importo > "1000"` con `Importo` numerico e' `CONDITION_TYPE_MISMATCH`, un **errore** che
|
|
1386
|
+
* blocca l'attivazione: la conversione implicita renderebbe l'esito dipendente dal formato
|
|
1387
|
+
* del testo, e chi disegna il flow non ha modo di accorgersene.
|
|
1388
|
+
*
|
|
1389
|
+
* Il backend segnala solo quando conosce **entrambi** i tipi, e su un campo di un record o
|
|
1390
|
+
* sull'output automatico di un elemento non li conosce: il posto giusto in cui fermare
|
|
1391
|
+
* l'utente e' il picker, cioe' l'editor delle condizioni. Questo file e' la regola, in un
|
|
1392
|
+
* posto solo.
|
|
1393
|
+
*
|
|
1394
|
+
* Vale per i soli operatori di uguaglianza e ordine. `Contains`, `StartsWith`, `EndsWith`,
|
|
1395
|
+
* `In` e `NotIn` hanno una semantica propria e non sono soggetti alla regola; gli unari non
|
|
1396
|
+
* hanno un secondo operando.
|
|
1397
|
+
*/
|
|
1398
|
+
|
|
1399
|
+
/**
|
|
1400
|
+
* `true` → per questo operatore i due lati devono essere compatibili.
|
|
1401
|
+
* `isUnary` arriva dal dizionario: un unario non ha un termine di confronto.
|
|
1402
|
+
*/
|
|
1403
|
+
declare function isTypeCheckedOperator(operator: string | undefined | null, isUnary: boolean): boolean;
|
|
1404
|
+
declare function isNumericType(dataType: FlowDataType | undefined | null): boolean;
|
|
1405
|
+
/**
|
|
1406
|
+
* `false` solo per la coppia vietata: testo con numero.
|
|
1407
|
+
*
|
|
1408
|
+
* È l'**unica** coppia vietata. Un `Enum` confrontato con un testo resta lecito, perche' un
|
|
1409
|
+
* enum si confronta anche per nome; e con un tipo ignoto da un lato non si segnala nulla,
|
|
1410
|
+
* perche' non sapere non e' sapere che e' sbagliato.
|
|
1411
|
+
*/
|
|
1412
|
+
declare function areTypesComparable(left: FlowDataType | undefined | null, right: FlowDataType | undefined | null): boolean;
|
|
1413
|
+
/**
|
|
1414
|
+
* I numeri viaggiano in **cultura invariante**: il separatore decimale e' il punto, la virgola
|
|
1415
|
+
* non e' accettata (§4.3). Un campo che mostra `1.234,50` deve scrivere `1234.50`.
|
|
1416
|
+
*
|
|
1417
|
+
* Accetta la virgola come separatore decimale digitato — e' quello che un utente italiano
|
|
1418
|
+
* scrive — e la traduce, invece di lasciare che `parseFloat` tronchi silenziosamente a `1`.
|
|
1419
|
+
*/
|
|
1420
|
+
declare function parseInvariantNumber(raw: string): number | undefined;
|
|
1421
|
+
|
|
1422
|
+
/**
|
|
1423
|
+
* Gli step di uno stage di orchestrazione — FRONTEND.md §5.13.
|
|
1424
|
+
*
|
|
1425
|
+
* Tre regole del contratto che non si vedono guardando il tipo, e che qui stanno in un posto
|
|
1426
|
+
* solo perche' le usano l'inspector, lo spazio dei nomi del documento e la validazione locale:
|
|
1427
|
+
*
|
|
1428
|
+
* 1. il `name` di uno step vive nello **stesso spazio dei nomi** di node e risorse (§3.3):
|
|
1429
|
+
* uno step omonimo di una variabile e' `NAME_DUPLICATED`;
|
|
1430
|
+
* 2. l'output di uno step e' sempre referenziabile come `<NomeStep>.<NomeOutput>`, ma una
|
|
1431
|
+
* condizione **non** puo' referenziarlo: finche' lo step non ha girato il riferimento e'
|
|
1432
|
+
* irrisolvibile, e a runtime un riferimento irrisolvibile e' un errore;
|
|
1433
|
+
* 3. gli step non sono una sequenza: l'ordine nell'array e' solo l'ordine d'esame.
|
|
1434
|
+
*/
|
|
1435
|
+
|
|
1436
|
+
/** I nomi di tutti gli step del documento: entrano nello spazio dei nomi comune (§3.3). */
|
|
1437
|
+
declare function stageStepNames(definition: FlowDefinition): string[];
|
|
1438
|
+
/** Gli step di uno stage, con l'array assente trattato come vuoto. */
|
|
1439
|
+
declare function stepsOf(stage: FlowOrchestratedStage | undefined): FlowStageStep[];
|
|
1440
|
+
/**
|
|
1441
|
+
* Il nome dello step il cui output un riferimento sta leggendo, se e' uno degli step passati.
|
|
1442
|
+
* `undefined` quando il riferimento e' legittimo. Serve a impedire nell'editor la condizione
|
|
1443
|
+
* che referenzia l'output di un altro step (§5.13, punto 4): la strada corretta e' scrivere
|
|
1444
|
+
* quel risultato in una variabile con `outputParameters.assignToReference` e condizionare
|
|
1445
|
+
* su quella.
|
|
1446
|
+
*/
|
|
1447
|
+
declare function stageStepOutputReferenced(reference: string | undefined, steps: FlowStageStep[]): string | undefined;
|
|
1448
|
+
/**
|
|
1449
|
+
* L'unico output che il runtime legge da un evaluation flow di condizione. Dichiararne altri
|
|
1450
|
+
* e' `STAGE_ACTION_INVALID` (§5.13, punto 7).
|
|
1451
|
+
*/
|
|
1452
|
+
declare const ORCHESTRATION_CONDITION_OUTPUT = "isOrchestrationConditionMet";
|
|
1453
|
+
|
|
1234
1454
|
/** Un node come lo vede l'editor: il node piu' da dove viene. */
|
|
1235
1455
|
interface FlowNodeRef {
|
|
1236
1456
|
name: string;
|
|
@@ -1278,9 +1498,10 @@ declare class FlowDocumentStore {
|
|
|
1278
1498
|
readonly nodeByName: _angular_core.Signal<Map<string, FlowNodeRef>>;
|
|
1279
1499
|
readonly resources: _angular_core.Signal<FlowResourceRef[]>;
|
|
1280
1500
|
/**
|
|
1281
|
-
* §3.3 — l'insieme dei nomi già usati: node **e**
|
|
1282
|
-
* Il controllo di unicita' che guarda solo le variabili lascia passare una
|
|
1283
|
-
* omonima di un node (§13.5)
|
|
1501
|
+
* §3.3 — l'insieme dei nomi già usati: node, risorse **e** step di orchestrazione, un unico
|
|
1502
|
+
* spazio di nomi. Il controllo di unicita' che guarda solo le variabili lascia passare una
|
|
1503
|
+
* variabile omonima di un node (§13.5); quello che dimentica gli step lascia passare uno
|
|
1504
|
+
* step omonimo di una variabile, che e' `NAME_DUPLICATED` allo stesso modo (§5.13).
|
|
1284
1505
|
*/
|
|
1285
1506
|
readonly usedNames: _angular_core.Signal<string[]>;
|
|
1286
1507
|
/** Gli archi derivati dal documento, Start incluso. */
|
|
@@ -1369,11 +1590,21 @@ declare class FlowDictionaryStore {
|
|
|
1369
1590
|
private readonly api;
|
|
1370
1591
|
private readonly _dictionaries;
|
|
1371
1592
|
private readonly _isLoaded;
|
|
1372
|
-
private
|
|
1593
|
+
private readonly _processType;
|
|
1594
|
+
/** Una copia per tipo di flow: le globali dipendono dal `processType` (§4.1, §6.4). */
|
|
1595
|
+
private readonly cache;
|
|
1596
|
+
/** Cresce a ogni `load`: scarta la risposta di un caricamento superato. */
|
|
1597
|
+
private sequence;
|
|
1373
1598
|
readonly dictionaries: _angular_core.Signal<FlowDictionaries>;
|
|
1374
1599
|
readonly isLoaded: _angular_core.Signal<boolean>;
|
|
1375
|
-
/**
|
|
1376
|
-
|
|
1600
|
+
/** Il `processType` dei dizionari attualmente in uso. */
|
|
1601
|
+
readonly processType: _angular_core.Signal<string | undefined>;
|
|
1602
|
+
/**
|
|
1603
|
+
* Idempotente: chiamabile da ogni componente che ne ha bisogno.
|
|
1604
|
+
* Con un `processType` diverso da quello in uso ricarica — dalla cache se c'e' già —
|
|
1605
|
+
* perche' cambiare tipo di flow cambia quali globali sono proponibili.
|
|
1606
|
+
*/
|
|
1607
|
+
load(processType?: string): Promise<void>;
|
|
1377
1608
|
readonly dataTypes: _angular_core.Signal<FlowDataTypeEntry[]>;
|
|
1378
1609
|
readonly comparisonOperators: _angular_core.Signal<FlowComparisonOperatorEntry[]>;
|
|
1379
1610
|
readonly assignmentOperators: _angular_core.Signal<_esfaenza_flow_builder.FlowAssignmentOperatorEntry[]>;
|
|
@@ -1390,6 +1621,8 @@ declare class FlowDictionaryStore {
|
|
|
1390
1621
|
readonly transformTypes: _angular_core.Signal<FlowDictionaryEntry[]>;
|
|
1391
1622
|
readonly transactionModels: _angular_core.Signal<FlowDictionaryEntry[]>;
|
|
1392
1623
|
readonly waitEventTypes: _angular_core.Signal<FlowDictionaryEntry[]>;
|
|
1624
|
+
readonly stageStepTypes: _angular_core.Signal<FlowStageStepTypeEntry[]>;
|
|
1625
|
+
readonly assigneeTypes: _angular_core.Signal<FlowDictionaryEntry[]>;
|
|
1393
1626
|
readonly conditionLogicModes: _angular_core.Signal<FlowDictionaryEntry[]>;
|
|
1394
1627
|
readonly elementTypes: _angular_core.Signal<FlowElementTypeEntry[]>;
|
|
1395
1628
|
/**
|
|
@@ -1423,6 +1656,22 @@ declare class FlowDictionaryStore {
|
|
|
1423
1656
|
* Operatori applicabili al tipo del lato sinistro: `appliesTo` vuoto = qualunque tipo (§4.3).
|
|
1424
1657
|
*/
|
|
1425
1658
|
operatorsFor(dataType: FlowDataType | undefined): FlowComparisonOperatorEntry[];
|
|
1659
|
+
/** La voce di `globalVariables` di uno scope: `$User`, `$Flow`, … (§4.1). */
|
|
1660
|
+
globalScope(scope: string | undefined | null): FlowGlobalVariableEntry | undefined;
|
|
1661
|
+
/**
|
|
1662
|
+
* §4.1 — la verificabilita' e' **per scope**: se lo scope dichiara almeno un percorso, uno
|
|
1663
|
+
* che non c'e' e' `GLOBAL_UNKNOWN`; se non ne dichiara nessuno, resta non verificabile, che
|
|
1664
|
+
* significa "non lo so", non "non esiste".
|
|
1665
|
+
*/
|
|
1666
|
+
isGlobalScopeVerifiable(scope: string | undefined | null): boolean;
|
|
1667
|
+
/** I percorsi noti di uno scope, già prefissati: `$User.Email`. */
|
|
1668
|
+
globalPathsOf(scope: string | undefined | null): string[];
|
|
1669
|
+
/** §5.13 — la voce di `stageStepTypes` di un `actionType`. */
|
|
1670
|
+
stageStepType(value: string | undefined | null): FlowStageStepTypeEntry | undefined;
|
|
1671
|
+
/** `stepBackground` vuole `actionName`; il fallback serve se il dizionario non lo dichiara. */
|
|
1672
|
+
stageStepRequiresActionName(actionType: string | undefined | null): boolean;
|
|
1673
|
+
/** `stepInteractive` e `stepApproval` vogliono gli assegnatari (§5.13). */
|
|
1674
|
+
stageStepRequiresAssignees(actionType: string | undefined | null): boolean;
|
|
1426
1675
|
dataType(value: string | undefined | null): FlowDataTypeEntry | undefined;
|
|
1427
1676
|
/** §4.6 — `Object` ed `Enum` richiedono `objectType`. */
|
|
1428
1677
|
requiresObjectType(dataType: string | undefined | null): boolean;
|
|
@@ -1868,6 +2117,12 @@ declare class ElementPaletteComponent {
|
|
|
1868
2117
|
incompatibleHint(entry: FlowElementTypeEntry): string | null;
|
|
1869
2118
|
/** Lo stesso glifo che l'elemento avra' sul canvas, così il trascinamento e' prevedibile. */
|
|
1870
2119
|
iconOf(entry: FlowElementTypeEntry): string;
|
|
2120
|
+
/**
|
|
2121
|
+
* L'etichetta del ramo di fault, presa dalla mappa delle uscite invece di scrivere «ramo di
|
|
2122
|
+
* errore» per tutti: su uno stage di orchestrazione quel ramo **non** e' un guasto, e' lo step
|
|
2123
|
+
* rifiutato (§5.13). Un tipo nuovo eredita l'etichetta giusta senza toccare la palette.
|
|
2124
|
+
*/
|
|
2125
|
+
faultLabel(entry: FlowElementTypeEntry): string | null;
|
|
1871
2126
|
categoryClass(category: string): string;
|
|
1872
2127
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ElementPaletteComponent, never>;
|
|
1873
2128
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ElementPaletteComponent, "fb-element-palette", never, { "processType": { "alias": "processType"; "required": false; "isSignal": true; }; }, { "elementPicked": "elementPicked"; }, never, never, true, never>;
|
|
@@ -1890,11 +2145,6 @@ declare class ReferencePickerComponent {
|
|
|
1890
2145
|
* formula e' `TARGET_NOT_WRITABLE` (§4.6).
|
|
1891
2146
|
*/
|
|
1892
2147
|
readonly writableOnly: _angular_core.InputSignal<boolean>;
|
|
1893
|
-
/**
|
|
1894
|
-
* `true` → aggiunge `$Flow.CurrentStage` e `$Flow.ActiveStages` alle destinazioni.
|
|
1895
|
-
* Sono le sole variabili globali scrivibili, e solo se il flow dichiara stage (§5.2).
|
|
1896
|
-
*/
|
|
1897
|
-
readonly allowStageTargets: _angular_core.InputSignal<boolean>;
|
|
1898
2148
|
/**
|
|
1899
2149
|
* `true` → a sinistra ci va il nome di un **node**, non di una risorsa: e' il caso di
|
|
1900
2150
|
* `WasVisited` e `HasError` (§4.3).
|
|
@@ -1907,8 +2157,6 @@ declare class ReferencePickerComponent {
|
|
|
1907
2157
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
1908
2158
|
readonly query: _angular_core.WritableSignal<string>;
|
|
1909
2159
|
constructor();
|
|
1910
|
-
/** Le due globali di stage, aggiunte alle destinazioni quando il flow dichiara stage. */
|
|
1911
|
-
private readonly stageTargets;
|
|
1912
2160
|
readonly options: _angular_core.Signal<FlowReference[]>;
|
|
1913
2161
|
/** Le opzioni raggruppate per `kind`, così gli output automatici si distinguono. */
|
|
1914
2162
|
readonly groups: _angular_core.Signal<{
|
|
@@ -1923,8 +2171,10 @@ declare class ReferencePickerComponent {
|
|
|
1923
2171
|
* - `navigated`: la radice e' nota ma c'e' un percorso dopo il punto (campo di record,
|
|
1924
2172
|
* output automatico navigato): la validazione non verifica i percorsi con il punto,
|
|
1925
2173
|
* quindi si accetta senza segnalare;
|
|
1926
|
-
* - `host`: scope
|
|
1927
|
-
* - `unknown`: nessuna corrispondenza: si avvisa, senza bloccare.
|
|
2174
|
+
* - `host`: scope del sistema ospite che **non dichiara percorsi**: non verificabile (§4.1);
|
|
2175
|
+
* - `unknown`: nessuna corrispondenza: si avvisa, senza bloccare. Ci finisce anche il
|
|
2176
|
+
* percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
|
|
2177
|
+
* risponderebbe `GLOBAL_UNKNOWN`.
|
|
1928
2178
|
*/
|
|
1929
2179
|
readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "unknown">;
|
|
1930
2180
|
readonly hint: _angular_core.Signal<string | null>;
|
|
@@ -1939,7 +2189,7 @@ declare class ReferencePickerComponent {
|
|
|
1939
2189
|
clear(): void;
|
|
1940
2190
|
describe(reference: FlowReference): string;
|
|
1941
2191
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ReferencePickerComponent, never>;
|
|
1942
|
-
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; }; "
|
|
2192
|
+
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; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
1943
2193
|
}
|
|
1944
2194
|
|
|
1945
2195
|
/** Le modalita' offerte: una per campo del modello. */
|
|
@@ -1975,12 +2225,24 @@ declare class ValueEditorComponent {
|
|
|
1975
2225
|
readonly literalInputType: _angular_core.Signal<string>;
|
|
1976
2226
|
readonly literalText: _angular_core.Signal<string>;
|
|
1977
2227
|
readonly booleanValue: _angular_core.Signal<boolean>;
|
|
2228
|
+
/** Il fuso dichiarato nel valore data: `Z`, un offset, oppure niente = ora locale (§4.2). */
|
|
2229
|
+
readonly dateIsUtc: _angular_core.Signal<boolean>;
|
|
2230
|
+
private static readonly ZONE_PATTERN;
|
|
2231
|
+
private static hasZone;
|
|
2232
|
+
private static stripZone;
|
|
1978
2233
|
readonly globalConstants: _angular_core.Signal<string[]>;
|
|
1979
|
-
readonly
|
|
2234
|
+
readonly numericHint: _angular_core.Signal<string | null>;
|
|
1980
2235
|
setMode(mode: ValueMode): void;
|
|
1981
2236
|
onReferenceChange(reference: string | undefined): void;
|
|
1982
2237
|
onLiteralChange(raw: string): void;
|
|
1983
2238
|
onBooleanChange(checked: boolean): void;
|
|
2239
|
+
private withDateZone;
|
|
2240
|
+
/**
|
|
2241
|
+
* Cambia il fuso **dichiarato**, non l'istante: `09:00Z` e `09:00` sono le nove in due fusi
|
|
2242
|
+
* diversi, e l'editor non converte al posto dell'utente. Riscrivere lo stesso orario con
|
|
2243
|
+
* l'altro fuso e' esattamente cio' che serve quando il valore e' stato inserito sbagliato.
|
|
2244
|
+
*/
|
|
2245
|
+
setDateZone(utc: boolean): void;
|
|
1984
2246
|
onFormulaChange(expression: string): void;
|
|
1985
2247
|
onFormulaTypeChange(dataType: string): void;
|
|
1986
2248
|
onGlobalConstantChange(value: string): void;
|
|
@@ -1994,23 +2256,55 @@ declare class ValueEditorComponent {
|
|
|
1994
2256
|
|
|
1995
2257
|
declare class ConditionEditorComponent {
|
|
1996
2258
|
private readonly dictionaries;
|
|
2259
|
+
private readonly api;
|
|
2260
|
+
private readonly store;
|
|
1997
2261
|
/** Il contenitore: porta `conditions`, `conditionLogic` e, se serve, `formula`. */
|
|
1998
2262
|
readonly holder: _angular_core.InputSignal<FlowConditionHolder>;
|
|
1999
2263
|
readonly title: _angular_core.InputSignal<string>;
|
|
2000
2264
|
/** `false` dove il modello non prevede la modalita' formula sull'elemento. */
|
|
2001
2265
|
readonly allowFormula: _angular_core.InputSignal<boolean>;
|
|
2266
|
+
/**
|
|
2267
|
+
* `false` dove il modello porta **solo** la lista di condizioni, senza un campo per la
|
|
2268
|
+
* logica: gli `entryConditions` / `exitConditions` di uno step di orchestrazione (§5.13).
|
|
2269
|
+
* Mostrare i pulsanti della logica lì scriverebbe un campo che il contratto non prevede.
|
|
2270
|
+
*/
|
|
2271
|
+
readonly allowLogic: _angular_core.InputSignal<boolean>;
|
|
2002
2272
|
/** Path per ancorare i rilievi di validazione, es. `rules[Approvato]`. */
|
|
2003
2273
|
readonly issuePath: _angular_core.InputSignal<string>;
|
|
2004
2274
|
/** Emesso a ogni modifica: il chiamante applica la mutazione allo store. */
|
|
2005
2275
|
readonly changed: _angular_core.OutputEmitterRef<(holder: FlowConditionHolder) => void>;
|
|
2006
2276
|
readonly conditions: _angular_core.Signal<FlowCondition[]>;
|
|
2277
|
+
/**
|
|
2278
|
+
* I riferimenti del documento, per conoscere il tipo del lato sinistro. Non e' un doppione
|
|
2279
|
+
* del picker: serve **il tipo**, che e' l'unica cosa che permette di impedire il confronto
|
|
2280
|
+
* fra testo e numero prima che lo dica la validazione (§4.3).
|
|
2281
|
+
*/
|
|
2282
|
+
private readonly references;
|
|
2283
|
+
constructor();
|
|
2284
|
+
/** Il tipo di un riferimento, `undefined` se navigato o ignoto: lì non si segnala (§4.3). */
|
|
2285
|
+
private typeOfReference;
|
|
2286
|
+
/** Il tipo del lato sinistro: guida il secondo operando. */
|
|
2287
|
+
leftDataType(condition: FlowCondition): FlowDataType | undefined;
|
|
2288
|
+
/** Il tipo del lato destro, dedotto dal campo valorizzato o dal riferimento scelto. */
|
|
2289
|
+
private rightDataType;
|
|
2290
|
+
/**
|
|
2291
|
+
* `true` quando i due lati sono incompatibili: e' `CONDITION_TYPE_MISMATCH`, un errore che
|
|
2292
|
+
* blocca l'attivazione. L'unica coppia vietata e' testo con numero (§4.3).
|
|
2293
|
+
*/
|
|
2294
|
+
hasTypeMismatch(condition: FlowCondition): boolean;
|
|
2295
|
+
typeMismatchMessage(condition: FlowCondition): string;
|
|
2007
2296
|
readonly logicMode: _angular_core.Signal<"and" | "or" | "formula" | "custom">;
|
|
2008
2297
|
readonly customLogic: _angular_core.Signal<string>;
|
|
2009
2298
|
/** Feedback immediato sull'espressione: la verita' resta della validazione backend. */
|
|
2010
2299
|
readonly customLogicError: _angular_core.Signal<string | null>;
|
|
2011
2300
|
/** Con `Formula` il campo `conditions` viene **ignorato** dal motore (§4.3). */
|
|
2012
2301
|
readonly conditionsIgnored: _angular_core.Signal<boolean>;
|
|
2013
|
-
|
|
2302
|
+
/**
|
|
2303
|
+
* Gli operatori applicabili al tipo del lato sinistro: `appliesTo` del dizionario, vuoto =
|
|
2304
|
+
* qualunque tipo (§4.3). L'operatore già scritto si tiene comunque nell'elenco, altrimenti
|
|
2305
|
+
* il `select` resterebbe vuoto pur avendo un valore.
|
|
2306
|
+
*/
|
|
2307
|
+
operatorsFor(condition: FlowCondition): ReturnType<FlowDictionaryStore['operatorsFor']>;
|
|
2014
2308
|
isUnary(condition: FlowCondition): boolean;
|
|
2015
2309
|
appliesToElements(condition: FlowCondition): boolean;
|
|
2016
2310
|
/** L'esito atteso di un operatore unario: assente equivale a `true` (§4.3). */
|
|
@@ -2022,8 +2316,13 @@ declare class ConditionEditorComponent {
|
|
|
2022
2316
|
unarySummary(condition: FlowCondition): string;
|
|
2023
2317
|
operatorLabel(operator: string | undefined): string;
|
|
2024
2318
|
operatorDescription(operator: string | undefined): string | null;
|
|
2025
|
-
/**
|
|
2319
|
+
/**
|
|
2320
|
+
* `None` e' uno stato dell'editor, non un operatore: la **bozza si salva, l'attivazione no**
|
|
2321
|
+
* (`CONDITION_INCOMPLETE`, errore). A runtime vale sempre falso (§4.3, §13.14).
|
|
2322
|
+
*/
|
|
2026
2323
|
isPlaceholderOperator(condition: FlowCondition): boolean;
|
|
2324
|
+
/** Quante condizioni sono da completare: si dice in testa, non solo riga per riga. */
|
|
2325
|
+
readonly incompleteCount: _angular_core.Signal<number>;
|
|
2027
2326
|
addCondition(): void;
|
|
2028
2327
|
removeCondition(index: number): void;
|
|
2029
2328
|
moveCondition(index: number, direction: -1 | 1): void;
|
|
@@ -2035,7 +2334,7 @@ declare class ConditionEditorComponent {
|
|
|
2035
2334
|
setRightValue(index: number, value: FlowValue | undefined): void;
|
|
2036
2335
|
setUnaryExpectation(index: number, expectation: boolean): void;
|
|
2037
2336
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConditionEditorComponent, never>;
|
|
2038
|
-
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; }; "issuePath": { "alias": "issuePath"; "required": false; "isSignal": true; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
2337
|
+
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>;
|
|
2039
2338
|
}
|
|
2040
2339
|
|
|
2041
2340
|
/** Il contenitore dei filtri, qualunque elemento sia. */
|
|
@@ -2343,6 +2642,98 @@ declare class StartInspectorComponent {
|
|
|
2343
2642
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StartInspectorComponent, "fb-start-inspector", never, {}, {}, never, never, true, never>;
|
|
2344
2643
|
}
|
|
2345
2644
|
|
|
2645
|
+
/** I due contenitori di condizioni di uno step, come li vuole l'editor condiviso. */
|
|
2646
|
+
interface StepConditionHolders {
|
|
2647
|
+
entry: FlowConditionHolder;
|
|
2648
|
+
exit: FlowConditionHolder;
|
|
2649
|
+
}
|
|
2650
|
+
declare class OrchestratedStageInspectorComponent extends NodeInspectorBase {
|
|
2651
|
+
private readonly api;
|
|
2652
|
+
readonly elementType: FlowElementType;
|
|
2653
|
+
readonly stage: _angular_core.Signal<FlowOrchestratedStage>;
|
|
2654
|
+
readonly steps: _angular_core.Signal<FlowStageStep[]>;
|
|
2655
|
+
/** I tre tipi di step: `stageStepTypes` e' l'elenco autoritativo (§6.4). */
|
|
2656
|
+
readonly stepTypes: _angular_core.Signal<_esfaenza_flow_builder.FlowStageStepTypeEntry[]>;
|
|
2657
|
+
readonly assigneeTypes: _angular_core.Signal<_esfaenza_flow_builder.FlowDictionaryEntry[]>;
|
|
2658
|
+
/** L'output che il runtime legge da un evaluation flow di condizione. */
|
|
2659
|
+
readonly conditionOutputName = "isOrchestrationConditionMet";
|
|
2660
|
+
/**
|
|
2661
|
+
* I flow proponibili come step in background o come evaluation flow. Una lista vuota
|
|
2662
|
+
* significa "non lo so": in quel caso il campo resta scrivibile a mano (§5.9, §7).
|
|
2663
|
+
*/
|
|
2664
|
+
private readonly flowCandidates;
|
|
2665
|
+
constructor();
|
|
2666
|
+
readonly candidates: _angular_core.Signal<FlowSummary[]>;
|
|
2667
|
+
/** L'id del `datalist`: dipende dall'elemento, per non collidere con un altro stage. */
|
|
2668
|
+
readonly flowListId: _angular_core.Signal<string>;
|
|
2669
|
+
/**
|
|
2670
|
+
* I contenitori di condizioni, uno per step, calcolati **una volta** per documento: costruirli
|
|
2671
|
+
* nel template creerebbe un oggetto nuovo a ogni ciclo di change detection.
|
|
2672
|
+
*/
|
|
2673
|
+
readonly conditionHolders: _angular_core.Signal<StepConditionHolders[]>;
|
|
2674
|
+
requiresActionName(step: FlowStageStep): boolean;
|
|
2675
|
+
requiresAssignees(step: FlowStageStep): boolean;
|
|
2676
|
+
/** Il rifiuto e' un esito previsto solo per l'approvazione: e' lì che serve il ramo. */
|
|
2677
|
+
supportsRejection(step: FlowStageStep): boolean;
|
|
2678
|
+
stepTypeDescription(step: FlowStageStep): string | null;
|
|
2679
|
+
/** Un `actionType` che il dizionario non conosce: sarebbe `STAGE_STEP_TYPE_UNKNOWN`. */
|
|
2680
|
+
isUnknownStepType(step: FlowStageStep): boolean;
|
|
2681
|
+
/**
|
|
2682
|
+
* Il nome dello step: stessa regola dei node, sullo spazio dei nomi comune (§3.3).
|
|
2683
|
+
* L'unicita' si conta sulle occorrenze in `usedNames`, che gli step li comprende già: una
|
|
2684
|
+
* sola occorrenza e' questo step, due sono un omonimo.
|
|
2685
|
+
*/
|
|
2686
|
+
stepNameError(step: FlowStageStep): string | null;
|
|
2687
|
+
/**
|
|
2688
|
+
* Il nome dello step il cui output una condizione sta leggendo: e' irrisolvibile finche'
|
|
2689
|
+
* quello step non ha girato (§5.13, punto 4). `undefined` quando va tutto bene.
|
|
2690
|
+
*/
|
|
2691
|
+
stepOutputInConditions(step: FlowStageStep): string | undefined;
|
|
2692
|
+
/** Lo step tiene un output senza destinazione: e' lecito, ma vale la pena dirlo. */
|
|
2693
|
+
hasSimulatedOutputs(step: FlowStageStep): boolean;
|
|
2694
|
+
addStep(): void;
|
|
2695
|
+
removeStep(index: number): void;
|
|
2696
|
+
/** Sposta lo step nell'ordine d'**esame**: non e' un ordine di esecuzione (§5.13). */
|
|
2697
|
+
moveStep(index: number, direction: -1 | 1): void;
|
|
2698
|
+
private patchStep;
|
|
2699
|
+
setStepLabel(index: number, label: string): void;
|
|
2700
|
+
setStepName(index: number, name: string): void;
|
|
2701
|
+
setStepDescription(index: number, description: string): void;
|
|
2702
|
+
/**
|
|
2703
|
+
* Cambiare tipo cambia cosa lo step pretende: gli assegnatari non hanno senso su uno step in
|
|
2704
|
+
* background, e `actionName` non ne ha su uno assegnato. I campi che il nuovo tipo non
|
|
2705
|
+
* prevede si rimuovono, invece di restare nel documento a dire una cosa che non vale piu'.
|
|
2706
|
+
*/
|
|
2707
|
+
setStepType(index: number, actionType: string): void;
|
|
2708
|
+
setStepActionName(index: number, actionName: string): void;
|
|
2709
|
+
setMultiMemberApproval(index: number, required: boolean): void;
|
|
2710
|
+
isMultiMemberApproval(step: FlowStageStep): boolean;
|
|
2711
|
+
setSimulateStep(index: number, simulate: boolean): void;
|
|
2712
|
+
assigneesOf(step: FlowStageStep): FlowStageStepAssignee[];
|
|
2713
|
+
addAssignee(index: number): void;
|
|
2714
|
+
removeAssignee(stepIndex: number, assigneeIndex: number): void;
|
|
2715
|
+
setAssigneeType(stepIndex: number, assigneeIndex: number, assigneeType: string): void;
|
|
2716
|
+
setAssigneeValue(stepIndex: number, assigneeIndex: number, value: FlowValue | undefined): void;
|
|
2717
|
+
/** Assegnatario senza tipo o senza valore: e' `STAGE_STEP_ASSIGNEE_INVALID`. */
|
|
2718
|
+
isAssigneeIncomplete(assignee: FlowStageStepAssignee): boolean;
|
|
2719
|
+
/**
|
|
2720
|
+
* Le condizioni di uno step sono condizioni come le altre (§4.3), ma il modello porta solo
|
|
2721
|
+
* la lista: `conditionLogic` e `formula` non esistono e non vanno scritti.
|
|
2722
|
+
*/
|
|
2723
|
+
onEntryConditionsChanged(index: number, mutate: (holder: FlowConditionHolder) => void): void;
|
|
2724
|
+
onExitConditionsChanged(index: number, mutate: (holder: FlowConditionHolder) => void): void;
|
|
2725
|
+
private applyConditions;
|
|
2726
|
+
setEntryActionName(index: number, actionName: string): void;
|
|
2727
|
+
setExitActionName(index: number, actionName: string): void;
|
|
2728
|
+
onParametersChanged(index: number, mutate: (holder: ParameterHolder) => void): void;
|
|
2729
|
+
/** Il ramo del rifiuto e' disegnato: senza, un rifiuto fa fallire l'interview (§5.13). */
|
|
2730
|
+
readonly hasRejectionBranch: _angular_core.Signal<boolean>;
|
|
2731
|
+
/** C'e' almeno uno step il cui rifiuto e' un esito previsto. */
|
|
2732
|
+
readonly hasApprovalStep: _angular_core.Signal<boolean>;
|
|
2733
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OrchestratedStageInspectorComponent, never>;
|
|
2734
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OrchestratedStageInspectorComponent, "fb-orchestrated-stage-inspector", never, {}, {}, never, never, true, never>;
|
|
2735
|
+
}
|
|
2736
|
+
|
|
2346
2737
|
interface ResourceKindDescriptor {
|
|
2347
2738
|
collection: FlowResourceCollection;
|
|
2348
2739
|
label: string;
|
|
@@ -2471,6 +2862,13 @@ declare class DebugPanelComponent {
|
|
|
2471
2862
|
readonly status: _angular_core.Signal<string | null>;
|
|
2472
2863
|
readonly pendingScreen: _angular_core.Signal<_esfaenza_flow_builder.FlowPendingScreen | null>;
|
|
2473
2864
|
readonly isWaitingForScreen: _angular_core.Signal<boolean>;
|
|
2865
|
+
/** §5.13 — l'attesa e' su uno step assegnato a una persona, non su un evento. */
|
|
2866
|
+
readonly isWaitingForStageStep: _angular_core.Signal<boolean>;
|
|
2867
|
+
readonly stageSteps: _angular_core.Signal<FlowStageStepState[]>;
|
|
2868
|
+
/** Lo step su cui c'e' un work item aperto: e' quello che si puo' concludere. */
|
|
2869
|
+
readonly waitingStageSteps: _angular_core.Signal<FlowStageStepState[]>;
|
|
2870
|
+
/** I valori con cui si conclude uno step, per nome di output. */
|
|
2871
|
+
readonly stepOutputs: _angular_core.WritableSignal<Record<string, string>>;
|
|
2474
2872
|
readonly trace: _angular_core.Signal<_esfaenza_flow_builder.FlowTraceEntry[]>;
|
|
2475
2873
|
/** Le risorse come righe ordinate: il tipo dichiarato vince in lettura (§6.5). */
|
|
2476
2874
|
readonly resourceRows: _angular_core.Signal<{
|
|
@@ -2499,6 +2897,14 @@ declare class DebugPanelComponent {
|
|
|
2499
2897
|
private coerceInputs;
|
|
2500
2898
|
start(): Promise<void>;
|
|
2501
2899
|
respond(navigation: FlowScreenNavigation): Promise<void>;
|
|
2900
|
+
setStepOutput(name: string, value: string): void;
|
|
2901
|
+
/** Gli output dichiarati dallo step, per generare i campi da compilare. */
|
|
2902
|
+
stepOutputNames(stepName: string | undefined): string[];
|
|
2903
|
+
/**
|
|
2904
|
+
* Conclude uno step come farebbe l'assegnatario. `Rejected` non e' un errore: e' l'esito che
|
|
2905
|
+
* prende il ramo «Step rifiutato» dello stage — e se quel ramo non c'e', l'interview fallisce.
|
|
2906
|
+
*/
|
|
2907
|
+
completeStep(stepName: string | undefined, status: FlowStageStepStatus): Promise<void>;
|
|
2502
2908
|
private apply;
|
|
2503
2909
|
private handleError;
|
|
2504
2910
|
reset(): void;
|
|
@@ -2588,8 +2994,11 @@ declare class FlowBuilderComponent {
|
|
|
2588
2994
|
readonly hasScreensInAutoLaunched: _angular_core.Signal<boolean>;
|
|
2589
2995
|
/** Un flow `Screen` senza screen e' `SCREEN_FLOW_WITHOUT_SCREENS`. */
|
|
2590
2996
|
readonly hasNoScreensInScreenFlow: _angular_core.Signal<boolean>;
|
|
2591
|
-
/**
|
|
2592
|
-
|
|
2997
|
+
/**
|
|
2998
|
+
* Un flow `Orchestration` senza stage di orchestrazione e' un **avviso**
|
|
2999
|
+
* (`ORCHESTRATION_WITHOUT_STAGES`): il tipo dichiara un'orchestrazione che non c'e' (§3.1).
|
|
3000
|
+
*/
|
|
3001
|
+
readonly isOrchestrationWithoutStages: _angular_core.Signal<boolean>;
|
|
2593
3002
|
/**
|
|
2594
3003
|
* Click singolo sul canvas: seleziona. Con la dialog il form **non** si apre qui: un click
|
|
2595
3004
|
* capita anche solo per spostare un node, e una finestra che si apre a ogni click sarebbe
|
|
@@ -2662,5 +3071,5 @@ declare class SelectValueDirective implements AfterViewChecked {
|
|
|
2662
3071
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueDirective, "select[fbValue]", never, { "fbValue": { "alias": "fbValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2663
3072
|
}
|
|
2664
3073
|
|
|
2665
|
-
export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_ELEMENT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_RESOURCE_COLLECTIONS, FieldAssignmentEditorComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, HttpFlowBuilderApi, NodeInspectorBase, ParameterEditorComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourcePanelComponent, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, canvasNodeId, checkConditionLogic, checkFlowName, elementIcon, emptyFlowDefinition, flowNodeWidth, flowNodeWidthClass, isCustomConditionLogic, isGlobalReference, isValidFlowName, moveCondition, outletByKey, outletsOf, parseCanvasNodeId, parseSourceConnectorId, parseTargetConnectorId, referenceRoot, remapConditionLogic, removeCondition, slugifyFlowName, sourceConnectorId, targetConnectorId, uniqueFlowName };
|
|
2666
|
-
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, FlowOutlet, FlowOutline, FlowOutlineConnection, FlowOutlineNode, FlowOutputFieldAssignment, FlowOutputParameter, FlowPendingScreen, FlowProcessType, FlowRecordCreate, FlowRecordDelete, FlowRecordFilter, FlowRecordFilterOperator, FlowRecordLookup, FlowRecordRollback, FlowRecordTriggerType, FlowRecordUpdate, FlowReference, FlowReferenceKind, FlowReferenceQuery, FlowResourceCollection, FlowResourceKindEntry, FlowResourceRef, FlowResumeRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenNavigation, FlowScreenResponseRequest, FlowScriptPluginCall, FlowSortOption, FlowSortOrder, FlowStage, FlowStart, FlowStartInterviewRequest, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, ParameterHolder, ValueMode };
|
|
3074
|
+
export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_ELEMENT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_RESOURCE_COLLECTIONS, FieldAssignmentEditorComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, HttpFlowBuilderApi, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, 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 };
|
|
3075
|
+
export type { FieldAssignmentHolder, FilterHolder, FlowActionCall, FlowAnyNode, FlowAssignment, FlowAssignmentItem, FlowAssignmentOperator, FlowAssignmentOperatorEntry, FlowBuilderHttpConfig, FlowCanvasEdge, FlowCanvasNode, FlowCatalogEntry, FlowCatalogParameter, FlowChoice, FlowCloneRequest, FlowCollectionProcessor, FlowCollectionProcessorType, FlowComparisonOperator, FlowComparisonOperatorEntry, FlowCondition, FlowConditionHolder, FlowConditionLogic, FlowConflictState, FlowConnectionKind, FlowConnector, FlowConnectorTarget, FlowConstant, FlowCreateRequest, FlowCustomError, FlowCustomErrorMessage, FlowCustomProperty, FlowDataType, FlowDataTypeEntry, FlowDecision, FlowDecisionRule, FlowDefinition, FlowDictionaries, FlowDictionaryEntry, FlowDynamicChoiceSet, FlowEdge, FlowElementType, FlowElementTypeEntry, FlowErrorCategory, FlowExportQuery, FlowFieldDescription, FlowFieldUsage, FlowFieldValue, FlowFormula, FlowGlobalVariableEntry, FlowInputFieldAssignment, FlowInputParameter, FlowInterviewResult, FlowInterviewStatus, FlowIssueSeverity, FlowLayoutDirection, FlowLayoutNodeInput, FlowLayoutOptions, FlowLayoutResult, FlowListQuery, FlowLoop, FlowNameCheck, FlowNameProblem, FlowNewVersionRequest, FlowNodeBase, FlowNodeCollection, FlowNodeRef, FlowObjectDescription, FlowObjectSummary, FlowOffsetUnit, FlowOrchestratedStage, FlowOutlet, FlowOutline, FlowOutlineConnection, FlowOutlineNode, FlowOutputFieldAssignment, FlowOutputParameter, FlowPendingScreen, FlowProcessType, FlowRecordCreate, FlowRecordDelete, FlowRecordFilter, FlowRecordFilterOperator, FlowRecordLookup, FlowRecordRollback, FlowRecordTriggerType, FlowRecordUpdate, FlowReference, FlowReferenceKind, FlowReferenceQuery, FlowResourceCollection, FlowResourceKindEntry, FlowResourceRef, FlowResumeRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenNavigation, FlowScreenResponseRequest, FlowScriptPluginCall, FlowSortOption, FlowSortOrder, FlowStage, FlowStageStep, FlowStageStepActionType, FlowStageStepAssignee, FlowStageStepConditionActionType, FlowStageStepRequest, FlowStageStepState, FlowStageStepStatus, FlowStageStepTypeEntry, FlowStart, FlowStartInterviewRequest, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, ParameterHolder, ValueMode };
|