@esfaenza/flow-builder 20.3.12 → 20.3.13

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
@@ -2827,22 +2827,15 @@ declare class ReferencePickerComponent {
2827
2827
  readonly query: _angular_core.WritableSignal<string>;
2828
2828
  constructor();
2829
2829
  /**
2830
- * Il riferimento dichiarato piu' **lungo** che sia un prefisso del valore, sui confini del punto.
2830
+ * Il riferimento dichiarato piu' **lungo** che sia un prefisso del valore, e la tappa da cui
2831
+ * navigare il resto. La regola sta in `core/reference-path` perche' non e' solo del picker: gli
2832
+ * inspector ne ricavano il **tipo** dell'ultimo segmento con la stessa catena, e due copie di
2833
+ * «prefisso piu' lungo» divergerebbero (§4.1, §4.7.1).
2831
2834
  *
2832
- * Non basta il primo segmento: un nome dichiarato puo' contenere il punto. Le globali sono il caso
2833
- * per cui la regola esiste — di `$User.Anagrafica.Citta` il dizionario dichiara `$User.Anagrafica`,
2834
- * e cercare la corrispondenza esatta di tutto cio' che segue lo scope segnalerebbe come rotto un
2835
- * percorso giusto (§4.1: vince il prefisso dichiarato piu' lungo).
2835
+ * Fra **tutte** le radici, non fra quelle filtrate: la radice di `Richiesta.Ragione` in un campo
2836
+ * `String` sta solo nell'elenco non filtrato.
2836
2837
  */
2837
2838
  private readonly declaredPrefix;
2838
- /**
2839
- * La risorsa da cui il valore corrente sta navigando, quando la sua forma e' **dichiarata**: una
2840
- * `Structure` con la classe, un record con l'entita'. È cio' che rende il percorso verificabile.
2841
- *
2842
- * Un output automatico e' escluso di proposito: la primitiva ne dichiara il tipo, ma la
2843
- * specifica tiene i percorsi che ne partono fuori dalla validazione (§7, ultimo capoverso), e
2844
- * l'editor non deve accusare cio' che il backend non verifica.
2845
- */
2846
2839
  private readonly navigableRoot;
2847
2840
  /** Il percorso dopo la radice: `Cliente.Email` di `Richiesta.Cliente.Email`. */
2848
2841
  private readonly navigatedPath;
@@ -2905,7 +2898,7 @@ declare class ReferencePickerComponent {
2905
2898
  * percorso inesistente di uno scope che i percorsi li dichiara, perche' lì il backend
2906
2899
  * risponderebbe `GLOBAL_UNKNOWN`.
2907
2900
  */
2908
- readonly valueState: _angular_core.Signal<"empty" | "member" | "unknown" | "known" | "navigated" | "host" | "containerRoot" | "memberUnknown" | "memberNotWritable" | "pathUnverified" | "globalPathUntyped" | "globalPathInvalid">;
2901
+ readonly valueState: _angular_core.Signal<"empty" | "unknown" | "member" | "known" | "navigated" | "host" | "containerRoot" | "memberUnknown" | "memberNotWritable" | "pathUnverified" | "globalPathUntyped" | "globalPathInvalid">;
2909
2902
  /** Le parole cambiano con la tappa: un campo di un'entita' non e' un membro di una classe. */
2910
2903
  private readonly tailIsObject;
2911
2904
  private readonly tailContainer;
@@ -3282,6 +3275,7 @@ declare class ValueEditorComponent {
3282
3275
 
3283
3276
  declare class ConditionEditorComponent {
3284
3277
  private readonly dictionaries;
3278
+ private readonly catalog;
3285
3279
  private readonly api;
3286
3280
  private readonly store;
3287
3281
  /** Il contenitore: porta `conditions`, `conditionLogic` e, se serve, `formula`. */
@@ -3306,15 +3300,22 @@ declare class ConditionEditorComponent {
3306
3300
  * fra testo e numero prima che lo dica la validazione (§4.3).
3307
3301
  */
3308
3302
  private readonly references;
3303
+ /**
3304
+ * Il tipo dei due lati, risorsa o **percorso**. L'elenco porta le radici e non i percorsi (§6.4):
3305
+ * su `Richiesta.Stato` la corrispondenza esatta non trova niente, e il tipo si ricava navigando la
3306
+ * classe (§4.7.1). È cio' che fa comparire l'elenco dei valori su un membro `Enum` (§4.6) e che
3307
+ * rende visibile un confronto fra tipi incompatibili anche dentro un'istanza (§4.3).
3308
+ */
3309
+ private readonly types;
3309
3310
  constructor();
3310
- /** Il tipo di un riferimento, `undefined` se navigato o ignoto: lì non si segnala (§4.3). */
3311
+ /** Il tipo di un riferimento, `undefined` dove non si sa: lì non si segnala (§4.3). */
3311
3312
  private typeOfReference;
3312
3313
  /** Il tipo del lato sinistro: guida il secondo operando. */
3313
3314
  leftDataType(condition: FlowCondition): FlowDataType | undefined;
3314
3315
  /**
3315
3316
  * Il tipo concreto del lato sinistro quando e' un `Enum`: senza di questo il valore di confronto
3316
- * resterebbe una casella di testo su un insieme chiuso (§4.6). Su un percorso navigato
3317
- * (`Cliente.Stato`) il riferimento non e' in elenco e resta `undefined`: si digita, come prima.
3317
+ * resterebbe una casella di testo su un insieme chiuso (§4.6). Vale anche su un percorso navigato
3318
+ * (`Richiesta.Stato`, `$Record.Stato`): il tipo del membro o del campo lo ricava {@link types}.
3318
3319
  */
3319
3320
  leftObjectType(condition: FlowCondition): string | undefined;
3320
3321
  /** Il tipo del lato destro, dedotto dal campo valorizzato o dal riferimento scelto. */
@@ -3325,7 +3326,7 @@ declare class ConditionEditorComponent {
3325
3326
  */
3326
3327
  hasTypeMismatch(condition: FlowCondition): boolean;
3327
3328
  typeMismatchMessage(condition: FlowCondition): string;
3328
- readonly logicMode: _angular_core.Signal<"formula" | "and" | "or" | "custom">;
3329
+ readonly logicMode: _angular_core.Signal<"and" | "or" | "formula" | "custom">;
3329
3330
  readonly customLogic: _angular_core.Signal<string>;
3330
3331
  /** Feedback immediato sull'espressione: la verita' resta della validazione backend. */
3331
3332
  readonly customLogicError: _angular_core.Signal<string | null>;
@@ -3395,11 +3396,20 @@ declare class RecordFilterEditorComponent {
3395
3396
  readonly emptyWarning: _angular_core.InputSignal<string | null>;
3396
3397
  readonly emptyWarningSeverity: _angular_core.InputSignal<"error" | "warn">;
3397
3398
  readonly changed: _angular_core.OutputEmitterRef<(holder: FilterHolder) => void>;
3398
- private readonly fields;
3399
3399
  /** Tutti i campi, filtrabili o no: serve solo a riconoscere le chiavi composte (§5.7). */
3400
3400
  private readonly allFields;
3401
3401
  readonly filters: _angular_core.Signal<FlowRecordFilter[]>;
3402
3402
  readonly operators: _angular_core.Signal<_esfaenza_flow_builder.FlowDictionaryEntry[]>;
3403
+ /**
3404
+ * Il tipo del campo filtrato, **compresi i percorsi di relazione**: `Cliente.Citta` non e' nella
3405
+ * lista piatta dei campi dell'entita' e il suo tipo si ricava navigando la catena (§4.4). Senza,
3406
+ * un campo `Enum` raggiunto per relazione tornava una casella di testo su un insieme chiuso (§4.6).
3407
+ *
3408
+ * L'`usage` e' quello del campo — `filterable` fra i filtri — e vale per l'**ultimo** segmento: i
3409
+ * segmenti intermedi li chiede `resolvePath` con `any`, perche' l'uso riguarda il campo confrontato
3410
+ * e non la relazione che porta a lui.
3411
+ */
3412
+ private readonly types;
3403
3413
  constructor();
3404
3414
  /**
3405
3415
  * §5.7 — l'identificativo esiste ma **non e' filtrabile**: e' il caso di una chiave composta,
@@ -3407,7 +3417,7 @@ declare class RecordFilterEditorComponent {
3407
3417
  * evita la ricerca di un campo che nell'elenco non c'e' e non ci sara'.
3408
3418
  */
3409
3419
  readonly identifierNotFilterable: _angular_core.Signal<boolean>;
3410
- readonly logicMode: _angular_core.Signal<"formula" | "and" | "or" | "custom">;
3420
+ readonly logicMode: _angular_core.Signal<"and" | "or" | "formula" | "custom">;
3411
3421
  readonly customLogic: _angular_core.Signal<string>;
3412
3422
  readonly showEmptyWarning: _angular_core.Signal<boolean>;
3413
3423
  addFilter(): void;
@@ -3423,13 +3433,12 @@ declare class RecordFilterEditorComponent {
3423
3433
  setFormula(formula: string): void;
3424
3434
  /**
3425
3435
  * Il tipo del campo, per proporre il controllo giusto sul valore: e' il motivo per cui il
3426
- * catalogo resta caricato qui, e non solo dentro il picker.
3436
+ * catalogo resta interrogato qui, e non solo dentro il picker.
3427
3437
  */
3428
- fieldDataType(filter: FlowRecordFilter): string | undefined;
3438
+ fieldDataType(filter: FlowRecordFilter): FlowDataType | undefined;
3429
3439
  /**
3430
3440
  * Il tipo concreto del campo: su un campo `Enum` e' cio' che permette di proporre i valori
3431
- * ammessi invece di farli digitare (§4.6). Su un percorso di relazione il campo non e' in elenco
3432
- * e resta `undefined`, come per il tipo.
3441
+ * ammessi invece di farli digitare (§4.6).
3433
3442
  */
3434
3443
  fieldObjectType(filter: FlowRecordFilter): string | undefined;
3435
3444
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RecordFilterEditorComponent, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/flow-builder",
3
- "version": "20.3.12",
3
+ "version": "20.3.13",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.25",
6
6
  "@angular/core": "^20.3.25",