@esfaenza/es-table 11.2.69 → 11.2.72
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 +327 -202
- package/bundles/esfaenza-es-table.umd.js.map +1 -1
- package/bundles/esfaenza-es-table.umd.min.js +1 -1
- package/bundles/esfaenza-es-table.umd.min.js.map +1 -1
- package/esfaenza-es-table.metadata.json +1 -1
- package/esm2015/lib/components/es-table/es_table.component.js +93 -159
- package/esm2015/lib/components/es-table/es_table.component.loc.js +3 -1
- package/esm2015/lib/core/handlers/SelectionHandler.js +159 -3
- package/esm2015/lib/domain/externals/EsTableModelChange.js +19 -0
- package/esm2015/lib/domain/externals/ItemPropEditableReference.js +4 -0
- package/esm2015/lib/domain/types.js +2 -0
- package/esm2015/public-api.js +4 -1
- package/fesm2015/esfaenza-es-table.js +276 -164
- package/fesm2015/esfaenza-es-table.js.map +1 -1
- package/lib/components/es-table/es_table.component.d.ts +17 -80
- package/lib/core/handlers/SelectionHandler.d.ts +60 -0
- package/lib/domain/externals/EsTableModelChange.d.ts +17 -0
- package/lib/domain/externals/ItemPropEditableReference.d.ts +18 -0
- package/lib/domain/types.d.ts +2 -0
- package/package.json +2 -2
- package/public-api.d.ts +3 -0
|
@@ -16,6 +16,8 @@ import { ThElement } from "../../domain/internals/ThElement";
|
|
|
16
16
|
import { TdElement } from "../../domain/internals/TdElement";
|
|
17
17
|
import { ItemsSelection } from '../../domain/externals/appsearch/ItemsSelection';
|
|
18
18
|
import { Group } from "../../domain/externals/appsearch/Group";
|
|
19
|
+
import { EsTableModelChange } from '../../domain/externals/EsTableModelChange';
|
|
20
|
+
import { ItemPropEditableReference } from '../../domain/externals/ItemPropEditableReference';
|
|
19
21
|
import { EsTableDefaultable } from '../../domain/configuration/EsTableDefaultable';
|
|
20
22
|
import { EsTdDirective } from '../../directives/es_td.directive';
|
|
21
23
|
import { EsThDirective } from '../../directives/es_th.directive';
|
|
@@ -30,7 +32,6 @@ import { SelectionHandler } from "../../core/handlers/SelectionHandler";
|
|
|
30
32
|
import { UtilitiesHandler } from "../../core/handlers/UtilitiesHandler";
|
|
31
33
|
import { CopyPasteDetector } from '../../core/CopyPasteDetector';
|
|
32
34
|
import { Subject } from 'rxjs';
|
|
33
|
-
declare type InputType = 'string' | 'float' | 'date' | 'number' | 'int' | 'boolean' | 'enum' | 'autocomplete' | 'datetime' | 'time' | 'file' | 'currency';
|
|
34
35
|
/** Componente che permette di rappresentare una griglia di valori */
|
|
35
36
|
export declare class EsTableComponent implements ControlValueAccessor, OnChanges {
|
|
36
37
|
ngControl: NgControl;
|
|
@@ -40,9 +41,9 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
40
41
|
lc: LocalizationService;
|
|
41
42
|
cdr: ChangeDetectorRef;
|
|
42
43
|
private utilities_H;
|
|
43
|
-
|
|
44
|
+
utiExts: UtilityService;
|
|
44
45
|
private expExts;
|
|
45
|
-
|
|
46
|
+
dateExts: DateService;
|
|
46
47
|
private msgExts;
|
|
47
48
|
private copyPasteDetector;
|
|
48
49
|
private clipboardService;
|
|
@@ -294,7 +295,9 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
294
295
|
/** Permette di decidere se, in modalità raggruppamento, mostrare o meno il valore delle colonne di gruppo negli oggetti finali. Di default sono nascosti */
|
|
295
296
|
ShowItemGroupsColumns: any;
|
|
296
297
|
/** Indica che tutti i campi che definiscono le modalità di modifica campo possono essere modificati in base alle impostazioni */
|
|
297
|
-
|
|
298
|
+
Editable: boolean;
|
|
299
|
+
/** Indica se è possibile effettuare selezioni a range per poi farci eventualmente copia incolla */
|
|
300
|
+
RangeSelection: boolean;
|
|
298
301
|
/** Evento che viene richiamato al cambio di oridnamento di una colonna */
|
|
299
302
|
onOrderChanged: EventEmitter<AppOrdering>;
|
|
300
303
|
/**
|
|
@@ -313,6 +316,8 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
313
316
|
onRemoval: EventEmitter<any>;
|
|
314
317
|
/** Evento richiamato all'annullamento di un'eliminazione */
|
|
315
318
|
onAbortRemoval: EventEmitter<any>;
|
|
319
|
+
/** Evento richiamato alla modifica dei modelli bindati */
|
|
320
|
+
onModelChange: EventEmitter<EsTableModelChange[]>;
|
|
316
321
|
/** Evento richiamato quando si clicca su un opzione definita nelle **CornerMenuOptions** */
|
|
317
322
|
onCornerAction: EventEmitter<{
|
|
318
323
|
id: string;
|
|
@@ -397,15 +402,9 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
397
402
|
/** Indica lo stato di selezione per singola cella */
|
|
398
403
|
selectionStatus: {
|
|
399
404
|
[index: number]: {
|
|
400
|
-
[index: number]:
|
|
401
|
-
selected: boolean;
|
|
402
|
-
value: string;
|
|
403
|
-
type: InputType;
|
|
404
|
-
};
|
|
405
|
+
[index: number]: ItemPropEditableReference;
|
|
405
406
|
};
|
|
406
407
|
};
|
|
407
|
-
/** Ultima cella selezionata singolarmente */
|
|
408
|
-
private lastSingleSelection;
|
|
409
408
|
/** Opzioni di paginazione */
|
|
410
409
|
PagerOptions: {
|
|
411
410
|
PagerCount: number;
|
|
@@ -628,71 +627,8 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
628
627
|
* @param {number} rowIndex Indice della riga
|
|
629
628
|
*/
|
|
630
629
|
dbClickEditOrSingleClickRowSelection($event: any, rowItem: TdElement, item: any, rowIndex: number): void;
|
|
631
|
-
/**
|
|
632
|
-
* @TODO Spostare in SelectionHandler
|
|
633
|
-
*
|
|
634
|
-
* Registra la selezione singola su una cella sulla combo di comandi "CTRL + Click".
|
|
635
|
-
* Se viene premuto anche il tasto Shift viene creato un range di selezione il cui status di "selezionato" viene salvato nella
|
|
636
|
-
* matrice virtuale **selectionStatus**
|
|
637
|
-
*
|
|
638
|
-
* @param {any} event Evento Javascript di Click
|
|
639
|
-
* @param {number} row Indice della riga. Non è l'indice vero e proprio ma è l'ordinale (.ordinal) dell'oggetto bindato su quella riga
|
|
640
|
-
* @param {number} column Indice della colonna preso banalmente dall'ngIf sui thElement
|
|
641
|
-
*/
|
|
642
|
-
singleCellSelection(event: any, row: number, column: number): void;
|
|
643
|
-
/**
|
|
644
|
-
* @TODO Spostare in SelectionHandler
|
|
645
|
-
*
|
|
646
|
-
* Helper per ripulire lo stato di selezione delle singole celle della tabella, ad esclusione di una singola coordinata
|
|
647
|
-
*
|
|
648
|
-
* @param {{row: number, column: number}} exclusion Coordinata da escludere nella pulizia
|
|
649
|
-
*/
|
|
650
|
-
private clearSelectionStatus;
|
|
651
|
-
/**
|
|
652
|
-
* @TODO Spostare in SelectionHandler
|
|
653
|
-
*
|
|
654
|
-
* Helper che esamina la matrice **selectionStatus** e ne estrappola gli elementi selezionati in una comoda matrice
|
|
655
|
-
*
|
|
656
|
-
* @returns {{ value: string, type: InputType }[][]} Matrice di elementi selezionati con la loro informazione sul tipo
|
|
657
|
-
*/
|
|
658
|
-
private getSelectionStatusSelection;
|
|
659
|
-
/**
|
|
660
|
-
* @TODO Spostare in SelectionHandler
|
|
661
|
-
*
|
|
662
|
-
* Helper per ripulire la selezione lato HTML
|
|
663
|
-
*
|
|
664
|
-
* @param {any} event Evento nativo Javascript
|
|
665
|
-
*/
|
|
666
|
-
private clearTextSelection;
|
|
667
630
|
/** Evento che gestisce il comando "Copia" buttando i valori selezionati nella clipboard in base al loro tipo */
|
|
668
631
|
private handleCopy;
|
|
669
|
-
/**
|
|
670
|
-
* @TODO Spostare in SelectionHandler
|
|
671
|
-
*
|
|
672
|
-
* Data la matrice di selezione generata dal metodo **getSelectionStatusSelection** genera la strigna vera e propria da copiare nella Clipboard
|
|
673
|
-
*
|
|
674
|
-
* @param {{ value: string, type: InputType }[][]} sel Matrice di selezione con valori e tipi dei dati selezionati
|
|
675
|
-
*
|
|
676
|
-
* @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
|
|
677
|
-
* in modo che siano compatibili anche con la copia su Excel
|
|
678
|
-
*/
|
|
679
|
-
getClipbardTextFromSelection(sel: {
|
|
680
|
-
value: string;
|
|
681
|
-
type: InputType;
|
|
682
|
-
}[][]): string;
|
|
683
|
-
/**
|
|
684
|
-
* @TODO Spostare in SelectionHandler
|
|
685
|
-
*
|
|
686
|
-
* Ottiene la rappresentazione stringa di un valore dato un tipo
|
|
687
|
-
*
|
|
688
|
-
* @param {{ value: string, type: InputType }} valType Oggetto Valore - Tipo da cui estrapolare la rappresentazione del dato in stringa
|
|
689
|
-
*
|
|
690
|
-
* @returns {string} Valore convertito in stringa in base al tipo
|
|
691
|
-
*/
|
|
692
|
-
getValueByType(valType: {
|
|
693
|
-
value: string;
|
|
694
|
-
type: InputType;
|
|
695
|
-
}): string;
|
|
696
632
|
/** 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 */
|
|
697
633
|
handlePaste(): void;
|
|
698
634
|
/** Ripulisce il timer utilizzato per capire se è stato effettuato un doppio click o meno */
|
|
@@ -703,23 +639,24 @@ export declare class EsTableComponent implements ControlValueAccessor, OnChanges
|
|
|
703
639
|
* @param {any} $event Evento nativo javascript
|
|
704
640
|
* @param {any} item Item che rappresenta il contesto su cui è stato effettuato un click
|
|
705
641
|
* @param {boolean} selection Indica se la selezione è attiva
|
|
706
|
-
*
|
|
642
|
+
* @param {boolean} internalCall Indica se la chiamata a questa funzione è interna: permette di skippare i check sulle CustomCells
|
|
707
643
|
*/
|
|
708
|
-
handleRowClick($event: any, item: any, selection: boolean):
|
|
644
|
+
handleRowClick($event: any, item: any, selection: boolean, internalCall?: boolean): boolean;
|
|
709
645
|
/**
|
|
710
646
|
* La modifica dell'utente è iniziata. Si imposta la variabile relativa a "true" in modo da mostrare l'input di testo
|
|
711
647
|
*
|
|
712
648
|
* Dopo che l'input è apparso, dopo un ciclo di Change Detection viene attivato il Subject collegato all'input che servirà a effettuare il focus
|
|
713
649
|
*
|
|
714
650
|
* @param {TdElement} rowItem Elemento di riga su cui è stata attivata la modifica
|
|
651
|
+
* @param {any} item Oggetto sopra il quale è stata attivata la modifica
|
|
715
652
|
*/
|
|
716
|
-
setupUserEdit(rowItem: TdElement): void;
|
|
653
|
+
setupUserEdit(rowItem: TdElement, item: any): void;
|
|
717
654
|
/**
|
|
718
|
-
* La modifica dell'utente è terminata. Si reimposta la variabile relativa a "false" in modo da nascondere l'input di testo
|
|
655
|
+
* 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
|
|
719
656
|
*
|
|
720
657
|
* @param {TdElement} rowItem Elemento di riga su cui è stata attivata la modifica
|
|
721
658
|
* @param {any} item Oggetto sopra il quale è stata attivata la modifica
|
|
659
|
+
* @param {number} columnIndex Indice della colonna su cui è avvenuta la modifica
|
|
722
660
|
*/
|
|
723
|
-
finalizeUserEdit(rowItem: TdElement, item: any): void;
|
|
661
|
+
finalizeUserEdit(rowItem: TdElement, item: any, columnIndex: number): void;
|
|
724
662
|
}
|
|
725
|
-
export {};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ItemsSelection } from "../../domain/externals/appsearch/ItemsSelection";
|
|
2
|
+
import { ItemPropEditableReference } from "../../domain/externals/ItemPropEditableReference";
|
|
2
3
|
import { EsTableComponent } from "../../components/es-table/es_table.component";
|
|
3
4
|
import { EsThDirective } from "../../directives/es_th.directive";
|
|
4
5
|
import { RowGroupingHandler } from "./RowGroupingHandler";
|
|
6
|
+
import { InputType } from '../../domain/types';
|
|
5
7
|
/** Classe che gestisce le selezioni degli oggetti */
|
|
6
8
|
export declare class SelectionHandler {
|
|
7
9
|
private est;
|
|
@@ -22,6 +24,8 @@ export declare class SelectionHandler {
|
|
|
22
24
|
private i_exclusionsCache;
|
|
23
25
|
/** Cache di selezione Hash - Oggetto per la variabile **group_exclusions** dell'itemSelector. Facilita le operazioni di lookup via indice */
|
|
24
26
|
private i_group_exclusionsCache;
|
|
27
|
+
/** Ultima cella selezionata singolarmente */
|
|
28
|
+
private lastSingleSelection;
|
|
25
29
|
/** @ignore Costruttore */
|
|
26
30
|
constructor(est: EsTableComponent, rgHandler: RowGroupingHandler);
|
|
27
31
|
/** Ripulisce le cache di selezione */
|
|
@@ -154,4 +158,60 @@ export declare class SelectionHandler {
|
|
|
154
158
|
private evaluateSelected;
|
|
155
159
|
/** Gestisce il comando di "Seleziona tutto in tutte le pagine" o il suo contrario, cioè "Reimposta selezione" */
|
|
156
160
|
selectAllOrResetSelection(): void;
|
|
161
|
+
/**
|
|
162
|
+
* @TODO Spostare in SelectionHandler
|
|
163
|
+
*
|
|
164
|
+
* Registra la selezione singola su una cella sulla combo di comandi "CTRL + Click".
|
|
165
|
+
* Se viene premuto anche il tasto Shift viene creato un range di selezione il cui status di "selezionato" viene salvato nella
|
|
166
|
+
* matrice virtuale **selectionStatus**
|
|
167
|
+
*
|
|
168
|
+
* @param {any} event Evento Javascript di Click
|
|
169
|
+
* @param {number} row Indice della riga. Non è l'indice vero e proprio ma è l'ordinale (.ordinal) dell'oggetto bindato su quella riga
|
|
170
|
+
* @param {number} column Indice della colonna preso banalmente dall'ngIf sui thElement
|
|
171
|
+
*/
|
|
172
|
+
singleCellSelection(event: any, row: number, column: number): void;
|
|
173
|
+
/**
|
|
174
|
+
* Helper per ripulire lo stato di selezione delle singole celle della tabella, ad esclusione di una singola coordinata
|
|
175
|
+
*
|
|
176
|
+
* @param {{row: number, column: number}} exclusion Coordinata da escludere nella pulizia
|
|
177
|
+
*/
|
|
178
|
+
clearSelectionStatus(exclusion?: {
|
|
179
|
+
row: number;
|
|
180
|
+
column: number;
|
|
181
|
+
}): void;
|
|
182
|
+
/**
|
|
183
|
+
* Helper che esamina la matrice **selectionStatus** e ne estrappola gli elementi selezionati in una comoda matrice
|
|
184
|
+
*
|
|
185
|
+
* @returns {{ value: string, type: InputType, val_setter: Function }[][]} Matrice di elementi selezionati con la loro informazione sul tipo
|
|
186
|
+
*/
|
|
187
|
+
getSelectionStatusSelection(): ItemPropEditableReference[][];
|
|
188
|
+
/**
|
|
189
|
+
* Helper per ripulire la selezione lato HTML
|
|
190
|
+
*
|
|
191
|
+
* @param {any} event Evento nativo Javascript
|
|
192
|
+
*/
|
|
193
|
+
clearTextSelection(event: any): boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Data la matrice di selezione generata dal metodo **getSelectionStatusSelection** genera la strigna vera e propria da copiare nella Clipboard
|
|
196
|
+
*
|
|
197
|
+
* @param {{ value: string, type: InputType }[][]} sel Matrice di selezione con valori e tipi dei dati selezionati
|
|
198
|
+
*
|
|
199
|
+
* @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
|
|
200
|
+
* in modo che siano compatibili anche con la copia su Excel
|
|
201
|
+
*/
|
|
202
|
+
getClipbardTextFromSelection(sel: {
|
|
203
|
+
value: string;
|
|
204
|
+
type: InputType;
|
|
205
|
+
}[][]): string;
|
|
206
|
+
/**
|
|
207
|
+
* Ottiene la rappresentazione stringa di un valore dato un tipo
|
|
208
|
+
*
|
|
209
|
+
* @param {{ value: string, type: InputType }} valType Oggetto Valore - Tipo da cui estrapolare la rappresentazione del dato in stringa
|
|
210
|
+
*
|
|
211
|
+
* @returns {string} Valore convertito in stringa in base al tipo
|
|
212
|
+
*/
|
|
213
|
+
getValueByType(valType: {
|
|
214
|
+
value: string;
|
|
215
|
+
type: InputType;
|
|
216
|
+
}): string;
|
|
157
217
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Classe che rappresenta la modifica ad un singolo oggetto in una singola proprietà */
|
|
2
|
+
export declare class EsTableModelChange {
|
|
3
|
+
item: any;
|
|
4
|
+
header: string;
|
|
5
|
+
property: string;
|
|
6
|
+
old_value: string;
|
|
7
|
+
new_value: string;
|
|
8
|
+
/**
|
|
9
|
+
* Costruttore
|
|
10
|
+
* @param {any} item Oggetto modificato
|
|
11
|
+
* @param {string} header Nome dell'Header che è stato modificato
|
|
12
|
+
* @param {string} property Nome della proprietà modificata
|
|
13
|
+
* @param {string} old_value Vecchio valore della proprietà **property** dell'oggetto **item**
|
|
14
|
+
* @param {string} new_value Nuovo valore della proprietà **property** dell'oggetto **item**
|
|
15
|
+
*/
|
|
16
|
+
constructor(item: any, header: string, property: string, old_value: string, new_value: string);
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputType } from "../types";
|
|
2
|
+
/** Classe che rappresenta il riferimento ad una proprietà di un oggetto bindato sulla tabella */
|
|
3
|
+
export declare class ItemPropEditableReference {
|
|
4
|
+
/** Stato di selezione della cella relativa */
|
|
5
|
+
selected: boolean;
|
|
6
|
+
/** Oggetto relativo su cui si modificano le proprietà */
|
|
7
|
+
item: any;
|
|
8
|
+
/** ID dell'header in modifica (riferimento al TH relativo) */
|
|
9
|
+
header: string;
|
|
10
|
+
/** Proprietà Javascript effettivamente in modifica */
|
|
11
|
+
property: string;
|
|
12
|
+
/** Tipo dell'input */
|
|
13
|
+
type: InputType;
|
|
14
|
+
/** Valore attuale della proprietà **property** dell'oggetto **item** */
|
|
15
|
+
value: string;
|
|
16
|
+
/** Funzione che imposta il nuovo valore della proprietà **property** dell'oggetto **item** ed aggiorna il **value** di questo oggetto */
|
|
17
|
+
val_setter?: (value: string) => any;
|
|
18
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esfaenza/es-table",
|
|
3
|
-
"version": "11.2.
|
|
3
|
+
"version": "11.2.72",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"tslib": "^2.0.0"
|
|
6
6
|
},
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"@angular/common": "~11.2.14",
|
|
9
9
|
"@angular/core": "~11.2.14",
|
|
10
10
|
"@angular/material": "~11.2.13",
|
|
11
|
-
"@esfaenza/extensions": "^11.2.
|
|
11
|
+
"@esfaenza/extensions": "^11.2.27",
|
|
12
12
|
"@esfaenza/localizations": "^11.2.6",
|
|
13
13
|
"@esfaenza/forms-and-validations": "^11.2.60",
|
|
14
14
|
"@ctrl/ngx-csv": "4.0.0",
|
package/public-api.d.ts
CHANGED
|
@@ -20,3 +20,6 @@ export * from './lib/domain/externals/appsearch/EsTableMultiValue';
|
|
|
20
20
|
export * from './lib/domain/externals/report/ReportColumn';
|
|
21
21
|
export * from './lib/domain/externals/report/ReportParam';
|
|
22
22
|
export * from './lib/domain/externals/report/ReportRow';
|
|
23
|
+
export * from './lib/domain/externals/EsTableModelChange';
|
|
24
|
+
export * from './lib/domain/externals/ItemPropEditableReference';
|
|
25
|
+
export * from './lib/domain/types';
|