@esfaenza/flow-builder 20.3.1 → 20.3.3

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
@@ -202,6 +202,15 @@ qualsiasi.
202
202
  dalla mappa delle uscite invece di essere «ramo di errore» per tutti: su uno stage di
203
203
  orchestrazione quel ramo e' lo **step rifiutato**, non un guasto.
204
204
 
205
+ Un tipo con un **discriminatore** compare come piu' voci, una per valore: il Collection
206
+ Processor e' «Ordina» e «Filtra», non «ordina o filtra». Sono due gesti diversi — un `Sort`
207
+ vuole `sortOptions`, un `Filter` vuole condizioni (§5.5) — e sceglierli dalla palette evita di
208
+ sceglierli dopo, dentro il form. L'elemento nasce con il discriminatore già scritto, con la
209
+ label della variante (da cui viene anche il nome tecnico) e con il glifo della variante, lo
210
+ stesso che avra' sul canvas. `core/element-variants.ts` tiene la mappa tipo → campo del
211
+ discriminatore; i valori restano nel dizionario del backend (`collectionProcessorTypes`), e
212
+ senza quel dizionario il tipo torna a essere una voce sola.
213
+
205
214
  **Inspector.** Un form per ogni tipo supportato: Start, Screen, Assignment, Decision, Loop,
206
215
  Collection Processor, Get / Create / Update / Delete / Rollback Records, Action, Script,
207
216
  Subflow, Wait, Custom Error, Transform, Orchestrated Stage. Più l'intestazione comune con la
@@ -218,6 +227,34 @@ con la via d'uscita: scrivere quel risultato in una variabile.
218
227
  `Object` / `Enum`, `scale` solo sui numerici, costanti che non possono referenziare risorse,
219
228
  `stageOrder` distinti.
220
229
 
230
+ **Oggetti e campi.** Ogni punto che chiede un'entita' o un suo campo usa lo stesso controllo:
231
+ `<fb-object-picker>` e `<fb-field-picker>`, una casella con autocomplete che filtra il catalogo
232
+ mentre si scrive. Un `<select>` andava bene con dieci entita', non con trecento; e dove il
233
+ catalogo non arriva il controllo resta lo stesso, con un avviso, invece di degradare in un
234
+ campo di testo cieco. La scrittura libera e' voluta — i percorsi di relazione
235
+ (`Cliente.Citta`) non sono enumerabili e il catalogo dell'host puo' essere incompleto — ma un
236
+ nome fuori catalogo viene segnalato subito, prima che il backend risponda `OBJECT_UNKNOWN` o
237
+ `FIELD_UNKNOWN`. Il campo si chiede sempre con l'uso giusto (`filterable`, `sortable`,
238
+ `updateable`), che decide sia l'elenco sia il testo dell'avviso: "non filtrabile" e "non
239
+ aggiornabile" sono errori diversi. Restano `<select>` i dizionari chiusi — tipi di dato,
240
+ operatori, enumerazioni — dove non c'e' niente da scrivere a mano.
241
+
242
+ Lo stesso controllo, nella variante `<fb-name-picker>`, vale per **ogni altro nome che il flow
243
+ prende da fuori**: tipo di action e action, script, form, i nomi dei loro parametri di ingresso
244
+ e di uscita, il flow di uno step in background e dei suoi evaluation flow, il flow invocato da
245
+ un Subflow e le variabili di input e output **del flow invocato**. Qui l'elenco arriva da chi
246
+ ospita il picker — il catalogo già caricato per altri motivi, `listSubflowCandidates`, le
247
+ variabili della definizione caricata — perche' dipende dal contesto: le action dipendono dal
248
+ tipo scelto, i parametri dall'action, le variabili dal subflow.
249
+
250
+ Un elenco vuoto resta "non lo so": il campo si scrive a mano e non si accusa nessun nome. Con
251
+ l'elenco popolato, un nome che non c'e' e' segnalato, e con la **gravita' giusta**: un'action,
252
+ un form, uno script o un parametro inesistenti sono errori che bloccano l'attivazione
253
+ (`ACTION_UNKNOWN`, `FORM_UNKNOWN`, `PARAMETER_UNKNOWN`) e si mostrano in rosso; un flow senza
254
+ versione attiva e' un avviso. Prima questi campi erano `<select>` con un'opzione sintetica
255
+ «(non nel catalogo)» per non perdere il valore, oppure un `datalist` che accettava qualunque
256
+ cosa in silenzio: il primo non si poteva cercare, il secondo non diceva niente.
257
+
221
258
  **Problemi.** Pannello con filtro per gravita', navigazione all'elemento con un clic,
222
259
  validazione su pausa di digitazione (debounce 400 ms) e l'avvertenza che l'assenza di rilievi
223
260
  non e' una garanzia di correttezza.