@esfaenza/flow-builder 20.3.40 → 20.3.42

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 CHANGED
@@ -316,9 +316,9 @@ orchestrazione ne resta fuori: la §7 non lo comprende.
316
316
  Un tipo con un **discriminatore** compare come piu' voci, una per valore: il Collection
317
317
  Processor e' «Ordina» e «Filtra», non «ordina o filtra». Sono due gesti diversi — un `Sort`
318
318
  vuole `sortOptions`, un `Filter` vuole condizioni (§5.6) — e sceglierli dalla palette evita di
319
- sceglierli dopo, dentro il form. L'elemento nasce con il discriminatore già scritto, con la
320
- label della variante (da cui viene anche il nome tecnico) e con il glifo della variante, lo
321
- stesso che avra' sul canvas. `core/element-variants.ts` tiene la mappa tipo → campo del
319
+ sceglierli dopo, dentro il form. L'elemento nasce con il discriminatore già scritto, con il
320
+ glifo della variante lo stesso che avra' sul canvas e con un nome tecnico provvisorio preso
321
+ dalla variante. `core/element-variants.ts` tiene la mappa tipo → campo del
322
322
  discriminatore; i valori restano nel dizionario del backend (`collectionProcessorTypes`), e
323
323
  senza quel dizionario il tipo torna a essere una voce sola.
324
324
 
@@ -327,6 +327,17 @@ Decision, Loop, Collection Processor, Get / Create / Update / Delete / Rollback
327
327
  Action, Script, Subflow, Wait, Custom Error, Transform, Orchestrated Stage. Più l'intestazione
328
328
  comune con la rinomina, che **riscrive tutti i riferimenti** all'elemento.
329
329
 
330
+ *Nominare un elemento nuovo.* Un elemento appena creato nasce **senza etichetta**, e il suo form
331
+ si apre con il cursore lì: il nome tecnico parte **vuoto** e si costruisce dall'etichetta mentre
332
+ la si digita, con spazi e caratteri non ammessi sostituiti da `_` (§3.3). Nel documento un nome
333
+ provvisorio c'e' comunque, perché il nome e' la chiave con cui tutto raggiunge l'elemento — e' anche
334
+ cio' che il canvas mostra al posto del titolo finché l'etichetta manca — ma non e' quello che si
335
+ legge nel campo. Scrivere il nome a mano lo sgancia dall'etichetta; svuotare il campo lo rimette a
336
+ seguirla. Su un elemento che un'etichetta ce l'ha già il nome torna in sola lettura dietro il
337
+ comando «Rinomina»: da lì in poi cambiarlo riscrive i riferimenti di tutto il documento (§13.8) e
338
+ non e' un gesto da fare per sbaglio. Corollario: l'annulla riporta indietro etichetta e nome
339
+ **insieme**, in un passo solo, e la selezione dell'editor — che e' il nome — lo segue.
340
+
330
341
  **Screen dinamico (§5.2).** È un **compositore**, non un form, e per questo la dialog e' larga il
331
342
  doppio di com'era: **tre colonne**. A sinistra la palette (due schede — i componenti, e i campi di
332
343
  un'entita' che portano tipo ed etichetta dallo schema), al centro **la schermata disegnata** (si
@@ -349,7 +360,11 @@ Tre cose che il modello non mostra e il form dice:
349
360
  - le regole di visibilita' si rivalutano **sui valori appena inviati**, i campi nascosti vengono
350
361
  **azzerati** e solo i visibili vengono validati;
351
362
  - `choiceReferences` accetta **solo** `Choice` e `DynamicChoiceSet`, e gli output automatici di un
352
- `ComponentInstance` sono esclusivi con i suoi `outputParameters`.
363
+ `ComponentInstance` sono esclusivi con i suoi `outputParameters`;
364
+ - `autoSelectSingleChoice` fa prendere al campo l'**unica** opzione risolta, quando e' una sola: e'
365
+ la tendina che dipende da un'altra tendina — i CAP di un comune — dove chiedere di scegliere non
366
+ decide niente. La spunta compare solo dove il tipo `acceptsChoices`, e altrove e'
367
+ `SCREEN_FIELD_CONFIGURATION_INVALID` (avviso).
353
368
 
354
369
  Il riordino e l'annidamento si fanno trascinando (`@angular/cdk/drag-drop`, senza drop list: il
355
370
  bersaglio si calcola dal DOM) oppure con i comandi «su / giu' / porta fuori».
@@ -400,7 +415,9 @@ Le tre cose che riguardano l'editor, e non il runtime:
400
415
  - **un trigger senza campo e senza `initBehavior` non scattera' mai**
401
416
  (`SCREEN_TRIGGER_WITHOUT_CAUSE`), e l'unico `initBehavior` ammesso e' `runOnLoad` — il
402
417
  `runOnRevisit` della specifica Salesforce e' `SCREEN_TRIGGER_INIT_BEHAVIOR_UNKNOWN`, e vale la
403
- pena saperlo perche' chi arriva da quella specifica lo scrive per abitudine.
418
+ pena saperlo perche' chi arriva da quella specifica lo scrive per abitudine. Dove il campo
419
+ osservato ha un `defaultValue` il form dice che `runOnLoad` **non serve**: un campo precompilato
420
+ dal flow conta come un campo che ha preso un valore, e l'action gira comunque all'arrivo.
404
421
 
405
422
  Le action si aprono **una alla volta**: i cataloghi delle action e dei loro parametri dipendono da
406
423
  `actionType`/`actionName`, e tenerne N in volo sarebbe N volte la corsa fra risposte che l'inspector
@@ -658,6 +675,14 @@ leggendo. Ad aprire il form ci sono il bottone «✎» della riga e il doppio cl
658
675
  coppia di gesti del canvas. Per la stessa
659
676
  ragione il clic non si limita ad aprire l'elemento: **seleziona il campo** che il rilievo nomina.
660
677
 
678
+ **Il tipo di flow si sceglie alla creazione.** Su un flow nuovo — quello che l'editor apre senza
679
+ `flowName` — il `processType` e' una scelta nella barra in cima; da quando il flow e' salvato
680
+ diventa un'etichetta e non si tocca più. Non e' prudenza: il tipo decide quali globali esistono
681
+ (`$Record` non c'e' in uno screen flow, §4.1), quali elementi sono ammessi (§13.6) e come il motore
682
+ esegue il flow, e cambiarlo su un documento già scritto lo lascia pieno di riferimenti a cose che
683
+ da quel momento non esistono — senza che nessuna primitiva del backend rimedi. Un host che crea i
684
+ flow da sé (come la demo) il tipo lo chiede lì, e lo passa a `emptyFlowDefinition`.
685
+
661
686
  **Versioni.** Elenco con stato, «Nuova versione» al posto di «Salva» sulle versioni chiuse,
662
687
  attivazione bloccata finche' ci sono errori, eliminazione dietro una conferma esplicita che
663
688
  spiega il rischio per le esecuzioni sospese.