@esfaenza/flow-builder 20.3.24 → 20.3.26
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 +14 -1
- package/fesm2022/esfaenza-flow-builder.mjs +176 -18
- package/fesm2022/esfaenza-flow-builder.mjs.map +1 -1
- package/index.d.ts +69 -7
- package/package.json +4 -4
- package/styles/flow-builder.css +96 -0
package/README.md
CHANGED
|
@@ -142,7 +142,8 @@ sono opzionali e rifiutano con `MissingService` se non sovrascritti.
|
|
|
142
142
|
| `listScripts` / `listScriptParameters` | astratti |
|
|
143
143
|
| `listForms(kind?)` / `listFormParameters` | astratti — **un catalogo, due ruoli** (§5.1, §5.2): le schermate intere di uno Screen (`formName`) e i componenti di uno screen dinamico (`extensionName`) stanno nello stesso elenco e si distinguono per `formKind`. `kind` vale `Form`, `Component` o assente per tutto; una voce **senza** `formKind` vale `Any` e resta proponibile in entrambi i posti, perche' un catalogo che il ruolo non lo dichiara non deve vietare tutto. Usare l'uno al posto dell'altro e' `FORM_KIND_MISMATCH`, che e' un errore **diverso** da «il nome non esiste». I parametri si chiedono per nome, uguali per i due ruoli |
|
|
144
144
|
| `listEnumTypes`, `listEvents`, `listSubflowCandidates` | astratti |
|
|
145
|
-
| `describeObject
|
|
145
|
+
| `describeObject` | opzionale |
|
|
146
|
+
| `listFieldValues(object, field)` | opzionale — i valori ammessi di un campo a **scelta chiusa** (`hasClosedValueSet`, §6.4), cioe' l'altra meta' degli insiemi chiusi: quelli di un `Enum` sono del **tipo** (`listEnumValues`), questi della **colonna** — `Ordine.Stato` e `Attivita.Stato` possono ammettere valori diversi pur essendo due `String`, ed e' perche' serve la coppia. Lista vuota = "non lo so": il valore si scrive a mano |
|
|
146
147
|
| `listEnumValues(enumType)` | opzionale — i **valori** di un tipo di enumerazione, cioe' i nomi scrivibili in `enumValue` (§4.2, §4.6). `listEnumTypes` e' l'altra meta' e non basta: quella dice quali tipi esistono, questa quali valori ha un tipo. `enumType` e' esattamente l'`objectType` della risorsa, del parametro o del **membro** di una classe (§4.7.1): la risposta e' del tipo, non del punto di uso, e la cache e' per nome del tipo. Lista vuota = "non lo so" — il valore si scrive a mano, e un tipo sconosciuto risponde vuoto, non 404 |
|
|
147
148
|
| `listStructures`, `describeStructure(className)` | opzionali — le classi e i loro membri per le risorse `Structure` (§4.7). `listStructures` e' l'**elenco delle classi** senza membri; `describeStructure` restituisce la **descrizione** di una classe (`className`, `label`, `members`), non un array nudo (§4.7.1). Senza, le classi non sono verificabili e il nome si scrive a mano: "non lo so", non "non esiste". I tre esiti sono distinti: `members` popolato = elenco autorevole, `members: []` = membri non dichiarati (si digita, nessuna accusa), rifiuto `StructureNotFound` = classe non registrata (si segnala la **classe**) |
|
|
148
149
|
|
|
@@ -441,6 +442,18 @@ vuoto resta "non lo so" — primitiva non esposta, tipo senza valori dichiarati,
|
|
|
441
442
|
da scegliere — e allora il valore si digita; con l'elenco popolato un valore fuori elenco e' un
|
|
442
443
|
**avviso**, perche' nessun codice della §7 lo blocca ed e' l'editor ad accorgersene prima del runtime.
|
|
443
444
|
|
|
445
|
+
**Valori di un campo a scelta chiusa.** È lo stesso problema degli enum sull'altra meta' dello
|
|
446
|
+
schema: un campo che dichiara `hasClosedValueSet` ammette pochi valori e nessun tipo li porta con
|
|
447
|
+
se', quindi si chiedono con `listFieldValues(object, field)` (§4.4, §6.4). Li propone
|
|
448
|
+
`<fb-field-value-picker>`, che il `<fb-value-editor>` monta al posto della casella di testo quando
|
|
449
|
+
chi lo usa gli passa `[valueSet]`: oggi lo fa il **filtro sui record**, dove il campo e la sua
|
|
450
|
+
entita' si sanno — anche in fondo a un percorso di relazione, perche' il tipo dell'ultimo segmento lo
|
|
451
|
+
naviga `core/reference-path` e con lui arriva l'insieme chiuso. Nel documento va il **valore**, non
|
|
452
|
+
l'etichetta: «Da approvare» aiuta a riconoscere `DaApprovare` ma non e' cio' che il motore confronta.
|
|
453
|
+
Elenco vuoto = "non lo so" (primitiva non esposta, campo senza insieme dichiarato) e valore fuori
|
|
454
|
+
elenco = **avviso**, come per gli enum: la §7 non ha un codice per questo, e un filtro con un valore
|
|
455
|
+
inesistente non trova nessun record senza che niente lo segnali.
|
|
456
|
+
|
|
444
457
|
**Formule.** L'espressione va al motore di regole e la sua sintassi resta del motore: la libreria
|
|
445
458
|
non ha nessun parser. Cio' che ha e' il **controllo**, `validateFormula` (`POST /flows/validate-formula`,
|
|
446
459
|
§6.3), chiesto con debounce mentre si digita: risponde lo stesso motore, e i suoi rilievi portano la
|