@esfaenza/es-table 19.2.47 → 20.3.0

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 (63) hide show
  1. package/fesm2022/esfaenza-es-table.mjs +208 -208
  2. package/fesm2022/esfaenza-es-table.mjs.map +1 -1
  3. package/index.d.ts +2581 -3
  4. package/package.json +4 -4
  5. package/lib/components/es-table/es_table.component.d.ts +0 -774
  6. package/lib/components/es-table/es_table.component.loc.d.ts +0 -10
  7. package/lib/components/es-td/es_td.component.d.ts +0 -26
  8. package/lib/components/es-th/es_th.component.d.ts +0 -94
  9. package/lib/components/pager/table_pager.component.d.ts +0 -57
  10. package/lib/components/pager/table_pager.component.loc.d.ts +0 -10
  11. package/lib/components/pipes/est-format.pipe.d.ts +0 -10
  12. package/lib/components/pipes/est-lookup.pipe.d.ts +0 -13
  13. package/lib/components/pipes/est-propinsensitive.pipe.d.ts +0 -7
  14. package/lib/components/pipes/est-renderer.pipe.d.ts +0 -15
  15. package/lib/components/pipes/est-routerlink.pipe.d.ts +0 -20
  16. package/lib/components/pipes/est_editor.pipe.d.ts +0 -15
  17. package/lib/core/CopyPasteDetector.d.ts +0 -15
  18. package/lib/core/Logger.d.ts +0 -10
  19. package/lib/core/handlers/ColumnMetadataHandler.d.ts +0 -188
  20. package/lib/core/handlers/DynamicModeHandler.d.ts +0 -22
  21. package/lib/core/handlers/ExportHandler.d.ts +0 -19
  22. package/lib/core/handlers/HierarchyModeHandler.d.ts +0 -41
  23. package/lib/core/handlers/ItemsHandler.d.ts +0 -35
  24. package/lib/core/handlers/ReportModeHandler.d.ts +0 -27
  25. package/lib/core/handlers/RowGroupingHandler.d.ts +0 -118
  26. package/lib/core/handlers/SelectionHandler.d.ts +0 -230
  27. package/lib/core/handlers/UtilitiesHandler.d.ts +0 -57
  28. package/lib/directives/es_td.directive.d.ts +0 -42
  29. package/lib/directives/es_td_editor.directive.d.ts +0 -14
  30. package/lib/directives/es_th.directive.d.ts +0 -106
  31. package/lib/directives/es_th_td_provider.directive.d.ts +0 -15
  32. package/lib/domain/configuration/EsTableDefaultable.d.ts +0 -21
  33. package/lib/domain/configuration/EsTableModuleConfig.d.ts +0 -10
  34. package/lib/domain/externals/CornerMenuOption.d.ts +0 -7
  35. package/lib/domain/externals/EsTableColumnsDefinition.d.ts +0 -55
  36. package/lib/domain/externals/EsTableModelChange.d.ts +0 -17
  37. package/lib/domain/externals/EsTableOperationDefinition.d.ts +0 -20
  38. package/lib/domain/externals/ItemPropEditableReference.d.ts +0 -34
  39. package/lib/domain/externals/appsearch/AppOrdering.d.ts +0 -14
  40. package/lib/domain/externals/appsearch/AppSearch.d.ts +0 -100
  41. package/lib/domain/externals/appsearch/EsTableMultiValue.d.ts +0 -22
  42. package/lib/domain/externals/appsearch/GenericItem.d.ts +0 -13
  43. package/lib/domain/externals/appsearch/Group.d.ts +0 -17
  44. package/lib/domain/externals/appsearch/GroupAggregation.d.ts +0 -14
  45. package/lib/domain/externals/appsearch/GroupFilter.d.ts +0 -12
  46. package/lib/domain/externals/appsearch/GroupOrAggregation.d.ts +0 -14
  47. package/lib/domain/externals/appsearch/ItemsSelection.d.ts +0 -22
  48. package/lib/domain/externals/report/ReportColumn.d.ts +0 -19
  49. package/lib/domain/externals/report/ReportParam.d.ts +0 -40
  50. package/lib/domain/externals/report/ReportRow.d.ts +0 -9
  51. package/lib/domain/internals/CacheTriptic.d.ts +0 -14
  52. package/lib/domain/internals/EsTableColumn.d.ts +0 -41
  53. package/lib/domain/internals/GroupPager.d.ts +0 -26
  54. package/lib/domain/internals/GroupRouteFragment.d.ts +0 -15
  55. package/lib/domain/internals/PagerInfos.d.ts +0 -13
  56. package/lib/domain/internals/TdElement.d.ts +0 -59
  57. package/lib/domain/internals/ThAggregation.d.ts +0 -14
  58. package/lib/domain/internals/ThElement.d.ts +0 -24
  59. package/lib/domain/internals/ThGroup.d.ts +0 -10
  60. package/lib/domain/types.d.ts +0 -2
  61. package/lib/es-table.module.d.ts +0 -35
  62. package/lib/tokens.d.ts +0 -8
  63. package/public-api.d.ts +0 -28
package/index.d.ts CHANGED
@@ -1,5 +1,2583 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ChangeDetectorRef, EventEmitter, WritableSignal, Signal, TemplateRef, ElementRef, QueryList, NgZone, Renderer2, Type, PipeTransform, ModuleWithProviders, InjectionToken } from '@angular/core';
3
+ import * as i18 from '@esfaenza/localizations';
4
+ import { LocalizationService } from '@esfaenza/localizations';
5
+ import { MessageService, ExportService, UtilityService, DateService, HashingService, ClipboardService, AppEmbeddingExtensions } from '@esfaenza/extensions';
6
+ import * as i16 from '@angular/forms';
7
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
8
+ import { PreferencesService } from '@esfaenza/preferences';
9
+ import * as i21 from '@esfaenza/ngx-contextmenu';
10
+ import { ContextMenuComponent } from '@esfaenza/ngx-contextmenu';
11
+ import { SafeHtml } from '@angular/platform-browser';
12
+ import { ReplaySubject, Subject } from 'rxjs';
13
+ import * as i22 from '@angular/cdk/drag-drop';
14
+ import { CdkDragDrop, CdkDrag } from '@angular/cdk/drag-drop';
15
+ import * as i19 from 'ngx-bootstrap/modal';
16
+ import { ModalDirective } from 'ngx-bootstrap/modal';
17
+ import * as i15 from '@angular/common';
18
+ import * as i17 from '@angular/router';
19
+ import * as i20 from 'ngx-bootstrap/dropdown';
20
+ import * as i23 from '@esfaenza/forms-and-validations';
21
+ import * as i24 from 'primeng/tooltip';
22
+ import * as i25 from '@esfaenza/access-control';
23
+ import * as i26 from 'primeng/select';
24
+
25
+ /** Componente che si occupa della paginazione di una tabella */
26
+ declare class EsTablePagerComponent {
27
+ private msgExts;
28
+ lc: LocalizationService;
29
+ cdr: ChangeDetectorRef;
30
+ /** Dimensione di pagina attuale */
31
+ CurrentPageSize: _angular_core.InputSignal<number>;
32
+ /** View gestita, che può essere un IAppSearch o una ReportView */
33
+ View: _angular_core.InputSignal<any>;
34
+ /** Indica se deve mostrare un warning quando si cercano di solezionare come elementi da visualizzare "Tutti" */
35
+ WarnOnAll: _angular_core.InputSignal<boolean>;
36
+ /** Indica se dare la possibilità o meno di selezionare "Tutti" nelle opzioni di paginazione */
37
+ AllSearch: _angular_core.InputSignal<boolean>;
38
+ /** Placeholder che identifica il "Tutti" */
39
+ DefaultAll: _angular_core.InputSignal<number>;
40
+ /** Indica se attivare la modalità gruppo con stili più snelli per apparire sotto ai raggruppamenti */
41
+ GroupMode: _angular_core.InputSignal<boolean>;
42
+ /** Indica se utilizzare il conteggio dei gruppi o degli oggetti */
43
+ GroupCount: _angular_core.InputSignal<boolean>;
44
+ /** Indica il testo che va a sostituire "Oggetti Visualizzati" in caso si stia facendo qualcosa di custom, Ignorato in caso di gruppi */
45
+ CountLabel: _angular_core.InputSignal<string>;
46
+ /** Indica se visualizzare il numero totale di oggeti presenti */
47
+ ShowCount: _angular_core.InputSignal<boolean>;
48
+ /** Indica se visualizzare il numero totale di oggeti presenti */
49
+ ShowPaging: _angular_core.InputSignal<boolean>;
50
+ /** Indica il numero totale di oggeti presenti */
51
+ PagerCount: _angular_core.InputSignal<number>;
52
+ /** Indica se mostrare o meno il contenuto @deprecated usata solo da MatrixValuesComponent nella lib relativa */
53
+ Hidden: _angular_core.InputSignal<boolean>;
54
+ /** Output invocato quando il numero di elementi per pagina viene modificato da un click utente */
55
+ pagingSelected: EventEmitter<number>;
56
+ /** @ignore */
57
+ constructor(msgExts: MessageService, lc: LocalizationService, cdr: ChangeDetectorRef);
58
+ /** Modello su cui la select effettua operazioni di selezione */
59
+ Model: WritableSignal<number>;
60
+ /** Opzioni di paginazione */
61
+ private _pagingOptions;
62
+ PagingOptionsForSelect: Signal<{
63
+ id: number;
64
+ description: string;
65
+ }[]>;
66
+ /**
67
+ * Funzione richiamata dal template quando un utente clicca su un numero di paginazione.
68
+ *
69
+ * Cliccare 2 volte sullo stesso numero causa comunque un refresh dei dati
70
+ *
71
+ * @param {number} pageSize Dimensione selezionata lato UI
72
+ */
73
+ choice(pageSize: number): void;
74
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTablePagerComponent, never>;
75
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EsTablePagerComponent, "es-paging", never, { "CurrentPageSize": { "alias": "CurrentPageSize"; "required": false; "isSignal": true; }; "View": { "alias": "View"; "required": false; "isSignal": true; }; "WarnOnAll": { "alias": "WarnOnAll"; "required": false; "isSignal": true; }; "AllSearch": { "alias": "AllSearch"; "required": false; "isSignal": true; }; "DefaultAll": { "alias": "DefaultAll"; "required": false; "isSignal": true; }; "GroupMode": { "alias": "GroupMode"; "required": false; "isSignal": true; }; "GroupCount": { "alias": "GroupCount"; "required": false; "isSignal": true; }; "CountLabel": { "alias": "CountLabel"; "required": false; "isSignal": true; }; "ShowCount": { "alias": "ShowCount"; "required": false; "isSignal": true; }; "ShowPaging": { "alias": "ShowPaging"; "required": false; "isSignal": true; }; "PagerCount": { "alias": "PagerCount"; "required": false; "isSignal": true; }; "Hidden": { "alias": "Hidden"; "required": false; "isSignal": true; }; }, { "pagingSelected": "pagingSelected"; }, never, never, false, never>;
76
+ }
77
+
1
78
  /**
2
- * Generated bundle index. Do not edit.
79
+ * Classe che identifica un ordinamento di una colonna
3
80
  */
4
- /// <amd-module name="@esfaenza/es-table" />
5
- export * from './public-api';
81
+ declare class AppOrdering {
82
+ id: string;
83
+ order?: 'DESC' | 'ASC';
84
+ /**
85
+ * Costruttore
86
+ *
87
+ * @param {string} id ID della colonna a cui si vogliono applicare ordinamenti, deve combaciare all'id messo nella dichiarazione dell'ES-TD/TH
88
+ * @param {'DESC' | 'ASC' } order Ordinamento da applicare alla colonna, Discendente/Ascendente, default 'null' per indicare assenza di ordine
89
+ */
90
+ constructor(id: string, order?: 'DESC' | 'ASC');
91
+ }
92
+
93
+ /** Classe che rappresenta un'aggregazione */
94
+ declare class GroupAggregation {
95
+ column: string;
96
+ aggregation: 'min' | 'max' | 'sum';
97
+ value: string;
98
+ /**
99
+ * Costruttore
100
+ *
101
+ * @param {string} column ID della colonna aggregata
102
+ * @param {'min' | 'max' | 'sum' } aggregation Aggregazione da effettuare su questa colonna
103
+ * @param {string} value Valore dell'aggregazione
104
+ */
105
+ constructor(column: string, aggregation: 'min' | 'max' | 'sum', value: string);
106
+ }
107
+
108
+ /** Classe che rappresenta un Gruppo con le proprie aggregazioni */
109
+ declare class Group {
110
+ column: string;
111
+ count: number;
112
+ value: string;
113
+ /**
114
+ * Costruttore
115
+ *
116
+ * @param {string} column ID della colonna raggruppata
117
+ * @param {number} count Numero di elementi raggruppati sotto questa colonna
118
+ * @param {string} value Valore del Gruppo
119
+ */
120
+ constructor(column: string, count: number, value: string);
121
+ /** Aggregazioni presenti su questo gruppo, valide per tutte le altre colonne (non a loro volta gruppate) */
122
+ aggregations: GroupAggregation[];
123
+ }
124
+
125
+ /** Identifica una selezione applicabile agli oggetti presentati in una tabella */
126
+ declare class ItemsSelection<T> {
127
+ /**
128
+ * Costruttore
129
+ *
130
+ * @param {T[]} selected Oggetti da considerare selezionati
131
+ */
132
+ constructor(selected: T[]);
133
+ /** Conteggio degli oggetti selezionati */
134
+ count: number;
135
+ /** Se **all** è **false** indica gli elementi da includere, altrimenti è insensato */
136
+ items: T[];
137
+ /** Se **all** è **false** indica i gruppi, altrimenti è insensato */
138
+ groups: Group[];
139
+ /** Indica se tutti gli elementi sono da considerarsi selezionati (anche quelli di altre pagine) */
140
+ all: boolean;
141
+ /** Se **all** è **true**, indica gli elementi da escludere, altrimenti è insensato */
142
+ exclusions: T[];
143
+ /** Se **all** è **true**, indica i gruppi da escludere, altrimenti è insensato */
144
+ group_exclusions: Group[];
145
+ }
146
+
147
+ /** Classe che rappresenta un filtro su un gruppo */
148
+ declare class GroupFilter {
149
+ column: string;
150
+ value: string;
151
+ /**
152
+ * Costruttore
153
+ *
154
+ * @param {string} column ID della colonna gruppata per cui si richiede di filtrare
155
+ * @param {string} value Valore del gruppo su questa **column** per cui si richiede di filtrare
156
+ */
157
+ constructor(column: string, value: string);
158
+ }
159
+
160
+ /** Classe che rappresenta o un gruppo o una aggregazione su una colonna. Usata solo internamente */
161
+ declare class GroupOrAggregation {
162
+ column: string;
163
+ aggregation?: 'min' | 'max' | 'sum';
164
+ datatype?: 'string' | 'date' | 'number';
165
+ /**
166
+ * Costruttore
167
+ *
168
+ * @param {string} column Colonna su cui è presente o un gruppo o un'aggregazione
169
+ * @param {'min' | 'max' | 'sum' } aggregation Aggregazione presente sulla **column**. Se questo campo è nullo significa che è un gruppo.
170
+ * @param {'string' | 'date' | 'number'} datatype Tipo di dati contenuto nella colonna **column** se non c'è alcuna aggregazione è inutile, pertanto non sarà valorizzato
171
+ */
172
+ constructor(column: string, aggregation?: 'min' | 'max' | 'sum', datatype?: 'string' | 'date' | 'number');
173
+ }
174
+
175
+ /** Classe che identifica un parametro generico per un report */
176
+ declare class ReportParam {
177
+ /** Codice del parametro */
178
+ id: string;
179
+ /** Descrizione del parametro */
180
+ description: string;
181
+ /** Sequenza del parametro per ordinarlo logicamente rispetto agli altri */
182
+ seq: number;
183
+ /** Typecode C# della tipologia di parametro */
184
+ typecode: number;
185
+ /** Indica se i parametro è richiesto o meno */
186
+ required: boolean;
187
+ /** Valore del parametro, offerto sia come valore di default o in alternativa riempito lato UI */
188
+ value?: any;
189
+ /** Indica se questo parametro si basa su un enum. Se questa proprietà è true mi aspetto che almeno **enumtype** sia valorizzato */
190
+ isenum: boolean;
191
+ /** Indica se questo parametro si basa su un dizionario. Se questa proprietà è true mi aspetto che almeno **dictype** sia valorizzato */
192
+ isdictionary: boolean;
193
+ /** Indica se il parametro è di tipo data */
194
+ isdate: boolean;
195
+ /** Indica se il parametro è di tipo boolean */
196
+ isboolean: boolean;
197
+ /** Valori disponibili per questo parametro, da valorizzare in caso **enumtype** o **dictype** fossero valorizzati */
198
+ availablevalues?: {
199
+ id: string;
200
+ description: string;
201
+ }[];
202
+ /** Tipo enumerabile del parametro (qualora fosse un dizionario di valori) */
203
+ enumtype?: string;
204
+ /** Colonna relativa e questo parametro */
205
+ column?: string;
206
+ /** Tipo del dizionario */
207
+ dictype?: string;
208
+ /** Indica un filtro da applicare nei confronti del Backend qualora si vogliano caricare solo le possibilità logicamente accettabili per questo parametro */
209
+ dictionaryfilter?: string;
210
+ /** Tipologia lato "typescript" di questo parametro, dev'essere sempre logicamente congruente al **typecode** */
211
+ type?: "string" | "number" | "date" | "boolean";
212
+ /** Eventuale pattern di validazione per questo parametro */
213
+ pattern?: string;
214
+ }
215
+
216
+ /** Classe che rappresenta una colonna di un report */
217
+ declare class ReportColumn {
218
+ /** Id della colonna */
219
+ id: string;
220
+ /** Descrizione della colonna (Header) */
221
+ description: string;
222
+ /** Colore in notazione HTML */
223
+ color: string;
224
+ /** Tipo di campo contenuto in questa colonna */
225
+ type: number;
226
+ /** Sequenza per eventuali ordinamenti */
227
+ seq: number;
228
+ /** Ordinamento dei dati presentati */
229
+ order?: string;
230
+ /** Allineamento da tenere per questa colonna: **Center**, **Left** o **Right** */
231
+ alignment?: string;
232
+ /** Formato dei dati da presentare in questa colonna */
233
+ format?: string;
234
+ }
235
+
236
+ /**
237
+ * Classe che identifica una ricerca paginata in tutte le sue sfumature (di grigio)
238
+ */
239
+ declare class AppSearch<T> {
240
+ /**
241
+ * Costruttore che genera un'istanza coi valori di default e impostando **firstsearch** a **true**
242
+ */
243
+ constructor();
244
+ /** ID della ricerca, sempre inutile a meno che non sia la ricerca dei risultati di un report */
245
+ searchid: string;
246
+ /** Descrizione della ricerca, sempre inutile a meno che non sia la ricerca dei risultati di un report */
247
+ searchdescription: string;
248
+ /** Indica se la paginazione per questa ricerca è disponibile */
249
+ pagingavailable: boolean;
250
+ /** Indica il formato di export disponibile per questa ricerca. Utilizzato solo per la ricerca dei risultati di un report */
251
+ expformat: boolean;
252
+ /** Parametri di ricerca per i risultati in modalità report */
253
+ pars: ReportParam[];
254
+ /** Indicazione delle colonne presenti nel report */
255
+ report_columns: ReportColumn[];
256
+ /** Indica se c'è una ricerca in corso */
257
+ searchinprogress: boolean;
258
+ /** Indica il numero totale di pagine trovate dalla ricerca. Ogni pagina è una lista di **itemsperpageoverride** oggetti */
259
+ pages: number;
260
+ /** Conteggio totale degli oggetti trovati (inclusi quelli in pagine non attualmente selezionate) */
261
+ objectcount: number;
262
+ /** Conteggio totale dei gruppi trovati (inclusi quelli in pagine non attualmente selezionate) */
263
+ groupcount: number;
264
+ /** Pagina attualmente in visualizzazione */
265
+ page: number;
266
+ /** Numero di oggetti da persentare in ogni pagina. Per convenzione si considera valorizzato a 15 se non fornito */
267
+ itemsperpageoverride: number;
268
+ /** Lista degli oggetti nella pagina attualmente in visualizzazione */
269
+ items: T[];
270
+ /** Dizionario contenente tutti i gruppi paginati */
271
+ groups: Group[];
272
+ /** Lista di colonne per cui ordinare */
273
+ orders: AppOrdering[];
274
+ /** Lista di colonne da visualizzare */
275
+ columns: string[];
276
+ /** Lista di colonne nell'ordine corretto */
277
+ column_ordering: string[];
278
+ /** Indica se la ricerca era salvata. Qualora fosse questo il caso, al caricamento l'es-table si occuperà di ri-effettuare la ricerca ed aggiornare il modello */
279
+ savedstate: boolean;
280
+ /** Indica se bisogna ancora effettuare la prima ricerca */
281
+ firstsearch: boolean;
282
+ /** Indica se sto effettuando la ricerca post bind */
283
+ selfsearch: boolean;
284
+ /**
285
+ * Oggetto che indica la selezione corrente.
286
+ *
287
+ * Se **all** è **true** vuole dire che è tutto selezionato ed eventualmente ci sono delle esclusioni (**exclusions**)
288
+ * Se **all** è **false** vuol dire che sono selezionati **item** specifici
289
+ *
290
+ * In base all'Input **UseSelectionCache** le proprietà **exclusions** e **items** fanno riferimento o alla pagina corrente (se **false**)
291
+ * o all'intera ricerca (se **true**)
292
+ */
293
+ selection: ItemsSelection<T>;
294
+ /**
295
+ * Indica che la ricerca è stata richiesta dall'estable. Questa variabile NON deve essere toccata. È gestita al 100% dall'es-table.
296
+ *
297
+ * L'unica cosa che serve è che nel modello lato C# sia presente in modo da non perderla durante la serializzazione
298
+ */
299
+ internalsearchrequest: boolean;
300
+ /** Raggruppamenti da fare per questa query. Se impostato e non ci sono **filtergroup** mi aspetto di ricevere oggetti nel campo **groups** */
301
+ groupings: GroupOrAggregation[];
302
+ /**
303
+ * Filtro da applicare ai gruppi. Qualora il numero di filtri qui fosse uguale al numero di raggruppamenti mi inizio ad apettare di ricevere oggetti
304
+ * sul campo **items**, in caso contrario mi aspetto di ricevere o i gruppi nel campo **groups** o l'N-esimo livello dei gruppi
305
+ */
306
+ requestedgroups: GroupFilter[];
307
+ /**
308
+ * Permette di resettare un AppSearch ai valori di default.
309
+ * Reso statico perché fra una deserializzazione e l'altra si potrebbe perdere il prototype del costruttore
310
+ *
311
+ * @param {AppSearch<T>} aps AppSearch da resettare
312
+ */
313
+ static reset<T extends AppSearch<any>>(aps: T): void;
314
+ /**
315
+ * Partendo da un appsearch con filtri impostati permette di crearne la stessa versione solo con la ricerca impostata a "tutto"
316
+ *
317
+ * @param {AppSearch<T>} aps AppSearch da cui partire
318
+ */
319
+ static toSelectAll<T extends AppSearch<any>>(aps: T): T;
320
+ /**
321
+ * Permette di ottenere un nuovo riferimento all'AppSearch passata come parametro.
322
+ * Internamente utilizza il JSON.parse(JSON.stringify(X)) con la differenza che prima stacca il riferimento agli items per evitare di
323
+ * reserializzare potenzialmente centinaia di elementi. Il riferimento viene poi ricollegato alla nuova appsearch generata
324
+ *
325
+ * @param {AppSearch<T>} aps AppSearch di cui estrarre un nuovo riferimento equivalente
326
+ */
327
+ static newref<T extends AppSearch<any>>(aps: T, retainItems?: boolean): T;
328
+ }
329
+
330
+ /** Tipo che rappresenta gli input visualizzabili lato tabella */
331
+ type InputType = 'string' | 'float' | 'date' | 'number' | 'int' | 'boolean' | 'enum' | 'autocomplete' | 'datetime' | 'time' | 'file' | 'currency';
332
+
333
+ /** Classe che identifica una colonna. Utilizzata in modalità "Colonne dinamiche" */
334
+ declare class EsTableColumnsDefinition {
335
+ Description: string;
336
+ PropertyName: string;
337
+ RoutePath: string;
338
+ RouteParameterProperties: string[];
339
+ DataOrder: 'ASC' | 'DESC';
340
+ ColumnOrder: number;
341
+ Visible: boolean;
342
+ Clss: string;
343
+ Orderable: boolean;
344
+ HeaderWraps: boolean;
345
+ PropertyType: InputType | string;
346
+ PropertySource: {
347
+ id: string;
348
+ description: string;
349
+ }[];
350
+ EditorName: string;
351
+ RendererName: string;
352
+ EditorOptions: {
353
+ [id: string]: any;
354
+ };
355
+ Pinned: boolean;
356
+ PinnedWidth: number;
357
+ Pinnable: boolean;
358
+ Grouping: string;
359
+ Shrink: boolean;
360
+ /**
361
+ * Costruttore
362
+ *
363
+ * @param {string} Description Descrizione della colonna
364
+ * @param {string} PropertyName Nome della proprietà del modello in cui sono contenuti i dati da visualizzare per questa colonna
365
+ * @param {string} RoutePath Route di navigazione. Es. "['/pages/mod/mod_detail', { 'idItem': '{0}', 'idItem2' : '{1}' }]"
366
+ * @param {string[]} RouteParameterProperties Proprietà da bindare a **routePath** per generare la route completa.
367
+ * L'indice scritto in **routePath** è l'indice di accesso a questo array. Es. ["iditem", "iditem2"]
368
+ * @param {'ASC' | 'DESC' } DataOrder Ordinamento dei dati presentati in questa colonna
369
+ * @param {number} ColumnOrder Ordinamento di questa colonna
370
+ * @param {boolean} Visible Visibilità o meno della colonna
371
+ * @param {string} Clss Classe da applicare sia ai TD che ai TH relativi a questa colonna
372
+ * @param {boolean} Orderable Indica se la colonna è ordinabile o no (nel senso ASC / DESC / NONE)
373
+ * @param {boolean} HeaderWraps Indica se il testo dell'header dev'essere wrappato all'interno del th. Di default no.
374
+ * @param {InputType | string} PropertyType Indica il tipo della proprietà identificata da **propertyName**.
375
+ * @param {{id: string, description: string}[]} PropertySource Sorgente dati su cui autocompletare/scegliere il valore per la proprietà **propertyName**, ha senso solo per **propType** enum o autocomplete.
376
+ * @param {string} EditorName Nome dell'editor da utilizzare per la modifica di questo campo
377
+ * @param {string} RendererName Nome del renderer da utilizzare per visualizzare questo campo
378
+ */
379
+ constructor(Description: string, PropertyName: string, RoutePath?: string, RouteParameterProperties?: string[], DataOrder?: 'ASC' | 'DESC', ColumnOrder?: number, Visible?: boolean, Clss?: string, Orderable?: boolean, HeaderWraps?: boolean, PropertyType?: InputType | string, PropertySource?: {
380
+ id: string;
381
+ description: string;
382
+ }[], EditorName?: string, RendererName?: string, EditorOptions?: {
383
+ [id: string]: any;
384
+ }, Pinned?: boolean, PinnedWidth?: number, Pinnable?: boolean, Grouping?: string, Shrink?: boolean);
385
+ static build(parsObj: any): EsTableColumnsDefinition;
386
+ }
387
+
388
+ /** Indica un'opzione cliccabile nel Corner Menù della tabella (il menù richiamabile dai 3 pallini verticli in alto a destra) */
389
+ declare class CornerMenuOption {
390
+ /** Id dell'operazione. I callback relativi verranno effettuati con questo */
391
+ id: string;
392
+ /** Descrizione dell'operazione da presentare all'utente */
393
+ description: string;
394
+ }
395
+
396
+ /** Indica operazioni dinamiche generiche che possono essere effettuate per riga. Appaiono come colonne extra sul lato sinistro della tabella */
397
+ declare class EsTableOperationDefinition {
398
+ id: string;
399
+ title: string;
400
+ iconClass?: string;
401
+ text?: string;
402
+ conditionField?: string;
403
+ conditionValue?: string;
404
+ /**
405
+ * Costruttore
406
+ *
407
+ * @param {string} id Codice dell'operazione
408
+ * @param {string} title Titolo dell'operazione, da presentare all'utente su hover della cella
409
+ * @param {string} iconClass Classe che fornisca un iconcina Es. "fa fa-remove"
410
+ * @param {string} text Eventuale testo presentato nella cella, genericamente va in alternativa a **iconClass**
411
+ * @param {string} conditionField Indica il campo dell'oggetto sottostante su cui verificare la visibilità o meno di questa icona
412
+ * @param {string} conditionValue Indica il valore che la proprietà **conditionField** dell'oggetto sottostante deve assumere affinché questa opzione si veda
413
+ */
414
+ constructor(id: string, title: string, iconClass?: string, text?: string, conditionField?: string, conditionValue?: string);
415
+ }
416
+
417
+ /** Definizione di una colonna, utilizzato nella dialog che permette di modificare le posizioni e le visibilità */
418
+ declare class EsTableColumn {
419
+ id: string;
420
+ description: string;
421
+ visible?: boolean;
422
+ fixed?: boolean;
423
+ pinned?: boolean;
424
+ pinnable?: boolean;
425
+ pinnedWidth?: number;
426
+ template?: TemplateRef<any>;
427
+ parentTemplates?: {
428
+ id: string;
429
+ tmpl?: TemplateRef<any>;
430
+ content?: string;
431
+ }[];
432
+ multi?: boolean;
433
+ multiContent?: string;
434
+ /**
435
+ * Costruttore
436
+ *
437
+ * @param {string} id Id colonna
438
+ * @param {string} description Descrizione (Header)
439
+ * @param {boolean} visible Indica se di default mostrarla o meno
440
+ * @param {boolean} fixed Indica se è una colonna fixed
441
+ * @param {boolean} pinnable Indica se una colonna può essere pinnata
442
+ * @param {boolean} pinned Indica se è una colonna pinnata
443
+ * @param {number} pinnedWidth Indica la dimensione da assegnare a questa colonna quando è pinnata
444
+ * @param {TemplateRef<any>} template Indica il template da usare per mostrare il testo dell'Header
445
+ * @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**)
446
+ * @param {boolean} multi Indica che la colonna deriva da una direttiva **Multi**
447
+ * @param {string} multiContent Indica il contenuto della direttiva **Multi** per questa colonna
448
+ */
449
+ constructor(id: string, description: string, visible?: boolean, fixed?: boolean, pinned?: boolean, pinnable?: boolean, pinnedWidth?: number, template?: TemplateRef<any>, parentTemplates?: {
450
+ id: string;
451
+ tmpl?: TemplateRef<any>;
452
+ content?: string;
453
+ }[], multi?: boolean, multiContent?: string);
454
+ /** Indice precedente in cui si trovava questa colonna in modo da poterla spinnare in maniera super sexy */
455
+ prev_index: number;
456
+ }
457
+
458
+ /**
459
+ * Classe che rappresenta un singolo frammento di route di un elemento gruppo o non. Un array di questi indica tutte le colonne di gruppo con i loro valori
460
+ * per arrivare ad una ricerca su sottogruppi o elementi relativi
461
+ */
462
+ declare class GroupRouteFragment {
463
+ column: string;
464
+ value: string;
465
+ /**
466
+ * Costruttore
467
+ *
468
+ * @param {string} column Colonna di raggruppamento
469
+ * @param {string} value Valore della colonna di raggruppamento
470
+ */
471
+ constructor(column: string, value: string);
472
+ }
473
+
474
+ /** Classe che rappresenta un separatore da inserire fra gli oggetti dell'es-table per le operazioni di paginazione dei raggruppamenti per riga */
475
+ declare class GroupPager {
476
+ _grouplevel: number;
477
+ _thisRoute: GroupRouteFragment[];
478
+ _parent: string;
479
+ view: AppSearch<any>;
480
+ searches: 'groups' | 'items';
481
+ /**
482
+ * Costruttore
483
+ *
484
+ * @param {number} _grouplevel Livello del gruppo a cui questo separatore fa riferimento
485
+ * @param {string} _thisRoute Route che identifica la gerarchia del gruppo e chi sono i parent
486
+ * @param {string} _parent Chiave del gruppo parent se esiste
487
+ * @param {AppSearch<any>} view Vista di ricerca collegata a questo elemento
488
+ * @param {'groups' | 'items'} searches Indica che cosa cerca questo separatore, se sottogruppi o oggetti
489
+ */
490
+ constructor(_grouplevel: number, _thisRoute: GroupRouteFragment[], _parent: string, view: AppSearch<any>, searches: 'groups' | 'items');
491
+ /** Indica che è un separatore, sempre impostato a **true** */
492
+ _sep: boolean;
493
+ /** Array dei pulsanti da collegare lato interfaccia per le paginazione */
494
+ buttons: any[];
495
+ /** Chiave del separatore, è sempre **parent** + "_sep" */
496
+ _thisKey: string;
497
+ }
498
+
499
+ /**
500
+ * @ignore Interfaccia di passaggio fra i dati che arrivano come direttiva / configurazione alla struttura interna su cui vengono generati i componenti es-th
501
+ *
502
+ * Per informazioni sulle singole proprietà fare riferimento alla direttiva **EsThDirective**
503
+ */
504
+ interface ThElement {
505
+ Pinned: boolean;
506
+ Fixed: boolean;
507
+ PinnedWidth: number;
508
+ ID: string;
509
+ Visible: boolean;
510
+ Class: string;
511
+ Content: string;
512
+ Order: string;
513
+ Orderable: boolean;
514
+ Template: TemplateRef<any>;
515
+ Wrap: boolean;
516
+ LeftBorder: boolean;
517
+ RightBorder: boolean;
518
+ Multi: boolean;
519
+ MultiContent: string;
520
+ Alignment: string;
521
+ }
522
+
523
+ /** Classe che rappresenta le informazioni di paginazione della tabella attuale */
524
+ declare class PagerInfos {
525
+ constructor();
526
+ PagerCount: number;
527
+ ShowCount: boolean;
528
+ ShowPaging: boolean;
529
+ UsesView: boolean;
530
+ ShowButtons: boolean;
531
+ ShowPagingOptions: boolean;
532
+ View: any;
533
+ Ready: boolean;
534
+ Searches: 'items' | 'groups';
535
+ }
536
+
537
+ /** Interfaccia che indica un Header rappresentanto un gruppo */
538
+ interface ThGroup {
539
+ /** Codice autogenerato essenzialmente per gli ngFor - trackBy */
540
+ ID: string;
541
+ /** Span di questo gruppo */
542
+ Span: number;
543
+ /** Template da visualizzare dentro al gruppo */
544
+ Template: TemplateRef<any>;
545
+ }
546
+
547
+ /** Interfaccia di passaggio fra i dati che arrivano come direttiva / configurazione alla struttura interna su cui vengono generati i componenti es-td */
548
+ interface TdElement {
549
+ /** Id della cella, dev'essere lo stesso della colonna **EsTh** relativa */
550
+ ID: string;
551
+ /** Indica se è una cella interna (rigenerata programmaticamente) o no */
552
+ Internal?: boolean;
553
+ /** RouterLink qualora il click su questa cella debba navigare da qualche parte */
554
+ RouterLink?: any;
555
+ /** Valore da mostrare all'interno della cella. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
556
+ Display?: string;
557
+ /** Template Angular da istanziare per questo TD */
558
+ Template?: any;
559
+ /** Classi da applicare alla cella */
560
+ Class?: string;
561
+ /** Contenuto da mostrare proiettato dal componente padre */
562
+ Content?: SafeHtml;
563
+ /** Contesto dell'oggetto a cui si riferisce il dato visualizzato. Contiene l'hash dell'oggetto in questione */
564
+ Context?: string;
565
+ /** Indica se aggiungere un bordino a sinistra della cella */
566
+ LeftBorder?: boolean;
567
+ /** Indica se aggiungere un bordino a destra della cella */
568
+ RightBorder?: boolean;
569
+ /** Indica se è una cella pinnata */
570
+ Pinned?: boolean;
571
+ /** Indica la larghezza della cella qualora fosse pinnata */
572
+ PinnedWidth?: number;
573
+ /** Indica se la cella è l'header di un gruppo */
574
+ GroupHeader?: boolean;
575
+ /** Indica se la cella è un'aggregazione di un gruppo */
576
+ GroupAggregation?: boolean;
577
+ /** Indica se la cella è visibile, ereditata dalla controparte es_th */
578
+ Visible?: boolean;
579
+ /** Indica se la cella deve wrappare o no il contenuto */
580
+ Wraps?: boolean;
581
+ /** Nome della proprietà JS che questa cella mostra */
582
+ PropertyName?: string;
583
+ /** Tipo della proprietà **PropertyName** */
584
+ PropertyType?: string;
585
+ /** Sorgente dati per la valorizzazione della proprietà **PropertyName** */
586
+ PropertySource?: {
587
+ id: string;
588
+ description: string;
589
+ }[];
590
+ /** Indica che l'oggetto di bindare per questo td è l'elemento all'indice Y della proprietà Z dove Y e Z vengono prese dall'**ID** scritto come Z_Y */
591
+ Multi?: true;
592
+ /** Indica l'eventuale proprietà a cui accedere nel caso sia **Content** che **Template** siano vuoti */
593
+ PropAccessor?: string;
594
+ /** Se il contenuto di questo td dev'essere un'immagine cliccabile, questa è la classe che la identifica */
595
+ IconClass?: string;
596
+ /** Campo da controllare per fare apparire/sparire il contenuto di questa cella qualora fosse diverso da **ConditionValue** */
597
+ ConditionField?: string;
598
+ /** Valore che deve assumere **ConditionField** per mostrare il contenuto di questa cella */
599
+ ConditionValue?: string;
600
+ /** Titolo HTML di questa cella */
601
+ Title?: string;
602
+ _editing?: boolean;
603
+ old_value?: any;
604
+ }
605
+
606
+ /** Classe che rappresenta la modifica ad un singolo oggetto in una singola proprietà */
607
+ declare class EsTableModelChange {
608
+ item: any;
609
+ header: string;
610
+ property: string;
611
+ old_value: string;
612
+ new_value: string;
613
+ /**
614
+ * Costruttore
615
+ * @param {any} item Oggetto modificato
616
+ * @param {string} header Nome dell'Header che è stato modificato
617
+ * @param {string} property Nome della proprietà modificata
618
+ * @param {string} old_value Vecchio valore della proprietà **property** dell'oggetto **item**
619
+ * @param {string} new_value Nuovo valore della proprietà **property** dell'oggetto **item**
620
+ */
621
+ constructor(item: any, header: string, property: string, old_value: string, new_value: string);
622
+ }
623
+
624
+ /** Classe che rappresenta il riferimento ad una proprietà di un oggetto bindato sulla tabella */
625
+ declare class ItemPropEditableReference {
626
+ /** Stato di selezione della cella relativa */
627
+ selected: boolean;
628
+ /** Oggetto relativo su cui si modificano le proprietà */
629
+ item: any;
630
+ /** ID dell'header in modifica (riferimento al TH relativo) */
631
+ header: string;
632
+ /** Proprietà Javascript effettivamente in modifica */
633
+ property: string;
634
+ /** Tipo dell'input */
635
+ type: InputType | string;
636
+ /** Valore attuale della proprietà **property** dell'oggetto **item** */
637
+ value: string;
638
+ /** Indica se la cella deve avere il bordino a sinistra */
639
+ lborder?: boolean;
640
+ /** Indica se la cella deve avere il bordino in alto */
641
+ tborder?: boolean;
642
+ /** Indica se la cella deve avere il bordino a destra */
643
+ rborder?: boolean;
644
+ /** Indica se la cella deve avere il bordino in basso */
645
+ bborder?: boolean;
646
+ /** Indica se il bordo a sinistra overlappa su un bordo di selezione destro della cella precedente */
647
+ loverlaps?: boolean;
648
+ /** Indica se il bordo a destra overlappa su un bordo di selezione sinistro della cella successiva */
649
+ roverlaps?: boolean;
650
+ /** Indica se il bordo in alto overlappa su un bordo di selezione basso della cella precedente */
651
+ toverlaps?: boolean;
652
+ /** Indica se il bordo in basso overlappa su un bordo di selezione in alto della cella successiva */
653
+ boverlaps?: boolean;
654
+ /** Funzione che imposta il nuovo valore della proprietà **property** dell'oggetto **item** ed aggiorna il **value** di questo oggetto */
655
+ val_setter?: (value: string) => any;
656
+ }
657
+
658
+ /** Raccolta di tutti gli Input dell'EsTable a cui può essere logicamente sensato assegnare default per progetto */
659
+ declare class EsTableDefaultable {
660
+ /** @ignore Vedi **EsTableComponent** */ ColumnsResizable?: boolean;
661
+ /** @ignore Vedi **EsTableComponent** */ AutoUpdate?: boolean;
662
+ /** @ignore Vedi **EsTableComponent** */ AllSearch?: boolean;
663
+ /** @ignore Vedi **EsTableComponent** */ Export?: boolean;
664
+ /** @ignore Vedi **EsTableComponent** */ HidePaging?: boolean;
665
+ /** @ignore Vedi **EsTableComponent** */ HidePagingCount?: boolean;
666
+ /** @ignore Vedi **EsTableComponent** */ HidePagingButtons?: boolean;
667
+ /** @ignore Vedi **EsTableComponent** */ ContainerClass?: string;
668
+ /** @ignore Vedi **EsTableComponent** */ TableClass?: string;
669
+ /** @ignore Vedi **EsTableComponent** */ Selection?: boolean;
670
+ /** @ignore Vedi **EsTableComponent** */ SavePreferences?: boolean;
671
+ /** @ignore Vedi **EsTableComponent** */ PagingStyle?: 'both' | 'top' | 'bottom';
672
+ /** @ignore Vedi **EsTableComponent** */ RowGroupingPagingStyle?: 'left' | 'right';
673
+ /** @ignore Vedi **EsTableComponent** */ UseSelectionCache?: boolean;
674
+ /** @ignore Vedi **EsTableComponent** */ ShowItemGroupsColumns?: boolean;
675
+ /** @ignore Vedi **EsTableComponent** */ ArraymodeItemsPerPage?: number;
676
+ /** @ignore Vedi **EsTableComponent** */ ColumnsPinnable?: boolean;
677
+ /** @ignore Vedi **EsTableComponent** */ DefaultAlignment?: 'Left' | 'Center' | 'Right';
678
+ }
679
+
680
+ /** Componente rappresentante una singola cella del body della tabella */
681
+ declare class EsTd {
682
+ el: ElementRef;
683
+ /** Id della cella, dev'essere lo stesso della colonna **EsTh** relativa */
684
+ ID: _angular_core.InputSignal<string>;
685
+ /** Contesto dell'oggetto a cui si riferisce il dato visualizzato. Contiene l'hash dell'oggetto in questione */
686
+ Context: _angular_core.InputSignal<string>;
687
+ /** Quando questa cella viene generata questo evento permette di dire "ehi, sono nato!" */
688
+ onCellGeneration: EventEmitter<{
689
+ id: string;
690
+ hash: string;
691
+ self: EsTd;
692
+ }>;
693
+ /** Errore attualmente presente sulla cella */
694
+ ValidationError: _angular_core.WritableSignal<string>;
695
+ /** @ignore */
696
+ constructor(el: ElementRef);
697
+ /** @ignore */
698
+ ngAfterViewInit(): void;
699
+ /** Api per impostare un "errore" su questa cella in maniera programmatica */
700
+ validationError(error?: string): void;
701
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTd, never>;
702
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EsTd, "[es-td]", never, { "ID": { "alias": "es-td"; "required": false; "isSignal": true; }; "Context": { "alias": "Context"; "required": false; "isSignal": true; }; }, { "onCellGeneration": "onCellGeneration"; }, never, ["*"], false, never>;
703
+ }
704
+
705
+ /** Direttiva per la dichiarazione snella di un EsTd da emettere per ogni elemento, data una colonna */
706
+ declare class EsTdDirective {
707
+ Template: TemplateRef<any>;
708
+ /** Variabile interna che indica il fatto che questo componente è una direttiva. Serve per disambigualrlo dell'EsTdComponent */
709
+ _directive: boolean;
710
+ /** Variabile interna che indica il fatto che questo template si riferisce a una proprietà multipla */
711
+ _multi: boolean;
712
+ /** Indica se la cella è visibile o meno di default */
713
+ tdVisible: boolean;
714
+ /** Id della colonna, fa riferimento al **th** padre */
715
+ td: string;
716
+ /** Se questo td viene usato come renderer in questa proprietà è scritto il nome della proprietà dell'oggetto bindato per cui fare apparire il **Template** */
717
+ tdForProperty: string;
718
+ /** Equivalente dell'NgIf sul td */
719
+ tdIf: boolean;
720
+ /** Eventuali classi da applicare al **td** generato */
721
+ tdClass: string;
722
+ /** In mancanza di **Template** indica qual è la proprietà dell'oggetto contenente le informazioni da mostrare */
723
+ tdPropertyAccessor: string;
724
+ /** Allineamento dei valori della tabella */
725
+ tdAlignment: "Center" | "Left" | "Right";
726
+ /** Formato da applicare al valore se applicabile, utilizzabile solo se **tdPropertyAccessor** è valorizzato */
727
+ tdFormat: string;
728
+ /** Se il contenuto di questo td dev'essere un'immagine cliccabile, questa è la classe che la identifica */
729
+ tdIconClass: string;
730
+ /** Campo da controllare per fare apparire/sparire il contenuto di questa cella qualora fosse diverso da **tdConditionValue** */
731
+ tdConditionField: string;
732
+ /** Valore che deve assumere **tdConditionField** per mostrare il contenuto di questa cella */
733
+ tdConditionValue: string;
734
+ /** Titolo HTML di questa cella */
735
+ tdTitle: string;
736
+ /** Contenuto statico di questa cella */
737
+ tdContent: string;
738
+ /**
739
+ * @ignore
740
+ */
741
+ constructor(Template: TemplateRef<any>);
742
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTdDirective, [{ self: true; }]>;
743
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<EsTdDirective, "[td]", never, { "tdVisible": { "alias": "tdVisible"; "required": false; }; "td": { "alias": "td"; "required": false; }; "tdForProperty": { "alias": "tdForProperty"; "required": false; }; "tdIf": { "alias": "tdIf"; "required": false; }; "tdClass": { "alias": "tdClass"; "required": false; }; "tdPropertyAccessor": { "alias": "tdPropertyAccessor"; "required": false; }; "tdAlignment": { "alias": "tdAlignment"; "required": false; }; "tdFormat": { "alias": "tdFormat"; "required": false; }; "tdIconClass": { "alias": "tdIconClass"; "required": false; }; "tdConditionField": { "alias": "tdConditionField"; "required": false; }; "tdConditionValue": { "alias": "tdConditionValue"; "required": false; }; "tdTitle": { "alias": "tdTitle"; "required": false; }; "tdContent": { "alias": "tdContent"; "required": false; }; }, {}, never, never, false, never>;
744
+ }
745
+
746
+ /** Classe rappresentante una singola aggregazione effettuata su una colonna */
747
+ declare class ThAggregation {
748
+ func: 'min' | 'max' | 'sum';
749
+ format: string;
750
+ match: string;
751
+ /**
752
+ * Costruttore
753
+ *
754
+ * @param {'min' | 'max' | 'sum'} func Funzione di aggergazione, può essere **min**, **max** o **sum**
755
+ * @param {string} format Formato richiesto per il valore dell'aggregazione
756
+ * @param {string} match Match intero del pezzo di testo da cui si è estrapolata l'aggregazione, da rimpiazzare col valore calcolato
757
+ */
758
+ constructor(func: 'min' | 'max' | 'sum', format: string, match: string);
759
+ }
760
+
761
+ /** Direttiva per la dichiarazione snella di un EsTh da emettere come header */
762
+ declare class EsThDirective {
763
+ Template: TemplateRef<any>;
764
+ /** Variabile interna all'interno della quale viene raccolta la cache delle aggregazioni specificate in thAggregation */
765
+ _thAggregations: ThAggregation[];
766
+ /** Variabile interna contenente in maniera ordinata i template dei padri */
767
+ _thParents: {
768
+ id: string;
769
+ tmpl?: TemplateRef<any>;
770
+ content?: string;
771
+ }[];
772
+ /** Variabile interna che indica il fatto che questo componente è una direttiva. Serve per disambigualrlo dell'EsThComponent */
773
+ _directive: boolean;
774
+ /** Variabile interna impostata dall'**EsTable**, per controllare che ci sia almeno un TD che utilizzi quest'header */
775
+ _referenced: boolean;
776
+ /** Variabile interna che indica il fatto che questo template si riferisce a una proprietà multipla */
777
+ _multi: boolean;
778
+ /** Variabile interna che indica il contenuto dell'header in caso di multi */
779
+ _multi_content: string;
780
+ /** Id della colonna, dev'essere lo stesso per tutti i **td** relativi */
781
+ th: string;
782
+ /** Indica se la colonna è pinnata o no */
783
+ thPinned: boolean;
784
+ /** Indica se la colonna è pinnabile o no */
785
+ thPinnable: boolean;
786
+ /** Indica le dimensioni che deve avere questa colonna quando viene pinnata, senza questo tutte le colonne mi collasserebbero l'una sull'altra */
787
+ thPinnedWidth: number;
788
+ /** Indicazione sulla visibilità della colonna */
789
+ thVisible: boolean;
790
+ /** Indica se la colonna è fixed, cioè se non può né essere nascosta, né riposizionata. Solo le prime colonne possono essere Fixed */
791
+ thFixed: boolean;
792
+ /** Indica che la colonna è sotto ad un raggruppamento padre, con questo nome nel **th** */
793
+ thParent: string;
794
+ /** Ordinamento attuale della colonna */
795
+ thOrder?: 'DESC' | 'ASC';
796
+ /** Indica se questa colonna è ordinabile o meno */
797
+ thOrderable: boolean;
798
+ /** Indica se il testo presente in questo Header può andare a capo o meno, di default non può */
799
+ thWrap: boolean;
800
+ /** Indica se le dimnsioni di questa colonna sono modificabili o meno */
801
+ thResizable: boolean;
802
+ /** Classi da applicare all'Header della colonna */
803
+ thClass: string;
804
+ /** Classi da applicare all'Header della colonna */
805
+ thShrink: boolean;
806
+ /** Classi da applicare alle righe quando rappresentano un Gruppo */
807
+ thGroupClass: string;
808
+ /** Equivalente dell'NgIf sul th */
809
+ thIf: boolean;
810
+ /** Campo particolare che indica che questo header è vuoto. Viene utilizzato solo a livello grafico per ignorare o meno l'emit del template */
811
+ thEmpty: boolean;
812
+ /** Indica che bisogna fare un raggruppamento su questa colonna */
813
+ thGroup: boolean;
814
+ /** Indica che bisogna fare una aggregazione su questa colonna, a fronte di almeno un altra con un raggruppamento */
815
+ thAggregation: string;
816
+ /** Proprietà JS a cui si riferisce questa cella */
817
+ thProperty: string;
818
+ /** Tipo della proprietà JS a cui si riferisce questa cella. Se valorizzato l'utente la potrà modificare facendo doppio click */
819
+ thType: InputType | string;
820
+ /** Sorgente dei valori disponibili per questa cella se il **Type** è di tipo 'enum' */
821
+ thSource: {
822
+ id: string;
823
+ description: string;
824
+ }[];
825
+ /** Indica che questo header deve essere emesso una volta per ogni valore presente nella lista di **EsTableMultiValue** alla proprietà **th** dell'oggetto corrente */
826
+ thMulti: boolean;
827
+ /** Indica un contenuto statico da mostrare piuttosto che utilizzare il **Template**. Serve in caso questo oggetto venga generato programmaticamente */
828
+ thStaticContent: string;
829
+ /** Colore del background della cella */
830
+ thBackgroundColor: string;
831
+ /** Allineamento dei valori della tabella */
832
+ thAlignment: "Center" | "Left" | "Right";
833
+ /** Formato da applicare al valore se applicabile */
834
+ thFormat: string;
835
+ /** Nome dell'editor da utilizzare per la modifica di questo campo, ordine di priorità:
836
+ *
837
+ * 1. Editor con nome **thEditorName**
838
+ *
839
+ * 2. Editor riferito alla proprietà **thProperty**
840
+ *
841
+ * 3. Editor di default per **thType**
842
+ */
843
+ thEditorName: string;
844
+ /** Opzioni da applicare all'editor di questa colonna */
845
+ thEditorOptions: {
846
+ [id: string]: any;
847
+ };
848
+ /** Nome del renderer da utilizzare per visualizzare questo campo. Utilizzato solo per le tabelle dinamiche */
849
+ thRendererName: string;
850
+ /** Route di navigazione. Es. "['/pages/mod/mod_detail', { 'idItem': '{0}', 'idItem2' : '{1}' }]" */
851
+ thRoutePath: string;
852
+ /**
853
+ * Proprietà da bindare a **routePath** per generare la route completa.
854
+ *
855
+ * L'indice scritto in **routePath** è l'indice di accesso a questo array. Es. ["idItem", "idItem2"]
856
+ */
857
+ thRouteParameterProperties: string[];
858
+ /** @ignore */
859
+ constructor(Template: TemplateRef<any>);
860
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsThDirective, [{ self: true; }]>;
861
+ 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>;
862
+ }
863
+
864
+ /** Direttiva che rappresenta il template dell'editor di una cella all'interno della tabella */
865
+ declare class EsTdEditorDirective {
866
+ Template: TemplateRef<any>;
867
+ /** Id dell'Editor */
868
+ editor: string;
869
+ /** In questa proprietà è scritto il nome della proprietà dell'oggetto bindato per cui fare apparire il **Template** */
870
+ editorForProperty: string;
871
+ /** @ignore */
872
+ constructor(Template: TemplateRef<any>);
873
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTdEditorDirective, [{ optional: true; self: true; }]>;
874
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<EsTdEditorDirective, "[editor]", never, { "editor": { "alias": "editor"; "required": false; }; "editorForProperty": { "alias": "editorForProperty"; "required": false; }; }, {}, never, never, false, never>;
875
+ }
876
+
877
+ declare class ThTdProvider {
878
+ EsTdsDirective: QueryList<EsTdDirective>;
879
+ EsThsDirective: QueryList<EsThDirective>;
880
+ LoadedSignal: ReplaySubject<void>;
881
+ setLoaded(): void;
882
+ asyncLoad(): Promise<void>;
883
+ ngOnInit(): Promise<void>;
884
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThTdProvider, never>;
885
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ThTdProvider, "[td_th_provider]", ["tdThProvider"], {}, {}, ["EsTdsDirective", "EsThsDirective"], never, false, never>;
886
+ }
887
+
888
+ /** Classe contenente la gestione delle importazioni */
889
+ declare class ExportHandler {
890
+ private est;
891
+ private expExts;
892
+ private msgExts;
893
+ private utiExts;
894
+ private dateExts;
895
+ private exportInProgress;
896
+ /** @ignore Costruttore*/
897
+ constructor(est: EsTableComponent, expExts: ExportService, msgExts: MessageService, utiExts: UtilityService, dateExts: DateService);
898
+ /**
899
+ * Effettua l'esportazione dei dati
900
+ *
901
+ * @param {string} format Formato di esportazione. Letto solo in modalità Report della tabella
902
+ */
903
+ tryExport(format?: 'CSV' | 'XLSX'): void;
904
+ }
905
+
906
+ /** Classe di utilità per le cose comuni */
907
+ declare class UtilitiesHandler {
908
+ private hashExts;
909
+ /** @ignore Costruttore */
910
+ constructor(hashExts: HashingService);
911
+ /**
912
+ * Data una lista di oggetti effettua dei raggruppamenti in base alla proprietà **field**,
913
+ * restituendo un oggetto del tipo { Gruppo1: oggetti[], Gruppo2: oggetti[], ecc... }
914
+ *
915
+ * @param {any[]} array Lista degli oggetti da raggruppare
916
+ * @param {string} field Campo su cui effettuare i raggruppamenti
917
+ *
918
+ * @returns {{ [id: string]: any[] }} Dizionario dei gruppi
919
+ */
920
+ groupBy(array: any[], field: string): {
921
+ [id: string]: any[];
922
+ };
923
+ /**
924
+ * Helper per effettuare il caching delle aggregazioni. Le sposta da una lista di **GroupAggregation** a una **<Map<string, Map<string, string>>**
925
+ *
926
+ * @param {any} group Gruppo di cui cachare le aggregazioni
927
+ */
928
+ cacheAggregations(group: any): void;
929
+ /** Helper per spostare un oggetto di un array da un indice all'altro, in place */
930
+ arrayMove(array: any[], oldI: number, newI: number): void;
931
+ /**
932
+ * Date le informazioni di paginazione ottiene l'array dei pulsanti
933
+ *
934
+ * @param {number} maxBtns Numero massimo di pulsanti da visualizzare
935
+ * @param {number} page Pagina corrente
936
+ * @param {number} lastPage Ultima pagina disponibile
937
+ *
938
+ * @returns {any[]} Pseudo-array di pulsanti a cui ci si può bindare lato HTML
939
+ */
940
+ getPagesArray(maxBtns: number, page: number, lastPage: number, actualCount?: number, ipp?: number): {
941
+ val: number;
942
+ cssClass: string;
943
+ }[];
944
+ /**
945
+ * Calcola l'hash di un oggetto qualsiasi
946
+ *
947
+ * @param {any[]} items Oggetti per cui calcolare l'hash
948
+ */
949
+ calculateHash(items: any[]): void;
950
+ /**
951
+ * 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)
952
+ *
953
+ * @param {T} inputValue Valore dell'Input
954
+ * @param {T} defaultValue Valore di default impostato da configurazione
955
+ * @param {T} fallbackValue Valore dell'Input per quando non è stato assegnato dal programmatore e non ha un default
956
+ */
957
+ InputOrDefault<T>(inputValue: T, defaultValue: T, fallbackValue?: T): T;
958
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UtilitiesHandler, never>;
959
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<UtilitiesHandler>;
960
+ }
961
+
962
+ /** Classe che gestisce la modalità Row Grouping dell'es-table */
963
+ declare class RowGroupingHandler {
964
+ private est;
965
+ private utilities;
966
+ private dateExts;
967
+ /** Cache per salvare per ogni chiave di ogni gruppo chi è il gruppo rappresentato */
968
+ rgGroupCache: Map<string, Group>;
969
+ /** Cache per salvare per ogni chiave di ogni gruppo chi sono gli oggetti sottostanti, non dei sottogruppi */
970
+ rgItemCache: Map<string, any[]>;
971
+ /** Cache per salvare per ogni chiave di ogni gruppo chi sono gli oggetti sottostanti, non dei sottogruppi */
972
+ rgChildGroupsCache: Map<string, Group[]>;
973
+ /** @ignore Costruttore */
974
+ constructor(est: EsTableComponent, utilities: UtilitiesHandler, dateExts: DateService);
975
+ /**
976
+ * In modalità rowgrouping quando mi arriva un nuovo blocco di oggetti devo aggiungerlo alla vista attuale:
977
+ *
978
+ * 1) Se non viene richiesto il dettaglio di alcun gruppo significa che devo considerare mi siano arrivati tutti i gruppi principali
979
+ * 2) Se viene richiesto il dettaglio di un gruppo diverso dall'ultimo devo aggiungere dopo al gruppo cliccato la lista dei sottogruppi
980
+ * 2) Se viene richiesto il dettaglio dell'ultimo gruppo devo aggiungere dopo al gruppo cliccato la lista degli oggetti
981
+ *
982
+ * @param {any} view AppSearch<T> da cui sono arrivati gli oggetti
983
+ * @param {number} groupingKeys Livelli di raggruppamento da aspettarsi sui dati
984
+ */
985
+ handleNewDataOnRowGrouping(view: AppSearch<any>, groupingKeys: number): void;
986
+ /**
987
+ * Se in modalità array applica i raggruppamenti definiti lato row-grouping
988
+ *
989
+ * @param {ths: EsThDirective[]} ths Header
990
+ */
991
+ arrayModeReviewGroupings(ths: EsThDirective[]): void;
992
+ /**
993
+ * Data una direttiva EsTh restituisce la lista delle aggregazioni richiesta per questa colonna o il gruppo che rappresenta
994
+ *
995
+ * @param {EsThDirective} th Direttiva
996
+ *
997
+ * @returns {GroupOrAggregation[]} Lista dei gruppi o aggregazioni relativi alla Direttiva passata
998
+ */
999
+ getGroupAggregations(th: EsThDirective): GroupOrAggregation[];
1000
+ /**
1001
+ * Data una direttiva con un formato restituisce tutte le coppie Funzione di Aggregazione - Formato
1002
+ *
1003
+ * @param {EsThDirective} th Direttiva EsTh di cui calcolare le funzioni di aggregazione usate
1004
+ *
1005
+ * @returns {{ func: string, format: string }[]} Lista delle funzioni di aggregazione rilevate
1006
+ */
1007
+ private getEsThDirectiveListOfAggregations;
1008
+ /**
1009
+ * Data la definizione dei gruppi da generare da una lista di oggetti, suddivide gli oggetti passati in gruppi e sottogruppi
1010
+ *
1011
+ * @param {Group[]} grps Definizione dei gruppi
1012
+ * @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
1013
+ * elaborare i sottogruppi, e così via ricorsivamente...
1014
+ * @param {any[]} items Oggetti da raggruppare
1015
+ * @param {GroupOrAggregation[]} aggregations Info di aggregazione
1016
+ * @param {any} parent Riferimento al gruppo padre
1017
+ */
1018
+ private getGroupsRecursive;
1019
+ /**
1020
+ * Data una lista di oggetti genera le aggregazioni specificate. Si considera di avere tutti gli oggetti
1021
+ *
1022
+ * @param {any[]} items Oggetti di cui calcolare le aggregazione
1023
+ * @param {GroupOrAggregation[]} aggregations Aggergazioni da generare
1024
+ */
1025
+ private generateAggregations;
1026
+ /**
1027
+ * Ottiene un elemento di separazione fra Gruppi che serve per paginare le ricerche all'interno di ogni singolo gruppo
1028
+ *
1029
+ * @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
1030
+ * facenti riferimento allo stesso contesto
1031
+ * @param {string} parent Parent path che rappresenta a quale gruppo è affibbiato questo separatore
1032
+ * @param {GroupRouteFragment[]} route Route path che rappresenta a quale gruppo è affibbiato questo separatore
1033
+ * @param {number} level Livello del gruppo di cui questo elemento è separatore, viene usato per applicare la classe "est-lvl-{{level}}"
1034
+ *
1035
+ * @returns {any} Elemento di separazione contenente tutti i bind per presentare una paginazione sotto questo gruppo lato interfaccia
1036
+ */
1037
+ getGroupSeparator(view: AppSearch<any>, parent: string, route: GroupRouteFragment[], level: number, searches: 'groups' | 'items'): GroupPager;
1038
+ /**
1039
+ * Data una colonna effettua la riemissione di tutte le ricerche relative.
1040
+ *
1041
+ * Es. Ho 2 campi di gruppo e ho espanso fino a vedere i valori fino ad un livello qualsiasi.
1042
+ * Clicco l'ordinamento sul secondo gruppo.
1043
+ * Tutte le ricerche relative ai primi gruppi devono essere rieseguite. Quando i risultati arriveranno ci penserà il metodo **bindDisplayToLoadedItemsOrGroups**
1044
+ * a tagliare via gli oggetti non più visualizzati
1045
+ *
1046
+ * @param {string} column Colonna su cui si è effettuata un'operazione di ordinamento
1047
+ * @param {AppOrdering[]} orderings Direttive di ordinamento da applicare alle varie sottoricerche
1048
+ */
1049
+ emitRowGroupingSearches(column: string, orderings: AppOrdering[]): void;
1050
+ /**
1051
+ * Helper che calcola il contenuto di una cella relativa a un gruppo riga, tenendo conto del formato delle eventuali aggregazioni
1052
+ *
1053
+ * @param {Group} grp Gruppo di cui mostrare le celle
1054
+ * @param {string} cell Cella attuale di cui calcolare il testo
1055
+ * @param {EsThDirective} header Header relativo alla cella attuale, utilizzata per identificare le informazioni di aggregazione
1056
+ *
1057
+ * @returns {string} Testo finale calcolato per la **cell** corrente, in base alle aggregazioni di **header**
1058
+ */
1059
+ getGroupCellDisplay(grp: Group, cell: string, header: EsThDirective): string;
1060
+ /**
1061
+ * Funzione che dato un valore lo formatta in base al tipo
1062
+ *
1063
+ * @param {string} value Valore che generalemnte può essere una data o un numero
1064
+ * @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
1065
+ *
1066
+ * @returns {string} Valore dell'aggregazione formattato come si deve
1067
+ */
1068
+ private formatAggregationValue;
1069
+ }
1070
+
1071
+ /** Classe che gestisce tutte le informaizoni relative alle colonne: visibilità, posizione, stato di pin/unpin, ecc ecc... */
1072
+ declare class ColumnMetadataHandler {
1073
+ private est;
1074
+ private utilities;
1075
+ private utiExts;
1076
+ private prefService;
1077
+ private rgH;
1078
+ /** @ignore Costruttore*/
1079
+ constructor(est: EsTableComponent, utilities: UtilitiesHandler, utiExts: UtilityService, prefService: PreferencesService, rgH: RowGroupingHandler);
1080
+ /**
1081
+ * Metodo che gestisce il cambio di Ordinamento di una colonna
1082
+ *
1083
+ * @param {string} id ID della colonna il cui oridnamento è cambiato
1084
+ * @param {'DESC' | 'ASC'} order Nuovo ordine selezionato per la colonna
1085
+ */
1086
+ handleTHOrderChange(id: string, order: 'DESC' | 'ASC'): void;
1087
+ /**
1088
+ * Registra le preference relative alla view passata come parametro
1089
+ *
1090
+ * @param {any} castedView View di cui salvare colonne e ordinamento colonne
1091
+ */
1092
+ registerViewPreferences(castedView: AppSearch<any>): boolean;
1093
+ /**
1094
+ * Partendo dagli **EsThs** estrappolo la lista di **EsTableColumn** che questa tabella dovrà eventualmente gestire per Visibilità e Ordine
1095
+ *
1096
+ * Costo: 1 scan EsThs
1097
+ *
1098
+ * @param {EsThDirective[]} ths Colonne della tabella
1099
+ */
1100
+ reviewColumnsList(ths: EsThDirective[]): void;
1101
+ /** In caso siano configurati dei th "Multi" (vedere la descrizione del campo **thMulti** di **EsThDirective**) questo metodo li "srotola" in tutti i th/td che devono effettivamente diventare */
1102
+ expandMultiThsAndTds(ths: EsThDirective[], tds: EsTdDirective[], items: any[]): {
1103
+ expThs: EsThDirective[];
1104
+ expTds: EsTdDirective[];
1105
+ };
1106
+ /**
1107
+ * Prende i th e i td in modalità diretive e li ordina in base a se ci sono colonne fixed o meno
1108
+ */
1109
+ moveFixedColumnsAtTheBeginning(ths: EsThDirective[], tds: EsTdDirective[]): void;
1110
+ /** In base alla configurazione delle colonne calcola le dimenioni delle colonne pinnate */
1111
+ evaluatePinnedColumnsWidth(): void;
1112
+ /**
1113
+ * Terminato il binding delle colonne da **reviewColumnsList** e della **View** dal **writeValue** questo metodo si occupa
1114
+ * dell'allineamento delle informazioni fra le colonne calcolate internamente e le informazioni sulle colonne che arrivano dall'AppSearch
1115
+ *
1116
+ * @param {AppSearch<any>} view AppSearch da utilizzare per questa operazione
1117
+ */
1118
+ alignColumnsIfLoadedView(view: AppSearch<any>): void;
1119
+ /**
1120
+ * In base alla visibilità registrata nelle **ColumnsList** questo metodo si occupa di prendere tutti i **EsThDirective** ed **EsTdDirective** relativi e nasonderli/mostrarli
1121
+ *
1122
+ * Costo: 1 scan ColumnsList, 1 scan EsThDirectives, 1 scan EsTdDirectives
1123
+ *
1124
+ * @param {EsThDirective[]} ths Header della tabella
1125
+ * @param {EsTdDirective[]} tds Celle della tabella
1126
+ * @param {AppSearch<any>} view AppSearch da utilizzare per questa operazione
1127
+ */
1128
+ refreshColumnsVisibility(ths: EsThDirective[], tds: EsTdDirective[], view: AppSearch<any>): void;
1129
+ /**
1130
+ * Allinea gli ordinamenti dati fra le **EsThs** e le informazioni all'interno della View bindata
1131
+ *
1132
+ * @param {AppSearch<any>} view AppSearch da utilizzare per questa operazione
1133
+ * @param {EsThDirective[]} ths Colonne della tabella
1134
+ */
1135
+ alignHeadersOrdering(ths: EsThDirective[], view: AppSearch<any>): void;
1136
+ /**
1137
+ * Genera tutte le informazioni che servono per gestire il raggruppamento degli header
1138
+ *
1139
+ * @param {EsThDirective[]} ths Colonne della tabella
1140
+ *
1141
+ * @returns {{ leafs: EsThDirective[], groupingLevel: number, parentsCache: any, thsCache: any }} Oggetto contenente la lista delle foglie (header base), il livello
1142
+ * massimo di raggruppamento raggiunto, una cache in cui vengono indicati tutti i gruppi che sono "parent" (quindi che raggruppano almeno 1 header) e la cache degli header
1143
+ */
1144
+ evaluateHeadersGroupingInfos(ths: EsThDirective[]): {
1145
+ leafs: EsThDirective[];
1146
+ groupingLevel: number;
1147
+ parentsCache: any;
1148
+ thsCache: any;
1149
+ };
1150
+ /**
1151
+ * Genera gli header groups da una lista di info sui th all'interno della variabile **TMPRowThGroups**
1152
+ *
1153
+ * @param {{ leafs: EsThDirective[], groupingLevel: number, parentsCache: any, thsCache: any }} infos Informazioni di raggruppamento valutate precedentemente
1154
+ */
1155
+ evaluateHeaderGroups(infos: {
1156
+ leafs: EsThDirective[];
1157
+ groupingLevel: number;
1158
+ parentsCache: any;
1159
+ thsCache: {
1160
+ [index: string]: EsThDirective;
1161
+ };
1162
+ }): void;
1163
+ /**
1164
+ * Calcola il numero di salti da un header foglia all'ultimo parent della catena
1165
+ *
1166
+ * @param {EsThDirective} th Header da cui scorrere i padri per capire quanti livelli ci sono sopra
1167
+ * @param {{ [index: string]: EsThDirective }} thsCache Cache degli header
1168
+ */
1169
+ private jumpsToFinalParent;
1170
+ /**
1171
+ * Metodo che genera l'ordine di default delle colonne
1172
+ *
1173
+ * @param {AppSearch<any>} view AppSearch da utilizzare per questa operazione
1174
+ */
1175
+ generateDefaultOrder(ths: EsThDirective[], view: AppSearch<any>): void;
1176
+ /**
1177
+ * Applica l'ordine specificato alle varie colonne
1178
+ *
1179
+ * @param {AppSearch<any>} view AppSearch da utilizzare per questa operazione
1180
+ * @param {boolean} finalize Se **true** significa che non mi aspetto di dover effettuare altre operazioni e posso renderizzare la situazione in base ai RowContext
1181
+ * Senza finalize significa che mi aspetto altre operazioni che prima o poi richiameranno questa funzione col finalize.
1182
+ *
1183
+ * 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.
1184
+ * Mettendo solo la chiamata da "writeValue" come "finalizzante" mi assicuro che smanattamenti a frontend non causino flickering fino a quando non servono
1185
+ */
1186
+ applyOrdering(view: AppSearch<any>, finalize: boolean): void;
1187
+ /**
1188
+ * All'interno della dialog "Ordinamento e Visibilità Colonne" mette la colonna specificata prima della colonna precedente
1189
+ *
1190
+ * @param {EsTableColumn} columnItem Colonna da spostare
1191
+ */
1192
+ sendUp(columnItem: EsTableColumn): void;
1193
+ /**
1194
+ * All'interno della dialog "Ordinamento e Visibilità Colonne" mette la colonna specificata dopo la colonna successiva
1195
+ *
1196
+ * @param {EsTableColumn} columnItem Colonna da spostare
1197
+ */
1198
+ sendDown(columnItem: EsTableColumn): void;
1199
+ /**
1200
+ * All'interno della dialog "Ordinamento e Visibilità Colonne" pinna la colonna specificata
1201
+ *
1202
+ * @param {EsTableColumn} columnItem Colonna da spostare
1203
+ */
1204
+ pinOrUnpinColumn(columnItem: EsTableColumn): void;
1205
+ /**
1206
+ * All'interno della dialog "Ordinamento e Visibilità Colonne" inverte le impostazioni di visibilità della colonna
1207
+ *
1208
+ * @param {EsTableColumn} columnItem Colonna da spostare
1209
+ */
1210
+ columnClicked(item: EsTableColumn): void;
1211
+ /** All'apertura della dialog "Ordinamento e Visibilità Colonne" ricarica le informazioni attuali per permettere la modifica */
1212
+ resetColumnVisSelection(): void;
1213
+ /** Riaggiorna le **OrderDirectives** con le informazioni in **ColumnsList** */
1214
+ private refreshColumnOrdering;
1215
+ /** Effettua la selezione o meno del check globale (**globalColVisCheck**) di visibilità in base a se tutte le **TMPColumnsList** sono visibili o no */
1216
+ updateGlobalColVisCheck(): void;
1217
+ /**
1218
+ * Chiamato quando una colonna viene riordinata all'interno della lista delle visibilità/posizioni colonne
1219
+ *
1220
+ * @param {CdkDragDrop<EsTableColumn[]>} event Evento di drop della lista
1221
+ */
1222
+ columnReordered(event: CdkDragDrop<EsTableColumn[]>): void;
1223
+ /**
1224
+ * Chiamato quando una colonna viene riordinata all'interno della lista delle visibilità/posizioni colonne
1225
+ *
1226
+ * @param {number} index Indice in cui voglio droppare l'elemento draggato
1227
+ * @param {CdkDrag<EsTableColumn>} item Oggetto che sto draggando
1228
+ *
1229
+ * @returns {boolean} **true** se la colonna può essere spostata sull'indice **index**, **false** altrimenti
1230
+ */
1231
+ sortPredicate(index: number, item: CdkDrag<EsTableColumn>): boolean;
1232
+ /**
1233
+ * Funzione che effettua la conferma della visibilità e dell'ordine delle colonne.
1234
+ *
1235
+ * Questa selezione viene inoltre salvata nelle preferenze (**@esfaenza/preferences**), qualora l'Input **SavePreferences** fosse valorizzato
1236
+ *
1237
+ * @returns {boolean} **true** se non ci sono problemi, **false** altrimenti
1238
+ */
1239
+ confirmColumnVisibilitySelection(): boolean;
1240
+ /**
1241
+ * Effettuo l'unpinning di una colonna in maniera programmatica semplicemente eseguendo una per una le operazioni che verrebbero eseguite altrimenti
1242
+ *
1243
+ * @param {string} id Codice della colonna da spinnare
1244
+ */
1245
+ unpinColumn(id: string): void;
1246
+ /** Sul click nella checkbox di selezione globale si scorrono tutte le colonne e si impostano al valore della check globale */
1247
+ globalColVisCheckChanged(): void;
1248
+ }
1249
+
1250
+ /** Classe contenente le gestioni particolari della modalità dinamica dell'es-table */
1251
+ declare class DynamicModeHandler {
1252
+ private est;
1253
+ /** @ignore Costruttore*/
1254
+ constructor(est: EsTableComponent);
1255
+ /** Se non ho l'Input **DynamicRowColumnsDefinition** in modalità dinamica lo riempio con il default nome della colonna = testo della colonna */
1256
+ eventuallyReviewDynamicColumns(): void;
1257
+ /** Genera partendo dalle **DynamicRowColumnsDefinition** la lista di **EsThDirective** e **EsTdDirective** che servono per la tabella */
1258
+ emitThsAndTdsBasedOnDynamicDefinition(): {
1259
+ ths: EsThDirective[];
1260
+ tds: EsTdDirective[];
1261
+ };
1262
+ /** @ignore Helper */
1263
+ private getThFromOperation;
1264
+ private getTdFromOperation;
1265
+ private getThFromColumnDef;
1266
+ /** @ignore Helper */
1267
+ private getTdFromColumnDef;
1268
+ }
1269
+
1270
+ /** Classe contenente la gestione della modalità gerarchica */
1271
+ declare class HierarchyModeHandler {
1272
+ private est;
1273
+ /** @ignore Costruttore*/
1274
+ constructor(est: EsTableComponent);
1275
+ /**
1276
+ * Data una lista di oggetti assegno il livello gerarchico rispetto alla lista di oggetti passata
1277
+ *
1278
+ * @param {any[]} objs Lista di oggetti a cui aggiungere l'informazione del livello gerarchico
1279
+ */
1280
+ assignHierarchyLevels(objs: any[]): void;
1281
+ private orderItemsInPlace;
1282
+ /**
1283
+ * Per ognuno degli oggetti passati gli assegna un livello di gerarchia in base a **ParentKey** e **OwnKey**
1284
+ *
1285
+ * @param {any[]} objs Oggetti a cui assegnare il livello di gerarchia
1286
+ * @param {number} levelToAssign Livello che sta assegnando attualmente questa iterazione (dato che è ricorsiva)
1287
+ *
1288
+ * @returns {number} Numero di oggetti a cui è stato assegnato un livello gerarchico
1289
+ */
1290
+ private assignLevel;
1291
+ /**
1292
+ * Funzione che permette di effettuare l'espansione di un parent quando la tabella funziona in modalità gerarchica
1293
+ *
1294
+ * @param {string} key Chiave del parent da espandere
1295
+ */
1296
+ expandParent(key: string): void;
1297
+ /**
1298
+ * Funzione che permette di effettuare il collapse di un parent quando la tabella funziona in modalità gerarchica
1299
+ *
1300
+ * @param {string} key Chiave del parent da collassare
1301
+ */
1302
+ collapseParent(key: string): void;
1303
+ /**
1304
+ * Collassa ricorsivamente tutti i figli di un parent identificato dalla **parentKey**
1305
+ *
1306
+ * @param {string} parentKey Chiave del parent di cui collassare i figli
1307
+ */
1308
+ private collapseChildOfParent;
1309
+ }
1310
+
1311
+ /** Classe che si occupa della gestione del recupero degli oggetti, paginazione e tutto ciò in cui gli elementi caricati vengono manipolati direttamente */
1312
+ declare class ItemsHandler {
1313
+ private est;
1314
+ private utilities;
1315
+ /** @ignore Costruttore */
1316
+ constructor(est: EsTableComponent, utilities: UtilitiesHandler);
1317
+ /**
1318
+ * In base alla modalità specificata (ArrayMode, ViewMode, ecc...) questo metodo recupera l'array di oggetti da bindare ad interfaccia
1319
+ *
1320
+ * @param {boolean} onlyselected [false] Indica di prendere solo gli oggetti selezionati
1321
+ * @param {boolean} refreshPaging [false] Indica se aggiornare le informazioni di paginazione o meno
1322
+ * @param {boolean} allIfPossible [false] Indica se prendere tutti gli oggetti quaora possibile, usato solo in ArrayMode
1323
+ *
1324
+ * @returns {any[]} Lista degli oggetti su cui effettuare il bind lato interfaccia
1325
+ */
1326
+ getItemsByMode(onlyselected?: boolean, refreshPaging?: boolean, allIfPossible?: boolean): any[];
1327
+ /**
1328
+ * Metodo per effettuare il refresh della paginazione sul cambiamento degli oggetti da visualizzare in una singola pagina.
1329
+ *
1330
+ * Vale solo per la modalità Array
1331
+ *
1332
+ * @param {number} pageSize Dimensione della pagina
1333
+ */
1334
+ refreshPaging(pageSize: number): void;
1335
+ /**
1336
+ * Ottiene gli oggetti in base alla sorgente
1337
+ */
1338
+ private getViewItemsBySource;
1339
+ /** Genera le informazioni di paginazione e taglia la View in modalità array per mostrare solo gli oggetti della pagina specificata */
1340
+ private adaptViewToPaging;
1341
+ /** Se in modalità array applica gli ordinamenti ASC-DESC delle colonne */
1342
+ arrayModeReviewOrderings(items: any[]): any[];
1343
+ }
1344
+
1345
+ /** Classe che gestisce la modalità Report dell'es-table utilizzata nel Metering */
1346
+ declare class ReportModeHandler {
1347
+ private est;
1348
+ private utilities;
1349
+ /** @ignore Costruttore */
1350
+ constructor(est: EsTableComponent, utilities: UtilitiesHandler);
1351
+ /** Metodo che si occupa di gestire la grafica della tabella in base alle informazioni di ordinamento colonne e paginazione contenuti nel modello */
1352
+ reviewReportBindings(): void;
1353
+ /**
1354
+ * Data una AppSearch questo metodo genera la lista di th e td che si possono collegare al giro standard.
1355
+ * Se non ci fosse questo passaggio intermedio la gestione della modalità report sarebbe 100% custom,
1356
+ * come poi lo era prima che la facessi passare dal giro che fanno tutte le altre modalità
1357
+ *
1358
+ * @param {AppSearch<any>} view View in modalità report contenente le informazioni sulle colonne
1359
+ *
1360
+ * @returns {{ ths: EsThDirective[], tds: EsTdDirective[] }} Lista di direttive per gli header e per il body
1361
+ */
1362
+ generateThsAndTdsFromView(view: AppSearch<any>): {
1363
+ ths: EsThDirective[];
1364
+ tds: EsTdDirective[];
1365
+ };
1366
+ }
1367
+
1368
+ /** Classe che gestisce le selezioni degli oggetti */
1369
+ declare class SelectionHandler {
1370
+ private est;
1371
+ private rgHandler;
1372
+ /** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via hash*/
1373
+ private itemsCache;
1374
+ /** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via hash */
1375
+ private groupsCache;
1376
+ /** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
1377
+ private exclusionsCache;
1378
+ /** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
1379
+ private group_exclusionsCache;
1380
+ /** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via indice*/
1381
+ private i_itemsCache;
1382
+ /** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via indice */
1383
+ private i_groupsCache;
1384
+ /** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
1385
+ private i_exclusionsCache;
1386
+ /** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
1387
+ private i_group_exclusionsCache;
1388
+ /** Ultima cella selezionata singolarmente */
1389
+ private lastSingleSelection;
1390
+ /** @ignore Costruttore */
1391
+ constructor(est: EsTableComponent, rgHandler: RowGroupingHandler);
1392
+ /** Ripulisce le cache di selezione */
1393
+ clearSelectionCaches(): void;
1394
+ /**
1395
+ * Valuta quali elementi devono essere marcati come selezionati nella vista attuale. Si basa sull'oggetto **selection** interno all'AppSearch
1396
+ *
1397
+ * @param {any[]} items Oggetti di cui valutare la selezione
1398
+ * @param {ItemsSelection<any>} selectionItem Oggetti di selezione derivante dalla view o dall'oggetto per Array
1399
+ */
1400
+ evaluateSelection(items: any[], selectionItem: ItemsSelection<any>): void;
1401
+ /**
1402
+ * Precompila le informazioni sullo stato di selezione tutto a false per le celle della tabella
1403
+ *
1404
+ * @param {any[]} items Oggetti attualmente bindati sulla tabella
1405
+ * @param {EsThDirective[]} ths Colonne su cui gli oggetti sono bindati
1406
+ */
1407
+ evaluateSingleCellSelection(items: any[], ths: EsThDirective[], dyn: EsTableColumnsDefinition[]): void;
1408
+ /** @ignore */
1409
+ private fillSelectionStatusByDynamicColumns;
1410
+ /** @ignore */
1411
+ private fillSelectionStatusByEsThs;
1412
+ /**
1413
+ * Implementazione agnostica della valutazione delle selezioni degli oggetti. Richiede gli oggetti della vista attuale e l'itemSelector
1414
+ *
1415
+ * @param {any[]} items Oggetti di cui aggiornare lo stato di selezione
1416
+ * @param {ItemsSelection<any>} selectionItem Oggetto contenente lo stato attuale di selezione
1417
+ */
1418
+ private handleSelectionEvaluation;
1419
+ /**
1420
+ * Dato un oggetto trova la cella di cache in cui è registrato e aggiorna il contenuto
1421
+ *
1422
+ * @param {any} item Oggetto da aggiornare
1423
+ */
1424
+ private rehidrateCache;
1425
+ /**
1426
+ * Dato un gruppo controlla ricorsivamente l'albero di cui fa parte se c'è stata una inclusione o esclusione diretta
1427
+ *
1428
+ * @param {any} grp Gruppo da controllare
1429
+ *
1430
+ * @returns {'none' | 'excluded' | 'included'}
1431
+ * 'none' se non ci sono informazioni su inclusioni o esclusioni
1432
+ * 'included' se il gruppo controllato è stato incluso in maniera esplicita dall'albero dei gruppi padri
1433
+ * 'excluded' se il gruppo controllato è stato escluso in maniera esplicita dall'albero dei gruppi padri
1434
+ */
1435
+ private parentTreeStatus;
1436
+ /**
1437
+ * Helper per gestire la selezione di N elementi utilizzando la Cache di selezione ed eventualmente aggiornando il concetto di "all selection"
1438
+ *
1439
+ * Vunziona sia in modalità Array che in modalità View Semplice o View Avanzata (con le Custom Cells)
1440
+ *
1441
+ * @param {any[]} items Oggetti da selezionare o deselezionare
1442
+ * @param {boolean} forcedVal Valore forzato di check da assegnare agli oggetti
1443
+ * @param {boolean} globalCheck Valore del check globale
1444
+ *
1445
+ * @returns {ItemsSelection<any>} Oggetto di selezione aggiornato con le informazioni sull'ultima operazione effettuata
1446
+ */
1447
+ handleItemsSelection(items: any[], forcedVal?: boolean, globalCheck?: boolean): ItemsSelection<any>;
1448
+ /**
1449
+ * Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
1450
+ *
1451
+ * Logica semplificata rispetto all'originale **performSelectionOperations** per lavorare in una modalità in cui tutti gli elementi sono caricati (**ArrayGrouping()** = true)
1452
+ */
1453
+ private performSimpleSelectionOperations;
1454
+ /**
1455
+ * Helper per selezionare un gruppo e, ricorsivamente, se tutti i gruppi sottostanti al parent sono selezionati, selezionare i gruppi padri
1456
+ *
1457
+ * @param {any} group Gruppo da selezionare
1458
+ */
1459
+ private selectGroup;
1460
+ /**
1461
+ * Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
1462
+ *
1463
+ * La logica di questa funzione è nata essenzialmente da spam di trial & error ed è stata testata solo fino a due livelli di raggruppamento,
1464
+ * qualsiasi cosa vada oltre non è 100% detto che funzioni...
1465
+ */
1466
+ private performSelectionOperations;
1467
+ /** Helper per evitare di riscrivere ogni santa volta array.splice(array.indexof(item), 1); */
1468
+ private removeItem;
1469
+ /** Helper per evitare di riscrivere ogni santa volta array.push(item); e la gestione della */
1470
+ private addItem;
1471
+ /**
1472
+ * Ottiene il trittico di selezione, cioè l'array degli oggetti che si vuole manipolare e le due cache collegate ad esso
1473
+ *
1474
+ * @param {'group' | 'item' | 'group_exclusion' | 'exclusion'} subject Oggetto logico desiderato su cui effettuare le operazioni successive
1475
+ * @param {ItemsSelection<any>} base Selettore di base
1476
+ *
1477
+ * @returns {CacheTriptic} Trittico di selezione
1478
+ */
1479
+ private getTriptic;
1480
+ /**
1481
+ * Dato un oggetto restituisce il gruppo di cui fa parte, se esiste
1482
+ *
1483
+ * @param {any} item Oggetto di cui trovare il gruppo
1484
+ */
1485
+ private getItemGroup;
1486
+ /**
1487
+ * Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
1488
+ *
1489
+ * @param {any} group Chiave da cercare
1490
+ * @param {'selected' | 'unselected'} status Stato degli elementi, selezionati o no
1491
+ * @param {boolean} recursive Indica se cercare solo gli elementi direttamente collegati o se prendere anche quelli dei gruppi figli
1492
+ *
1493
+ * @returns {any[]} Oggetti di tipo **_item** facenti capo alla chiave **groupKey**
1494
+ */
1495
+ private getGroupItems;
1496
+ /**
1497
+ * Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
1498
+ *
1499
+ * @param {any} group Gruppo di cui cercare il parent
1500
+ *
1501
+ * @returns {any} Oggetto di tipo **_group** rappresentante il parent del **group** attuale
1502
+ */
1503
+ private getGroupParent;
1504
+ /**
1505
+ * Data la chiave di un gruppo restituisce tutti i gruppi figli
1506
+ *
1507
+ * @param {string} group Gruppo che rappresenta il padre di cui cercare i figli
1508
+ * @param {'selected' | 'unselected'} status Stato dei gruppi, selezionati o no
1509
+ * @param {boolean} recursive Indica se cercare solo i gruppi direttamente collegati o se prendere anche quelli dei gruppi figli
1510
+ *
1511
+ * @returns {any[]} Oggetti di tipo **_group** facenti capo alla chiave **groupKey**
1512
+ */
1513
+ private getGroupChildGroups;
1514
+ /** Finalizza le informazioni di selezione del **ItemsSelection** corrente */
1515
+ private finalizeSelectionInformations;
1516
+ /** Compatta una cache di indici */
1517
+ private compactIndexMap;
1518
+ /**
1519
+ * Valuta la quantità di oggetti che sono stati selezionati al termine di un evento di selezione
1520
+ *
1521
+ * @returns {number} Numero di oggetti selezionati
1522
+ */
1523
+ private evaluateSelected;
1524
+ /** Gestisce il comando di "Seleziona tutto in tutte le pagine" o il suo contrario, cioè "Reimposta selezione" */
1525
+ selectAllOrResetSelection(): void;
1526
+ /**
1527
+ * @TODO Spostare in SelectionHandler
1528
+ *
1529
+ * Registra la selezione singola su una cella sulla combo di comandi "CTRL + Click".
1530
+ * Se viene premuto anche il tasto Shift viene creato un range di selezione il cui status di "selezionato" viene salvato nella
1531
+ * matrice virtuale **selectionStatus**
1532
+ *
1533
+ * @param {any} event Evento Javascript di Click
1534
+ * @param {number} row Indice della riga. Non è l'indice vero e proprio ma è l'ordinale (.ordinal) dell'oggetto bindato su quella riga
1535
+ * @param {number} column Indice della colonna preso banalmente dall'ngIf sui thElement
1536
+ * @param {{ row: number, column: number }} firstSelectionOverride Permette di overridare il primo elemento selezionato
1537
+ */
1538
+ singleCellSelection(event: {
1539
+ view: any;
1540
+ range: boolean;
1541
+ }, row: number, column: number, firstSelectionOverride?: {
1542
+ row: number;
1543
+ column: number;
1544
+ }): void;
1545
+ setSelectionStatusBorders(from: {
1546
+ row: number;
1547
+ column: number;
1548
+ }, to: {
1549
+ row: number;
1550
+ column: number;
1551
+ }): void;
1552
+ /**
1553
+ * Helper per ripulire lo stato di selezione delle singole celle della tabella, ad esclusione di una singola coordinata
1554
+ *
1555
+ * @param {{row: number, column: number}} exclusion Coordinata da escludere nella pulizia
1556
+ */
1557
+ clearSelectionStatusExcluding(exclusion?: {
1558
+ row: number;
1559
+ column: number;
1560
+ }): void;
1561
+ /**
1562
+ * Helper che esamina la matrice **selectionStatus** e ne estrappola gli elementi selezionati in una comoda matrice
1563
+ *
1564
+ * @returns {{ value: string, type: InputType, val_setter: Function }[][]} Matrice di elementi selezionati con la loro informazione sul tipo
1565
+ */
1566
+ getSelectionStatusSelection(): ItemPropEditableReference[][];
1567
+ /**
1568
+ * Data la matrice di selezione generata dal metodo **getSelectionStatusSelection** genera la strigna vera e propria da copiare nella Clipboard
1569
+ *
1570
+ * @param {{ value: string, type: InputType }[][]} sel Matrice di selezione con valori e tipi dei dati selezionati
1571
+ *
1572
+ * @returns {string} Stringa da copiare nella clipboard, le stringhe vengono wrappate fra doppi apici e fra un valore e l'altro viene messo un tab
1573
+ * in modo che siano compatibili anche con la copia su Excel
1574
+ */
1575
+ getClipbardTextFromSelection(sel: {
1576
+ value: string;
1577
+ type: InputType | string;
1578
+ }[][]): string;
1579
+ /**
1580
+ * Ottiene la rappresentazione stringa di un valore dato un tipo
1581
+ *
1582
+ * @param {{ value: string, type: InputType }} valType Oggetto Valore - Tipo da cui estrapolare la rappresentazione del dato in stringa
1583
+ *
1584
+ * @returns {string} Valore convertito in stringa in base al tipo
1585
+ */
1586
+ getValueByType(valType: {
1587
+ value: string;
1588
+ type: InputType | string;
1589
+ }): string;
1590
+ }
1591
+
1592
+ /** Classe che fornisce dei metodi di estensione in grado di riconoscere e dispatchare l'evento copia e incolla lanciato su una pagina web */
1593
+ declare class CopyPasteDetector {
1594
+ /** Dispatcher del Copia */
1595
+ OnCopy: Subject<void>;
1596
+ /** Dispatcher dell' Incolla */
1597
+ OnPaste: Subject<void>;
1598
+ /** Riferimento all'estable attiva per evitare di spammare copia incolla dove non servono */
1599
+ ActiveEstReference: any;
1600
+ /** @ignore */
1601
+ constructor();
1602
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CopyPasteDetector, never>;
1603
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CopyPasteDetector>;
1604
+ }
1605
+
1606
+ /** Classe che fornisce dei metodi di estensione in grado di riconoscere e dispatchare l'evento copia e incolla lanciato su una pagina web */
1607
+ declare class Logger {
1608
+ debugMode: boolean;
1609
+ /** @ignore */
1610
+ constructor(debugMode: boolean);
1611
+ log(text: string): void;
1612
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Logger, [{ optional: true; }]>;
1613
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<Logger>;
1614
+ }
1615
+
1616
+ /** Componente che permette di rappresentare una griglia di valori */
1617
+ declare class EsTableComponent implements ControlValueAccessor {
1618
+ private _zone;
1619
+ ngControl: NgControl;
1620
+ private prefService;
1621
+ private deafults;
1622
+ exportGlobalAcl: string;
1623
+ lc: LocalizationService;
1624
+ cdr: ChangeDetectorRef;
1625
+ private utilities_H;
1626
+ utiExts: UtilityService;
1627
+ private expExts;
1628
+ dateExts: DateService;
1629
+ private msgExts;
1630
+ private copyPasteDetector;
1631
+ private clipboardService;
1632
+ private logger;
1633
+ private emb;
1634
+ private rendererRef;
1635
+ private _destroyed$;
1636
+ /** @ignore */ export_H: ExportHandler;
1637
+ /** @ignore */ columnMetadata_H: ColumnMetadataHandler;
1638
+ /** @ignore */ dynamicMode_H: DynamicModeHandler;
1639
+ /** @ignore */ hierarchyMode_H: HierarchyModeHandler;
1640
+ /** @ignore */ items_H: ItemsHandler;
1641
+ /** @ignore */ reportMode_H: ReportModeHandler;
1642
+ /** @ignore */ rowGrouping_H: RowGroupingHandler;
1643
+ /** @ignore */ selection_H: SelectionHandler;
1644
+ /** @ignore */ private copySubscription;
1645
+ /** @ignore */ private pasteSubscription;
1646
+ /** @ignore */
1647
+ constructor(_zone: NgZone, ngControl: NgControl, prefService: PreferencesService, deafults: EsTableDefaultable, exportGlobalAcl: string, lc: LocalizationService, cdr: ChangeDetectorRef, utilities_H: UtilitiesHandler, utiExts: UtilityService, expExts: ExportService, dateExts: DateService, msgExts: MessageService, copyPasteDetector: CopyPasteDetector, clipboardService: ClipboardService, logger: Logger, emb: AppEmbeddingExtensions, rendererRef: Renderer2);
1648
+ /** Subject utilizzato internamente lato EsTable per causare il Focus lato componente di Input */
1649
+ FocusSubject: Subject<void>;
1650
+ /** Timer che verrà impostato a **doubleClickBufferMs** per capire se è stato effettuato un click singolo o un doubleclick */
1651
+ private cellDbClickTimer;
1652
+ /** Se vengono effettuati 2 click a distanza inferiore a questi Millisecondi viene considerato un doppio click */
1653
+ private doubleClickBufferMs;
1654
+ /** Tiene da conto l'ultimo elemento selezionato in modo da poter effettuare il SHIFT+CLICK */
1655
+ private lastSelected;
1656
+ /** View finale su cui bindarsi lato Frontend, il tipo può essere IAppSearch<any> (per la **viewMode**), any[] (per l'**arrayMode**) */
1657
+ View: any;
1658
+ /** Modello da cui l'es-table mostra i pulsanti di paginazione in basso a destra */
1659
+ arrayPulsanti: WritableSignal<{
1660
+ val: number;
1661
+ cssClass: string;
1662
+ }[]>;
1663
+ /** Indica se l'es-table deve mostrare il check globale nell'header per fare il "seleziona tutto" */
1664
+ globalCheck: _angular_core.ModelSignal<boolean>;
1665
+ /** Conteggio interno per il numero di elementi selezionati */
1666
+ selectedObjects: WritableSignal<number>;
1667
+ /** Indica se è possibile effettuare una selezione massiva */
1668
+ canSelectAll: WritableSignal<boolean>;
1669
+ /** Indica se il componente sta gestendo un IAppSearch<any> */
1670
+ viewMode: WritableSignal<boolean>;
1671
+ /** Indica se il componente sta gestendo un any[] */
1672
+ arrayMode: WritableSignal<boolean>;
1673
+ /**
1674
+ * Contenitore degli elementi da listare lato interfaccia dopo tutte le elaborazioni del caso,
1675
+ * generalmente non sono altro che tutti gli oggetti da presentare con in più l'hash calcolato per identificare 1 oggetto con la propria riga
1676
+ */
1677
+ boundSource: WritableSignal<any[]>;
1678
+ /** Stessa cosa della **boundSource**, utilizzata come appoggio temporaneo interno */
1679
+ TMPBoundSource: any[];
1680
+ /** @deprecated "Fetta" di oggetti utilizzata nell'endless scroll, ogni elemento di questo array è un blocchetto di 100 elementi */
1681
+ boundSubSources: any[];
1682
+ /** @deprecated Questa funge da indicatore per gli slice inseriti, la lunghezza dovrebbe essere corrispondente a **boundSubSources** */
1683
+ addedSlices: number[];
1684
+ /** Variabile che identifica il valore del "seleziona Tutto" nella paginazione */
1685
+ defaultAllPageOverride: number;
1686
+ /** Serve per tenere in memoria il conteggio precedente e recuperarlo in caso diventi -2 (verificare con Ale perché la logica del -2) */
1687
+ previousCount: number;
1688
+ /** Indica se utilizzare il sistema di autoupdate, cioè un trigger time-izzato in alto a destra della tabella che ripete le ricerche ogni X **seconds** */
1689
+ autoUpdate: _angular_core.ModelSignal<boolean>;
1690
+ /** Numero di secondi da fare trascorrere fra una ricerca e l'altra */
1691
+ seconds: _angular_core.ModelSignal<string>;
1692
+ /** Riferimento all'Interval che viene generato se **autoUpdate** è impostata a true in modo da poterlo ripulire */
1693
+ updateTimer: any;
1694
+ /** Impostata a true ogni volta che viene avviata una ricerca, e a false ogni volta che un nuovo valore viene ricevuto */
1695
+ researchInProgress: _angular_core.ModelSignal<boolean>;
1696
+ /** Modello di appoggio temporaneo per i **RowTDs** */
1697
+ TMPRowTDs: {
1698
+ [context: string]: WritableSignal<TdElement>[];
1699
+ };
1700
+ /** Modello rappresentante un dizionario di righe della tabella, con chiave l'hash e valore la lista di celle */
1701
+ RowTDs: {
1702
+ [context: string]: WritableSignal<TdElement>[];
1703
+ };
1704
+ /** Indica se **RowTDs** è un oggetto vuoto o meno */
1705
+ EmptyRowTds: WritableSignal<boolean>;
1706
+ /** Modello di appoggio temporaneo per i **RowTHs** */
1707
+ TMPRowTHs: ThElement[];
1708
+ /** Modello rappresentante un singolo th della tabella, generato in base alle configurazioni e agli oggetti ricevuti */
1709
+ RowTHs: ThElement[];
1710
+ /** Modello di appoggio temporaneo per i **RowThGroups** */
1711
+ TMPRowThGroups: ThGroup[][];
1712
+ /** Modello rappresentante un singolo header group della tabella. Questa lista è già ordinata e pronta per essere utilizzata in ngFor */
1713
+ RowThGroups: ThGroup[][];
1714
+ /**
1715
+ * Lista dei contesti. Un contesto non è altro che un hash particolare calcolato su un oggetto che identifica univocamente tale oggetto.
1716
+ *
1717
+ * Ognuno di questi contesti rappresenterà a sua volta, univocamente, una riga all'interno della tabella
1718
+ */
1719
+ RowContexts: any[];
1720
+ /** Direttive di ordinamento delle colonne (non ordinamento dei dati ma delle colonne in se) */
1721
+ OrderDirectives: string[];
1722
+ /** Codice dell'ultimo oggetto solezionato */
1723
+ lastSelectedItemID: any;
1724
+ /**
1725
+ * Decide se utilizzare o meno le CustomCells. Impostandolo a **true** l'es-table diventa in grado di gestire nativamente:
1726
+ *
1727
+ * 1) Ordinamento e visibilità delle colonne
1728
+ *
1729
+ * 2) Ordinamento dei dati
1730
+ *
1731
+ * 3) Modalità Gerarchica
1732
+ *
1733
+ * ecc...
1734
+ * viene dedotto dal sistema in automatico
1735
+ */
1736
+ UseCustomCells: WritableSignal<boolean>;
1737
+ /**
1738
+ * Indica se oltre alle colonne dinamiche specifiche di un tipo di oggetto ci sono anche colonne dinamiche aggiunte dall'utente
1739
+ *
1740
+ * Es. una colonna in cui mostrare sempre un iconcina
1741
+ */
1742
+ UserDefinedDynamicCols: WritableSignal<boolean>;
1743
+ /** Indica che questo è il primo Bind della tabella, viene settato a false non appena il primo bind viene terminato con successo */
1744
+ FirstBind: WritableSignal<boolean>;
1745
+ /** Lista di colonne che si possono visualizzare/ordinare fra di loro */
1746
+ ColumnsList: EsTableColumn[];
1747
+ /** Variabile d'appoggio usata dalla dialog di selezione/nascondimento, per evitare di danneggiare **ColumnsList** in caso di modifiche poi annullate */
1748
+ TMPColumnsList: EsTableColumn[];
1749
+ /** Valore del check globale di visibilità valido per tutte le colonne in **ColumnsList** */
1750
+ globalColVisCheck: _angular_core.ModelSignal<boolean>;
1751
+ private setUnderlyingSignal;
1752
+ /** Query per recuperare tutte le direttive per gli editor custom delle celle */
1753
+ EsTdEditorDirectives: QueryList<EsTdEditorDirective>;
1754
+ /** Query per recuperare tutte le nuove direttive assegnati a direttiva (Per la modalità dinamica dell'es-table) */
1755
+ EsTdsDirective: QueryList<EsTdDirective>;
1756
+ /** Query per recuperare tutti gli es-td assegnati a direttiva (Per la modalità dinamica dell'es-table) */
1757
+ EsThsDirective: QueryList<EsThDirective>;
1758
+ /** Query per recuperare tutti gli es-td e gli es-th assegnati da parte di un provider (per integrare in maniera dinamica i th e td esistenti) */
1759
+ ThTdProvider: QueryList<ThTdProvider>;
1760
+ /** Permette di collegare un provider senza passare dalla proiezione */
1761
+ EsThTdProvider: ThTdProvider;
1762
+ /** Query per recuperare le informazioni del body (punto della tabella dove vengono mostrate le righe) */
1763
+ bodyRef: any;
1764
+ /** Query per recuperare le informazioni dell'header (punto della tabella dove vengono mostrate le intestazioni delle righe) */
1765
+ headerRef: any;
1766
+ /** @deprecated Query per recuperare le informazioni sul raggruppamento degli header */
1767
+ headerGroupRef: any;
1768
+ /** @deprecated Query per recuperare le informazioni sul raggruppamento di secondo livello degli header */
1769
+ secondaryHeaderGroupRef: any;
1770
+ /** Query per recuperare il campo di Input attuale. Dopo un doppio click lo becco e lo focusso appena termina la change detection */
1771
+ inputField: ElementRef;
1772
+ /** Opzioni extra che devono apparire nel Menù contestuale in alto a destra, richiamato dai 3 pallini verticali */
1773
+ CornerMenuOptions: _angular_core.InputSignal<CornerMenuOption[]>;
1774
+ /** Indica se dev'essere possibile effettuare il resize delle colonne */
1775
+ _ColumnsResizable: _angular_core.InputSignal<boolean>;
1776
+ ColumnsResizable: WritableSignal<boolean>;
1777
+ /** Indica se dev'essere possibile effettuare il pinning delle colonne */
1778
+ _ColumnsPinnable: _angular_core.InputSignal<boolean>;
1779
+ ColumnsPinnable: WritableSignal<boolean>;
1780
+ /** Indica se dev'essere disponibile il sistema di aggiornamento automatico */
1781
+ _AutoUpdate: _angular_core.InputSignal<boolean>;
1782
+ AutoUpdate: WritableSignal<boolean>;
1783
+ /** Indica l'altezza cablata che deve assumere la tabella. Es: "100px" | "100%" ... */
1784
+ Height: _angular_core.InputSignal<string>;
1785
+ /** Indica il colore di sfondo dello spazio vuoto (non ricoperto da dati). Particolarmente utile da impostare in caso di **Height** diverso da null */
1786
+ EmptySpaceBackgroundColor: _angular_core.InputSignal<string>;
1787
+ /** Indica se dev'essere l'estable a gestire la ricerca, anche la prima. **/
1788
+ EsTableHandledSearch: _angular_core.InputSignal<boolean>;
1789
+ /** Permette di impostare l'altezza massima della tabella. Se null la dimensione si adatta al numero di elementi attualmente in visualizzazione */
1790
+ MaxHeight: _angular_core.InputSignal<number>;
1791
+ /** Classi da applicare al contenitore della tabella */
1792
+ _ContainerClass: _angular_core.InputSignal<string>;
1793
+ ContainerClass: WritableSignal<string>;
1794
+ /** Permette o meno l'export in formato XLSX */
1795
+ XLSXExport: _angular_core.InputSignal<boolean>;
1796
+ /** Permette o meno l'export in formato CSV */
1797
+ CSVExport: _angular_core.InputSignal<boolean>;
1798
+ /** Permette di visualizzare o meno l'opzione di paginazione "Tutti" */
1799
+ _AllSearch: _angular_core.InputSignal<boolean>;
1800
+ AllSearch: WritableSignal<boolean>;
1801
+ /** 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 */
1802
+ HighCellDensity: _angular_core.InputSignal<boolean>;
1803
+ /** Abilita o meno la possibilità di selezionare oggetti */
1804
+ _Selection: _angular_core.InputSignal<boolean>;
1805
+ Selection: WritableSignal<boolean>;
1806
+ /** Mostra o meno un messaggio di Loading al primo caricamento della tabella */
1807
+ ShowLoadingOnBootstrap: _angular_core.InputSignal<boolean>;
1808
+ /** Se impostato a **true** aggiunge una colonna con pulsante di eliminazione per effettuare l'elimina dell'oggetto relativo */
1809
+ Removal: _angular_core.InputSignal<boolean>;
1810
+ /**
1811
+ * Condizione che nasconde l'icona di eliminazione inserita impostando **Removal** a true qualora la condizione non venisse rispettata
1812
+ *
1813
+ * Come condizione si considera un semplice campo su cui effettuare un controllo booleano, come ad esempio "canremove"
1814
+ */
1815
+ RemovalCondition: _angular_core.InputSignal<string>;
1816
+ /** Indica se abilitare la possibilità di esportare la vista dati attuale */
1817
+ _Export: _angular_core.InputSignal<boolean>;
1818
+ Export: WritableSignal<boolean>;
1819
+ /** Indica se permettere la selezione multipla Windows-like cliccando un oggetto e facendo poi Shift + click su un oggetto successivo */
1820
+ _ShiftClick: _angular_core.InputSignal<boolean>;
1821
+ ShiftClick: WritableSignal<boolean>;
1822
+ /** Indica il testo che va a sostituire "Oggetti Visualizzati" in caso si stia facendo qualcosa di custom */
1823
+ CountLabel: _angular_core.InputSignal<string>;
1824
+ /** Indica se nascondere o mostrare il componente di paginazione */
1825
+ _HidePaging: _angular_core.InputSignal<boolean>;
1826
+ HidePaging: WritableSignal<boolean>;
1827
+ /** Indica se nascondere o mostrare il conteggio degli elementi trovati */
1828
+ _HidePagingCount: _angular_core.InputSignal<boolean>;
1829
+ HidePagingCount: WritableSignal<boolean>;
1830
+ /** Indica se nascondere o mostrare i pulsanti di paginazione */
1831
+ _HidePagingButtons: _angular_core.InputSignal<boolean>;
1832
+ HidePagingButtons: WritableSignal<boolean>;
1833
+ /** Riferimento al ContextMenu (ngx-contextmenu) associato al click destro di uno o più elementi selezionati nella tabella */
1834
+ ContextMenu: ContextMenuComponent;
1835
+ /** Nome dell'esportazione generata da questa tabella */
1836
+ ExportFileName: _angular_core.InputSignal<string>;
1837
+ /** Classe (HTML) di default della tabella */
1838
+ _TableClass: _angular_core.InputSignal<string>;
1839
+ TableClass: WritableSignal<string>;
1840
+ /** Funzione da utilizzare in esportazione. Ha come parametro una callback con i dati completi da esportare (dato che di default la ricerca è paginata) */
1841
+ ExportFunction: (callback: (data: any[], type: Type<any>) => void, format: "CSV" | "XLSX") => void;
1842
+ /** Indica di esportare solo le colonne attualmente visibili della view */
1843
+ ExportOnlyVisibleColumns: _angular_core.InputSignal<boolean>;
1844
+ /** @deprecated Indica la presenza di raggruppamenti a livello di header */
1845
+ HasHeaderGroup: _angular_core.InputSignal<boolean>;
1846
+ /** @deprecated Indica la presenza di raggruppamenti a livello del raggruppamento precedentemente esistente, chiaramente è insensata senza **HasHeaderGroup** */
1847
+ HasSecondaryHeaderGroup: _angular_core.InputSignal<boolean>;
1848
+ /** Indica se nascondere gli Header della tabella */
1849
+ HeaderHidden: _angular_core.InputSignal<boolean>;
1850
+ /** Indica se nascondere il Body della tabella */
1851
+ BodyHidden: _angular_core.InputSignal<boolean>;
1852
+ /**
1853
+ * Indica se la selezione è temporaneamente disabilitata. Rispetto all'Input **Selection** che visivamente gestisce se ci sono o no gli input di selezione,
1854
+ * questo Input gestisce se questi input sono abilitati o meno
1855
+ */
1856
+ SelectionDisabled: _angular_core.InputSignal<boolean>;
1857
+ /**
1858
+ * Indica se forzare il sistema di selezione a gestire un elemento per volta.
1859
+ * Selezionare un'altra riga con una già selezionata applicherà la selezione alla nuova riga, rimuovendola dall'attuale
1860
+ */
1861
+ SingleSelection: _angular_core.InputSignal<boolean>;
1862
+ /** Callback che dato un oggetto resituisce l'eventuale classe da applicare alla riga collegata all'oggetto */
1863
+ RowClassAssigner: (item: any) => string;
1864
+ /** Permette di ordinare i dati in maniera discendente o ascendente */
1865
+ _OrderByColumn: _angular_core.InputSignal<boolean>;
1866
+ OrderByColumn: WritableSignal<boolean>;
1867
+ /** Permette di avere più direttive di ordinamento dei dati */
1868
+ MultipleOrderingDirectives: _angular_core.InputSignal<boolean>;
1869
+ /** Permette di nascondere le colonne in base alle selezioni effettuate dal Menù contestuale in alto a destra */
1870
+ _HiddenColumns: _angular_core.InputSignal<boolean>;
1871
+ HiddenColumns: WritableSignal<boolean>;
1872
+ /** Permette di riordinare le colonne in base alle impostazioni effettuate dal Menù contestuale in alto a destra */
1873
+ _ColumnsOrdering: _angular_core.InputSignal<boolean>;
1874
+ ColumnsOrdering: WritableSignal<boolean>;
1875
+ /** @deprecated Eventuale supporto alle ricerche applicate alla modalità Array */
1876
+ SearchView: _angular_core.InputSignal<AppSearch<any>>;
1877
+ /** Abilita o disabilita il sistema che permette di selezionare tutti gli elementi nella vista */
1878
+ _SelectAll: _angular_core.InputSignal<boolean>;
1879
+ SelectAll: WritableSignal<boolean>;
1880
+ /** Simula la paginazione anche per le tabelle che funzionano in modalità Array */
1881
+ _UseArrayModePaging: _angular_core.InputSignal<boolean>;
1882
+ UseArrayModePaging: WritableSignal<boolean>;
1883
+ /** Definizione di colonne dinamche per la modalità, appunto, dinamica */
1884
+ _DynamicRowColumnsDefinition: _angular_core.InputSignal<EsTableColumnsDefinition[]>;
1885
+ DynamicRowColumnsDefinition: WritableSignal<EsTableColumnsDefinition[]>;
1886
+ /** Indica operazioni dinamiche generiche che possono essere effettuate per riga. Appaiono come colonne extra sul lato sinistro della tabella */
1887
+ DynamicOperations: _angular_core.InputSignal<EsTableOperationDefinition[]>;
1888
+ /** Indica se visualizzare i dati in maniera gerarchica */
1889
+ Hierarchy: _angular_core.InputSignal<boolean>;
1890
+ /** Nome della proprietà che contiene l'ID del padre. Da utilizzare se **Hierarchy** è impostato */
1891
+ _ParentKey: _angular_core.InputSignal<string>;
1892
+ ParentKey: WritableSignal<string>;
1893
+ /** Nome della proprietà che contiene l'ID dell'oggetto attuale. Da utilizzare se **Hierarchy** è impostato */
1894
+ _OwnKey: _angular_core.InputSignal<string>;
1895
+ OwnKey: WritableSignal<string>;
1896
+ /** Indica se lasciare alla tabella l'onere di ordinare gli oggetto che arrivano in base a gerarchia / id */
1897
+ _AutoSortHierarchy: _angular_core.InputSignal<boolean>;
1898
+ AutoSortHierarchy: WritableSignal<boolean>;
1899
+ /** Indica se partire con un albero espanso. Da utilizzare se **Hierarchy** è impostato */
1900
+ StartsExpanded: _angular_core.InputSignal<boolean>;
1901
+ /** Indica se effettuare il salvataggio delle preferenze di ricerca */
1902
+ _SavePreferences: _angular_core.InputSignal<boolean>;
1903
+ SavePreferences: WritableSignal<boolean>;
1904
+ /** Allineamento di default per celle e headers */
1905
+ _DefaultAlignment: _angular_core.InputSignal<"Left" | "Center" | "Right">;
1906
+ DefaultAlignment: WritableSignal<"Left" | "Center" | "Right">;
1907
+ /** Indica dove visualizzare le informazioni di paginazione, se sopra, sotto o in entrambi */
1908
+ _PagingStyle: _angular_core.InputSignal<"top" | "bottom" | "both">;
1909
+ PagingStyle: WritableSignal<"top" | "bottom" | "both">;
1910
+ /** Indica dove visualizzare le informazioni di paginazione, se sopra, sotto o in entrambi */
1911
+ _RowGroupingPagingStyle: _angular_core.InputSignal<"left" | "right">;
1912
+ RowGroupingPagingStyle: WritableSignal<"left" | "right">;
1913
+ /** Qualora per qualsiasi motivo non venisse usato **items** dell'AppSearch questo Input indica qual è il nome della proprietà da utilizzare */
1914
+ ItemSourceProperty: _angular_core.InputSignal<string>;
1915
+ /** Indica se utilizzare la cache di selezione che permette di mantenere gli stati di selezione dei vari oggetti navigando da una pagina all'altra */
1916
+ _UseSelectionCache: _angular_core.InputSignal<boolean>;
1917
+ UseSelectionCache: WritableSignal<boolean>;
1918
+ /** Permette di decidere se, in modalità raggruppamento, mostrare o meno il valore delle colonne di gruppo negli oggetti finali. Di default sono nascosti */
1919
+ _ShowItemGroupsColumns: _angular_core.InputSignal<boolean>;
1920
+ ShowItemGroupsColumns: WritableSignal<boolean>;
1921
+ /** Indica che tutti i campi che definiscono le modalità di modifica campo possono essere modificati in base alle impostazioni */
1922
+ Editable: _angular_core.InputSignal<boolean>;
1923
+ /** Indica se è possibile effettuare selezioni a range per poi farci eventualmente copia incolla */
1924
+ RangeSelection: _angular_core.InputSignal<boolean>;
1925
+ /** Indica il numero di millisecondi per cui debouncare il writeValue per la modalità **EsTableHandledSearch** */
1926
+ SearchThrottle: _angular_core.InputSignal<number>;
1927
+ /** Evento che viene richiamato al cambio di oridnamento di una colonna */
1928
+ onOrderChanged: EventEmitter<AppOrdering>;
1929
+ /**
1930
+ * Evento che viene richiamato quando l'es-table ritiene sia necessario ri-effettuare la ricerca.
1931
+ * Il booleano dell'evento indica se viene suggerito di resettare la pagina o meno.
1932
+ *
1933
+ * 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,
1934
+ * in quel caso l'applicazione ricevente dovrà onorare la richiesta spedendo al backand l'oggetto di ricerca AS-IS
1935
+ *
1936
+ * il tipo dell'Emitter invece di essere [boolean | AppSearch<any>] è stato impostato a "any" per evitare problemi di retrocompatibilità
1937
+ */
1938
+ onSearchRequest: EventEmitter<any>;
1939
+ /** Evento che parte ad ogni modifica di "checkaggio" in forma di comodo array. Espone l'oggetto con lo stato di check attuale */
1940
+ onSelectionChanged: EventEmitter<ItemsSelection<any>>;
1941
+ /** Evento richiamato all'eliminazione di un oggetto */
1942
+ onRemoval: EventEmitter<any>;
1943
+ /** Evento richiamato all'annullamento di un'eliminazione */
1944
+ onAbortRemoval: EventEmitter<any>;
1945
+ /** Evento richiamato alla modifica dei modelli bindati */
1946
+ onModelChange: EventEmitter<EsTableModelChange[]>;
1947
+ /** Evento richiamato all'apertura del menù contestuale */
1948
+ onOpenContextMenu: EventEmitter<void>;
1949
+ /** Evento richiamato quando si clicca su un opzione definita nelle **CornerMenuOptions** */
1950
+ onCornerAction: EventEmitter<{
1951
+ id: string;
1952
+ estable: any;
1953
+ }>;
1954
+ /** Evento richiamato quando si clicca su un opzione definita nelle **DynamicOperations** */
1955
+ onDynamicOperation: EventEmitter<{
1956
+ id: string;
1957
+ item: any;
1958
+ }>;
1959
+ /** Elemento HTML da cliccare per l'esportazione */
1960
+ exportDownloader: ElementRef;
1961
+ /** Placeholder di menù contestuale per quando non ci sono opzioni nel placeholder "Vero" */
1962
+ tableEmptyMenu: ContextMenuComponent;
1963
+ /** Subscription sull'apertura del context menu da ripulire al destroy della classe */
1964
+ private ctxMenuSubscription;
1965
+ /** Pagina in visualizzazione (durante la paginazione in modalità Array) */
1966
+ arraymodePage: number;
1967
+ /** Numero di pagine (durante la paginazione in modalità Array) */
1968
+ arraymodePages: number;
1969
+ /** Oggetti per ogni pagina (durante la paginazione in modalità Array) */
1970
+ _ArraymodeItemsPerPage: _angular_core.InputSignal<number>;
1971
+ ArraymodeItemsPerPage: WritableSignal<number>;
1972
+ /** Oggetto di selezione per la modalità Array, che deve comportarsi come la controparte in modalità View */
1973
+ arraymodeSelection: ItemsSelection<any>;
1974
+ /** Colonne da visualizzare in modalità array */
1975
+ arrayColumns: string[];
1976
+ /** Ordine delle colonne da visualizzare in modalità array */
1977
+ arrayColumnOrdering: string[];
1978
+ /** Ordinamenti ASC-DESC sulle colonne in modalità array */
1979
+ arrayOrders: AppOrdering[];
1980
+ /**
1981
+ * Variabile che serve a gestire il momento in cui l'es-table aggiorna la paginazione (pulsanti ecc).
1982
+ * Essendo operazioni comunque costose le effettuo solo su binding esterni, non su rewrite generati internamente
1983
+ */
1984
+ private internalWriteCall;
1985
+ /**
1986
+ * Cache che conterrà tutte le ricerche effettuate su gruppi diversi dal primo e su elementi contenuti nei gruppi.
1987
+ * 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:
1988
+ *
1989
+ *
1990
+ * **Cambio ordinamento sul primo gruppo**: reload completo, non mi occupo di ripulire gli elementi bindati in alcun modo
1991
+ *
1992
+ * **Cambio ordinamento sulla colonna relativa all'N-esimo gruppo**: reload completo del contenuto dei gruppi precedenti, ripulendo precedentemente
1993
+ * tutti gli elementi con **_grouplevel** = N
1994
+ *
1995
+ * **Cambio ordinamento su una colonna non raggruppata**: reload completo per tutti i gruppi finali aperti, devo precedentemente ripulire tutti gli elementi con **_item** = true
1996
+ *
1997
+ * Altri eventi non dovrebbero rappresentare problemi:
1998
+ * - Selezione: non cambia nulla
1999
+ * - Paginazione: cambia a livello root quindi viene ricaricato tutto comunque, stesso vale per le paginazioni interne
2000
+ */
2001
+ groupSearchRequestsCache: {
2002
+ path: string;
2003
+ route: GroupRouteFragment[];
2004
+ view: AppSearch<any>;
2005
+ group_column: string;
2006
+ }[];
2007
+ /** Variabile d'appoggio per capire se c'è bisogno di ri-effettuare una ricerca o meno */
2008
+ private ResearchNeeded;
2009
+ /** Colonne visibili della vista attuale. Valorizzato di default al numero massimo di colonne supportate dalla tabella per le casistiche in assenza di custom cells */
2010
+ Columns: WritableSignal<{
2011
+ Visibile: number;
2012
+ VisibleUnpinned: number;
2013
+ Global: number;
2014
+ }>;
2015
+ /** In caso di Row Grouping qui viene salvata la vista principale dei gruppi base */
2016
+ MainGroupView: AppSearch<any>;
2017
+ /** 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" */
2018
+ BaseItemsCount: any;
2019
+ /** Indica se ci sono delle colonne pinnate e visibili. Serve per poter settare tutte le colonne prima che arrivino dati a pinned*/
2020
+ HasPinnedColumns: WritableSignal<boolean>;
2021
+ /** Larghezza calcolata del container delle colonne pinnate */
2022
+ PinnedContainerWidth: WritableSignal<number>;
2023
+ /** 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 */
2024
+ ArrayGrouping: WritableSignal<boolean>;
2025
+ /** Indica che l'es-table è basata sulle direttive (nuova modalità) */
2026
+ DirectivesBased: WritableSignal<boolean>;
2027
+ /** Indica lo stato di selezione per singola cella */
2028
+ selectionStatus: {
2029
+ [index: number]: {
2030
+ [index: number]: ItemPropEditableReference;
2031
+ };
2032
+ };
2033
+ /** Chiamata reale al writeValue dopo il passaggio di **SearchThrottle** millisecondi. Solo modalità EsTableHandledSearch */
2034
+ private callTimeout;
2035
+ /** Cache dei th piuttosto che ricalcolarseli di continuo */
2036
+ private thsCache;
2037
+ /** Indica quando la cache dei th è stata fillata almeno la prima volta */
2038
+ private thsCacheSet;
2039
+ /** Variabili da fillare nell'After Content Init poi da riutilizzare nell'internal post bound source */
2040
+ private EsTds;
2041
+ private EsThs;
2042
+ /**
2043
+ * Flag che, se **true**, per un giro di binding mantiene la visibilità impostata localmente, piuttosto che allineare alla View bindata.
2044
+ * Usata per modificare in maniera programmatica la visibilità delle colonne dal metodo **setHeaderVisibility**,
2045
+ *
2046
+ * Disclaimer: **NON MODIFICARE**
2047
+ **/
2048
+ useLocalVisibility: boolean;
2049
+ /** Opzioni di paginazione */
2050
+ PagerOptions: PagerInfos;
2051
+ /** @ignore */
2052
+ ngOnInit(): void;
2053
+ /** @ignore */
2054
+ ngAfterViewInit(): Promise<void>;
2055
+ /** @ignore */
2056
+ ngOnDestroy(): void;
2057
+ /** @ignore */
2058
+ registerOnChange(fn: any): void;
2059
+ /** @ignore */
2060
+ registerOnTouched(fn: any): void;
2061
+ /** @ignore */
2062
+ propagateChange: (_: any) => void;
2063
+ /** @ignore */
2064
+ changed(clearItems?: boolean): void;
2065
+ /** @ignore */
2066
+ writeValue(obj: any, throttle?: boolean): Promise<void>;
2067
+ /** Funzione di trackby per il body che dovrebbe evitare il 90% delle change detection */
2068
+ bodyTrackBy: (_: number, item: any) => any;
2069
+ /** Funzione di trackby generica per tutti gli oggetti che hanno il campo id */
2070
+ idTrackBy: (_: number, item: any) => any;
2071
+ /** Funzione di trackby generica per tutti gli oggetti che hanno il campo PropertyName */
2072
+ PropertyNameTrackBy: (_: number, item: any) => any;
2073
+ /** Funzione di trackby generica per tutti gli oggetti che hanno il campo ID */
2074
+ IDTrackBy: (_: number, item: any) => any;
2075
+ /** Funzione di trackby generica per tutti gli oggetti che hanno il campo ID e Order significativi */
2076
+ IDAndOrderTrackBy: (_: number, item: any) => string;
2077
+ /** Funzione di trackby generica per tutti gli oggetti che hanno il campo ID */
2078
+ valTrackBy: (_: number, item: any) => any;
2079
+ /**
2080
+ * Successivamente al bind del nuovo input questa funzione si occupa di finalizzare tutti i parametri di funzionamento dell'es-table
2081
+ * in base a Input - Modello, e qualsiasi altra cosa possa servire
2082
+ */
2083
+ private finalizeContext;
2084
+ /** Genera le informzioni di paginazione per la vista globale dell'es-table */
2085
+ private setupPagingInformations;
2086
+ /**
2087
+ * Metodo lanciato dopo che la sorgente dati è stata correttamente bindata, si occupa di ricalcolare tutto ciò che serve
2088
+ * all'es-table per renderizzare i valori da mostrare
2089
+ */
2090
+ private postBoundSourceCalculation;
2091
+ /** 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 */
2092
+ private internalPostBoundSource;
2093
+ /**
2094
+ * Effettua il binding degli oggetti pervenuti da questa chiamata con gli oggetti effettivamente da graficare
2095
+ *
2096
+ * @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**
2097
+ */
2098
+ private bindDisplayToLoadedItemsOrGroups;
2099
+ /** Metodo richiamato solo quando **TMPRowTDs** e **TMPRowTHs** sono completamente generati ed aggiustati. Serve per collegarli alle variabili usate lato binding HTML */
2100
+ private MoveTemporaryVariablesToRealOnes;
2101
+ /**
2102
+ * Metodo per capire se un oggetto è completamente vuoto
2103
+ *
2104
+ * @param {any} obj Oggetto da controllare
2105
+ *
2106
+ * @returns {boolean} **true** se l'oggetto è vuoto, **false** altrimenti
2107
+ */
2108
+ isEmpty(obj: any): boolean;
2109
+ /**
2110
+ * Permette di selezionare o deselezionare in maniera arbitraria degli oggetti
2111
+ *
2112
+ * @param {any[]} items Oggetti da selezionare o deselezionare
2113
+ * @param {boolean} select **true** per selezionarli, **false** per non toccarli
2114
+ */
2115
+ setSelectionStatus(items: any[], all: boolean, select: boolean, emit?: boolean): void;
2116
+ /**
2117
+ * Effettua un hard reset della selezione
2118
+ */
2119
+ resetSelection(emit?: boolean): void;
2120
+ /**
2121
+ * Metodo che gestisce il cambio di Ordinamento di una colonna
2122
+ *
2123
+ * @param {string} id ID della colonna il cui oridnamento è cambiato
2124
+ * @param {'DESC' | 'ASC'} order Nuovo ordine selezionato per la colonna
2125
+ */
2126
+ thOrderChanged(id: string, order?: 'DESC' | 'ASC'): void;
2127
+ /**
2128
+ * Metodo da chiamare ogni volta che si vuole dare evidenza all'esterno del bisogno di rieffettuare la ricerca
2129
+ *
2130
+ * @param {boolean} resetsPage Indica al listener che deve resettare il numero di pagina
2131
+ * @param {AppSearch<any>} viewOverride Override della view da emettere per questa ricerca
2132
+ */
2133
+ emitSearchRequest(resetsPage: boolean, viewOverride?: AppSearch<any>): void;
2134
+ /**
2135
+ * Partendo dagli **EsTds** bindati genera, all'interno del dizionario **TMPRowTDs** tutti i contesti dei vari oggetti.
2136
+ *
2137
+ * Vengono esclusi i TD "Interni" in quanto vengono generati dagli originali quindi includerli vorrebbe dire rieffettuare le operazioni due volte
2138
+ *
2139
+ * Costo: 2 scan EsThs, 1 scan EsTds
2140
+ *
2141
+ * @param {EsThDirective[]} ths Colonne della tabella
2142
+ * @param {EsTdDirective[]} tds Celle della tabella
2143
+ */
2144
+ private evaluateRowTds;
2145
+ /**
2146
+ * Partendo dagli **EsThs** bindati genera, all'interno del dizionario **TMPRowTHs** tutti i contesti dei vari oggetti.
2147
+ *
2148
+ * Vengono esclusi i TH "Interni" in quanto vengono generati dagli originali quindi includerli vorrebbe dire rieffettuare le operazioni due volte
2149
+ *
2150
+ * Costo: 1 scan EsThs + 1 scan ColumnsList
2151
+ *
2152
+ * @param {EsThDirective[]} ths Colonne della tabella
2153
+ */
2154
+ private evaluateRowThs;
2155
+ /**
2156
+ * Sposta la ricerca di una pagina in avanti (o indietro)
2157
+ *
2158
+ * @param {number} page Numero di pagine da aggiungere (o sottrarre, se negativo) alla pagina attuale
2159
+ * @param {any} pager Elemento di separazione su cui è effettuata la ricerca
2160
+ */
2161
+ addToPageGroup(page: number, pager: GroupPager): void;
2162
+ /**
2163
+ * Sposta la ricerca alla pagina specificata
2164
+ *
2165
+ * @param {number} page Pagina a cui navigare
2166
+ * @param {any} pager Elemento di separazione su cui è effettuata la ricerca
2167
+ */
2168
+ goToPageGroup(page: number, pager: GroupPager): void;
2169
+ /**
2170
+ * @TODO Spostare in SelectionHandler
2171
+ *
2172
+ * Gestisce i click sulla tabella solo per le righe a gruppo.
2173
+ * O rimuove gli elementi attualmente presenti o carica il contenuto del gruppo
2174
+ *
2175
+ * @param {any} group Gruppo bindato su cui si è effettuato il click
2176
+ *
2177
+ * @returns {boolean} **true** se l'operaizone è andata a buon fine, **false** altrimenti
2178
+ */
2179
+ handleGroupClick(group: Group): boolean;
2180
+ /**
2181
+ * Gestisce la selezione globale degli oggetti, sia per pagina che a livello di **SelectAll**
2182
+ *
2183
+ * @param {boolean} forcedVal Valore forzato di check da assegnare agli oggetti
2184
+ */
2185
+ globalCheckChanged(forcedVal?: boolean): void;
2186
+ /**
2187
+ * @TODO Spostare in SelectionHandler
2188
+ *
2189
+ * Gestisce i click sulla tabella, gestendo eventualmente anche gli Shift + Click per selezionare un range di oggetti
2190
+ *
2191
+ * @param {any} event Evento nativo HTML del click
2192
+ * @param {any} item Oggetto bindato su cui si è effettuato il click
2193
+ *
2194
+ * @returns {boolean} **true** se l'operaizone è andata a buon fine, **false** altrimenti
2195
+ */
2196
+ handleClick(event: any, item: any): boolean;
2197
+ /**
2198
+ * Sposta la ricerca di una pagina in avanti (o indeitro)
2199
+ *
2200
+ * @param {number} page Numero di pagine da aggiungere (o sottrarre, se negativo) alla pagina attuale
2201
+ */
2202
+ addToPage(page: number): void;
2203
+ /**
2204
+ * Sposta la ricerca alla pagina specificata
2205
+ *
2206
+ * @param {number} page Pagina a cui navigare
2207
+ */
2208
+ goToPage(page: number): void;
2209
+ /**
2210
+ * Evento richiamato sul cambio della paginazione. Verrà richiamato l'evento **emitSearchRequest**
2211
+ * per comunicare al componente che utilizza questa tabella che i dati sono da aggiornare
2212
+ */
2213
+ onItemsPerPageChanged(newIpp: any): void;
2214
+ /** Evento richiamato sul cambio della paginazione. Verrà richiamato l'evento **emitSearchRequest** con la vista del separatore */
2215
+ onGroupItemsPerPageChanged(pager: GroupPager, newIpp: number): void;
2216
+ /** Metodo che gestisce la modifica del tempo specificato per l'aggiornamento automatico */
2217
+ autoUpdateChanged(): void;
2218
+ /**
2219
+ * Metodo chiamato dal click su una delle colonne generate dall'Input **DynamicOperations**
2220
+ *
2221
+ * @param {any} item L'oggetto su cui va effettuata l'operazione
2222
+ * @param {string} opid Codice identificativo dell'operazione da effettuarsi
2223
+ */
2224
+ dynamicOperation(item: any, opid: string): void;
2225
+ /**
2226
+ * Ottiene il contenuto dell'EsTd da utilizzare per la colonna specificata
2227
+ *
2228
+ * @param {string} column Colonna per cui cercare la cella
2229
+ * @param {string} name Nome diretto per cercare il TD con l'ID. Questa variabile ha priorità rispetto a **column**
2230
+ *
2231
+ * @returns {TemplateRef<any>} Template da usare per la colonna
2232
+ */
2233
+ findEsTd(column: string, name?: string): TemplateRef<any>;
2234
+ /**
2235
+ * Ottiene il contenuto dell'editor EsTd da utilizzare per la colonna specificata
2236
+ *
2237
+ * @param {string} column Colonna per cui cercare l'editor
2238
+ * @param {string} name Nome diretto per cercare l'Editor con l'ID. Questa variabile ha priorità rispetto a **column**
2239
+ *
2240
+ * @returns {TemplateRef<any>} Template da usare per la colonna
2241
+ */
2242
+ findEditor(column: string, name?: string): TemplateRef<any>;
2243
+ /**
2244
+ * Equivalente del metodo **addToPage** riadattato per la modalità array
2245
+ *
2246
+ * @param {number} page Numero di pagine da aggiungere (o sottrarre, se negativo) alla pagina attuale
2247
+ */
2248
+ arrayAddToPage(page: number): void;
2249
+ /**
2250
+ * Equivalente del metodo **goToPage** riadattato per la modalità array
2251
+ *
2252
+ * @param {number} page Pagina a cui navigare
2253
+ */
2254
+ arrayGoToPage(page: number): void;
2255
+ /**
2256
+ * Gestione dei click sulle opzioni del menù contestuale in alto a destra generato dall'Input **CornerMenuOptions**
2257
+ *
2258
+ * @param {string} cornerid Codice dell'operazione selezionata
2259
+ */
2260
+ cornerActionClicked(cornerid: string): void;
2261
+ /**
2262
+ * Impostazione modalità dell'EsTable
2263
+ *
2264
+ * @param {'array' | 'view' | 'report'} mode Modalità da impostare
2265
+ **/
2266
+ private setMode;
2267
+ /**
2268
+ * Helper per effettuare chiamate interne di allineamento alla funzione **writeValue**,
2269
+ * impostando prima **internalWriteCall** in modo da non effettuare operazioni inutili
2270
+ */
2271
+ internalWriteValue(): Promise<void>;
2272
+ /** Metodo eventualmente richiamabile anche dal componente esterno che permette di forzare un refresh della tabella */
2273
+ forceRefresh(relaunchSearch?: boolean): void;
2274
+ /**
2275
+ * Imposta la visibilità di un header e di eventuali header collegati se questo header è un gruppo, dopodiché aggiorna l'es-table
2276
+ *
2277
+ * @param {string} groupOrHeader Header di cui settare la visibilità
2278
+ * @param {boolean} visibility Visibilità da impostare
2279
+ **/
2280
+ setHeaderVisibility(groupOrHeader: string, visibility: boolean, refresh?: boolean, relaunchSearch?: boolean): void;
2281
+ /**
2282
+ * Funzione che in base ai click su una cella capisce se sto effettuando un'operazione di selezione o se sto entrando nell'edit di una cella con un doppio click
2283
+ *
2284
+ * @param {any} $event Evento nativo javascript
2285
+ * @param {TdElement} rowItem Riferimento a binder della riga
2286
+ * @param {any} item Item che rappresenta il contesto su cui è stato effettuato un click
2287
+ */
2288
+ dbClickEditOrSingleClickRowSelection($event: MouseEvent, rowItem: WritableSignal<TdElement>, item: any): void;
2289
+ /** Evento che gestisce il comando "Copia" buttando i valori selezionati nella clipboard in base al loro tipo */
2290
+ private handleCopy;
2291
+ /** 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 */
2292
+ handlePaste(): void;
2293
+ /** Ripulisce il timer utilizzato per capire se è stato effettuato un doppio click o meno */
2294
+ private clearCellClickTimer;
2295
+ /**
2296
+ * Handler click singolo su una riga
2297
+ *
2298
+ * @param {any} $event Evento nativo javascript
2299
+ * @param {any} item Item che rappresenta il contesto su cui è stato effettuato un click
2300
+ * @param {boolean} selection Indica se la selezione è attiva
2301
+ * @param {boolean} internalCall Indica se la chiamata a questa funzione è interna: permette di skippare i check sulle CustomCells
2302
+ */
2303
+ handleRowClick($event: any, item: any, selection: boolean, internalCall?: boolean): boolean;
2304
+ /**
2305
+ * Gestione del click destro sull'es-table
2306
+ */
2307
+ onRightClick(): void;
2308
+ /**
2309
+ * La modifica dell'utente è iniziata. Si imposta la variabile relativa a "true" in modo da mostrare l'input di testo
2310
+ *
2311
+ * Dopo che l'input è apparso, dopo un ciclo di Change Detection viene attivato il Subject collegato all'input che servirà a effettuare il focus
2312
+ *
2313
+ * @param {TdElement} rowItem Elemento di riga su cui è stata attivata la modifica
2314
+ * @param {any} item Oggetto sopra il quale è stata attivata la modifica
2315
+ */
2316
+ setupUserEdit(rowItem: WritableSignal<TdElement>, item: any): void;
2317
+ /**
2318
+ * La modifica dell'utente è terminata. Si reimposta la variabile relativa a "false" in modo da nascondere l'input di testo e si emette la modifica del valore
2319
+ *
2320
+ * @param {TdElement} rowItem Elemento di riga su cui è stata attivata la modifica
2321
+ * @param {any} item Oggetto sopra il quale è stata attivata la modifica
2322
+ * @param {number} columnIndex Indice della colonna su cui è avvenuta la modifica
2323
+ */
2324
+ finalizeUserEdit(rowItem: WritableSignal<TdElement>, item: any, columnIndex: number): void;
2325
+ private mouseIsDown;
2326
+ private rangeSelected;
2327
+ private rangeStartWasIgnored;
2328
+ private firstCoordinates;
2329
+ mousedown(event: MouseEvent, rowItem: any, _: any): void;
2330
+ mouseenter(event: MouseEvent): void;
2331
+ mouseup(event: MouseEvent): void;
2332
+ private EsTdsCache;
2333
+ getCellReference(object: any, column: string): EsTd;
2334
+ registerCell(event: EsTdReference, rowItem: any, _: any, cellRef: ElementRef<HTMLTableCellElement>): void;
2335
+ showDialog(dlg: ModalDirective, elementRef: ElementRef): void;
2336
+ private retries;
2337
+ doFixDialog(dlg: ModalDirective, elementRef: ElementRef): void;
2338
+ doFixBody(elementRef: ElementRef): void;
2339
+ hideDialog(dlg: ModalDirective): void;
2340
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTableComponent, [null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, null, null, null, null, null, null, null, null, null, null, null, null]>;
2341
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EsTableComponent, "es-table", never, { "globalCheck": { "alias": "globalCheck"; "required": false; "isSignal": true; }; "autoUpdate": { "alias": "autoUpdate"; "required": false; "isSignal": true; }; "seconds": { "alias": "seconds"; "required": false; "isSignal": true; }; "researchInProgress": { "alias": "researchInProgress"; "required": false; "isSignal": true; }; "globalColVisCheck": { "alias": "globalColVisCheck"; "required": false; "isSignal": true; }; "EsThTdProvider": { "alias": "EsThTdProvider"; "required": false; }; "CornerMenuOptions": { "alias": "CornerMenuOptions"; "required": false; "isSignal": true; }; "_ColumnsResizable": { "alias": "ColumnsResizable"; "required": false; "isSignal": true; }; "_ColumnsPinnable": { "alias": "ColumnsPinnable"; "required": false; "isSignal": true; }; "_AutoUpdate": { "alias": "AutoUpdate"; "required": false; "isSignal": true; }; "Height": { "alias": "Height"; "required": false; "isSignal": true; }; "EmptySpaceBackgroundColor": { "alias": "EmptySpaceBackgroundColor"; "required": false; "isSignal": true; }; "EsTableHandledSearch": { "alias": "EsTableHandledSearch"; "required": false; "isSignal": true; }; "MaxHeight": { "alias": "MaxHeight"; "required": false; "isSignal": true; }; "_ContainerClass": { "alias": "ContainerClass"; "required": false; "isSignal": true; }; "XLSXExport": { "alias": "XLSXExport"; "required": false; "isSignal": true; }; "CSVExport": { "alias": "CSVExport"; "required": false; "isSignal": true; }; "_AllSearch": { "alias": "AllSearch"; "required": false; "isSignal": true; }; "HighCellDensity": { "alias": "HighCellDensity"; "required": false; "isSignal": true; }; "_Selection": { "alias": "Selection"; "required": false; "isSignal": true; }; "ShowLoadingOnBootstrap": { "alias": "ShowLoadingOnBootstrap"; "required": false; "isSignal": true; }; "Removal": { "alias": "Removal"; "required": false; "isSignal": true; }; "RemovalCondition": { "alias": "RemovalCondition"; "required": false; "isSignal": true; }; "_Export": { "alias": "Export"; "required": false; "isSignal": true; }; "_ShiftClick": { "alias": "ShiftClick"; "required": false; "isSignal": true; }; "CountLabel": { "alias": "CountLabel"; "required": false; "isSignal": true; }; "_HidePaging": { "alias": "HidePaging"; "required": false; "isSignal": true; }; "_HidePagingCount": { "alias": "HidePagingCount"; "required": false; "isSignal": true; }; "_HidePagingButtons": { "alias": "HidePagingButtons"; "required": false; "isSignal": true; }; "ContextMenu": { "alias": "ContextMenu"; "required": false; }; "ExportFileName": { "alias": "ExportFileName"; "required": false; "isSignal": true; }; "_TableClass": { "alias": "TableClass"; "required": false; "isSignal": true; }; "ExportFunction": { "alias": "ExportFunction"; "required": false; }; "ExportOnlyVisibleColumns": { "alias": "ExportOnlyVisibleColumns"; "required": false; "isSignal": true; }; "HasHeaderGroup": { "alias": "HasHeaderGroup"; "required": false; "isSignal": true; }; "HasSecondaryHeaderGroup": { "alias": "HasSecondaryHeaderGroup"; "required": false; "isSignal": true; }; "HeaderHidden": { "alias": "HeaderHidden"; "required": false; "isSignal": true; }; "BodyHidden": { "alias": "BodyHidden"; "required": false; "isSignal": true; }; "SelectionDisabled": { "alias": "SelectionDisabled"; "required": false; "isSignal": true; }; "SingleSelection": { "alias": "SingleSelection"; "required": false; "isSignal": true; }; "RowClassAssigner": { "alias": "RowClassAssigner"; "required": false; }; "_OrderByColumn": { "alias": "OrderByColumn"; "required": false; "isSignal": true; }; "MultipleOrderingDirectives": { "alias": "MultipleOrderingDirectives"; "required": false; "isSignal": true; }; "_HiddenColumns": { "alias": "HiddenColumns"; "required": false; "isSignal": true; }; "_ColumnsOrdering": { "alias": "ColumnsOrdering"; "required": false; "isSignal": true; }; "SearchView": { "alias": "SearchView"; "required": false; "isSignal": true; }; "_SelectAll": { "alias": "SelectAll"; "required": false; "isSignal": true; }; "_UseArrayModePaging": { "alias": "UseArrayModePaging"; "required": false; "isSignal": true; }; "_DynamicRowColumnsDefinition": { "alias": "DynamicRowColumnsDefinition"; "required": false; "isSignal": true; }; "DynamicOperations": { "alias": "DynamicOperations"; "required": false; "isSignal": true; }; "Hierarchy": { "alias": "Hierarchy"; "required": false; "isSignal": true; }; "_ParentKey": { "alias": "ParentKey"; "required": false; "isSignal": true; }; "_OwnKey": { "alias": "OwnKey"; "required": false; "isSignal": true; }; "_AutoSortHierarchy": { "alias": "AutoSortHierarchy"; "required": false; "isSignal": true; }; "StartsExpanded": { "alias": "StartsExpanded"; "required": false; "isSignal": true; }; "_SavePreferences": { "alias": "SavePreferences"; "required": false; "isSignal": true; }; "_DefaultAlignment": { "alias": "DefaultAlignment"; "required": false; "isSignal": true; }; "_PagingStyle": { "alias": "PagingStyle"; "required": false; "isSignal": true; }; "_RowGroupingPagingStyle": { "alias": "RowGroupingPagingStyle"; "required": false; "isSignal": true; }; "ItemSourceProperty": { "alias": "ItemSourceProperty"; "required": false; "isSignal": true; }; "_UseSelectionCache": { "alias": "UseSelectionCache"; "required": false; "isSignal": true; }; "_ShowItemGroupsColumns": { "alias": "ShowItemGroupsColumns"; "required": false; "isSignal": true; }; "Editable": { "alias": "Editable"; "required": false; "isSignal": true; }; "RangeSelection": { "alias": "RangeSelection"; "required": false; "isSignal": true; }; "SearchThrottle": { "alias": "SearchThrottle"; "required": false; "isSignal": true; }; "_ArraymodeItemsPerPage": { "alias": "ArraymodeItemsPerPage"; "required": false; "isSignal": true; }; }, { "globalCheck": "globalCheckChange"; "autoUpdate": "autoUpdateChange"; "seconds": "secondsChange"; "researchInProgress": "researchInProgressChange"; "globalColVisCheck": "globalColVisCheckChange"; "onOrderChanged": "onOrderChanged"; "onSearchRequest": "onSearchRequest"; "onSelectionChanged": "onSelectionChanged"; "onRemoval": "onRemoval"; "onAbortRemoval": "onAbortRemoval"; "onModelChange": "onModelChange"; "onOpenContextMenu": "onOpenContextMenu"; "onCornerAction": "onCornerAction"; "onDynamicOperation": "onDynamicOperation"; }, ["bodyRef", "headerRef", "headerGroupRef", "secondaryHeaderGroupRef", "EsTdEditorDirectives", "EsTdsDirective", "EsThsDirective", "ThTdProvider"], never, false, never>;
2342
+ }
2343
+ declare class EsTdReference {
2344
+ id: string;
2345
+ hash: string;
2346
+ self: EsTd;
2347
+ }
2348
+
2349
+ /** Modello di configurazione per L'EsTable */
2350
+ declare class EsTableModuleConfig {
2351
+ /** Indica se scrivere messaggi di log a console */
2352
+ debugMode?: boolean;
2353
+ /** Eventuali proprietà di default per l'EsTable */
2354
+ defaults?: EsTableDefaultable;
2355
+ /** Espressione ACL globale per definire se i tasti di download sono abilitati o no. Override a livello massimo */
2356
+ globalExportAclExpression?: string;
2357
+ }
2358
+
2359
+ /** Componente rappresentante una Colonna della tabella */
2360
+ declare class EsTh {
2361
+ private myself;
2362
+ private renderer;
2363
+ /** Dizionario di mappatura con ordinamento attuale e ordinamento successivo per gestire i passaggi di stato */
2364
+ private orderNext;
2365
+ /** Indicazione sulla visibilità della colonna */
2366
+ private _Visible;
2367
+ /** Indica se si sta effettuando un'operazione di resize su questa colonna */
2368
+ private resizingThis;
2369
+ /**
2370
+ * Storicizza l'offset di partenza del resize dell'elemento HTML per poter calcolare la nuova dimensione richiesta durente il resize
2371
+ *
2372
+ * nuova width = startOffset + posizione X del mouse
2373
+ */
2374
+ private startOffset;
2375
+ /** Id della colonna, dev'essere lo stesso per tutti gli **EsTd** relativi */
2376
+ ID: _angular_core.InputSignal<string>;
2377
+ /** Ordinamento attuale della colonna */
2378
+ _Order: _angular_core.InputSignal<"DESC" | "ASC">;
2379
+ Order: WritableSignal<"DESC" | "ASC">;
2380
+ /** Indica se questa colonna è ordinabile o meno */
2381
+ Orderable: _angular_core.InputSignal<boolean>;
2382
+ /** Valore da mostrare all'interno della colonna. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
2383
+ Display: _angular_core.InputSignal<string>;
2384
+ /** Indica se le dimnsioni di questa colonna sono modificabili o meno */
2385
+ Resizable: _angular_core.InputSignal<boolean>;
2386
+ /** Indica se questo header è pinnato. In caso lo fosse presenta il tastino per effettuare lo spinning */
2387
+ Pinned: _angular_core.InputSignal<boolean>;
2388
+ /**
2389
+ * Indica se sta venendo eseguita una operazione di ricerca o meno, serve per evitare l'esecuzione di eventuale codice che potrebbe dare fastidio
2390
+ * come ad esempio l'escuzione di un ordinamento durante il caricamento di dati nuovi
2391
+ */
2392
+ SearchInProgress: _angular_core.InputSignal<boolean>;
2393
+ /** Impostato dall'**EsTable**, serve per permettere o meno di effettuare ordinamenti dati su questa colonna */
2394
+ OrderBy: _angular_core.InputSignal<boolean>;
2395
+ /** Indica se il testo presente in questo Header può andare a capo o meno, di default non può */
2396
+ Wrap: _angular_core.InputSignal<boolean>;
2397
+ /** Indica se la colonna è fixed, cioè se non può né essere nascosta, né riposizionata. Solo le prime colonne possono essere Fixed */
2398
+ Fixed: _angular_core.InputSignal<boolean>;
2399
+ /** Template Angular da istanziare per questo TH */
2400
+ Template?: any;
2401
+ /** Evento emesso al cambio di ordinamento effettuato su questa colonna */
2402
+ onOrderChange: EventEmitter<'DESC' | 'ASC' | null>;
2403
+ /** Evento emesso all'unpinning della colonna */
2404
+ onUnpinning: EventEmitter<string>;
2405
+ /** Proiezione del contenuto di questa colonna */
2406
+ content: ElementRef;
2407
+ /** Classi da applicare alla colonna */
2408
+ Class: WritableSignal<string>;
2409
+ /** Impostato dall'**EsTable**, per controllare che ci sia almeno un TD che utilizzi quest'header */
2410
+ _referenced: WritableSignal<boolean>;
2411
+ /** Variabile finale su cui è bindato il contenuto della cella. Sarà valorizzato a **Display** se specificato, all'**innerHTML** dell'elemento proiettato altrimenti */
2412
+ Description: _angular_core.Signal<string>;
2413
+ private setUnderlyingSignal;
2414
+ /** @ignore */
2415
+ constructor(myself: ElementRef, renderer: Renderer2);
2416
+ /**
2417
+ * Imposta la visibilità o meno della colonna, si traduce nell'applicazione o rimozione della classe **app-display-none**
2418
+ *
2419
+ * @param {boolean} expression Indicazione della visibilità
2420
+ */
2421
+ set Visible(expression: boolean);
2422
+ /**
2423
+ * Restituisce lo stato di Visibilità della colonna in oggetto
2424
+ *
2425
+ * @returns {boolean} **true** se visibile, **false** altrimenti
2426
+ */
2427
+ get Visible(): boolean;
2428
+ /** @ignore */
2429
+ ngAfterViewInit(): void;
2430
+ /** Emette l'evento di unpinning */
2431
+ unpin(): void;
2432
+ /** Gestisce la modifica dell'ordinamento qualora venisse cliccato su questa colonna */
2433
+ setupNextOrderAndNotify(): void;
2434
+ /**
2435
+ * Evento di inizio resize della colonna
2436
+ *
2437
+ * @param {any} ev Evento MouseDown
2438
+ */
2439
+ onResizeStart(ev: any): void;
2440
+ /** Listener per la fine dell'operazione di resize */
2441
+ onMouseUp(): void;
2442
+ /**
2443
+ * Listener per gestire il movimento del mouse qualora un'operazione di resize fosse in esecuzione
2444
+ *
2445
+ * @param {$event} ev Evento MouseMove
2446
+ */
2447
+ onMouseMove($event: any): void;
2448
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTh, never>;
2449
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EsTh, "[es-th]", never, { "ID": { "alias": "es-th"; "required": false; "isSignal": true; }; "_Order": { "alias": "Order"; "required": false; "isSignal": true; }; "Orderable": { "alias": "Orderable"; "required": false; "isSignal": true; }; "Display": { "alias": "Display"; "required": false; "isSignal": true; }; "Resizable": { "alias": "Resizable"; "required": false; "isSignal": true; }; "Pinned": { "alias": "Pinned"; "required": false; "isSignal": true; }; "SearchInProgress": { "alias": "SearchInProgress"; "required": false; "isSignal": true; }; "OrderBy": { "alias": "OrderBy"; "required": false; "isSignal": true; }; "Wrap": { "alias": "Wrap"; "required": false; "isSignal": true; }; "Fixed": { "alias": "Fixed"; "required": false; "isSignal": true; }; "Template": { "alias": "Template"; "required": false; }; "Visible": { "alias": "Visible"; "required": false; }; }, { "onOrderChange": "onOrderChange"; "onUnpinning": "onUnpinning"; }, never, ["*"], false, never>;
2450
+ }
2451
+
2452
+ declare class EstFormatPipe implements PipeTransform {
2453
+ private dates;
2454
+ constructor(dates: DateService);
2455
+ transform(value: string, format: string): string;
2456
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EstFormatPipe, never>;
2457
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<EstFormatPipe, "est_format", false>;
2458
+ }
2459
+
2460
+ declare class EstLookupPipe implements PipeTransform {
2461
+ transform(value: string, source: {
2462
+ id: string;
2463
+ description: string;
2464
+ }[]): {
2465
+ id: string;
2466
+ description: string;
2467
+ };
2468
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EstLookupPipe, never>;
2469
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<EstLookupPipe, "est_lookup", false>;
2470
+ }
2471
+
2472
+ declare class EstRouterLinkPipe implements PipeTransform {
2473
+ /** Cache per i routerLink generati nelle tabelle dinamiche */
2474
+ routerLinksCache: {};
2475
+ transform(item: any, path: string, parameters: string[]): any;
2476
+ /**
2477
+ * Crea un router link
2478
+ *
2479
+ * @param {string} path Path su cui navigare con eventuali parametri riferiti all'oggetto cotnestuale come {0}, {1}, ecc...
2480
+ * @param {string[]} pars Lista posizionale delle proprietà a cui bindare i riferimenti del parametro **path**
2481
+ * Es. Il valore dela proprietà all'indice 0 di questo array verrà sostituita al valore {0} del parametro **path**
2482
+ * @param {any} item Oggetto collegato a questo contesto. Può essere un oggetto generico (con "properties") o un oggetto ben definito
2483
+ *
2484
+ * @returns {any} Router link generato in base al parametri
2485
+ */
2486
+ private getRouterLink;
2487
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EstRouterLinkPipe, never>;
2488
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<EstRouterLinkPipe, "est_routerlink", false>;
2489
+ }
2490
+
2491
+ declare class EstRendererPipe implements PipeTransform {
2492
+ private logger;
2493
+ constructor(logger: Logger);
2494
+ transform(propName: string, params: {
2495
+ name: string;
2496
+ src: QueryList<EsTdDirective>;
2497
+ fallback: any;
2498
+ }): any;
2499
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EstRendererPipe, never>;
2500
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<EstRendererPipe, "est_renderer", false>;
2501
+ }
2502
+
2503
+ declare class EstEditorPipe implements PipeTransform {
2504
+ private logger;
2505
+ constructor(logger: Logger);
2506
+ transform(propName: string, params: {
2507
+ name: string;
2508
+ src: QueryList<EsTdEditorDirective>;
2509
+ fallback: any;
2510
+ }): any;
2511
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EstEditorPipe, never>;
2512
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<EstEditorPipe, "est_editor", false>;
2513
+ }
2514
+
2515
+ declare class EstPropInsensitivePipe implements PipeTransform {
2516
+ transform(item: any, property: string): any;
2517
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EstPropInsensitivePipe, never>;
2518
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<EstPropInsensitivePipe, "est_propinsensitive", false>;
2519
+ }
2520
+
2521
+ declare class EsTableModule {
2522
+ static forRoot(config?: EsTableModuleConfig): ModuleWithProviders<EsTableModule>;
2523
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EsTableModule, never>;
2524
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<EsTableModule, [typeof EsTdDirective, typeof EsThDirective, typeof EsTdEditorDirective, typeof EsTableComponent, typeof EsTablePagerComponent, typeof ThTdProvider, typeof EsTh, typeof EsTd, typeof EstFormatPipe, typeof EstLookupPipe, typeof EstRouterLinkPipe, typeof EstRendererPipe, typeof EstEditorPipe, typeof EstPropInsensitivePipe], [typeof i15.CommonModule, typeof i16.FormsModule, typeof i17.RouterModule, typeof i18.LocalizationModule, typeof i19.ModalModule, typeof i20.BsDropdownModule, typeof i21.ContextMenuModule, typeof i22.DragDropModule, typeof i23.FormsAndValidationsModule, typeof i24.TooltipModule, typeof i25.AccessControlModule, typeof i26.SelectModule], [typeof EsTdDirective, typeof EsThDirective, typeof EsTdEditorDirective, typeof EsTableComponent, typeof EsTablePagerComponent, typeof ThTdProvider]>;
2525
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<EsTableModule>;
2526
+ }
2527
+
2528
+ /** Classe che definisce un oggetto generico come lista di proprietà-valore */
2529
+ declare class GenericItem {
2530
+ /** @ignore */
2531
+ constructor();
2532
+ /** Dizionario delle proprietà dell'oggeto con il loro valore */
2533
+ properties: Record<string, string>;
2534
+ /** Indica se l'oggetto in questione è selezionato o meno */
2535
+ _selected: boolean;
2536
+ /** Viene valorizzato da un eventuale **RowClassAssigner** (o automaticamente se in modalità gerarchica) e serve applicare stili particolari alla intera riga */
2537
+ _rowClass: string;
2538
+ /** Hash dell'oggetto per generare i contesti di bind all'interno dell'es-table (vedere eventualmente l'implementazione specifica) */
2539
+ _hash: string;
2540
+ }
2541
+
2542
+ /** Classe che definisce un multi-elemento, cioè una proprietà particolare di un oggetto da visualizzare in es-table che genera dinamicamente gruppi di Header e valori sottostanti */
2543
+ declare class EsTableMultiValue {
2544
+ value: any;
2545
+ header: string;
2546
+ header_group: string;
2547
+ /**
2548
+ * Costruttore
2549
+ *
2550
+ * @param {string} value Valore di questo elemento
2551
+ * @param {string} header Nome di questo header
2552
+ * @param {string} header_group Gruppo dell'header, in caso di multipli gruppi innestati usare la sintassi "G1 > G2 > G3" ecc...
2553
+ * @param {boolean} exports Indica se questo header con questo valore dev'essere esportato
2554
+ * @param {string} export_format Qualora **export** fosse **true** indica il formato per l'esportazione
2555
+ */
2556
+ constructor(value: any, header: string, header_group: string, exports?: boolean, export_format?: string);
2557
+ /** Indica se questo header con questo valore dev'essere esportato */
2558
+ exports?: boolean;
2559
+ /** Qualora **export** fosse **true** indica il formato per l'esportazione */
2560
+ export_format?: string;
2561
+ /** Generato automaticamente da **header_group** se passato da costruttore, altrimenti generato da es-table. Contiene la lista di gerarchie degli header groups (cioè **header_group** splittato su ">" e trimmato) */
2562
+ _headersHierarchy?: string[];
2563
+ }
2564
+
2565
+ /** Classe che rappresenta i valori delle proprietà di un oggetto Report */
2566
+ declare class ReportRow {
2567
+ /** Valori dell'oggetto in ordine sequenziale */
2568
+ values: string[];
2569
+ /** Colore di foreground per ogni cella */
2570
+ forecolors?: string[];
2571
+ /** Colore di background per ogni cella */
2572
+ backcolors?: string[];
2573
+ }
2574
+
2575
+ /** Token che indica se emettere log a console o meno */
2576
+ declare const EST_DEBUG: InjectionToken<string>;
2577
+ /** Token che indica l'espressione ACL da utilizzare (if any) per consentire le operazioni di esportazione */
2578
+ declare const EST_EXPORT_GLOBAL_ACL: InjectionToken<string>;
2579
+ /** Token che indica i default da assegnare agli Input */
2580
+ declare const EST_DEFAULTS: InjectionToken<EsTableDefaultable>;
2581
+
2582
+ export { AppOrdering, AppSearch, CornerMenuOption, EST_DEBUG, EST_DEFAULTS, EST_EXPORT_GLOBAL_ACL, EsTableColumnsDefinition, EsTableComponent, EsTableDefaultable, EsTableModelChange, EsTableModule, EsTableModuleConfig, EsTableMultiValue, EsTableOperationDefinition, EsTablePagerComponent, EsTdDirective, EsTdEditorDirective, EsTdReference, EsThDirective, GenericItem, Group, GroupAggregation, GroupFilter, GroupOrAggregation, ItemPropEditableReference, ItemsSelection, ReportColumn, ReportParam, ReportRow, ThTdProvider };
2583
+ export type { InputType };