@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 +37 -0
- package/fesm2022/esfaenza-flow-builder.mjs +683 -170
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +230 -37
- package/package.json +1 -1
- package/styles/flow-builder.css +13 -0
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.
|