@esfaenza/es-table 20.3.33 → 20.3.36

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
@@ -2433,6 +2433,18 @@ interface Est2Column {
2433
2433
  multiIndex?: number | null;
2434
2434
  }
2435
2435
 
2436
+ /**
2437
+ * Riferimento a una cella restituito da `getCellReference`. Stessa forma d'uso
2438
+ * dell'es-table originale (`ValidationError` si legge chiamandola, `validationError`
2439
+ * la imposta), ma qui NON è un componente-cella: l'errore vive in un registro del
2440
+ * componente ed è quindi impostabile anche su righe non renderizzate.
2441
+ */
2442
+ interface Est2CellRef {
2443
+ /** Messaggio di errore corrente ('' se la cella è valida) */
2444
+ ValidationError: () => string;
2445
+ /** Imposta (o azzera, passando `null`/`undefined`) l'errore di validazione */
2446
+ validationError: (error?: string | null) => void;
2447
+ }
2436
2448
  /**
2437
2449
  * Riga della dialog "Visibilità e ordine colonne". `label` è il fallback testuale
2438
2450
  * (percorso dei gruppi + testo header letto dal DOM, o l'id); `tmpl` è il template
@@ -2512,6 +2524,8 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2512
2524
  private hostEl;
2513
2525
  private prefService;
2514
2526
  private injector;
2527
+ /** Dizionario del componente (vedi `viewProviders`): usato dal template con `| localize : lc` */
2528
+ lc: LocalizationService;
2515
2529
  private defaults;
2516
2530
  debugMode: boolean;
2517
2531
  exportGlobalAcl: string;
@@ -2559,6 +2573,19 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2559
2573
  MultipleOrderingDirectives: _angular_core.InputSignal<boolean>;
2560
2574
  Removal: _angular_core.InputSignal<boolean>;
2561
2575
  RemovalCondition: _angular_core.InputSignal<string>;
2576
+ /**
2577
+ * Classe CSS aggiuntiva per la riga, decisa dal consumer in base all'item.
2578
+ *
2579
+ * **Attenzione:** viene invocata per OGNI riga renderizzata a OGNI ciclo di
2580
+ * change-detection (l'originale la calcolava una volta sola per bind, in
2581
+ * `item._rowClass`). Deve quindi restare economica: niente lookup pesanti,
2582
+ * calcoli su date o chiamate a servizi: in quel caso conviene precalcolare il
2583
+ * valore sull'item e limitarsi a leggerlo qui.
2584
+ *
2585
+ * A differenza dell'originale NON viene aggiunta alcuna classe `est-row-lvl-N`
2586
+ * in modalità gerarchica: l'indentazione dei livelli è resa con il padding
2587
+ * calcolato (`hierarchyIndent`), non con una classe per livello.
2588
+ */
2562
2589
  RowClassAssigner?: (item: any) => string;
2563
2590
  readonly _HidePaging: _angular_core.InputSignal<boolean>;
2564
2591
  HidePaging: _angular_core.WritableSignal<boolean>;
@@ -2769,6 +2796,13 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2769
2796
  */
2770
2797
  columnGroupBoundaries: _angular_core.Signal<Set<number>>;
2771
2798
  /** Numero di elementi totali (per il pager) */
2799
+ /**
2800
+ * Versione del MODELLO, incrementata da `forceRefresh()`. Serve ai computed che
2801
+ * derivano dal modello (conteggio, pagine): se il consumer muta l'array SUL POSTO
2802
+ * la reference non cambia, il signal `view` non notifica e quei computed
2803
+ * resterebbero memoizzati sul valore vecchio.
2804
+ */
2805
+ private modelVersion;
2772
2806
  totalCount: _angular_core.Signal<any>;
2773
2807
  /** Pagina corrente per il pager */
2774
2808
  currentPage: _angular_core.Signal<any>;
@@ -2777,7 +2811,9 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2777
2811
  private readonly effectiveAllValue;
2778
2812
  private onChange;
2779
2813
  private onTouched;
2780
- constructor(ngControl: NgControl, cdr: ChangeDetectorRef, hostEl: ElementRef<HTMLElement>, prefService: PreferencesService, injector: Injector, defaults: EsTableDefaultable, debugMode: boolean, exportGlobalAcl: string);
2814
+ constructor(ngControl: NgControl, cdr: ChangeDetectorRef, hostEl: ElementRef<HTMLElement>, prefService: PreferencesService, injector: Injector,
2815
+ /** Dizionario del componente (vedi `viewProviders`): usato dal template con `| localize : lc` */
2816
+ lc: LocalizationService, defaults: EsTableDefaultable, debugMode: boolean, exportGlobalAcl: string);
2781
2817
  /** Controller di esportazione (E4) — logica in `controllers/export.controller.ts` */
2782
2818
  private exportCtrl;
2783
2819
  ngOnInit(): void;
@@ -2937,6 +2973,12 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2937
2973
  /** Avviso transitorio mostrato in un piccolo toast (es. incolla incompatibile) */
2938
2974
  notice: _angular_core.WritableSignal<string>;
2939
2975
  private noticeTimer;
2976
+ /**
2977
+ * Scorciatoia per il dizionario del componente. Il servizio di localizzazione NON
2978
+ * gestisce segnaposto, quindi le frasi con parti variabili vanno spezzate in
2979
+ * frammenti e ricomposte qui attorno ai valori (vedi `applyPaste`/`commitEdit`).
2980
+ */
2981
+ private t;
2940
2982
  private flashNotice;
2941
2983
  private clearTextSelection;
2942
2984
  onDocCopy(event: ClipboardEvent): void;
@@ -3058,6 +3100,43 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
3058
3100
  * `{ columns (visibili), column_ordering (ordine), orders (ordinamenti) }`.
3059
3101
  */
3060
3102
  private saveColumnPrefs;
3103
+ /**
3104
+ * Forza il ricalcolo di quello che la tabella mostra. Serve al consumer che
3105
+ * MUTA l'array bindato sul posto (push/splice): senza riassegnarlo, `ngModel`
3106
+ * non notifica nulla e la tabella non se ne accorge.
3107
+ *
3108
+ * @param {boolean} relaunchSearch In viewmode rilancia anche la ricerca (default `true`)
3109
+ */
3110
+ forceRefresh(relaunchSearch?: boolean): void;
3111
+ /**
3112
+ * Azzera la selezione corrente (voci, esclusioni e "tutto selezionato").
3113
+ * Come nell'originale l'evento NON viene emesso salvo richiesta esplicita.
3114
+ *
3115
+ * @param {boolean} emit Se `true` emette `onSelectionChanged`
3116
+ */
3117
+ resetSelection(emit?: boolean): void;
3118
+ /**
3119
+ * Errori di validazione: item → (id colonna → messaggio). Chiave per identità
3120
+ * dell'oggetto, così l'errore segue la riga anche dopo ordinamenti e ripaginazioni.
3121
+ */
3122
+ private cellErrors;
3123
+ /** true se c'è almeno un errore: il template lo usa per non pagare nulla nel caso normale */
3124
+ hasCellErrors: _angular_core.WritableSignal<boolean>;
3125
+ /**
3126
+ * Riferimento a una cella su cui impostare/leggere un errore di validazione.
3127
+ * Stessa firma dell'originale; a differenza sua funziona anche se la riga non è
3128
+ * attualmente renderizzata, perché l'errore è tenuto dal componente e non dalla cella.
3129
+ *
3130
+ * @param {any} item Oggetto della riga
3131
+ * @param {string} column Id della colonna (il `th`)
3132
+ */
3133
+ getCellReference(item: any, column: string): Est2CellRef;
3134
+ /** Imposta (o azzera con `null`) l'errore di validazione di una cella */
3135
+ setCellError(item: any, column: string, error?: string | null): void;
3136
+ /** Azzera tutti gli errori di validazione (di una riga, o dell'intera tabella) */
3137
+ clearCellErrors(item?: any): void;
3138
+ /** Messaggio d'errore di una cella ('' se valida). Usato dal template. */
3139
+ cellError(item: any, col: Est2Column): string;
3061
3140
  /**
3062
3141
  * Imposta in maniera programmatica la visibilità di un header — o di un header di
3063
3142
  * GRUPPO, nel qual caso la modifica scende in cascata su tutti i `*th` che lo
@@ -3082,6 +3161,28 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
3082
3161
  private applyHeaderVisibility;
3083
3162
  /** Attiva/disattiva il pin di una colonna e persiste (dall'indicatore in testata) */
