@esfaenza/flow-builder 20.3.34 → 20.3.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -3
- package/fesm2022/esfaenza-flow-builder.mjs +887 -113
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +154 -11
- package/package.json +1 -1
- package/styles/flow-builder.css +23 -7
package/index.d.ts
CHANGED
|
@@ -3255,8 +3255,19 @@ declare class FlowDocumentStore {
|
|
|
3255
3255
|
*
|
|
3256
3256
|
* `silent` per il trascinamento: il chiamante registra un solo passo alla fine.
|
|
3257
3257
|
*/
|
|
3258
|
+
/**
|
|
3259
|
+
* `from` e' l'origine da cui misurare lo spostamento, e serve per i riquadri **auto-dimensionati**
|
|
3260
|
+
* (§3.6): lì il rettangolo disegnato e' l'ingombro dei membri, che dopo che qualcuno ha spostato un
|
|
3261
|
+
* membro non coincide piu' con `locationX`/`locationY`. Misurando dal documento, lo spostamento
|
|
3262
|
+
* della cornice portava i membri di un delta che nessuno aveva chiesto. Chi disegna il rettangolo
|
|
3263
|
+
* lo conosce: e' il canvas, e lo passa. Assente, si misura dal documento come prima.
|
|
3264
|
+
*/
|
|
3258
3265
|
moveGroup(name: string, x: number, y: number, options?: {
|
|
3259
3266
|
silent?: boolean;
|
|
3267
|
+
from?: {
|
|
3268
|
+
x: number;
|
|
3269
|
+
y: number;
|
|
3270
|
+
};
|
|
3260
3271
|
}): void;
|
|
3261
3272
|
/**
|
|
3262
3273
|
* Scrive la geometria dichiarata di un riquadro: e' il ridimensionamento a mano.
|
|
@@ -3789,6 +3800,32 @@ declare function parseCanvasNodeId(id: string): string | null;
|
|
|
3789
3800
|
*/
|
|
3790
3801
|
declare function canvasGroupId(groupName: string): string;
|
|
3791
3802
|
declare function parseCanvasGroupId(id: string): string | null;
|
|
3803
|
+
/**
|
|
3804
|
+
* Il **node segnaposto** di un riquadro chiuso (§3.6).
|
|
3805
|
+
*
|
|
3806
|
+
* Terzo prefisso, accanto a `node:` e `group:`, e per la stessa ragione: gli eventi della libreria
|
|
3807
|
+
* portano tutto nello stesso elenco, e un riquadro chiuso non e' ne' un elemento del documento ne'
|
|
3808
|
+
* una cornice — spostarlo sposta i **membri**, cancellarlo cancella il riquadro.
|
|
3809
|
+
*/
|
|
3810
|
+
declare function canvasFoldId(groupName: string): string;
|
|
3811
|
+
declare function parseCanvasFoldId(id: string): string | null;
|
|
3812
|
+
/**
|
|
3813
|
+
* I connettori del segnaposto: uno in ingresso e **uno solo** in uscita.
|
|
3814
|
+
*
|
|
3815
|
+
* Uno solo perche' il segnaposto non ha rami: gli archi che escono dal riquadro appartengono a
|
|
3816
|
+
* elementi diversi che stanno dentro, e disegnarne un connettore per ciascuno rimetterebbe sul
|
|
3817
|
+
* canvas la complessita' che chiudere il riquadro serviva a togliere. L'arco porta nell'etichetta
|
|
3818
|
+
* il nome dell'elemento interno, che e' l'informazione che serve.
|
|
3819
|
+
*
|
|
3820
|
+
* Il nome dietro il prefisso e' quello del **riquadro**, quindi `parseSourceConnectorId` risponde
|
|
3821
|
+
* `fold:<riquadro>`, che non e' il nome di nessun elemento: chi gestisce i gesti degli archi lo
|
|
3822
|
+
* riconosce con {@link isFoldReference} e rifiuta, invece di scrivere un connector su un node che
|
|
3823
|
+
* non esiste.
|
|
3824
|
+
*/
|
|
3825
|
+
declare function foldTargetConnectorId(groupName: string): string;
|
|
3826
|
+
declare function foldSourceConnectorId(groupName: string): string;
|
|
3827
|
+
/** `true` se il nome estratto da un connettore e' un segnaposto e non un elemento del documento. */
|
|
3828
|
+
declare function isFoldReference(name: string | undefined | null): boolean;
|
|
3792
3829
|
interface FlowCanvasNode {
|
|
3793
3830
|
/** Nome nel documento; `$start` per lo Start, che nel modello non ha nome. */
|
|
3794
3831
|
name: string;
|
|
@@ -3845,6 +3882,12 @@ interface FlowCanvasEdge {
|
|
|
3845
3882
|
kind: string;
|
|
3846
3883
|
label?: string | null;
|
|
3847
3884
|
isGoTo: boolean;
|
|
3885
|
+
/**
|
|
3886
|
+
* Un capo dell'arco e' il segnaposto di un riquadro chiuso, non l'elemento vero. Serve a due
|
|
3887
|
+
* cose: non offrirlo come bersaglio dell'innesto (innestare su un arco di cui non si vede un
|
|
3888
|
+
* capo non e' una scelta, e' una sorpresa) e disegnarlo un po' piu' tenue.
|
|
3889
|
+
*/
|
|
3890
|
+
isFolded?: boolean;
|
|
3848
3891
|
}
|
|
3849
3892
|
/**
|
|
3850
3893
|
* Un riquadro di raggruppamento come lo disegna il canvas (§3.6).
|
|
@@ -3880,6 +3923,34 @@ interface FlowCanvasGroup {
|
|
|
3880
3923
|
/** La geometria e' calcolata sui membri: ridimensionarlo la dichiara (§3.6). */
|
|
3881
3924
|
isAutoSized: boolean;
|
|
3882
3925
|
}
|
|
3926
|
+
/**
|
|
3927
|
+
* Un riquadro **chiuso**, disegnato come un node segnaposto invece che come una cornice (§3.6).
|
|
3928
|
+
*
|
|
3929
|
+
* Chiuso e aperto sono due disegni alternativi dello stesso riquadro, non due stati dello stesso
|
|
3930
|
+
* disegno: aperto e' una cornice sotto i node, chiuso e' una pastiglia **al posto** dei node. Per
|
|
3931
|
+
* questo `groups()` non contiene i chiusi e `folds()` non contiene gli aperti — disegnarli
|
|
3932
|
+
* entrambi metterebbe due titoli nello stesso punto.
|
|
3933
|
+
*/
|
|
3934
|
+
interface FlowCanvasFold {
|
|
3935
|
+
/** Il nome del riquadro: la pastiglia non e' un elemento e non ne ha uno proprio. */
|
|
3936
|
+
name: string;
|
|
3937
|
+
/** Id per il canvas, vedi {@link canvasFoldId}. */
|
|
3938
|
+
id: string;
|
|
3939
|
+
label: string;
|
|
3940
|
+
description?: string | null;
|
|
3941
|
+
position: {
|
|
3942
|
+
x: number;
|
|
3943
|
+
y: number;
|
|
3944
|
+
};
|
|
3945
|
+
colorClass: string;
|
|
3946
|
+
/** Quanti membri esistono davvero, cioe' quanti elementi la pastiglia sta nascondendo. */
|
|
3947
|
+
memberCount: number;
|
|
3948
|
+
/** I rilievi degli elementi nascosti, sommati: chiudere un riquadro non deve nascondere un errore. */
|
|
3949
|
+
issueCount: number;
|
|
3950
|
+
severity: FlowSeverityBucket | null;
|
|
3951
|
+
/** Membri che nominano un elemento che non c'e' piu' (§3.6, regola 3): avviso, non difetto. */
|
|
3952
|
+
unknownMembers: string[];
|
|
3953
|
+
}
|
|
3883
3954
|
|
|
3884
3955
|
/**
|
|
3885
3956
|
* Dimensioni nominali di un node, usate dal layout automatico.
|
|
@@ -3890,6 +3961,14 @@ interface FlowCanvasGroup {
|
|
|
3890
3961
|
*/
|
|
3891
3962
|
declare const FLOW_NODE_WIDTH = 240;
|
|
3892
3963
|
declare const FLOW_NODE_HEIGHT = 116;
|
|
3964
|
+
/**
|
|
3965
|
+
* L'ingombro della pastiglia di un riquadro chiuso (§3.6). Gli stessi valori stanno nel CSS
|
|
3966
|
+
* (`.fb-fold`): la misura serve **due volte** — a disegnarla e a stimarla per l'inquadratura — e la
|
|
3967
|
+
* larghezza non puo' essere uno stile inline, perche' @foblex/flow riscrive l'attributo `style` del
|
|
3968
|
+
* node a ogni riposizionamento.
|
|
3969
|
+
*/
|
|
3970
|
+
declare const FLOW_FOLD_WIDTH = 260;
|
|
3971
|
+
declare const FLOW_FOLD_HEIGHT = 64;
|
|
3893
3972
|
declare function flowNodeWidth(outletCount: number): number;
|
|
3894
3973
|
/** La classe che porta quella larghezza: unico modo di sopravvivere ai riposizionamenti. */
|
|
3895
3974
|
declare function flowNodeWidthClass(outletCount: number): string;
|
|
@@ -3991,6 +4070,11 @@ declare class FlowCanvasComponent {
|
|
|
3991
4070
|
* Con un solo node (un flow appena creato ha solo lo Start) non si inquadra niente: la
|
|
3992
4071
|
* vista si spalancherebbe su una card sola.
|
|
3993
4072
|
*/
|
|
4073
|
+
/**
|
|
4074
|
+
* L'elemento su cui andare appena i node sono stati disegnati: lo scrive `bringIntoView` quando
|
|
4075
|
+
* per mostrarlo ha dovuto aprire un riquadro chiuso.
|
|
4076
|
+
*/
|
|
4077
|
+
private pendingFocus;
|
|
3994
4078
|
onNodesRendered(): void;
|
|
3995
4079
|
/**
|
|
3996
4080
|
* Porta la vista **su** un elemento: e' l'arrivo della ricerca e del clic su un problema.
|
|
@@ -4063,8 +4147,25 @@ declare class FlowCanvasComponent {
|
|
|
4063
4147
|
private readonly reachability;
|
|
4064
4148
|
readonly nodes: _angular_core.Signal<FlowCanvasNode[]>;
|
|
4065
4149
|
private toCanvasNode;
|
|
4066
|
-
/**
|
|
4150
|
+
/**
|
|
4151
|
+
* Gli archi con destinazione: solo questi diventano `<f-connection>`.
|
|
4152
|
+
*
|
|
4153
|
+
* Un riquadro **chiuso** (§3.6) cambia tre cose, e sono la ragione per cui questo non e' piu' una
|
|
4154
|
+
* `map` sulle uscite del documento. Un arco fra due membri dello stesso riquadro chiuso **non si
|
|
4155
|
+
* disegna**: entrambi i capi sono nascosti, e un arco fra due punti che non ci sono e' un arco che
|
|
4156
|
+
* parte dall'angolo del canvas. Un arco che attraversa il confine si riattacca al **segnaposto**,
|
|
4157
|
+
* che e' l'unico modo di nascondere un node senza rompere l'arco: un connettore con `display:
|
|
4158
|
+
* none` ha geometria 0×0 (regola 4 di @foblex/flow), quindi il node si nasconde solo se l'arco
|
|
4159
|
+
* trova un connettore vero altrove. E due archi che, riattaccati, avrebbero gli stessi capi
|
|
4160
|
+
* diventano **uno**: sarebbero due tratti sovrapposti, indistinguibili e cliccabili a caso.
|
|
4161
|
+
*/
|
|
4067
4162
|
readonly edges: _angular_core.Signal<FlowCanvasEdge[]>;
|
|
4163
|
+
/**
|
|
4164
|
+
* L'etichetta di un arco. Sugli archi normali e' quella del ramo; su un arco riattaccato a un
|
|
4165
|
+
* segnaposto e' il **nome dell'elemento nascosto**, perche' quella e' l'unica informazione che
|
|
4166
|
+
* chiudere il riquadro ha portato via: «da dove esce» e «dove entra» non si leggono piu' dai capi.
|
|
4167
|
+
*/
|
|
4168
|
+
private edgeLabel;
|
|
4068
4169
|
/**
|
|
4069
4170
|
* Gli ingombri dei node, per l'appartenenza ai riquadri. Lo Start non c'e': `members` porta i
|
|
4070
4171
|
* `name` dei node (§3.6) e lo Start nel modello non ha nome.
|
|
@@ -4078,6 +4179,27 @@ declare class FlowCanvasComponent {
|
|
|
4078
4179
|
* client non puo' sapere meglio del backend; la geometria la conosciamo noi.
|
|
4079
4180
|
*/
|
|
4080
4181
|
readonly groups: _angular_core.Signal<FlowCanvasGroup[]>;
|
|
4182
|
+
/**
|
|
4183
|
+
* Chi nasconde chi: nome del membro → nome del riquadro chiuso che lo copre.
|
|
4184
|
+
*
|
|
4185
|
+
* Un elemento in **due** riquadri chiusi finisce nel primo in ordine di documento: sarebbe
|
|
4186
|
+
* disegnato due volte, e due pastiglie che si prendono lo stesso arco fanno sparire un arco senza
|
|
4187
|
+
* dire niente. La sovrapposizione e' legittima (i riquadri sono commenti, §3.6), quindi la regola
|
|
4188
|
+
* deve essere deterministica, non impedita.
|
|
4189
|
+
*/
|
|
4190
|
+
private readonly foldedByMember;
|
|
4191
|
+
/**
|
|
4192
|
+
* I riquadri chiusi, disegnati come node segnaposto.
|
|
4193
|
+
*
|
|
4194
|
+
* La pastiglia sta nell'angolo in alto a sinistra del rettangolo che la cornice occupava: e' il
|
|
4195
|
+
* punto da cui il riquadro si e' chiuso, quindi riaprendolo il contenuto ricompare dove era. Il
|
|
4196
|
+
* rettangolo lo da' `groupRect`, non `width`/`height` del documento: a 0 significano «calcolala
|
|
4197
|
+
* sui membri» (§3.6), e i membri esistono anche mentre sono nascosti.
|
|
4198
|
+
*/
|
|
4199
|
+
readonly folds: _angular_core.Signal<FlowCanvasFold[]>;
|
|
4200
|
+
isFoldSelected(fold: FlowCanvasFold): boolean;
|
|
4201
|
+
/** L'angolo da cui il riquadro e' stato disegnato, aperto o chiuso: e' l'origine dello spostamento. */
|
|
4202
|
+
private drawnOrigin;
|
|
4081
4203
|
/**
|
|
4082
4204
|
* Ricalcola l'appartenenza dai rettangoli: e' il gesto «trascino un node dentro o fuori dal
|
|
4083
4205
|
* riquadro» della §3.6, regola 2 — la geometria non **e'** l'appartenenza, la **calcola**, e
|
|
@@ -4092,7 +4214,12 @@ declare class FlowCanvasComponent {
|
|
|
4092
4214
|
* un annulla che riporta indietro l'appartenenza ma non la posizione sarebbe incomprensibile.
|
|
4093
4215
|
*/
|
|
4094
4216
|
private syncGroupMembers;
|
|
4095
|
-
/** Apre
|
|
4217
|
+
/** Apre un riquadro chiuso. Passo di storico normale, come la chiusura a mano: e' la stessa modifica. */
|
|
4218
|
+
private openGroup;
|
|
4219
|
+
/**
|
|
4220
|
+
* Apre e chiude il riquadro. Non tocca i membri: chiuso e aperto sono due **disegni** dello
|
|
4221
|
+
* stesso riquadro (§3.6) — chiuso, i membri non si disegnano e al loro posto c'e' la pastiglia.
|
|
4222
|
+
*/
|
|
4096
4223
|
toggleGroupCollapsed(event: Event, name: string): void;
|
|
4097
4224
|
onGroupClick(event: Event, name: string): void;
|
|
4098
4225
|
onGroupRemoveClick(event: Event, name: string): void;
|
|
@@ -4123,7 +4250,14 @@ declare class FlowCanvasComponent {
|
|
|
4123
4250
|
*/
|
|
4124
4251
|
private readonly _insertionEdgeId;
|
|
4125
4252
|
readonly insertionEdgeId: _angular_core.Signal<string | null>;
|
|
4126
|
-
/**
|
|
4253
|
+
/**
|
|
4254
|
+
* Gli id degli archi su cui si puo' innestare: il hit test accetta solo questi.
|
|
4255
|
+
*
|
|
4256
|
+
* Gli archi di un riquadro chiuso restano fuori di proposito. Innestare vuol dire mettersi **in
|
|
4257
|
+
* mezzo** a due elementi, e di quell'arco uno dei due non si vede: il flow si ricollegherebbe
|
|
4258
|
+
* attorno a un elemento che non e' sullo schermo, che non e' una scelta ma una sorpresa. Per
|
|
4259
|
+
* innestare lì si apre il riquadro.
|
|
4260
|
+
*/
|
|
4127
4261
|
private readonly edgeIds;
|
|
4128
4262
|
/** L'ascoltatore attivo solo durante un trascinamento dalla palette. */
|
|
4129
4263
|
private pointerListener;
|
|
@@ -4232,6 +4366,9 @@ declare class FlowCanvasComponent {
|
|
|
4232
4366
|
onDuplicateClick(event: Event, name: string): void;
|
|
4233
4367
|
connectorIdOf(node: FlowCanvasNode, outletKey: string): string;
|
|
4234
4368
|
targetIdOf(node: FlowCanvasNode): string;
|
|
4369
|
+
/** I connettori della pastiglia di un riquadro chiuso: gli id li costruisce il modello, non il template. */
|
|
4370
|
+
foldTargetIdOf(fold: FlowCanvasFold): string;
|
|
4371
|
+
foldSourceIdOf(fold: FlowCanvasFold): string;
|
|
4235
4372
|
/**
|
|
4236
4373
|
* Selezionato = corrente **oppure** parte del blocco selezionato. Senza il secondo caso, un
|
|
4237
4374
|
* rettangolo che prende cinque elementi ne evidenziava uno, e i comandi che agiscono su tutti
|
|
@@ -4848,7 +4985,7 @@ declare class FormulaEditorComponent {
|
|
|
4848
4985
|
* dinamico — e riscriverla a ogni tasto costa. La **verifica** parte comunque durante la
|
|
4849
4986
|
* digitazione: usa la bozza locale, non cio' che e' arrivato al documento.
|
|
4850
4987
|
*/
|
|
4851
|
-
readonly commitOn: _angular_core.InputSignal<"
|
|
4988
|
+
readonly commitOn: _angular_core.InputSignal<"input" | "change">;
|
|
4852
4989
|
readonly expressionChange: _angular_core.OutputEmitterRef<string>;
|
|
4853
4990
|
private readonly area;
|
|
4854
4991
|
/**
|
|
@@ -5015,7 +5152,12 @@ declare class ValueEditorComponent {
|
|
|
5015
5152
|
readonly isStructureTarget: _angular_core.Signal<boolean>;
|
|
5016
5153
|
readonly literalInputType: _angular_core.Signal<string>;
|
|
5017
5154
|
readonly literalText: _angular_core.Signal<string>;
|
|
5018
|
-
|
|
5155
|
+
/**
|
|
5156
|
+
* Il valore booleano come testo per il `<select>` a tre stati: `''` = nessun valore, altrimenti
|
|
5157
|
+
* `'true'` / `'false'`. `isValued` e non `=== true`: `booleanValue: false` **e'** un valore, e
|
|
5158
|
+
* confonderlo con l'assenza e' esattamente il difetto che il tri-stato risolve.
|
|
5159
|
+
*/
|
|
5160
|
+
readonly booleanText: _angular_core.Signal<string>;
|
|
5019
5161
|
/** Il fuso dichiarato nel valore data: `Z`, un offset, oppure niente = ora locale (§4.2). */
|
|
5020
5162
|
readonly dateIsUtc: _angular_core.Signal<boolean>;
|
|
5021
5163
|
private static readonly ZONE_PATTERN;
|
|
@@ -5037,7 +5179,8 @@ declare class ValueEditorComponent {
|
|
|
5037
5179
|
* scrivere una stringa vuota: un `enumValue: ''` sarebbe un campo valorizzato con niente.
|
|
5038
5180
|
*/
|
|
5039
5181
|
onEnumChange(name: string | undefined): void;
|
|
5040
|
-
|
|
5182
|
+
/** `''` toglie il campo: «non impostato» e' l'assenza, non un terzo valore da scrivere (§2). */
|
|
5183
|
+
onBooleanTextChange(raw: string): void;
|
|
5041
5184
|
private withDateZone;
|
|
5042
5185
|
/**
|
|
5043
5186
|
* Cambia il fuso **dichiarato**, non l'istante: `09:00Z` e `09:00` sono le nove in due fusi
|
|
@@ -5109,7 +5252,7 @@ declare class ConditionEditorComponent {
|
|
|
5109
5252
|
*/
|
|
5110
5253
|
hasTypeMismatch(condition: FlowCondition): boolean;
|
|
5111
5254
|
typeMismatchMessage(condition: FlowCondition): string;
|
|
5112
|
-
readonly logicMode: _angular_core.Signal<"
|
|
5255
|
+
readonly logicMode: _angular_core.Signal<"formula" | "and" | "or" | "custom">;
|
|
5113
5256
|
readonly customLogic: _angular_core.Signal<string>;
|
|
5114
5257
|
/** Feedback immediato sull'espressione: la verita' resta della validazione backend. */
|
|
5115
5258
|
readonly customLogicError: _angular_core.Signal<string | null>;
|
|
@@ -5214,7 +5357,7 @@ declare class RecordFilterEditorComponent {
|
|
|
5214
5357
|
* evita la ricerca di un campo che nell'elenco non c'e' e non ci sara'.
|
|
5215
5358
|
*/
|
|
5216
5359
|
readonly identifierNotFilterable: _angular_core.Signal<boolean>;
|
|
5217
|
-
readonly logicMode: _angular_core.Signal<"
|
|
5360
|
+
readonly logicMode: _angular_core.Signal<"formula" | "and" | "or" | "custom">;
|
|
5218
5361
|
readonly customLogic: _angular_core.Signal<string>;
|
|
5219
5362
|
readonly showEmptyWarning: _angular_core.Signal<boolean>;
|
|
5220
5363
|
addFilter(): void;
|
|
@@ -5746,7 +5889,7 @@ declare class DynamicScreenInspectorComponent extends NodeInspectorBase {
|
|
|
5746
5889
|
* opzioni arrivano dallo schema (§5.2). Metterli insieme costringerebbe a scegliere prima
|
|
5747
5890
|
* `ObjectProvided` e poi il campo, che e' il contrario dell'ordine in cui si pensa.
|
|
5748
5891
|
*/
|
|
5749
|
-
readonly paletteTab: _angular_core.WritableSignal<"
|
|
5892
|
+
readonly paletteTab: _angular_core.WritableSignal<"components" | "fields">;
|
|
5750
5893
|
/** L'entita' di cui elencare i campi nella seconda scheda. */
|
|
5751
5894
|
readonly fieldsObject: _angular_core.WritableSignal<string | undefined>;
|
|
5752
5895
|
private readonly objectFields;
|
|
@@ -6876,5 +7019,5 @@ declare class SelectValueDirective implements AfterViewChecked {
|
|
|
6876
7019
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SelectValueDirective, "select[fbValue]", never, { "fbValue": { "alias": "fbValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6877
7020
|
}
|
|
6878
7021
|
|
|
6879
|
-
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_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, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, PasteDialogComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, 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, canvasGroupId, canvasNodeId, checkConditionLogic, checkFlowName, choiceSetSourceOf, declaredChoiceSetSources, describeFieldPath, describePathEntry, duplicateField, elementIcon, emptyFlowDefinition, enumChoiceSetFieldType, fieldAt, filterReferences, flattenFields, flowNodeWidth, flowNodeWidthClass, groupColorClass, groupRect, hasAutoSize, innerNamesOf, insertField, isClipboardPayload, isCustomConditionLogic, isEmptyReferenceFilter, isFieldResource, isGlobalReference, isNumericType, isPathInside, isTypeCheckedOperator, isUnknownEnumChoiceSetField, isValidFlowName, isValued, loadPathLevel, matchesReferenceFilter, membersInside, moveCondition, moveField, navigatePath, otherSourceFieldsOf, outletByKey, outletsOf, parseCanvasGroupId, parseCanvasNodeId, parseFieldPath, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, pathAvailableNames, pathContainerLabel, pathKey, pathNotVerifiableMessage, planPaste, recomputeMembers, referenceRoot, referencedRootsOf, remapConditionLogic, removeCondition, removeField, resolvePath, rewriteReferences, sameMembers, samePath, screenActionNames, screenFieldNames, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, typeOfCollection, uniqueFlowName, valuedFieldOf, valuedFieldsOf, variantFieldOf, variantOf, variantPresetOf };
|
|
6880
|
-
export type { ChoiceSetSource, FieldAssignmentHolder, FilterFieldOption, FilterHolder, FlowActionCall, FlowAnyNode, FlowAssignment, FlowAssignmentItem, FlowAssignmentOperator, FlowAssignmentOperatorEntry, FlowBuilderHttpConfig, FlowCanvasEdge, 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, FlowResourceKindEntry, FlowResourceRef, FlowResourceTarget, FlowResumeRequest, FlowRunOutcome, FlowRunRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenAction, FlowScreenField, FlowScreenFieldInputsRevisited, FlowScreenFieldNode, FlowScreenFieldPath, FlowScreenFieldType, FlowScreenFieldTypeEntry, FlowScreenNavigation, FlowScreenResponseRequest, FlowScreenTrigger, FlowScreenTriggerInitBehavior, FlowScreenValidationRule, FlowScriptPluginCall, FlowSeverityBucket, FlowSortOption, FlowSortOrder, FlowStage, FlowStageStep, FlowStageStepActionType, FlowStageStepAssignee, FlowStageStepConditionActionType, FlowStageStepRequest, FlowStageStepState, FlowStageStepStatus, FlowStageStepTypeEntry, FlowStart, FlowStartInterviewRequest, FlowStructureDescribed, FlowStructureDescription, FlowStructureInstance, FlowStructureMember, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, FlowTypedEntry, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, NamePickerOption, PaletteGroup, PaletteItem, ParameterHolder, PathCatalog, PathContainer, PathContainerKind, PathEntry, PathLevel, PathLevelStatus, PathNavigation, PathNavigationRequest, PathResolution, PathStopReason, PathValueSet, StructureMemberUsage, ValueMode };
|
|
7022
|
+
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, NamePickerComponent, NodeInspectorBase, ORCHESTRATION_CONDITION_OUTPUT, ObjectPickerComponent, OrchestratedStageInspectorComponent, ParameterEditorComponent, PasteDialogComponent, ProblemsPanelComponent, RecordFilterEditorComponent, ReferencePickerComponent, ResourcePanelComponent, RunDialogComponent, SEVERITY_BUCKETS, SEVERITY_ICON, SEVERITY_LABEL, START_NODE_NAME, SelectValueDirective, StartInspectorComponent, StructureMemberPickerComponent, StructurePickerComponent, TYPES_WITH_AUTOMATIC_OUTPUT, TYPE_BY_COLLECTION, UNSUPPORTED_TYPES, ValueEditorComponent, VersionPanelComponent, allFieldsOf, applyPaste, areTypesComparable, boundsAround, buildClipboardPayload, canvasFoldId, canvasGroupId, canvasNodeId, checkConditionLogic, checkFlowName, choiceSetSourceOf, declaredChoiceSetSources, describeFieldPath, describePathEntry, duplicateField, elementIcon, emptyFlowDefinition, enumChoiceSetFieldType, fieldAt, filterReferences, flattenFields, flowNodeWidth, flowNodeWidthClass, foldSourceConnectorId, foldTargetConnectorId, groupColorClass, groupRect, hasAutoSize, innerNamesOf, insertField, isClipboardPayload, isCustomConditionLogic, isEmptyReferenceFilter, isFieldResource, isFoldReference, isGlobalReference, isNumericType, isPathInside, isTypeCheckedOperator, isUnknownEnumChoiceSetField, isValidFlowName, isValued, loadPathLevel, matchesReferenceFilter, membersInside, moveCondition, moveField, navigatePath, otherSourceFieldsOf, outletByKey, outletsOf, parseCanvasFoldId, parseCanvasGroupId, parseCanvasNodeId, parseFieldPath, parseInvariantNumber, parseSourceConnectorId, parseTargetConnectorId, pathAvailableNames, pathContainerLabel, pathKey, pathNotVerifiableMessage, planPaste, recomputeMembers, referenceRoot, referencedRootsOf, remapConditionLogic, removeCondition, removeField, resolvePath, rewriteReferences, sameMembers, samePath, screenActionNames, screenFieldNames, severityBucket, slugifyFlowName, sourceConnectorId, stageStepNames, stageStepOutputReferenced, stepsOf, targetConnectorId, typeOfCollection, uniqueFlowName, valuedFieldOf, valuedFieldsOf, variantFieldOf, variantOf, variantPresetOf };
|
|
7023
|
+
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, FlowResourceKindEntry, FlowResourceRef, FlowResourceTarget, FlowResumeRequest, FlowRunOutcome, FlowRunRequest, FlowSaveRequest, FlowSaveResult, FlowSchedule, FlowScheduledPath, FlowScreen, FlowScreenAction, FlowScreenField, FlowScreenFieldInputsRevisited, FlowScreenFieldNode, FlowScreenFieldPath, FlowScreenFieldType, FlowScreenFieldTypeEntry, FlowScreenNavigation, FlowScreenResponseRequest, FlowScreenTrigger, FlowScreenTriggerInitBehavior, FlowScreenValidationRule, FlowScriptPluginCall, FlowSeverityBucket, FlowSortOption, FlowSortOrder, FlowStage, FlowStageStep, FlowStageStepActionType, FlowStageStepAssignee, FlowStageStepConditionActionType, FlowStageStepRequest, FlowStageStepState, FlowStageStepStatus, FlowStageStepTypeEntry, FlowStart, FlowStartInterviewRequest, FlowStructureDescribed, FlowStructureDescription, FlowStructureInstance, FlowStructureMember, FlowSubflow, FlowSubflowInputAssignment, FlowSubflowOutputAssignment, FlowSummary, FlowTextTemplate, FlowTraceEntry, FlowTransactionModel, FlowTransform, FlowTransformType, FlowTransformValue, FlowTransformValueAction, FlowTriggerType, FlowTypedEntry, FlowTypedValue, FlowUnsupportedNode, FlowValidationIssue, FlowValidationResult, FlowValue, FlowVariable, FlowVersionStatus, FlowVersionSummary, FlowWait, FlowWaitEvent, NamePickerOption, PaletteGroup, PaletteItem, ParameterHolder, PathCatalog, PathContainer, PathContainerKind, PathEntry, PathLevel, PathLevelStatus, PathNavigation, PathNavigationRequest, PathResolution, PathStopReason, PathValueSet, StructureMemberUsage, ValueMode };
|
package/package.json
CHANGED
package/styles/flow-builder.css
CHANGED
|
@@ -156,6 +156,15 @@
|
|
|
156
156
|
--ff-marker-color: var(--fb-edge-loop, #3f8f5f);
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
+
/*
|
|
160
|
+
* Un arco con un capo su un riquadro **chiuso** (§3.6): l'elemento vero non e' sullo schermo, e il
|
|
161
|
+
* tratto piu' tenue lo dice. Sta qui e non nel CSS del canvas per la ragione di sempre — i path SVG
|
|
162
|
+
* sono creati a runtime e non portano l'attributo di scope.
|
|
163
|
+
*/
|
|
164
|
+
.fb-edge--folded {
|
|
165
|
+
opacity: 0.75;
|
|
166
|
+
}
|
|
167
|
+
|
|
159
168
|
.fb-edge--creating {
|
|
160
169
|
--ff-connection-color: var(--fb-accent, #2f6feb);
|
|
161
170
|
}
|
|
@@ -424,7 +433,8 @@ f-flow .fb-edge--goto .f-connection-path {
|
|
|
424
433
|
/**
|
|
425
434
|
* Il controllo segmentato: una scelta **esclusiva** fra poche voci, mostrata come un gruppo con una
|
|
426
435
|
* cornice sola invece che come bottoni sciolti. Lo usano le modalita' di un valore (§4.2: un solo
|
|
427
|
-
* campo valorizzato), la logica di condizioni e filtri
|
|
436
|
+
* campo valorizzato), la logica di condizioni e filtri, l'esito atteso di un operatore unario e
|
|
437
|
+
* l'operazione di una riga di Transform (§5.13) —
|
|
428
438
|
* cioe' controlli che nello stesso pannello si guardano, e che quindi devono essere uguali.
|
|
429
439
|
*
|
|
430
440
|
* Sta qui e non nei tre componenti perche' era già duplicato tre volte e i tre stili avevano
|
|
@@ -439,7 +449,8 @@ f-flow .fb-edge--goto .f-connection-path {
|
|
|
439
449
|
.fb-value__modes,
|
|
440
450
|
.fb-filter__modes,
|
|
441
451
|
.fb-cond__modes,
|
|
442
|
-
.fb-cond__unary
|
|
452
|
+
.fb-cond__unary,
|
|
453
|
+
.fb-tr__modes {
|
|
443
454
|
display: flex;
|
|
444
455
|
flex-wrap: wrap;
|
|
445
456
|
gap: 2px;
|
|
@@ -453,7 +464,8 @@ f-flow .fb-edge--goto .f-connection-path {
|
|
|
453
464
|
|
|
454
465
|
.fb-value__mode,
|
|
455
466
|
.fb-filter__mode,
|
|
456
|
-
.fb-cond__mode
|
|
467
|
+
.fb-cond__mode,
|
|
468
|
+
.fb-tr__mode {
|
|
457
469
|
padding: 3px 10px;
|
|
458
470
|
border: 0;
|
|
459
471
|
border-radius: var(--fb-radius-xs, 6px);
|
|
@@ -470,7 +482,8 @@ f-flow .fb-edge--goto .f-connection-path {
|
|
|
470
482
|
|
|
471
483
|
.fb-value__mode:hover:not(:disabled),
|
|
472
484
|
.fb-filter__mode:hover:not(:disabled),
|
|
473
|
-
.fb-cond__mode:hover:not(:disabled)
|
|
485
|
+
.fb-cond__mode:hover:not(:disabled),
|
|
486
|
+
.fb-tr__mode:hover:not(:disabled) {
|
|
474
487
|
/* Sulla superficie affossata del gruppo un grigio piu' scuro non si vedrebbe: si schiarisce. */
|
|
475
488
|
background: color-mix(in srgb, var(--fb-surface, #fff) 65%, transparent);
|
|
476
489
|
color: var(--fb-text, #1a1c23);
|
|
@@ -478,7 +491,8 @@ f-flow .fb-edge--goto .f-connection-path {
|
|
|
478
491
|
|
|
479
492
|
.fb-value__mode:focus-visible,
|
|
480
493
|
.fb-filter__mode:focus-visible,
|
|
481
|
-
.fb-cond__mode:focus-visible
|
|
494
|
+
.fb-cond__mode:focus-visible,
|
|
495
|
+
.fb-tr__mode:focus-visible {
|
|
482
496
|
outline: 2px solid var(--fb-accent, #4f6ef7);
|
|
483
497
|
outline-offset: 1px;
|
|
484
498
|
}
|
|
@@ -486,7 +500,8 @@ f-flow .fb-edge--goto .f-connection-path {
|
|
|
486
500
|
/* La voce scelta sale sulla superficie: e' la differenza che si legge anche senza il colore. */
|
|
487
501
|
.fb-value__mode--active,
|
|
488
502
|
.fb-filter__mode--active,
|
|
489
|
-
.fb-cond__mode--active
|
|
503
|
+
.fb-cond__mode--active,
|
|
504
|
+
.fb-tr__mode--active {
|
|
490
505
|
background: var(--fb-surface, #fff);
|
|
491
506
|
color: var(--fb-accent, #4f6ef7);
|
|
492
507
|
font-weight: 600;
|
|
@@ -495,7 +510,8 @@ f-flow .fb-edge--goto .f-connection-path {
|
|
|
495
510
|
|
|
496
511
|
.fb-value__mode:disabled,
|
|
497
512
|
.fb-filter__mode:disabled,
|
|
498
|
-
.fb-cond__mode:disabled
|
|
513
|
+
.fb-cond__mode:disabled,
|
|
514
|
+
.fb-tr__mode:disabled {
|
|
499
515
|
opacity: 0.5;
|
|
500
516
|
cursor: not-allowed;
|
|
501
517
|
}
|