@esfaenza/es-table 20.3.31 → 20.3.33
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 +230 -95
- package/fesm2022/esfaenza-es-table.mjs.map +1 -1
- package/index.d.ts +50 -2
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -2687,6 +2687,8 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2687
2687
|
ShowItemGroupsColumns: _angular_core.WritableSignal<boolean>;
|
|
2688
2688
|
/** Mappa ownKey(string) -> figli diretti, per la modalità gerarchica */
|
|
2689
2689
|
private hierChildren;
|
|
2690
|
+
/** Indice `chiave-propria → riga`: evita la scansione lineare per risalire ai padri */
|
|
2691
|
+
private hierByKey;
|
|
2690
2692
|
/** Paginazione arrayMode */
|
|
2691
2693
|
private arrayPage;
|
|
2692
2694
|
/** Ordinamenti attivi (id -> 'ASC'|'DESC') */
|
|
@@ -2714,6 +2716,17 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2714
2716
|
* Una colonna `Fixed` resta quindi sempre in testa e solo una pinnata può precederla.
|
|
2715
2717
|
*/
|
|
2716
2718
|
private sortStructural;
|
|
2719
|
+
/**
|
|
2720
|
+
* Stile PER-COLONNA precalcolato (larghezza, offset sticky, inizio gruppo).
|
|
2721
|
+
* Il ciclo delle celle è annidato in quello delle righe, quindi senza questo ogni
|
|
2722
|
+
* valore si ricalcolerebbe righe×colonne volte a ogni render: qui si calcola una
|
|
2723
|
+
* volta per colonna e la cella fa un solo accesso per indice.
|
|
2724
|
+
*/
|
|
2725
|
+
colStyles: _angular_core.Signal<{
|
|
2726
|
+
width: number | null;
|
|
2727
|
+
left: number | null;
|
|
2728
|
+
groupStart: boolean;
|
|
2729
|
+
}[]>;
|
|
2717
2730
|
/** Numero di colonne pinnate visibili */
|
|
2718
2731
|
pinnedCount: _angular_core.Signal<number>;
|
|
2719
2732
|
/** true se c'è almeno una colonna pinnata */
|
|
@@ -2864,7 +2877,16 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2864
2877
|
private emitSelection;
|
|
2865
2878
|
/** Click su una riga: espande/collassa un gruppo, oppure gestisce la selezione. */
|
|
2866
2879
|
handleRowClick(item: any, event?: MouseEvent): void;
|
|
2867
|
-
/**
|
|
2880
|
+
/**
|
|
2881
|
+
* Shift/Ctrl+click stile Esplora risorse, attivo solo con `[ShiftClick]`.
|
|
2882
|
+
*
|
|
2883
|
+
* Lo **Shift+click** estende il range dall'ancora (l'ultima riga cliccata); senza
|
|
2884
|
+
* Ctrl il range SOSTITUISCE la selezione, con Ctrl la somma a quella esistente.
|
|
2885
|
+
* Ogni altro caso (Ctrl+click, o Shift senza un'ancora valida) è un toggle della
|
|
2886
|
+
* singola riga: passa da `toggleRow`, che è il percorso canonico usato anche dalle
|
|
2887
|
+
* checkbox e che gestisce correttamente la modalità "tutto selezionato"
|
|
2888
|
+
* (`sel.all` → toggle dell'esclusione invece di azzerare la selezione).
|
|
2889
|
+
*/
|
|
2868
2890
|
private windowsSelect;
|
|
2869
2891
|
/** Pipe riusate per il testo di copia (dependency-free) */
|
|
2870
2892
|
private fmt;
|
|
@@ -2951,6 +2973,17 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2951
2973
|
/** Espande/collassa un gruppo agendo solo sui flag `_visible` (nessuna ricostruzione) */
|
|
2952
2974
|
toggleGroup(group: any): void;
|
|
2953
2975
|
/** Item (foglia) appartenenti a un gruppo, a qualsiasi profondità */
|
|
2976
|
+
/**
|
|
2977
|
+
* Indice `chiave-gruppo → item[]`, ricalcolato una sola volta per ogni nuova
|
|
2978
|
+
* `boundSource()`. Le chiavi di gruppo sono composite (`IT¦Roma¦Shop`), quindi ogni
|
|
2979
|
+
* PREFISSO della chiave di un item è un suo gruppo antenato: l'indice si costruisce
|
|
2980
|
+
* in O(righe × profondità) con una sola passata.
|
|
2981
|
+
*
|
|
2982
|
+
* Serve perché la checkbox di gruppo chiama `groupSelectionState` DUE volte per
|
|
2983
|
+
* riga-gruppo a ogni ciclo di change-detection: con la vecchia `filter` su tutte le
|
|
2984
|
+
* righe erano 2·gruppi·righe confronti per render (quadratico nel numero di righe).
|
|
2985
|
+
*/
|
|
2986
|
+
private groupItemsIndex;
|
|
2954
2987
|
private groupItems;
|
|
2955
2988
|
/** Stato di selezione aggregato di un gruppo, per la sua checkbox */
|
|
2956
2989
|
groupSelectionState(group: any): 'all' | 'some' | 'none';
|
|
@@ -2967,13 +3000,19 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2967
3000
|
/** Costruisce l'albero e applica la selezione; se mancano le chiavi torna la lista invariata */
|
|
2968
3001
|
private applyHierarchy;
|
|
2969
3002
|
private directChildren;
|
|
2970
|
-
private hierDescendants;
|
|
2971
3003
|
/** Selezione in cascata: propaga lo stato al sottoalbero e ricalcola gli antenati */
|
|
2972
3004
|
private cascadeSelection;
|
|
2973
3005
|
/** Ricostruisce ItemsSelection dai flag `_selected` correnti (usato dalla cascade) */
|
|
2974
3006
|
private rebuildSelectionFromFlags;
|
|
2975
3007
|
/** Stato indeterminato di una riga-padre in cascade (alcuni discendenti selezionati) */
|
|
2976
3008
|
hierarchyIndeterminate(item: any): boolean;
|
|
3009
|
+
/**
|
|
3010
|
+
* Visita in profondità con USCITA ANTICIPATA al primo discendente selezionato.
|
|
3011
|
+
* È legata alla checkbox di OGNI riga, quindi girava a ogni ciclo di
|
|
3012
|
+
* change-detection: la versione precedente materializzava invece l'intero
|
|
3013
|
+
* sottoalbero in un array nuovo per ogni riga e per ogni render.
|
|
3014
|
+
*/
|
|
3015
|
+
private hierAnyDescendantSelected;
|
|
2977
3016
|
/** Espande/collassa un nodo dell'albero */
|
|
2978
3017
|
toggleHierarchyNode(item: any): void;
|
|
2979
3018
|
/** Indentazione (px) di una riga dell'albero in base al livello */
|
|
@@ -3160,7 +3199,16 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
3160
3199
|
* anziché `cellDisplayText`, che conosce solo `property`/`id` e non il contenuto di
|
|
3161
3200
|
* un template custom (era il bug del tooltip che mostrava sempre l'id colonna).
|
|
3162
3201
|
*/
|
|
3202
|
+
/**
|
|
3203
|
+
* Tooltip "intelligente" sulle celle a larghezza fissa: mostra il testo REALE
|
|
3204
|
+
* solo quando è troncato. In DELEGA sulla `<table>` (non un `(mouseenter)` per
|
|
3205
|
+
* cella): un listener per cella significava installarne uno per ogni `<td>` a
|
|
3206
|
+
* ogni creazione di riga — su una pagina da 50×43 sono 2.150 listener per
|
|
3207
|
+
* cambio pagina.
|
|
3208
|
+
*/
|
|
3163
3209
|
onCellHover(ev: MouseEvent): void;
|
|
3210
|
+
/** Ultima cella già valutata per il tooltip (evita di rimisurare a ogni mousemove) */
|
|
3211
|
+
private hoveredCell;
|
|
3164
3212
|
/** Larghezza minima (px) di una colonna durante il resize */
|
|
3165
3213
|
private readonly COL_MIN_W;
|
|
3166
3214
|
/** Stato del resize in corso (colonna + coordinate iniziali) */
|