@esfaenza/es-table 20.3.23 → 20.3.25

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,8 +2417,10 @@ 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
- /** larghezza in px della colonna pinnata (usata per calcolare gli offset sticky) */
2420
+ /** larghezza in px di DEFAULT della colonna pinnata (dal `PinnedWidth` della direttiva) */
2421
2421
  pinnedWidth?: number | null;
2422
+ /** larghezza in px IMPOSTATA dall'utente via resize (qualsiasi colonna); sovrascrive l'auto/pinnedWidth */
2423
+ width?: number | null;
2422
2424
  /** colonna Multi: nome della proprietà-array sull'item (es. `touvalues`) */
2423
2425
  multiProp?: string | null;
2424
2426
  /** colonna Multi: indice dell'entry dentro l'array della proprietà */
@@ -2551,7 +2553,9 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2551
2553
  ContainerClass: _angular_core.WritableSignal<string>;
2552
2554
  EsTableHandledSearch: _angular_core.InputSignal<boolean>;
2553
2555
  SearchThrottle: _angular_core.InputSignal<number>;
2554
- /** @deprecated NO-OP di parità v1 (ridimensionamento colonne): dichiarato per il drop-in, non implementato */
2556
+ /** Abilita il ridimensionamento via handle sul bordo destro dell'header delle colonne PINNATE
2557
+ * (la nuova larghezza è persistita nelle preferenze). Il resize delle colonne non pinnate
2558
+ * non è ancora portato. */
2555
2559
  readonly _ColumnsResizable: _angular_core.InputSignal<boolean>;
2556
2560
  ColumnsResizable: _angular_core.WritableSignal<boolean>;
2557
2561
  readonly _ColumnsPinnable: _angular_core.InputSignal<boolean>;
@@ -2672,10 +2676,23 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2672
2676
  hasPinned: _angular_core.Signal<boolean>;
2673
2677
  /** Larghezza (px) della colonna di selezione quando sticky */
2674
2678
  private readonly SEL_STICKY_W;
2679
+ /** Larghezza (px) di default di una colonna pinnata senza `PinnedWidth` esplicito */
2680
+ private readonly PINNED_DEFAULT_W;
2681
+ /**
2682
+ * Larghezza FISSA (px) di una colonna PINNATA (default direttiva). Una colonna sticky
2683
+ * è per contratto a larghezza fissa. Default = `PINNED_DEFAULT_W`.
2684
+ */
2685
+ pinnedWidthPx(col: Est2Column): number;
2686
+ /**
2687
+ * Larghezza EFFETTIVA (px) di una colonna, o `null` = auto. Priorità: larghezza da
2688
+ * resize (`col.width`) → larghezza fissa se pinnata → auto. Applicata a `<th>`/`<td>`
2689
+ * (width/min/max) così una colonna ridimensionata (pinnata o no) non sborda.
2690
+ */
2691
+ colWidthPx(col: Est2Column): number | null;
2675
2692
  /**
2676
2693
  * Offset `left` (px) cumulativi delle colonne sticky, memoizzati: ricalcolati solo
2677
- * quando cambiano `visibleColumns`/`Selection`. Prima `pinnedLeftPx` era O(n) per
2678
- * chiamata e veniva invocato per OGNI cella pinnata del corpo → O(P²·R) per CD.
2694
+ * quando cambiano `visibleColumns`/`Selection`/larghezze. Prima `pinnedLeftPx` era
2695
+ * O(n) per chiamata e veniva invocato per OGNI cella pinnata del corpo → O(P²·R).
2679
2696
  */
2680
2697
  pinnedOffsets: _angular_core.Signal<number[]>;
2681
2698
  /** Offset `left` (px) di una colonna sticky all'indice `ci` in visibleColumns */
@@ -2930,9 +2947,9 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2930
2947
  canRemove(item: any): boolean;
2931
2948
  removeItem(item: any): void;
2932
2949
  abortRemoval(item: any): void;
