@esfaenza/es-table 20.3.54 → 20.3.55

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
@@ -794,8 +794,13 @@ declare class EsThDirective {
794
794
  _multi_content: string;
795
795
  /** Id della colonna, dev'essere lo stesso per tutti i **td** relativi */
796
796
  th: string;
797
- /** Indica se la colonna è pinnata o no */
797
+ /** Indica se la colonna è pinnata o no (bloccata a SINISTRA) */
798
798
  thPinned: boolean;
799
+ /**
800
+ * Indica se la colonna è bloccata a DESTRA, in coda alla tabella. Usato solo
801
+ * dall'`<es-table2>`: la tabella originale ignora questo input.
802
+ */
803
+ thPinnedRight: boolean;
799
804
  /** Indica se la colonna è pinnabile o no */
800
805
  thPinnable: boolean;
801
806
  /** Indica le dimensioni che deve avere questa colonna quando viene pinnata, senza questo tutte le colonne mi collasserebbero l'una sull'altra */
@@ -873,7 +878,7 @@ declare class EsThDirective {
873
878
  /** @ignore */
874
879
  constructor(Template: TemplateRef<any> | null);
875
880
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsThDirective, [{ self: true; }]>;
876
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<EsThDirective, "[th]", never, { "th": { "alias": "th"; "required": false; }; "thPinned": { "alias": "thPinned"; "required": false; }; "thPinnable": { "alias": "thPinnable"; "required": false; }; "thPinnedWidth": { "alias": "thPinnedWidth"; "required": false; }; "thVisible": { "alias": "thVisible"; "required": false; }; "thFixed": { "alias": "thFixed"; "required": false; }; "thParent": { "alias": "thParent"; "required": false; }; "thOrder": { "alias": "thOrder"; "required": false; }; "thOrderable": { "alias": "thOrderable"; "required": false; }; "thWrap": { "alias": "thWrap"; "required": false; }; "thResizable": { "alias": "thResizable"; "required": false; }; "thClass": { "alias": "thClass"; "required": false; }; "thShrink": { "alias": "thShrink"; "required": false; }; "thGroupClass": { "alias": "thGroupClass"; "required": false; }; "thIf": { "alias": "thIf"; "required": false; }; "thEmpty": { "alias": "thEmpty"; "required": false; }; "thGroup": { "alias": "thGroup"; "required": false; }; "thAggregation": { "alias": "thAggregation"; "required": false; }; "thProperty": { "alias": "thProperty"; "required": false; }; "thType": { "alias": "thType"; "required": false; }; "thSource": { "alias": "thSource"; "required": false; }; "thMulti": { "alias": "thMulti"; "required": false; }; "thStaticContent": { "alias": "thStaticContent"; "required": false; }; "thBackgroundColor": { "alias": "thBackgroundColor"; "required": false; }; "thAlignment": { "alias": "thAlignment"; "required": false; }; "thFormat": { "alias": "thFormat"; "required": false; }; "thEditorName": { "alias": "thEditorName"; "required": false; }; "thEditorOptions": { "alias": "thEditorOptions"; "required": false; }; "thRendererName": { "alias": "thRendererName"; "required": false; }; "thRoutePath": { "alias": "thRoutePath"; "required": false; }; "thRouteParameterProperties": { "alias": "thRouteParameterProperties"; "required": false; }; }, {}, never, never, false, never>;
881
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<EsThDirective, "[th]", never, { "th": { "alias": "th"; "required": false; }; "thPinned": { "alias": "thPinned"; "required": false; }; "thPinnedRight": { "alias": "thPinnedRight"; "required": false; }; "thPinnable": { "alias": "thPinnable"; "required": false; }; "thPinnedWidth": { "alias": "thPinnedWidth"; "required": false; }; "thVisible": { "alias": "thVisible"; "required": false; }; "thFixed": { "alias": "thFixed"; "required": false; }; "thParent": { "alias": "thParent"; "required": false; }; "thOrder": { "alias": "thOrder"; "required": false; }; "thOrderable": { "alias": "thOrderable"; "required": false; }; "thWrap": { "alias": "thWrap"; "required": false; }; "thResizable": { "alias": "thResizable"; "required": false; }; "thClass": { "alias": "thClass"; "required": false; }; "thShrink": { "alias": "thShrink"; "required": false; }; "thGroupClass": { "alias": "thGroupClass"; "required": false; }; "thIf": { "alias": "thIf"; "required": false; }; "thEmpty": { "alias": "thEmpty"; "required": false; }; "thGroup": { "alias": "thGroup"; "required": false; }; "thAggregation": { "alias": "thAggregation"; "required": false; }; "thProperty": { "alias": "thProperty"; "required": false; }; "thType": { "alias": "thType"; "required": false; }; "thSource": { "alias": "thSource"; "required": false; }; "thMulti": { "alias": "thMulti"; "required": false; }; "thStaticContent": { "alias": "thStaticContent"; "required": false; }; "thBackgroundColor": { "alias": "thBackgroundColor"; "required": false; }; "thAlignment": { "alias": "thAlignment"; "required": false; }; "thFormat": { "alias": "thFormat"; "required": false; }; "thEditorName": { "alias": "thEditorName"; "required": false; }; "thEditorOptions": { "alias": "thEditorOptions"; "required": false; }; "thRendererName": { "alias": "thRendererName"; "required": false; }; "thRoutePath": { "alias": "thRoutePath"; "required": false; }; "thRouteParameterProperties": { "alias": "thRouteParameterProperties"; "required": false; }; }, {}, never, never, false, never>;
877
882
  }
878
883
 
879
884
  /** Direttiva che rappresenta il template dell'editor di una cella all'interno della tabella */
@@ -2415,8 +2420,14 @@ interface Est2Column {
2415
2420
  routeParams?: string[] | null;
2416
2421
  /** nome del renderer custom da risolvere tra i `*td` (dinamica) */
2417
2422
  rendererName?: string | null;
2418
- /** true se la colonna è "pinnata" (sticky a sinistra durante lo scroll orizzontale) */
2423
+ /** true se la colonna è "pinnata" (sticky a SINISTRA durante lo scroll orizzontale) */
2419
2424
  pinned?: boolean;
2425
+ /**
2426
+ * true se la colonna è bloccata a DESTRA: sticky in coda alla tabella, subito a
2427
+ * sinistra delle colonne di servizio (rimozione e chrome). Mutuamente esclusiva
2428
+ * con `pinned`.
2429
+ */
2430
+ pinnedRight?: boolean;
2420
2431
  /**
2421
2432
  * true se la colonna è FIXED (`*th Fixed:true` o `*th Group:true`): non può essere
2422
2433
  * nascosta né riposizionata e resta ancorata in testa alla tabella. Solo le colonne
@@ -2462,7 +2473,10 @@ interface Est2DialogColumn {
2462
2473
  /** contesto del template (colonne Multi: `{ $implicit: header }`) */
2463
2474
  tmplCtx: any;
2464
2475
  visible: boolean;
2476
+ /** bloccata a sinistra */
2465
2477
  pinned: boolean;
2478
+ /** bloccata a destra (in coda alla tabella) */
2479
+ pinnedRight: boolean;
2466
2480
  /** appartiene a un header-group (o è Multi): non pinnabile */
2467
2481
  grouped: boolean;
2468
2482
  /** colonna `Fixed`: sempre visibile e non riposizionabile */
@@ -2555,7 +2569,12 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2555
2569
  private headerRO?;
2556
2570
  /** ViewChild-setter: (ri)osserva l'header appena compare/cambia, mantenendo le misure allineate */
2557
2571
  set theadRef(ref: ElementRef<HTMLElement> | undefined);
2558
- /** Misura header (altezza) e colonna chrome (larghezza) per il posizionamento della select-bar */
2572
+ /**
2573
+ * Larghezza totale (px) delle colonne di SERVIZIO in coda alla tabella (rimozione
2574
+ * e chrome). È il punto da cui partono gli offset delle colonne bloccate a destra.
2575
+ */
2576
+ trailingWidth: _angular_core.WritableSignal<number>;
2577
+ /** Misura header (altezza) e colonne di coda (larghezze) per select-bar e pin a destra */
2559
2578
  private measureHeader;
2560
2579
  readonly _Selection: _angular_core.InputSignal<boolean>;
2561
2580
  Selection: _angular_core.WritableSignal<boolean>;
@@ -2787,6 +2806,7 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2787
2806
  colStyles: _angular_core.Signal<{
2788
2807
  width: number | null;
2789
2808
  left: number | null;
2809
+ right: number | null;
2790
2810
  groupStart: boolean;
2791
2811
  }[]>;
2792
2812
  /** Righe extra rese sopra e sotto il viewport, per non vedere il vuoto durante lo scroll */
@@ -2851,6 +2871,16 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
2851
2871
  pinnedOffsets: _angular_core.Signal<number[]>;
2852
2872
  /** Offset `left` (px) di una colonna sticky all'indice `ci` in visibleColumns */
2853
2873
  pinnedLeftPx(ci: number): number;
2874
+ /**
2875
+ * Offset `right` (px) cumulativi delle colonne bloccate a DESTRA, memoizzati come
2876
+ * i corrispettivi di sinistra. Si parte da `trailingWidth()` — la larghezza delle
2877
+ * colonne di servizio in coda (rimozione e chrome), che sono già sticky a destra —
2878
+ * e si risale verso sinistra, così le colonne bloccate si impilano appena prima di
2879
+ * quelle e non ci finiscono sopra.
2880
+ */
2881
+ pinnedRightOffsets: _angular_core.Signal<number[]>;
2882
+ /** true se almeno una colonna visibile è bloccata a destra */
2883
+ hasPinnedRight: _angular_core.Signal<boolean>;
2854
2884
  /** true se la tabella renderizza colonne strutturate (direttive/dinamica/report), non template semplici */
2855
2885
  usesColumns: _angular_core.Signal<boolean>;
2856
2886
  /**
@@ -3394,6 +3424,17 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
3394
3424
  */
3395
3425
  private applyHeaderVisibility;
3396
3426
  /** Attiva/disattiva il pin di una colonna e persiste (dall'indicatore in testata) */
3427
+ /**
3428
+ * Prossimo stato nel ciclo di blocco di una colonna: libera → sinistra → destra →
3429
+ * libera. Un comando solo invece di due interruttori, perché i due lati sono
3430
+ * esclusivi e chi usa la tabella ragiona su "dove la voglio", non su due flag.
3431
+ */
3432
+ pinCycleNext(col: {
3433
+ pinned?: boolean;
3434
+ pinnedRight?: boolean;
3435
+ }): 'left' | 'right' | 'none';
3436
+ /** Etichetta (sorgente inglese, poi localizzata) di cosa farà il prossimo click sul pin */
3437
+ pinTitleFor(col: Est2Column): string;
3397
3438
  togglePin(col: Est2Column, ev?: Event): void;
3398
3439
  /** `AppEmbeddingExtensions` risolto pigramente: `providedIn:'root'` ma le sue
3399
3440
  * dipendenze possono mancare in setup isolati, quindi `get` può lanciare. */
@@ -3435,6 +3476,8 @@ declare class EsTable2Component implements ControlValueAccessor, AfterContentIni
3435
3476
  openColumnsDialog(): void;
3436
3477
  closeColumnsDialog(): void;
3437
3478
  dialogToggle(i: number): void;
3479
+ /** Come `pinTitleFor`, per la riga della dialog (che ha anche i casi non pinnabili) */
3480
+ dialogPinTitle(c: Est2DialogColumn): string;
3438
3481
  dialogTogglePin(i: number): void;
3439
3482
  dialogSetAll(visible: boolean): void;
3440
3483
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/es-table",
3
- "version": "20.3.54",
3
+ "version": "20.3.55",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },