@esfaenza/flow-builder 20.3.12 → 20.3.14
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 +24 -5
- package/fesm2022/esfaenza-flow-builder.mjs +405 -149
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +71 -25
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -90,7 +90,7 @@ l'attributo di scope di Angular, quindi un CSS incapsulato non li raggiunge.
|
|
|
90
90
|
| `version` | la versione da aprire; assente → l'attiva se c'e', altrimenti l'ultima (§6.1) |
|
|
91
91
|
| `author` | registrato sulla versione e mostrato nell'elenco |
|
|
92
92
|
| `defaultProcessType` | `processType` iniziale di un flow nuovo |
|
|
93
|
-
| `inspectorMode` | `'dialog'` (predefinito) apre il dettaglio dell'elemento in una finestra sopra il canvas
|
|
93
|
+
| `inspectorMode` | `'dialog'` (predefinito) apre il dettaglio dell'elemento in una finestra sopra il canvas; `'panel'` lo tiene nel pannello laterale |
|
|
94
94
|
|
|
95
95
|
| Output | Quando |
|
|
96
96
|
|---|---|
|
|
@@ -334,10 +334,29 @@ vuoto resta "non lo so" — primitiva non esposta, tipo senza valori dichiarati,
|
|
|
334
334
|
da scegliere — e allora il valore si digita; con l'elenco popolato un valore fuori elenco e' un
|
|
335
335
|
**avviso**, perche' nessun codice della §7 lo blocca ed e' l'editor ad accorgersene prima del runtime.
|
|
336
336
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
337
|
+
**Un campo a `null` e' assente.** Il valore ha un campo per tipo e va valorizzato **uno e un solo**
|
|
338
|
+
campo (§4.2); la §2 dice che cio' che non c'e' si omette, ma un backend che serializza tutte le
|
|
339
|
+
proprieta' — `System.Text.Json` senza `IgnoreNullValues` lo fa di default — manda
|
|
340
|
+
`{"enumValue": "InIstruttoria", "formulaExpression": null, …}`: un solo valore e sette caselle piene
|
|
341
|
+
di niente. Riconoscere il campo con `!== undefined` faceva vincere il primo letto, cioe'
|
|
342
|
+
`formulaExpression`: l'editor apriva la **formula** (vuota) e il valore, pur presente nel documento,
|
|
343
|
+
spariva dalla vista — e il conteggio dei campi accusava `VALUE_AMBIGUOUS`. La regola sta in
|
|
344
|
+
`core/flow-value.util.ts` (`isValued`, `valuedFieldOf`, `valuedFieldsOf`) e la usano l'editor del
|
|
345
|
+
valore e quello delle condizioni: `null` e `undefined` significano la stessa cosa, mentre
|
|
346
|
+
`booleanValue: false`, `numberValue: 0` e `stringValue: ''` restano valori.
|
|
347
|
+
|
|
348
|
+
Perche' l'editor conosca il tipo della destinazione serve saperlo, e i percorsi non fanno eccezione:
|
|
349
|
+
`POST /flows/references` elenca le **radici** e non i percorsi, quindi su `Richiesta.Stato` la
|
|
350
|
+
corrispondenza esatta del nome non trova niente. Il tipo si ricava allora navigando la catena —
|
|
351
|
+
`core/reference-path` innesta l'elenco dei riferimenti su `core/path-navigation`: trova il prefisso
|
|
352
|
+
dichiarato piu' lungo (§4.1), naviga il resto un segmento alla volta e prende il tipo dell'**ultimo**
|
|
353
|
+
segmento. Lo usano l'Assignment (su `getWritableReferences`), le condizioni e i filtri sui record —
|
|
354
|
+
dove la radice e' l'entita', quindi `Cliente.Citta` si risolve come il campo che e'. In un Transform
|
|
355
|
+
il tipo viene dal **membro** della classe di destinazione, che l'inspector già descrive.
|
|
356
|
+
|
|
357
|
+
Dove il tipo non si sa — catena interrotta, catalogo assente, segmento inesistente, percorso radicato
|
|
358
|
+
sull'output automatico di un elemento (che il backend non verifica, §7) — il campo resta generico
|
|
359
|
+
invece di indovinare: un elenco chiuso di valori sbagliati e' peggio di una casella di testo.
|
|
341
360
|
|
|
342
361
|
Lo stesso controllo, nella variante `<fb-name-picker>`, vale per **ogni altro nome che il flow
|
|
343
362
|
prende da fuori**: tipo di action e action, script, form, i nomi dei loro parametri di ingresso
|