@esfaenza/es-table 20.3.29 → 20.3.30

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
@@ -2417,6 +2417,12 @@ interface Est2Column {
2417
2417
  rendererName?: string | null;
2418
2418
  /** true se la colonna è "pinnata" (sticky a sinistra durante lo scroll orizzontale) */
2419
2419
  pinned?: boolean;
2420
+ /**
2421
+ * true se la colonna è FIXED (`*th Fixed:true` o `*th Group:true`): non può essere
2422
+ * nascosta né riposizionata e resta ancorata in testa alla tabella. Solo le colonne
2423
+ * pinnate possono precederla. Stesso contratto dell'es-table originale.
2424
+ */
2425
+ fixed?: boolean;
2420
2426
  /** larghezza in px di DEFAULT della colonna pinnata (dal `PinnedWidth` della direttiva) */
2421
2427
  pinnedWidth?: number | null;
2422
2428
  /** larghezza in px IMPOSTATA dall'utente via resize (qualsiasi colonna); sovrascrive l'auto/pinnedWidth */
@@ -2502,10 +2508,18 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2502
2508
  private ctxMenuSub?;
2503
2509
  /** Altezza dell'header (misurata): la barra di selezione la usa per coprirlo esattamente */
2504
2510
  selbarHeight: _angular_core.WritableSignal<number>;
2511
+ /**
2512
+ * Larghezza (misurata) della colonna "chrome" sticky a destra. La barra di selezione
2513
+ * si ferma prima di essa: altrimenti "Azzera selezione" finirebbe SOTTO la colonna
2514
+ * sticky (che sta più in alto nello stacking per restare cliccabile durante la selezione).
2515
+ */
2516
+ chromeWidth: _angular_core.WritableSignal<number>;
2505
2517
  private headerEl?;
2506
2518
  private headerRO?;
2507
- /** ViewChild-setter: (ri)osserva l'header appena compare/cambia, mantenendo `selbarHeight` allineata */
2519
+ /** ViewChild-setter: (ri)osserva l'header appena compare/cambia, mantenendo le misure allineate */
2508
2520
  set theadRef(ref: ElementRef<HTMLElement> | undefined);
2521
+ /** Misura header (altezza) e colonna chrome (larghezza) per il posizionamento della select-bar */
2522
+ private measureHeader;
2509
2523
  readonly _Selection: _angular_core.InputSignal<boolean>;
2510
2524
  Selection: _angular_core.WritableSignal<boolean>;
2511
2525
  SingleSelection: _angular_core.InputSignal<boolean>;
@@ -2670,6 +2684,13 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2670
2684
  get denseClass(): boolean;
2671
2685
  /** Colonne visibili, con le colonne pinnate spostate in testa (stabile) */
2672
2686
  visibleColumns: _angular_core.Signal<Est2Column[]>;
2687
+ /**
2688
+ * Ordinamento STRUTTURALE delle colonne, parità con l'es-table originale
2689
+ * (`ColumnMetadataHandler`): prima le colonne pinnate, poi le `Fixed` non pinnate,
2690
+ * poi tutte le altre — mantenendo stabile l'ordine relativo dentro ogni blocco.
2691
+ * Una colonna `Fixed` resta quindi sempre in testa e solo una pinnata può precederla.
2692
+ */
2693
+ private sortStructural;
2673
2694
  /** Numero di colonne pinnate visibili */
2674
2695
  pinnedCount: _angular_core.Signal<number>;
2675
2696
  /** true se c'è almeno una colonna pinnata */
@@ -2954,6 +2975,8 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2954
2975
  private columnPrefs;
2955
2976
  /** Applica ordine + visibilità + pin + larghezze delle preferenze a una lista di colonne appena costruita */
2956
2977
  private setColumns;
2978
+ /** Mappa `{id: px}` delle larghezze impostate dall'utente (resize), da conservare nelle prefs in memoria */
2979
+ private currentWidths;
2957
2980
  /** true una volta caricate le preferenze dal server (evita retrieve multipli) */
2958
2981
  private prefsLoaded;
2959
2982
  /**
@@ -2973,6 +2996,28 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2973
2996
  * `{ columns (visibili), column_ordering (ordine), orders (ordinamenti) }`.
2974
2997
  */
2975
2998
  private saveColumnPrefs;
2999
+ /**
3000
+ * Imposta in maniera programmatica la visibilità di un header — o di un header di
3001
+ * GRUPPO, nel qual caso la modifica scende in cascata su tutti i `*th` che lo
3002
+ * dichiarano come `Parent`. Parità di firma con l'es-table originale.
3003
+ *
3004
+ * Le colonne `Fixed` sono ignorate (per contratto sempre visibili). La modifica
3005
+ * aggiorna anche le preferenze IN MEMORIA, così sopravvive ai rebuild delle colonne
3006
+ * (paginazione, refresh, nuovi dati); non viene persistita sul server.
3007
+ *
3008
+ * @param {string} groupOrHeader Id dell'header (o del gruppo) di cui settare la visibilità
3009
+ * @param {boolean} visibility Visibilità da impostare
3010
+ * @param {boolean} refresh Se `true` (default) aggiorna la tabella dopo la modifica
3011
+ * @param {boolean} relaunchSearch Se `true` (default) in viewmode rilancia la ricerca
3012
+ */
3013
+ setHeaderVisibility(groupOrHeader: string, visibility: boolean, refresh?: boolean, relaunchSearch?: boolean): void;
3014
+ /**
3015
+ * Applica la visibilità a una colonna e, se `id` è un header di gruppo, ricorsivamente
3016
+ * a tutti i suoi figli.
3017
+ *
3018
+ * @returns {boolean} `true` se almeno una colonna è stata modificata
3019
+ */
3020
+ private applyHeaderVisibility;
2976
3021
  /** Attiva/disattiva il pin di una colonna e persiste (dall'indicatore in testata) */
2977
3022
  togglePin(col: Est2Column, ev?: Event): void;
2978
3023
  columnsDialogOpen: _angular_core.WritableSignal<boolean>;
@@ -2983,6 +3028,7 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2983
3028
  visible: boolean;
2984
3029
  pinned: boolean;
2985
3030
  grouped: boolean;
3031
+ fixed: boolean;
2986
3032
  }[]>;
2987
3033
  /** Etichetta leggibile di una colonna (header statico o id) */
2988
3034
  columnLabel(col: Est2Column): string;
@@ -3006,6 +3052,11 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
3006
3052
  * gruppo → si sposta l'INTERO blocco del gruppo (al livello di divergenza).
3007
3053
  */
3008
3054
  dialogMove(i: number, dir: -1 | 1): void;
3055
+ /** true se la riga della dialog è riposizionabile: pinnate e `Fixed` sono ancorate in testa */
3056
+ canReorder(c: {
3057
+ pinned: boolean;
3058
+ fixed: boolean;
3059
+ }): boolean;
3009
3060
  /** Indice della riga trascinata (o null) */
3010
3061
  dragIndex: _angular_core.WritableSignal<number>;
3011
3062
  /** Indice della riga sotto il cursore durante il drag (per l'indicatore) */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/es-table",
3
- "version": "20.3.29",
3
+ "version": "20.3.30",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },