@esfaenza/es-table 16.2.29 → 17.3.16

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 (123) hide show
  1. package/esm2022/esfaenza-es-table.mjs +4 -4
  2. package/esm2022/lib/components/es-table/es_table.component.loc.mjs +38 -38
  3. package/esm2022/lib/components/es-table/es_table.component.mjs +1891 -1891
  4. package/esm2022/lib/components/es-td/es_td.component.mjs +40 -40
  5. package/esm2022/lib/components/es-th/es_th.component.mjs +176 -176
  6. package/esm2022/lib/components/pager/table_pager.component.loc.mjs +20 -20
  7. package/esm2022/lib/components/pager/table_pager.component.mjs +111 -111
  8. package/esm2022/lib/components/pipes/est-format.pipe.mjs +44 -44
  9. package/esm2022/lib/components/pipes/est-lookup.pipe.mjs +19 -19
  10. package/esm2022/lib/components/pipes/est-propinsensitive.pipe.mjs +19 -19
  11. package/esm2022/lib/components/pipes/est-renderer.pipe.mjs +36 -36
  12. package/esm2022/lib/components/pipes/est-routerlink.pipe.mjs +41 -41
  13. package/esm2022/lib/components/pipes/est_editor.pipe.mjs +36 -36
  14. package/esm2022/lib/core/CopyPasteDetector.mjs +27 -27
  15. package/esm2022/lib/core/Logger.mjs +25 -25
  16. package/esm2022/lib/core/handlers/ColumnMetadataHandler.mjs +835 -835
  17. package/esm2022/lib/core/handlers/DynamicModeHandler.mjs +109 -109
  18. package/esm2022/lib/core/handlers/ExportHandler.mjs +32 -32
  19. package/esm2022/lib/core/handlers/HierarchyModeHandler.mjs +136 -136
  20. package/esm2022/lib/core/handlers/ItemsHandler.mjs +119 -119
  21. package/esm2022/lib/core/handlers/ReportModeHandler.mjs +60 -60
  22. package/esm2022/lib/core/handlers/RowGroupingHandler.mjs +480 -480
  23. package/esm2022/lib/core/handlers/SelectionHandler.mjs +778 -778
  24. package/esm2022/lib/core/handlers/UtilitiesHandler.mjs +151 -151
  25. package/esm2022/lib/directives/es_td.directive.mjs +54 -54
  26. package/esm2022/lib/directives/es_td_editor.directive.mjs +24 -24
  27. package/esm2022/lib/directives/es_th.directive.mjs +130 -130
  28. package/esm2022/lib/directives/es_th_td_provider.directive.mjs +34 -34
  29. package/esm2022/lib/domain/configuration/EsTableDefaultable.mjs +3 -3
  30. package/esm2022/lib/domain/configuration/EsTableModuleConfig.mjs +3 -3
  31. package/esm2022/lib/domain/externals/CornerMenuOption.mjs +3 -3
  32. package/esm2022/lib/domain/externals/EsTableColumnsDefinition.mjs +47 -47
  33. package/esm2022/lib/domain/externals/EsTableModelChange.mjs +18 -18
  34. package/esm2022/lib/domain/externals/EsTableOperationDefinition.mjs +21 -21
  35. package/esm2022/lib/domain/externals/ItemPropEditableReference.mjs +3 -3
  36. package/esm2022/lib/domain/externals/appsearch/AppOrdering.mjs +15 -15
  37. package/esm2022/lib/domain/externals/appsearch/AppSearch.mjs +65 -65
  38. package/esm2022/lib/domain/externals/appsearch/EsTableMultiValue.mjs +24 -24
  39. package/esm2022/lib/domain/externals/appsearch/GenericItem.mjs +10 -10
  40. package/esm2022/lib/domain/externals/appsearch/Group.mjs +16 -16
  41. package/esm2022/lib/domain/externals/appsearch/GroupAggregation.mjs +15 -15
  42. package/esm2022/lib/domain/externals/appsearch/GroupFilter.mjs +13 -13
  43. package/esm2022/lib/domain/externals/appsearch/GroupOrAggregation.mjs +15 -15
  44. package/esm2022/lib/domain/externals/appsearch/ItemsSelection.mjs +22 -22
  45. package/esm2022/lib/domain/externals/report/ReportColumn.mjs +3 -3
  46. package/esm2022/lib/domain/externals/report/ReportParam.mjs +3 -3
  47. package/esm2022/lib/domain/externals/report/ReportRow.mjs +3 -3
  48. package/esm2022/lib/domain/internals/CacheTriptic.mjs +15 -15
  49. package/esm2022/lib/domain/internals/EsTableColumn.mjs +31 -31
  50. package/esm2022/lib/domain/internals/GroupPager.mjs +22 -22
  51. package/esm2022/lib/domain/internals/GroupRouteFragment.mjs +16 -16
  52. package/esm2022/lib/domain/internals/PagerInfos.mjs +14 -14
  53. package/esm2022/lib/domain/internals/TdElement.mjs +1 -1
  54. package/esm2022/lib/domain/internals/ThAggregation.mjs +15 -15
  55. package/esm2022/lib/domain/internals/ThElement.mjs +1 -1
  56. package/esm2022/lib/domain/internals/ThGroup.mjs +1 -1
  57. package/esm2022/lib/domain/types.mjs +1 -1
  58. package/esm2022/lib/es-table.module.mjs +125 -125
  59. package/esm2022/lib/tokens.mjs +5 -5
  60. package/esm2022/public-api.mjs +27 -27
  61. package/fesm2022/esfaenza-es-table.mjs +5777 -5777
  62. package/fesm2022/esfaenza-es-table.mjs.map +1 -1
  63. package/index.d.ts +5 -5
  64. package/lib/components/es-table/es_table.component.d.ts +738 -738
  65. package/lib/components/es-table/es_table.component.loc.d.ts +10 -10
  66. package/lib/components/es-td/es_td.component.d.ts +26 -26
  67. package/lib/components/es-th/es_th.component.d.ts +92 -92
  68. package/lib/components/pager/table_pager.component.d.ts +56 -56
  69. package/lib/components/pager/table_pager.component.loc.d.ts +10 -10
  70. package/lib/components/pipes/est-format.pipe.d.ts +10 -10
  71. package/lib/components/pipes/est-lookup.pipe.d.ts +13 -13
  72. package/lib/components/pipes/est-propinsensitive.pipe.d.ts +7 -7
  73. package/lib/components/pipes/est-renderer.pipe.d.ts +15 -15
  74. package/lib/components/pipes/est-routerlink.pipe.d.ts +20 -20
  75. package/lib/components/pipes/est_editor.pipe.d.ts +15 -15
  76. package/lib/core/CopyPasteDetector.d.ts +15 -15
  77. package/lib/core/Logger.d.ts +10 -10
  78. package/lib/core/handlers/ColumnMetadataHandler.d.ts +189 -189
  79. package/lib/core/handlers/DynamicModeHandler.d.ts +22 -22
  80. package/lib/core/handlers/ExportHandler.d.ts +18 -18
  81. package/lib/core/handlers/HierarchyModeHandler.d.ts +40 -40
  82. package/lib/core/handlers/ItemsHandler.d.ts +35 -35
  83. package/lib/core/handlers/ReportModeHandler.d.ts +27 -27
  84. package/lib/core/handlers/RowGroupingHandler.d.ts +118 -118
  85. package/lib/core/handlers/SelectionHandler.d.ts +230 -230
  86. package/lib/core/handlers/UtilitiesHandler.d.ts +57 -57
  87. package/lib/directives/es_td.directive.d.ts +42 -42
  88. package/lib/directives/es_td_editor.directive.d.ts +14 -14
  89. package/lib/directives/es_th.directive.d.ts +107 -107
  90. package/lib/directives/es_th_td_provider.directive.d.ts +15 -15
  91. package/lib/domain/configuration/EsTableDefaultable.d.ts +21 -21
  92. package/lib/domain/configuration/EsTableModuleConfig.d.ts +8 -8
  93. package/lib/domain/externals/CornerMenuOption.d.ts +7 -7
  94. package/lib/domain/externals/EsTableColumnsDefinition.d.ts +56 -56
  95. package/lib/domain/externals/EsTableModelChange.d.ts +17 -17
  96. package/lib/domain/externals/EsTableOperationDefinition.d.ts +20 -20
  97. package/lib/domain/externals/ItemPropEditableReference.d.ts +34 -34
  98. package/lib/domain/externals/appsearch/AppOrdering.d.ts +14 -14
  99. package/lib/domain/externals/appsearch/AppSearch.d.ts +100 -100
  100. package/lib/domain/externals/appsearch/EsTableMultiValue.d.ts +22 -22
  101. package/lib/domain/externals/appsearch/GenericItem.d.ts +13 -13
  102. package/lib/domain/externals/appsearch/Group.d.ts +17 -17
  103. package/lib/domain/externals/appsearch/GroupAggregation.d.ts +14 -14
  104. package/lib/domain/externals/appsearch/GroupFilter.d.ts +12 -12
  105. package/lib/domain/externals/appsearch/GroupOrAggregation.d.ts +14 -14
  106. package/lib/domain/externals/appsearch/ItemsSelection.d.ts +22 -22
  107. package/lib/domain/externals/report/ReportColumn.d.ts +19 -19
  108. package/lib/domain/externals/report/ReportParam.d.ts +40 -40
  109. package/lib/domain/externals/report/ReportRow.d.ts +9 -9
  110. package/lib/domain/internals/CacheTriptic.d.ts +14 -14
  111. package/lib/domain/internals/EsTableColumn.d.ts +41 -41
  112. package/lib/domain/internals/GroupPager.d.ts +26 -26
  113. package/lib/domain/internals/GroupRouteFragment.d.ts +15 -15
  114. package/lib/domain/internals/PagerInfos.d.ts +13 -13
  115. package/lib/domain/internals/TdElement.d.ts +57 -57
  116. package/lib/domain/internals/ThAggregation.d.ts +14 -14
  117. package/lib/domain/internals/ThElement.d.ts +24 -24
  118. package/lib/domain/internals/ThGroup.d.ts +10 -10
  119. package/lib/domain/types.d.ts +2 -2
  120. package/lib/es-table.module.d.ts +35 -35
  121. package/lib/tokens.d.ts +6 -6
  122. package/package.json +14 -14
  123. package/public-api.d.ts +27 -27
