@esfaenza/es-table 20.3.35 → 20.3.37

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
@@ -2524,6 +2524,8 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2524
2524
  private hostEl;
2525
2525
  private prefService;
2526
2526
  private injector;
2527
+ /** Dizionario del componente (vedi `viewProviders`): usato dal template con `| localize : lc` */
2528
+ lc: LocalizationService;
2527
2529
  private defaults;
2528
2530
  debugMode: boolean;
2529
2531
  exportGlobalAcl: string;
@@ -2602,6 +2604,19 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2602
2604
  CountLabel: _angular_core.InputSignal<string>;
2603
2605
  Height: _angular_core.InputSignal<string>;
2604
2606
  MaxHeight: _angular_core.InputSignal<number>;
2607
+ /**
2608
+ * Rende solo le righe VISIBILI nel viewport (più un margine), con due righe
2609
+ * distanziatrici a compensare l'altezza mancante. Serve a tabelle molto lunghe
2610
+ * rese in un colpo solo (paginazione disattivata o pagina enorme).
2611
+ *
2612
+ * È OPT-IN: da spento il corpo della tabella è renderizzato esattamente come prima.
2613
+ * Richiede uno scroller ad altezza limitata (`[MaxHeight]`/`[Height]`) e righe di
2614
+ * altezza UNIFORME. Su raggruppamento e gerarchia si autodisattiva: lì il ciclo
2615
+ * salta le righe non visibili, quindi indice di riga e posizione non coincidono.
2616
+ */
2617
+ VirtualScroll: _angular_core.InputSignal<boolean>;
2618
+ /** Altezza di riga in px per il calcolo della finestra; se assente viene MISURATA dal DOM */
2619
+ VirtualRowHeight: _angular_core.InputSignal<number>;
2605
2620
  EmptySpaceBackgroundColor: _angular_core.InputSignal<string>;
2606
2621
  HighCellDensity: _angular_core.InputSignal<boolean>;
2607
2622
  HeaderHidden: _angular_core.InputSignal<boolean>;
@@ -2752,6 +2767,41 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2752
2767
  left: number | null;
2753
2768
  groupStart: boolean;
2754
2769
  }[]>;
2770
+ /** Righe extra rese sopra e sotto il viewport, per non vedere il vuoto durante lo scroll */
2771
+ private readonly VIRTUAL_OVERSCAN;
2772
+ /** Indice della prima riga della finestra */
2773
+ private vFirst;
2774
+ /** Altezza del viewport dello scroller (misurata) */
2775
+ private vViewportH;
2776
+ /** Altezza di riga misurata dal DOM (0 = non ancora nota) */
2777
+ private vMeasuredRowH;
2778
+ /** Altezza di riga effettiva: input esplicito, altrimenti misura */
2779
+ private virtualRowH;
2780
+ /**
2781
+ * Virtualizzazione attiva. Esclusi raggruppamento e gerarchia: in quelle modalità
2782
+ * il template salta le righe non espanse, quindi la finestra calcolata sugli indici
2783
+ * non corrisponderebbe alle righe effettivamente rese.
2784
+ */
2785
+ virtualActive: _angular_core.Signal<boolean>;
2786
+ /** Finestra corrente, o `null` per rendere tutto (fallback sicuro) */
2787
+ virtualWindow: _angular_core.Signal<{
2788
+ start: number;
2789
+ end: number;
2790
+ padTop: number;
2791
+ padBottom: number;
2792
+ }>;
2793
+ /** Indice ASSOLUTO della prima riga resa: 0 quando non si virtualizza */
2794
+ vStart: _angular_core.Signal<number>;
2795
+ /** Righe effettivamente rese: l'intero `boundSource()` se non si virtualizza */
2796
+ renderedRows: _angular_core.Signal<Est2Row[]>;
2797
+ /** Scroll dello scroller: sposta la finestra solo quando cambia davvero riga */
2798
+ onScrollerScroll(ev: Event): void;
2799
+ /** Misura viewport e altezza di riga dal DOM (una riga NON distanziatrice) */
2800
+ private measureVirtualMetrics;
2801
+ private scrollEl?;
2802
+ private scrollRO?;
2803
+ /** ViewChild-setter sullo scroller: da qui partono le misure della virtualizzazione */
2804
+ set scrollRefEl(ref: ElementRef<HTMLElement> | undefined);
2755
2805
  /** Numero di colonne pinnate visibili */
