@esfaenza/flow-builder 20.3.55 → 20.3.57
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 +16 -4
- package/fesm2022/esfaenza-flow-builder.mjs +369 -207
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +70 -10
- package/package.json +3 -3
package/index.d.ts
CHANGED
|
@@ -1349,6 +1349,10 @@ interface FlowSummary {
|
|
|
1349
1349
|
activeVersion?: number | null;
|
|
1350
1350
|
latestVersion?: number;
|
|
1351
1351
|
versionCount?: number;
|
|
1352
|
+
/**
|
|
1353
|
+
* Esiste una **bozza** (§6.1). Conta le sole bozze: una versione superata e' modificabile ma non
|
|
1354
|
+
* e' una bozza finche' nessuno la salva, quindi non e' `isEditable` di una riga qualunque.
|
|
1355
|
+
*/
|
|
1352
1356
|
hasDraft?: boolean;
|
|
1353
1357
|
updatedAt?: string;
|
|
1354
1358
|
/** Esiste una versione attiva. Non ricalcolarlo lato client (§6.1). */
|
|
@@ -1368,7 +1372,10 @@ interface FlowVersionSummary {
|
|
|
1368
1372
|
updatedAt?: string;
|
|
1369
1373
|
updatedBy?: string | null;
|
|
1370
1374
|
isActive?: boolean;
|
|
1371
|
-
/**
|
|
1375
|
+
/**
|
|
1376
|
+
* La versione **non e' quella attiva**: una bozza o una superata (§6.1, §8). Non ricalcolarlo lato
|
|
1377
|
+
* client, e non leggerlo come «e' una bozza» — per quello c'e' `status`.
|
|
1378
|
+
*/
|
|
1372
1379
|
isEditable?: boolean;
|
|
1373
1380
|
}
|
|
1374
1381
|
interface FlowListQuery {
|
|
@@ -1886,7 +1893,9 @@ declare abstract class FlowBuilderApi {
|
|
|
1886
1893
|
/** `POST /flows` — crea la versione 1. `AlreadyExists` se il nome e' già usato. */
|
|
1887
1894
|
abstract createFlow(request: FlowCreateRequest): Promise<FlowSaveResult>;
|
|
1888
1895
|
/**
|
|
1889
|
-
* `PUT /flows/{name}` — salva sulla bozza
|
|
1896
|
+
* `PUT /flows/{name}` — salva sulla versione indicata, una bozza o una superata, o ne crea una
|
|
1897
|
+
* nuova (§8). Sulla versione attiva rifiuta con `NotEditable`; una superata, salvata, torna bozza
|
|
1898
|
+
* e lo dice lo `status` della risposta. Senza `version` sovrascrive l'ultima solo se e' una bozza.
|
|
1890
1899
|
* Riesce **anche con errori** di validazione: l'esito sano si legge in
|
|
1891
1900
|
* `FlowSaveResult.validation`, non nell'assenza di eccezione (§6.2).
|
|
1892
1901
|
*/
|
|
@@ -1903,7 +1912,7 @@ declare abstract class FlowBuilderApi {
|
|
|
1903
1912
|
abstract activateVersion(flowName: string, version: number): Promise<FlowSaveResult>;
|
|
1904
1913
|
/** `POST /flows/{name}/deactivate` — il flow non e' piu' eseguibile. */
|
|
1905
1914
|
abstract deactivateFlow(flowName: string): Promise<void>;
|
|
1906
|
-
/** `DELETE /flows/{name}/versions/{v}` — rifiutata sulla versione attiva. */
|
|
1915
|
+
/** `DELETE /flows/{name}/versions/{v}` — rifiutata sulla versione attiva, con `NotEditable` (§10). */
|
|
1907
1916
|
deleteVersion(flowName: string, version: number): Promise<void>;
|
|
1908
1917
|
/** `DELETE /flows/{name}` — rifiutata se esiste una versione attiva. */
|
|
1909
1918
|
deleteFlow(flowName: string): Promise<void>;
|
|
@@ -4254,9 +4263,19 @@ declare class FlowEditorSession {
|
|
|
4254
4263
|
* non ancora salvato, e' modificabile per definizione.
|
|
4255
4264
|
*/
|
|
4256
4265
|
readonly isEditable: _angular_core.Signal<boolean>;
|
|
4257
|
-
/**
|
|
4266
|
+
/** Sulla versione attiva il comando primario diventa "Nuova versione" (§8, regola 1). */
|
|
4258
4267
|
readonly primaryCommand: _angular_core.Signal<"create" | "save" | "newVersion">;
|
|
4259
4268
|
readonly isActiveVersion: _angular_core.Signal<boolean>;
|
|
4269
|
+
/**
|
|
4270
|
+
* §8, regola 1 — la versione aperta e' una **superata**: si modifica, ma il primo salvataggio va
|
|
4271
|
+
* confermato. Un'esecuzione sospesa nata quando era attiva — una pausa, un'attesa, uno step, una
|
|
4272
|
+
* schermata parcheggiata — riprende sulla definizione modificata, e se il node su cui era ferma e'
|
|
4273
|
+
* stato tolto o rinominato fallisce. Il backend non puo' saperlo al posto nostro.
|
|
4274
|
+
*
|
|
4275
|
+
* Si legge lo `status` della riga, che e' del backend come `isEditable`: salvata, la versione torna
|
|
4276
|
+
* bozza e la domanda smette di porsi da se' al primo `refreshVersions`.
|
|
4277
|
+
*/
|
|
4278
|
+
readonly isObsoleteVersion: _angular_core.Signal<boolean>;
|
|
4260
4279
|
/** Attivare esige zero errori (§8.3): il comando resta disabilitato finche' ce ne sono. */
|
|
4261
4280
|
readonly canActivate: _angular_core.Signal<boolean>;
|
|
4262
4281
|
setAuthor(author: string | undefined): void;
|
|
@@ -4347,6 +4366,11 @@ declare class FlowEditorSession {
|
|
|
4347
4366
|
private normalizeResult;
|
|
4348
4367
|
private static readonly warned;
|
|
4349
4368
|
private static warnOnce;
|
|
4369
|
+
/**
|
|
4370
|
+
* Restituisce la rilettura dell'elenco versioni, che parte comunque: chi la aspetta e' chi ha
|
|
4371
|
+
* appena scritto una versione **nuova**, che nell'elenco vecchio non c'e' — e finche' non c'e'
|
|
4372
|
+
* `currentVersionSummary` e' vuoto, cioe' stato «Nuovo» e editor in sola lettura.
|
|
4373
|
+
*/
|
|
4350
4374
|
private applySaveResult;
|
|
4351
4375
|
/**
|
|
4352
4376
|
* Duplica: scrive il flow **sotto un altro nome** e sposta la sessione sulla copia
|
|
@@ -4386,12 +4410,18 @@ declare class FlowEditorSession {
|
|
|
4386
4410
|
deleteVersion(version: number): Promise<void>;
|
|
4387
4411
|
/** Risoluzione del conflitto, prima opzione: ricarica e perde le modifiche locali (§9.3). */
|
|
4388
4412
|
reloadAfterConflict(): Promise<void>;
|
|
4413
|
+
/** Risoluzione del conflitto, seconda opzione: le modifiche locali in una nuova versione (§9.3). */
|
|
4414
|
+
saveAsNewVersionAfterConflict(): Promise<FlowSaveResult>;
|
|
4389
4415
|
/**
|
|
4390
|
-
*
|
|
4391
|
-
*
|
|
4392
|
-
*
|
|
4416
|
+
* Il documento in mano, modifiche comprese, scritto in una versione **nuova**: lascia intatta
|
|
4417
|
+
* quella da cui si era partiti. Serve dove sovrascrivere e' la cosa sbagliata o rischiosa — un
|
|
4418
|
+
* conflitto (§9.3), o una superata su cui ci sono esecuzioni sospese (§8, regola 1).
|
|
4419
|
+
*
|
|
4420
|
+
* Sono due chiamate e non «salva senza `version`»: quella strada sceglie da se' e sovrascrive
|
|
4421
|
+
* l'ultima se e' una bozza (§8), cioe' proprio cio' che qui si vuole evitare. `createVersion`
|
|
4422
|
+
* copia una versione salvata, e il salvataggio subito dopo ci scrive sopra il documento.
|
|
4393
4423
|
*/
|
|
4394
|
-
|
|
4424
|
+
saveAsNewVersion(): Promise<FlowSaveResult>;
|
|
4395
4425
|
dismissConflict(): void;
|
|
4396
4426
|
/** L'ultima validazione conosciuta, da qualunque primitiva arrivi. */
|
|
4397
4427
|
get validationResult(): FlowValidationResult | null;
|
|
@@ -5208,6 +5238,18 @@ declare class ReferencePickerComponent {
|
|
|
5208
5238
|
* destinazione farebbe attivare un flow che poi fallisce davanti all'utente. L'eccezione sono i
|
|
5209
5239
|
* campi del record che innesca, che si assegnano (§4.1).
|
|
5210
5240
|
*/
|
|
5241
|
+
/**
|
|
5242
|
+
* In un campo di destinazione, la radice del valore quando e' **nota ma non scrivibile**: sta fra
|
|
5243
|
+
* le radici di `getReferences` e non fra quelle di `getWritableReferences`. E' il caso di chi
|
|
5244
|
+
* scrive a mano `Leggi_Ordine.Stato` — l'output automatico si legge, ma solo le variabili si
|
|
5245
|
+
* assegnano (§4.6, §5.3) — e di una costante o una formula. Senza, finivano in `navigated`, che
|
|
5246
|
+
* dice «non verificato» di cio' che la validazione rifiuta.
|
|
5247
|
+
*
|
|
5248
|
+
* Le globali restano fuori: le giudica {@link isReadOnlyPath}, e i campi di `$Record` si
|
|
5249
|
+
* assegnano. E senza l'elenco scrivibile — in volo, fallito, o un host che risponde vuoto — non
|
|
5250
|
+
* si accusa nessuno: la regola e' quella del validatore, che senza nomi scrivibili tace.
|
|
5251
|
+
*/
|
|
5252
|
+
private readonly readOnlyRoot;
|
|
5211
5253
|
private readonly isReadOnlyPath;
|
|
5212
5254
|
private readonly pathReferences;
|
|
5213
5255
|
/**
|
|
@@ -5256,6 +5298,9 @@ declare class ReferencePickerComponent {
|
|
|
5256
5298
|
* classe, `FIELD_UNKNOWN` su un'entita', e a differenza di prima si sa per certo;
|
|
5257
5299
|
* - `memberNotWritable`: il segmento esiste, non e' scrivibile, e questo campo vuole una
|
|
5258
5300
|
* destinazione: `TARGET_NOT_WRITABLE`;
|
|
5301
|
+
* - `rootNotWritable`: la radice esiste ma non e' una variabile — un output automatico, una
|
|
5302
|
+
* costante, una formula — e questo campo vuole una destinazione: `TARGET_NOT_WRITABLE` sul
|
|
5303
|
+
* nome intero come sui suoi campi (§4.6, §5.3);
|
|
5259
5304
|
* - `pathUnverified`: la catena si interrompe (`PATH_NOT_VERIFIABLE`): avviso, non errore;
|
|
5260
5305
|
* - `globalPathUntyped`: percorso globale che porta un contenitore senza dichiararne il tipo:
|
|
5261
5306
|
* `PATH_NOT_VERIFIABLE`, e la correzione sta nel catalogo dell'host, non nel flow (§4.1);
|
|
@@ -5269,7 +5314,7 @@ declare class ReferencePickerComponent {
|
|
|
5269
5314
|
* percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
|
|
5270
5315
|
* risponderebbe `GLOBAL_UNKNOWN`.
|
|
5271
5316
|
*/
|
|
5272
|
-
readonly valueState: _angular_core.Signal<"empty" | "
|
|
5317
|
+
readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "member" | "containerRoot" | "memberUnknown" | "memberNotWritable" | "rootNotWritable" | "pathUnverified" | "globalPathUntyped" | "globalPathInvalid" | "priorValuesMissing" | "unknown">;
|
|
5273
5318
|
/** Le parole cambiano con la tappa: un campo di un'entita' non e' un membro di una classe. */
|
|
5274
5319
|
private readonly tailIsObject;
|
|
5275
5320
|
private readonly tailContainer;
|
|
@@ -8097,7 +8142,7 @@ declare class FlowBuilderComponent {
|
|
|
8097
8142
|
* troppo. `panel` tiene il form nel pannello laterale, che e' piu' comodo quando si
|
|
8098
8143
|
* modificano molti elementi di fila perche' non c'e' niente da aprire e chiudere.
|
|
8099
8144
|
*/
|
|
8100
|
-
readonly inspectorMode: _angular_core.InputSignal<"
|
|
8145
|
+
readonly inspectorMode: _angular_core.InputSignal<"panel" | "dialog">;
|
|
8101
8146
|
/**
|
|
8102
8147
|
* L'esito dell'ultima esecuzione, se l'ospite ne ha uno da mostrare.
|
|
8103
8148
|
*
|
|
@@ -8425,7 +8470,22 @@ declare class FlowBuilderComponent {
|
|
|
8425
8470
|
* indice — e' la traccia che sopravvive: dopo il passo si adotta il nome che si trova lì.
|
|
8426
8471
|
*/
|
|
8427
8472
|
private stepHistory;
|
|
8473
|
+
/**
|
|
8474
|
+
* §8, regola 1 — il salvataggio su una versione **superata** aspetta una conferma. Si modifica come
|
|
8475
|
+
* una bozza, ma le esecuzioni sospese nate quando era attiva riprendono sulla definizione nuova, e
|
|
8476
|
+
* se il node su cui erano ferme non c'e' piu' falliscono: e' una domanda a cui il backend non puo'
|
|
8477
|
+
* rispondere al posto di chi salva. La barra resta finche' non si sceglie, come quella del duplicato,
|
|
8478
|
+
* e un secondo «Salva» non vale come conferma: la conferma e' un bottone che dice cosa accadra'.
|
|
8479
|
+
*/
|
|
8480
|
+
readonly isObsoleteSaveOpen: _angular_core.WritableSignal<boolean>;
|
|
8428
8481
|
save(): Promise<void>;
|
|
8482
|
+
/** «Salva comunque»: la superata si sovrascrive e torna bozza (§8). */
|
|
8483
|
+
confirmObsoleteSave(): Promise<void>;
|
|
8484
|
+
/** L'alternativa che non tocca le esecuzioni sospese: la superata resta com'era. */
|
|
8485
|
+
saveObsoleteAsNewVersion(): Promise<void>;
|
|
8486
|
+
cancelObsoleteSave(): void;
|
|
8487
|
+
/** Il salvataggio vero, con la notifica dell'esito; `undefined` se non e' riuscito. */
|
|
8488
|
+
private writeCurrentVersion;
|
|
8429
8489
|
/** Il modulo del duplicato e' aperto. */
|
|
8430
8490
|
readonly isCopyOpen: _angular_core.WritableSignal<boolean>;
|
|
8431
8491
|
readonly copyName: _angular_core.WritableSignal<string>;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esfaenza/flow-builder",
|
|
3
|
-
"version": "20.3.
|
|
3
|
+
"version": "20.3.57",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/cdk": "^20.2.14",
|
|
6
|
-
"@angular/common": "^20.3.
|
|
7
|
-
"@angular/core": "^20.3.
|
|
6
|
+
"@angular/common": "^20.3.32",
|
|
7
|
+
"@angular/core": "^20.3.32",
|
|
8
8
|
"@foblex/flow": ">=19.0.0",
|
|
9
9
|
"dagre": "0.8.5"
|
|
10
10
|
},
|