@esfaenza/flow-builder 20.3.57 → 20.3.58

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
@@ -533,7 +533,8 @@ cose che un editor ingenuo sbaglia lasciandole comporre per poi accusarle:
533
533
  `fieldType` dentro una riga non offre la sezione ripetibile (non si annidano: il cursore e' una
534
534
  variabile sola per sezione) e la spunta degli output automatici di un `ComponentInstance` sparisce
535
535
  — si esporrebbero come `<NomeCampo>.<NomeOutput>`, cioe' **una risorsa sola per tutte le righe**.
536
- Per lo stesso motivo un campo di riga non compare fra gli inneschi di una screen action;
536
+ Un campo di riga **compare** invece fra gli inneschi di una screen action, che allora gira per riga
537
+ (vedi *Screen action*, sotto);
537
538
  - **`memberName` e il riferimento sono la stessa domanda posta due volte.** `memberName: "PodId"` e
538
539
  `PuntoCorrente.PodId` sono lo stesso membro, e la classe da cui vengono e' l'`objectType` della
539
540
  variabile in `collectionReference`: il campo si sceglie da `<fb-structure-member-picker>` con
@@ -592,9 +593,9 @@ Tre cose che il form mette a posto:
592
593
  `IsEmpty` su una collection e' un operatore che il runtime valuta, mentre la stessa domanda in una
593
594
  formula chiede al motore una funzione che potrebbe non avere. `Formula` resta un `conditionLogic`
594
595
  ammesso — qui sì, a differenza di un `filterLogic` — quindi l'editor la offre lo stesso;
595
- - il `fieldName` facoltativo pesca dai campi della schermata **senza quelli dentro una riga**: lo
596
- stesso elenco degli inneschi, e per la stessa ragione — un campo che esiste in una copia per
597
- elemento non individua un controllo a cui agganciare il messaggio.
596
+ - il `fieldName` facoltativo pesca dai campi della schermata **senza quelli dentro una riga**: un
597
+ campo che esiste in una copia per elemento non individua un controllo a cui agganciare il
598
+ messaggio. Non e' l'elenco degli inneschi, che i campi di riga li comprende.
598
599
 
599
600
  **Screen action (§5.2).** Un campo che l'utente compila puo' **innescare un'action** i cui risultati
600
601
  finiscono negli altri campi della stessa schermata: e' il caso «scrivi il codice fiscale e nome e
@@ -604,7 +605,7 @@ campi), in **due** elenchi che il contratto tiene separati — `actions` e `trig
604
605
  trigger possono invocare la stessa action. Identificazione e parametri sono quelli di un elemento
605
606
  Action, `ACTION_UNKNOWN` e `PARAMETER_UNKNOWN` compresi.
606
607
 
607
- Le tre cose che riguardano l'editor, e non il runtime:
608
+ Le cose che riguardano l'editor, e non il runtime:
608
609
 
609
610
  - **il picker della destinazione e' allargato qui e solo qui.** L'`assignToReference` di un output
610
611
  accetta anche i **campi di questa schermata**, che ovunque altrove sono di sola lettura:
@@ -624,7 +625,19 @@ Le tre cose che riguardano l'editor, e non il runtime:
624
625
  `runOnRevisit` della specifica Salesforce e' `SCREEN_TRIGGER_INIT_BEHAVIOR_UNKNOWN`, e vale la
625
626
  pena saperlo perche' chi arriva da quella specifica lo scrive per abitudine. Dove il campo
626
627
  osservato ha un `defaultValue` il form dice che `runOnLoad` **non serve**: un campo precompilato
627
- dal flow conta come un campo che ha preso un valore, e l'action gira comunque all'arrivo.
628
+ dal flow conta come un campo che ha preso un valore, e l'action gira comunque all'arrivo;
629
+ - **un trigger puo' osservare un campo di riga**, e allora l'action gira **per ogni riga** in cui
630
+ quel campo e' cambiato (*Una screen action per ogni riga*). `triggerFieldName` e' l'unico posto in
631
+ cui il nome di un campo di riga si scrive, perche' nomina un campo e non un riferimento: condizioni,
632
+ input e output nominano la riga attraverso il **cursore** (`PuntoLuce.ProductId`), e i selettori lo
633
+ propongono per primo. Da quel momento le destinazioni dipendono da **chi** invoca l'action, e le
634
+ sbagliate sono `SCREEN_ACTION_ROW_TARGET_INVALID`: da un trigger di riga il cursore intero, la
635
+ collection delle righe, le righe di un'altra sezione e l'output automatico (che l'editor non
636
+ propone nemmeno); da uno di primo livello il cursore, che fuori dalla riga non porta nessuna riga.
637
+ Il rilievo sta sull'output e nomina il trigger, perche' con due trigger — uno di riga e uno no —
638
+ la stessa destinazione e' giusta per l'uno e sbagliata per l'altro. La regola e'
639
+ `screenActionRowTargetIssues` (`core/screen-field.util.ts`), e la applica anche il validatore
640
+ della demo.
628
641
 
629
642
  Le action si aprono **una alla volta**: i cataloghi delle action e dei loro parametri dipendono da
630
643
  `actionType`/`actionName`, e tenerne N in volo sarebbe N volte la corsa fra risposte che l'inspector