2756
2806
  pinnedCount: _angular_core.Signal<number>;
2757
2807
  /** true se c'è almeno una colonna pinnata */
@@ -2809,7 +2859,9 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2809
2859
  private readonly effectiveAllValue;
2810
2860
  private onChange;
2811
2861
  private onTouched;
2812
- constructor(ngControl: NgControl, cdr: ChangeDetectorRef, hostEl: ElementRef<HTMLElement>, prefService: PreferencesService, injector: Injector, defaults: EsTableDefaultable, debugMode: boolean, exportGlobalAcl: string);
2862
+ constructor(ngControl: NgControl, cdr: ChangeDetectorRef, hostEl: ElementRef<HTMLElement>, prefService: PreferencesService, injector: Injector,
2863
+ /** Dizionario del componente (vedi `viewProviders`): usato dal template con `| localize : lc` */
2864
+ lc: LocalizationService, defaults: EsTableDefaultable, debugMode: boolean, exportGlobalAcl: string);
2813
2865
  /** Controller di esportazione (E4) — logica in `controllers/export.controller.ts` */
2814
2866
  private exportCtrl;
2815
2867
  ngOnInit(): void;
@@ -2969,6 +3021,12 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2969
3021
  /** Avviso transitorio mostrato in un piccolo toast (es. incolla incompatibile) */
2970
3022
  notice: _angular_core.WritableSignal<string>;
2971
3023
  private noticeTimer;
3024
+ /**
3025
+ * Scorciatoia per il dizionario del componente. Il servizio di localizzazione NON
3026
+ * gestisce segnaposto, quindi le frasi con parti variabili vanno spezzate in
3027
+ * frammenti e ricomposte qui attorno ai valori (vedi `applyPaste`/`commitEdit`).
3028
+ */
3029
+ private t;
2972
3030
  private flashNotice;
2973
3031
  private clearTextSelection;
2974
3032
  onDocCopy(event: ClipboardEvent): void;
@@ -3312,8 +3370,8 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
3312
3370
  private persistColumnWidths;
3313
3371
  trackRow: (i: number, item: any) => any;
3314
3372
  trackCol: (_: number, col: Est2Column) => string;
3315
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTable2Component, [{ optional: true; self: true; }, null, null, { optional: true; }, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
3316
- 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>;
3373
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTable2Component, [{ optional: true; self: true; }, null, null, { optional: true; }, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
3374
+ 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; }; "VirtualScroll": { "alias": "VirtualScroll"; "required": false; "isSignal": true; }; "VirtualRowHeight": { "alias": "VirtualRowHeight"; "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>;
3317
3375
  }
3318
3376
 
3319
3377
  /** Componente rappresentante una Colonna della tabella */
@@ -3480,6 +3538,12 @@ declare class EstPropInsensitivePipe implements PipeTransform {
3480
3538
  * viewMode/arrayMode — la logica di applicazione vive nel componente padre.
3481
3539
  */
3482
3540
  declare class EsTable2PagerComponent {
3541
+ lc: LocalizationService;
3542
+ /**
3543
+ * Dizionario ereditato dai `viewProviders` dell'es-table2: il pager vive nella
3544
+ * VISTA del componente padre, quindi ne condivide le traduzioni.
3545
+ */
3546
+ constructor(lc: LocalizationService);
3483
3547
  /** Valore convenzionale di items-per-page che rappresenta "Tutti" */
3484
3548
  readonly allValue = 999999;
3485
3549
  page: _angular_core.InputSignal<number>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/es-table",
3
- "version": "20.3.35",
3
+ "version": "20.3.37",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },