@esfaenza/es-table 11.2.21 → 11.2.22-beta1
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/bundles/esfaenza-es-table.umd.js +2265 -557
- package/bundles/esfaenza-es-table.umd.js.map +1 -1
- package/bundles/esfaenza-es-table.umd.min.js +2 -2
- package/bundles/esfaenza-es-table.umd.min.js.map +1 -1
- package/esfaenza-es-table.d.ts +5 -5
- package/esfaenza-es-table.metadata.json +1 -1
- package/esm2015/esfaenza-es-table.js +6 -6
- package/esm2015/lib/directives/es_td.directive.js +2 -4
- package/esm2015/lib/directives/es_th.directive.js +23 -7
- package/esm2015/lib/domain/externals/classes/CornerMenuOption.js +4 -0
- package/esm2015/lib/domain/externals/classes/EsTableColumnsDefinition.js +31 -0
- package/esm2015/lib/domain/externals/classes/EsTableOperationDefinition.js +22 -0
- package/esm2015/lib/domain/externals/classes/appsearch/AppOrdering.js +16 -0
- package/esm2015/lib/domain/externals/classes/appsearch/AppSearch.js +35 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GenericItem.js +11 -0
- package/esm2015/lib/domain/externals/classes/appsearch/Group.js +17 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GroupAggregation.js +16 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GroupFilter.js +14 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GroupOrAggregation.js +16 -0
- package/esm2015/lib/domain/externals/classes/appsearch/ItemsSelection.js +23 -0
- package/esm2015/lib/domain/externals/classes/report/ReportColumn.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportDefinition.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportOrder.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportParam.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportResult.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportRow.js +4 -0
- package/esm2015/lib/domain/externals/index.js +18 -0
- package/esm2015/lib/domain/index.js +3 -16
- package/esm2015/lib/domain/internals/classes/CacheTriptic.js +16 -0
- package/esm2015/lib/domain/internals/classes/EsTableColumn.js +24 -0
- package/esm2015/lib/domain/internals/classes/GroupPager.js +21 -0
- package/esm2015/lib/domain/internals/classes/GroupRouteFragment.js +17 -0
- package/esm2015/lib/domain/internals/classes/ThAggregation.js +16 -0
- package/esm2015/lib/domain/internals/index.js +6 -0
- package/esm2015/lib/es-table.module.js +9 -4
- package/esm2015/lib/es_table.component.js +1820 -325
- package/esm2015/lib/es_table.component.loc.js +6 -7
- package/esm2015/lib/es_td.component.js +28 -43
- package/esm2015/lib/es_th.component.js +16 -44
- package/esm2015/lib/models/EsTableDefaultable.js +4 -0
- package/esm2015/lib/models/EsTableModuleConfig.js +2 -4
- package/esm2015/lib/pager/table_pager.component.js +47 -26
- package/esm2015/lib/pager/table_pager.component.loc.js +5 -7
- package/esm2015/lib/tokens.js +6 -4
- package/esm2015/public-api.js +3 -2
- package/fesm2015/esfaenza-es-table.js +2152 -552
- package/fesm2015/esfaenza-es-table.js.map +1 -1
- package/lib/directives/es_td.directive.d.ts +1 -3
- package/lib/directives/es_th.directive.d.ts +18 -5
- package/lib/domain/externals/classes/CornerMenuOption.d.ts +7 -0
- package/lib/domain/{classes → externals/classes}/EsTableColumnsDefinition.d.ts +5 -7
- package/lib/domain/{classes → externals/classes}/EsTableOperationDefinition.d.ts +1 -3
- package/lib/domain/{classes → externals/classes/appsearch}/AppOrdering.d.ts +0 -0
- package/lib/domain/externals/classes/appsearch/AppSearch.d.ts +67 -0
- package/lib/domain/externals/classes/appsearch/GenericItem.d.ts +13 -0
- package/lib/domain/externals/classes/appsearch/Group.d.ts +17 -0
- package/lib/domain/externals/classes/appsearch/GroupAggregation.d.ts +14 -0
- package/lib/domain/externals/classes/appsearch/GroupFilter.d.ts +12 -0
- package/lib/domain/externals/classes/appsearch/GroupOrAggregation.d.ts +14 -0
- package/lib/domain/externals/classes/appsearch/ItemsSelection.d.ts +22 -0
- package/lib/domain/externals/classes/report/ReportColumn.d.ts +15 -0
- package/lib/domain/externals/classes/report/ReportDefinition.d.ts +24 -0
- package/lib/domain/externals/classes/report/ReportOrder.d.ts +7 -0
- package/lib/domain/externals/classes/report/ReportParam.d.ts +40 -0
- package/lib/domain/externals/classes/report/ReportResult.d.ts +12 -0
- package/lib/domain/externals/classes/report/ReportRow.d.ts +5 -0
- package/lib/domain/externals/index.d.ts +17 -0
- package/lib/domain/index.d.ts +2 -15
- package/lib/domain/internals/classes/CacheTriptic.d.ts +14 -0
- package/lib/domain/{classes → internals/classes}/EsTableColumn.d.ts +6 -4
- package/lib/domain/internals/classes/GroupPager.d.ts +22 -0
- package/lib/domain/internals/classes/GroupRouteFragment.d.ts +15 -0
- package/lib/domain/internals/classes/ThAggregation.d.ts +14 -0
- package/lib/domain/internals/index.d.ts +5 -0
- package/lib/es_table.component.d.ts +462 -62
- package/lib/es_table.component.loc.d.ts +2 -6
- package/lib/es_td.component.d.ts +14 -36
- package/lib/es_th.component.d.ts +21 -61
- package/lib/models/EsTableDefaultable.d.ts +19 -0
- package/lib/models/EsTableModuleConfig.d.ts +8 -7
- package/lib/pager/table_pager.component.d.ts +25 -30
- package/lib/pager/table_pager.component.loc.d.ts +2 -6
- package/lib/tokens.d.ts +6 -3
- package/package.json +2 -1
- package/public-api.d.ts +2 -1
- package/esm2015/lib/domain/classes/AppOrdering.js +0 -16
- package/esm2015/lib/domain/classes/AppSearch.js +0 -35
- package/esm2015/lib/domain/classes/CornerMenuOption.js +0 -6
- package/esm2015/lib/domain/classes/EsTableColumn.js +0 -22
- package/esm2015/lib/domain/classes/EsTableColumnsDefinition.js +0 -31
- package/esm2015/lib/domain/classes/EsTableOperationDefinition.js +0 -24
- package/esm2015/lib/domain/classes/GenericItem.js +0 -15
- package/esm2015/lib/domain/classes/IAppSearch.js +0 -2
- package/esm2015/lib/domain/classes/ItemsSelection.js +0 -25
- package/esm2015/lib/domain/classes/ReportColumn.js +0 -6
- package/esm2015/lib/domain/classes/ReportDefinition.js +0 -6
- package/esm2015/lib/domain/classes/ReportOrder.js +0 -6
- package/esm2015/lib/domain/classes/ReportParam.js +0 -6
- package/esm2015/lib/domain/classes/ReportResult.js +0 -6
- package/esm2015/lib/domain/classes/ReportRow.js +0 -6
- package/lib/domain/classes/AppSearch.d.ts +0 -76
- package/lib/domain/classes/CornerMenuOption.d.ts +0 -13
- package/lib/domain/classes/GenericItem.d.ts +0 -25
- package/lib/domain/classes/IAppSearch.d.ts +0 -67
- package/lib/domain/classes/ItemsSelection.d.ts +0 -27
- package/lib/domain/classes/ReportColumn.d.ts +0 -29
- package/lib/domain/classes/ReportDefinition.d.ts +0 -46
- package/lib/domain/classes/ReportOrder.d.ts +0 -13
- package/lib/domain/classes/ReportParam.d.ts +0 -76
- package/lib/domain/classes/ReportResult.d.ts +0 -22
- package/lib/domain/classes/ReportRow.d.ts +0 -9
|
@@ -1,36 +1,38 @@
|
|
|
1
1
|
import { QueryList, ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges, ElementRef, TemplateRef } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
|
3
|
-
import { HashingService, UtilityService, ExportService } from '@esfaenza/extensions';
|
|
3
|
+
import { HashingService, UtilityService, ExportService, MessageService, DateService } from '@esfaenza/extensions';
|
|
4
4
|
import { LocalizationService } from '@esfaenza/localizations';
|
|
5
5
|
import { PreferencesService } from '@esfaenza/preferences';
|
|
6
6
|
import { ContextMenuComponent } from '@esfaenza/ngx-contextmenu';
|
|
7
|
-
import {
|
|
7
|
+
import { AppSearch, AppOrdering, GenericItem, EsTableColumnsDefinition, CornerMenuOption, ReportResult, ReportColumn, EsTableOperationDefinition, EsTableColumn, GroupPager } from './domain';
|
|
8
8
|
import { EsTd } from './es_td.component';
|
|
9
|
-
import { EsTh } from './es_th.component';
|
|
10
9
|
import { EsTdDirective } from './directives/es_td.directive';
|
|
11
10
|
import { EsThDirective } from './directives/es_th.directive';
|
|
12
|
-
import { ItemsSelection } from './domain/classes/ItemsSelection';
|
|
11
|
+
import { ItemsSelection } from './domain/externals/classes/appsearch/ItemsSelection';
|
|
12
|
+
import { Group } from "./domain/externals/classes/appsearch/Group";
|
|
13
|
+
import { EsTableDefaultable } from './models/EsTableDefaultable';
|
|
13
14
|
/** Componente che permette di rappresentare una griglia di valori */
|
|
14
15
|
export declare class EsTableComponent implements ControlValueAccessor, OnChanges {
|
|
15
16
|
ngControl: NgControl;
|
|
16
17
|
private prefService;
|
|
18
|
+
private deafults;
|
|
19
|
+
locale: string;
|
|
17
20
|
lc: LocalizationService;
|
|
18
21
|
private cdr;
|
|
19
22
|
private hashExts;
|
|
20
23
|
private utiExts;
|
|
21
24
|
private expExts;
|
|
25
|
+
private dateExts;
|
|
26
|
+
private msgExts;
|
|
22
27
|
/** @ignore */
|
|
23
|
-
constructor(ngControl: NgControl, prefService: PreferencesService, lc: LocalizationService, cdr: ChangeDetectorRef, hashExts: HashingService, utiExts: UtilityService, expExts: ExportService);
|
|
28
|
+
constructor(ngControl: NgControl, prefService: PreferencesService, deafults: EsTableDefaultable, locale: string, lc: LocalizationService, cdr: ChangeDetectorRef, hashExts: HashingService, utiExts: UtilityService, expExts: ExportService, dateExts: DateService, msgExts: MessageService);
|
|
24
29
|
/** View finale su cui bindarsi lato Frontend, il tipo può essere IAppSearch<any> (per la **viewMode**), any[] (per l'**arrayMode**) e ReportDefinition per la **reportMode** */
|
|
25
30
|
View: any;
|
|
26
31
|
/** Modello da cui l'es-table mostra i pulsanti di paginazione in basso a destra */
|
|
27
32
|
arrayPulsanti: any;
|
|
28
33
|
/** Indica se l'es-table deve mostrare il check globale nell'header per fare il "seleziona tutto" */
|
|
29
34
|
globalCheck: boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Tiene da conto l'ultimo elemento selezionato in modo da fare ragionamenti del tipo
|
|
32
|
-
* "Ho selezionato questo, l'ultimo selezionato era **lastSelected**, devo selezionare tutti quelli in mezzo", ad esempio per la selezione multipla
|
|
33
|
-
*/
|
|
35
|
+
/** Tiene da conto l'ultimo elemento selezionato in modo da poter effettuare il SHIFT+CLICK */
|
|
34
36
|
private lastSelected;
|
|
35
37
|
/** Conteggio interno per il numero di elementi selezionati */
|
|
36
38
|
selectedObjects: number;
|
|
@@ -79,6 +81,8 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
79
81
|
};
|
|
80
82
|
/** Modello rappresentante un singolo th della tabella, generato in base alle configurazioni e agli oggetti ricevuti */
|
|
81
83
|
RowTHs: {
|
|
84
|
+
Pinned: boolean;
|
|
85
|
+
Fixed: boolean;
|
|
82
86
|
ID: string;
|
|
83
87
|
Visible: boolean;
|
|
84
88
|
Class: string;
|
|
@@ -90,6 +94,7 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
90
94
|
}[];
|
|
91
95
|
/** Modello di appoggio temporaneo per i **RowTHs** */
|
|
92
96
|
TMPRowTHs: {
|
|
97
|
+
Pinned: boolean;
|
|
93
98
|
Fixed: boolean;
|
|
94
99
|
ID: string;
|
|
95
100
|
Visible: boolean;
|
|
@@ -100,6 +105,16 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
100
105
|
Template: TemplateRef<any>;
|
|
101
106
|
Wrap: boolean;
|
|
102
107
|
}[];
|
|
108
|
+
/** Modello di appoggio temporaneo per i **RowThGroups** */
|
|
109
|
+
TMPRowThGroups: {
|
|
110
|
+
Span: number;
|
|
111
|
+
Template: TemplateRef<any>;
|
|
112
|
+
}[][];
|
|
113
|
+
/** Modello rappresentante un singolo header group della tabella. Questa lista è già ordinata e pronta per essere utilizzata in ngFor */
|
|
114
|
+
RowThGroups: {
|
|
115
|
+
Span: number;
|
|
116
|
+
Template: TemplateRef<any>;
|
|
117
|
+
}[][];
|
|
103
118
|
/** Cache per i routerLink generati nelle tabelle dinamiche */
|
|
104
119
|
DynamicTableRouterLinkCache: {};
|
|
105
120
|
/**
|
|
@@ -130,13 +145,13 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
130
145
|
EsTdsDirective: QueryList<EsTdDirective>;
|
|
131
146
|
/** Query per recuperare tutti gli es-td assegnati a direttiva (Per la modalità dinamica dell'es-table) */
|
|
132
147
|
EsThsDirective: QueryList<EsThDirective>;
|
|
133
|
-
/** Query per recuperare tutti gli es-th */
|
|
148
|
+
/** @deprecated Query per recuperare tutti gli es-th */
|
|
134
149
|
private EsThs;
|
|
135
|
-
/** Query per recuperare tutti gli es-td */
|
|
150
|
+
/** @deprecated Query per recuperare tutti gli es-td */
|
|
136
151
|
private EsTds;
|
|
137
|
-
/** Query per recuperare le informazioni del body (punto della tabella dove vengono mostrate le righe) */
|
|
152
|
+
/** @deprecated Query per recuperare le informazioni del body (punto della tabella dove vengono mostrate le righe) */
|
|
138
153
|
bodyRef: any;
|
|
139
|
-
/** Query per recuperare le informazioni dell'header (punto della tabella dove vengono mostrate le intestazioni delle righe) */
|
|
154
|
+
/** @deprecated Query per recuperare le informazioni dell'header (punto della tabella dove vengono mostrate le intestazioni delle righe) */
|
|
140
155
|
headerRef: any;
|
|
141
156
|
/** Query per recuperare le informazioni sul raggruppamento degli header */
|
|
142
157
|
headerGroupRef: any;
|
|
@@ -162,7 +177,11 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
162
177
|
* @deprecated Utilizzare l'Input **Template** delle es-td e assegnare un template con tutti i binding che si vuole ai click
|
|
163
178
|
*/
|
|
164
179
|
CustomCellActionsOn: string;
|
|
165
|
-
/**
|
|
180
|
+
/**
|
|
181
|
+
* Serve per decidere di lanciare o meno il **event.stopPropagation()** al termine della gestione dell'evento
|
|
182
|
+
*
|
|
183
|
+
* @deprecated Utilizzare l'Input **Template** delle es-td e assegnare un template con tutti i binding che si vuole ai click
|
|
184
|
+
*/
|
|
166
185
|
CellActionPropagates: boolean;
|
|
167
186
|
/**
|
|
168
187
|
* Decide se utilizzare o meno le CustomCells. Impostandolo a **true** l'es-table diventa in grado di gestire nativamente:
|
|
@@ -178,14 +197,14 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
178
197
|
UseCustomCells: boolean;
|
|
179
198
|
/** Permette di impostare l'altezza massima della tabella. Se null la dimensione si adatta al numero di elementi attualmente in visualizzazione */
|
|
180
199
|
MaxHeight: number;
|
|
181
|
-
/** Classi da applicare
|
|
182
|
-
|
|
200
|
+
/** Classi da applicare al contenitore della tabella */
|
|
201
|
+
ContainerClass: any;
|
|
183
202
|
/** Permette o meno l'export in formato XLSX */
|
|
184
203
|
XLSXExport: boolean;
|
|
185
204
|
/** Permette o meno l'export in formato CSV */
|
|
186
205
|
CSVExport: boolean;
|
|
187
206
|
/** Permette di visualizzare o meno l'opzione di paginazione "Tutti" */
|
|
188
|
-
AllSearch:
|
|
207
|
+
AllSearch: any;
|
|
189
208
|
/** Diminuisce gli spazi fra una cella e l'altra, e internamente il padding del font in modo da presentare molti più dati in un'unica pagina */
|
|
190
209
|
HighCellDensity: boolean;
|
|
191
210
|
/** Abilita o meno la possibilità di selezionare oggetti */
|
|
@@ -204,8 +223,6 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
204
223
|
Export: boolean;
|
|
205
224
|
/** Indica se permettere la selezione multipla Windows-like cliccando un oggetto e facendo poi Shift + click su un oggetto successivo */
|
|
206
225
|
ShiftClick: boolean;
|
|
207
|
-
/** Mostra o nasconde le informazioni di paginazione, sia i pulsanti, sia il selettore degli oggetti per pagina */
|
|
208
|
-
ShowPaging: boolean;
|
|
209
226
|
/** Indica se nascondere o mostrare il componente di paginazione */
|
|
210
227
|
HidePaging: boolean;
|
|
211
228
|
/** Indica se nascondere o mostrare il conteggio degli elementi trovati */
|
|
@@ -217,18 +234,16 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
217
234
|
/** Nome dell'esportazione generata da questa tabella */
|
|
218
235
|
ExportFileName: string;
|
|
219
236
|
/** Classe (HTML) di default della tabella */
|
|
220
|
-
TableClass:
|
|
221
|
-
/** Testo da visualizzare nel conteggio. Di default: "Oggetti selezionati" */
|
|
222
|
-
CountLabel: string;
|
|
237
|
+
TableClass: any;
|
|
223
238
|
/**
|
|
224
239
|
* Funzione da utilizzare in esportazione. Nel formato "Report" avrà un unico parametro "Formato" e nessun valore di ritorno.
|
|
225
240
|
*
|
|
226
241
|
* Nel formato "View" ha come parametro una callback con i dati completi da esportare (dato che di default la ricerca è paginata)
|
|
227
242
|
*/
|
|
228
243
|
ExportFunction: any;
|
|
229
|
-
/** Indica la presenza di raggruppamenti a livello di header */
|
|
244
|
+
/** @deprecated Indica la presenza di raggruppamenti a livello di header */
|
|
230
245
|
HasHeaderGroup: boolean;
|
|
231
|
-
/** Indica la presenza di raggruppamenti a livello del raggruppamento precedentemente esistente, chiaramente è insensata senza **HasHeaderGroup** */
|
|
246
|
+
/** @deprecated Indica la presenza di raggruppamenti a livello del raggruppamento precedentemente esistente, chiaramente è insensata senza **HasHeaderGroup** */
|
|
232
247
|
HasSecondaryHeaderGroup: boolean;
|
|
233
248
|
/** Utilizzato per dividere la sorgente in modalità EndlessScroll */
|
|
234
249
|
SliceSize: number;
|
|
@@ -260,12 +275,8 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
260
275
|
HiddenColumns: boolean;
|
|
261
276
|
/** Permette di riordinare le colonne in base alle impostazioni effettuate dal Menù contestuale in alto a destra */
|
|
262
277
|
ColumnsOrdering: boolean;
|
|
263
|
-
/**
|
|
264
|
-
|
|
265
|
-
*
|
|
266
|
-
* @deprecated Utilizzato solo per un caso particolare del Metering
|
|
267
|
-
*/
|
|
268
|
-
SearchView: IAppSearch<any>;
|
|
278
|
+
/** Eventuale supporto alle ricerche applicate alla modalità Array */
|
|
279
|
+
SearchView: AppSearch<any>;
|
|
269
280
|
/** Abilita o disabilita il sistema che permette di selezionare tutti gli elementi nella vista */
|
|
270
281
|
SelectAll: boolean;
|
|
271
282
|
/** Simula la paginazione anche per le tabelle che funzionano in modalità Array */
|
|
@@ -284,6 +295,10 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
284
295
|
StartsExpanded: boolean;
|
|
285
296
|
/** Indica se effettuare il salvataggio delle preferenze di ricerca */
|
|
286
297
|
SavePreferences: boolean;
|
|
298
|
+
/** Indica dove visualizzare le informazioni di paginazione, se sopra, sotto o in entrambi */
|
|
299
|
+
PagingStyle: 'both' | 'top' | 'bottom';
|
|
300
|
+
/** Indica dove visualizzare le informazioni di paginazione, se sopra, sotto o in entrambi */
|
|
301
|
+
RowGroupingPagingStyle: 'left' | 'right';
|
|
287
302
|
/**
|
|
288
303
|
* Sorgente dati secondaria
|
|
289
304
|
*
|
|
@@ -297,14 +312,21 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
297
312
|
*/
|
|
298
313
|
TertiarySource: boolean;
|
|
299
314
|
/** Indica se utilizzare la cache di selezione che permette di mantenere gli stati di selezione dei vari oggetti navigando da una pagina all'altra */
|
|
300
|
-
UseSelectionCache:
|
|
315
|
+
UseSelectionCache: any;
|
|
316
|
+
/** Permette di decidere se, in modalità raggruppamento, mostrare o meno il valore delle colonne di gruppo negli oggetti finali. Di default sono nascosti */
|
|
317
|
+
ShowItemGroupsColumns: any;
|
|
301
318
|
/** Evento che viene richiamato al cambio di oridnamento di una colonna */
|
|
302
319
|
onOrderChanged: EventEmitter<AppOrdering>;
|
|
303
320
|
/**
|
|
304
321
|
* Evento che viene richiamato quando l'es-table ritiene sia necessario ri-effettuare la ricerca.
|
|
305
|
-
* Il booleano dell'evento indica se viene suggerito di resettare la pagina o meno
|
|
322
|
+
* Il booleano dell'evento indica se viene suggerito di resettare la pagina o meno.
|
|
323
|
+
*
|
|
324
|
+
* Solo in caso venga utilizzata la modalità a raggruppamenti di righe può succedere che l'es-table passi un intero AppSearch come parametro di ricerca,
|
|
325
|
+
* in quel caso l'applicazione ricevente dovrà onorare la richiesta spedendo al backand l'oggetto di ricerca AS-IS
|
|
326
|
+
*
|
|
327
|
+
* il tipo dell'Emitter invece di essere [boolean | AppSearch<any>] è stato impostato a "any" per evitare problemi di retrocompatibilità
|
|
306
328
|
*/
|
|
307
|
-
onSearchRequest: EventEmitter<
|
|
329
|
+
onSearchRequest: EventEmitter<any>;
|
|
308
330
|
/** Evento che parte ad ogni modifica di "checkaggio" in forma di comodo array. Espone l'oggetto con lo stato di check attuale */
|
|
309
331
|
onSelectionChanged: EventEmitter<ItemsSelection<any>>;
|
|
310
332
|
/** Evento richiamato all'eliminazione di un oggetto */
|
|
@@ -344,20 +366,98 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
344
366
|
/** Numero di pagine (durante la paginazione in modalità Array) */
|
|
345
367
|
arraymodePages: number;
|
|
346
368
|
/** Oggetti per ogni pagina (durante la paginazione in modalità Array) */
|
|
347
|
-
ArraymodeItemsPerPage:
|
|
369
|
+
ArraymodeItemsPerPage: any;
|
|
348
370
|
/** Oggetto di selezione per la modalità Array, che deve comportarsi come la controparte in modalità View */
|
|
349
371
|
arraymodeSelection: ItemsSelection<any>;
|
|
372
|
+
/** Colonne da visualizzare in modalità array */
|
|
373
|
+
arrayColumns: string[];
|
|
374
|
+
/** Ordine delle colonne da visualizzare in modalità array */
|
|
375
|
+
arrayColumnOrdering: string[];
|
|
376
|
+
/** Ordinamenti ASC-DESC sulle colonne in modalità array */
|
|
377
|
+
arrayOrders: AppOrdering[];
|
|
350
378
|
/**
|
|
351
379
|
* Variabile che serve a gestire il momento in cui l'es-table aggiorna la paginazione (pulsanti ecc).
|
|
352
380
|
* Essendo operazioni comunque costose le effettuo solo su binding esterni, non su rewrite generati internamente
|
|
353
381
|
*/
|
|
354
382
|
private internalWriteCall;
|
|
355
|
-
/**
|
|
356
|
-
|
|
383
|
+
/**
|
|
384
|
+
* Cache che conterrà tutte le ricerche effettuate su gruppi diversi dal primo e su elementi contenuti nei gruppi.
|
|
385
|
+
* In caso di cambi di ordinamento delle colonne diverse dalla prima tutte le chiamate fatte dal secondo livello in poi devono essere rieseguite secondo la seguente logica:
|
|
386
|
+
*
|
|
387
|
+
*
|
|
388
|
+
* **Cambio ordinamento sul primo gruppo**: reload completo, non mi occupo di ripulire gli elementi bindati in alcun modo
|
|
389
|
+
*
|
|
390
|
+
* **Cambio ordinamento sulla colonna relativa all'N-esimo gruppo**: reload completo del contenuto dei gruppi precedenti, ripulendo precedentemente
|
|
391
|
+
* tutti gli elementi con **_grouplevel** = N
|
|
392
|
+
*
|
|
393
|
+
* **Cambio ordinamento su una colonna non raggruppata**: reload completo per tutti i gruppi finali aperti, devo precedentemente ripulire tutti gli elementi con **_item** = true
|
|
394
|
+
*
|
|
395
|
+
* Altri eventi non dovrebbero rappresentare problemi:
|
|
396
|
+
* - Selezione: non cambia nulla
|
|
397
|
+
* - Paginazione: cambia a livello root quindi viene ricaricato tutto comunque, stesso vale per le paginazioni interne
|
|
398
|
+
*/
|
|
399
|
+
private groupSearchRequestsCache;
|
|
400
|
+
/** Variabile d'appoggio per capire se c'è bisogno di ri-effettuare una ricerca o meno */
|
|
401
|
+
private ResearchNeeded;
|
|
402
|
+
/** Colonne visibili della vista attuale. Valorizzato di default al numero massimo di colonne supportate dalla tabella per le casistiche in assenza di custom cells */
|
|
403
|
+
Columns: {
|
|
404
|
+
Visibile: number;
|
|
405
|
+
VisibleUnpinned: number;
|
|
406
|
+
Global: number;
|
|
407
|
+
};
|
|
408
|
+
/** In caso di Row Grouping qui viene salvata la vista principale dei gruppi base */
|
|
409
|
+
MainGroupView: AppSearch<any>;
|
|
410
|
+
/** Conteggio base degli oggetti. In modalità normale viene resettato ad ogni nuova View inserita, in modalità RowGrouping viene resettato solo ad una nuova View di livello "0" */
|
|
411
|
+
private BaseItemsCount;
|
|
412
|
+
/** Cache per salvare per ogni chiave di ogni gruppo chi è il gruppo rappresentato */
|
|
413
|
+
private rgGroupCache;
|
|
414
|
+
/** Cache per salvare per ogni chiave di ogni gruppo chi sono gli oggetti sottostanti, non dei sottogruppi */
|
|
415
|
+
private rgItemCache;
|
|
416
|
+
/** Cache per salvare per ogni chiave di ogni gruppo chi sono gli oggetti sottostanti, non dei sottogruppi */
|
|
417
|
+
private rgChildGroupsCache;
|
|
418
|
+
/** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via hash*/
|
|
419
|
+
private itemsCache;
|
|
420
|
+
/** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via hash */
|
|
421
|
+
private groupsCache;
|
|
422
|
+
/** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
|
|
423
|
+
private exclusionsCache;
|
|
424
|
+
/** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
|
|
425
|
+
private group_exclusionsCache;
|
|
426
|
+
/** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via indice*/
|
|
427
|
+
private i_itemsCache;
|
|
428
|
+
/** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via indice */
|
|
429
|
+
private i_groupsCache;
|
|
430
|
+
/** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
|
|
431
|
+
private i_exclusionsCache;
|
|
432
|
+
/** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
|
|
433
|
+
private i_group_exclusionsCache;
|
|
434
|
+
/** Indica se ci sono delle colonne pinnate e visibili. Serve per poter settare tutte le colonne prima che arrivino dati a pinned*/
|
|
435
|
+
HasPinnedColumns: boolean;
|
|
436
|
+
/** Larghezza calcolata del container delle colonne pinnate */
|
|
437
|
+
PinnedContainerWidth: number;
|
|
438
|
+
/** Indica se nonostante siamo in modalità array sono stati individuati dei gruppi. In tal caso es-table si comporta da pseudo backend ed effettua le aggregazioni e raggruppamenti completamente lato client */
|
|
439
|
+
ArrayGrouping: boolean;
|
|
440
|
+
PagerOptions: {
|
|
441
|
+
PagerCount: number;
|
|
442
|
+
ShowCount: boolean;
|
|
443
|
+
ShowPaging: boolean;
|
|
444
|
+
UsesView: boolean;
|
|
445
|
+
View: any;
|
|
446
|
+
Ready: boolean;
|
|
447
|
+
Searches: 'items' | 'groups';
|
|
448
|
+
};
|
|
357
449
|
/** @ignore */
|
|
358
450
|
ngOnInit(): void;
|
|
359
451
|
/** @ignore */
|
|
360
452
|
ngAfterViewInit(): void;
|
|
453
|
+
/**
|
|
454
|
+
* Se l'Input è null (valore non settato) vede se c'è un default con cui valorizzarlo. Se non c'è utilizza il valore di fallback (qualora fornito)
|
|
455
|
+
*
|
|
456
|
+
* @param {T} inputValue Valore dell'Input
|
|
457
|
+
* @param {T} defaultValue Valore di default impostato da configurazione
|
|
458
|
+
* @param {T} fallbackValue Valore dell'Input per quando non è stato assegnato dal programmatore e non ha un default
|
|
459
|
+
*/
|
|
460
|
+
private InputOrDefault;
|
|
361
461
|
/** @ignore */
|
|
362
462
|
ngOnDestroy(): void;
|
|
363
463
|
/** @ignore */
|
|
@@ -372,6 +472,19 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
372
472
|
propagateChange: (_: any) => void;
|
|
373
473
|
/** @ignore */
|
|
374
474
|
writeValue(obj: any): void;
|
|
475
|
+
/**
|
|
476
|
+
* Successivamente al bind del nuovo input questa funzione si occupa di finalizzare tutti i parametri di funzionamento dell'es-table
|
|
477
|
+
* in base a Input - Modello, e qualsiasi altra cosa possa servire
|
|
478
|
+
*/
|
|
479
|
+
private finalizeContext;
|
|
480
|
+
/** Genera le informzioni di paginazione per la vista globale dell'es-table */
|
|
481
|
+
private setupPagingInformations;
|
|
482
|
+
/**
|
|
483
|
+
* Ripulisce le cache di selezione
|
|
484
|
+
*
|
|
485
|
+
* @todo: SELECTION
|
|
486
|
+
*/
|
|
487
|
+
private clearSelectionCaches;
|
|
375
488
|
/**
|
|
376
489
|
* In base alla modalità specificata (ArrayMode, ViewMode, ecc...) questo metodo recupera l'array di oggetti da bindare ad interfaccia
|
|
377
490
|
*
|
|
@@ -380,14 +493,28 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
380
493
|
* @param {boolean} allIfPossible [false] Indica se prendere tutti gli oggetti quaora possibile, usato solo in ArrayMode
|
|
381
494
|
*
|
|
382
495
|
* @returns {any[]} Lista degli oggetti su cui effettuare il bind lato interfaccia
|
|
496
|
+
*
|
|
497
|
+
* @todo: ITEMS
|
|
383
498
|
*/
|
|
384
499
|
private getItemsByMode;
|
|
385
|
-
/**
|
|
500
|
+
/**
|
|
501
|
+
* @ignore
|
|
502
|
+
*
|
|
503
|
+
* @todo: ITEMS
|
|
504
|
+
*/
|
|
386
505
|
private getViewItemsBySource;
|
|
506
|
+
/**
|
|
507
|
+
* Helper per effettuare il caching delle aggregazioni. Le sposta da una lista di **GroupAggregation** a una **<Map<string, Map<string, string>>**
|
|
508
|
+
*
|
|
509
|
+
* @todo: ROWGROUPING
|
|
510
|
+
*/
|
|
511
|
+
private cacheAggregations;
|
|
387
512
|
/**
|
|
388
513
|
* Metodo che prende tutti gli oggetti di cui dispone divisi in bucket da 100 elementi
|
|
389
514
|
*
|
|
390
515
|
* @returns {any[][]} Matrice di array Nx100
|
|
516
|
+
*
|
|
517
|
+
* @todo: ITEMS
|
|
391
518
|
*/
|
|
392
519
|
private getItemSlices;
|
|
393
520
|
/**
|
|
@@ -402,34 +529,86 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
402
529
|
*/
|
|
403
530
|
private postBoundSourceCalculation;
|
|
404
531
|
/**
|
|
405
|
-
*
|
|
532
|
+
* Per poter distinguere le chiamate a questo metodo: Dopo il setTimeout se uso gli EsTd/EsTh vecchi, senza il setTimeout se uso le nuove direttive
|
|
406
533
|
*/
|
|
407
|
-
private
|
|
534
|
+
private internalPostBoundSource;
|
|
408
535
|
/**
|
|
409
|
-
*
|
|
536
|
+
* Se in modalità array applica gli ordinamenti ASC-DESC delle colonne
|
|
410
537
|
*
|
|
411
|
-
* @
|
|
412
|
-
* @param {ItemsSelection<any>} selectionItem Oggetti di selezione derivante dalla view o dall'oggetto per Array
|
|
538
|
+
* @todo: INTERNALDB
|
|
413
539
|
*/
|
|
414
|
-
private
|
|
540
|
+
private arrayModeReviewOrderings;
|
|
415
541
|
/**
|
|
416
|
-
*
|
|
542
|
+
* Se in modalità array applica i raggruppamenti definiti lato row-grouping
|
|
417
543
|
*
|
|
418
|
-
* @param {
|
|
544
|
+
* @param {ths: EsTh[] | EsThDirective[]} ths Header
|
|
545
|
+
*
|
|
546
|
+
* @todo: ROW GROUPING
|
|
419
547
|
*/
|
|
420
|
-
private
|
|
548
|
+
private arrayModeReviewGroupings;
|
|
421
549
|
/**
|
|
422
|
-
*
|
|
550
|
+
* Data la definizione dei gruppi da generare da una lista di oggetti, suddivide gli oggetti passati in gruppi e sottogruppi
|
|
423
551
|
*
|
|
424
|
-
* @param {
|
|
425
|
-
* @param {
|
|
552
|
+
* @param {Group[]} grps Definizione dei gruppi
|
|
553
|
+
* @param {number} currentIndex Indice di elaborazione. Al livello 0 ho tutti gli oggetti e devo generare i primi gruppi, a livello 1 ho tutti i gruppi principali e devo
|
|
554
|
+
* elaborare i sottogruppi, e così via ricorsivamente...
|
|
555
|
+
* @param {any[]} items Oggetti da raggruppare
|
|
556
|
+
* @param {GroupOrAggregation[]} aggregations Info di aggregazione
|
|
557
|
+
* @param {any} parent Riferimento al gruppo padre
|
|
558
|
+
*
|
|
559
|
+
* @todo: INTERNALDB
|
|
426
560
|
*/
|
|
427
|
-
private
|
|
561
|
+
private getGroupsRecursive;
|
|
562
|
+
/**
|
|
563
|
+
* Data una lista di oggetti genera le aggregazioni specificate. Si considera di avere tutti gli oggetti
|
|
564
|
+
*
|
|
565
|
+
* @param {any[]} items Oggetti di cui calcolare le aggregazione
|
|
566
|
+
* @param {GroupOrAggregation[]} aggregations Aggergazioni da generare
|
|
567
|
+
*
|
|
568
|
+
* @todo: INTERNALDB
|
|
569
|
+
*/
|
|
570
|
+
private generateAggregations;
|
|
571
|
+
/**
|
|
572
|
+
* Data una lista di oggetti effettua dei raggruppamenti in base alla proprietà **field**, restituendo un oggetto del tipo { Gruppo1: oggetti[], Gruppo2: oggetti[], ecc... }
|
|
573
|
+
*
|
|
574
|
+
* @param {any[]} array Lista degli oggetti da raggruppare
|
|
575
|
+
* @param {string} field Campo su cui effettuare i raggruppamenti
|
|
576
|
+
*
|
|
577
|
+
* @returns {{ [id: string]: any[] }} Dizionario dei gruppi
|
|
578
|
+
*
|
|
579
|
+
* @todo: INTERNALDB
|
|
580
|
+
*/
|
|
581
|
+
private groupBy;
|
|
582
|
+
/**
|
|
583
|
+
* Effettua il binding degli oggetti pervenuti da questa chiamata con gli oggetti effettivamente da graficare
|
|
584
|
+
*
|
|
585
|
+
* @param {any} view View da cui sono arrivati gli oggetti. Può essere o un array se sono in **arrayMode** o una AppSearch<T> se sono in **viewMode**
|
|
586
|
+
*/
|
|
587
|
+
private bindDisplayToLoadedItemsOrGroups;
|
|
588
|
+
/**
|
|
589
|
+
* In modalità rowgrouping quando mi arriva un nuovo blocco di oggetti devo aggiungerlo alla vista attuale:
|
|
590
|
+
*
|
|
591
|
+
* 1) Se non viene richiesto il dettaglio di alcun gruppo significa che devo considerare mi siano arrivati tutti i gruppi principali
|
|
592
|
+
* 2) Se viene richiesto il dettaglio di un gruppo diverso dall'ultimo devo aggiungere dopo al gruppo cliccato la lista dei sottogruppi
|
|
593
|
+
* 2) Se viene richiesto il dettaglio dell'ultimo gruppo devo aggiungere dopo al gruppo cliccato la lista degli oggetti
|
|
594
|
+
*
|
|
595
|
+
* @param {any} view AppSearch<T> da cui sono arrivati gli oggetti
|
|
596
|
+
* @param {number} groupingKeys Livelli di raggruppamento da aspettarsi sui dati
|
|
597
|
+
*
|
|
598
|
+
* @todo: ROWGROUPING
|
|
599
|
+
*/
|
|
600
|
+
private handleNewDataOnRowGrouping;
|
|
601
|
+
/**
|
|
602
|
+
* Metodo richiamato solo quando **TMPRowTDs** e **TMPRowTHs** sono completamente generati ed aggiustati. Serve per collegarli alle variabili usate lato binding HTML
|
|
603
|
+
*/
|
|
604
|
+
private MoveTemporaryVariablesToRealOnes;
|
|
428
605
|
/**
|
|
429
606
|
* Permette di selezionare o deselezionare in maniera arbitraria degli oggetti
|
|
430
607
|
*
|
|
431
608
|
* @param {any[]} items Oggetti da selezionare o deselezionare
|
|
432
609
|
* @param {boolean} select **true** per selezionarli, **false** per non toccarli
|
|
610
|
+
*
|
|
611
|
+
* @todo: SELECTION
|
|
433
612
|
*/
|
|
434
613
|
setSelectionStatus(items: any[], select: boolean): void;
|
|
435
614
|
/**
|
|
@@ -444,6 +623,18 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
444
623
|
* @param {EsTh[] | EsThDirective[]} ths Colonne della tabella
|
|
445
624
|
*/
|
|
446
625
|
private reviewColumnsList;
|
|
626
|
+
/**
|
|
627
|
+
* Prende i th e i td in modalità diretive e li ordina in base a se ci sono colonne fixed o meno
|
|
628
|
+
*/
|
|
629
|
+
private moveFixedColumnsAtTheBeginning;
|
|
630
|
+
/**
|
|
631
|
+
* In base alla configurazione delle colonne calcola le dimenioni delle colonne pinnate
|
|
632
|
+
*/
|
|
633
|
+
private evaluatePinnedColumnsWidth;
|
|
634
|
+
/**
|
|
635
|
+
* Helper per spostare un oggetto di un array da un indice all'altro, in place
|
|
636
|
+
*/
|
|
637
|
+
private arrayMove;
|
|
447
638
|
/**
|
|
448
639
|
* Terminato il binding delle colonne da **reviewColumnsList** e della **View** dal **writeValue** questo metodo si occupa
|
|
449
640
|
* dell'allineamento delle informazioni fra le colonne calcolate internamente e le informazioni sulle colonne che arrivano dall'AppSearch
|
|
@@ -460,6 +651,9 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
460
651
|
thOrderChanged(id: string, order?: 'DESC' | 'ASC'): void;
|
|
461
652
|
/**
|
|
462
653
|
* Metodo da chiamare ogni volta che si vuole dare evidenza all'esterno del bisogno di rieffettuare la ricerca
|
|
654
|
+
*
|
|
655
|
+
* @param {boolean} resetsPage Indica al listener che deve resettare il numero di pagina
|
|
656
|
+
* @param {AppSearch<any>} viewOverride Override della view da emettere per questa ricerca
|
|
463
657
|
*/
|
|
464
658
|
private emitSearchRequest;
|
|
465
659
|
/**
|
|
@@ -472,14 +666,6 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
472
666
|
* @param {AppSearch<any>} view AppSearch da utilizzare per questa operazione
|
|
473
667
|
*/
|
|
474
668
|
private refreshColumnsVisibility;
|
|
475
|
-
/**
|
|
476
|
-
*
|
|
477
|
-
*/
|
|
478
|
-
isEsTd(td: any): td is EsTd;
|
|
479
|
-
/**
|
|
480
|
-
*
|
|
481
|
-
*/
|
|
482
|
-
isEsTh(th: any): th is EsTh;
|
|
483
669
|
/**
|
|
484
670
|
* Allinea gli ordinamenti dati fra le **EsThs** e le informazioni all'interno della View bindata
|
|
485
671
|
*
|
|
@@ -508,6 +694,31 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
508
694
|
* @param {EsTh[] | EsThDirective[]} ths Colonne della tabella
|
|
509
695
|
*/
|
|
510
696
|
private evaluateRowThs;
|
|
697
|
+
private evaluateHeadersGroupingInfos;
|
|
698
|
+
/**
|
|
699
|
+
* Genera gli header groups da una lista di info sui th all'interno della variabile **TMPRowThGroups**
|
|
700
|
+
*/
|
|
701
|
+
private evaluateHeaderGroups;
|
|
702
|
+
/**
|
|
703
|
+
* Calcola il numero di salti da un header foglia all'ultimo parent della catena
|
|
704
|
+
*/
|
|
705
|
+
private jumpsToFinalParent;
|
|
706
|
+
/**
|
|
707
|
+
* Data una direttiva EsTh restituisce la lista delle aggregazioni richiesta per questa colonna o il gruppo che rappresenta
|
|
708
|
+
*
|
|
709
|
+
* @param {EsThDirective} th Direttiva
|
|
710
|
+
*
|
|
711
|
+
* @returns {GroupOrAggregation[]} Lista dei gruppi o aggregazioni relativi alla Direttiva passata
|
|
712
|
+
*/
|
|
713
|
+
private getGroupAggregations;
|
|
714
|
+
/**
|
|
715
|
+
* Data una direttiva con un formato restituisce tutte le coppie Funzione di Aggregazione - Formato
|
|
716
|
+
*
|
|
717
|
+
* @param {EsThDirective} th Direttiva EsTh di cui calcolare le funzioni di aggregazione usate
|
|
718
|
+
*
|
|
719
|
+
* @returns {{ func: string, format: string }[]} Lista delle funzioni di aggregazione rilevate
|
|
720
|
+
*/
|
|
721
|
+
private getEsThDirectiveListOfAggregations;
|
|
511
722
|
/**
|
|
512
723
|
* Metodo che genera l'ordine di default delle colonne
|
|
513
724
|
*
|
|
@@ -521,10 +732,78 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
521
732
|
* @param {boolean} finalize Se **true** significa che non mi aspetto di dover effettuare altre operazioni e posso renderizzare la situazione in base ai RowContext
|
|
522
733
|
* Senza finalize significa che mi aspetto altre operazioni che prima o poi richiameranno questa funzione col finalize.
|
|
523
734
|
*
|
|
524
|
-
* Ad esempio, una volta selezionato ordinamento fisico/logico delle colonne so che parte un altra ricerca che mi
|
|
735
|
+
* Ad esempio, una volta selezionato ordinamento fisico/logico delle colonne so che parte un altra ricerca che mi rivalorizzerà da "writeValue", che già chiama questa funzione.
|
|
525
736
|
* Mettendo solo la chiamata da "writeValue" come "finalizzante" mi assicuro che smanattamenti a frontend non causino flickering fino a quando non servono
|
|
526
737
|
*/
|
|
527
738
|
private applyOrdering;
|
|
739
|
+
/**
|
|
740
|
+
* Ottiene un elemento di separazione fra Gruppi che serve per paginare le ricerche all'interno di ogni singolo gruppo
|
|
741
|
+
*
|
|
742
|
+
* @param {AppSearch<any>} view View utilizzata per la ricerca. Me ne salvo i parametri nel separatore attuale dato che ne ho bisogno per caricare altri elementi
|
|
743
|
+
* facenti riferimento allo stesso contesto
|
|
744
|
+
* @param {string} parent Parent path che rappresenta a quale gruppo è affibbiato questo separatore
|
|
745
|
+
* @param {GroupRouteFragment[]} route Route path che rappresenta a quale gruppo è affibbiato questo separatore
|
|
746
|
+
* @param {number} level Livello del gruppo di cui questo elemento è separatore, viene usato per applicare la classe "est-lvl-{{level}}"
|
|
747
|
+
*
|
|
748
|
+
* @returns {any} Elemento di separazione contenente tutti i bind per presentare una paginazione sotto questo gruppo lato interfaccia
|
|
749
|
+
*/
|
|
750
|
+
private getGroupSeparator;
|
|
751
|
+
/**
|
|
752
|
+
* Sposta la ricerca di una pagina in avanti (o indietro)
|
|
753
|
+
*
|
|
754
|
+
* @param {number} page Numero di pagine da aggiungere (o sottrarre, se negativo) alla pagina attuale
|
|
755
|
+
* @param {any} pager Elemento di separazione su cui è effettuata la ricerca
|
|
756
|
+
*/
|
|
757
|
+
addToPageGroup(page: number, pager: GroupPager): void;
|
|
758
|
+
/**
|
|
759
|
+
* Sposta la ricerca alla pagina specificata
|
|
760
|
+
*
|
|
761
|
+
* @param {number} page Pagina a cui navigare
|
|
762
|
+
* @param {any} pager Elemento di separazione su cui è effettuata la ricerca
|
|
763
|
+
*/
|
|
764
|
+
goToPageGroup(page: number, pager: GroupPager): void;
|
|
765
|
+
/**
|
|
766
|
+
* Data una colonna effettua la riemissione di tutte le ricerche relative.
|
|
767
|
+
*
|
|
768
|
+
* Es. Ho 2 campi di gruppo e ho espanso fino a vedere i valori fino ad un livello qualsiasi.
|
|
769
|
+
* Clicco l'ordinamento sul secondo gruppo.
|
|
770
|
+
* Tutte le ricerche relative ai primi gruppi devono essere rieseguite. Quando i risultati arriveranno ci penserà il metodo **bindDisplayToLoadedItemsOrGroups**
|
|
771
|
+
* a tagliare via gli oggetti non più visualizzati
|
|
772
|
+
*
|
|
773
|
+
* @param {string} column Colonna su cui si è effettuata un'operazione di ordinamento
|
|
774
|
+
* @param {AppOrdering[]} orderings Direttive di ordinamento da applicare alle varie sottoricerche
|
|
775
|
+
*
|
|
776
|
+
* @todo: Testare
|
|
777
|
+
*/
|
|
778
|
+
private emitRowGroupingSearches;
|
|
779
|
+
/**
|
|
780
|
+
* Helper che calcola il contenuto di una cella relativa a un gruppo riga, tenendo conto del formato delle eventuali aggregazioni
|
|
781
|
+
*
|
|
782
|
+
* @param {Group} grp Gruppo di cui mostrare le celle
|
|
783
|
+
* @param {string} cell Cella attuale di cui calcolare il testo
|
|
784
|
+
* @param {EsThDirective} header Header relativo alla cella attuale, utilizzata per identificare le informazioni di aggregazione
|
|
785
|
+
*
|
|
786
|
+
* @returns {string} Testo finale calcolato per la **cell** corrente, in base alle aggregazioni di **header**
|
|
787
|
+
*/
|
|
788
|
+
private getGroupCellDisplay;
|
|
789
|
+
/**
|
|
790
|
+
* Gestisce i click sulla tabella solo per le righe a gruppo.
|
|
791
|
+
* O rimuove gli elementi attualmente presenti o carica il contenuto del gruppo
|
|
792
|
+
*
|
|
793
|
+
* @param {any} group Gruppo bindato su cui si è effettuato il click
|
|
794
|
+
*
|
|
795
|
+
* @returns {boolean} **true** se l'operaizone è andata a buon fine, **false** altrimenti
|
|
796
|
+
*/
|
|
797
|
+
handleGroupClick(group: Group): boolean;
|
|
798
|
+
/**
|
|
799
|
+
* Funzione che dato un valore lo formatta in base al tipo
|
|
800
|
+
*
|
|
801
|
+
* @param {string} value Valore che generalemnte può essere una data o un numero
|
|
802
|
+
* @param {string} fromat Formato su cui formattare il valore. Può essere ad esempio "small", "long" "verylong" per le date o F{0-9} per i numeri decimali
|
|
803
|
+
*
|
|
804
|
+
* @returns {string} Valore dell'aggregazione formattato come si deve
|
|
805
|
+
*/
|
|
806
|
+
private formatAggregationValue;
|
|
528
807
|
/**
|
|
529
808
|
* All'interno della dialog "Ordinamento e Visibilità Colonne" mette la colonna specificata prima della colonna precedente
|
|
530
809
|
*
|
|
@@ -537,6 +816,12 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
537
816
|
* @param {EsTableColumn} columnItem Colonna da spostare
|
|
538
817
|
*/
|
|
539
818
|
sendDown(columnItem: EsTableColumn): void;
|
|
819
|
+
/**
|
|
820
|
+
* All'interno della dialog "Ordinamento e Visibilità Colonne" pinna la colonna specificata
|
|
821
|
+
*
|
|
822
|
+
* @param {EsTableColumn} columnItem Colonna da spostare
|
|
823
|
+
*/
|
|
824
|
+
pinOrUnpinColumn(columnItem: EsTableColumn): void;
|
|
540
825
|
/**
|
|
541
826
|
* All'interno della dialog "Ordinamento e Visibilità Colonne" inverte le impostazioni di visibilità della colonna
|
|
542
827
|
*
|
|
@@ -600,6 +885,43 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
600
885
|
* @param {string} parentKey Chiave del parent di cui collassare i figli
|
|
601
886
|
*/
|
|
602
887
|
private collapseChildOfParent;
|
|
888
|
+
/**
|
|
889
|
+
* Valuta quali elementi devono essere marcati come selezionati nella vista attuale. Si basa sull'oggetto **selection** interno all'AppSearch
|
|
890
|
+
*
|
|
891
|
+
* @param {any[]} items Oggetti di cui valutare la selezione
|
|
892
|
+
* @param {ItemsSelection<any>} selectionItem Oggetti di selezione derivante dalla view o dall'oggetto per Array
|
|
893
|
+
*/
|
|
894
|
+
private evaluateSelection;
|
|
895
|
+
/**
|
|
896
|
+
* Valuta quali elementi devono essere marcati come selezionati nella vista attuale. Si basa sull'oggetto **arraymodeSelection** dell'es-table
|
|
897
|
+
*
|
|
898
|
+
* @param {any[]} array Lista di oggetti di cui valutare la selezione in modalità array
|
|
899
|
+
*/
|
|
900
|
+
private arrayModeEvaluateSelection;
|
|
901
|
+
/**
|
|
902
|
+
* Implementazione agnostica della valutazione delle selezioni degli oggetti. Richiede gli oggetti della vista attuale e l'itemSelector
|
|
903
|
+
*
|
|
904
|
+
* @param {any[]} items Oggetti di cui aggiornare lo stato di selezione
|
|
905
|
+
* @param {ItemsSelection<any>} selectionItem Oggetto contenente lo stato attuale di selezione
|
|
906
|
+
*/
|
|
907
|
+
private handleSelectionEvaluation;
|
|
908
|
+
/**
|
|
909
|
+
* Dato un oggetto trova la cella di cache in cui è registrato e aggiorna il contenuto
|
|
910
|
+
*
|
|
911
|
+
* @param {any} item Oggetto da aggiornare
|
|
912
|
+
*/
|
|
913
|
+
private rehidrateCache;
|
|
914
|
+
/**
|
|
915
|
+
* Dato un gruppo controlla ricorsivamente l'albero di cui fa parte se c'è stata una inclusione o esclusione diretta
|
|
916
|
+
*
|
|
917
|
+
* @param {any} grp Gruppo da controllare
|
|
918
|
+
*
|
|
919
|
+
* @returns {'none' | 'excluded' | 'included'}
|
|
920
|
+
* 'none' se non ci sono informazioni su inclusioni o esclusioni
|
|
921
|
+
* 'included' se il gruppo controllato è stato incluso in maniera esplicita dall'albero dei gruppi padri
|
|
922
|
+
* 'excluded' se il gruppo controllato è stato escluso in maniera esplicita dall'albero dei gruppi padri
|
|
923
|
+
*/
|
|
924
|
+
private parentTreeStatus;
|
|
603
925
|
/**
|
|
604
926
|
* Gestisce la selezione globale degli oggetti, sia per pagina che a livello di **SelectAll**
|
|
605
927
|
*
|
|
@@ -617,11 +939,80 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
617
939
|
*
|
|
618
940
|
* @returns {ItemsSelection<any>} Oggetto di selezione aggiornato con le informazioni sull'ultima operazione effettuata
|
|
619
941
|
*/
|
|
620
|
-
|
|
942
|
+
handleItemsSelection(items: any[], forcedVal?: boolean, globalCheck?: boolean): ItemsSelection<any>;
|
|
943
|
+
/**
|
|
944
|
+
* Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
|
|
945
|
+
*
|
|
946
|
+
* Logica semplificata rispetto all'originale **performSelectionOperations** per lavorare in una modalità in cui tutti gli elementi sono caricati (**ArrayGrouping** = true)
|
|
947
|
+
*/
|
|
948
|
+
private performSimpleSelectionOperations;
|
|
949
|
+
/**
|
|
950
|
+
* Helper per selezionare un gruppo e, ricorsivamente, se tutti i gruppi sottostanti al parent sono selezionati, selezionare i gruppi padri
|
|
951
|
+
*
|
|
952
|
+
* @param {any} group Gruppo da selezionare
|
|
953
|
+
*/
|
|
954
|
+
private selectGroup;
|
|
955
|
+
/**
|
|
956
|
+
* Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
|
|
957
|
+
*
|
|
958
|
+
* La logica di questa funzione è nata essenzialmente da spam di trial & error ed è stata testata solo fino a due livelli di raggruppamento,
|
|
959
|
+
* qualsiasi cosa vada oltre non è 100% detto che funzioni...
|
|
960
|
+
*/
|
|
961
|
+
private performSelectionOperations;
|
|
962
|
+
/**
|
|
963
|
+
* Helper per evitare di riscrivere ogni santa volta array.splice(array.indexof(item), 1);
|
|
964
|
+
*/
|
|
965
|
+
private removeItem;
|
|
966
|
+
/**
|
|
967
|
+
* Helper per evitare di riscrivere ogni santa volta array.push(item); e la gestione della
|
|
968
|
+
*/
|
|
969
|
+
private addItem;
|
|
970
|
+
/**
|
|
971
|
+
* Ottiene il trittico di selezione: L'array degli oggetti e le due cache
|
|
972
|
+
*/
|
|
973
|
+
private getTriptic;
|
|
974
|
+
/**
|
|
975
|
+
* Dato un oggetto restituisce il gruppo di cui fa parte, se esiste
|
|
976
|
+
*
|
|
977
|
+
* @param {any} item Oggetto di cui trovare il gruppo
|
|
978
|
+
*/
|
|
979
|
+
private getItemGroup;
|
|
980
|
+
/**
|
|
981
|
+
* Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
|
|
982
|
+
*
|
|
983
|
+
* @param {any} group Chiave da cercare
|
|
984
|
+
* @param {'selected' | 'unselected'} status Stato degli elementi, selezionati o no
|
|
985
|
+
* @param {boolean} recursive Indica se cercare solo gli elementi direttamente collegati o se prendere anche quelli dei gruppi figli
|
|
986
|
+
*
|
|
987
|
+
* @returns {any[]} Oggetti di tipo **_item** facenti capo alla chiave **groupKey**
|
|
988
|
+
*/
|
|
989
|
+
private getGroupItems;
|
|
990
|
+
/**
|
|
991
|
+
* Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
|
|
992
|
+
*
|
|
993
|
+
* @param {any} group Gruppo di cui cercare il parent
|
|
994
|
+
*
|
|
995
|
+
* @returns {any} Oggetto di tipo **_group** rappresentante il parent del **group** attuale
|
|
996
|
+
*/
|
|
997
|
+
private getGroupParent;
|
|
998
|
+
/**
|
|
999
|
+
* Data la chiave di un gruppo restituisce tutti i gruppi figli
|
|
1000
|
+
*
|
|
1001
|
+
* @param {string} group Gruppo che rappresenta il padre di cui cercare i figli
|
|
1002
|
+
* @param {'selected' | 'unselected'} status Stato dei gruppi, selezionati o no
|
|
1003
|
+
* @param {boolean} recursive Indica se cercare solo i gruppi direttamente collegati o se prendere anche quelli dei gruppi figli
|
|
1004
|
+
*
|
|
1005
|
+
* @returns {any[]} Oggetti di tipo **_group** facenti capo alla chiave **groupKey**
|
|
1006
|
+
*/
|
|
1007
|
+
private getGroupChildGroups;
|
|
621
1008
|
/**
|
|
622
1009
|
* Finalizza le informazioni di selezione del **ItemsSelection** corrente
|
|
623
1010
|
*/
|
|
624
1011
|
private finalizeSelectionInformations;
|
|
1012
|
+
/**
|
|
1013
|
+
* Compatta una cache di indici
|
|
1014
|
+
*/
|
|
1015
|
+
private compactIndexMap;
|
|
625
1016
|
/**
|
|
626
1017
|
* Gestisce i click sulla tabella, gestendo eventualmente anche gli Shift + Click per selezionare un range di oggetti
|
|
627
1018
|
*
|
|
@@ -657,7 +1048,11 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
657
1048
|
* Evento richiamato sul cambio della paginazione. Verrà richiamato l'evento **emitSearchRequest**
|
|
658
1049
|
* per comunicare al componente che utilizza questa tabella che i dati sono da aggiornare
|
|
659
1050
|
*/
|
|
660
|
-
onItemsPerPageChanged(): void;
|
|
1051
|
+
onItemsPerPageChanged(newIpp: any): void;
|
|
1052
|
+
/**
|
|
1053
|
+
* Evento richiamato sul cambio della paginazione. Verrà richiamato l'evento **emitSearchRequest** con la vista del separatore
|
|
1054
|
+
*/
|
|
1055
|
+
onGroupItemsPerPageChanged(pager: GroupPager, newIpp: number): void;
|
|
661
1056
|
/**
|
|
662
1057
|
* Effettua l'esportazione dei dati
|
|
663
1058
|
*
|
|
@@ -763,10 +1158,15 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
763
1158
|
* @param {string} cornerid Codice dell'operazione selezionata
|
|
764
1159
|
*/
|
|
765
1160
|
cornerActionClicked(cornerid: string): void;
|
|
1161
|
+
/** Helper che identifica se il td attuale è di tipo **EsTd**. In caso contrario è da considerarsi **EsTdDirective** */
|
|
1162
|
+
private isEsTd;
|
|
1163
|
+
/** Helper che identifica se il th attuale è di tipo **EsTh**. In caso contrario è da considerarsi **EsThDirective** */
|
|
1164
|
+
private isEsTh;
|
|
766
1165
|
/** Impostazione modalità dell'EsTable */
|
|
767
1166
|
private setMode;
|
|
768
1167
|
/**
|
|
769
|
-
* Helper per effettuare chiamate interne di allineamento alla funzione **writeValue**,
|
|
1168
|
+
* Helper per effettuare chiamate interne di allineamento alla funzione **writeValue**,
|
|
1169
|
+
* impostando prima **internalWriteCall** in modo da non effettuare operazioni inutili
|
|
770
1170
|
*/
|
|
771
1171
|
private internalWriteValue;
|
|
772
1172
|
/**
|