3084
3163
  togglePin(col: Est2Column, ev?: Event): void;
3164
+ /** `AppEmbeddingExtensions` risolto pigramente: `providedIn:'root'` ma le sue
3165
+ * dipendenze possono mancare in setup isolati, quindi `get` può lanciare. */
3166
+ private embSvc;
3167
+ private resolveEmbedding;
3168
+ /** true quando la tabella è incorporata in un'applicazione ospite */
3169
+ get embedded(): boolean;
3170
+ /** La dialog è aperta ma il backdrop non è ancora nel DOM: misuro appena compare */
3171
+ private embedNotifyPending;
3172
+ /**
3173
+ * ViewChild-setter sul backdrop: appena esiste ne misuro l'altezza e la mando
3174
+ * alla finestra principale, esattamente come faceva l'originale leggendola dal
3175
+ * backdrop di ngx-bootstrap.
3176
+ */
3177
+ set dialogBackdropRef(ref: ElementRef<HTMLElement> | undefined);
3178
+ /** Invia un messaggio alla finestra principale dell'applicazione ospite */
3179
+ private postEmbedMessage;
3180
+ /**
3181
+ * Unico punto di apertura/chiusura della dialog: tiene allineata la notifica
3182
+ * all'ospite, qualunque sia il pulsante che l'ha chiusa (Applica, Annulla,
3183
+ * Ripristina, la X o il click sul backdrop).
3184
+ */
3185
+ private setColumnsDialogOpen;
3085
3186
  columnsDialogOpen: _angular_core.WritableSignal<boolean>;
3086
3187
  /** Lista di lavoro della dialog (copia, per poter annullare) */
3087
3188
  dialogCols: _angular_core.WritableSignal<Est2DialogColumn[]>;
@@ -3221,7 +3322,7 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
3221
3322
  private persistColumnWidths;
3222
3323
  trackRow: (i: number, item: any) => any;
3223
3324
  trackCol: (_: number, col: Est2Column) => string;
3224
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTable2Component, [{ optional: true; self: true; }, null, null, { optional: true; }, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
3325
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTable2Component, [{ optional: true; self: true; }, null, null, { optional: true; }, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
3225
3326
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EsTable2Component, "es-table2", never, { "ContextMenu": { "alias": "ContextMenu"; "required": false; }; "_Selection": { "alias": "Selection"; "required": false; "isSignal": true; }; "SingleSelection": { "alias": "SingleSelection"; "required": false; "isSignal": true; }; "SelectionDisabled": { "alias": "SelectionDisabled"; "required": false; "isSignal": true; }; "_SelectAll": { "alias": "SelectAll"; "required": false; "isSignal": true; }; "_UseSelectionCache": { "alias": "UseSelectionCache"; "required": false; "isSignal": true; }; "_ShiftClick": { "alias": "ShiftClick"; "required": false; "isSignal": true; }; "_OrderByColumn": { "alias": "OrderByColumn"; "required": false; "isSignal": true; }; "MultipleOrderingDirectives": { "alias": "MultipleOrderingDirectives"; "required": false; "isSignal": true; }; "Removal": { "alias": "Removal"; "required": false; "isSignal": true; }; "RemovalCondition": { "alias": "RemovalCondition"; "required": false; "isSignal": true; }; "RowClassAssigner": { "alias": "RowClassAssigner"; "required": false; }; "_HidePaging": { "alias": "HidePaging"; "required": false; "isSignal": true; }; "_HidePagingCount": { "alias": "HidePagingCount"; "required": false; "isSignal": true; }; "_HidePagingButtons": { "alias": "HidePagingButtons"; "required": false; "isSignal": true; }; "_AllSearch": { "alias": "AllSearch"; "required": false; "isSignal": true; }; "_PagingStyle": { "alias": "PagingStyle"; "required": false; "isSignal": true; }; "_ArraymodeItemsPerPage": { "alias": "ArraymodeItemsPerPage"; "required": false; "isSignal": true; }; "_UseArrayModePaging": { "alias": "UseArrayModePaging"; "required": false; "isSignal": true; }; "CountLabel": { "alias": "CountLabel"; "required": false; "isSignal": true; }; "Height": { "alias": "Height"; "required": false; "isSignal": true; }; "MaxHeight": { "alias": "MaxHeight"; "required": false; "isSignal": true; }; "EmptySpaceBackgroundColor": { "alias": "EmptySpaceBackgroundColor"; "required": false; "isSignal": true; }; "HighCellDensity": { "alias": "HighCellDensity"; "required": false; "isSignal": true; }; "HeaderHidden": { "alias": "HeaderHidden"; "required": false; "isSignal": true; }; "BodyHidden": { "alias": "BodyHidden"; "required": false; "isSignal": true; }; "ShowLoadingOnBootstrap": { "alias": "ShowLoadingOnBootstrap"; "required": false; "isSignal": true; }; "_DefaultAlignment": { "alias": "DefaultAlignment"; "required": false; "isSignal": true; }; "_TableClass": { "alias": "TableClass"; "required": false; "isSignal": true; }; "_ContainerClass": { "alias": "ContainerClass"; "required": false; "isSignal": true; }; "EsTableHandledSearch": { "alias": "EsTableHandledSearch"; "required": false; "isSignal": true; }; "SearchThrottle": { "alias": "SearchThrottle"; "required": false; "isSignal": true; }; "_ColumnsResizable": { "alias": "ColumnsResizable"; "required": false; "isSignal": true; }; "_ColumnsPinnable": { "alias": "ColumnsPinnable"; "required": false; "isSignal": true; }; "_HiddenColumns": { "alias": "HiddenColumns"; "required": false; "isSignal": true; }; "_ColumnsOrdering": { "alias": "ColumnsOrdering"; "required": false; "isSignal": true; }; "_Export": { "alias": "Export"; "required": false; "isSignal": true; }; "XLSXExport": { "alias": "XLSXExport"; "required": false; "isSignal": true; }; "CSVExport": { "alias": "CSVExport"; "required": false; "isSignal": true; }; "ExportFileName": { "alias": "ExportFileName"; "required": false; "isSignal": true; }; "ExportOnlyVisibleColumns": { "alias": "ExportOnlyVisibleColumns"; "required": false; "isSignal": true; }; "ExportFunction": { "alias": "ExportFunction"; "required": false; }; "CornerMenuOptions": { "alias": "CornerMenuOptions"; "required": false; "isSignal": true; }; "DynamicOperations": { "alias": "DynamicOperations"; "required": false; "isSignal": true; }; "_DynamicRowColumnsDefinition": { "alias": "DynamicRowColumnsDefinition"; "required": false; "isSignal": true; }; "Hierarchy": { "alias": "Hierarchy"; "required": false; "isSignal": true; }; "_ParentKey": { "alias": "ParentKey"; "required": false; "isSignal": true; }; "_OwnKey": { "alias": "OwnKey"; "required": false; "isSignal": true; }; "_AutoSortHierarchy": { "alias": "AutoSortHierarchy"; "required": false; "isSignal": true; }; "StartsExpanded": { "alias": "StartsExpanded"; "required": false; "isSignal": true; }; "CascadeSelection": { "alias": "CascadeSelection"; "required": false; "isSignal": true; }; "_SavePreferences": { "alias": "SavePreferences"; "required": false; "isSignal": true; }; "Name": { "alias": "Name"; "required": false; "isSignal": true; }; "_RowGroupingPagingStyle": { "alias": "RowGroupingPagingStyle"; "required": false; "isSignal": true; }; "_ShowItemGroupsColumns": { "alias": "ShowItemGroupsColumns"; "required": false; "isSignal": true; }; "Editable": { "alias": "Editable"; "required": false; "isSignal": true; }; "RangeSelection": { "alias": "RangeSelection"; "required": false; "isSignal": true; }; "ItemSourceProperty": { "alias": "ItemSourceProperty"; "required": false; "isSignal": true; }; "HasHeaderGroup": { "alias": "HasHeaderGroup"; "required": false; "isSignal": true; }; "HasSecondaryHeaderGroup": { "alias": "HasSecondaryHeaderGroup"; "required": false; "isSignal": true; }; "SearchView": { "alias": "SearchView"; "required": false; "isSignal": true; }; "_AutoUpdate": { "alias": "AutoUpdate"; "required": false; "isSignal": true; }; "EsThTdProvider": { "alias": "EsThTdProvider"; "required": false; }; "globalCheck": { "alias": "globalCheck"; "required": false; "isSignal": true; }; "autoUpdate": { "alias": "autoUpdate"; "required": false; "isSignal": true; }; "seconds": { "alias": "seconds"; "required": false; "isSignal": true; }; "researchInProgress": { "alias": "researchInProgress"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; }; }, { "onOrderChanged": "onOrderChanged"; "onSearchRequest": "onSearchRequest"; "onSelectionChanged": "onSelectionChanged"; "onRemoval": "onRemoval"; "onAbortRemoval": "onAbortRemoval"; "onModelChange": "onModelChange"; "onOpenContextMenu": "onOpenContextMenu"; "onCornerAction": "onCornerAction"; "onDynamicOperation": "onDynamicOperation"; "globalCheck": "globalCheckChange"; "autoUpdate": "autoUpdateChange"; "seconds": "secondsChange"; "researchInProgress": "researchInProgressChange"; }, ["headerRef", "bodyRef", "thDirectives", "tdDirectives", "editorDirectives", "thTdProviders"], never, false, never>;
3226
3327
  }
3227
3328
 
@@ -3389,6 +3490,12 @@ declare class EstPropInsensitivePipe implements PipeTransform {
3389
3490
  * viewMode/arrayMode — la logica di applicazione vive nel componente padre.
3390
3491
  */
3391
3492
  declare class EsTable2PagerComponent {
3493
+ lc: LocalizationService;
3494
+ /**
3495
+ * Dizionario ereditato dai `viewProviders` dell'es-table2: il pager vive nella
3496
+ * VISTA del componente padre, quindi ne condivide le traduzioni.
3497
+ */
3498
+ constructor(lc: LocalizationService);
3392
3499
  /** Valore convenzionale di items-per-page che rappresenta "Tutti" */
3393
3500
  readonly allValue = 999999;
3394
3501
  page: _angular_core.InputSignal<number>;
@@ -3520,4 +3627,4 @@ declare const EST2_EXPORT_GLOBAL_ACL: InjectionToken<string>;
3520
3627
  declare const EST2_DEFAULTS: InjectionToken<EsTableDefaultable>;
3521
3628
 
3522
3629
  export { AppOrdering, AppSearch, CornerMenuOption, EST2_DEBUG, EST2_DEFAULTS, EST2_EXPORT_GLOBAL_ACL, EST_DEBUG, EST_DEFAULTS, EST_EXPORT_GLOBAL_ACL, EsTable2Component, EsTableColumnsDefinition, EsTableComponent, EsTableDefaultable, EsTableModelChange, EsTableModule, EsTableModuleConfig, EsTableMultiValue, EsTableOperationDefinition, EsTablePagerComponent, EsTdDirective, EsTdEditorDirective, EsThDirective, GenericItem, Group, GroupAggregation, GroupFilter, GroupOrAggregation, ItemPropEditableReference, ItemsSelection, ReportColumn, ReportParam, ReportRow, ThTdProvider };
3523
- export type { Est2Column, Est2DialogColumn, Est2HeaderGroupCell, Est2Row, InputType };
3630
+ export type { Est2CellRef, Est2Column, Est2DialogColumn, Est2HeaderGroupCell, Est2Row, InputType };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/es-table",
3
- "version": "20.3.33",
3
+ "version": "20.3.36",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },