@esfaenza/flow-builder 20.3.45 → 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/index.d.ts CHANGED
@@ -3783,6 +3783,19 @@ declare class FlowLayoutService {
3783
3783
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FlowLayoutService>;
3784
3784
  }
3785
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;
3786
3799
  /** Cosa mostrare quando il salvataggio incontra una versione modificata da altri (§9). */
3787
3800
  interface FlowConflictState {
3788
3801
  message: string;
@@ -3834,11 +3847,50 @@ declare class FlowEditorSession {
3834
3847
  startNew(fullName: string, label: string, processType: string): void;
3835
3848
  /**
3836
3849
  * Carica una versione e conserva il suo `updatedAt` (§11, "Modificare", passo 1).
3837
- * `version` assente → la versione attiva se c'e', altrimenti l'ultima.
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.
3838
3863
  */
3839
3864
  open(flowName: string, version?: number): Promise<void>;
3840
- /** Senza `version` il backend restituisce la versione attiva, altrimenti l'ultima (§6.1). */
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
+ */
3841
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;
3842
3894
  /**
3843
3895
  * Ricarica l'elenco versioni: dopo un'attivazione la precedente e' `Obsolete` (§8.4).
3844
3896
  *
@@ -4781,7 +4833,7 @@ declare class ReferencePickerComponent {
4781
4833
  * percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
4782
4834
  * risponderebbe `GLOBAL_UNKNOWN`.
4783
4835
  */
4784
- readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "member" | "containerRoot" | "memberUnknown" | "memberNotWritable" | "pathUnverified" | "globalPathUntyped" | "globalPathInvalid" | "unknown">;
4836
+ readonly valueState: _angular_core.Signal<"empty" | "unknown" | "member" | "known" | "navigated" | "host" | "containerRoot" | "memberUnknown" | "memberNotWritable" | "pathUnverified" | "globalPathUntyped" | "globalPathInvalid">;
4785
4837
  /** Le parole cambiano con la tappa: un campo di un'entita' non e' un membro di una classe. */
4786
4838
  private readonly tailIsObject;
4787
4839
  private readonly tailContainer;
@@ -5169,7 +5221,7 @@ declare class FormulaEditorComponent {
5169
5221
  * dinamico — e riscriverla a ogni tasto costa. La **verifica** parte comunque durante la
5170
5222
  * digitazione: usa la bozza locale, non cio' che e' arrivato al documento.
5171
5223
  */
5172
- readonly commitOn: _angular_core.InputSignal<"input" | "change">;
5224
+ readonly commitOn: _angular_core.InputSignal<"change" | "input">;
5173
5225
  readonly expressionChange: _angular_core.OutputEmitterRef<string>;
5174
5226
  private readonly area;
5175
5227
  /**
@@ -5757,7 +5809,7 @@ declare class MergeTextEditorComponent {
5757
5809
  readonly disabled: _angular_core.InputSignal<boolean>;
5758
5810
  readonly rows: _angular_core.InputSignal<number>;
5759
5811
  /** Come nel formula editor: `change` dove mutare il documento ridisegna mezza schermata. */
5760
- readonly commitOn: _angular_core.InputSignal<"input" | "change">;
5812
+ readonly commitOn: _angular_core.InputSignal<"change" | "input">;
5761
5813
  readonly textChange: _angular_core.OutputEmitterRef<string>;
5762
5814
  private readonly area;
5763
5815
  /**
@@ -7225,6 +7277,12 @@ declare class VersionPanelComponent {
7225
7277
  /** La versione per cui e' stata chiesta l'eliminazione: conferma in due passi. */
7226
7278
  readonly pendingDelete: _angular_core.WritableSignal<number | null>;
7227
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;
7228
7286
  statusLabel(version: FlowVersionSummary): string;
7229
7287
  open(version: FlowVersionSummary): void;
7230
7288
  activate(version: FlowVersionSummary): Promise<void>;
@@ -7402,7 +7460,7 @@ declare class FlowBuilderComponent {
7402
7460
  * troppo. `panel` tiene il form nel pannello laterale, che e' piu' comodo quando si
7403
7461
  * modificano molti elementi di fila perche' non c'e' niente da aprire e chiudere.
7404
7462
  */
7405
- readonly inspectorMode: _angular_core.InputSignal<"panel" | "dialog">;
7463
+ readonly inspectorMode: _angular_core.InputSignal<"dialog" | "panel">;
7406
7464
  /**
7407
7465
  * L'esito dell'ultima esecuzione, se l'ospite ne ha uno da mostrare.
7408
7466
  *
@@ -7804,5 +7862,5 @@ declare class SelectValueDirective implements AfterViewChecked {
7804
7862
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueDirective, "select[fbValue]", never, { "fbValue": { "alias": "fbValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
7805
7863
  }
7806
7864
 
7807
- 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, repeatedFieldNames, repeatingSectionOf, resolvePath, resourceFieldsOf, rewriteReferences, sameMembers, samePath, screenActionNames, screenFieldNames, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, typeOfCollection, uniqueFlowName, valuedFieldOf, valuedFieldsOf, variantFieldOf, variantOf, variantPresetOf };
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 };
7808
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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/flow-builder",
3
- "version": "20.3.45",
3
+ "version": "20.3.46",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^20.2.14",
6
6
  "@angular/common": "^20.3.28",