@esfaenza/es-table 20.3.22 → 20.3.24
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/fesm2022/esfaenza-es-table.mjs +793 -549
- package/fesm2022/esfaenza-es-table.mjs.map +1 -1
- package/index.d.ts +135 -81
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -2352,6 +2352,15 @@ declare class EsTableModuleConfig {
|
|
|
2352
2352
|
globalExportAclExpression?: string;
|
|
2353
2353
|
}
|
|
2354
2354
|
|
|
2355
|
+
/** Cella di una riga di header-group multi-livello (span su N colonne-dato). */
|
|
2356
|
+
interface Est2HeaderGroupCell {
|
|
2357
|
+
id: string;
|
|
2358
|
+
span: number;
|
|
2359
|
+
isGroup: boolean;
|
|
2360
|
+
label: string;
|
|
2361
|
+
template: TemplateRef<any> | null;
|
|
2362
|
+
}
|
|
2363
|
+
|
|
2355
2364
|
/** Specifica di una singola aggregazione estratta da un template `{func:format}` */
|
|
2356
2365
|
interface Est2AggSpec {
|
|
2357
2366
|
/** Colonna su cui calcolare l'aggregazione */
|
|
@@ -2378,13 +2387,16 @@ interface Est2Column {
|
|
|
2378
2387
|
orderable: boolean;
|
|
2379
2388
|
alignment: 'left' | 'right' | 'center';
|
|
2380
2389
|
property: string | null;
|
|
2381
|
-
type:
|
|
2390
|
+
type: InputType | null;
|
|
2382
2391
|
source: {
|
|
2383
2392
|
id: any;
|
|
2384
2393
|
description: string;
|
|
2385
2394
|
}[] | null;
|
|
2386
2395
|
format: string | null;
|
|
2396
|
+
/** classe CSS della CELLA (`*td Class`) — applicata solo ai `<td>` */
|
|
2387
2397
|
cssClass: string;
|
|
2398
|
+
/** classe CSS dell'HEADER (`*th Class`) — applicata solo ai `<th>` */
|
|
2399
|
+
headerClass: string;
|
|
2388
2400
|
wrap: boolean;
|
|
2389
2401
|
/** true se questa colonna è una chiave di raggruppamento (`thGroup`) */
|
|
2390
2402
|
isGroup: boolean;
|
|
@@ -2412,18 +2424,44 @@ interface Est2Column {
|
|
|
2412
2424
|
/** colonna Multi: indice dell'entry dentro l'array della proprietà */
|
|
2413
2425
|
multiIndex?: number | null;
|
|
2414
2426
|
}
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
/**
|
|
2424
|
-
|
|
2425
|
-
/**
|
|
2426
|
-
|
|
2427
|
+
|
|
2428
|
+
/**
|
|
2429
|
+
* Riga della tabella. Oltre ai dati aperti del consumer (index signature) porta
|
|
2430
|
+
* un insieme FISSO di flag interni iniettati da grouping/hierarchy/selezione. Tiparli
|
|
2431
|
+
* qui documenta il contratto in un unico posto e riduce la superficie di refuso.
|
|
2432
|
+
*/
|
|
2433
|
+
interface Est2Row {
|
|
2434
|
+
[k: string]: any;
|
|
2435
|
+
/** selezione di riga */
|
|
2436
|
+
_selected?: boolean;
|
|
2437
|
+
/** riga-gruppo (intestazione di un raggruppamento) */
|
|
2438
|
+
_group?: boolean;
|
|
2439
|
+
/** riga-dato (foglia) */
|
|
2440
|
+
_item?: boolean;
|
|
2441
|
+
/** visibile (collasso gruppo / gerarchia) */
|
|
2442
|
+
_visible?: boolean;
|
|
2443
|
+
/** gruppo/nodo espanso */
|
|
2444
|
+
_expanded?: boolean;
|
|
2445
|
+
/** livello gerarchico (1-based) */
|
|
2446
|
+
_level?: number;
|
|
2447
|
+
/** profondità di annidamento gruppo (0-based) */
|
|
2448
|
+
_grouplevel?: number;
|
|
2449
|
+
/** aggregazioni per colonna → funzione → valore formattato */
|
|
2450
|
+
_agg?: Map<string, Map<string, string>>;
|
|
2451
|
+
/** chiave path del gruppo/item */
|
|
2452
|
+
_thisKey?: string;
|
|
2453
|
+
/** chiave del gruppo padre */
|
|
2454
|
+
_parent?: string | null;
|
|
2455
|
+
/** numero di sotto-gruppi */
|
|
2456
|
+
_groupscount?: number;
|
|
2457
|
+
/** riga separatore (consumer) */
|
|
2458
|
+
_sep?: boolean;
|
|
2459
|
+
/** gerarchia: il nodo ha figli */
|
|
2460
|
+
parent?: boolean;
|
|
2461
|
+
/** id per trackBy (consumer) */
|
|
2462
|
+
_hash?: any;
|
|
2463
|
+
/** oggetti "generic": bag delle proprietà */
|
|
2464
|
+
properties?: Record<string, any>;
|
|
2427
2465
|
}
|
|
2428
2466
|
/**
|
|
2429
2467
|
* es-table2 — riscrittura 2026 dell'es-table.
|
|
@@ -2472,6 +2510,7 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2472
2510
|
SelectionDisabled: _angular_core.InputSignal<boolean>;
|
|
2473
2511
|
readonly _SelectAll: _angular_core.InputSignal<boolean>;
|
|
2474
2512
|
SelectAll: _angular_core.WritableSignal<boolean>;
|
|
2513
|
+
/** @deprecated NO-OP di parità v1 (cache selezione cross-pagina): dichiarato per il drop-in, non usato */
|
|
2475
2514
|
readonly _UseSelectionCache: _angular_core.InputSignal<boolean>;
|
|
2476
2515
|
UseSelectionCache: _angular_core.WritableSignal<boolean>;
|
|
2477
2516
|
readonly _ShiftClick: _angular_core.InputSignal<boolean>;
|
|
@@ -2512,6 +2551,9 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2512
2551
|
ContainerClass: _angular_core.WritableSignal<string>;
|
|
2513
2552
|
EsTableHandledSearch: _angular_core.InputSignal<boolean>;
|
|
2514
2553
|
SearchThrottle: _angular_core.InputSignal<number>;
|
|
2554
|
+
/** Abilita il ridimensionamento via handle sul bordo destro dell'header delle colonne PINNATE
|
|
2555
|
+
* (la nuova larghezza è persistita nelle preferenze). Il resize delle colonne non pinnate
|
|
2556
|
+
* non è ancora portato. */
|
|
2515
2557
|
readonly _ColumnsResizable: _angular_core.InputSignal<boolean>;
|
|
2516
2558
|
ColumnsResizable: _angular_core.WritableSignal<boolean>;
|
|
2517
2559
|
readonly _ColumnsPinnable: _angular_core.InputSignal<boolean>;
|
|
@@ -2545,13 +2587,17 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2545
2587
|
SavePreferences: _angular_core.WritableSignal<boolean>;
|
|
2546
2588
|
/** Nome della tabella: chiave per la persistenza delle preferenze colonne (localStorage) */
|
|
2547
2589
|
Name: _angular_core.InputSignal<string>;
|
|
2590
|
+
/** @deprecated NO-OP di parità v1 (stile paginazione gruppi): dichiarato per il drop-in, non risolto/usato */
|
|
2548
2591
|
readonly _RowGroupingPagingStyle: _angular_core.InputSignal<"left" | "right">;
|
|
2549
2592
|
readonly _ShowItemGroupsColumns: _angular_core.InputSignal<boolean>;
|
|
2550
2593
|
Editable: _angular_core.InputSignal<boolean>;
|
|
2551
2594
|
RangeSelection: _angular_core.InputSignal<boolean>;
|
|
2552
2595
|
ItemSourceProperty: _angular_core.InputSignal<string>;
|
|
2596
|
+
/** @deprecated NO-OP di parità v1 (header-group manuali, superati da `Parent:`/`Multi`) */
|
|
2553
2597
|
HasHeaderGroup: _angular_core.InputSignal<boolean>;
|
|
2598
|
+
/** @deprecated NO-OP di parità v1 (seconda riga header-group manuale) */
|
|
2554
2599
|
HasSecondaryHeaderGroup: _angular_core.InputSignal<boolean>;
|
|
2600
|
+
/** @deprecated NO-OP di parità v1 (drill-down gruppi server-side, non portato) */
|
|
2555
2601
|
SearchView: _angular_core.InputSignal<AppSearch<any>>;
|
|
2556
2602
|
/** Abilita il "patacchino" di auto-aggiornamento (toggle + intervallo) in alto a destra */
|
|
2557
2603
|
readonly _AutoUpdate: _angular_core.InputSignal<boolean>;
|
|
@@ -2559,7 +2605,7 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2559
2605
|
/** Provider esterno di `*th`/`*td` (pattern `td_th_provider`), passato per riferimento */
|
|
2560
2606
|
EsThTdProvider?: ThTdProvider;
|
|
2561
2607
|
onOrderChanged: EventEmitter<AppOrdering>;
|
|
2562
|
-
onSearchRequest: EventEmitter<
|
|
2608
|
+
onSearchRequest: EventEmitter<boolean>;
|
|
2563
2609
|
onSelectionChanged: EventEmitter<ItemsSelection<any>>;
|
|
2564
2610
|
onRemoval: EventEmitter<any>;
|
|
2565
2611
|
onAbortRemoval: EventEmitter<any>;
|
|
@@ -2585,7 +2631,7 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2585
2631
|
arrayMode: _angular_core.WritableSignal<boolean>;
|
|
2586
2632
|
firstBind: _angular_core.WritableSignal<boolean>;
|
|
2587
2633
|
/** Righe attualmente visualizzate (già paginate/ordinate) */
|
|
2588
|
-
boundSource: _angular_core.WritableSignal<
|
|
2634
|
+
boundSource: _angular_core.WritableSignal<Est2Row[]>;
|
|
2589
2635
|
/** Colonne derivate dalle direttive `*th`/`*td` */
|
|
2590
2636
|
columns: _angular_core.WritableSignal<Est2Column[]>;
|
|
2591
2637
|
/** true se la tabella è pilotata dalle direttive (`*th`), false se template semplice */
|
|
@@ -2628,25 +2674,35 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2628
2674
|
hasPinned: _angular_core.Signal<boolean>;
|
|
2629
2675
|
/** Larghezza (px) della colonna di selezione quando sticky */
|
|
2630
2676
|
private readonly SEL_STICKY_W;
|
|
2677
|
+
/** Larghezza (px) di default di una colonna pinnata senza `PinnedWidth` esplicito */
|
|
2678
|
+
private readonly PINNED_DEFAULT_W;
|
|
2679
|
+
/**
|
|
2680
|
+
* Larghezza FISSA (px) di una colonna pinnata. Una colonna sticky è per contratto a
|
|
2681
|
+
* larghezza fissa: la usiamo sia per il calcolo degli offset che per vincolare la
|
|
2682
|
+
* cella (min/max-width) così il contenuto lungo viene troncato invece di sbordare
|
|
2683
|
+
* sulla colonna successiva. Default = `PINNED_DEFAULT_W` (coerente con gli offset).
|
|
2684
|
+
*/
|
|
2685
|
+
pinnedWidthPx(col: Est2Column): number;
|
|
2686
|
+
/**
|
|
2687
|
+
* Offset `left` (px) cumulativi delle colonne sticky, memoizzati: ricalcolati solo
|
|
2688
|
+
* quando cambiano `visibleColumns`/`Selection`. Prima `pinnedLeftPx` era O(n) per
|
|
2689
|
+
* chiamata e veniva invocato per OGNI cella pinnata del corpo → O(P²·R) per CD.
|
|
2690
|
+
*/
|
|
2691
|
+
pinnedOffsets: _angular_core.Signal<number[]>;
|
|
2631
2692
|
/** Offset `left` (px) di una colonna sticky all'indice `ci` in visibleColumns */
|
|
2632
2693
|
pinnedLeftPx(ci: number): number;
|
|
2633
2694
|
/** true se la tabella renderizza colonne strutturate (direttive/dinamica/report), non template semplici */
|
|
2634
2695
|
usesColumns: _angular_core.Signal<boolean>;
|
|
2635
2696
|
/**
|
|
2636
|
-
* Righe di header-group multi-livello
|
|
2637
|
-
*
|
|
2638
|
-
*
|
|
2639
|
-
* Ogni gruppo si allinea in BASSO: il padre immediato di una colonna sta sempre
|
|
2640
|
-
* nella riga direttamente sopra la colonna; gli antenati più alti salgono. Le
|
|
2641
|
-
* colonne senza gruppo (o con catena più corta) hanno celle-spacer vuote in alto.
|
|
2697
|
+
* Righe di header-group multi-livello (bottom-aligned). Delega al motore puro
|
|
2698
|
+
* `core/header-groups.ts`; ricalcolate automaticamente su riordino/visibilità.
|
|
2642
2699
|
*/
|
|
2643
2700
|
headerGroupRows: _angular_core.Signal<Est2HeaderGroupCell[][]>;
|
|
2644
2701
|
/** true se ci sono header-group da renderizzare */
|
|
2645
2702
|
hasHeaderGroups: _angular_core.Signal<boolean>;
|
|
2646
2703
|
/**
|
|
2647
|
-
* Indici (in visibleColumns) delle colonne che aprono un nuovo gruppo-colonna
|
|
2648
|
-
*
|
|
2649
|
-
* Serve a disegnare i confini dei gruppi anche nel corpo della tabella.
|
|
2704
|
+
* Indici (in visibleColumns) delle colonne che aprono un nuovo gruppo-colonna.
|
|
2705
|
+
* Delega al motore puro; disegna i confini dei gruppi anche nel corpo tabella.
|
|
2650
2706
|
*/
|
|
2651
2707
|
columnGroupBoundaries: _angular_core.Signal<Set<number>>;
|
|
2652
2708
|
/** Numero di elementi totali (per il pager) */
|
|
@@ -2656,10 +2712,11 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2656
2712
|
/** Numero totale di pagine per il pager */
|
|
2657
2713
|
totalPages: _angular_core.Signal<any>;
|
|
2658
2714
|
private readonly effectiveAllValue;
|
|
2659
|
-
private inited;
|
|
2660
2715
|
private onChange;
|
|
2661
2716
|
private onTouched;
|
|
2662
2717
|
constructor(ngControl: NgControl, cdr: ChangeDetectorRef, hostEl: ElementRef<HTMLElement>, prefService: PreferencesService, injector: Injector, defaults: EsTableDefaultable, debugMode: boolean, exportGlobalAcl: string);
|
|
2718
|
+
/** Controller di esportazione (E4) — logica in `controllers/export.controller.ts` */
|
|
2719
|
+
private exportCtrl;
|
|
2663
2720
|
ngOnInit(): void;
|
|
2664
2721
|
ngOnDestroy(): void;
|
|
2665
2722
|
/** Risoluzione input: valore esplicito || default di progetto || hard default */
|
|
@@ -2691,14 +2748,13 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2691
2748
|
private detectMode;
|
|
2692
2749
|
private buildColumns;
|
|
2693
2750
|
/**
|
|
2694
|
-
* Srotola le colonne `*th Multi:true` sui dati
|
|
2695
|
-
* `
|
|
2696
|
-
* e i livelli di `header_group` (separati da ">") alimentano gli header-group.
|
|
2751
|
+
* Srotola le colonne `*th Multi:true` sui dati. Delega al motore puro
|
|
2752
|
+
* `core/columns.ts`; qui applico allo stato le mappe th/parent aggiornate.
|
|
2697
2753
|
*/
|
|
2698
2754
|
private buildMultiColumns;
|
|
2699
|
-
/**
|
|
2755
|
+
/** Colonne dinamiche — delega al motore puro `core/columns.ts` */
|
|
2700
2756
|
private buildDynamicColumns;
|
|
2701
|
-
/**
|
|
2757
|
+
/** Colonne report — delega al motore puro `core/columns.ts` */
|
|
2702
2758
|
private buildReportColumns;
|
|
2703
2759
|
/** Sceglie la sorgente delle colonne in base al modello: report → dinamica → direttive */
|
|
2704
2760
|
private resolveColumns;
|
|
@@ -2826,21 +2882,16 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2826
2882
|
onCellDblClick(item: any, col: Est2Column, r: number, c: number): void;
|
|
2827
2883
|
commitEdit(item: any, col: Est2Column): void;
|
|
2828
2884
|
cancelEdit(): void;
|
|
2885
|
+
/** Lettura bag-aware di una proprietà (gestisce gli oggetti "generic" con `properties`) */
|
|
2886
|
+
private readProp;
|
|
2887
|
+
/** Scrittura bag-aware di una proprietà */
|
|
2888
|
+
private writeProp;
|
|
2829
2889
|
/** Valore grezzo su cui operano editing/paste (gestisce gli oggetti `properties`) */
|
|
2830
2890
|
private rawCellValue;
|
|
2831
2891
|
/** Scrive un valore GIÀ convertito e restituisce l'eventuale EsTableModelChange */
|
|
2832
2892
|
private applyCoerced;
|
|
2833
|
-
/**
|
|
2834
|
-
* Converte una stringa (digitata/incollata) nel tipo della colonna, segnalando
|
|
2835
|
-
* se è compatibile. `ok:false` = valore incompatibile col tipo (es. testo in una
|
|
2836
|
-
* colonna numerica) → chi chiama avvisa e non scrive. Una stringa vuota è sempre
|
|
2837
|
-
* valida e azzera il valore (null).
|
|
2838
|
-
*/
|
|
2893
|
+
/** Coercizione valore → delega al motore puro `core/coercion.ts` */
|
|
2839
2894
|
private coerceValue;
|
|
2840
|
-
/** Parsing numerico tollerante (separatori di migliaia + virgola/punto decimale). `NaN` = non numerico */
|
|
2841
|
-
private toNumber;
|
|
2842
|
-
/** Parsing date tollerante: `dd/MM/yyyy [HH:mm[:ss]]` o formati nativi. `null` = non valida */
|
|
2843
|
-
private parseDateLoose;
|
|
2844
2895
|
/** Testo visualizzato di una cella (usato dalla copia) */
|
|
2845
2896
|
cellDisplayText(item: any, col: Est2Column): string;
|
|
2846
2897
|
/** true se `childKey` è `ancestorKey` stesso o un suo discendente (senza collisioni di prefisso) */
|
|
@@ -2890,9 +2941,9 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2890
2941
|
canRemove(item: any): boolean;
|
|
2891
2942
|
removeItem(item: any): void;
|
|
2892
2943
|
abortRemoval(item: any): void;
|
|
2893
|
-
/** Preferenze colonne in memoria (ordine + nascoste). Persistite se `SavePreferences`. */
|
|
2944
|
+
/** Preferenze colonne in memoria (ordine + nascoste + pin + larghezze). Persistite se `SavePreferences`. */
|
|
2894
2945
|
private columnPrefs;
|
|
2895
|
-
/** Applica ordine + visibilità + pin delle preferenze a una lista di colonne appena costruita */
|
|
2946
|
+
/** Applica ordine + visibilità + pin + larghezze delle preferenze a una lista di colonne appena costruita */
|
|
2896
2947
|
private setColumns;
|
|
2897
2948
|
/** true una volta caricate le preferenze dal server (evita retrieve multipli) */
|
|
2898
2949
|
private prefsLoaded;
|
|
@@ -2946,6 +2997,21 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2946
2997
|
* gruppo → si sposta l'INTERO blocco del gruppo (al livello di divergenza).
|
|
2947
2998
|
*/
|
|
2948
2999
|
dialogMove(i: number, dir: -1 | 1): void;
|
|
3000
|
+
/** Indice della riga trascinata (o null) */
|
|
3001
|
+
dragIndex: _angular_core.WritableSignal<number>;
|
|
3002
|
+
/** Indice della riga sotto il cursore durante il drag (per l'indicatore) */
|
|
3003
|
+
dragOverIndex: _angular_core.WritableSignal<number>;
|
|
3004
|
+
dialogDragStart(i: number, ev: DragEvent): void;
|
|
3005
|
+
dialogDragOver(i: number, ev: DragEvent): void;
|
|
3006
|
+
dialogDrop(i: number, ev: DragEvent): void;
|
|
3007
|
+
dialogDragEnd(): void;
|
|
3008
|
+
/**
|
|
3009
|
+
* Sposta la riga `from` alla posizione `to`, poi RIPARA la contiguità dei gruppi
|
|
3010
|
+
* in tempo reale (come `dialogMove`): un drag che porterebbe una colonna fuori dal
|
|
3011
|
+
* suo gruppo la fa "scattare" nella posizione contigua più vicina, così la dialog
|
|
3012
|
+
* non mostra mai gruppi spezzati durante l'editing.
|
|
3013
|
+
*/
|
|
3014
|
+
private dialogReorder;
|
|
2949
3015
|
applyColumnsDialog(): void;
|
|
2950
3016
|
/**
|
|
2951
3017
|
* Riordina gli id in modo che i membri di ogni gruppo-colonna restino contigui,
|
|
@@ -2955,7 +3021,10 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2955
3021
|
* colonne esterne.
|
|
2956
3022
|
*/
|
|
2957
3023
|
/** Catena degli antenati-gruppo (root→padre immediato) di una colonna; `[]` se non raggruppata */
|
|
3024
|
+
/** Catena antenati di una colonna — delega al motore `core/header-groups.ts` */
|
|
3025
|
+
private ancestorChain;
|
|
2958
3026
|
private columnChain;
|
|
3027
|
+
/** Riordino group-contiguo — delega al motore `core/header-groups.ts` */
|
|
2959
3028
|
private enforceGroupContiguity;
|
|
2960
3029
|
resetColumnsDialog(): void;
|
|
2961
3030
|
exportMenuOpen: _angular_core.WritableSignal<boolean>;
|
|
@@ -2964,45 +3033,14 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2964
3033
|
toggleCornerMenu(): void;
|
|
2965
3034
|
/** Chiude i menu a tendina del chrome quando si clicca fuori */
|
|
2966
3035
|
onDocClick(): void;
|
|
2967
|
-
/**
|
|
2968
|
-
private exportColumns;
|
|
2969
|
-
/** Righe-dato correnti (esclude righe-gruppo) */
|
|
2970
|
-
private exportRows;
|
|
2971
|
-
/** Matrice [header, ...righe] con i valori visualizzati */
|
|
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;
|
|
3036
|
+
/** Export delegato al controller `ExportController` (E4); chiude prima il menu chrome. */
|
|
2990
3037
|
export(format?: 'CSV' | 'XLSX'): void;
|
|
2991
3038
|
/**
|
|
2992
|
-
*
|
|
2993
|
-
*
|
|
2994
|
-
*
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
*/
|
|
2998
|
-
private exportViaService;
|
|
2999
|
-
/** @deprecated Percorso di fallback self-contained (usato solo senza ExportService) */
|
|
3000
|
-
private exportData;
|
|
3001
|
-
private exportCsv;
|
|
3002
|
-
private exportXlsx;
|
|
3003
|
-
/** Nome file rispettando l'estensione richiesta */
|
|
3004
|
-
private exportFileName;
|
|
3005
|
-
private downloadBlob;
|
|
3039
|
+
* Mappa id-colonna → testo header RENDERIZZATO letto dal DOM (rispetta il casing
|
|
3040
|
+
* del template `*th`, es. "ID"). Costruita in un'unica passata; usata dall'export
|
|
3041
|
+
* self-contained e dalla dialog colonne (prima due letture DOM separate).
|
|
3042
|
+
*/
|
|
3043
|
+
private renderedHeaderTexts;
|
|
3006
3044
|
cornerAction(id: string): void;
|
|
3007
3045
|
rowClass(item: any): string;
|
|
3008
3046
|
hasChrome(): boolean;
|
|
@@ -3019,7 +3057,23 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
3019
3057
|
cellValue(item: any, col: Est2Column): any;
|
|
3020
3058
|
/** Entry Multi corrispondente a una cella (`item[multiProp][multiIndex]`) */
|
|
3021
3059
|
multiCell(item: any, col: Est2Column): any;
|
|
3022
|
-
|
|
3060
|
+
/**
|
|
3061
|
+
* Tooltip "smart" al passaggio del mouse: mostra il testo REALMENTE renderizzato
|
|
3062
|
+
* della cella (qualunque sia il `*td`) SOLO se è troncato. Legge `el.textContent`
|
|
3063
|
+
* anziché `cellDisplayText`, che conosce solo `property`/`id` e non il contenuto di
|
|
3064
|
+
* un template custom (era il bug del tooltip che mostrava sempre l'id colonna).
|
|
3065
|
+
*/
|
|
3066
|
+
onCellHover(ev: MouseEvent): void;
|
|
3067
|
+
/** Larghezza minima (px) di una colonna pinnata durante il resize */
|
|
3068
|
+
private readonly PINNED_MIN_W;
|
|
3069
|
+
/** Stato del resize in corso (colonna + coordinate iniziali) */
|
|
3070
|
+
private resizing;
|
|
3071
|
+
/** mousedown sull'handle: avvia il ridimensionamento della colonna pinnata */
|
|
3072
|
+
startColumnResize(col: Est2Column, ev: MouseEvent): void;
|
|
3073
|
+
onResizeMove(ev: MouseEvent): void;
|
|
3074
|
+
onResizeEnd(): void;
|
|
3075
|
+
/** Aggiorna `columnPrefs.widths` dalle larghezze correnti delle colonne pinnate e salva */
|
|
3076
|
+
private persistColumnWidths;
|
|
3023
3077
|
trackRow: (i: number, item: any) => any;
|
|
3024
3078
|
trackCol: (_: number, col: Est2Column) => string;
|
|
3025
3079
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTable2Component, [{ optional: true; self: true; }, null, null, { optional: true; }, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
@@ -3317,4 +3371,4 @@ declare const EST2_EXPORT_GLOBAL_ACL: InjectionToken<string>;
|
|
|
3317
3371
|
declare const EST2_DEFAULTS: InjectionToken<EsTableDefaultable>;
|
|
3318
3372
|
|
|
3319
3373
|
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 };
|
|
3320
|
-
export type { Est2Column, Est2HeaderGroupCell, InputType };
|
|
3374
|
+
export type { Est2Column, Est2HeaderGroupCell, Est2Row, InputType };
|