@esfaenza/es-table 20.3.32 → 20.3.35
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 +382 -53
- package/fesm2022/esfaenza-es-table.mjs.map +1 -1
- package/index.d.ts +132 -2
- package/package.json +1 -1
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
|
|
@@ -2559,6 +2571,19 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2559
2571
|
MultipleOrderingDirectives: _angular_core.InputSignal<boolean>;
|
|
2560
2572
|
Removal: _angular_core.InputSignal<boolean>;
|
|
2561
2573
|
RemovalCondition: _angular_core.InputSignal<string>;
|
|
2574
|
+
/**
|
|
2575
|
+
* Classe CSS aggiuntiva per la riga, decisa dal consumer in base all'item.
|
|
2576
|
+
*
|
|
2577
|
+
* **Attenzione:** viene invocata per OGNI riga renderizzata a OGNI ciclo di
|
|
2578
|
+
* change-detection (l'originale la calcolava una volta sola per bind, in
|
|
2579
|
+
* `item._rowClass`). Deve quindi restare economica: niente lookup pesanti,
|
|
2580
|
+
* calcoli su date o chiamate a servizi: in quel caso conviene precalcolare il
|
|
2581
|
+
* valore sull'item e limitarsi a leggerlo qui.
|
|
2582
|
+
*
|
|
2583
|
+
* A differenza dell'originale NON viene aggiunta alcuna classe `est-row-lvl-N`
|
|
2584
|
+
* in modalità gerarchica: l'indentazione dei livelli è resa con il padding
|
|
2585
|
+
* calcolato (`hierarchyIndent`), non con una classe per livello.
|
|
2586
|
+
*/
|
|
2562
2587
|
RowClassAssigner?: (item: any) => string;
|
|
2563
2588
|
readonly _HidePaging: _angular_core.InputSignal<boolean>;
|
|
2564
2589
|
HidePaging: _angular_core.WritableSignal<boolean>;
|
|
@@ -2687,6 +2712,8 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2687
2712
|
ShowItemGroupsColumns: _angular_core.WritableSignal<boolean>;
|
|
2688
2713
|
/** Mappa ownKey(string) -> figli diretti, per la modalità gerarchica */
|
|
2689
2714
|
private hierChildren;
|
|
2715
|
+
/** Indice `chiave-propria → riga`: evita la scansione lineare per risalire ai padri */
|
|
2716
|
+
private hierByKey;
|
|
2690
2717
|
/** Paginazione arrayMode */
|
|
2691
2718
|
private arrayPage;
|
|
2692
2719
|
/** Ordinamenti attivi (id -> 'ASC'|'DESC') */
|
|
@@ -2714,6 +2741,17 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2714
2741
|
* Una colonna `Fixed` resta quindi sempre in testa e solo una pinnata può precederla.
|
|
2715
2742
|
*/
|
|
2716
2743
|
private sortStructural;
|
|
2744
|
+
/**
|
|
2745
|
+
* Stile PER-COLONNA precalcolato (larghezza, offset sticky, inizio gruppo).
|
|
2746
|
+
* Il ciclo delle celle è annidato in quello delle righe, quindi senza questo ogni
|
|
2747
|
+
* valore si ricalcolerebbe righe×colonne volte a ogni render: qui si calcola una
|
|
2748
|
+
* volta per colonna e la cella fa un solo accesso per indice.
|
|
2749
|
+
*/
|
|
2750
|
+
colStyles: _angular_core.Signal<{
|
|
2751
|
+
width: number | null;
|
|
2752
|
+
left: number | null;
|
|
2753
|
+
groupStart: boolean;
|
|
2754
|
+
}[]>;
|
|
2717
2755
|
/** Numero di colonne pinnate visibili */
|
|
2718
2756
|
pinnedCount: _angular_core.Signal<number>;
|
|
2719
2757
|
/** true se c'è almeno una colonna pinnata */
|
|
@@ -2756,6 +2794,13 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2756
2794
|
*/
|
|
2757
2795
|
columnGroupBoundaries: _angular_core.Signal<Set<number>>;
|
|
2758
2796
|
/** Numero di elementi totali (per il pager) */
|
|
2797
|
+
/**
|
|
2798
|
+
* Versione del MODELLO, incrementata da `forceRefresh()`. Serve ai computed che
|
|
2799
|
+
* derivano dal modello (conteggio, pagine): se il consumer muta l'array SUL POSTO
|
|
2800
|
+
* la reference non cambia, il signal `view` non notifica e quei computed
|
|
2801
|
+
* resterebbero memoizzati sul valore vecchio.
|
|
2802
|
+
*/
|
|
2803
|
+
private modelVersion;
|
|
2759
2804
|
totalCount: _angular_core.Signal<any>;
|
|
2760
2805
|
/** Pagina corrente per il pager */
|
|
2761
2806
|
currentPage: _angular_core.Signal<any>;
|
|
@@ -2960,6 +3005,17 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2960
3005
|
/** Espande/collassa un gruppo agendo solo sui flag `_visible` (nessuna ricostruzione) */
|
|
2961
3006
|
toggleGroup(group: any): void;
|
|
2962
3007
|
/** Item (foglia) appartenenti a un gruppo, a qualsiasi profondità */
|
|
3008
|
+
/**
|
|
3009
|
+
* Indice `chiave-gruppo → item[]`, ricalcolato una sola volta per ogni nuova
|
|
3010
|
+
* `boundSource()`. Le chiavi di gruppo sono composite (`IT¦Roma¦Shop`), quindi ogni
|
|
3011
|
+
* PREFISSO della chiave di un item è un suo gruppo antenato: l'indice si costruisce
|
|
3012
|
+
* in O(righe × profondità) con una sola passata.
|
|
3013
|
+
*
|
|
3014
|
+
* Serve perché la checkbox di gruppo chiama `groupSelectionState` DUE volte per
|
|
3015
|
+
* riga-gruppo a ogni ciclo di change-detection: con la vecchia `filter` su tutte le
|
|
3016
|
+
* righe erano 2·gruppi·righe confronti per render (quadratico nel numero di righe).
|
|
3017
|
+
*/
|
|
3018
|
+
private groupItemsIndex;
|
|
2963
3019
|
private groupItems;
|
|
2964
3020
|
/** Stato di selezione aggregato di un gruppo, per la sua checkbox */
|
|
2965
3021
|
groupSelectionState(group: any): 'all' | 'some' | 'none';
|
|
@@ -2976,13 +3032,19 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
2976
3032
|
/** Costruisce l'albero e applica la selezione; se mancano le chiavi torna la lista invariata */
|
|
2977
3033
|
private applyHierarchy;
|
|
2978
3034
|
private directChildren;
|
|
2979
|
-
private hierDescendants;
|
|
2980
3035
|
/** Selezione in cascata: propaga lo stato al sottoalbero e ricalcola gli antenati */
|
|
2981
3036
|
private cascadeSelection;
|
|
2982
3037
|
/** Ricostruisce ItemsSelection dai flag `_selected` correnti (usato dalla cascade) */
|
|
2983
3038
|
private rebuildSelectionFromFlags;
|
|
2984
3039
|
/** Stato indeterminato di una riga-padre in cascade (alcuni discendenti selezionati) */
|
|
2985
3040
|
hierarchyIndeterminate(item: any): boolean;
|
|
3041
|
+
/**
|
|
3042
|
+
* Visita in profondità con USCITA ANTICIPATA al primo discendente selezionato.
|
|
3043
|
+
* È legata alla checkbox di OGNI riga, quindi girava a ogni ciclo di
|
|
3044
|
+
* change-detection: la versione precedente materializzava invece l'intero
|
|
3045
|
+
* sottoalbero in un array nuovo per ogni riga e per ogni render.
|
|
3046
|
+
*/
|
|
3047
|
+
private hierAnyDescendantSelected;
|
|
2986
3048
|
/** Espande/collassa un nodo dell'albero */
|
|
2987
3049
|
toggleHierarchyNode(item: any): void;
|
|
2988
3050
|
/** Indentazione (px) di una riga dell'albero in base al livello */
|
|
@@ -3028,6 +3090,43 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
3028
3090
|
* `{ columns (visibili), column_ordering (ordine), orders (ordinamenti) }`.
|
|
3029
3091
|
*/
|
|
3030
3092
|
private saveColumnPrefs;
|
|
3093
|
+
/**
|
|
3094
|
+
* Forza il ricalcolo di quello che la tabella mostra. Serve al consumer che
|
|
3095
|
+
* MUTA l'array bindato sul posto (push/splice): senza riassegnarlo, `ngModel`
|
|
3096
|
+
* non notifica nulla e la tabella non se ne accorge.
|
|
3097
|
+
*
|
|
3098
|
+
* @param {boolean} relaunchSearch In viewmode rilancia anche la ricerca (default `true`)
|
|
3099
|
+
*/
|
|
3100
|
+
forceRefresh(relaunchSearch?: boolean): void;
|
|
3101
|
+
/**
|
|
3102
|
+
* Azzera la selezione corrente (voci, esclusioni e "tutto selezionato").
|
|
3103
|
+
* Come nell'originale l'evento NON viene emesso salvo richiesta esplicita.
|
|
3104
|
+
*
|
|
3105
|
+
* @param {boolean} emit Se `true` emette `onSelectionChanged`
|
|
3106
|
+
*/
|
|
3107
|
+
resetSelection(emit?: boolean): void;
|
|
3108
|
+
/**
|
|
3109
|
+
* Errori di validazione: item → (id colonna → messaggio). Chiave per identità
|
|
3110
|
+
* dell'oggetto, così l'errore segue la riga anche dopo ordinamenti e ripaginazioni.
|
|
3111
|
+
*/
|
|
3112
|
+
private cellErrors;
|
|
3113
|
+
/** true se c'è almeno un errore: il template lo usa per non pagare nulla nel caso normale */
|
|
3114
|
+
hasCellErrors: _angular_core.WritableSignal<boolean>;
|
|
3115
|
+
/**
|
|
3116
|
+
* Riferimento a una cella su cui impostare/leggere un errore di validazione.
|
|
3117
|
+
* Stessa firma dell'originale; a differenza sua funziona anche se la riga non è
|
|
3118
|
+
* attualmente renderizzata, perché l'errore è tenuto dal componente e non dalla cella.
|
|
3119
|
+
*
|
|
3120
|
+
* @param {any} item Oggetto della riga
|
|
3121
|
+
* @param {string} column Id della colonna (il `th`)
|
|
3122
|
+
*/
|
|
3123
|
+
getCellReference(item: any, column: string): Est2CellRef;
|
|
3124
|
+
/** Imposta (o azzera con `null`) l'errore di validazione di una cella */
|
|
3125
|
+
setCellError(item: any, column: string, error?: string | null): void;
|
|
3126
|
+
/** Azzera tutti gli errori di validazione (di una riga, o dell'intera tabella) */
|
|
3127
|
+
clearCellErrors(item?: any): void;
|
|
3128
|
+
/** Messaggio d'errore di una cella ('' se valida). Usato dal template. */
|
|
3129
|
+
cellError(item: any, col: Est2Column): string;
|
|
3031
3130
|
/**
|
|
3032
3131
|
* Imposta in maniera programmatica la visibilità di un header — o di un header di
|
|
3033
3132
|
* GRUPPO, nel qual caso la modifica scende in cascata su tutti i `*th` che lo
|
|
@@ -3052,6 +3151,28 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
3052
3151
|
private applyHeaderVisibility;
|
|
3053
3152
|
/** Attiva/disattiva il pin di una colonna e persiste (dall'indicatore in testata) */
|
|
3054
3153
|
togglePin(col: Est2Column, ev?: Event): void;
|
|
3154
|
+
/** `AppEmbeddingExtensions` risolto pigramente: `providedIn:'root'` ma le sue
|
|
3155
|
+
* dipendenze possono mancare in setup isolati, quindi `get` può lanciare. */
|
|
3156
|
+
private embSvc;
|
|
3157
|
+
private resolveEmbedding;
|
|
3158
|
+
/** true quando la tabella è incorporata in un'applicazione ospite */
|
|
3159
|
+
get embedded(): boolean;
|
|
3160
|
+
/** La dialog è aperta ma il backdrop non è ancora nel DOM: misuro appena compare */
|
|
3161
|
+
private embedNotifyPending;
|
|
3162
|
+
/**
|
|
3163
|
+
* ViewChild-setter sul backdrop: appena esiste ne misuro l'altezza e la mando
|
|
3164
|
+
* alla finestra principale, esattamente come faceva l'originale leggendola dal
|
|
3165
|
+
* backdrop di ngx-bootstrap.
|
|
3166
|
+
*/
|
|
3167
|
+
set dialogBackdropRef(ref: ElementRef<HTMLElement> | undefined);
|
|
3168
|
+
/** Invia un messaggio alla finestra principale dell'applicazione ospite */
|
|
3169
|
+
private postEmbedMessage;
|
|
3170
|
+
/**
|
|
3171
|
+
* Unico punto di apertura/chiusura della dialog: tiene allineata la notifica
|
|
3172
|
+
* all'ospite, qualunque sia il pulsante che l'ha chiusa (Applica, Annulla,
|
|
3173
|
+
* Ripristina, la X o il click sul backdrop).
|
|
3174
|
+
*/
|
|
3175
|
+
private setColumnsDialogOpen;
|
|
3055
3176
|
columnsDialogOpen: _angular_core.WritableSignal<boolean>;
|
|
3056
3177
|
/** Lista di lavoro della dialog (copia, per poter annullare) */
|
|
3057
3178
|
dialogCols: _angular_core.WritableSignal<Est2DialogColumn[]>;
|
|
@@ -3169,7 +3290,16 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
|
|
|
3169
3290
|
* anziché `cellDisplayText`, che conosce solo `property`/`id` e non il contenuto di
|
|
3170
3291
|
* un template custom (era il bug del tooltip che mostrava sempre l'id colonna).
|
|
3171
3292
|
*/
|
|
3293
|
+
/**
|
|
3294
|
+
* Tooltip "intelligente" sulle celle a larghezza fissa: mostra il testo REALE
|
|
3295
|
+
* solo quando è troncato. In DELEGA sulla `<table>` (non un `(mouseenter)` per
|
|
3296
|
+
* cella): un listener per cella significava installarne uno per ogni `<td>` a
|
|
3297
|
+
* ogni creazione di riga — su una pagina da 50×43 sono 2.150 listener per
|
|
3298
|
+
* cambio pagina.
|
|
3299
|
+
*/
|
|
3172
3300
|
onCellHover(ev: MouseEvent): void;
|
|
3301
|
+
/** Ultima cella già valutata per il tooltip (evita di rimisurare a ogni mousemove) */
|
|
3302
|
+
private hoveredCell;
|
|
3173
3303
|
/** Larghezza minima (px) di una colonna durante il resize */
|
|
3174
3304
|
private readonly COL_MIN_W;
|
|
3175
3305
|
/** Stato del resize in corso (colonna + coordinate iniziali) */
|
|
@@ -3481,4 +3611,4 @@ declare const EST2_EXPORT_GLOBAL_ACL: InjectionToken<string>;
|
|
|
3481
3611
|
declare const EST2_DEFAULTS: InjectionToken<EsTableDefaultable>;
|
|
3482
3612
|
|
|
3483
3613
|
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 };
|
|
3484
|
-
export type { Est2Column, Est2DialogColumn, Est2HeaderGroupCell, Est2Row, InputType };
|
|
3614
|
+
export type { Est2CellRef, Est2Column, Est2DialogColumn, Est2HeaderGroupCell, Est2Row, InputType };
|