@@ -1,230 +1,230 @@
1
- import { ItemsSelection } from "../../domain/externals/appsearch/ItemsSelection";
2
- import { ItemPropEditableReference } from "../../domain/externals/ItemPropEditableReference";
3
- import { EsTableColumnsDefinition } from "../../domain/externals/EsTableColumnsDefinition";
4
- import { InputType } from '../../domain/types';
5
- import { EsTableComponent } from "../../components/es-table/es_table.component";
6
- import { EsThDirective } from "../../directives/es_th.directive";
7
- import { RowGroupingHandler } from "./RowGroupingHandler";
8
- /** Classe che gestisce le selezioni degli oggetti */
9
- export declare class SelectionHandler {
10
- private est;
11
- private rgHandler;
12
- /** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via hash*/
13
- private itemsCache;
14
- /** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via hash */
15
- private groupsCache;
16
- /** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
17
- private exclusionsCache;
18
- /** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
19
- private group_exclusionsCache;
20
- /** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via indice*/
21
- private i_itemsCache;
22
- /** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via indice */
23
- private i_groupsCache;
24
- /** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
25
- private i_exclusionsCache;
26
- /** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
27
- private i_group_exclusionsCache;
28
- /** Ultima cella selezionata singolarmente */
29
- private lastSingleSelection;
30
- /** @ignore Costruttore */
31
- constructor(est: EsTableComponent, rgHandler: RowGroupingHandler);
32
- /** Ripulisce le cache di selezione */
33
- clearSelectionCaches(): void;
34
- /**
35
- * Valuta quali elementi devono essere marcati come selezionati nella vista attuale. Si basa sull'oggetto **selection** interno all'AppSearch
36
- *
37
- * @param {any[]} items Oggetti di cui valutare la selezione
38
- * @param {ItemsSelection<any>} selectionItem Oggetti di selezione derivante dalla view o dall'oggetto per Array
39
- */
40
- evaluateSelection(items: any[], selectionItem: ItemsSelection<any>): void;
41
- /**
42
- * Precompila le informazioni sullo stato di selezione tutto a false per le celle della tabella
43
- *
44
- * @param {any[]} items Oggetti attualmente bindati sulla tabella
45
- * @param {EsThDirective[]} ths Colonne su cui gli oggetti sono bindati
46
- */
47
- evaluateSingleCellSelection(items: any[], ths: EsThDirective[], dyn: EsTableColumnsDefinition[]): void;
48
- /** @ignore */
49
- private fillSelectionStatusByDynamicColumns;
50
- /** @ignore */
51
- private fillSelectionStatusByEsThs;
52
- /**
53
- * Implementazione agnostica della valutazione delle selezioni degli oggetti. Richiede gli oggetti della vista attuale e l'itemSelector
54
- *
55
- * @param {any[]} items Oggetti di cui aggiornare lo stato di selezione
56
- * @param {ItemsSelection<any>} selectionItem Oggetto contenente lo stato attuale di selezione
57
- */
58
- private handleSelectionEvaluation;
59
- /**
60
- * Dato un oggetto trova la cella di cache in cui è registrato e aggiorna il contenuto
61
- *
62
- * @param {any} item Oggetto da aggiornare
63
- */
64
- private rehidrateCache;
65
- /**
66
- * Dato un gruppo controlla ricorsivamente l'albero di cui fa parte se c'è stata una inclusione o esclusione diretta
67
- *
68
- * @param {any} grp Gruppo da controllare
69
- *
70
- * @returns {'none' | 'excluded' | 'included'}
71
- * 'none' se non ci sono informazioni su inclusioni o esclusioni
72
- * 'included' se il gruppo controllato è stato incluso in maniera esplicita dall'albero dei gruppi padri
73
- * 'excluded' se il gruppo controllato è stato escluso in maniera esplicita dall'albero dei gruppi padri
74
- */
75
- private parentTreeStatus;
76
- /**
77
- * Helper per gestire la selezione di N elementi utilizzando la Cache di selezione ed eventualmente aggiornando il concetto di "all selection"
78
- *
79
- * Vunziona sia in modalità Array che in modalità View Semplice o View Avanzata (con le Custom Cells)
80
- *
81
- * @param {any[]} items Oggetti da selezionare o deselezionare
82
- * @param {boolean} forcedVal Valore forzato di check da assegnare agli oggetti
83
- * @param {boolean} globalCheck Valore del check globale
84
- *
85
- * @returns {ItemsSelection<any>} Oggetto di selezione aggiornato con le informazioni sull'ultima operazione effettuata
86
- */
87
- handleItemsSelection(items: any[], forcedVal?: boolean, globalCheck?: boolean): ItemsSelection<any>;
88
- /**
89
- * Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
90
- *
91
- * Logica semplificata rispetto all'originale **performSelectionOperations** per lavorare in una modalità in cui tutti gli elementi sono caricati (**ArrayGrouping** = true)
92
- */
93
- private performSimpleSelectionOperations;
94
- /**
95
- * Helper per selezionare un gruppo e, ricorsivamente, se tutti i gruppi sottostanti al parent sono selezionati, selezionare i gruppi padri
96
- *
97
- * @param {any} group Gruppo da selezionare
98
- */
99
- private selectGroup;
100
- /**
101
- * Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
102
- *
103
- * La logica di questa funzione è nata essenzialmente da spam di trial & error ed è stata testata solo fino a due livelli di raggruppamento,
104
- * qualsiasi cosa vada oltre non è 100% detto che funzioni...
105
- */
106
- private performSelectionOperations;
107
- /** Helper per evitare di riscrivere ogni santa volta array.splice(array.indexof(item), 1); */
108
- private removeItem;
109
- /** Helper per evitare di riscrivere ogni santa volta array.push(item); e la gestione della */
110
- private addItem;
111
- /**
112
- * Ottiene il trittico di selezione, cioè l'array degli oggetti che si vuole manipolare e le due cache collegate ad esso
113
- *
114
- * @param {'group' | 'item' | 'group_exclusion' | 'exclusion'} subject Oggetto logico desiderato su cui effettuare le operazioni successive
115
- * @param {ItemsSelection<any>} base Selettore di base
116
- *
117
- * @returns {CacheTriptic} Trittico di selezione
118
- */
119
- private getTriptic;
120
- /**
121
- * Dato un oggetto restituisce il gruppo di cui fa parte, se esiste
122
- *
123
- * @param {any} item Oggetto di cui trovare il gruppo
124
- */
125
- private getItemGroup;
126
- /**
127
- * Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
128
- *
129
- * @param {any} group Chiave da cercare
130
- * @param {'selected' | 'unselected'} status Stato degli elementi, selezionati o no
131
- * @param {boolean} recursive Indica se cercare solo gli elementi direttamente collegati o se prendere anche quelli dei gruppi figli
132
- *
133
- * @returns {any[]} Oggetti di tipo **_item** facenti capo alla chiave **groupKey**
134
- */
135
- private getGroupItems;
136
- /**
137
- * Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
138
- *
139
- * @param {any} group Gruppo di cui cercare il parent
140
- *
141
- * @returns {any} Oggetto di tipo **_group** rappresentante il parent del **group** attuale
142
- */
143
- private getGroupParent;
144
- /**
145
- * Data la chiave di un gruppo restituisce tutti i gruppi figli
146
- *
147
- * @param {string} group Gruppo che rappresenta il padre di cui cercare i figli
148
- * @param {'selected' | 'unselected'} status Stato dei gruppi, selezionati o no
149
- * @param {boolean} recursive Indica se cercare solo i gruppi direttamente collegati o se prendere anche quelli dei gruppi figli
150
- *
151
- * @returns {any[]} Oggetti di tipo **_group** facenti capo alla chiave **groupKey**
152
- */
153
- private getGroupChildGroups;
154
- /** Finalizza le informazioni di selezione del **ItemsSelection** corrente */
155
- private finalizeSelectionInformations;
156
- /** Compatta una cache di indici */
157
- private compactIndexMap;
158
- /**
159
- * Valuta la quantità di oggetti che sono stati selezionati al termine di un evento di selezione
160
- *
161
- * @returns {number} Numero di oggetti selezionati
162
- */
163
- private evaluateSelected;
164
- /** Gestisce il comando di "Seleziona tutto in tutte le pagine" o il suo contrario, cioè "Reimposta selezione" */
165
- selectAllOrResetSelection(): void;
166
- /**
167
- * @TODO Spostare in SelectionHandler
168
- *
169
- * Registra la selezione singola su una cella sulla combo di comandi "CTRL + Click".
170
- * Se viene premuto anche il tasto Shift viene creato un range di selezione il cui status di "selezionato" viene salvato nella
171
- * matrice virtuale **selectionStatus**
172
- *
173
- * @param {any} event Evento Javascript di Click
174
- * @param {number} row Indice della riga. Non è l'indice vero e proprio ma è l'ordinale (.ordinal) dell'oggetto bindato su quella riga
175
- * @param {number} column Indice della colonna preso banalmente dall'ngIf sui thElement
176
- * @param {{ row: number, column: number }} firstSelectionOverride Permette di overridare il primo elemento selezionato
177
- */
178
- singleCellSelection(event: {
179
- view: any;
180
- range: boolean;
181
- }, row: number, column: number, firstSelectionOverride?: {
182
- row: number;
183
- column: number;
184
- }): void;
185
- setSelectionStatusBorders(from: {
186
- row: number;
187
- column: number;
188
- }, to: {
189
- row: number;
190
- column: number;
191
- }): void;
192
- /**
193
- * Helper per ripulire lo stato di selezione delle singole celle della tabella, ad esclusione di una singola coordinata
194
- *
195
- * @param {{row: number, column: number}} exclusion Coordinata da escludere nella pulizia
196
- */
197
- clearSelectionStatusExcluding(exclusion?: {
198
- row: number;
199
- column: number;
200
- }): void;
201
- /**
202
- * Helper che esamina la matrice **selectionStatus** e ne estrappola gli elementi selezionati in una comoda matrice
203
- *
204
- * @returns {{ value: string, type: InputType, val_setter: Function }[][]} Matrice di elementi selezionati con la loro informazione sul tipo
205
- */
206
- getSelectionStatusSelection(): ItemPropEditableReference[][];
207
- /**
208
- * Data la matrice di selezione generata dal metodo **getSelectionStatusSelection** genera la strigna vera e propria da copiare nella Clipboard
209
- *
210
- * @param {{ value: string, type: InputType }[][]} sel Matrice di selezione con valori e tipi dei dati selezionati
211
- *
212
- * @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
213
- * in modo che siano compatibili anche con la copia su Excel
214
- */
215
- getClipbardTextFromSelection(sel: {
216
- value: string;
217
- type: InputType | string;
218
- }[][]): string;
219
- /**
220
- * Ottiene la rappresentazione stringa di un valore dato un tipo
221
- *
222
- * @param {{ value: string, type: InputType }} valType Oggetto Valore - Tipo da cui estrapolare la rappresentazione del dato in stringa
223
- *
224
- * @returns {string} Valore convertito in stringa in base al tipo
225
- */
226
- getValueByType(valType: {
227
- value: string;
228
- type: InputType | string;
229
- }): string;
230
- }
1
+ import { ItemsSelection } from "../../domain/externals/appsearch/ItemsSelection";
2
+ import { ItemPropEditableReference } from "../../domain/externals/ItemPropEditableReference";
3
+ import { EsTableColumnsDefinition } from "../../domain/externals/EsTableColumnsDefinition";
4
+ import { InputType } from '../../domain/types';
5
+ import { EsTableComponent } from "../../components/es-table/es_table.component";
6
+ import { EsThDirective } from "../../directives/es_th.directive";
7
+ import { RowGroupingHandler } from "./RowGroupingHandler";
8
+ /** Classe che gestisce le selezioni degli oggetti */
9
+ export declare class SelectionHandler {
10
+ private est;
11
+ private rgHandler;
12
+ /** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via hash*/
13
+ private itemsCache;
14
+ /** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via hash */
15
+ private groupsCache;
16
+ /** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
17
+ private exclusionsCache;
18
+ /** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via hash */
19
+ private group_exclusionsCache;
20
+ /** Cache di selezione Hash - Oggetto per la variabile **items** dell'itemSelector. Facilita le operazioni di lookup via indice*/
21
+ private i_itemsCache;
22
+ /** Cache di selezione Hash - Oggetto per la variabile **groups** dell'itemSelector. Facilita le operazioni di lookup via indice */
23
+ private i_groupsCache;
24
+ /** Cache di selezione Hash - Oggetto per la variabile **exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
25
+ private i_exclusionsCache;
26
+ /** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
27
+ private i_group_exclusionsCache;
28
+ /** Ultima cella selezionata singolarmente */
29
+ private lastSingleSelection;
30
+ /** @ignore Costruttore */
31
+ constructor(est: EsTableComponent, rgHandler: RowGroupingHandler);
32
+ /** Ripulisce le cache di selezione */
33
+ clearSelectionCaches(): void;
34
+ /**
35
+ * Valuta quali elementi devono essere marcati come selezionati nella vista attuale. Si basa sull'oggetto **selection** interno all'AppSearch
36
+ *
37
+ * @param {any[]} items Oggetti di cui valutare la selezione
38
+ * @param {ItemsSelection<any>} selectionItem Oggetti di selezione derivante dalla view o dall'oggetto per Array
39
+ */
40
+ evaluateSelection(items: any[], selectionItem: ItemsSelection<any>): void;
41
+ /**
42
+ * Precompila le informazioni sullo stato di selezione tutto a false per le celle della tabella
43
+ *
44
+ * @param {any[]} items Oggetti attualmente bindati sulla tabella
45
+ * @param {EsThDirective[]} ths Colonne su cui gli oggetti sono bindati
46
+ */
47
+ evaluateSingleCellSelection(items: any[], ths: EsThDirective[], dyn: EsTableColumnsDefinition[]): void;
48
+ /** @ignore */
49
+ private fillSelectionStatusByDynamicColumns;
50
+ /** @ignore */
51
+ private fillSelectionStatusByEsThs;
52
+ /**
53
+ * Implementazione agnostica della valutazione delle selezioni degli oggetti. Richiede gli oggetti della vista attuale e l'itemSelector
54
+ *
55
+ * @param {any[]} items Oggetti di cui aggiornare lo stato di selezione
56
+ * @param {ItemsSelection<any>} selectionItem Oggetto contenente lo stato attuale di selezione
57
+ */
58
+ private handleSelectionEvaluation;
59
+ /**
60
+ * Dato un oggetto trova la cella di cache in cui è registrato e aggiorna il contenuto
61
+ *
62
+ * @param {any} item Oggetto da aggiornare
63
+ */
64
+ private rehidrateCache;
65
+ /**
66
+ * Dato un gruppo controlla ricorsivamente l'albero di cui fa parte se c'è stata una inclusione o esclusione diretta
67
+ *
68
+ * @param {any} grp Gruppo da controllare
69
+ *
70
+ * @returns {'none' | 'excluded' | 'included'}
71
+ * 'none' se non ci sono informazioni su inclusioni o esclusioni
72
+ * 'included' se il gruppo controllato è stato incluso in maniera esplicita dall'albero dei gruppi padri
73
+ * 'excluded' se il gruppo controllato è stato escluso in maniera esplicita dall'albero dei gruppi padri
74
+ */
75
+ private parentTreeStatus;
76
+ /**
77
+ * Helper per gestire la selezione di N elementi utilizzando la Cache di selezione ed eventualmente aggiornando il concetto di "all selection"
78
+ *
79
+ * Vunziona sia in modalità Array che in modalità View Semplice o View Avanzata (con le Custom Cells)
80
+ *
81
+ * @param {any[]} items Oggetti da selezionare o deselezionare
82
+ * @param {boolean} forcedVal Valore forzato di check da assegnare agli oggetti
83
+ * @param {boolean} globalCheck Valore del check globale
84
+ *
85
+ * @returns {ItemsSelection<any>} Oggetto di selezione aggiornato con le informazioni sull'ultima operazione effettuata
86
+ */
87
+ handleItemsSelection(items: any[], forcedVal?: boolean, globalCheck?: boolean): ItemsSelection<any>;
88
+ /**
89
+ * Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
90
+ *
91
+ * Logica semplificata rispetto all'originale **performSelectionOperations** per lavorare in una modalità in cui tutti gli elementi sono caricati (**ArrayGrouping** = true)
92
+ */
93
+ private performSimpleSelectionOperations;
94
+ /**
95
+ * Helper per selezionare un gruppo e, ricorsivamente, se tutti i gruppi sottostanti al parent sono selezionati, selezionare i gruppi padri
96
+ *
97
+ * @param {any} group Gruppo da selezionare
98
+ */
99
+ private selectGroup;
100
+ /**
101
+ * Dato L'oggetto di selezione, l'oggetto da selezionare/deselezionare e tutti i parametri del caso effettua le operazioni che servono.
102
+ *
103
+ * La logica di questa funzione è nata essenzialmente da spam di trial & error ed è stata testata solo fino a due livelli di raggruppamento,
104
+ * qualsiasi cosa vada oltre non è 100% detto che funzioni...
105
+ */
106
+ private performSelectionOperations;
107
+ /** Helper per evitare di riscrivere ogni santa volta array.splice(array.indexof(item), 1); */
108
+ private removeItem;
109
+ /** Helper per evitare di riscrivere ogni santa volta array.push(item); e la gestione della */
110
+ private addItem;
111
+ /**
112
+ * Ottiene il trittico di selezione, cioè l'array degli oggetti che si vuole manipolare e le due cache collegate ad esso
113
+ *
114
+ * @param {'group' | 'item' | 'group_exclusion' | 'exclusion'} subject Oggetto logico desiderato su cui effettuare le operazioni successive
115
+ * @param {ItemsSelection<any>} base Selettore di base
116
+ *
117
+ * @returns {CacheTriptic} Trittico di selezione
118
+ */
119
+ private getTriptic;
120
+ /**
121
+ * Dato un oggetto restituisce il gruppo di cui fa parte, se esiste
122
+ *
123
+ * @param {any} item Oggetto di cui trovare il gruppo
124
+ */
125
+ private getItemGroup;
126
+ /**
127
+ * Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
128
+ *
129
+ * @param {any} group Chiave da cercare
130
+ * @param {'selected' | 'unselected'} status Stato degli elementi, selezionati o no
131
+ * @param {boolean} recursive Indica se cercare solo gli elementi direttamente collegati o se prendere anche quelli dei gruppi figli
132
+ *
133
+ * @returns {any[]} Oggetti di tipo **_item** facenti capo alla chiave **groupKey**
134
+ */
135
+ private getGroupItems;
136
+ /**
137
+ * Data la chiave di un gruppo restituisce tutti gli oggetti con quella chiave
138
+ *
139
+ * @param {any} group Gruppo di cui cercare il parent
140
+ *
141
+ * @returns {any} Oggetto di tipo **_group** rappresentante il parent del **group** attuale
142
+ */
143
+ private getGroupParent;
144
+ /**
145
+ * Data la chiave di un gruppo restituisce tutti i gruppi figli
146
+ *
147
+ * @param {string} group Gruppo che rappresenta il padre di cui cercare i figli
148
+ * @param {'selected' | 'unselected'} status Stato dei gruppi, selezionati o no
149
+ * @param {boolean} recursive Indica se cercare solo i gruppi direttamente collegati o se prendere anche quelli dei gruppi figli
150
+ *
151
+ * @returns {any[]} Oggetti di tipo **_group** facenti capo alla chiave **groupKey**
152
+ */
153
+ private getGroupChildGroups;
154
+ /** Finalizza le informazioni di selezione del **ItemsSelection** corrente */
155
+ private finalizeSelectionInformations;
156
+ /** Compatta una cache di indici */
157
+ private compactIndexMap;
158
+ /**
159
+ * Valuta la quantità di oggetti che sono stati selezionati al termine di un evento di selezione
160
+ *
161
+ * @returns {number} Numero di oggetti selezionati
162
+ */
163
+ private evaluateSelected;
164
+ /** Gestisce il comando di "Seleziona tutto in tutte le pagine" o il suo contrario, cioè "Reimposta selezione" */
165
+ selectAllOrResetSelection(): void;
166
+ /**
167
+ * @TODO Spostare in SelectionHandler
168
+ *
169
+ * Registra la selezione singola su una cella sulla combo di comandi "CTRL + Click".
170
+ * Se viene premuto anche il tasto Shift viene creato un range di selezione il cui status di "selezionato" viene salvato nella
171
+ * matrice virtuale **selectionStatus**
172
+ *
173
+ * @param {any} event Evento Javascript di Click
174
+ * @param {number} row Indice della riga. Non è l'indice vero e proprio ma è l'ordinale (.ordinal) dell'oggetto bindato su quella riga
175
+ * @param {number} column Indice della colonna preso banalmente dall'ngIf sui thElement
176
+ * @param {{ row: number, column: number }} firstSelectionOverride Permette di overridare il primo elemento selezionato
177
+ */
178
+ singleCellSelection(event: {
179
+ view: any;
180
+ range: boolean;
181
+ }, row: number, column: number, firstSelectionOverride?: {
182
+ row: number;
183
+ column: number;
184
+ }): void;
185
+ setSelectionStatusBorders(from: {
186
+ row: number;
187
+ column: number;
188
+ }, to: {
189
+ row: number;
190
+ column: number;
191
+ }): void;
192
+ /**
193
+ * Helper per ripulire lo stato di selezione delle singole celle della tabella, ad esclusione di una singola coordinata
194
+ *
195
+ * @param {{row: number, column: number}} exclusion Coordinata da escludere nella pulizia
196
+ */
197
+ clearSelectionStatusExcluding(exclusion?: {
198
+ row: number;
199
+ column: number;
200
+ }): void;
201
+ /**
202
+ * Helper che esamina la matrice **selectionStatus** e ne estrappola gli elementi selezionati in una comoda matrice
203
+ *
204
+ * @returns {{ value: string, type: InputType, val_setter: Function }[][]} Matrice di elementi selezionati con la loro informazione sul tipo
205
+ */
206
+ getSelectionStatusSelection(): ItemPropEditableReference[][];
207
+ /**
208
+ * Data la matrice di selezione generata dal metodo **getSelectionStatusSelection** genera la strigna vera e propria da copiare nella Clipboard
209
+ *
210
+ * @param {{ value: string, type: InputType }[][]} sel Matrice di selezione con valori e tipi dei dati selezionati
211
+ *
212
+ * @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
213
+ * in modo che siano compatibili anche con la copia su Excel
214
+ */
215
+ getClipbardTextFromSelection(sel: {
216
+ value: string;
217
+ type: InputType | string;
218
+ }[][]): string;
219
+ /**
220
+ * Ottiene la rappresentazione stringa di un valore dato un tipo
221
+ *
222
+ * @param {{ value: string, type: InputType }} valType Oggetto Valore - Tipo da cui estrapolare la rappresentazione del dato in stringa
223
+ *
224
+ * @returns {string} Valore convertito in stringa in base al tipo
225
+ */
226
+ getValueByType(valType: {
227
+ value: string;
228
+ type: InputType | string;
229
+ }): string;
230
+ }
@@ -1,57 +1,57 @@
1
- import { HashingService } from "@esfaenza/extensions";
2
- import * as i0 from "@angular/core";
3
- /** Classe di utilità per le cose comuni */
4
- export declare class UtilitiesHandler {
5
- private hashExts;
6
- /** @ignore Costruttore */
7
- constructor(hashExts: HashingService);
8
- /**
9
- * Data una lista di oggetti effettua dei raggruppamenti in base alla proprietà **field**,
10
- * restituendo un oggetto del tipo { Gruppo1: oggetti[], Gruppo2: oggetti[], ecc... }
11
- *
12
- * @param {any[]} array Lista degli oggetti da raggruppare
13
- * @param {string} field Campo su cui effettuare i raggruppamenti
14
- *
15
- * @returns {{ [id: string]: any[] }} Dizionario dei gruppi
16
- */
17
- groupBy(array: any[], field: string): {
18
- [id: string]: any[];
19
- };
20
- /**
21
- * Helper per effettuare il caching delle aggregazioni. Le sposta da una lista di **GroupAggregation** a una **<Map<string, Map<string, string>>**
22
- *
23
- * @param {any} group Gruppo di cui cachare le aggregazioni
24
- */
25
- cacheAggregations(group: any): void;
26
- /** Helper per spostare un oggetto di un array da un indice all'altro, in place */
27
- arrayMove(array: any[], oldI: number, newI: number): void;
28
- /**
29
- * Date le informazioni di paginazione ottiene l'array dei pulsanti
30
- *
31
- * @param {number} maxBtns Numero massimo di pulsanti da visualizzare
32
- * @param {number} page Pagina corrente
33
- * @param {number} lastPage Ultima pagina disponibile
34
- *
35
- * @returns {any[]} Pseudo-array di pulsanti a cui ci si può bindare lato HTML
36
- */
37
- getPagesArray(maxBtns: number, page: number, lastPage: number, actualCount?: number, ipp?: number): {
38
- val: number;
39
- cssClass: string;
40
- }[];
41
- /**
42
- * Calcola l'hash di un oggetto qualsiasi
43
- *
44
- * @param {any[]} items Oggetti per cui calcolare l'hash
45
- */
46
- calculateHash(items: any[]): void;
47
- /**
48
- * 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)
49
- *
50
- * @param {T} inputValue Valore dell'Input
51
- * @param {T} defaultValue Valore di default impostato da configurazione
52
- * @param {T} fallbackValue Valore dell'Input per quando non è stato assegnato dal programmatore e non ha un default
53
- */
54
- InputOrDefault<T>(inputValue: T, defaultValue: T, fallbackValue?: T): T;
55
- static ɵfac: i0.ɵɵFactoryDeclaration<UtilitiesHandler, never>;
56
- static ɵprov: i0.ɵɵInjectableDeclaration<UtilitiesHandler>;
57
- }
1
+ import { HashingService } from "@esfaenza/extensions";
2
+ import * as i0 from "@angular/core";
3
+ /** Classe di utilità per le cose comuni */
4
+ export declare class UtilitiesHandler {
5
+ private hashExts;
6
+ /** @ignore Costruttore */
7
+ constructor(hashExts: HashingService);
8
+ /**
9
+ * Data una lista di oggetti effettua dei raggruppamenti in base alla proprietà **field**,
10
+ * restituendo un oggetto del tipo { Gruppo1: oggetti[], Gruppo2: oggetti[], ecc... }
11
+ *
12
+ * @param {any[]} array Lista degli oggetti da raggruppare
13
+ * @param {string} field Campo su cui effettuare i raggruppamenti
14
+ *
15
+ * @returns {{ [id: string]: any[] }} Dizionario dei gruppi
16
+ */
17
+ groupBy(array: any[], field: string): {
18
+ [id: string]: any[];
19
+ };
20
+ /**
21
+ * Helper per effettuare il caching delle aggregazioni. Le sposta da una lista di **GroupAggregation** a una **<Map<string, Map<string, string>>**
22
+ *
23
+ * @param {any} group Gruppo di cui cachare le aggregazioni
24
+ */
25
+ cacheAggregations(group: any): void;
26
+ /** Helper per spostare un oggetto di un array da un indice all'altro, in place */
27
+ arrayMove(array: any[], oldI: number, newI: number): void;
28
+ /**
29
+ * Date le informazioni di paginazione ottiene l'array dei pulsanti
30
+ *
31
+ * @param {number} maxBtns Numero massimo di pulsanti da visualizzare
32
+ * @param {number} page Pagina corrente
33
+ * @param {number} lastPage Ultima pagina disponibile
34
+ *
35
+ * @returns {any[]} Pseudo-array di pulsanti a cui ci si può bindare lato HTML
36
+ */
37
+ getPagesArray(maxBtns: number, page: number, lastPage: number, actualCount?: number, ipp?: number): {
38
+ val: number;
39
+ cssClass: string;
40
+ }[];
41
+ /**
42
+ * Calcola l'hash di un oggetto qualsiasi
43
+ *
44
+ * @param {any[]} items Oggetti per cui calcolare l'hash
45
+ */
46
+ calculateHash(items: any[]): void;
47
+ /**
48
+ * 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)
49
+ *
50
+ * @param {T} inputValue Valore dell'Input
51
+ * @param {T} defaultValue Valore di default impostato da configurazione
52
+ * @param {T} fallbackValue Valore dell'Input per quando non è stato assegnato dal programmatore e non ha un default
53
+ */
54
+ InputOrDefault<T>(inputValue: T, defaultValue: T, fallbackValue?: T): T;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<UtilitiesHandler, never>;
56
+ static ɵprov: i0.ɵɵInjectableDeclaration<UtilitiesHandler>;
57
+ }