@esfaenza/es-table 20.3.19 → 20.3.21

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
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { ChangeDetectorRef, EventEmitter, WritableSignal, Signal, TemplateRef, ElementRef, QueryList, NgZone, Renderer2, Type, AfterContentInit, OnDestroy, PipeTransform, ModuleWithProviders, InjectionToken } from '@angular/core';
2
+ import { ChangeDetectorRef, EventEmitter, WritableSignal, Signal, TemplateRef, ElementRef, QueryList, NgZone, Renderer2, Type, AfterContentInit, OnDestroy, Injector, PipeTransform, ModuleWithProviders, InjectionToken } from '@angular/core';
3
3
  import * as i22 from '@esfaenza/localizations';
4
4
  import { LocalizationService } from '@esfaenza/localizations';
5
5
  import * as i23 from '@esfaenza/extensions';
@@ -2442,6 +2442,7 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2442
2442
  cdr: ChangeDetectorRef;
2443
2443
  private hostEl;
2444
2444
  private prefService;
2445
+ private injector;
2445
2446
  private defaults;
2446
2447
  debugMode: boolean;
2447
2448
  exportGlobalAcl: string;
@@ -2525,7 +2526,7 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2525
2526
  CSVExport: _angular_core.InputSignal<boolean>;
2526
2527
  ExportFileName: _angular_core.InputSignal<string>;
2527
2528
  ExportOnlyVisibleColumns: _angular_core.InputSignal<boolean>;
2528
- ExportFunction?: (callback: (data: any[], type: Type<any>) => void, format: 'CSV' | 'XLSX') => void;
2529
+ ExportFunction?: (callback: (data: any[], type: Type<any>, cancel?: boolean) => void, format: 'CSV' | 'XLSX') => void;
2529
2530
  CornerMenuOptions: _angular_core.InputSignal<CornerMenuOption[]>;
2530
2531
  DynamicOperations: _angular_core.InputSignal<EsTableOperationDefinition[]>;
2531
2532
  readonly _DynamicRowColumnsDefinition: _angular_core.InputSignal<EsTableColumnsDefinition[]>;
@@ -2658,7 +2659,7 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2658
2659
  private inited;
2659
2660
  private onChange;
2660
2661
  private onTouched;
2661
- constructor(ngControl: NgControl, cdr: ChangeDetectorRef, hostEl: ElementRef<HTMLElement>, prefService: PreferencesService, defaults: EsTableDefaultable, debugMode: boolean, exportGlobalAcl: string);
2662
+ constructor(ngControl: NgControl, cdr: ChangeDetectorRef, hostEl: ElementRef<HTMLElement>, prefService: PreferencesService, injector: Injector, defaults: EsTableDefaultable, debugMode: boolean, exportGlobalAcl: string);
2662
2663
  ngOnInit(): void;
2663
2664
  ngOnDestroy(): void;
2664
2665
  /** Risoluzione input: valore esplicito || default di progetto || hard default */
@@ -2969,8 +2970,33 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2969
2970
  private exportRows;
2970
2971
  /** Matrice [header, ...righe] con i valori visualizzati */
2971
2972
  private buildExportMatrix;
2973
+ /**
2974
+ * Etichetta di intestazione per l'export self-contained: usa il testo header
2975
+ * RENDERIZZATO letto dal DOM (rispetta il casing del template `*th`, es. "ID"),
2976
+ * con fallback su `columnLabel` (headerText statico / id) se il DOM non è leggibile.
2977
+ */
2978
+ private headerLabel;
2979
+ /** @ignore Evita esportazioni concorrenti (parità con l'`ExportHandler` originale) */
2980
+ private exportInProgress;
2981
+ /**
2982
+ * `ExportService` risolto PIGRAMENTE e in modo difensivo: `undefined` = non ancora
2983
+ * risolto, `null` = non disponibile. È `providedIn:'root'` ma la sua costruzione
2984
+ * dipende da `LocalizationService`/`DateService`/`UtilityService`; se quella catena
2985
+ * non è presente (test isolati, o consumer che non importa `@esfaenza/extensions`),
2986
+ * `injector.get` lancia → catturo e faccio fallback al percorso self-contained.
2987
+ */
2988
+ private exportService;
2989
+ private resolveExportService;
2972
2990
  export(format?: 'CSV' | 'XLSX'): void;
2973
- /** Esporta dati forniti dal consumer (via ExportFunction): li mappa sulle colonne correnti */
2991
+ /**
2992
+ * Delego all'`ExportService` originale replicando esattamente `ExportHandler.tryExport`:
2993
+ * `export(data, format, fileName, type, columnsFilter, genericHeaders)`. Così l'export
2994
+ * è guidato dai decoratori `@Export` della classe `type`, byte-compatibile con es-table1.
2995
+ * Se il servizio non è disponibile (raro: è `providedIn:'root'` nel package), fallback
2996
+ * al percorso self-contained mappando le colonne `*th`.
2997
+ */
2998
+ private exportViaService;
2999
+ /** @deprecated Percorso di fallback self-contained (usato solo senza ExportService) */
2974
3000
  private exportData;
2975
3001
  private exportCsv;
2976
3002
  private exportXlsx;
@@ -2982,14 +3008,21 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2982
3008
  hasChrome(): boolean;
2983
3009
  /** Colspan totale per righe a piena larghezza (stato vuoto) */
2984
3010
  totalColspan(): number;
2985
- /** Valore grezzo di una proprietà, gestendo gli oggetti "generic" con `properties` */
3011
+ /**
3012
+ * Valore grezzo di una proprietà, gestendo gli oggetti "generic" con `properties`.
3013
+ * Se la colonna non dichiara una `Property` esplicita si usa l'`id` del `*th` come
3014
+ * chiave (convenzione: l'id della colonna è il nome della proprietà) — così le
3015
+ * colonne rese solo via template `*td` (es. `*th='id'` senza `Property`) hanno
3016
+ * comunque un valore per export/copia. È un percorso di SOLA LETTURA: l'editing/
3017
+ * paste continua a richiedere una `Property` esplicita (vedi `rawCellValue`).
3018
+ */
2986
3019
  cellValue(item: any, col: Est2Column): any;
2987
3020
  /** Entry Multi corrispondente a una cella (`item[multiProp][multiIndex]`) */
2988
3021
  multiCell(item: any, col: Est2Column): any;
2989
3022
  trackByIndex: (i: number) => number;
2990
3023
  trackRow: (i: number, item: any) => any;
2991
3024
  trackCol: (_: number, col: Est2Column) => string;
2992
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTable2Component, [{ optional: true; self: true; }, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
3025
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTable2Component, [{ optional: true; self: true; }, null, null, { optional: true; }, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
2993
3026
  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>;
2994
3027
  }
2995
3028
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/es-table",
3
- "version": "20.3.19",
3
+ "version": "20.3.21",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },