@esfaenza/es-table 12.2.17 → 12.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/esfaenza-es-table.umd.js +3625 -1520
- package/bundles/esfaenza-es-table.umd.js.map +1 -1
- package/esfaenza-es-table.d.ts +7 -5
- package/esfaenza-es-table.metadata.json +1 -1
- package/esm2015/esfaenza-es-table.js +8 -6
- package/esm2015/lib/components/es-table/es_table.component.js +1316 -0
- package/esm2015/lib/components/es-table/es_table.component.loc.js +36 -0
- package/esm2015/lib/components/es-td/es_td.component.js +106 -0
- package/esm2015/lib/components/es-th/es_th.component.js +160 -0
- package/esm2015/lib/components/pager/table_pager.component.js +106 -0
- package/esm2015/lib/components/pager/table_pager.component.loc.js +22 -0
- package/esm2015/lib/core/handlers/classes/ColumnMetadataHandler.js +679 -0
- package/esm2015/lib/core/handlers/classes/DynamicModeHandler.js +64 -0
- package/esm2015/lib/core/handlers/classes/ExportHandler.js +43 -0
- package/esm2015/lib/core/handlers/classes/HierarchyModeHandler.js +136 -0
- package/esm2015/lib/core/handlers/classes/ItemsHandler.js +130 -0
- package/esm2015/lib/core/handlers/classes/ReportModeHandler.js +70 -0
- package/esm2015/lib/core/handlers/classes/RowGroupingHandler.js +475 -0
- package/esm2015/lib/core/handlers/classes/SelectionHandler.js +527 -0
- package/esm2015/lib/core/handlers/classes/UtilitiesHandler.js +169 -0
- package/esm2015/lib/core/handlers/index.js +10 -0
- package/esm2015/lib/directives/es_td.directive.js +18 -5
- package/esm2015/lib/directives/es_th.directive.js +64 -0
- package/esm2015/lib/domain/configuration/EsTableDefaultable.js +4 -0
- package/esm2015/lib/domain/configuration/EsTableModuleConfig.js +4 -0
- package/esm2015/lib/domain/externals/classes/CornerMenuOption.js +4 -0
- package/esm2015/lib/domain/externals/classes/EsTableColumnsDefinition.js +31 -0
- package/esm2015/lib/domain/externals/classes/EsTableOperationDefinition.js +22 -0
- package/esm2015/lib/domain/externals/classes/appsearch/AppOrdering.js +16 -0
- package/esm2015/lib/domain/externals/classes/appsearch/AppSearch.js +35 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GenericItem.js +11 -0
- package/esm2015/lib/domain/externals/classes/appsearch/Group.js +17 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GroupAggregation.js +16 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GroupFilter.js +14 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GroupOrAggregation.js +16 -0
- package/esm2015/lib/domain/externals/classes/appsearch/ItemsSelection.js +23 -0
- package/esm2015/lib/domain/externals/classes/report/ReportColumn.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportDefinition.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportOrder.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportParam.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportResult.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportRow.js +4 -0
- package/esm2015/lib/domain/externals/index.js +18 -0
- package/esm2015/lib/domain/index.js +3 -16
- package/esm2015/lib/domain/internals/classes/CacheTriptic.js +16 -0
- package/esm2015/lib/domain/internals/classes/EsTableColumn.js +24 -0
- package/esm2015/lib/domain/internals/classes/GroupPager.js +21 -0
- package/esm2015/lib/domain/internals/classes/GroupRouteFragment.js +17 -0
- package/esm2015/lib/domain/internals/classes/ThAggregation.js +16 -0
- package/esm2015/lib/domain/internals/classes/ThElement.js +2 -0
- package/esm2015/lib/domain/internals/index.js +7 -0
- package/esm2015/lib/es-table.module.js +16 -10
- package/esm2015/lib/tokens.js +6 -4
- package/esm2015/public-api.js +7 -6
- package/fesm2015/esfaenza-es-table.js +3579 -1597
- package/fesm2015/esfaenza-es-table.js.map +1 -1
- package/lib/{es_table.component.d.ts → components/es-table/es_table.component.d.ts} +186 -317
- package/lib/{es_table.component.loc.d.ts → components/es-table/es_table.component.loc.d.ts} +2 -6
- package/lib/{es_td.component.d.ts → components/es-td/es_td.component.d.ts} +14 -36
- package/lib/components/es-th/es_th.component.d.ts +89 -0
- package/lib/components/pager/table_pager.component.d.ts +54 -0
- package/lib/{pager → components/pager}/table_pager.component.loc.d.ts +2 -6
- package/lib/core/handlers/classes/ColumnMetadataHandler.d.ts +159 -0
- package/lib/core/handlers/classes/DynamicModeHandler.d.ts +32 -0
- package/lib/core/handlers/classes/ExportHandler.d.ts +22 -0
- package/lib/core/handlers/classes/HierarchyModeHandler.d.ts +40 -0
- package/lib/core/handlers/classes/ItemsHandler.d.ts +41 -0
- package/lib/core/handlers/classes/ReportModeHandler.d.ts +21 -0
- package/lib/core/handlers/classes/RowGroupingHandler.d.ts +114 -0
- package/lib/core/handlers/classes/SelectionHandler.d.ts +149 -0
- package/lib/core/handlers/classes/UtilitiesHandler.d.ts +67 -0
- package/lib/core/handlers/index.d.ts +9 -0
- package/lib/directives/es_td.directive.d.ts +16 -3
- package/lib/directives/es_th.directive.d.ts +46 -0
- package/lib/domain/configuration/EsTableDefaultable.d.ts +19 -0
- package/lib/domain/configuration/EsTableModuleConfig.d.ts +10 -0
- package/lib/domain/externals/classes/CornerMenuOption.d.ts +7 -0
- package/lib/domain/{classes → externals/classes}/EsTableColumnsDefinition.d.ts +5 -7
- package/lib/domain/{classes → externals/classes}/EsTableOperationDefinition.d.ts +1 -3
- package/lib/domain/{classes → externals/classes/appsearch}/AppOrdering.d.ts +0 -0
- package/lib/domain/externals/classes/appsearch/AppSearch.d.ts +67 -0
- package/lib/domain/externals/classes/appsearch/GenericItem.d.ts +13 -0
- package/lib/domain/externals/classes/appsearch/Group.d.ts +17 -0
- package/lib/domain/externals/classes/appsearch/GroupAggregation.d.ts +14 -0
- package/lib/domain/externals/classes/appsearch/GroupFilter.d.ts +12 -0
- package/lib/domain/externals/classes/appsearch/GroupOrAggregation.d.ts +14 -0
- package/lib/domain/externals/classes/appsearch/ItemsSelection.d.ts +22 -0
- package/lib/domain/externals/classes/report/ReportColumn.d.ts +15 -0
- package/lib/domain/externals/classes/report/ReportDefinition.d.ts +24 -0
- package/lib/domain/externals/classes/report/ReportOrder.d.ts +7 -0
- package/lib/domain/externals/classes/report/ReportParam.d.ts +40 -0
- package/lib/domain/externals/classes/report/ReportResult.d.ts +12 -0
- package/lib/domain/externals/classes/report/ReportRow.d.ts +5 -0
- package/lib/domain/externals/index.d.ts +17 -0
- package/lib/domain/index.d.ts +2 -15
- package/lib/domain/internals/classes/CacheTriptic.d.ts +14 -0
- package/lib/domain/internals/classes/EsTableColumn.d.ts +25 -0
- package/lib/domain/internals/classes/GroupPager.d.ts +22 -0
- package/lib/domain/internals/classes/GroupRouteFragment.d.ts +15 -0
- package/lib/domain/internals/classes/ThAggregation.d.ts +14 -0
- package/lib/domain/internals/classes/ThElement.d.ts +13 -0
- package/lib/domain/internals/index.d.ts +6 -0
- package/lib/es-table.module.d.ts +1 -1
- package/lib/tokens.d.ts +6 -3
- package/package.json +2 -1
- package/public-api.d.ts +6 -5
- package/esm2015/lib/domain/classes/AppOrdering.js +0 -16
- package/esm2015/lib/domain/classes/AppSearch.js +0 -35
- package/esm2015/lib/domain/classes/CornerMenuOption.js +0 -6
- package/esm2015/lib/domain/classes/EsTableColumn.js +0 -18
- package/esm2015/lib/domain/classes/EsTableColumnsDefinition.js +0 -31
- package/esm2015/lib/domain/classes/EsTableOperationDefinition.js +0 -24
- package/esm2015/lib/domain/classes/GenericItem.js +0 -15
- package/esm2015/lib/domain/classes/IAppSearch.js +0 -2
- package/esm2015/lib/domain/classes/ItemsSelection.js +0 -25
- package/esm2015/lib/domain/classes/ReportColumn.js +0 -6
- package/esm2015/lib/domain/classes/ReportDefinition.js +0 -6
- package/esm2015/lib/domain/classes/ReportOrder.js +0 -6
- package/esm2015/lib/domain/classes/ReportParam.js +0 -6
- package/esm2015/lib/domain/classes/ReportResult.js +0 -6
- package/esm2015/lib/domain/classes/ReportRow.js +0 -6
- package/esm2015/lib/es_table.component.js +0 -1825
- package/esm2015/lib/es_table.component.loc.js +0 -36
- package/esm2015/lib/es_td.component.js +0 -121
- package/esm2015/lib/es_th.component.js +0 -168
- package/esm2015/lib/models/EsTableModuleConfig.js +0 -6
- package/esm2015/lib/pager/table_pager.component.js +0 -70
- package/esm2015/lib/pager/table_pager.component.loc.js +0 -24
- package/lib/domain/classes/AppSearch.d.ts +0 -76
- package/lib/domain/classes/CornerMenuOption.d.ts +0 -13
- package/lib/domain/classes/EsTableColumn.d.ts +0 -16
- package/lib/domain/classes/GenericItem.d.ts +0 -25
- package/lib/domain/classes/IAppSearch.d.ts +0 -67
- package/lib/domain/classes/ItemsSelection.d.ts +0 -27
- package/lib/domain/classes/ReportColumn.d.ts +0 -29
- package/lib/domain/classes/ReportDefinition.d.ts +0 -46
- package/lib/domain/classes/ReportOrder.d.ts +0 -13
- package/lib/domain/classes/ReportParam.d.ts +0 -76
- package/lib/domain/classes/ReportResult.d.ts +0 -22
- package/lib/domain/classes/ReportRow.d.ts +0 -9
- package/lib/es_th.component.d.ts +0 -119
- package/lib/models/EsTableModuleConfig.d.ts +0 -9
- package/lib/pager/table_pager.component.d.ts +0 -50
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { DateService } from "@esfaenza/extensions";
|
|
2
|
+
import { EsTh } from "../../../components/es-th/es_th.component";
|
|
3
|
+
import { EsThDirective } from "../../../directives/es_th.directive";
|
|
4
|
+
import { EsTableComponent } from "../../../components/es-table/es_table.component";
|
|
5
|
+
import { AppOrdering, AppSearch, Group, GroupOrAggregation, GroupPager, GroupRouteFragment } from "../../../domain";
|
|
6
|
+
import { UtilitiesHandler } from "./UtilitiesHandler";
|
|
7
|
+
/** Classe che gestisce la modalità Row Grouping dell'es-table */
|
|
8
|
+
export declare class RowGroupingHandler {
|
|
9
|
+
private est;
|
|
10
|
+
private utilities;
|
|
11
|
+
private dateExts;
|
|
12
|
+
/** Cache per salvare per ogni chiave di ogni gruppo chi è il gruppo rappresentato */
|
|
13
|
+
rgGroupCache: Map<string, Group>;
|
|
14
|
+
/** Cache per salvare per ogni chiave di ogni gruppo chi sono gli oggetti sottostanti, non dei sottogruppi */
|
|
15
|
+
rgItemCache: Map<string, any[]>;
|
|
16
|
+
/** Cache per salvare per ogni chiave di ogni gruppo chi sono gli oggetti sottostanti, non dei sottogruppi */
|
|
17
|
+
rgChildGroupsCache: Map<string, Group[]>;
|
|
18
|
+
/** @ignore Costruttore */
|
|
19
|
+
constructor(est: EsTableComponent, utilities: UtilitiesHandler, dateExts: DateService);
|
|
20
|
+
/**
|
|
21
|
+
* In modalità rowgrouping quando mi arriva un nuovo blocco di oggetti devo aggiungerlo alla vista attuale:
|
|
22
|
+
*
|
|
23
|
+
* 1) Se non viene richiesto il dettaglio di alcun gruppo significa che devo considerare mi siano arrivati tutti i gruppi principali
|
|
24
|
+
* 2) Se viene richiesto il dettaglio di un gruppo diverso dall'ultimo devo aggiungere dopo al gruppo cliccato la lista dei sottogruppi
|
|
25
|
+
* 2) Se viene richiesto il dettaglio dell'ultimo gruppo devo aggiungere dopo al gruppo cliccato la lista degli oggetti
|
|
26
|
+
*
|
|
27
|
+
* @param {any} view AppSearch<T> da cui sono arrivati gli oggetti
|
|
28
|
+
* @param {number} groupingKeys Livelli di raggruppamento da aspettarsi sui dati
|
|
29
|
+
*/
|
|
30
|
+
handleNewDataOnRowGrouping(view: AppSearch<any>, groupingKeys: number): void;
|
|
31
|
+
/**
|
|
32
|
+
* Se in modalità array applica i raggruppamenti definiti lato row-grouping
|
|
33
|
+
*
|
|
34
|
+
* @param {ths: EsTh[] | EsThDirective[]} ths Header
|
|
35
|
+
*/
|
|
36
|
+
arrayModeReviewGroupings(ths: EsTh[] | EsThDirective[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* Data una direttiva EsTh restituisce la lista delle aggregazioni richiesta per questa colonna o il gruppo che rappresenta
|
|
39
|
+
*
|
|
40
|
+
* @param {EsThDirective} th Direttiva
|
|
41
|
+
*
|
|
42
|
+
* @returns {GroupOrAggregation[]} Lista dei gruppi o aggregazioni relativi alla Direttiva passata
|
|
43
|
+
*/
|
|
44
|
+
getGroupAggregations(th: EsThDirective): GroupOrAggregation[];
|
|
45
|
+
/**
|
|
46
|
+
* Data una direttiva con un formato restituisce tutte le coppie Funzione di Aggregazione - Formato
|
|
47
|
+
*
|
|
48
|
+
* @param {EsThDirective} th Direttiva EsTh di cui calcolare le funzioni di aggregazione usate
|
|
49
|
+
*
|
|
50
|
+
* @returns {{ func: string, format: string }[]} Lista delle funzioni di aggregazione rilevate
|
|
51
|
+
*/
|
|
52
|
+
private getEsThDirectiveListOfAggregations;
|
|
53
|
+
/**
|
|
54
|
+
* Data la definizione dei gruppi da generare da una lista di oggetti, suddivide gli oggetti passati in gruppi e sottogruppi
|
|
55
|
+
*
|
|
56
|
+
* @param {Group[]} grps Definizione dei gruppi
|
|
57
|
+
* @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
|
|
58
|
+
* elaborare i sottogruppi, e così via ricorsivamente...
|
|
59
|
+
* @param {any[]} items Oggetti da raggruppare
|
|
60
|
+
* @param {GroupOrAggregation[]} aggregations Info di aggregazione
|
|
61
|
+
* @param {any} parent Riferimento al gruppo padre
|
|
62
|
+
*/
|
|
63
|
+
private getGroupsRecursive;
|
|
64
|
+
/**
|
|
65
|
+
* Data una lista di oggetti genera le aggregazioni specificate. Si considera di avere tutti gli oggetti
|
|
66
|
+
*
|
|
67
|
+
* @param {any[]} items Oggetti di cui calcolare le aggregazione
|
|
68
|
+
* @param {GroupOrAggregation[]} aggregations Aggergazioni da generare
|
|
69
|
+
*/
|
|
70
|
+
private generateAggregations;
|
|
71
|
+
/**
|
|
72
|
+
* Ottiene un elemento di separazione fra Gruppi che serve per paginare le ricerche all'interno di ogni singolo gruppo
|
|
73
|
+
*
|
|
74
|
+
* @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
|
|
75
|
+
* facenti riferimento allo stesso contesto
|
|
76
|
+
* @param {string} parent Parent path che rappresenta a quale gruppo è affibbiato questo separatore
|
|
77
|
+
* @param {GroupRouteFragment[]} route Route path che rappresenta a quale gruppo è affibbiato questo separatore
|
|
78
|
+
* @param {number} level Livello del gruppo di cui questo elemento è separatore, viene usato per applicare la classe "est-lvl-{{level}}"
|
|
79
|
+
*
|
|
80
|
+
* @returns {any} Elemento di separazione contenente tutti i bind per presentare una paginazione sotto questo gruppo lato interfaccia
|
|
81
|
+
*/
|
|
82
|
+
getGroupSeparator(view: AppSearch<any>, parent: string, route: GroupRouteFragment[], level: number, searches: 'groups' | 'items'): GroupPager;
|
|
83
|
+
/**
|
|
84
|
+
* Data una colonna effettua la riemissione di tutte le ricerche relative.
|
|
85
|
+
*
|
|
86
|
+
* Es. Ho 2 campi di gruppo e ho espanso fino a vedere i valori fino ad un livello qualsiasi.
|
|
87
|
+
* Clicco l'ordinamento sul secondo gruppo.
|
|
88
|
+
* Tutte le ricerche relative ai primi gruppi devono essere rieseguite. Quando i risultati arriveranno ci penserà il metodo **bindDisplayToLoadedItemsOrGroups**
|
|
89
|
+
* a tagliare via gli oggetti non più visualizzati
|
|
90
|
+
*
|
|
91
|
+
* @param {string} column Colonna su cui si è effettuata un'operazione di ordinamento
|
|
92
|
+
* @param {AppOrdering[]} orderings Direttive di ordinamento da applicare alle varie sottoricerche
|
|
93
|
+
*/
|
|
94
|
+
emitRowGroupingSearches(column: string, orderings: AppOrdering[]): void;
|
|
95
|
+
/**
|
|
96
|
+
* Helper che calcola il contenuto di una cella relativa a un gruppo riga, tenendo conto del formato delle eventuali aggregazioni
|
|
97
|
+
*
|
|
98
|
+
* @param {Group} grp Gruppo di cui mostrare le celle
|
|
99
|
+
* @param {string} cell Cella attuale di cui calcolare il testo
|
|
100
|
+
* @param {EsThDirective} header Header relativo alla cella attuale, utilizzata per identificare le informazioni di aggregazione
|
|
101
|
+
*
|
|
102
|
+
* @returns {string} Testo finale calcolato per la **cell** corrente, in base alle aggregazioni di **header**
|
|
103
|
+
*/
|
|
104
|
+
getGroupCellDisplay(grp: Group, cell: string, header: EsThDirective): string;
|
|
105
|
+
/**
|
|
106
|
+
* Funzione che dato un valore lo formatta in base al tipo
|
|
107
|
+
*
|
|
108
|
+
* @param {string} value Valore che generalemnte può essere una data o un numero
|
|
109
|
+
* @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
|
|
110
|
+
*
|
|
111
|
+
* @returns {string} Valore dell'aggregazione formattato come si deve
|
|
112
|
+
*/
|
|
113
|
+
private formatAggregationValue;
|
|
114
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { ItemsSelection } from "../../../domain";
|
|
2
|
+
import { EsTableComponent } from "../../../components/es-table/es_table.component";
|
|
3
|
+
import { RowGroupingHandler } from "../";
|
|
4
|
+
/** Classe che gestisce le selezioni degli oggetti */
|
|
5
|
+
export declare class SelectionHandler {
|
|
6
|
+
private est;
|
|
7
|
+
private rgHandler;
|
|
8
|
+
/** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via hash*/
|
|
9
|
+
private itemsCache;
|
|
10
|
+
/** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via hash */
|
|
11
|
+
private groupsCache;
|
|
12
|
+
/** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
|
|
13
|
+
private exclusionsCache;
|
|
14
|
+
/** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
|
|
15
|
+
private group_exclusionsCache;
|
|
16
|
+
/** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via indice*/
|
|
17
|
+
private i_itemsCache;
|
|
18
|
+
/** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via indice */
|
|
19
|
+
private i_groupsCache;
|
|
20
|
+
/** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
|
|
21
|
+
private i_exclusionsCache;
|
|
22
|
+
/** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
|
|
23
|
+
private i_group_exclusionsCache;
|
|
24
|
+
/** @ignore Costruttore */
|
|
25
|
+
constructor(est: EsTableComponent, rgHandler: RowGroupingHandler);
|
|
26
|
+
/** Ripulisce le cache di selezione */
|
|
27
|
+
clearSelectionCaches(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Valuta quali elementi devono essere marcati come selezionati nella vista attuale. Si basa sull'oggetto **selection** interno all'AppSearch
|
|
30
|
+
*
|
|
31
|
+
* @param {any[]} items Oggetti di cui valutare la selezione
|
|
32
|
+
* @param {ItemsSelection<any>} selectionItem Oggetti di selezione derivante dalla view o dall'oggetto per Array
|
|
33
|
+
*/
|
|
34
|
+
evaluateSelection(items: any[], selectionItem: ItemsSelection<any>): void;
|
|
35
|
+
/**
|
|
36
|
+
* Implementazione agnostica della valutazione delle selezioni degli oggetti. Richiede gli oggetti della vista attuale e l'itemSelector
|
|
37
|
+
*
|
|
38
|
+
* @param {any[]} items Oggetti di cui aggiornare lo stato di selezione
|
|
39
|
+
* @param {ItemsSelection<any>} selectionItem Oggetto contenente lo stato attuale di selezione
|
|
40
|
+
*/
|
|
41
|
+
private handleSelectionEvaluation;
|
|
42
|
+
/**
|
|
43
|
+
* Dato un oggetto trova la cella di cache in cui è registrato e aggiorna il contenuto
|
|
44
|
+
*
|
|
45
|
+
* @param {any} item Oggetto da aggiornare
|
|
46
|
+
*/
|
|
47
|
+
private rehidrateCache;
|
|
48
|
+
/**
|
|
49
|
+
* Dato un gruppo controlla ricorsivamente l'albero di cui fa parte se c'è stata una inclusione o esclusione diretta
|
|
50
|
+
*
|
|
51
|
+
* @param {any} grp Gruppo da controllare
|
|
52
|
+
*
|
|
53
|
+
* @returns {'none' | 'excluded' | 'included'}
|
|
54
|
+
* 'none' se non ci sono informazioni su inclusioni o esclusioni
|
|
55
|
+
* 'included' se il gruppo controllato è stato incluso in maniera esplicita dall'albero dei gruppi padri
|
|
56
|
+
* 'excluded' se il gruppo controllato è stato escluso in maniera esplicita dall'albero dei gruppi padri
|
|
57
|
+
*/
|
|
58
|
+
private parentTreeStatus;
|
|
59
|
+
/**
|
|
60
|
+
* Helper per gestire la selezione di N elementi utilizzando la Cache di selezione ed eventualmente aggiornando il concetto di "all selection"
|
|
61
|
+
*
|
|
62
|
+
* Vunziona sia in modalità Array che in modalità View Semplice o View Avanzata (con le Custom Cells)
|
|
63
|
+
*
|
|
64
|
+
* @param {any[]} items Oggetti da selezionare o deselezionare
|
|
65
|
+
* @param {boolean} forcedVal Valore forzato di check da assegnare agli oggetti
|
|
66
|
+
* @param {boolean} globalCheck Valore del check globale
|
|
67
|
+
*
|
|
68
|
+
* @returns {ItemsSelection<any>} Oggetto di selezione aggiornato con le informazioni sull'ultima operazione effettuata
|
|
69
|
+
*/
|
|
70
|
+
handleItemsSelection(items: any[], forcedVal?: boolean, globalCheck?: boolean): ItemsSelection<any>;
|
|
71
|
+
/**
|
|
72
|
+
* Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
|
|
73
|
+
*
|
|
74
|
+
* Logica semplificata rispetto all'originale **performSelectionOperations** per lavorare in una modalità in cui tutti gli elementi sono caricati (**ArrayGrouping** = true)
|
|
75
|
+
*/
|
|
76
|
+
private performSimpleSelectionOperations;
|
|
77
|
+
/**
|
|
78
|
+
* Helper per selezionare un gruppo e, ricorsivamente, se tutti i gruppi sottostanti al parent sono selezionati, selezionare i gruppi padri
|
|
79
|
+
*
|
|
80
|
+
* @param {any} group Gruppo da selezionare
|
|
81
|
+
*/
|
|
82
|
+
private selectGroup;
|
|
83
|
+
/**
|
|
84
|
+
* Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
|
|
85
|
+
*
|
|
86
|
+
* La logica di questa funzione è nata essenzialmente da spam di trial & error ed è stata testata solo fino a due livelli di raggruppamento,
|
|
87
|
+
* qualsiasi cosa vada oltre non è 100% detto che funzioni...
|
|
88
|
+
*/
|
|
89
|
+
private performSelectionOperations;
|
|
90
|
+
/** Helper per evitare di riscrivere ogni santa volta array.splice(array.indexof(item), 1); */
|
|
91
|
+
private removeItem;
|
|
92
|
+
/** Helper per evitare di riscrivere ogni santa volta array.push(item); e la gestione della */
|
|
93
|
+
private addItem;
|
|
94
|
+
/**
|
|
95
|
+
* Ottiene il trittico di selezione, cioè l'array degli oggetti che si vuole manipolare e le due cache collegate ad esso
|
|
96
|
+
*
|
|
97
|
+
* @param {'group' | 'item' | 'group_exclusion' | 'exclusion'} subject Oggetto logico desiderato su cui effettuare le operazioni successive
|
|
98
|
+
* @param {ItemsSelection<any>} base Selettore di base
|
|
99
|
+
*
|
|
100
|
+
* @returns {CacheTriptic} Trittico di selezione
|
|
101
|
+
*/
|
|
102
|
+
private getTriptic;
|
|
103
|
+
/**
|
|
104
|
+
* Dato un oggetto restituisce il gruppo di cui fa parte, se esiste
|
|
105
|
+
*
|
|
106
|
+
* @param {any} item Oggetto di cui trovare il gruppo
|
|
107
|
+
*/
|
|
108
|
+
private getItemGroup;
|
|
109
|
+
/**
|
|
110
|
+
* Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
|
|
111
|
+
*
|
|
112
|
+
* @param {any} group Chiave da cercare
|
|
113
|
+
* @param {'selected' | 'unselected'} status Stato degli elementi, selezionati o no
|
|
114
|
+
* @param {boolean} recursive Indica se cercare solo gli elementi direttamente collegati o se prendere anche quelli dei gruppi figli
|
|
115
|
+
*
|
|
116
|
+
* @returns {any[]} Oggetti di tipo **_item** facenti capo alla chiave **groupKey**
|
|
117
|
+
*/
|
|
118
|
+
private getGroupItems;
|
|
119
|
+
/**
|
|
120
|
+
* Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
|
|
121
|
+
*
|
|
122
|
+
* @param {any} group Gruppo di cui cercare il parent
|
|
123
|
+
*
|
|
124
|
+
* @returns {any} Oggetto di tipo **_group** rappresentante il parent del **group** attuale
|
|
125
|
+
*/
|
|
126
|
+
private getGroupParent;
|
|
127
|
+
/**
|
|
128
|
+
* Data la chiave di un gruppo restituisce tutti i gruppi figli
|
|
129
|
+
*
|
|
130
|
+
* @param {string} group Gruppo che rappresenta il padre di cui cercare i figli
|
|
131
|
+
* @param {'selected' | 'unselected'} status Stato dei gruppi, selezionati o no
|
|
132
|
+
* @param {boolean} recursive Indica se cercare solo i gruppi direttamente collegati o se prendere anche quelli dei gruppi figli
|
|
133
|
+
*
|
|
134
|
+
* @returns {any[]} Oggetti di tipo **_group** facenti capo alla chiave **groupKey**
|
|
135
|
+
*/
|
|
136
|
+
private getGroupChildGroups;
|
|
137
|
+
/** Finalizza le informazioni di selezione del **ItemsSelection** corrente */
|
|
138
|
+
private finalizeSelectionInformations;
|
|
139
|
+
/** Compatta una cache di indici */
|
|
140
|
+
private compactIndexMap;
|
|
141
|
+
/**
|
|
142
|
+
* Valuta la quantità di oggetti che sono stati selezionati al termine di un evento di selezione
|
|
143
|
+
*
|
|
144
|
+
* @returns {number} Numero di oggetti selezionati
|
|
145
|
+
*/
|
|
146
|
+
private evaluateSelected;
|
|
147
|
+
/** Gestisce il comando di "Seleziona tutto in tutte le pagine" o il suo contrario, cioè "Reimposta selezione" */
|
|
148
|
+
selectAllOrResetSelection(): void;
|
|
149
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { HashingService } from "@esfaenza/extensions";
|
|
2
|
+
import { EsTd } from "../../../components/es-td/es_td.component";
|
|
3
|
+
import { EsTh } from "../../../components/es-th/es_th.component";
|
|
4
|
+
/** Classe di utilità per le cose comuni */
|
|
5
|
+
export declare class UtilitiesHandler {
|
|
6
|
+
private hashExts;
|
|
7
|
+
/** @ignore Costruttore */
|
|
8
|
+
constructor(hashExts: HashingService);
|
|
9
|
+
/**
|
|
10
|
+
* Data una lista di oggetti effettua dei raggruppamenti in base alla proprietà **field**,
|
|
11
|
+
* restituendo un oggetto del tipo { Gruppo1: oggetti[], Gruppo2: oggetti[], ecc... }
|
|
12
|
+
*
|
|
13
|
+
* @param {any[]} array Lista degli oggetti da raggruppare
|
|
14
|
+
* @param {string} field Campo su cui effettuare i raggruppamenti
|
|
15
|
+
*
|
|
16
|
+
* @returns {{ [id: string]: any[] }} Dizionario dei gruppi
|
|
17
|
+
*/
|
|
18
|
+
groupBy(array: any[], field: string): {
|
|
19
|
+
[id: string]: any[];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Helper per effettuare il caching delle aggregazioni. Le sposta da una lista di **GroupAggregation** a una **<Map<string, Map<string, string>>**
|
|
23
|
+
*
|
|
24
|
+
* @param {any} group Gruppo di cui cachare le aggregazioni
|
|
25
|
+
*/
|
|
26
|
+
cacheAggregations(group: any): void;
|
|
27
|
+
/** Helper per spostare un oggetto di un array da un indice all'altro, in place */
|
|
28
|
+
arrayMove(array: any[], oldI: number, newI: number): void;
|
|
29
|
+
/**
|
|
30
|
+
* Helper che identifica se il td attuale è di tipo **EsTd**. In caso contrario è da considerarsi **EsTdDirective**
|
|
31
|
+
*
|
|
32
|
+
* @param {any} td Cella da valutare
|
|
33
|
+
* @returns {boolean} Restituisce **true** se il **td** è di tipo **EsTd**, **false** se è di tipo **EsTdDirective**
|
|
34
|
+
*/
|
|
35
|
+
isEsTd(td: any): td is EsTd;
|
|
36
|
+
/**
|
|
37
|
+
* Helper che identifica se il th attuale è di tipo **EsTh**. In caso contrario è da considerarsi **EsThDirective**
|
|
38
|
+
*
|
|
39
|
+
* @param {any} td Header da valutare
|
|
40
|
+
* @returns {boolean} Restituisce **true** se il **th** è di tipo **EsTh**, **false** se è di tipo **EsThDirective**
|
|
41
|
+
*/
|
|
42
|
+
isEsTh(th: any): th is EsTh;
|
|
43
|
+
/**
|
|
44
|
+
* Date le informazioni di paginazione ottiene l'array dei pulsanti
|
|
45
|
+
*
|
|
46
|
+
* @param {number} maxBtns Numero massimo di pulsanti da visualizzare
|
|
47
|
+
* @param {number} page Pagina corrente
|
|
48
|
+
* @param {number} lastPage Ultima pagina disponibile
|
|
49
|
+
*
|
|
50
|
+
* @returns {any[]} Pseudo-array di pulsanti a cui ci si può bindare lato HTML
|
|
51
|
+
*/
|
|
52
|
+
getPagesArray(maxBtns: number, page: number, lastPage: number, actualCount?: number, ipp?: number): any[];
|
|
53
|
+
/**
|
|
54
|
+
* Calcola l'hash di un oggetto qualsiasi
|
|
55
|
+
*
|
|
56
|
+
* @param {any[]} items Oggetti per cui calcolare l'hash
|
|
57
|
+
*/
|
|
58
|
+
calculateHash(items: any[]): void;
|
|
59
|
+
/**
|
|
60
|
+
* 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)
|
|
61
|
+
*
|
|
62
|
+
* @param {T} inputValue Valore dell'Input
|
|
63
|
+
* @param {T} defaultValue Valore di default impostato da configurazione
|
|
64
|
+
* @param {T} fallbackValue Valore dell'Input per quando non è stato assegnato dal programmatore e non ha un default
|
|
65
|
+
*/
|
|
66
|
+
InputOrDefault<T>(inputValue: T, defaultValue: T, fallbackValue?: T): T;
|
|
67
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./classes/ColumnMetadataHandler";
|
|
2
|
+
export * from "./classes/DynamicModeHandler";
|
|
3
|
+
export * from "./classes/ExportHandler";
|
|
4
|
+
export * from "./classes/HierarchyModeHandler";
|
|
5
|
+
export * from "./classes/ItemsHandler";
|
|
6
|
+
export * from "./classes/ReportModeHandler";
|
|
7
|
+
export * from "./classes/RowGroupingHandler";
|
|
8
|
+
export * from "./classes/SelectionHandler";
|
|
9
|
+
export * from "./classes/UtilitiesHandler";
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { TemplateRef } from '@angular/core';
|
|
2
|
+
/** Direttiva per la dichiarazione snella di un EsTd da emettere per ogni elemento, data una colonna */
|
|
2
3
|
export declare class EsTdDirective {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
Template: TemplateRef<any>;
|
|
5
|
+
/** Variabile interna che indica il fatto che questo componente è una direttiva. Serve per disambigualrlo dell'EsTdComponent */
|
|
6
|
+
_directive: boolean;
|
|
7
|
+
/** Indica se la cella è visibile o meno di default */
|
|
8
|
+
tdVisible: boolean;
|
|
9
|
+
/** Id della colonna, fa riferimento al **th** padre */
|
|
10
|
+
td: string;
|
|
11
|
+
/** Equivalente dell'NgIf sul td */
|
|
12
|
+
tdIf: boolean;
|
|
13
|
+
/** Eventuali classi da applicare al **td** generato */
|
|
14
|
+
tdClass: string;
|
|
15
|
+
/**
|
|
16
|
+
* @ignore
|
|
17
|
+
*/
|
|
18
|
+
constructor(Template: TemplateRef<any>);
|
|
6
19
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TemplateRef } from "@angular/core";
|
|
2
|
+
import { ThAggregation } from "../domain";
|
|
3
|
+
/** Direttiva per la dichiarazione snella di un EsTh da emettere come header */
|
|
4
|
+
export declare class EsThDirective {
|
|
5
|
+
Template: TemplateRef<any>;
|
|
6
|
+
/** Variabile interna all'interno della quale viene raccolta la cache delle aggregazioni specificate in thAggregation */
|
|
7
|
+
_thAggregations: ThAggregation[];
|
|
8
|
+
/** Variabile interna che indica il fatto che questo componente è una direttiva. Serve per disambigualrlo dell'EsThComponent */
|
|
9
|
+
_directive: boolean;
|
|
10
|
+
/** Variabile interna impostata dall'**EsTable**, per controllare che ci sia almeno un TD che utilizzi quest'header */
|
|
11
|
+
_referenced: boolean;
|
|
12
|
+
/** Id della colonna, dev'essere lo stesso per tutti i **td** relativi */
|
|
13
|
+
th: string;
|
|
14
|
+
/** Indica se la colonna è pinnata o no */
|
|
15
|
+
thPinned: boolean;
|
|
16
|
+
/** Indica le dimensioni che deve avere questa colonna quando viene pinnata, senza questo tutte le colonne mi collasserebbero l'una sull'altra */
|
|
17
|
+
thPinnedWidth: number;
|
|
18
|
+
/** Indicazione sulla visibilità della colonna */
|
|
19
|
+
thVisible: boolean;
|
|
20
|
+
/** Indica se la colonna è fixed, cioè se non può né essere nascosta, né riposizionata. Solo le prime colonne possono essere Fixed */
|
|
21
|
+
thFixed: boolean;
|
|
22
|
+
/** Indica che la colonna è sotto ad un raggruppamento padre, con questo nome nel **th** */
|
|
23
|
+
thParent: string;
|
|
24
|
+
/** Ordinamento attuale della colonna */
|
|
25
|
+
thOrder?: 'DESC' | 'ASC';
|
|
26
|
+
/** Indica se questa colonna è ordinabile o meno */
|
|
27
|
+
thOrderable: boolean;
|
|
28
|
+
/** Indica se il testo presente in questo Header può andare a capo o meno, di default non può */
|
|
29
|
+
thWrap: boolean;
|
|
30
|
+
/** Indica se le dimnsioni di questa colonna sono modificabili o meno */
|
|
31
|
+
thResizable: boolean;
|
|
32
|
+
/** Classi da applicare all'Header della colonna */
|
|
33
|
+
thClass: string;
|
|
34
|
+
/** Classi da applicare alle righe quando rappresentano un Gruppo */
|
|
35
|
+
thGroupClass: string;
|
|
36
|
+
/** Equivalente dell'NgIf sul th */
|
|
37
|
+
thIf: boolean;
|
|
38
|
+
/** Indica che bisogna fare un raggruppamento su questa colonna */
|
|
39
|
+
thGroup: boolean;
|
|
40
|
+
/** Indica che bisogna fare una aggregazione su questa colonna, a fronte di almeno un altra con un raggruppamento */
|
|
41
|
+
thAggregation: string;
|
|
42
|
+
/**
|
|
43
|
+
* @ignore
|
|
44
|
+
*/
|
|
45
|
+
constructor(Template: TemplateRef<any>);
|
|
46
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Raccolta di tutti gli Input dell'EsTable a cui può essere logicamente sensato assegnare default per progetto */
|
|
2
|
+
export declare class EsTableDefaultable {
|
|
3
|
+
/** @ignore Vedi **EsTableComponent** */ ColumnsResizable?: boolean;
|
|
4
|
+
/** @ignore Vedi **EsTableComponent** */ AutoUpdate?: boolean;
|
|
5
|
+
/** @ignore Vedi **EsTableComponent** */ AllSearch?: boolean;
|
|
6
|
+
/** @ignore Vedi **EsTableComponent** */ Export?: boolean;
|
|
7
|
+
/** @ignore Vedi **EsTableComponent** */ HidePaging?: boolean;
|
|
8
|
+
/** @ignore Vedi **EsTableComponent** */ HidePagingCount?: boolean;
|
|
9
|
+
/** @ignore Vedi **EsTableComponent** */ HidePagingButtons?: boolean;
|
|
10
|
+
/** @ignore Vedi **EsTableComponent** */ ContainerClass?: string;
|
|
11
|
+
/** @ignore Vedi **EsTableComponent** */ TableClass?: string;
|
|
12
|
+
/** @ignore Vedi **EsTableComponent** */ Selection?: boolean;
|
|
13
|
+
/** @ignore Vedi **EsTableComponent** */ SavePreferences?: boolean;
|
|
14
|
+
/** @ignore Vedi **EsTableComponent** */ PagingStyle?: 'both' | 'top' | 'bottom';
|
|
15
|
+
/** @ignore Vedi **EsTableComponent** */ RowGroupingPagingStyle?: 'left' | 'right';
|
|
16
|
+
/** @ignore Vedi **EsTableComponent** */ UseSelectionCache?: boolean;
|
|
17
|
+
/** @ignore Vedi **EsTableComponent** */ ShowItemGroupsColumns?: boolean;
|
|
18
|
+
/** @ignore Vedi **EsTableComponent** */ ArraymodeItemsPerPage?: number;
|
|
19
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EsTableDefaultable } from "./EsTableDefaultable";
|
|
2
|
+
/** Modello di configurazione per L'EsTable */
|
|
3
|
+
export declare class EsTableModuleConfig {
|
|
4
|
+
/** Locale da utilizzare per i messaggi, supportati "it-IT" ed "en-US" */
|
|
5
|
+
locale?: string;
|
|
6
|
+
/** Indica se scrivere messaggi di log a console */
|
|
7
|
+
debugMode?: boolean;
|
|
8
|
+
/** Eventuali proprietà di default per l'EsTable */
|
|
9
|
+
EsTableDefaults?: EsTableDefaultable;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Indica un'opzione cliccabile nel Corner Menù della tabella (il menù richiamabile dai 3 pallini verticli in alto a destra) */
|
|
2
|
+
export declare class CornerMenuOption {
|
|
3
|
+
/** Id dell'operazione. I callback relativi verranno effettuati con questo */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Descrizione dell'operazione da presentare all'utente */
|
|
6
|
+
description: string;
|
|
7
|
+
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Classe che identifica una colonna. Utilizzata in modalità "Colonne dinamiche"
|
|
3
|
-
*/
|
|
1
|
+
/** Classe che identifica una colonna. Utilizzata in modalità "Colonne dinamiche" */
|
|
4
2
|
export declare class EsTableColumnsDefinition {
|
|
5
3
|
description: string;
|
|
6
4
|
propertyName: string;
|
|
@@ -11,6 +9,7 @@ export declare class EsTableColumnsDefinition {
|
|
|
11
9
|
visible: boolean;
|
|
12
10
|
clss: string;
|
|
13
11
|
orderable: boolean;
|
|
12
|
+
headerWraps: boolean;
|
|
14
13
|
/**
|
|
15
14
|
* Costruttore
|
|
16
15
|
*
|
|
@@ -24,10 +23,9 @@ export declare class EsTableColumnsDefinition {
|
|
|
24
23
|
* @param {boolean} visible Visibilità o meno della colonna
|
|
25
24
|
* @param {string} clss Classe da applicare sia ai TD che ai TH relativi a questa colonna
|
|
26
25
|
* @param {boolean} orderable Indica se la colonna è ordinabile o no (nel senso ASC / DESC / NONE)
|
|
26
|
+
* @param {boolean} headerWraps Indica se il testo dell'header dev'essere wrappato all'interno del th. Di default no.
|
|
27
27
|
*/
|
|
28
|
-
constructor(description: string, propertyName: string, routePath?: string, routeParameterProperties?: string[], dataOrder?: 'ASC' | 'DESC', columnOrder?: number, visible?: boolean, clss?: string, orderable?: boolean);
|
|
29
|
-
/**
|
|
30
|
-
* Routerlink che verrà generato a runtime basandosi sulle informazioni di **routePath** e **routeParameterProperties**
|
|
31
|
-
*/
|
|
28
|
+
constructor(description: string, propertyName: string, routePath?: string, routeParameterProperties?: string[], dataOrder?: 'ASC' | 'DESC', columnOrder?: number, visible?: boolean, clss?: string, orderable?: boolean, headerWraps?: boolean);
|
|
29
|
+
/** Routerlink che verrà generato a runtime basandosi sulle informazioni di **routePath** e **routeParameterProperties** */
|
|
32
30
|
routerLink: any;
|
|
33
31
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Indica operazioni dinamiche generiche che possono essere effettuate per riga. Appaiono come colonne extra sul lato sinistro della tabella
|
|
3
|
-
*/
|
|
1
|
+
/** Indica operazioni dinamiche generiche che possono essere effettuate per riga. Appaiono come colonne extra sul lato sinistro della tabella */
|
|
4
2
|
export declare class EsTableOperationDefinition {
|
|
5
3
|
id: string;
|
|
6
4
|
title: string;
|
|
File without changes
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { AppOrdering } from './AppOrdering';
|
|
2
|
+
import { ItemsSelection } from './ItemsSelection';
|
|
3
|
+
import { Group } from './Group';
|
|
4
|
+
import { GroupFilter } from './GroupFilter';
|
|
5
|
+
import { GroupOrAggregation } from './GroupOrAggregation';
|
|
6
|
+
/**
|
|
7
|
+
* Classe che identifica una ricerca paginata in tutte le sue sfumature (di grigio)
|
|
8
|
+
*/
|
|
9
|
+
export declare class AppSearch<T> {
|
|
10
|
+
/**
|
|
11
|
+
* Costruttore che genera un'istanza coi valori di default e impostando **firstsearch** a **true**
|
|
12
|
+
*/
|
|
13
|
+
constructor();
|
|
14
|
+
/** Indica se c'è una ricerca in corso */
|
|
15
|
+
searchinprogress: boolean;
|
|
16
|
+
/** Indica il numero totale di pagine trovate dalla ricerca. Ogni pagina è una lista di **itemsperpageoverride** oggetti */
|
|
17
|
+
pages: number;
|
|
18
|
+
/** Conteggio totale degli oggetti trovati (inclusi quelli in pagine non attualmente selezionate) */
|
|
19
|
+
objectcount: number;
|
|
20
|
+
/** Conteggio totale dei gruppi trovati (inclusi quelli in pagine non attualmente selezionate) */
|
|
21
|
+
groupcount: number;
|
|
22
|
+
/** Pagina attualmente in visualizzazione */
|
|
23
|
+
page: number;
|
|
24
|
+
/** Numero di oggetti da persentare in ogni pagina. Per convenzione si considera valorizzato a 15 se non fornito */
|
|
25
|
+
itemsperpageoverride: number;
|
|
26
|
+
/** Lista degli oggetti nella pagina attualmente in visualizzazione */
|
|
27
|
+
items: T[];
|
|
28
|
+
/** Dizionario contenente tutti i gruppi paginati */
|
|
29
|
+
groups: Group[];
|
|
30
|
+
/** Lista di colonne per cui ordinare */
|
|
31
|
+
orders: AppOrdering[];
|
|
32
|
+
/** Lista di colonne da visualizzare */
|
|
33
|
+
columns: string[];
|
|
34
|
+
/** Lista di colonne nell'ordine corretto */
|
|
35
|
+
column_ordering: string[];
|
|
36
|
+
/** 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 */
|
|
37
|
+
savedstate: boolean;
|
|
38
|
+
/** Indica se bisogna ancora effettuare la prima ricerca */
|
|
39
|
+
firstsearch: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Oggetto che indica la selezione corrente.
|
|
42
|
+
*
|
|
43
|
+
* Se **all** è **true** vuole dire che è tutto selezionato ed eventualmente ci sono delle esclusioni (**exclusions**)
|
|
44
|
+
* Se **all** è **false** vuol dire che sono selezionati **item** specifici
|
|
45
|
+
*
|
|
46
|
+
* In base all'Input **UseSelectionCache** le proprietà **exclusions** e **items** fanno riferimento o alla pagina corrente (se **false**)
|
|
47
|
+
* o all'intera ricerca (se **true**)
|
|
48
|
+
*/
|
|
49
|
+
selection: ItemsSelection<T>;
|
|
50
|
+
/**
|
|
51
|
+
* Indica che la ricerca è stata richiesta dall'estable. Questa variabile NON deve essere toccata. È gestita al 100% dall'es-table.
|
|
52
|
+
*
|
|
53
|
+
* L'unica cosa che serve è che nel modello lato C# sia presente in modo da non perderla durante la serializzazione
|
|
54
|
+
*/
|
|
55
|
+
internalsearchrequest: boolean;
|
|
56
|
+
/** Raggruppamenti da fare per questa query. Se impostato e non ci sono **filtergroup** mi aspetto di ricevere oggetti nel campo **groups** */
|
|
57
|
+
groupings: GroupOrAggregation[];
|
|
58
|
+
/**
|
|
59
|
+
* Filtro da applicare ai gruppi. Qualora il numero di filtri qui fosse uguale al numero di raggruppamenti mi inizio ad apettare di ricevere oggetti
|
|
60
|
+
* sul campo **items**, in caso contrario mi aspetto di ricevere o i gruppi nel campo **groups** o l'N-esimo livello dei gruppi
|
|
61
|
+
*/
|
|
62
|
+
requestedgroups: GroupFilter[];
|
|
63
|
+
/**
|
|
64
|
+
* Permette di resettare questo oggetto ai valori di default
|
|
65
|
+
*/
|
|
66
|
+
reset(): void;
|
|
67
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Classe che definisce un oggetto generico come lista di proprietà-valore */
|
|
2
|
+
export declare class GenericItem {
|
|
3
|
+
/** @ignore */
|
|
4
|
+
constructor();
|
|
5
|
+
/** Dizionario delle proprietà dell'oggeto con il loro valore */
|
|
6
|
+
properties: Record<string, string>;
|
|
7
|
+
/** Indica se l'oggetto in questione è selezionato o meno */
|
|
8
|
+
_selected: boolean;
|
|
9
|
+
/** Viene valorizzato da un eventuale **RowClassAssigner** (o automaticamente se in modalità gerarchica) e serve applicare stili particolari alla intera riga */
|
|
10
|
+
_rowClass: string;
|
|
11
|
+
/** Hash dell'oggetto per generare i contesti di bind all'interno dell'es-table (vedere eventualmente l'implementazione specifica) */
|
|
12
|
+
_hash: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { GroupAggregation } from "./GroupAggregation";
|
|
2
|
+
/** Classe che rappresenta un Gruppo con le proprie aggregazioni */
|
|
3
|
+
export declare class Group {
|
|
4
|
+
column: string;
|
|
5
|
+
count: number;
|
|
6
|
+
value: string;
|
|
7
|
+
/**
|
|
8
|
+
* Costruttore
|
|
9
|
+
*
|
|
10
|
+
* @param {string} column ID della colonna raggruppata
|
|
11
|
+
* @param {number} count Numero di elementi raggruppati sotto questa colonna
|
|
12
|
+
* @param {string} value Valore del Gruppo
|
|
13
|
+
*/
|
|
14
|
+
constructor(column: string, count: number, value: string);
|
|
15
|
+
/** Aggregazioni presenti su questo gruppo, valide per tutte le altre colonne (non a loro volta gruppate) */
|
|
16
|
+
aggregations: GroupAggregation[];
|
|
17
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Classe che rappresenta un'aggregazione */
|
|
2
|
+
export declare class GroupAggregation {
|
|
3
|
+
column: string;
|
|
4
|
+
aggregation: 'min' | 'max' | 'sum';
|
|
5
|
+
value: string;
|
|
6
|
+
/**
|
|
7
|
+
* Costruttore
|
|
8
|
+
*
|
|
9
|
+
* @param {string} column ID della colonna aggregata
|
|
10
|
+
* @param {'min' | 'max' | 'sum' } aggregation Aggregazione da effettuare su questa colonna
|
|
11
|
+
* @param {string} value Valore dell'aggregazione
|
|
12
|
+
*/
|
|
13
|
+
constructor(column: string, aggregation: 'min' | 'max' | 'sum', value: string);
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Classe che rappresenta un filtro su un gruppo */
|
|
2
|
+
export declare class GroupFilter {
|
|
3
|
+
column: string;
|
|
4
|
+
value: string;
|
|
5
|
+
/**
|
|
6
|
+
* Costruttore
|
|
7
|
+
*
|
|
8
|
+
* @param {string} column ID della colonna gruppata per cui si richiede di filtrare
|
|
9
|
+
* @param {string} value Valore del gruppo su questa **column** per cui si richiede di filtrare
|
|
10
|
+
*/
|
|
11
|
+
constructor(column: string, value: string);
|
|
12
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Classe che rappresenta o un gruppo o una aggregazione su una colonna. Usata solo internamente */
|
|
2
|
+
export declare class GroupOrAggregation {
|
|
3
|
+
column: string;
|
|
4
|
+
aggregation?: 'min' | 'max' | 'sum';
|
|
5
|
+
datatype?: 'string' | 'date' | 'number';
|
|
6
|
+
/**
|
|
7
|
+
* Costruttore
|
|
8
|
+
*
|
|
9
|
+
* @param {string} column Colonna su cui è presente o un gruppo o un'aggregazione
|
|
10
|
+
* @param {'min' | 'max' | 'sum' } aggregation Aggregazione presente sulla **column**. Se questo campo è nullo significa che è un gruppo.
|
|
11
|
+
* @param {'string' | 'date' | 'number'} datatype Tipo di dati contenuto nella colonna **column** se non c'è alcuna aggregazione è inutile, pertanto non sarà valorizzato
|
|
12
|
+
*/
|
|
13
|
+
constructor(column: string, aggregation?: 'min' | 'max' | 'sum', datatype?: 'string' | 'date' | 'number');
|
|
14
|
+
}
|