2933
- /** Preferenze colonne in memoria (ordine + nascoste). Persistite se `SavePreferences`. */
2950
+ /** Preferenze colonne in memoria (ordine + nascoste + pin + larghezze). Persistite se `SavePreferences`. */
2934
2951
  private columnPrefs;
2935
- /** Applica ordine + visibilità + pin delle preferenze a una lista di colonne appena costruita */
2952
+ /** Applica ordine + visibilità + pin + larghezze delle preferenze a una lista di colonne appena costruita */
2936
2953
  private setColumns;
2937
2954
  /** true una volta caricate le preferenze dal server (evita retrieve multipli) */
2938
2955
  private prefsLoaded;
@@ -2986,6 +3003,21 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2986
3003
  * gruppo → si sposta l'INTERO blocco del gruppo (al livello di divergenza).
2987
3004
  */
2988
3005
  dialogMove(i: number, dir: -1 | 1): void;
3006
+ /** Indice della riga trascinata (o null) */
3007
+ dragIndex: _angular_core.WritableSignal<number>;
3008
+ /** Indice della riga sotto il cursore durante il drag (per l'indicatore) */
3009
+ dragOverIndex: _angular_core.WritableSignal<number>;
3010
+ dialogDragStart(i: number, ev: DragEvent): void;
3011
+ dialogDragOver(i: number, ev: DragEvent): void;
3012
+ dialogDrop(i: number, ev: DragEvent): void;
3013
+ dialogDragEnd(): void;
3014
+ /**
3015
+ * Sposta la riga `from` alla posizione `to`, poi RIPARA la contiguità dei gruppi
3016
+ * in tempo reale (come `dialogMove`): un drag che porterebbe una colonna fuori dal
3017
+ * suo gruppo la fa "scattare" nella posizione contigua più vicina, così la dialog
3018
+ * non mostra mai gruppi spezzati durante l'editing.
3019
+ */
3020
+ private dialogReorder;
2989
3021
  applyColumnsDialog(): void;
2990
3022
  /**
2991
3023
  * Riordina gli id in modo che i membri di ogni gruppo-colonna restino contigui,
@@ -3031,6 +3063,23 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
3031
3063
  cellValue(item: any, col: Est2Column): any;
3032
3064
  /** Entry Multi corrispondente a una cella (`item[multiProp][multiIndex]`) */
3033
3065
  multiCell(item: any, col: Est2Column): any;
3066
+ /**
3067
+ * Tooltip "smart" al passaggio del mouse: mostra il testo REALMENTE renderizzato
3068
+ * della cella (qualunque sia il `*td`) SOLO se è troncato. Legge `el.textContent`
3069
+ * anziché `cellDisplayText`, che conosce solo `property`/`id` e non il contenuto di
3070
+ * un template custom (era il bug del tooltip che mostrava sempre l'id colonna).
3071
+ */
3072
+ onCellHover(ev: MouseEvent): void;
3073
+ /** Larghezza minima (px) di una colonna durante il resize */
3074
+ private readonly COL_MIN_W;
3075
+ /** Stato del resize in corso (colonna + coordinate iniziali) */
3076
+ private resizing;
3077
+ /** mousedown sull'handle: avvia il ridimensionamento della colonna */
3078
+ startColumnResize(col: Est2Column, ev: MouseEvent): void;
3079
+ onResizeMove(ev: MouseEvent): void;
3080
+ onResizeEnd(): void;
3081
+ /** Aggiorna `columnPrefs.widths` dalle larghezze impostate (qualsiasi colonna) e salva */
3082
+ private persistColumnWidths;
3034
3083
  trackRow: (i: number, item: any) => any;
3035
3084
  trackCol: (_: number, col: Est2Column) => string;
3036
3085
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTable2Component, [{ optional: true; self: true; }, null, null, { optional: true; }, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/es-table",
3
- "version": "20.3.23",
3
+ "version": "20.3.25",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },