@esfaenza/es-table 11.2.122 → 11.2.123

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.
Files changed (44) hide show
  1. package/bundles/esfaenza-es-table.umd.js +471 -263
  2. package/bundles/esfaenza-es-table.umd.js.map +1 -1
  3. package/bundles/esfaenza-es-table.umd.min.js +1 -1
  4. package/bundles/esfaenza-es-table.umd.min.js.map +1 -1
  5. package/esfaenza-es-table.d.ts +8 -4
  6. package/esfaenza-es-table.metadata.json +1 -1
  7. package/esm2015/esfaenza-es-table.js +9 -5
  8. package/esm2015/lib/components/es-table/es_table.component.js +145 -79
  9. package/esm2015/lib/components/es-td/es_td.component.js +10 -52
  10. package/esm2015/lib/components/es-th/es_th.component.js +2 -2
  11. package/esm2015/lib/components/pipes/est-renderer.pipe.js +36 -0
  12. package/esm2015/lib/components/pipes/est-routerlink.pipe.js +37 -0
  13. package/esm2015/lib/components/pipes/est_editor.pipe.js +36 -0
  14. package/esm2015/lib/core/CopyPasteDetector.js +4 -2
  15. package/esm2015/lib/core/Logger.js +23 -0
  16. package/esm2015/lib/core/handlers/ColumnMetadataHandler.js +14 -12
  17. package/esm2015/lib/core/handlers/DynamicModeHandler.js +59 -37
  18. package/esm2015/lib/core/handlers/SelectionHandler.js +46 -50
  19. package/esm2015/lib/core/handlers/UtilitiesHandler.js +2 -5
  20. package/esm2015/lib/directives/es_th.directive.js +9 -2
  21. package/esm2015/lib/domain/externals/EsTableColumnsDefinition.js +4 -3
  22. package/esm2015/lib/domain/externals/ItemPropEditableReference.js +1 -1
  23. package/esm2015/lib/domain/internals/EsTableColumn.js +2 -2
  24. package/esm2015/lib/domain/internals/PagerInfos.js +15 -0
  25. package/esm2015/lib/domain/internals/ThGroup.js +2 -0
  26. package/esm2015/lib/es-table.module.js +42 -19
  27. package/fesm2015/esfaenza-es-table.js +451 -251
  28. package/fesm2015/esfaenza-es-table.js.map +1 -1
  29. package/lib/components/es-table/es_table.component.d.ts +55 -60
  30. package/lib/components/es-td/es_td.component.d.ts +6 -34
  31. package/lib/components/pipes/est-renderer.pipe.d.ts +12 -0
  32. package/lib/components/pipes/est-routerlink.pipe.d.ts +17 -0
  33. package/lib/components/pipes/est_editor.pipe.d.ts +12 -0
  34. package/lib/core/Logger.d.ts +7 -0
  35. package/lib/core/handlers/DynamicModeHandler.d.ts +11 -23
  36. package/lib/core/handlers/SelectionHandler.d.ts +16 -3
  37. package/lib/core/handlers/UtilitiesHandler.d.ts +4 -1
  38. package/lib/directives/es_th.directive.d.ts +25 -0
  39. package/lib/domain/externals/EsTableColumnsDefinition.d.ts +3 -9
  40. package/lib/domain/externals/ItemPropEditableReference.d.ts +4 -0
  41. package/lib/domain/internals/EsTableColumn.d.ts +3 -1
  42. package/lib/domain/internals/PagerInfos.d.ts +13 -0
  43. package/lib/domain/internals/ThGroup.d.ts +10 -0
  44. package/package.json +1 -1
@@ -13,12 +13,15 @@ import { EsTableColumn } from "../../domain/internals/EsTableColumn";
13
13
  import { GroupPager } from "../../domain/internals/GroupPager";
14
14
  import { GroupRouteFragment } from "../../domain/internals/GroupRouteFragment";
15
15
  import { ThElement } from "../../domain/internals/ThElement";
16
+ import { PagerInfos } from "../../domain/internals/PagerInfos";
17
+ import { ThGroup } from "../../domain/internals/ThGroup";
16
18
  import { TdElement } from "../../domain/internals/TdElement";
17
19
  import { ItemsSelection } from '../../domain/externals/appsearch/ItemsSelection';
18
20
  import { Group } from "../../domain/externals/appsearch/Group";
19
21
  import { EsTableModelChange } from '../../domain/externals/EsTableModelChange';
20
22
  import { ItemPropEditableReference } from '../../domain/externals/ItemPropEditableReference';
21
23
  import { EsTableDefaultable } from '../../domain/configuration/EsTableDefaultable';
24
+ import { EsTd } from '../es-td/es_td.component';
22
25
  import { EsTdDirective } from '../../directives/es_td.directive';
23
26
  import { EsThDirective } from '../../directives/es_th.directive';
24
27
  import { EsTdEditorDirective } from '../../directives/es_td_editor.directive';
@@ -33,8 +36,8 @@ import { RowGroupingHandler } from "../../core/handlers/RowGroupingHandler";
33
36
  import { SelectionHandler } from "../../core/handlers/SelectionHandler";
34
37
  import { UtilitiesHandler } from "../../core/handlers/UtilitiesHandler";
35
38
  import { CopyPasteDetector } from '../../core/CopyPasteDetector';
39
+ import { Logger } from '../../core/Logger';
36
40
  import { Subject } from 'rxjs';
37
- import { EsTd } from '../es-td/es_td.component';
38
41
  /** Componente che permette di rappresentare una griglia di valori */
39
42
  export declare class EsTableComponent implements ControlValueAccessor, OnChanges {
40
43
  ngControl: NgControl;
@@ -50,6 +53,7 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
50
53
  private msgExts;
51
54
  private copyPasteDetector;
52
55
  private clipboardService;
56
+ private logger;
53
57
  /** @ignore */ export_H: ExportHandler;
54
58
  /** @ignore */ columnMetadata_H: ColumnMetadataHandler;
55
59
  /** @ignore */ dynamicMode_H: DynamicModeHandler;
@@ -61,7 +65,7 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
61
65
  /** @ignore */ private copySubscription;
62
66
  /** @ignore */ private pasteSubscription;
63
67
  /** @ignore */
64
- constructor(ngControl: NgControl, prefService: PreferencesService, deafults: EsTableDefaultable, locale: string, lc: LocalizationService, cdr: ChangeDetectorRef, utilities_H: UtilitiesHandler, utiExts: UtilityService, expExts: ExportService, dateExts: DateService, msgExts: MessageService, copyPasteDetector: CopyPasteDetector, clipboardService: ClipboardService);
68
+ constructor(ngControl: NgControl, prefService: PreferencesService, deafults: EsTableDefaultable, locale: string, lc: LocalizationService, cdr: ChangeDetectorRef, utilities_H: UtilitiesHandler, utiExts: UtilityService, expExts: ExportService, dateExts: DateService, msgExts: MessageService, copyPasteDetector: CopyPasteDetector, clipboardService: ClipboardService, logger: Logger);
65
69
  /** Subject utilizzato internamente lato EsTable per causare il Focus lato componente di Input */
66
70
  FocusSubject: Subject<void>;
67
71
  /** Timer che verrà impostato a **doubleClickBufferMs** per capire se è stato effettuato un click singolo o un doubleclick */
@@ -71,7 +75,10 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
71
75
  /** View finale su cui bindarsi lato Frontend, il tipo può essere IAppSearch<any> (per la **viewMode**), any[] (per l'**arrayMode**) */
72
76
  View: any;
73
77
  /** Modello da cui l'es-table mostra i pulsanti di paginazione in basso a destra */
74
- arrayPulsanti: any;
78
+ arrayPulsanti: {
79
+ val: number;
80
+ cssClass: string;
81
+ }[];
75
82
  /** Indica se l'es-table deve mostrare il check globale nell'header per fare il "seleziona tutto" */
76
83
  globalCheck: boolean;
77
84
  /** Tiene da conto l'ultimo elemento selezionato in modo da poter effettuare il SHIFT+CLICK */
@@ -91,9 +98,9 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
91
98
  boundSource: any[];
92
99
  /** Stessa cosa della **boundSource**, utilizzata come appoggio temporaneo interno */
93
100
  TMPBoundSource: any[];
94
- /** "Fetta" di oggetti utilizzata nell'endless scroll, ogni elemento di questo array è un blocchetto di 100 elementi */
101
+ /** @deprecated "Fetta" di oggetti utilizzata nell'endless scroll, ogni elemento di questo array è un blocchetto di 100 elementi */
95
102
  boundSubSources: any[];
96
- /** Questa funge da indicatore per gli slice inseriti, la lunghezza dovrebbe essere corrispondente a **boundSubSources** */
103
+ /** @deprecated Questa funge da indicatore per gli slice inseriti, la lunghezza dovrebbe essere corrispondente a **boundSubSources** */
97
104
  addedSlices: number[];
98
105
  /** Variabile che identifica il valore del "seleziona Tutto" nella paginazione */
99
106
  defaultAllPageOverride: number;
@@ -107,32 +114,24 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
107
114
  updateTimer: any;
108
115
  /** Impostata a true ogni volta che viene avviata una ricerca, e a false ogni volta che un nuovo valore viene ricevuto */
109
116
  researchInProgress: boolean;
117
+ /** Modello di appoggio temporaneo per i **RowTDs** */
118
+ TMPRowTDs: {
119
+ [context: string]: TdElement[];
120
+ };
110
121
  /** Modello rappresentante un dizionario di righe della tabella, con chiave l'hash e valore la lista di celle */
111
122
  RowTDs: {
112
123
  [context: string]: TdElement[];
113
124
  };
114
125
  /** Indica se **RowTDs** è un oggetto vuoto o meno */
115
126
  EmptyRowTds: boolean;
116
- /** Modello di appoggio temporaneo per i **RowTDs** */
117
- TMPRowTDs: {
118
- [context: string]: TdElement[];
119
- };
120
- /** Modello rappresentante un singolo th della tabella, generato in base alle configurazioni e agli oggetti ricevuti */
121
- RowTHs: ThElement[];
122
127
  /** Modello di appoggio temporaneo per i **RowTHs** */
123
128
  TMPRowTHs: ThElement[];
129
+ /** Modello rappresentante un singolo th della tabella, generato in base alle configurazioni e agli oggetti ricevuti */
130
+ RowTHs: ThElement[];
124
131
  /** Modello di appoggio temporaneo per i **RowThGroups** */
125
- TMPRowThGroups: {
126
- Span: number;
127
- Template: TemplateRef<any>;
128
- }[][];
132
+ TMPRowThGroups: ThGroup[][];
129
133
  /** Modello rappresentante un singolo header group della tabella. Questa lista è già ordinata e pronta per essere utilizzata in ngFor */
130
- RowThGroups: {
131
- Span: number;
132
- Template: TemplateRef<any>;
133
- }[][];
134
- /** Cache per i routerLink generati nelle tabelle dinamiche */
135
- DynamicTableRouterLinkCache: {};
134
+ RowThGroups: ThGroup[][];
136
135
  /**
137
136
  * Lista dei contesti. Un contesto non è altro che un hash particolare calcolato su un oggetto che identifica univocamente tale oggetto.
138
137
  *
@@ -143,6 +142,19 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
143
142
  OrderDirectives: string[];
144
143
  /** Codice dell'ultimo oggetto solezionato */
145
144
  lastSelectedItemID: any;
145
+ /**
146
+ * Decide se utilizzare o meno le CustomCells. Impostandolo a **true** l'es-table diventa in grado di gestire nativamente:
147
+ *
148
+ * 1) Ordinamento e visibilità delle colonne
149
+ *
150
+ * 2) Ordinamento dei dati
151
+ *
152
+ * 3) Modalità Gerarchica
153
+ *
154
+ * ecc...
155
+ * viene dedotto dal sistema in automatico
156
+ */
157
+ UseCustomCells: boolean;
146
158
  /**
147
159
  * Indica se oltre alle colonne dinamiche specifiche di un tipo di oggetto ci sono anche colonne dinamiche aggiunte dall'utente
148
160
  *
@@ -169,11 +181,11 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
169
181
  bodyRef: any;
170
182
  /** Query per recuperare le informazioni dell'header (punto della tabella dove vengono mostrate le intestazioni delle righe) */
171
183
  headerRef: any;
172
- /** Query per recuperare le informazioni sul raggruppamento degli header */
184
+ /** @deprecated Query per recuperare le informazioni sul raggruppamento degli header */
173
185
  headerGroupRef: any;
174
- /** Query per recuperare le informazioni sul raggruppamento di secondo livello degli header */
186
+ /** @deprecated Query per recuperare le informazioni sul raggruppamento di secondo livello degli header */
175
187
  secondaryHeaderGroupRef: any;
176
- /** Query per recuperare il campo di Input attuale. Dopo un doppio click lo becco e lo focusso appena termina la chagne detection */
188
+ /** Query per recuperare il campo di Input attuale. Dopo un doppio click lo becco e lo focusso appena termina la change detection */
177
189
  inputField: ElementRef;
178
190
  /** Opzioni extra che devono apparire nel Menù contestuale in alto a destra, richiamato dai 3 pallini verticali */
179
191
  CornerMenuOptions: CornerMenuOption[];
@@ -187,24 +199,8 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
187
199
  Height: string;
188
200
  /** Indica il colore di sfondo dello spazio vuoto (non ricoperto da dati). Particolarmente utile da impostare in caso di **Height** diverso da null */
189
201
  EmptySpaceBackgroundColor: string;
190
- /**
191
- * @experimental Indica se dev'essere l'estable a gestire la ricerca, anche la prima.
192
- *
193
- * **ATTENZIONE: RICHIEDE MODIFICHE NON TRIVIALI ALLA PAGINA DI RICERCA CHE UTILIZZA QUESTO TIPO DI ES-TABLE. NON UTILIZZARE SE NON SI SA CIO' CHE SI STA FACENDO**
194
- **/
202
+ /** Indica se dev'essere l'estable a gestire la ricerca, anche la prima. **/
195
203
  EsTableHandledSearch: boolean;
196
- /**
197
- * Decide se utilizzare o meno le CustomCells. Impostandolo a **true** l'es-table diventa in grado di gestire nativamente:
198
- *
199
- * 1) Ordinamento e visibilità delle colonne
200
- *
201
- * 2) Ordinamento dei dati
202
- *
203
- * 3) Modalità Gerarchica
204
- *
205
- * ecc...
206
- */
207
- UseCustomCells: boolean;
208
204
  /** Permette di impostare l'altezza massima della tabella. Se null la dimensione si adatta al numero di elementi attualmente in visualizzazione */
209
205
  MaxHeight: number;
210
206
  /** Classi da applicare al contenitore della tabella */
@@ -255,9 +251,9 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
255
251
  ExportFunction: any;
256
252
  /** Indica di esportare solo le colonne attualmente visibili della view */
257
253
  ExportOnlyVisibleColumns: boolean;
258
- /** Indica la presenza di raggruppamenti a livello di header */
254
+ /** @deprecated Indica la presenza di raggruppamenti a livello di header */
259
255
  HasHeaderGroup: boolean;
260
- /** Indica la presenza di raggruppamenti a livello del raggruppamento precedentemente esistente, chiaramente è insensata senza **HasHeaderGroup** */
256
+ /** @deprecated Indica la presenza di raggruppamenti a livello del raggruppamento precedentemente esistente, chiaramente è insensata senza **HasHeaderGroup** */
261
257
  HasSecondaryHeaderGroup: boolean;
262
258
  /** Indica se nascondere gli Header della tabella */
263
259
  HeaderHidden: boolean;
@@ -283,7 +279,7 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
283
279
  HiddenColumns: boolean;
284
280
  /** Permette di riordinare le colonne in base alle impostazioni effettuate dal Menù contestuale in alto a destra */
285
281
  ColumnsOrdering: boolean;
286
- /** Eventuale supporto alle ricerche applicate alla modalità Array */
282
+ /** @deprecated Eventuale supporto alle ricerche applicate alla modalità Array */
287
283
  SearchView: AppSearch<any>;
288
284
  /** Abilita o disabilita il sistema che permette di selezionare tutti gli elementi nella vista */
289
285
  SelectAll: boolean;
@@ -440,17 +436,7 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
440
436
  **/
441
437
  useLocalVisibility: boolean;
442
438
  /** Opzioni di paginazione */
443
- PagerOptions: {
444
- PagerCount: number;
445
- ShowCount: boolean;
446
- ShowPaging: boolean;
447
- UsesView: boolean;
448
- ShowButtons: boolean;
449
- ShowPagingOptions: boolean;
450
- View: any;
451
- Ready: boolean;
452
- Searches: 'items' | 'groups';
453
- };
439
+ PagerOptions: PagerInfos;
454
440
  /** @ignore */
455
441
  ngOnInit(): void;
456
442
  /** @ignore */
@@ -470,7 +456,15 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
470
456
  /** @ignore */
471
457
  writeValue(obj: any, throttle?: boolean): Promise<void>;
472
458
  /** Funzione di trackby per il body che dovrebbe evitare il 90% delle change detection */
473
- bodyTrackBy: (index: number, item: any) => any;
459
+ bodyTrackBy: (_: number, item: any) => any;
460
+ /** Funzione di trackby generica per tutti gli oggetti che hanno il campo id */
461
+ idTrackBy: (_: number, item: any) => any;
462
+ /** Funzione di trackby generica per tutti gli oggetti che hanno il campo PropertyName */
463
+ PropertyNameTrackBy: (_: number, item: any) => any;
464
+ /** Funzione di trackby generica per tutti gli oggetti che hanno il campo ID */
465
+ IDTrackBy: (_: number, item: any) => any;
466
+ /** Funzione di trackby generica per tutti gli oggetti che hanno il campo ID */
467
+ valTrackBy: (_: number, item: any) => any;
474
468
  /**
475
469
  * Successivamente al bind del nuovo input questa funzione si occupa di finalizzare tutti i parametri di funzionamento dell'es-table
476
470
  * in base a Input - Modello, e qualsiasi altra cosa possa servire
@@ -675,9 +669,8 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
675
669
  * @param {any} $event Evento nativo javascript
676
670
  * @param {TdElement} rowItem Riferimento a binder della riga
677
671
  * @param {any} item Item che rappresenta il contesto su cui è stato effettuato un click
678
- * @param {number} rowIndex Indice della riga
679
672
  */
680
- dbClickEditOrSingleClickRowSelection($event: any, rowItem: TdElement, item: any, rowIndex: number): void;
673
+ dbClickEditOrSingleClickRowSelection($event: MouseEvent, rowItem: TdElement, item: any): void;
681
674
  /** Evento che gestisce il comando "Copia" buttando i valori selezionati nella clipboard in base al loro tipo */
682
675
  private handleCopy;
683
676
  /** Evento che gestisce il comando "Incolla" prendendo i dati della clipboard e applicandoli al range di selezione attuale in base al tipo delle celle sotto */
@@ -715,10 +708,12 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
715
708
  */
716
709
  finalizeUserEdit(rowItem: TdElement, item: any, columnIndex: number): void;
717
710
  private mouseIsDown;
711
+ private rangeSelected;
712
+ private rangeStartWasIgnored;
718
713
  private firstCoordinates;
719
- mousedown(event: MouseEvent, rowItem: any, item: any): void;
714
+ mousedown(event: MouseEvent, rowItem: any, _: any): void;
720
715
  mouseenter(event: MouseEvent): void;
721
- mouseup(event: any): void;
716
+ mouseup(event: MouseEvent): void;
722
717
  private EsTdsCache;
723
718
  getCellReference(object: any, column: string): EsTd;
724
719
  registerCell(event: EsTdReference): void;
@@ -1,25 +1,9 @@
1
- import { Renderer2, ElementRef, EventEmitter, ChangeDetectorRef } from "@angular/core";
2
- import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
1
+ import { EventEmitter, ChangeDetectorRef } from "@angular/core";
3
2
  /** Componente rappresentante una singola cella del body della tabella */
4
3
  export declare class EsTd {
5
4
  private cdr;
6
- private myself;
7
- private renderer;
8
- protected sanitizer: DomSanitizer;
9
5
  /** Id della cella, dev'essere lo stesso della colonna **EsTh** relativa */
10
6
  ID: string;
11
- /** Indica se è una cella interna (rigenerata programmaticamente) o no */
12
- Internal?: boolean;
13
- /** RouterLink qualora il click su questa cella debba navigare da qualche parte */
14
- RouterLink?: any;
15
- /** Valore da mostrare all'interno della cella. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
16
- Display?: string;
17
- /** Template Angular da istanziare per questo TD */
18
- Template?: any;
19
- /** Classi da applicare alla cella */
20
- Class?: string;
21
- /** Contenuto da mostrare proiettato dal componente padre */
22
- Content?: SafeHtml;
23
7
  /** Contesto dell'oggetto a cui si riferisce il dato visualizzato. Contiene l'hash dell'oggetto in questione */
24
8
  Context: string;
25
9
  /** Quando questa cella viene generata questo evento permette di dire "ehi, sono nato!" */
@@ -28,24 +12,12 @@ export declare class EsTd {
28
12
  hash: string;
29
13
  self: EsTd;
30
14
  }>;
31
- /** Indicazioni sulla visibilità della cella */
32
- private _Visible?;
15
+ /** Errore attualmente presente sulla cella */
16
+ ValidationError: string;
33
17
  /** @ignore */
34
- constructor(cdr: ChangeDetectorRef, myself: ElementRef, renderer: Renderer2, sanitizer: DomSanitizer);
35
- /**
36
- * Imposta la visibilità o meno della cella, si traduce nell'applicazione o rimozione della classe **app-display-none**
37
- *
38
- * @param {boolean} expression Indicazione della visibilità
39
- */
40
- set Visible(expression: boolean);
41
- /**
42
- * Restituisce lo stato di Visibilità della cella in oggetto
43
- *
44
- * @returns {boolean} **true** se visibile, **false** altrimenti
45
- */
46
- get Visible(): boolean;
18
+ constructor(cdr: ChangeDetectorRef);
47
19
  /** @ignore */
48
20
  ngAfterViewInit(): void;
49
- ValidationError: string;
50
- validationError(isError: boolean, error?: string): void;
21
+ /** Api per impostare un "errore" su questa cella in maniera programmatica */
22
+ validationError(error?: string): void;
51
23
  }
@@ -0,0 +1,12 @@
1
+ import { PipeTransform, QueryList } from "@angular/core";
2
+ import { Logger } from "../../core/Logger";
3
+ import { EsTdDirective } from "../../directives/es_td.directive";
4
+ export declare class EstRendererPipe implements PipeTransform {
5
+ private logger;
6
+ constructor(logger: Logger);
7
+ transform(propName: string, params: {
8
+ name: string;
9
+ src: QueryList<EsTdDirective>;
10
+ fallback: any;
11
+ }): any;
12
+ }
@@ -0,0 +1,17 @@
1
+ import { PipeTransform } from "@angular/core";
2
+ export declare class EstRouterLinkPipe implements PipeTransform {
3
+ /** Cache per i routerLink generati nelle tabelle dinamiche */
4
+ routerLinksCache: {};
5
+ transform(item: any, path: string, parameters: string[]): any;
6
+ /**
7
+ * Crea un router link
8
+ *
9
+ * @param {string} path Path su cui navigare con eventuali parametri riferiti all'oggetto cotnestuale come {0}, {1}, ecc...
10
+ * @param {string[]} pars Lista posizionale delle proprietà a cui bindare i riferimenti del parametro **path**
11
+ * Es. Il valore dela proprietà all'indice 0 di questo array verrà sostituita al valore {0} del parametro **path**
12
+ * @param {any} item Oggetto collegato a questo contesto. Può essere un oggetto generico (con "properties") o un oggetto ben definito
13
+ *
14
+ * @returns {any} Router link generato in base al parametri
15
+ */
16
+ private getRouterLink;
17
+ }
@@ -0,0 +1,12 @@
1
+ import { PipeTransform, QueryList } from "@angular/core";
2
+ import { Logger } from "../../core/Logger";
3
+ import { EsTdEditorDirective } from "../../directives/es_td_editor.directive";
4
+ export declare class EstEditorPipe implements PipeTransform {
5
+ private logger;
6
+ constructor(logger: Logger);
7
+ transform(propName: string, params: {
8
+ name: string;
9
+ src: QueryList<EsTdEditorDirective>;
10
+ fallback: any;
11
+ }): any;
12
+ }
@@ -0,0 +1,7 @@
1
+ /** Classe che fornisce dei metodi di estensione in grado di riconoscere e dispatchare l'evento copia e incolla lanciato su una pagina web */
2
+ export declare class Logger {
3
+ debugMode: boolean;
4
+ /** @ignore */
5
+ constructor(debugMode: boolean);
6
+ log(text: string): void;
7
+ }
@@ -1,32 +1,20 @@
1
1
  import { EsTableComponent } from "../../components/es-table/es_table.component";
2
- import { GenericItem } from "../../domain/externals/appsearch/GenericItem";
2
+ import { EsTdDirective } from "../../directives/es_td.directive";
3
+ import { EsThDirective } from "../../directives/es_th.directive";
3
4
  /** Classe contenente le gestioni particolari della modalità dinamica dell'es-table */
4
5
  export declare class DynamicModeHandler {
5
6
  private est;
6
7
  /** @ignore Costruttore*/
7
8
  constructor(est: EsTableComponent);
8
- /**
9
- * Metodo di supporto alla creazione di un router link parametrizzato all'oggetto corrente utilizzato nella modalità dinamica
10
- *
11
- * @param {string} path Path su cui navigare con eventuali parametri riferiti all'oggetto cotnestuale come {0}, {1}, ecc...
12
- * @param {string[]} parameterProps Lista posizionale delle proprietà a cui bindare i riferimenti del parametro **path**
13
- * Es. Il valore dela proprietà all'indice 0 di questo array verrà sostituita al valore {0} del parametro **path**
14
- * @param {GenericItem} item Oggetto generico collegato a questo contesto
15
- *
16
- * @returns {any} Router link generato in base al parametri
17
- */
18
- generateRouterLink(path: string, parameterProps: string[], item: GenericItem): any;
19
- /**
20
- * Crea un router link
21
- *
22
- * @param {string} path Path su cui navigare con eventuali parametri riferiti all'oggetto cotnestuale come {0}, {1}, ecc...
23
- * @param {string[]} pars Lista posizionale delle proprietà a cui bindare i riferimenti del parametro **path**
24
- * Es. Il valore dela proprietà all'indice 0 di questo array verrà sostituita al valore {0} del parametro **path**
25
- * @param {GenericItem} item Oggetto generico collegato a questo contesto
26
- *
27
- * @returns {any} Router link generato in base al parametri
28
- */
29
- private getRouterLink;
30
9
  /** Se non ho l'Input **DynamicRowColumnsDefinition** in modalità dinamica lo riempio con il default nome della colonna = testo della colonna */
31
10
  eventuallyReviewDynamicColumns(): void;
11
+ /** Genera partendo dalle **DynamicRowColumnsDefinition** la lista di **EsThDirective** e **EsTdDirective** che servono per la tabella */
12
+ emitThsAndTdsBasedOnDynamicDefinition(): {
13
+ ths: EsThDirective[];
14
+ tds: EsTdDirective[];
15
+ };
16
+ /** @ignore Helper */
17
+ private getTh;
18
+ /** @ignore Helper */
19
+ private getTd;
32
20
  }
@@ -175,7 +175,17 @@ export declare class SelectionHandler {
175
175
  * @param {number} column Indice della colonna preso banalmente dall'ngIf sui thElement
176
176
  * @param {{ row: number, column: number }} firstSelectionOverride Permette di overridare il primo elemento selezionato
177
177
  */
178
- singleCellSelection(event: any, row: number, column: number, firstSelectionOverride?: {
178
+ singleCellSelection(event: {
179
+ view: any;
180
+ range: boolean;
181
+ }, row: number, column: number, firstSelectionOverride?: {
182
+ row: number;
183
+ column: number;
184
+ }): void;
185
+ setSelectionStatusBorders(from: {
186
+ row: number;
187
+ column: number;
188
+ }, to: {
179
189
  row: number;
180
190
  column: number;
181
191
  }): void;
@@ -184,7 +194,7 @@ export declare class SelectionHandler {
184
194
  *
185
195
  * @param {{row: number, column: number}} exclusion Coordinata da escludere nella pulizia
186
196
  */
187
- clearSelectionStatus(exclusion?: {
197
+ clearSelectionStatusExcluding(exclusion?: {
188
198
  row: number;
189
199
  column: number;
190
200
  }): void;
@@ -199,7 +209,10 @@ export declare class SelectionHandler {
199
209
  *
200
210
  * @param {any} event Evento nativo Javascript
201
211
  */
202
- clearTextSelection(event: any): boolean;
212
+ clearTextSelection(event: {
213
+ view: any;
214
+ range: boolean;
215
+ }): boolean;
203
216
  /**
204
217
  * Data la matrice di selezione generata dal metodo **getSelectionStatusSelection** genera la strigna vera e propria da copiare nella Clipboard
205
218
  *
@@ -33,7 +33,10 @@ export declare class UtilitiesHandler {
33
33
  *
34
34
  * @returns {any[]} Pseudo-array di pulsanti a cui ci si può bindare lato HTML
35
35
  */
36
- getPagesArray(maxBtns: number, page: number, lastPage: number, actualCount?: number, ipp?: number): any[];
36
+ getPagesArray(maxBtns: number, page: number, lastPage: number, actualCount?: number, ipp?: number): {
37
+ val: number;
38
+ cssClass: string;
39
+ }[];
37
40
  /**
38
41
  * Calcola l'hash di un oggetto qualsiasi
39
42
  *
@@ -1,4 +1,5 @@
1
1
  import { TemplateRef } from "@angular/core";
2
+ import { AvailableOptions } from "@esfaenza/forms-and-validations";
2
3
  import { ThAggregation } from "../domain/internals/ThAggregation";
3
4
  import { InputType } from "../domain/types";
4
5
  /** Direttiva per la dichiarazione snella di un EsTh da emettere come header */
@@ -8,6 +9,7 @@ export declare class EsThDirective {
8
9
  _thAggregations: ThAggregation[];
9
10
  /** Variabile interna contenente in maniera ordinata i template dei padri */
10
11
  _thParents: {
12
+ id: string;
11
13
  tmpl?: TemplateRef<any>;
12
14
  content?: string;
13
15
  }[];
@@ -72,6 +74,29 @@ export declare class EsThDirective {
72
74
  thAlignment: "Center" | "Left" | "Right";
73
75
  /** Formato da applicare al valore se applicabile */
74
76
  thFormat: string;
77
+ /** Nome dell'editor da utilizzare per la modifica di questo campo, ordine di priorità:
78
+ *
79
+ * 1. Editor con nome **thEditorName**
80
+ *
81
+ * 2. Editor riferito alla proprietà **thProperty**
82
+ *
83
+ * 3. Editor di default per **thType**
84
+ */
85
+ thEditorName: string;
86
+ /** Opzioni da applicare all'editor di questa colonna */
87
+ thEditorOptions: {
88
+ [id in AvailableOptions]?: any;
89
+ };
90
+ /** Nome del renderer da utilizzare per visualizzare questo campo. Utilizzato solo per le tabelle dinamiche */
91
+ thRendererName: string;
92
+ /** Route di navigazione. Es. "['/pages/mod/mod_detail', { 'idItem': '{0}', 'idItem2' : '{1}' }]" */
93
+ thRoutePath: string;
94
+ /**
95
+ * Proprietà da bindare a **routePath** per generare la route completa.
96
+ *
97
+ * L'indice scritto in **routePath** è l'indice di accesso a questo array. Es. ["idItem", "idItem2"]
98
+ */
99
+ thRouteParameterProperties: string[];
75
100
  /** @ignore */
76
101
  constructor(Template: TemplateRef<any>);
77
102
  }
@@ -23,13 +23,9 @@ export declare class EsTableColumnsDefinition {
23
23
  [id in AvailableOptions]?: any;
24
24
  };
25
25
  Pinned: boolean;
26
+ PinnedWidth: number;
27
+ Pinnable: boolean;
26
28
  Grouping: string;
27
- edits: {
28
- [index: string]: {
29
- _editing: boolean;
30
- old_value: string;
31
- };
32
- };
33
29
  /**
34
30
  * Costruttore
35
31
  *
@@ -54,8 +50,6 @@ export declare class EsTableColumnsDefinition {
54
50
  description: string;
55
51
  }[], EditorName?: string, RendererName?: string, EditorOptions?: {
56
52
  [id in AvailableOptions]?: any;
57
- }, Pinned?: boolean, Grouping?: string);
53
+ }, Pinned?: boolean, PinnedWidth?: number, Pinnable?: boolean, Grouping?: string);
58
54
  static build(parsObj: any): EsTableColumnsDefinition;
59
- /** Routerlink che verrà generato a runtime basandosi sulle informazioni di **routePath** e **routeParameterProperties** */
60
- routerLink: any;
61
55
  }
@@ -25,6 +25,10 @@ export declare class ItemPropEditableReference {
25
25
  loverlaps?: boolean;
26
26
  /** Indica se il bordo a destra overlappa su un bordo di selezione sinistro della cella successiva */
27
27
  roverlaps?: boolean;
28
+ /** Indica se il bordo in alto overlappa su un bordo di selezione basso della cella precedente */
29
+ toverlaps?: boolean;
30
+ /** Indica se il bordo in basso overlappa su un bordo di selezione in alto della cella successiva */
31
+ boverlaps?: boolean;
28
32
  /** Funzione che imposta il nuovo valore della proprietà **property** dell'oggetto **item** ed aggiorna il **value** di questo oggetto */
29
33
  val_setter?: (value: string) => any;
30
34
  }
@@ -10,6 +10,7 @@ export declare class EsTableColumn {
10
10
  pinnedWidth?: number;
11
11
  template?: TemplateRef<any>;
12
12
  parentTemplates?: {
13
+ id: string;
13
14
  tmpl?: TemplateRef<any>;
14
15
  content?: string;
15
16
  }[];
@@ -26,11 +27,12 @@ export declare class EsTableColumn {
26
27
  * @param {boolean} pinned Indica se è una colonna pinnata
27
28
  * @param {number} pinnedWidth Indica la dimensione da assegnare a questa colonna quando è pinnata
28
29
  * @param {TemplateRef<any>} template Indica il template da usare per mostrare il testo dell'Header
29
- * @param {{ tmpl: TemplateRef<any>, content: string }[]} parentTemplates Indica la lista di template padri collegata a questo header, rappresentati come Template o come stringa qualora fosse generato automaticamente (caso **Multi**)
30
+ * @param {{ id: string, tmpl: TemplateRef<any>, content: string }[]} parentTemplates Indica la lista di template padri collegata a questo header, rappresentati come Template o come stringa qualora fosse generato automaticamente (caso **Multi**)
30
31
  * @param {boolean} multi Indica che la colonna deriva da una direttiva **Multi**
31
32
  * @param {string} multiContent Indica il contenuto della direttiva **Multi** per questa colonna
32
33
  */
33
34
  constructor(id: string, description: string, visible?: boolean, fixed?: boolean, pinned?: boolean, pinnable?: boolean, pinnedWidth?: number, template?: TemplateRef<any>, parentTemplates?: {
35
+ id: string;
34
36
  tmpl?: TemplateRef<any>;
35
37
  content?: string;
36
38
  }[], multi?: boolean, multiContent?: string);
@@ -0,0 +1,13 @@
1
+ /** Classe che rappresenta le informazioni di paginazione della tabella attuale */
2
+ export declare class PagerInfos {
3
+ constructor();
4
+ PagerCount: number;
5
+ ShowCount: boolean;
6
+ ShowPaging: boolean;
7
+ UsesView: boolean;
8
+ ShowButtons: boolean;
9
+ ShowPagingOptions: boolean;
10
+ View: any;
11
+ Ready: boolean;
12
+ Searches: 'items' | 'groups';
13
+ }
@@ -0,0 +1,10 @@
1
+ import { TemplateRef } from "@angular/core";
2
+ /** Interfaccia che indica un Header rappresentanto un gruppo */
3
+ export interface ThGroup {
4
+ /** Codice autogenerato essenzialmente per gli ngFor - trackBy */
5
+ ID: string;
6
+ /** Span di questo gruppo */
7
+ Span: number;
8
+ /** Template da visualizzare dentro al gruppo */
9
+ Template: TemplateRef<any>;
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/es-table",
3
- "version": "11.2.122",
3
+ "version": "11.2.123",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },