@esfaenza/flow-builder 20.3.12 → 20.3.14
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 +24 -5
- package/fesm2022/esfaenza-flow-builder.mjs +405 -149
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +71 -25
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1673,6 +1673,43 @@ declare function areTypesComparable(left: FlowDataType | undefined | null, right
|
|
|
1673
1673
|
*/
|
|
1674
1674
|
declare function parseInvariantNumber(raw: string): number | undefined;
|
|
1675
1675
|
|
|
1676
|
+
/**
|
|
1677
|
+
* Quale campo di un `FlowElementReferenceOrValue` porta davvero il valore — FRONTEND.md §4.2.
|
|
1678
|
+
*
|
|
1679
|
+
* La regola del contratto e' "uno e un solo campo valorizzato", e la §2 dice che cio' che non c'e'
|
|
1680
|
+
* si **omette**. Un backend che serializza tutte le proprieta' — `System.Text.Json` senza
|
|
1681
|
+
* `IgnoreNullValues` lo fa di default — rispetta il contratto nella sostanza e lo viola nella forma:
|
|
1682
|
+
* arriva `{"enumValue": "InIstruttoria", "formulaExpression": null, ...}`, cioe' un solo valore e
|
|
1683
|
+
* sette caselle piene di niente.
|
|
1684
|
+
*
|
|
1685
|
+
* Il campo si sceglieva con `!== undefined`, e un `null` passava: la prima casella letta —
|
|
1686
|
+
* `formulaExpression` — vinceva, l'editor apriva la formula (vuota) e il valore, pur presente nel
|
|
1687
|
+
* documento, spariva dalla vista. Da qui questa funzione sola: **`null` e' assente quanto
|
|
1688
|
+
* `undefined`**, e chi interpreta un valore la usa invece di confrontare con `undefined`.
|
|
1689
|
+
*
|
|
1690
|
+
* Sta in `core/` perche' i chiamanti sono piu' d'uno — l'editor del valore, l'editor delle
|
|
1691
|
+
* condizioni — e la regola non deve divergere fra loro.
|
|
1692
|
+
*/
|
|
1693
|
+
|
|
1694
|
+
/**
|
|
1695
|
+
* I campi che possono portare il valore, **nell'ordine in cui si interpretano**: `formulaExpression`
|
|
1696
|
+
* per primo perche' e' l'unico a due campi, poi il riferimento, poi i letterali. `formulaDataType`
|
|
1697
|
+
* non c'e': accompagna l'espressione, non e' un valore da solo.
|
|
1698
|
+
*/
|
|
1699
|
+
declare const FLOW_VALUE_FIELDS: readonly (keyof FlowValue)[];
|
|
1700
|
+
/** I soli campi letterali: quelli che l'editor mostra sotto la modalita' «Valore». */
|
|
1701
|
+
declare const FLOW_VALUE_LITERAL_FIELDS: readonly (keyof FlowValue)[];
|
|
1702
|
+
/**
|
|
1703
|
+
* `true` se il campo porta un valore. Attenzione ai falsi legittimi: `booleanValue: false`,
|
|
1704
|
+
* `numberValue: 0` e `stringValue: ''` sono valori, quindi il confronto e' con `null`/`undefined`
|
|
1705
|
+
* e non una verifica di verita'.
|
|
1706
|
+
*/
|
|
1707
|
+
declare function isValued(field: unknown): boolean;
|
|
1708
|
+
/** I campi valorizzati, nell'ordine di interpretazione: piu' di uno e' `VALUE_AMBIGUOUS` (§4.2). */
|
|
1709
|
+
declare function valuedFieldsOf(value: FlowValue | undefined | null): (keyof FlowValue)[];
|
|
1710
|
+
/** Il campo che l'editor considera **il** valore, cioe' il primo valorizzato nell'ordine sopra. */
|
|
1711
|
+
declare function valuedFieldOf(value: FlowValue | undefined | null): keyof FlowValue | undefined;
|
|
1712
|
+
|
|
1676
1713
|
/**
|
|
1677
1714
|
* Gli step di uno stage di orchestrazione — FRONTEND.md §5.13.
|
|
1678
1715
|
*
|
|
@@ -2827,22 +2864,15 @@ declare class ReferencePickerComponent {
|
|
|
2827
2864
|
readonly query: _angular_core.WritableSignal<string>;
|
|
2828
2865
|
constructor();
|
|
2829
2866
|
/**
|
|
2830
|
-
* Il riferimento dichiarato piu' **lungo** che sia un prefisso del valore,
|
|
2867
|
+
* Il riferimento dichiarato piu' **lungo** che sia un prefisso del valore, e la tappa da cui
|
|
2868
|
+
* navigare il resto. La regola sta in `core/reference-path` perche' non e' solo del picker: gli
|
|
2869
|
+
* inspector ne ricavano il **tipo** dell'ultimo segmento con la stessa catena, e due copie di
|
|
2870
|
+
* «prefisso piu' lungo» divergerebbero (§4.1, §4.7.1).
|
|
2831
2871
|
*
|
|
2832
|
-
*
|
|
2833
|
-
*
|
|
2834
|
-
* e cercare la corrispondenza esatta di tutto cio' che segue lo scope segnalerebbe come rotto un
|
|
2835
|
-
* percorso giusto (§4.1: vince il prefisso dichiarato piu' lungo).
|
|
2872
|
+
* Fra **tutte** le radici, non fra quelle filtrate: la radice di `Richiesta.Ragione` in un campo
|
|
2873
|
+
* `String` sta solo nell'elenco non filtrato.
|
|
2836
2874
|
*/
|
|
2837
2875
|
private readonly declaredPrefix;
|
|
2838
|
-
/**
|
|
2839
|
-
* La risorsa da cui il valore corrente sta navigando, quando la sua forma e' **dichiarata**: una
|
|
2840
|
-
* `Structure` con la classe, un record con l'entita'. È cio' che rende il percorso verificabile.
|
|
2841
|
-
*
|
|
2842
|
-
* Un output automatico e' escluso di proposito: la primitiva ne dichiara il tipo, ma la
|
|
2843
|
-
* specifica tiene i percorsi che ne partono fuori dalla validazione (§7, ultimo capoverso), e
|
|
2844
|
-
* l'editor non deve accusare cio' che il backend non verifica.
|
|
2845
|
-
*/
|
|
2846
2876
|
private readonly navigableRoot;
|
|
2847
2877
|
/** Il percorso dopo la radice: `Cliente.Email` di `Richiesta.Cliente.Email`. */
|
|
2848
2878
|
private readonly navigatedPath;
|
|
@@ -2905,7 +2935,7 @@ declare class ReferencePickerComponent {
|
|
|
2905
2935
|
* percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
|
|
2906
2936
|
* risponderebbe `GLOBAL_UNKNOWN`.
|
|
2907
2937
|
*/
|
|
2908
|
-
readonly valueState: _angular_core.Signal<"
|
|
2938
|
+
readonly valueState: _angular_core.Signal<"member" | "empty" | "unknown" | "known" | "navigated" | "host" | "containerRoot" | "memberUnknown" | "memberNotWritable" | "pathUnverified" | "globalPathUntyped" | "globalPathInvalid">;
|
|
2909
2939
|
/** Le parole cambiano con la tappa: un campo di un'entita' non e' un membro di una classe. */
|
|
2910
2940
|
private readonly tailIsObject;
|
|
2911
2941
|
private readonly tailContainer;
|
|
@@ -3057,7 +3087,7 @@ declare class NamePickerComponent {
|
|
|
3057
3087
|
* **errori** che bloccano l'attivazione (`ACTION_UNKNOWN`, `FORM_UNKNOWN`), mentre un flow
|
|
3058
3088
|
* senza versione attiva e' un avviso. Mostrarli con lo stesso colore direbbe il falso.
|
|
3059
3089
|
*/
|
|
3060
|
-
readonly unknownSeverity: _angular_core.InputSignal<"
|
|
3090
|
+
readonly unknownSeverity: _angular_core.InputSignal<"warn" | "error">;
|
|
3061
3091
|
/** Cosa dire quando l'elenco e' vuoto: e' il caso "non lo so", non un errore. */
|
|
3062
3092
|
readonly emptyMessage: _angular_core.InputSignal<string>;
|
|
3063
3093
|
/** Testo monospazio: i nomi tecnici si leggono meglio, ed e' come li mostra il resto del form. */
|
|
@@ -3282,6 +3312,7 @@ declare class ValueEditorComponent {
|
|
|
3282
3312
|
|
|
3283
3313
|
declare class ConditionEditorComponent {
|
|
3284
3314
|
private readonly dictionaries;
|
|
3315
|
+
private readonly catalog;
|
|
3285
3316
|
private readonly api;
|
|
3286
3317
|
private readonly store;
|
|
3287
3318
|
/** Il contenitore: porta `conditions`, `conditionLogic` e, se serve, `formula`. */
|
|
@@ -3306,15 +3337,22 @@ declare class ConditionEditorComponent {
|
|
|
3306
3337
|
* fra testo e numero prima che lo dica la validazione (§4.3).
|
|
3307
3338
|
*/
|
|
3308
3339
|
private readonly references;
|
|
3340
|
+
/**
|
|
3341
|
+
* Il tipo dei due lati, risorsa o **percorso**. L'elenco porta le radici e non i percorsi (§6.4):
|
|
3342
|
+
* su `Richiesta.Stato` la corrispondenza esatta non trova niente, e il tipo si ricava navigando la
|
|
3343
|
+
* classe (§4.7.1). È cio' che fa comparire l'elenco dei valori su un membro `Enum` (§4.6) e che
|
|
3344
|
+
* rende visibile un confronto fra tipi incompatibili anche dentro un'istanza (§4.3).
|
|
3345
|
+
*/
|
|
3346
|
+
private readonly types;
|
|
3309
3347
|
constructor();
|
|
3310
|
-
/** Il tipo di un riferimento, `undefined`
|
|
3348
|
+
/** Il tipo di un riferimento, `undefined` dove non si sa: lì non si segnala (§4.3). */
|
|
3311
3349
|
private typeOfReference;
|
|
3312
3350
|
/** Il tipo del lato sinistro: guida il secondo operando. */
|
|
3313
3351
|
leftDataType(condition: FlowCondition): FlowDataType | undefined;
|
|
3314
3352
|
/**
|
|
3315
3353
|
* Il tipo concreto del lato sinistro quando e' un `Enum`: senza di questo il valore di confronto
|
|
3316
|
-
* resterebbe una casella di testo su un insieme chiuso (§4.6).
|
|
3317
|
-
* (`
|
|
3354
|
+
* resterebbe una casella di testo su un insieme chiuso (§4.6). Vale anche su un percorso navigato
|
|
3355
|
+
* (`Richiesta.Stato`, `$Record.Stato`): il tipo del membro o del campo lo ricava {@link types}.
|
|
3318
3356
|
*/
|
|
3319
3357
|
leftObjectType(condition: FlowCondition): string | undefined;
|
|
3320
3358
|
/** Il tipo del lato destro, dedotto dal campo valorizzato o dal riferimento scelto. */
|
|
@@ -3393,13 +3431,22 @@ declare class RecordFilterEditorComponent {
|
|
|
3393
3431
|
* (§5.7, §13.10).
|
|
3394
3432
|
*/
|
|
3395
3433
|
readonly emptyWarning: _angular_core.InputSignal<string | null>;
|
|
3396
|
-
readonly emptyWarningSeverity: _angular_core.InputSignal<"
|
|
3434
|
+
readonly emptyWarningSeverity: _angular_core.InputSignal<"warn" | "error">;
|
|
3397
3435
|
readonly changed: _angular_core.OutputEmitterRef<(holder: FilterHolder) => void>;
|
|
3398
|
-
private readonly fields;
|
|
3399
3436
|
/** Tutti i campi, filtrabili o no: serve solo a riconoscere le chiavi composte (§5.7). */
|
|
3400
3437
|
private readonly allFields;
|
|
3401
3438
|
readonly filters: _angular_core.Signal<FlowRecordFilter[]>;
|
|
3402
3439
|
readonly operators: _angular_core.Signal<_esfaenza_flow_builder.FlowDictionaryEntry[]>;
|
|
3440
|
+
/**
|
|
3441
|
+
* Il tipo del campo filtrato, **compresi i percorsi di relazione**: `Cliente.Citta` non e' nella
|
|
3442
|
+
* lista piatta dei campi dell'entita' e il suo tipo si ricava navigando la catena (§4.4). Senza,
|
|
3443
|
+
* un campo `Enum` raggiunto per relazione tornava una casella di testo su un insieme chiuso (§4.6).
|
|
3444
|
+
*
|
|
3445
|
+
* L'`usage` e' quello del campo — `filterable` fra i filtri — e vale per l'**ultimo** segmento: i
|
|
3446
|
+
* segmenti intermedi li chiede `resolvePath` con `any`, perche' l'uso riguarda il campo confrontato
|
|
3447
|
+
* e non la relazione che porta a lui.
|
|
3448
|
+
*/
|
|
3449
|
+
private readonly types;
|
|
3403
3450
|
constructor();
|
|
3404
3451
|
/**
|
|
3405
3452
|
* §5.7 — l'identificativo esiste ma **non e' filtrabile**: e' il caso di una chiave composta,
|
|
@@ -3423,13 +3470,12 @@ declare class RecordFilterEditorComponent {
|
|
|
3423
3470
|
setFormula(formula: string): void;
|
|
3424
3471
|
/**
|
|
3425
3472
|
* Il tipo del campo, per proporre il controllo giusto sul valore: e' il motivo per cui il
|
|
3426
|
-
* catalogo resta
|
|
3473
|
+
* catalogo resta interrogato qui, e non solo dentro il picker.
|
|
3427
3474
|
*/
|
|
3428
|
-
fieldDataType(filter: FlowRecordFilter):
|
|
3475
|
+
fieldDataType(filter: FlowRecordFilter): FlowDataType | undefined;
|
|
3429
3476
|
/**
|
|
3430
3477
|
* Il tipo concreto del campo: su un campo `Enum` e' cio' che permette di proporre i valori
|
|
3431
|
-
* ammessi invece di farli digitare (§4.6).
|
|
3432
|
-
* e resta `undefined`, come per il tipo.
|
|
3478
|
+
* ammessi invece di farli digitare (§4.6).
|
|
3433
3479
|
*/
|
|
3434
3480
|
fieldObjectType(filter: FlowRecordFilter): string | undefined;
|
|
3435
3481
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RecordFilterEditorComponent, never>;
|
|
@@ -4174,5 +4220,5 @@ declare class SelectValueDirective implements AfterViewChecked {
|
|
|
4174
4220
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueDirective, "select[fbValue]", never, { "fbValue": { "alias": "fbValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4175
4221
|
}
|
|
4176
4222
|
|
|
4177
|
-
export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, EnumValuePickerComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_ELEMENT_ICONS, FLOW_ELEMENT_VARIANT_FIELDS, FLOW_ELEMENT_VARIANT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_RESOURCE_COLLECTIONS, FieldAssignmentEditorComponent, FieldPickerComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, HttpFlowBuilderApi, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourcePanelComponent, SEVERITY_BUCKETS, SEVERITY_ICON, SEVERITY_LABEL, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, StructureMemberPickerComponent, StructurePickerComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, areTypesComparable, canvasNodeId, checkConditionLogic, checkFlowName, describePathEntry, elementIcon, emptyFlowDefinition, filterReferences, flowNodeWidth, flowNodeWidthClass, isCustomConditionLogic, isEmptyReferenceFilter, isGlobalReference, isNumericType, isTypeCheckedOperator, isValidFlowName, loadPathLevel, matchesReferenceFilter, moveCondition, navigatePath, outletByKey, outletsOf, parseCanvasNodeId, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, pathAvailableNames, pathContainerLabel, pathNotVerifiableMessage, referenceRoot, remapConditionLogic, removeCondition, resolvePath, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, uniqueFlowName, variantFieldOf, variantOf, variantPresetOf };
|
|
4223
|
+
export { ConditionEditorComponent, ConnectorEditorComponent, DebugPanelComponent, ElementDialogComponent, ElementInspectorComponent, ElementPaletteComponent, EnumValuePickerComponent, FALLBACK_COLLECTION_BY_TYPE, FALLBACK_TYPE_LABEL, FLOW_BUILDER_HTTP_CONFIG, FLOW_ELEMENT_ICONS, FLOW_ELEMENT_VARIANT_FIELDS, FLOW_ELEMENT_VARIANT_ICONS, FLOW_ERROR_FALLBACK_MESSAGE, FLOW_ERROR_HTTP_STATUS, FLOW_NAME_PATTERN, FLOW_NODE_COLLECTIONS, FLOW_NODE_HEIGHT, FLOW_NODE_WIDTH, FLOW_RESOURCE_COLLECTIONS, FLOW_VALUE_FIELDS, FLOW_VALUE_LITERAL_FIELDS, FieldAssignmentEditorComponent, FieldPickerComponent, FlowApiError, FlowBuilderApi, FlowBuilderComponent, FlowCanvasComponent, FlowCatalogStore, FlowDictionaryStore, FlowDocumentStore, FlowEditorSession, FlowLayoutService, FlowValidationStore, HttpFlowBuilderApi, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourcePanelComponent, SEVERITY_BUCKETS, SEVERITY_ICON, SEVERITY_LABEL, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, StructureMemberPickerComponent, StructurePickerComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, areTypesComparable, canvasNodeId, checkConditionLogic, checkFlowName, describePathEntry, elementIcon, emptyFlowDefinition, filterReferences, flowNodeWidth, flowNodeWidthClass, isCustomConditionLogic, isEmptyReferenceFilter, isGlobalReference, isNumericType, isTypeCheckedOperator, isValidFlowName, isValued, loadPathLevel, matchesReferenceFilter, moveCondition, navigatePath, outletByKey, outletsOf, parseCanvasNodeId, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, pathAvailableNames, pathContainerLabel, pathNotVerifiableMessage, referenceRoot, remapConditionLogic, removeCondition, resolvePath, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, uniqueFlowName, valuedFieldOf, valuedFieldsOf, variantFieldOf, variantOf, variantPresetOf };
|
|
4178
4224
|
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, FlowEnumValue, FlowErrorCategory, FlowExportQuery, FlowFieldDescription, FlowFieldUsage, FlowFieldValue, FlowFormula, FlowGlobalVariableEntry, FlowInputFieldAssignment, FlowInputParameter, FlowInterviewResult, FlowInterviewStatus, FlowIssueSeverity, FlowLayoutDirection, FlowLayoutNodeInput, FlowLayoutOptions, FlowLayoutResult, FlowListQuery, FlowLoop, FlowNameCheck, FlowNameProblem, FlowNewVersionRequest, FlowNodeBase, FlowNodeCollection, FlowNodeRef, FlowObjectDescription, FlowObjectSummary, FlowOffsetUnit, FlowOrchestratedStage, FlowOutlet, FlowOutline, FlowOutlineConnection, FlowOutlineNode, FlowOutputFieldAssignment, FlowOutputParameter, FlowPalettePick, FlowPendingScreen, FlowProcessType, FlowRecordCreate, FlowRecordDelete, FlowRecordFilter, FlowRecordFilterOperator, FlowRecordLookup, FlowRecordRollback, FlowRecordTriggerType, FlowRecordUpdate, FlowRecordValue, FlowReference, FlowReferenceFilter, FlowReferenceKind, FlowResourceCollection, FlowResourceKindEntry, FlowResourceRef, FlowResumeRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenNavigation, FlowScreenResponseRequest, FlowScriptPluginCall, FlowSeverityBucket, FlowSortOption, FlowSortOrder, FlowStage, FlowStageStep, FlowStageStepActionType, FlowStageStepAssignee, FlowStageStepConditionActionType, FlowStageStepRequest, FlowStageStepState, FlowStageStepStatus, FlowStageStepTypeEntry, FlowStart, FlowStartInterviewRequest, FlowStructureDescribed, FlowStructureDescription, FlowStructureInstance, FlowStructureMember, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, 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, StructureMemberUsage, ValueMode };
|