@esfaenza/flow-builder 20.3.8 → 20.3.10

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/index.d.ts CHANGED
@@ -872,9 +872,10 @@ interface FlowReference {
872
872
  isCollection?: boolean;
873
873
  objectType?: string | null;
874
874
  /**
875
- * Per i campi di destinazione. Scrivibili sono le variabili, `$Flow.CurrentStage`,
876
- * `$Flow.ActiveStages` e le globali che il sistema ospite dichiara tali: la primitiva
877
- * `POST /flows/references/writable` le comprende già, non vanno aggiunte lato client (§5.2).
875
+ * Per i campi di destinazione. Scrivibili sono le variabili, i campi di `$Record` e **due sole**
876
+ * globali, `$Flow.CurrentStage` e `$Flow.ActiveStages`: le globali dell'host sono sempre di sola
877
+ * lettura, membri compresi. La primitiva `POST /flows/references/writable` le comprende già, non
878
+ * vanno aggiunte lato client (§5.2).
878
879
  */
879
880
  isWritable?: boolean;
880
881
  description?: string | null;
@@ -1191,9 +1192,10 @@ declare abstract class FlowBuilderApi {
1191
1192
  abstract getReferences(query: FlowReferenceQuery): Promise<FlowReference[]>;
1192
1193
  /**
1193
1194
  * `POST /flows/references/writable` — le variabili **piu' le globali assegnabili**, per i
1194
- * campi di destinazione: `$Flow.CurrentStage`, `$Flow.ActiveStages` e quelle che il sistema
1195
- * ospite dichiara `isWritable`. La primitiva le comprende già, l'editor non le aggiunge
1196
- * (§5.2). Restano fuori i campi di `$Record`, che dipendono dallo schema: quelli arrivano da
1195
+ * campi di destinazione. Le globali assegnabili sono **due**, `$Flow.CurrentStage` e
1196
+ * `$Flow.ActiveStages`: quelle dell'host sono sempre di sola lettura e il catalogo non ha un
1197
+ * flag per dichiararne una scrivibile (§5.2). La primitiva le comprende già, l'editor non le
1198
+ * aggiunge. Restano fuori i campi di `$Record`, che dipendono dallo schema: quelli arrivano da
1197
1199
  * `listFields(object, 'updateable')` (§6.4).
1198
1200
  */
1199
1201
  abstract getWritableReferences(query: FlowReferenceQuery): Promise<FlowReference[]>;
@@ -2685,11 +2687,34 @@ declare class ReferencePickerComponent {
2685
2687
  readonly elementsOnly: _angular_core.InputSignal<boolean>;
2686
2688
  readonly valueChange: _angular_core.OutputEmitterRef<string | undefined>;
2687
2689
  private readonly references;
2690
+ /**
2691
+ * L'elenco **senza** il filtro di tipo, che serve solo a riconoscere le radici dei percorsi.
2692
+ *
2693
+ * Il filtro (§6.4) guarda il tipo della **radice**, e una radice scartata si porta via anche cio'
2694
+ * che sta sotto: in un parametro `String` una variabile `Structure` non e' compatibile, ma
2695
+ * `Richiesta.Ragione` lo e', e `Leggi_Ordine` non e' un `String` mentre `Leggi_Ordine.Numero` lo
2696
+ * e'. Senza questo elenco il primo membro non si puo' proporre e il secondo viene accusato di non
2697
+ * esistere pur essendo un riferimento valido (§4.5).
2698
+ *
2699
+ * Vuoto dove il filtro non c'e': lì {@link references} e' già l'elenco completo.
2700
+ */
2701
+ private readonly unfiltered;
2702
+ /** Tutto cio' che puo' essere la radice di un percorso, filtrato o no. */
2703
+ private readonly roots;
2688
2704
  private readonly isLoading;
2689
2705
  private readonly loadError;
2690
2706
  readonly isOpen: _angular_core.WritableSignal<boolean>;
2691
2707
  readonly query: _angular_core.WritableSignal<string>;
2692
2708
  constructor();
2709
+ /**
2710
+ * Il riferimento dichiarato piu' **lungo** che sia un prefisso del valore, sui confini del punto.
2711
+ *
2712
+ * Non basta il primo segmento: un nome dichiarato puo' contenere il punto. Le globali sono il caso
2713
+ * per cui la regola esiste — di `$User.Anagrafica.Citta` il dizionario dichiara `$User.Anagrafica`,
2714
+ * e cercare la corrispondenza esatta di tutto cio' che segue lo scope segnalerebbe come rotto un
2715
+ * percorso giusto (§4.1: vince il prefisso dichiarato piu' lungo).
2716
+ */
2717
+ private readonly declaredPrefix;
2693
2718
  /**
2694
2719
  * La risorsa da cui il valore corrente sta navigando, quando la sua forma e' **dichiarata**: una
2695
2720
  * `Structure` con la classe, un record con l'entita'. È cio' che rende il percorso verificabile.
@@ -2710,7 +2735,28 @@ declare class ReferencePickerComponent {
2710
2735
  * segmento di sola lettura non si propone in un campo di destinazione, a meno che da lì il
2711
2736
  * percorso continui: `Richiesta.Cliente` non si assegna, ma `Richiesta.Cliente.Email` sì (§5.7).
2712
2737
  */
2738
+ /**
2739
+ * §5.2 — dentro una globale dell'host **niente** e' scrivibile, per quanto il membro si dichiari
2740
+ * tale: le globali le risolve un componente che non ha modo di scriverle, e proporle come
2741
+ * destinazione farebbe attivare un flow che poi fallisce davanti all'utente. L'eccezione sono i
2742
+ * campi del record che innesca, che si assegnano (§4.1).
2743
+ */
2744
+ private readonly isReadOnlyPath;
2713
2745
  private readonly pathReferences;
2746
+ /**
2747
+ * Lo stesso filtro che il backend applica alle radici (§6.4), applicato ai segmenti di un
2748
+ * percorso: in un parametro `String` non si propone un membro `Date`. Un segmento da cui si
2749
+ * scende resta comunque proposto anche se il suo tipo non combacia — e' la strada per arrivare
2750
+ * al membro che combacia.
2751
+ */
2752
+ private matchesTarget;
2753
+ /**
2754
+ * I contenitori che il filtro di tipo ha scartato: si mostrano per **entrarci**, non per
2755
+ * scegliersi. Quelli che il filtro ha tenuto stanno già fra le proposte normali.
2756
+ */
2757
+ private readonly containerOptions;
2758
+ /** `true` → questa riga apre il percorso e non e' un valore valido per il campo. */
2759
+ isContainerOnly(reference: FlowReference): boolean;
2714
2760
  readonly options: _angular_core.Signal<FlowReference[]>;
2715
2761
  /** Le opzioni raggruppate per `kind`, così gli output automatici si distinguono. */
2716
2762
  readonly groups: _angular_core.Signal<{
@@ -2726,21 +2772,28 @@ declare class ReferencePickerComponent {
2726
2772
  * elemento): il percorso resta fuori dalla validazione, quindi si accetta senza segnalare;
2727
2773
  * - `host`: scope del sistema ospite che **non dichiara percorsi**: non verificabile (§4.1);
2728
2774
  * - `member`: percorso dentro una forma dichiarata, verificato fino in fondo (§4.4, §4.7.1);
2775
+ * - `containerRoot`: il contenitore da solo in un campo che vuole un altro tipo: il valore e' un
2776
+ * suo membro, non lui;
2729
2777
  * - `memberUnknown`: un segmento non esiste nella sua tappa: `STRUCTURE_MEMBER_UNKNOWN` su una
2730
2778
  * classe, `FIELD_UNKNOWN` su un'entita', e a differenza di prima si sa per certo;
2731
2779
  * - `memberNotWritable`: il segmento esiste, non e' scrivibile, e questo campo vuole una
2732
2780
  * destinazione: `TARGET_NOT_WRITABLE`;
2733
2781
  * - `pathUnverified`: la catena si interrompe (`PATH_NOT_VERIFIABLE`): avviso, non errore;
2782
+ * - `globalPathUntyped`: percorso globale che porta un contenitore senza dichiararne il tipo:
2783
+ * `PATH_NOT_VERIFIABLE`, e la correzione sta nel catalogo dell'host, non nel flow (§4.1);
2784
+ * - `globalPathInvalid`: si naviga un percorso globale scalare o una collection: `GLOBAL_UNKNOWN`;
2734
2785
  * - `unknown`: nessuna corrispondenza: si avvisa, senza bloccare. Ci finisce anche il
2735
2786
  * percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
2736
2787
  * risponderebbe `GLOBAL_UNKNOWN`.
2737
2788
  */
2738
- readonly valueState: _angular_core.Signal<"empty" | "unknown" | "known" | "navigated" | "host" | "member" | "memberUnknown" | "memberNotWritable" | "pathUnverified">;
2789
+ readonly valueState: _angular_core.Signal<"empty" | "known" | "navigated" | "host" | "member" | "containerRoot" | "memberUnknown" | "memberNotWritable" | "pathUnverified" | "globalPathUntyped" | "globalPathInvalid" | "unknown">;
2739
2790
  /** Le parole cambiano con la tappa: un campo di un'entita' non e' un membro di una classe. */
2740
2791
  private readonly tailIsObject;
2741
2792
  private readonly tailContainer;
2742
2793
  readonly hint: _angular_core.Signal<string | null>;
2743
- /** I due stati che sono errori e non avvisi: il colore deve dirlo. */
2794
+ /** Gli stati che sono avvisi: «non lo so», o un valore da correggere che non blocca. */
2795
+ readonly isHintWarning: _angular_core.Signal<boolean>;
2796
+ /** Gli stati che sono errori e non avvisi: il colore deve dirlo. */
2744
2797
  readonly isHintError: _angular_core.Signal<boolean>;
2745
2798
  readonly errorMessage: _angular_core.Signal<string | null>;
2746
2799
  open(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/flow-builder",
3
- "version": "20.3.8",
3
+ "version": "20.3.10",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.25",
6
6
  "@angular/core": "^20.3.25",