@esfaenza/es-table 19.2.47 → 20.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/esfaenza-es-table.mjs +208 -208
- package/fesm2022/esfaenza-es-table.mjs.map +1 -1
- package/index.d.ts +2581 -3
- package/package.json +4 -4
- package/lib/components/es-table/es_table.component.d.ts +0 -774
- package/lib/components/es-table/es_table.component.loc.d.ts +0 -10
- package/lib/components/es-td/es_td.component.d.ts +0 -26
- package/lib/components/es-th/es_th.component.d.ts +0 -94
- package/lib/components/pager/table_pager.component.d.ts +0 -57
- package/lib/components/pager/table_pager.component.loc.d.ts +0 -10
- package/lib/components/pipes/est-format.pipe.d.ts +0 -10
- package/lib/components/pipes/est-lookup.pipe.d.ts +0 -13
- package/lib/components/pipes/est-propinsensitive.pipe.d.ts +0 -7
- package/lib/components/pipes/est-renderer.pipe.d.ts +0 -15
- package/lib/components/pipes/est-routerlink.pipe.d.ts +0 -20
- package/lib/components/pipes/est_editor.pipe.d.ts +0 -15
- package/lib/core/CopyPasteDetector.d.ts +0 -15
- package/lib/core/Logger.d.ts +0 -10
- package/lib/core/handlers/ColumnMetadataHandler.d.ts +0 -188
- package/lib/core/handlers/DynamicModeHandler.d.ts +0 -22
- package/lib/core/handlers/ExportHandler.d.ts +0 -19
- package/lib/core/handlers/HierarchyModeHandler.d.ts +0 -41
- package/lib/core/handlers/ItemsHandler.d.ts +0 -35
- package/lib/core/handlers/ReportModeHandler.d.ts +0 -27
- package/lib/core/handlers/RowGroupingHandler.d.ts +0 -118
- package/lib/core/handlers/SelectionHandler.d.ts +0 -230
- package/lib/core/handlers/UtilitiesHandler.d.ts +0 -57
- package/lib/directives/es_td.directive.d.ts +0 -42
- package/lib/directives/es_td_editor.directive.d.ts +0 -14
- package/lib/directives/es_th.directive.d.ts +0 -106
- package/lib/directives/es_th_td_provider.directive.d.ts +0 -15
- package/lib/domain/configuration/EsTableDefaultable.d.ts +0 -21
- package/lib/domain/configuration/EsTableModuleConfig.d.ts +0 -10
- package/lib/domain/externals/CornerMenuOption.d.ts +0 -7
- package/lib/domain/externals/EsTableColumnsDefinition.d.ts +0 -55
- package/lib/domain/externals/EsTableModelChange.d.ts +0 -17
- package/lib/domain/externals/EsTableOperationDefinition.d.ts +0 -20
- package/lib/domain/externals/ItemPropEditableReference.d.ts +0 -34
- package/lib/domain/externals/appsearch/AppOrdering.d.ts +0 -14
- package/lib/domain/externals/appsearch/AppSearch.d.ts +0 -100
- package/lib/domain/externals/appsearch/EsTableMultiValue.d.ts +0 -22
- package/lib/domain/externals/appsearch/GenericItem.d.ts +0 -13
- package/lib/domain/externals/appsearch/Group.d.ts +0 -17
- package/lib/domain/externals/appsearch/GroupAggregation.d.ts +0 -14
- package/lib/domain/externals/appsearch/GroupFilter.d.ts +0 -12
- package/lib/domain/externals/appsearch/GroupOrAggregation.d.ts +0 -14
- package/lib/domain/externals/appsearch/ItemsSelection.d.ts +0 -22
- package/lib/domain/externals/report/ReportColumn.d.ts +0 -19
- package/lib/domain/externals/report/ReportParam.d.ts +0 -40
- package/lib/domain/externals/report/ReportRow.d.ts +0 -9
- package/lib/domain/internals/CacheTriptic.d.ts +0 -14
- package/lib/domain/internals/EsTableColumn.d.ts +0 -41
- package/lib/domain/internals/GroupPager.d.ts +0 -26
- package/lib/domain/internals/GroupRouteFragment.d.ts +0 -15
- package/lib/domain/internals/PagerInfos.d.ts +0 -13
- package/lib/domain/internals/TdElement.d.ts +0 -59
- package/lib/domain/internals/ThAggregation.d.ts +0 -14
- package/lib/domain/internals/ThElement.d.ts +0 -24
- package/lib/domain/internals/ThGroup.d.ts +0 -10
- package/lib/domain/types.d.ts +0 -2
- package/lib/es-table.module.d.ts +0 -35
- package/lib/tokens.d.ts +0 -8
- package/public-api.d.ts +0 -28
|
@@ -39,10 +39,10 @@ class TablePagerLoc extends LocalizationService {
|
|
|
39
39
|
super.set("en->it", "Are you sure you want to retrieve all results?", ["Si è sicuri di voler caricare tutti i risultati?"]);
|
|
40
40
|
super.set("en->it", "This might slow down the page and possibly crash the entire application", ["L'operazione potrebbe rallentare la pagina fino al crash dell'applicazione"]);
|
|
41
41
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: TablePagerLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: TablePagerLoc }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: TablePagerLoc, decorators: [{
|
|
46
46
|
type: Injectable
|
|
47
47
|
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
48
48
|
|
|
@@ -55,33 +55,33 @@ class EsTablePagerComponent {
|
|
|
55
55
|
this.lc = lc;
|
|
56
56
|
this.cdr = cdr;
|
|
57
57
|
/** Dimensione di pagina attuale */
|
|
58
|
-
this.CurrentPageSize = input(null);
|
|
58
|
+
this.CurrentPageSize = input(null, ...(ngDevMode ? [{ debugName: "CurrentPageSize" }] : []));
|
|
59
59
|
/** View gestita, che può essere un IAppSearch o una ReportView */
|
|
60
|
-
this.View = input();
|
|
60
|
+
this.View = input(...(ngDevMode ? [undefined, { debugName: "View" }] : []));
|
|
61
61
|
/** Indica se deve mostrare un warning quando si cercano di solezionare come elementi da visualizzare "Tutti" */
|
|
62
|
-
this.WarnOnAll = input(true);
|
|
62
|
+
this.WarnOnAll = input(true, ...(ngDevMode ? [{ debugName: "WarnOnAll" }] : []));
|
|
63
63
|
/** Indica se dare la possibilità o meno di selezionare "Tutti" nelle opzioni di paginazione */
|
|
64
|
-
this.AllSearch = input(true);
|
|
64
|
+
this.AllSearch = input(true, ...(ngDevMode ? [{ debugName: "AllSearch" }] : []));
|
|
65
65
|
/** Placeholder che identifica il "Tutti" */
|
|
66
|
-
this.DefaultAll = input(999999);
|
|
66
|
+
this.DefaultAll = input(999999, ...(ngDevMode ? [{ debugName: "DefaultAll" }] : []));
|
|
67
67
|
/** Indica se attivare la modalità gruppo con stili più snelli per apparire sotto ai raggruppamenti */
|
|
68
|
-
this.GroupMode = input(false);
|
|
68
|
+
this.GroupMode = input(false, ...(ngDevMode ? [{ debugName: "GroupMode" }] : []));
|
|
69
69
|
/** Indica se utilizzare il conteggio dei gruppi o degli oggetti */
|
|
70
|
-
this.GroupCount = input(false);
|
|
70
|
+
this.GroupCount = input(false, ...(ngDevMode ? [{ debugName: "GroupCount" }] : []));
|
|
71
71
|
/** Indica il testo che va a sostituire "Oggetti Visualizzati" in caso si stia facendo qualcosa di custom, Ignorato in caso di gruppi */
|
|
72
|
-
this.CountLabel = input(null);
|
|
72
|
+
this.CountLabel = input(null, ...(ngDevMode ? [{ debugName: "CountLabel" }] : []));
|
|
73
73
|
/** Indica se visualizzare il numero totale di oggeti presenti */
|
|
74
|
-
this.ShowCount = input(true);
|
|
74
|
+
this.ShowCount = input(true, ...(ngDevMode ? [{ debugName: "ShowCount" }] : []));
|
|
75
75
|
/** Indica se visualizzare il numero totale di oggeti presenti */
|
|
76
|
-
this.ShowPaging = input(true);
|
|
76
|
+
this.ShowPaging = input(true, ...(ngDevMode ? [{ debugName: "ShowPaging" }] : []));
|
|
77
77
|
/** Indica il numero totale di oggeti presenti */
|
|
78
|
-
this.PagerCount = input(undefined);
|
|
78
|
+
this.PagerCount = input(undefined, ...(ngDevMode ? [{ debugName: "PagerCount" }] : []));
|
|
79
79
|
/** Indica se mostrare o meno il contenuto @deprecated usata solo da MatrixValuesComponent nella lib relativa */
|
|
80
|
-
this.Hidden = input(false);
|
|
80
|
+
this.Hidden = input(false, ...(ngDevMode ? [{ debugName: "Hidden" }] : []));
|
|
81
81
|
/** Output invocato quando il numero di elementi per pagina viene modificato da un click utente */
|
|
82
82
|
this.pagingSelected = new EventEmitter();
|
|
83
83
|
/** Modello su cui la select effettua operazioni di selezione */
|
|
84
|
-
this.Model = signal(null);
|
|
84
|
+
this.Model = signal(null, ...(ngDevMode ? [{ debugName: "Model" }] : []));
|
|
85
85
|
/** Opzioni di paginazione */
|
|
86
86
|
this._pagingOptions = [10, 15, 30, 45, 100];
|
|
87
87
|
this.PagingOptionsForSelect = computed(() => {
|
|
@@ -90,7 +90,7 @@ class EsTablePagerComponent {
|
|
|
90
90
|
if (this.AllSearch())
|
|
91
91
|
availableOptions.push(defAllValue);
|
|
92
92
|
return availableOptions.map(p => { return { description: p == defAllValue ? this.lc.loc("All") : p.toString(), id: p }; });
|
|
93
|
-
});
|
|
93
|
+
}, ...(ngDevMode ? [{ debugName: "PagingOptionsForSelect" }] : []));
|
|
94
94
|
effect(() => {
|
|
95
95
|
let vv = this.View();
|
|
96
96
|
let newModel = vv ? (vv.itemsperpageoverride || 15) : this.CurrentPageSize();
|
|
@@ -123,13 +123,13 @@ class EsTablePagerComponent {
|
|
|
123
123
|
this.Model.set(pageSize);
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
126
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTablePagerComponent, deps: [{ token: i5.MessageService }, { token: i2.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: EsTablePagerComponent, isStandalone: false, selector: "es-paging", inputs: { CurrentPageSize: { classPropertyName: "CurrentPageSize", publicName: "CurrentPageSize", isSignal: true, isRequired: false, transformFunction: null }, View: { classPropertyName: "View", publicName: "View", isSignal: true, isRequired: false, transformFunction: null }, WarnOnAll: { classPropertyName: "WarnOnAll", publicName: "WarnOnAll", isSignal: true, isRequired: false, transformFunction: null }, AllSearch: { classPropertyName: "AllSearch", publicName: "AllSearch", isSignal: true, isRequired: false, transformFunction: null }, DefaultAll: { classPropertyName: "DefaultAll", publicName: "DefaultAll", isSignal: true, isRequired: false, transformFunction: null }, GroupMode: { classPropertyName: "GroupMode", publicName: "GroupMode", isSignal: true, isRequired: false, transformFunction: null }, GroupCount: { classPropertyName: "GroupCount", publicName: "GroupCount", isSignal: true, isRequired: false, transformFunction: null }, CountLabel: { classPropertyName: "CountLabel", publicName: "CountLabel", isSignal: true, isRequired: false, transformFunction: null }, ShowCount: { classPropertyName: "ShowCount", publicName: "ShowCount", isSignal: true, isRequired: false, transformFunction: null }, ShowPaging: { classPropertyName: "ShowPaging", publicName: "ShowPaging", isSignal: true, isRequired: false, transformFunction: null }, PagerCount: { classPropertyName: "PagerCount", publicName: "PagerCount", isSignal: true, isRequired: false, transformFunction: null }, Hidden: { classPropertyName: "Hidden", publicName: "Hidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pagingSelected: "pagingSelected" }, ngImport: i0, template: "<div *ngIf=\"!Hidden()\" [class.est-mt-4]=\"ShowCount() && PagerCount() != -1 && !(ShowPaging() && (Model() == DefaultAll() || PagerCount() >= Model() || PagerCount() == -1))\">\r\n <span class=\"est-fs-14\"> {{CountLabel() && !GroupMode() ? CountLabel() : ((GroupMode() ? 'Shown Groups' : 'Shown Elements') | localize : lc)}}: </span>\r\n <ng-container *ngIf=\"ShowPaging() && (Model() == DefaultAll() || PagerCount() >= Model() || PagerCount() == -1)\">\r\n\r\n <p-select \r\n style=\"width: 95px\"\r\n size=\"small\"\r\n name=\"input\"\r\n appendTo=\"body\"\r\n [options]=\"PagingOptionsForSelect()\"\r\n optionLabel=\"description\"\r\n optionValue=\"id\"\r\n [ngModel]=\"Model()\"\r\n (ngModelChange)=\"choice($event)\"\r\n />\r\n\r\n <span class=\"est-fs-14 est-ipp-bold\" *ngIf=\"ShowCount() && PagerCount() != -1\"> / </span>\r\n </ng-container>\r\n <span class=\"est-fs-14 est-ipp-bold\" *ngIf=\"ShowCount() && PagerCount() != -1\">{{PagerCount() | number : '0.0-0' : lc.Locale}}</span>\r\n</div>", styles: [".est-rg-ipp-sel-all,.est-rg-ipp-sel,.est-ipp-sel-all,.est-ipp-sel{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block;display:inline}.est-ipp-bold{font-weight:700}.mat-paginator-page-size-select{margin:6px 4px 0;width:50px}.mat-paginator-page-size-select .mat-form-field-wrapper{height:52px!important;margin-top:-15px!important;padding:0!important}.mat-form-field-type-mat-native-select .mat-form-field-infix:after{margin-top:-5.5px!important}\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "pipe", type: i8.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: TablePagerLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
128
128
|
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTablePagerComponent, decorators: [{
|
|
130
130
|
type: Component,
|
|
131
131
|
args: [{ selector: "es-paging", viewProviders: [{ provide: LocalizationService, useClass: TablePagerLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div *ngIf=\"!Hidden()\" [class.est-mt-4]=\"ShowCount() && PagerCount() != -1 && !(ShowPaging() && (Model() == DefaultAll() || PagerCount() >= Model() || PagerCount() == -1))\">\r\n <span class=\"est-fs-14\"> {{CountLabel() && !GroupMode() ? CountLabel() : ((GroupMode() ? 'Shown Groups' : 'Shown Elements') | localize : lc)}}: </span>\r\n <ng-container *ngIf=\"ShowPaging() && (Model() == DefaultAll() || PagerCount() >= Model() || PagerCount() == -1)\">\r\n\r\n <p-select \r\n style=\"width: 95px\"\r\n size=\"small\"\r\n name=\"input\"\r\n appendTo=\"body\"\r\n [options]=\"PagingOptionsForSelect()\"\r\n optionLabel=\"description\"\r\n optionValue=\"id\"\r\n [ngModel]=\"Model()\"\r\n (ngModelChange)=\"choice($event)\"\r\n />\r\n\r\n <span class=\"est-fs-14 est-ipp-bold\" *ngIf=\"ShowCount() && PagerCount() != -1\"> / </span>\r\n </ng-container>\r\n <span class=\"est-fs-14 est-ipp-bold\" *ngIf=\"ShowCount() && PagerCount() != -1\">{{PagerCount() | number : '0.0-0' : lc.Locale}}</span>\r\n</div>", styles: [".est-rg-ipp-sel-all,.est-rg-ipp-sel,.est-ipp-sel-all,.est-ipp-sel{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block;display:inline}.est-ipp-bold{font-weight:700}.mat-paginator-page-size-select{margin:6px 4px 0;width:50px}.mat-paginator-page-size-select .mat-form-field-wrapper{height:52px!important;margin-top:-15px!important;padding:0!important}.mat-form-field-type-mat-native-select .mat-form-field-infix:after{margin-top:-5.5px!important}\n"] }]
|
|
132
|
-
}], ctorParameters: () => [{ type: i5.MessageService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }], propDecorators: { pagingSelected: [{
|
|
132
|
+
}], ctorParameters: () => [{ type: i5.MessageService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }], propDecorators: { CurrentPageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "CurrentPageSize", required: false }] }], View: [{ type: i0.Input, args: [{ isSignal: true, alias: "View", required: false }] }], WarnOnAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "WarnOnAll", required: false }] }], AllSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "AllSearch", required: false }] }], DefaultAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "DefaultAll", required: false }] }], GroupMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "GroupMode", required: false }] }], GroupCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "GroupCount", required: false }] }], CountLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "CountLabel", required: false }] }], ShowCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "ShowCount", required: false }] }], ShowPaging: [{ type: i0.Input, args: [{ isSignal: true, alias: "ShowPaging", required: false }] }], PagerCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "PagerCount", required: false }] }], Hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "Hidden", required: false }] }], pagingSelected: [{
|
|
133
133
|
type: Output
|
|
134
134
|
}] } });
|
|
135
135
|
|
|
@@ -286,10 +286,10 @@ class EsTdDirective {
|
|
|
286
286
|
/** Equivalente dell'NgIf sul td */
|
|
287
287
|
this.tdIf = true;
|
|
288
288
|
}
|
|
289
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
290
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
289
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTdDirective, deps: [{ token: i0.TemplateRef, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
290
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.24", type: EsTdDirective, isStandalone: false, selector: "[td]", inputs: { tdVisible: "tdVisible", td: "td", tdForProperty: "tdForProperty", tdIf: "tdIf", tdClass: "tdClass", tdPropertyAccessor: "tdPropertyAccessor", tdAlignment: "tdAlignment", tdFormat: "tdFormat", tdIconClass: "tdIconClass", tdConditionField: "tdConditionField", tdConditionValue: "tdConditionValue", tdTitle: "tdTitle", tdContent: "tdContent" }, ngImport: i0 }); }
|
|
291
291
|
}
|
|
292
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
292
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTdDirective, decorators: [{
|
|
293
293
|
type: Directive,
|
|
294
294
|
args: [{
|
|
295
295
|
selector: '[td]',
|
|
@@ -381,10 +381,10 @@ class EsThDirective {
|
|
|
381
381
|
/** Opzioni da applicare all'editor di questa colonna */
|
|
382
382
|
this.thEditorOptions = {};
|
|
383
383
|
}
|
|
384
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
385
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
384
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsThDirective, deps: [{ token: i0.TemplateRef, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
385
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.24", type: EsThDirective, isStandalone: false, selector: "[th]", inputs: { th: "th", thPinned: "thPinned", thPinnable: "thPinnable", thPinnedWidth: "thPinnedWidth", thVisible: "thVisible", thFixed: "thFixed", thParent: "thParent", thOrder: "thOrder", thOrderable: "thOrderable", thWrap: "thWrap", thResizable: "thResizable", thClass: "thClass", thShrink: "thShrink", thGroupClass: "thGroupClass", thIf: "thIf", thEmpty: "thEmpty", thGroup: "thGroup", thAggregation: "thAggregation", thProperty: "thProperty", thType: "thType", thSource: "thSource", thMulti: "thMulti", thStaticContent: "thStaticContent", thBackgroundColor: "thBackgroundColor", thAlignment: "thAlignment", thFormat: "thFormat", thEditorName: "thEditorName", thEditorOptions: "thEditorOptions", thRendererName: "thRendererName", thRoutePath: "thRoutePath", thRouteParameterProperties: "thRouteParameterProperties" }, ngImport: i0 }); }
|
|
386
386
|
}
|
|
387
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsThDirective, decorators: [{
|
|
388
388
|
type: Directive,
|
|
389
389
|
args: [{
|
|
390
390
|
selector: '[th]',
|
|
@@ -462,10 +462,10 @@ class EsTdEditorDirective {
|
|
|
462
462
|
constructor(Template) {
|
|
463
463
|
this.Template = Template;
|
|
464
464
|
}
|
|
465
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
466
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
465
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTdEditorDirective, deps: [{ token: i0.TemplateRef, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
466
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.24", type: EsTdEditorDirective, isStandalone: false, selector: "[editor]", inputs: { editor: "editor", editorForProperty: "editorForProperty" }, ngImport: i0 }); }
|
|
467
467
|
}
|
|
468
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
468
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTdEditorDirective, decorators: [{
|
|
469
469
|
type: Directive,
|
|
470
470
|
args: [{
|
|
471
471
|
selector: '[editor]',
|
|
@@ -497,10 +497,10 @@ class ThTdProvider {
|
|
|
497
497
|
await this.asyncLoad();
|
|
498
498
|
this.setLoaded();
|
|
499
499
|
}
|
|
500
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
501
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
500
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ThTdProvider, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
501
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.24", type: ThTdProvider, isStandalone: false, selector: "[td_th_provider]", queries: [{ propertyName: "EsTdsDirective", predicate: EsTdDirective }, { propertyName: "EsThsDirective", predicate: EsThDirective }], exportAs: ["tdThProvider"], ngImport: i0 }); }
|
|
502
502
|
}
|
|
503
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
503
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: ThTdProvider, decorators: [{
|
|
504
504
|
type: Directive,
|
|
505
505
|
args: [{
|
|
506
506
|
selector: '[td_th_provider]', exportAs: "tdThProvider",
|
|
@@ -543,10 +543,10 @@ class EsTableLoc extends LocalizationService {
|
|
|
543
543
|
super.set("en->it", "Size of copied data is different from the size of the selection", ["La dimensione dei dati copiati differisce dalla dimensione della selezione"]);
|
|
544
544
|
super.set("en->it", "Data for this table cannot be edited", ["I dati di questa tabella non possono essere modificati"]);
|
|
545
545
|
}
|
|
546
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
547
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
546
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTableLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
547
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTableLoc }); }
|
|
548
548
|
}
|
|
549
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
549
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTableLoc, decorators: [{
|
|
550
550
|
type: Injectable
|
|
551
551
|
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
552
552
|
|
|
@@ -3483,10 +3483,10 @@ class UtilitiesHandler {
|
|
|
3483
3483
|
// I casi in cui si arriva qui sono i casi di Input che di default va bene che siano nulli e che nessuno si caga
|
|
3484
3484
|
return null;
|
|
3485
3485
|
}
|
|
3486
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3487
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3486
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: UtilitiesHandler, deps: [{ token: i5.HashingService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3487
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: UtilitiesHandler, providedIn: 'root' }); }
|
|
3488
3488
|
}
|
|
3489
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: UtilitiesHandler, decorators: [{
|
|
3490
3490
|
type: Injectable,
|
|
3491
3491
|
args: [{ providedIn: 'root' }]
|
|
3492
3492
|
}], ctorParameters: () => [{ type: i5.HashingService }] });
|
|
@@ -3508,10 +3508,10 @@ class CopyPasteDetector {
|
|
|
3508
3508
|
this.OnPaste.next();
|
|
3509
3509
|
});
|
|
3510
3510
|
}
|
|
3511
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3512
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3511
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: CopyPasteDetector, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3512
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: CopyPasteDetector, providedIn: "root" }); }
|
|
3513
3513
|
}
|
|
3514
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3514
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: CopyPasteDetector, decorators: [{
|
|
3515
3515
|
type: Injectable,
|
|
3516
3516
|
args: [{ providedIn: "root" }]
|
|
3517
3517
|
}], ctorParameters: () => [] });
|
|
@@ -3526,10 +3526,10 @@ class Logger {
|
|
|
3526
3526
|
if (this.debugMode)
|
|
3527
3527
|
console.log("[@esfaenza/es-table @ " + (new Date()).toISOString() + "] " + text);
|
|
3528
3528
|
}
|
|
3529
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3530
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3529
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: Logger, deps: [{ token: EST_DEBUG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3530
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: Logger, providedIn: "root" }); }
|
|
3531
3531
|
}
|
|
3532
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3532
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: Logger, decorators: [{
|
|
3533
3533
|
type: Injectable,
|
|
3534
3534
|
args: [{ providedIn: "root" }]
|
|
3535
3535
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
@@ -3560,29 +3560,29 @@ class EsTh {
|
|
|
3560
3560
|
*/
|
|
3561
3561
|
this.startOffset = null;
|
|
3562
3562
|
/** Id della colonna, dev'essere lo stesso per tutti gli **EsTd** relativi */
|
|
3563
|
-
this.ID = input("", { alias: "es-th" });
|
|
3563
|
+
this.ID = input("", ...(ngDevMode ? [{ debugName: "ID", alias: "es-th" }] : [{ alias: "es-th" }]));
|
|
3564
3564
|
/** Ordinamento attuale della colonna */
|
|
3565
|
-
this._Order = input(null, { alias: 'Order', transform: this.setUnderlyingSignal.bind(this, "Order") });
|
|
3566
|
-
this.Order = signal(null);
|
|
3565
|
+
this._Order = input(null, ...(ngDevMode ? [{ debugName: "_Order", alias: 'Order', transform: this.setUnderlyingSignal.bind(this, "Order") }] : [{ alias: 'Order', transform: this.setUnderlyingSignal.bind(this, "Order") }]));
|
|
3566
|
+
this.Order = signal(null, ...(ngDevMode ? [{ debugName: "Order" }] : []));
|
|
3567
3567
|
/** Indica se questa colonna è ordinabile o meno */
|
|
3568
|
-
this.Orderable = input(true);
|
|
3568
|
+
this.Orderable = input(true, ...(ngDevMode ? [{ debugName: "Orderable" }] : []));
|
|
3569
3569
|
/** Valore da mostrare all'interno della colonna. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
|
|
3570
|
-
this.Display = input("");
|
|
3570
|
+
this.Display = input("", ...(ngDevMode ? [{ debugName: "Display" }] : []));
|
|
3571
3571
|
/** Indica se le dimnsioni di questa colonna sono modificabili o meno */
|
|
3572
|
-
this.Resizable = input(false);
|
|
3572
|
+
this.Resizable = input(false, ...(ngDevMode ? [{ debugName: "Resizable" }] : []));
|
|
3573
3573
|
/** Indica se questo header è pinnato. In caso lo fosse presenta il tastino per effettuare lo spinning */
|
|
3574
|
-
this.Pinned = input(false);
|
|
3574
|
+
this.Pinned = input(false, ...(ngDevMode ? [{ debugName: "Pinned" }] : []));
|
|
3575
3575
|
/**
|
|
3576
3576
|
* Indica se sta venendo eseguita una operazione di ricerca o meno, serve per evitare l'esecuzione di eventuale codice che potrebbe dare fastidio
|
|
3577
3577
|
* come ad esempio l'escuzione di un ordinamento durante il caricamento di dati nuovi
|
|
3578
3578
|
*/
|
|
3579
|
-
this.SearchInProgress = input(false);
|
|
3579
|
+
this.SearchInProgress = input(false, ...(ngDevMode ? [{ debugName: "SearchInProgress" }] : []));
|
|
3580
3580
|
/** Impostato dall'**EsTable**, serve per permettere o meno di effettuare ordinamenti dati su questa colonna */
|
|
3581
|
-
this.OrderBy = input(null);
|
|
3581
|
+
this.OrderBy = input(null, ...(ngDevMode ? [{ debugName: "OrderBy" }] : []));
|
|
3582
3582
|
/** Indica se il testo presente in questo Header può andare a capo o meno, di default non può */
|
|
3583
|
-
this.Wrap = input(false);
|
|
3583
|
+
this.Wrap = input(false, ...(ngDevMode ? [{ debugName: "Wrap" }] : []));
|
|
3584
3584
|
/** Indica se la colonna è fixed, cioè se non può né essere nascosta, né riposizionata. Solo le prime colonne possono essere Fixed */
|
|
3585
|
-
this.Fixed = input(false);
|
|
3585
|
+
this.Fixed = input(false, ...(ngDevMode ? [{ debugName: "Fixed" }] : []));
|
|
3586
3586
|
/** Template Angular da istanziare per questo TH */
|
|
3587
3587
|
this.Template = null;
|
|
3588
3588
|
/** Evento emesso al cambio di ordinamento effettuato su questa colonna */
|
|
@@ -3590,13 +3590,13 @@ class EsTh {
|
|
|
3590
3590
|
/** Evento emesso all'unpinning della colonna */
|
|
3591
3591
|
this.onUnpinning = new EventEmitter();
|
|
3592
3592
|
/** Classi da applicare alla colonna */
|
|
3593
|
-
this.Class = signal("");
|
|
3593
|
+
this.Class = signal("", ...(ngDevMode ? [{ debugName: "Class" }] : []));
|
|
3594
3594
|
/** Impostato dall'**EsTable**, per controllare che ci sia almeno un TD che utilizzi quest'header */
|
|
3595
|
-
this._referenced = signal(false);
|
|
3595
|
+
this._referenced = signal(false, ...(ngDevMode ? [{ debugName: "_referenced" }] : []));
|
|
3596
3596
|
/** Variabile finale su cui è bindato il contenuto della cella. Sarà valorizzato a **Display** se specificato, all'**innerHTML** dell'elemento proiettato altrimenti */
|
|
3597
3597
|
this.Description = computed(() => {
|
|
3598
3598
|
return this.Display() === null || this.Display() === "" ? this.content.nativeElement.innerText : this.Display();
|
|
3599
|
-
});
|
|
3599
|
+
}, ...(ngDevMode ? [{ debugName: "Description" }] : []));
|
|
3600
3600
|
}
|
|
3601
3601
|
/**
|
|
3602
3602
|
* Imposta la visibilità o meno della colonna, si traduce nell'applicazione o rimozione della classe **app-display-none**
|
|
@@ -3679,13 +3679,13 @@ class EsTh {
|
|
|
3679
3679
|
//Fermo il bubbling per non fare cose strane
|
|
3680
3680
|
$event.preventDefault();
|
|
3681
3681
|
}
|
|
3682
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3683
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
3682
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTh, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3683
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: EsTh, isStandalone: false, selector: "[es-th]", inputs: { ID: { classPropertyName: "ID", publicName: "es-th", isSignal: true, isRequired: false, transformFunction: null }, _Order: { classPropertyName: "_Order", publicName: "Order", isSignal: true, isRequired: false, transformFunction: null }, Orderable: { classPropertyName: "Orderable", publicName: "Orderable", isSignal: true, isRequired: false, transformFunction: null }, Display: { classPropertyName: "Display", publicName: "Display", isSignal: true, isRequired: false, transformFunction: null }, Resizable: { classPropertyName: "Resizable", publicName: "Resizable", isSignal: true, isRequired: false, transformFunction: null }, Pinned: { classPropertyName: "Pinned", publicName: "Pinned", isSignal: true, isRequired: false, transformFunction: null }, SearchInProgress: { classPropertyName: "SearchInProgress", publicName: "SearchInProgress", isSignal: true, isRequired: false, transformFunction: null }, OrderBy: { classPropertyName: "OrderBy", publicName: "OrderBy", isSignal: true, isRequired: false, transformFunction: null }, Wrap: { classPropertyName: "Wrap", publicName: "Wrap", isSignal: true, isRequired: false, transformFunction: null }, Fixed: { classPropertyName: "Fixed", publicName: "Fixed", isSignal: true, isRequired: false, transformFunction: null }, Template: { classPropertyName: "Template", publicName: "Template", isSignal: false, isRequired: false, transformFunction: null }, Visible: { classPropertyName: "Visible", publicName: "Visible", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onOrderChange: "onOrderChange", onUnpinning: "onUnpinning" }, host: { listeners: { "window:mouseup.out-zone": "onMouseUp()", "window:mousemove.out-zone": "onMouseMove($event)" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<span (click)=\"setupNextOrderAndNotify()\" [class.app-no-selection]=\"!!ID() && Orderable()\" [class.app-pointer]=\"!!ID() && Orderable()\">\r\n <span #content>\r\n <ng-container *ngIf=\"!!Template\">\r\n <ng-container *ngTemplateOutlet=\"Template\"></ng-container>\r\n </ng-container>\r\n <ng-content *ngIf=\"!Template\"></ng-content>\r\n </span> \r\n <span class=\"fa\" [class.fa-chevron-down]=\"Order() == 'DESC'\" [class.fa-chevron-up]=\"Order() == 'ASC'\"></span>\r\n</span>\r\n<span *ngIf=\"Pinned() && !Fixed()\" class=\"app-pointer fa fa-thumb-tack est-quick-unpin\" (click)=\"unpin()\"></span>\r\n<div [hidden]=\"!Resizable() || Fixed() || Pinned()\" class=\"est-head-resizer\" (mousedown)=\"onResizeStart($event)\">\r\n <div class=\"est-head-resizer-internal\"></div>\r\n</div>", dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3684
3684
|
}
|
|
3685
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3685
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTh, decorators: [{
|
|
3686
3686
|
type: Component,
|
|
3687
3687
|
args: [{ selector: "[es-th]", changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<span (click)=\"setupNextOrderAndNotify()\" [class.app-no-selection]=\"!!ID() && Orderable()\" [class.app-pointer]=\"!!ID() && Orderable()\">\r\n <span #content>\r\n <ng-container *ngIf=\"!!Template\">\r\n <ng-container *ngTemplateOutlet=\"Template\"></ng-container>\r\n </ng-container>\r\n <ng-content *ngIf=\"!Template\"></ng-content>\r\n </span> \r\n <span class=\"fa\" [class.fa-chevron-down]=\"Order() == 'DESC'\" [class.fa-chevron-up]=\"Order() == 'ASC'\"></span>\r\n</span>\r\n<span *ngIf=\"Pinned() && !Fixed()\" class=\"app-pointer fa fa-thumb-tack est-quick-unpin\" (click)=\"unpin()\"></span>\r\n<div [hidden]=\"!Resizable() || Fixed() || Pinned()\" class=\"est-head-resizer\" (mousedown)=\"onResizeStart($event)\">\r\n <div class=\"est-head-resizer-internal\"></div>\r\n</div>" }]
|
|
3688
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { Template: [{
|
|
3688
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { ID: [{ type: i0.Input, args: [{ isSignal: true, alias: "es-th", required: false }] }], _Order: [{ type: i0.Input, args: [{ isSignal: true, alias: "Order", required: false }] }], Orderable: [{ type: i0.Input, args: [{ isSignal: true, alias: "Orderable", required: false }] }], Display: [{ type: i0.Input, args: [{ isSignal: true, alias: "Display", required: false }] }], Resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "Resizable", required: false }] }], Pinned: [{ type: i0.Input, args: [{ isSignal: true, alias: "Pinned", required: false }] }], SearchInProgress: [{ type: i0.Input, args: [{ isSignal: true, alias: "SearchInProgress", required: false }] }], OrderBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "OrderBy", required: false }] }], Wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "Wrap", required: false }] }], Fixed: [{ type: i0.Input, args: [{ isSignal: true, alias: "Fixed", required: false }] }], Template: [{
|
|
3689
3689
|
type: Input
|
|
3690
3690
|
}], onOrderChange: [{
|
|
3691
3691
|
type: Output
|
|
@@ -3711,13 +3711,13 @@ class EsTd {
|
|
|
3711
3711
|
constructor(el) {
|
|
3712
3712
|
this.el = el;
|
|
3713
3713
|
/** Id della cella, dev'essere lo stesso della colonna **EsTh** relativa */
|
|
3714
|
-
this.ID = input("", { alias: "es-td" });
|
|
3714
|
+
this.ID = input("", ...(ngDevMode ? [{ debugName: "ID", alias: "es-td" }] : [{ alias: "es-td" }]));
|
|
3715
3715
|
/** Contesto dell'oggetto a cui si riferisce il dato visualizzato. Contiene l'hash dell'oggetto in questione */
|
|
3716
|
-
this.Context = input();
|
|
3716
|
+
this.Context = input(...(ngDevMode ? [undefined, { debugName: "Context" }] : []));
|
|
3717
3717
|
/** Quando questa cella viene generata questo evento permette di dire "ehi, sono nato!" */
|
|
3718
3718
|
this.onCellGeneration = new EventEmitter();
|
|
3719
3719
|
/** Errore attualmente presente sulla cella */
|
|
3720
|
-
this.ValidationError = signal("");
|
|
3720
|
+
this.ValidationError = signal("", ...(ngDevMode ? [{ debugName: "ValidationError" }] : []));
|
|
3721
3721
|
}
|
|
3722
3722
|
/** @ignore */
|
|
3723
3723
|
ngAfterViewInit() {
|
|
@@ -3727,13 +3727,13 @@ class EsTd {
|
|
|
3727
3727
|
validationError(error) {
|
|
3728
3728
|
this.ValidationError.set(error);
|
|
3729
3729
|
}
|
|
3730
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3731
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
3730
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTd, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3731
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: EsTd, isStandalone: false, selector: "[es-td]", inputs: { ID: { classPropertyName: "ID", publicName: "es-td", isSignal: true, isRequired: false, transformFunction: null }, Context: { classPropertyName: "Context", publicName: "Context", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onCellGeneration: "onCellGeneration" }, ngImport: i0, template: "<div class=\"td-content\" [class.td-error]=\"!!ValidationError()\" [pTooltip]=\"ValidationError()\">\r\n <ng-content></ng-content>\r\n</div>", styles: [".td-error{background-color:#f003;-webkit-box-shadow:inset 0px 0px 0px 1px #f00;-moz-box-shadow:inset 0px 0px 0px 1px #f00;box-shadow:inset 0 0 0 1px red}.td-content{padding:.3rem;margin:-.3rem;box-sizing:border-box!important}\n"], dependencies: [{ kind: "directive", type: i1$1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3732
3732
|
}
|
|
3733
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3733
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTd, decorators: [{
|
|
3734
3734
|
type: Component,
|
|
3735
3735
|
args: [{ selector: "[es-td]", changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"td-content\" [class.td-error]=\"!!ValidationError()\" [pTooltip]=\"ValidationError()\">\r\n <ng-content></ng-content>\r\n</div>", styles: [".td-error{background-color:#f003;-webkit-box-shadow:inset 0px 0px 0px 1px #f00;-moz-box-shadow:inset 0px 0px 0px 1px #f00;box-shadow:inset 0 0 0 1px red}.td-content{padding:.3rem;margin:-.3rem;box-sizing:border-box!important}\n"] }]
|
|
3736
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onCellGeneration: [{
|
|
3736
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { ID: [{ type: i0.Input, args: [{ isSignal: true, alias: "es-td", required: false }] }], Context: [{ type: i0.Input, args: [{ isSignal: true, alias: "Context", required: false }] }], onCellGeneration: [{
|
|
3737
3737
|
type: Output
|
|
3738
3738
|
}] } });
|
|
3739
3739
|
|
|
@@ -3770,10 +3770,10 @@ class EstFormatPipe {
|
|
|
3770
3770
|
}
|
|
3771
3771
|
}
|
|
3772
3772
|
}
|
|
3773
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3774
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3773
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstFormatPipe, deps: [{ token: i5.DateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3774
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: EstFormatPipe, isStandalone: false, name: "est_format" }); }
|
|
3775
3775
|
}
|
|
3776
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3776
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstFormatPipe, decorators: [{
|
|
3777
3777
|
type: Pipe,
|
|
3778
3778
|
args: [{
|
|
3779
3779
|
name: 'est_format',
|
|
@@ -3790,10 +3790,10 @@ class EstLookupPipe {
|
|
|
3790
3790
|
}
|
|
3791
3791
|
return { id: "", description: "" };
|
|
3792
3792
|
}
|
|
3793
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3794
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3793
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstLookupPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3794
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: EstLookupPipe, isStandalone: false, name: "est_lookup" }); }
|
|
3795
3795
|
}
|
|
3796
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3796
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstLookupPipe, decorators: [{
|
|
3797
3797
|
type: Pipe,
|
|
3798
3798
|
args: [{
|
|
3799
3799
|
name: 'est_lookup',
|
|
@@ -3832,10 +3832,10 @@ class EstRouterLinkPipe {
|
|
|
3832
3832
|
path = path.replace(/'/g, '"').replace(/ /g, '');
|
|
3833
3833
|
return JSON.parse(path);
|
|
3834
3834
|
}
|
|
3835
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3836
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3835
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstRouterLinkPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3836
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: EstRouterLinkPipe, isStandalone: false, name: "est_routerlink" }); }
|
|
3837
3837
|
}
|
|
3838
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3838
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstRouterLinkPipe, decorators: [{
|
|
3839
3839
|
type: Pipe,
|
|
3840
3840
|
args: [{
|
|
3841
3841
|
name: 'est_routerlink',
|
|
@@ -3868,10 +3868,10 @@ class EstRendererPipe {
|
|
|
3868
3868
|
var ret = EsTd ? EsTd.Template : params.fallback;
|
|
3869
3869
|
return ret;
|
|
3870
3870
|
}
|
|
3871
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3872
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3871
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstRendererPipe, deps: [{ token: Logger }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3872
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: EstRendererPipe, isStandalone: false, name: "est_renderer" }); }
|
|
3873
3873
|
}
|
|
3874
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3874
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstRendererPipe, decorators: [{
|
|
3875
3875
|
type: Pipe,
|
|
3876
3876
|
args: [{
|
|
3877
3877
|
name: 'est_renderer',
|
|
@@ -3904,10 +3904,10 @@ class EstEditorPipe {
|
|
|
3904
3904
|
var ret = Editor ? Editor.Template : params.fallback;
|
|
3905
3905
|
return ret;
|
|
3906
3906
|
}
|
|
3907
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3908
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3907
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstEditorPipe, deps: [{ token: Logger }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3908
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: EstEditorPipe, isStandalone: false, name: "est_editor" }); }
|
|
3909
3909
|
}
|
|
3910
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3910
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstEditorPipe, decorators: [{
|
|
3911
3911
|
type: Pipe,
|
|
3912
3912
|
args: [{
|
|
3913
3913
|
name: 'est_editor',
|
|
@@ -3924,10 +3924,10 @@ class EstPropInsensitivePipe {
|
|
|
3924
3924
|
}
|
|
3925
3925
|
return "";
|
|
3926
3926
|
}
|
|
3927
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3928
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3927
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstPropInsensitivePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3928
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: EstPropInsensitivePipe, isStandalone: false, name: "est_propinsensitive" }); }
|
|
3929
3929
|
}
|
|
3930
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3930
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EstPropInsensitivePipe, decorators: [{
|
|
3931
3931
|
type: Pipe,
|
|
3932
3932
|
args: [{
|
|
3933
3933
|
name: 'est_propinsensitive',
|
|
@@ -3971,22 +3971,22 @@ class EsTableComponent {
|
|
|
3971
3971
|
/** View finale su cui bindarsi lato Frontend, il tipo può essere IAppSearch<any> (per la **viewMode**), any[] (per l'**arrayMode**) */
|
|
3972
3972
|
this.View = null; // TODO: signal
|
|
3973
3973
|
/** Modello da cui l'es-table mostra i pulsanti di paginazione in basso a destra */
|
|
3974
|
-
this.arrayPulsanti = signal(null);
|
|
3974
|
+
this.arrayPulsanti = signal(null, ...(ngDevMode ? [{ debugName: "arrayPulsanti" }] : []));
|
|
3975
3975
|
/** Indica se l'es-table deve mostrare il check globale nell'header per fare il "seleziona tutto" */
|
|
3976
|
-
this.globalCheck = model(false);
|
|
3976
|
+
this.globalCheck = model(false, ...(ngDevMode ? [{ debugName: "globalCheck" }] : []));
|
|
3977
3977
|
/** Conteggio interno per il numero di elementi selezionati */
|
|
3978
|
-
this.selectedObjects = signal(0);
|
|
3978
|
+
this.selectedObjects = signal(0, ...(ngDevMode ? [{ debugName: "selectedObjects" }] : []));
|
|
3979
3979
|
/** Indica se è possibile effettuare una selezione massiva */
|
|
3980
|
-
this.canSelectAll = signal(false);
|
|
3980
|
+
this.canSelectAll = signal(false, ...(ngDevMode ? [{ debugName: "canSelectAll" }] : []));
|
|
3981
3981
|
/** Indica se il componente sta gestendo un IAppSearch<any> */
|
|
3982
|
-
this.viewMode = signal(false);
|
|
3982
|
+
this.viewMode = signal(false, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
3983
3983
|
/** Indica se il componente sta gestendo un any[] */
|
|
3984
|
-
this.arrayMode = signal(false);
|
|
3984
|
+
this.arrayMode = signal(false, ...(ngDevMode ? [{ debugName: "arrayMode" }] : []));
|
|
3985
3985
|
/**
|
|
3986
3986
|
* Contenitore degli elementi da listare lato interfaccia dopo tutte le elaborazioni del caso,
|
|
3987
3987
|
* generalmente non sono altro che tutti gli oggetti da presentare con in più l'hash calcolato per identificare 1 oggetto con la propria riga
|
|
3988
3988
|
*/
|
|
3989
|
-
this.boundSource = signal([]);
|
|
3989
|
+
this.boundSource = signal([], ...(ngDevMode ? [{ debugName: "boundSource" }] : []));
|
|
3990
3990
|
/** Stessa cosa della **boundSource**, utilizzata come appoggio temporaneo interno */
|
|
3991
3991
|
this.TMPBoundSource = [];
|
|
3992
3992
|
/** @deprecated "Fetta" di oggetti utilizzata nell'endless scroll, ogni elemento di questo array è un blocchetto di 100 elementi */
|
|
@@ -3996,17 +3996,17 @@ class EsTableComponent {
|
|
|
3996
3996
|
/** Variabile che identifica il valore del "seleziona Tutto" nella paginazione */
|
|
3997
3997
|
this.defaultAllPageOverride = 999999;
|
|
3998
3998
|
/** Indica se utilizzare il sistema di autoupdate, cioè un trigger time-izzato in alto a destra della tabella che ripete le ricerche ogni X **seconds** */
|
|
3999
|
-
this.autoUpdate = model(false);
|
|
3999
|
+
this.autoUpdate = model(false, ...(ngDevMode ? [{ debugName: "autoUpdate" }] : []));
|
|
4000
4000
|
/** Numero di secondi da fare trascorrere fra una ricerca e l'altra */
|
|
4001
|
-
this.seconds = model("10");
|
|
4001
|
+
this.seconds = model("10", ...(ngDevMode ? [{ debugName: "seconds" }] : []));
|
|
4002
4002
|
/** Impostata a true ogni volta che viene avviata una ricerca, e a false ogni volta che un nuovo valore viene ricevuto */
|
|
4003
|
-
this.researchInProgress = model(false);
|
|
4003
|
+
this.researchInProgress = model(false, ...(ngDevMode ? [{ debugName: "researchInProgress" }] : []));
|
|
4004
4004
|
/** Modello di appoggio temporaneo per i **RowTDs** */
|
|
4005
4005
|
this.TMPRowTDs = null;
|
|
4006
4006
|
/** Modello rappresentante un dizionario di righe della tabella, con chiave l'hash e valore la lista di celle */
|
|
4007
4007
|
this.RowTDs = null;
|
|
4008
4008
|
/** Indica se **RowTDs** è un oggetto vuoto o meno */
|
|
4009
|
-
this.EmptyRowTds = signal(true);
|
|
4009
|
+
this.EmptyRowTds = signal(true, ...(ngDevMode ? [{ debugName: "EmptyRowTds" }] : []));
|
|
4010
4010
|
/** Modello di appoggio temporaneo per i **RowTHs** */
|
|
4011
4011
|
this.TMPRowTHs = null;
|
|
4012
4012
|
/** Modello rappresentante un singolo th della tabella, generato in base alle configurazioni e agli oggetti ricevuti */
|
|
@@ -4037,174 +4037,174 @@ class EsTableComponent {
|
|
|
4037
4037
|
* ecc...
|
|
4038
4038
|
* viene dedotto dal sistema in automatico
|
|
4039
4039
|
*/
|
|
4040
|
-
this.UseCustomCells = signal(null);
|
|
4040
|
+
this.UseCustomCells = signal(null, ...(ngDevMode ? [{ debugName: "UseCustomCells" }] : []));
|
|
4041
4041
|
/**
|
|
4042
4042
|
* Indica se oltre alle colonne dinamiche specifiche di un tipo di oggetto ci sono anche colonne dinamiche aggiunte dall'utente
|
|
4043
4043
|
*
|
|
4044
4044
|
* Es. una colonna in cui mostrare sempre un iconcina
|
|
4045
4045
|
*/
|
|
4046
|
-
this.UserDefinedDynamicCols = signal(false);
|
|
4046
|
+
this.UserDefinedDynamicCols = signal(false, ...(ngDevMode ? [{ debugName: "UserDefinedDynamicCols" }] : []));
|
|
4047
4047
|
/** Indica che questo è il primo Bind della tabella, viene settato a false non appena il primo bind viene terminato con successo */
|
|
4048
|
-
this.FirstBind = signal(true);
|
|
4048
|
+
this.FirstBind = signal(true, ...(ngDevMode ? [{ debugName: "FirstBind" }] : []));
|
|
4049
4049
|
/** Lista di colonne che si possono visualizzare/ordinare fra di loro */
|
|
4050
4050
|
this.ColumnsList = [];
|
|
4051
4051
|
/** Variabile d'appoggio usata dalla dialog di selezione/nascondimento, per evitare di danneggiare **ColumnsList** in caso di modifiche poi annullate */
|
|
4052
4052
|
this.TMPColumnsList = [];
|
|
4053
4053
|
/** Valore del check globale di visibilità valido per tutte le colonne in **ColumnsList** */
|
|
4054
|
-
this.globalColVisCheck = model(false);
|
|
4054
|
+
this.globalColVisCheck = model(false, ...(ngDevMode ? [{ debugName: "globalColVisCheck" }] : []));
|
|
4055
4055
|
/** Opzioni extra che devono apparire nel Menù contestuale in alto a destra, richiamato dai 3 pallini verticali */
|
|
4056
|
-
this.CornerMenuOptions = input(null);
|
|
4056
|
+
this.CornerMenuOptions = input(null, ...(ngDevMode ? [{ debugName: "CornerMenuOptions" }] : []));
|
|
4057
4057
|
/** Indica se dev'essere possibile effettuare il resize delle colonne */
|
|
4058
|
-
this._ColumnsResizable = input(null, { alias: "ColumnsResizable" });
|
|
4059
|
-
this.ColumnsResizable = signal(null);
|
|
4058
|
+
this._ColumnsResizable = input(null, ...(ngDevMode ? [{ debugName: "_ColumnsResizable", alias: "ColumnsResizable" }] : [{ alias: "ColumnsResizable" }]));
|
|
4059
|
+
this.ColumnsResizable = signal(null, ...(ngDevMode ? [{ debugName: "ColumnsResizable" }] : []));
|
|
4060
4060
|
/** Indica se dev'essere possibile effettuare il pinning delle colonne */
|
|
4061
|
-
this._ColumnsPinnable = input(null, { alias: "ColumnsPinnable" });
|
|
4062
|
-
this.ColumnsPinnable = signal(null);
|
|
4061
|
+
this._ColumnsPinnable = input(null, ...(ngDevMode ? [{ debugName: "_ColumnsPinnable", alias: "ColumnsPinnable" }] : [{ alias: "ColumnsPinnable" }]));
|
|
4062
|
+
this.ColumnsPinnable = signal(null, ...(ngDevMode ? [{ debugName: "ColumnsPinnable" }] : []));
|
|
4063
4063
|
/** Indica se dev'essere disponibile il sistema di aggiornamento automatico */
|
|
4064
|
-
this._AutoUpdate = input(null, { alias: "AutoUpdate" });
|
|
4065
|
-
this.AutoUpdate = signal(null);
|
|
4064
|
+
this._AutoUpdate = input(null, ...(ngDevMode ? [{ debugName: "_AutoUpdate", alias: "AutoUpdate" }] : [{ alias: "AutoUpdate" }]));
|
|
4065
|
+
this.AutoUpdate = signal(null, ...(ngDevMode ? [{ debugName: "AutoUpdate" }] : []));
|
|
4066
4066
|
/** Indica l'altezza cablata che deve assumere la tabella. Es: "100px" | "100%" ... */
|
|
4067
|
-
this.Height = input(null);
|
|
4067
|
+
this.Height = input(null, ...(ngDevMode ? [{ debugName: "Height" }] : []));
|
|
4068
4068
|
/** Indica il colore di sfondo dello spazio vuoto (non ricoperto da dati). Particolarmente utile da impostare in caso di **Height** diverso da null */
|
|
4069
|
-
this.EmptySpaceBackgroundColor = input(null);
|
|
4069
|
+
this.EmptySpaceBackgroundColor = input(null, ...(ngDevMode ? [{ debugName: "EmptySpaceBackgroundColor" }] : []));
|
|
4070
4070
|
/** Indica se dev'essere l'estable a gestire la ricerca, anche la prima. **/
|
|
4071
|
-
this.EsTableHandledSearch = input(false);
|
|
4071
|
+
this.EsTableHandledSearch = input(false, ...(ngDevMode ? [{ debugName: "EsTableHandledSearch" }] : []));
|
|
4072
4072
|
/** Permette di impostare l'altezza massima della tabella. Se null la dimensione si adatta al numero di elementi attualmente in visualizzazione */
|
|
4073
|
-
this.MaxHeight = input(null);
|
|
4073
|
+
this.MaxHeight = input(null, ...(ngDevMode ? [{ debugName: "MaxHeight" }] : []));
|
|
4074
4074
|
/** Classi da applicare al contenitore della tabella */
|
|
4075
|
-
this._ContainerClass = input(null, { alias: "ContainerClass" });
|
|
4076
|
-
this.ContainerClass = signal(null);
|
|
4075
|
+
this._ContainerClass = input(null, ...(ngDevMode ? [{ debugName: "_ContainerClass", alias: "ContainerClass" }] : [{ alias: "ContainerClass" }]));
|
|
4076
|
+
this.ContainerClass = signal(null, ...(ngDevMode ? [{ debugName: "ContainerClass" }] : []));
|
|
4077
4077
|
/** Permette o meno l'export in formato XLSX */
|
|
4078
|
-
this.XLSXExport = input(null);
|
|
4078
|
+
this.XLSXExport = input(null, ...(ngDevMode ? [{ debugName: "XLSXExport" }] : []));
|
|
4079
4079
|
/** Permette o meno l'export in formato CSV */
|
|
4080
|
-
this.CSVExport = input(true);
|
|
4080
|
+
this.CSVExport = input(true, ...(ngDevMode ? [{ debugName: "CSVExport" }] : []));
|
|
4081
4081
|
/** Permette di visualizzare o meno l'opzione di paginazione "Tutti" */
|
|
4082
|
-
this._AllSearch = input(null, { alias: "AllSearch" });
|
|
4083
|
-
this.AllSearch = signal(null);
|
|
4082
|
+
this._AllSearch = input(null, ...(ngDevMode ? [{ debugName: "_AllSearch", alias: "AllSearch" }] : [{ alias: "AllSearch" }]));
|
|
4083
|
+
this.AllSearch = signal(null, ...(ngDevMode ? [{ debugName: "AllSearch" }] : []));
|
|
4084
4084
|
/** Diminuisce gli spazi fra una cella e l'altra, e internamente il padding del font in modo da presentare molti più dati in un'unica pagina */
|
|
4085
|
-
this.HighCellDensity = input(null);
|
|
4085
|
+
this.HighCellDensity = input(null, ...(ngDevMode ? [{ debugName: "HighCellDensity" }] : []));
|
|
4086
4086
|
/** Abilita o meno la possibilità di selezionare oggetti */
|
|
4087
|
-
this._Selection = input(null, { alias: "Selection", transform: this.setUnderlyingSignal.bind(this, "Selection") });
|
|
4088
|
-
this.Selection = signal(null);
|
|
4087
|
+
this._Selection = input(null, ...(ngDevMode ? [{ debugName: "_Selection", alias: "Selection", transform: this.setUnderlyingSignal.bind(this, "Selection") }] : [{ alias: "Selection", transform: this.setUnderlyingSignal.bind(this, "Selection") }]));
|
|
4088
|
+
this.Selection = signal(null, ...(ngDevMode ? [{ debugName: "Selection" }] : []));
|
|
4089
4089
|
/** Mostra o meno un messaggio di Loading al primo caricamento della tabella */
|
|
4090
|
-
this.ShowLoadingOnBootstrap = input(null);
|
|
4090
|
+
this.ShowLoadingOnBootstrap = input(null, ...(ngDevMode ? [{ debugName: "ShowLoadingOnBootstrap" }] : []));
|
|
4091
4091
|
/** Se impostato a **true** aggiunge una colonna con pulsante di eliminazione per effettuare l'elimina dell'oggetto relativo */
|
|
4092
|
-
this.Removal = input(null);
|
|
4092
|
+
this.Removal = input(null, ...(ngDevMode ? [{ debugName: "Removal" }] : []));
|
|
4093
4093
|
/**
|
|
4094
4094
|
* Condizione che nasconde l'icona di eliminazione inserita impostando **Removal** a true qualora la condizione non venisse rispettata
|
|
4095
4095
|
*
|
|
4096
4096
|
* Come condizione si considera un semplice campo su cui effettuare un controllo booleano, come ad esempio "canremove"
|
|
4097
4097
|
*/
|
|
4098
|
-
this.RemovalCondition = input('');
|
|
4098
|
+
this.RemovalCondition = input('', ...(ngDevMode ? [{ debugName: "RemovalCondition" }] : []));
|
|
4099
4099
|
/** Indica se abilitare la possibilità di esportare la vista dati attuale */
|
|
4100
|
-
this._Export = input(null, { alias: "Export" });
|
|
4101
|
-
this.Export = signal(null);
|
|
4100
|
+
this._Export = input(null, ...(ngDevMode ? [{ debugName: "_Export", alias: "Export" }] : [{ alias: "Export" }]));
|
|
4101
|
+
this.Export = signal(null, ...(ngDevMode ? [{ debugName: "Export" }] : []));
|
|
4102
4102
|
/** Indica se permettere la selezione multipla Windows-like cliccando un oggetto e facendo poi Shift + click su un oggetto successivo */
|
|
4103
|
-
this._ShiftClick = input(null, { alias: "ShiftClick" });
|
|
4104
|
-
this.ShiftClick = signal(null);
|
|
4103
|
+
this._ShiftClick = input(null, ...(ngDevMode ? [{ debugName: "_ShiftClick", alias: "ShiftClick" }] : [{ alias: "ShiftClick" }]));
|
|
4104
|
+
this.ShiftClick = signal(null, ...(ngDevMode ? [{ debugName: "ShiftClick" }] : []));
|
|
4105
4105
|
/** Indica il testo che va a sostituire "Oggetti Visualizzati" in caso si stia facendo qualcosa di custom */
|
|
4106
|
-
this.CountLabel = input(null);
|
|
4106
|
+
this.CountLabel = input(null, ...(ngDevMode ? [{ debugName: "CountLabel" }] : []));
|
|
4107
4107
|
/** Indica se nascondere o mostrare il componente di paginazione */
|
|
4108
|
-
this._HidePaging = input(null, { alias: "HidePaging" });
|
|
4109
|
-
this.HidePaging = signal(null);
|
|
4108
|
+
this._HidePaging = input(null, ...(ngDevMode ? [{ debugName: "_HidePaging", alias: "HidePaging" }] : [{ alias: "HidePaging" }]));
|
|
4109
|
+
this.HidePaging = signal(null, ...(ngDevMode ? [{ debugName: "HidePaging" }] : []));
|
|
4110
4110
|
/** Indica se nascondere o mostrare il conteggio degli elementi trovati */
|
|
4111
|
-
this._HidePagingCount = input(null, { alias: "HidePagingCount" });
|
|
4112
|
-
this.HidePagingCount = signal(null);
|
|
4111
|
+
this._HidePagingCount = input(null, ...(ngDevMode ? [{ debugName: "_HidePagingCount", alias: "HidePagingCount" }] : [{ alias: "HidePagingCount" }]));
|
|
4112
|
+
this.HidePagingCount = signal(null, ...(ngDevMode ? [{ debugName: "HidePagingCount" }] : []));
|
|
4113
4113
|
/** Indica se nascondere o mostrare i pulsanti di paginazione */
|
|
4114
|
-
this._HidePagingButtons = input(null, { alias: "HidePagingButtons" });
|
|
4115
|
-
this.HidePagingButtons = signal(null);
|
|
4114
|
+
this._HidePagingButtons = input(null, ...(ngDevMode ? [{ debugName: "_HidePagingButtons", alias: "HidePagingButtons" }] : [{ alias: "HidePagingButtons" }]));
|
|
4115
|
+
this.HidePagingButtons = signal(null, ...(ngDevMode ? [{ debugName: "HidePagingButtons" }] : []));
|
|
4116
4116
|
/** Riferimento al ContextMenu (ngx-contextmenu) associato al click destro di uno o più elementi selezionati nella tabella */
|
|
4117
4117
|
this.ContextMenu = null;
|
|
4118
4118
|
/** Nome dell'esportazione generata da questa tabella */
|
|
4119
|
-
this.ExportFileName = input("Export.csv");
|
|
4119
|
+
this.ExportFileName = input("Export.csv", ...(ngDevMode ? [{ debugName: "ExportFileName" }] : []));
|
|
4120
4120
|
/** Classe (HTML) di default della tabella */
|
|
4121
|
-
this._TableClass = input(null, { alias: "TableClass" });
|
|
4122
|
-
this.TableClass = signal(null);
|
|
4121
|
+
this._TableClass = input(null, ...(ngDevMode ? [{ debugName: "_TableClass", alias: "TableClass" }] : [{ alias: "TableClass" }]));
|
|
4122
|
+
this.TableClass = signal(null, ...(ngDevMode ? [{ debugName: "TableClass" }] : []));
|
|
4123
4123
|
/** Indica di esportare solo le colonne attualmente visibili della view */
|
|
4124
|
-
this.ExportOnlyVisibleColumns = input(false);
|
|
4124
|
+
this.ExportOnlyVisibleColumns = input(false, ...(ngDevMode ? [{ debugName: "ExportOnlyVisibleColumns" }] : []));
|
|
4125
4125
|
/** @deprecated Indica la presenza di raggruppamenti a livello di header */
|
|
4126
|
-
this.HasHeaderGroup = input(null);
|
|
4126
|
+
this.HasHeaderGroup = input(null, ...(ngDevMode ? [{ debugName: "HasHeaderGroup" }] : []));
|
|
4127
4127
|
/** @deprecated Indica la presenza di raggruppamenti a livello del raggruppamento precedentemente esistente, chiaramente è insensata senza **HasHeaderGroup** */
|
|
4128
|
-
this.HasSecondaryHeaderGroup = input(null);
|
|
4128
|
+
this.HasSecondaryHeaderGroup = input(null, ...(ngDevMode ? [{ debugName: "HasSecondaryHeaderGroup" }] : []));
|
|
4129
4129
|
/** Indica se nascondere gli Header della tabella */
|
|
4130
|
-
this.HeaderHidden = input(null);
|
|
4130
|
+
this.HeaderHidden = input(null, ...(ngDevMode ? [{ debugName: "HeaderHidden" }] : []));
|
|
4131
4131
|
/** Indica se nascondere il Body della tabella */
|
|
4132
|
-
this.BodyHidden = input(null);
|
|
4132
|
+
this.BodyHidden = input(null, ...(ngDevMode ? [{ debugName: "BodyHidden" }] : []));
|
|
4133
4133
|
/**
|
|
4134
4134
|
* Indica se la selezione è temporaneamente disabilitata. Rispetto all'Input **Selection** che visivamente gestisce se ci sono o no gli input di selezione,
|
|
4135
4135
|
* questo Input gestisce se questi input sono abilitati o meno
|
|
4136
4136
|
*/
|
|
4137
|
-
this.SelectionDisabled = input(null);
|
|
4137
|
+
this.SelectionDisabled = input(null, ...(ngDevMode ? [{ debugName: "SelectionDisabled" }] : []));
|
|
4138
4138
|
/**
|
|
4139
4139
|
* Indica se forzare il sistema di selezione a gestire un elemento per volta.
|
|
4140
4140
|
* Selezionare un'altra riga con una già selezionata applicherà la selezione alla nuova riga, rimuovendola dall'attuale
|
|
4141
4141
|
*/
|
|
4142
|
-
this.SingleSelection = input(null);
|
|
4142
|
+
this.SingleSelection = input(null, ...(ngDevMode ? [{ debugName: "SingleSelection" }] : []));
|
|
4143
4143
|
/** Callback che dato un oggetto resituisce l'eventuale classe da applicare alla riga collegata all'oggetto */
|
|
4144
4144
|
this.RowClassAssigner = null;
|
|
4145
4145
|
/** Permette di ordinare i dati in maniera discendente o ascendente */
|
|
4146
|
-
this._OrderByColumn = input(null, { alias: "OrderByColumn" });
|
|
4147
|
-
this.OrderByColumn = signal(null);
|
|
4146
|
+
this._OrderByColumn = input(null, ...(ngDevMode ? [{ debugName: "_OrderByColumn", alias: "OrderByColumn" }] : [{ alias: "OrderByColumn" }]));
|
|
4147
|
+
this.OrderByColumn = signal(null, ...(ngDevMode ? [{ debugName: "OrderByColumn" }] : []));
|
|
4148
4148
|
/** Permette di avere più direttive di ordinamento dei dati */
|
|
4149
|
-
this.MultipleOrderingDirectives = input(true);
|
|
4149
|
+
this.MultipleOrderingDirectives = input(true, ...(ngDevMode ? [{ debugName: "MultipleOrderingDirectives" }] : []));
|
|
4150
4150
|
/** Permette di nascondere le colonne in base alle selezioni effettuate dal Menù contestuale in alto a destra */
|
|
4151
|
-
this._HiddenColumns = input(null, { alias: "HiddenColumns" });
|
|
4152
|
-
this.HiddenColumns = signal(null);
|
|
4151
|
+
this._HiddenColumns = input(null, ...(ngDevMode ? [{ debugName: "_HiddenColumns", alias: "HiddenColumns" }] : [{ alias: "HiddenColumns" }]));
|
|
4152
|
+
this.HiddenColumns = signal(null, ...(ngDevMode ? [{ debugName: "HiddenColumns" }] : []));
|
|
4153
4153
|
/** Permette di riordinare le colonne in base alle impostazioni effettuate dal Menù contestuale in alto a destra */
|
|
4154
|
-
this._ColumnsOrdering = input(null, { alias: "ColumnsOrdering" });
|
|
4155
|
-
this.ColumnsOrdering = signal(null);
|
|
4154
|
+
this._ColumnsOrdering = input(null, ...(ngDevMode ? [{ debugName: "_ColumnsOrdering", alias: "ColumnsOrdering" }] : [{ alias: "ColumnsOrdering" }]));
|
|
4155
|
+
this.ColumnsOrdering = signal(null, ...(ngDevMode ? [{ debugName: "ColumnsOrdering" }] : []));
|
|
4156
4156
|
/** @deprecated Eventuale supporto alle ricerche applicate alla modalità Array */
|
|
4157
|
-
this.SearchView = input(null);
|
|
4157
|
+
this.SearchView = input(null, ...(ngDevMode ? [{ debugName: "SearchView" }] : []));
|
|
4158
4158
|
/** Abilita o disabilita il sistema che permette di selezionare tutti gli elementi nella vista */
|
|
4159
|
-
this._SelectAll = input(null, { alias: "SelectAll" });
|
|
4160
|
-
this.SelectAll = signal(null);
|
|
4159
|
+
this._SelectAll = input(null, ...(ngDevMode ? [{ debugName: "_SelectAll", alias: "SelectAll" }] : [{ alias: "SelectAll" }]));
|
|
4160
|
+
this.SelectAll = signal(null, ...(ngDevMode ? [{ debugName: "SelectAll" }] : []));
|
|
4161
4161
|
/** Simula la paginazione anche per le tabelle che funzionano in modalità Array */
|
|
4162
|
-
this._UseArrayModePaging = input(true, { alias: "UseArrayModePaging" });
|
|
4163
|
-
this.UseArrayModePaging = signal(true);
|
|
4162
|
+
this._UseArrayModePaging = input(true, ...(ngDevMode ? [{ debugName: "_UseArrayModePaging", alias: "UseArrayModePaging" }] : [{ alias: "UseArrayModePaging" }]));
|
|
4163
|
+
this.UseArrayModePaging = signal(true, ...(ngDevMode ? [{ debugName: "UseArrayModePaging" }] : []));
|
|
4164
4164
|
/** Definizione di colonne dinamche per la modalità, appunto, dinamica */
|
|
4165
|
-
this._DynamicRowColumnsDefinition = input(null, { alias: 'DynamicRowColumnsDefinition' });
|
|
4166
|
-
this.DynamicRowColumnsDefinition = signal(null);
|
|
4165
|
+
this._DynamicRowColumnsDefinition = input(null, ...(ngDevMode ? [{ debugName: "_DynamicRowColumnsDefinition", alias: 'DynamicRowColumnsDefinition' }] : [{ alias: 'DynamicRowColumnsDefinition' }]));
|
|
4166
|
+
this.DynamicRowColumnsDefinition = signal(null, ...(ngDevMode ? [{ debugName: "DynamicRowColumnsDefinition" }] : []));
|
|
4167
4167
|
/** Indica operazioni dinamiche generiche che possono essere effettuate per riga. Appaiono come colonne extra sul lato sinistro della tabella */
|
|
4168
|
-
this.DynamicOperations = input([]);
|
|
4168
|
+
this.DynamicOperations = input([], ...(ngDevMode ? [{ debugName: "DynamicOperations" }] : []));
|
|
4169
4169
|
/** Indica se visualizzare i dati in maniera gerarchica */
|
|
4170
|
-
this.Hierarchy = input(null);
|
|
4170
|
+
this.Hierarchy = input(null, ...(ngDevMode ? [{ debugName: "Hierarchy" }] : []));
|
|
4171
4171
|
/** Nome della proprietà che contiene l'ID del padre. Da utilizzare se **Hierarchy** è impostato */
|
|
4172
|
-
this._ParentKey = input('', { alias: "ParentKey" });
|
|
4173
|
-
this.ParentKey = signal('');
|
|
4172
|
+
this._ParentKey = input('', ...(ngDevMode ? [{ debugName: "_ParentKey", alias: "ParentKey" }] : [{ alias: "ParentKey" }]));
|
|
4173
|
+
this.ParentKey = signal('', ...(ngDevMode ? [{ debugName: "ParentKey" }] : []));
|
|
4174
4174
|
/** Nome della proprietà che contiene l'ID dell'oggetto attuale. Da utilizzare se **Hierarchy** è impostato */
|
|
4175
|
-
this._OwnKey = input('', { alias: "OwnKey" });
|
|
4176
|
-
this.OwnKey = signal('');
|
|
4175
|
+
this._OwnKey = input('', ...(ngDevMode ? [{ debugName: "_OwnKey", alias: "OwnKey" }] : [{ alias: "OwnKey" }]));
|
|
4176
|
+
this.OwnKey = signal('', ...(ngDevMode ? [{ debugName: "OwnKey" }] : []));
|
|
4177
4177
|
/** Indica se lasciare alla tabella l'onere di ordinare gli oggetto che arrivano in base a gerarchia / id */
|
|
4178
|
-
this._AutoSortHierarchy = input(null, { alias: "AutoSortHierarchy" });
|
|
4179
|
-
this.AutoSortHierarchy = signal(null);
|
|
4178
|
+
this._AutoSortHierarchy = input(null, ...(ngDevMode ? [{ debugName: "_AutoSortHierarchy", alias: "AutoSortHierarchy" }] : [{ alias: "AutoSortHierarchy" }]));
|
|
4179
|
+
this.AutoSortHierarchy = signal(null, ...(ngDevMode ? [{ debugName: "AutoSortHierarchy" }] : []));
|
|
4180
4180
|
/** Indica se partire con un albero espanso. Da utilizzare se **Hierarchy** è impostato */
|
|
4181
|
-
this.StartsExpanded = input(true);
|
|
4181
|
+
this.StartsExpanded = input(true, ...(ngDevMode ? [{ debugName: "StartsExpanded" }] : []));
|
|
4182
4182
|
/** Indica se effettuare il salvataggio delle preferenze di ricerca */
|
|
4183
|
-
this._SavePreferences = input(null, { alias: "SavePreferences" });
|
|
4184
|
-
this.SavePreferences = signal(null);
|
|
4183
|
+
this._SavePreferences = input(null, ...(ngDevMode ? [{ debugName: "_SavePreferences", alias: "SavePreferences" }] : [{ alias: "SavePreferences" }]));
|
|
4184
|
+
this.SavePreferences = signal(null, ...(ngDevMode ? [{ debugName: "SavePreferences" }] : []));
|
|
4185
4185
|
/** Allineamento di default per celle e headers */
|
|
4186
|
-
this._DefaultAlignment = input(null, { alias: "DefaultAlignment" });
|
|
4187
|
-
this.DefaultAlignment = signal(null);
|
|
4186
|
+
this._DefaultAlignment = input(null, ...(ngDevMode ? [{ debugName: "_DefaultAlignment", alias: "DefaultAlignment" }] : [{ alias: "DefaultAlignment" }]));
|
|
4187
|
+
this.DefaultAlignment = signal(null, ...(ngDevMode ? [{ debugName: "DefaultAlignment" }] : []));
|
|
4188
4188
|
/** Indica dove visualizzare le informazioni di paginazione, se sopra, sotto o in entrambi */
|
|
4189
|
-
this._PagingStyle = input(null, { alias: "PagingStyle" });
|
|
4190
|
-
this.PagingStyle = signal(null);
|
|
4189
|
+
this._PagingStyle = input(null, ...(ngDevMode ? [{ debugName: "_PagingStyle", alias: "PagingStyle" }] : [{ alias: "PagingStyle" }]));
|
|
4190
|
+
this.PagingStyle = signal(null, ...(ngDevMode ? [{ debugName: "PagingStyle" }] : []));
|
|
4191
4191
|
/** Indica dove visualizzare le informazioni di paginazione, se sopra, sotto o in entrambi */
|
|
4192
|
-
this._RowGroupingPagingStyle = input(null, { alias: "RowGroupingPagingStyle" });
|
|
4193
|
-
this.RowGroupingPagingStyle = signal(null);
|
|
4192
|
+
this._RowGroupingPagingStyle = input(null, ...(ngDevMode ? [{ debugName: "_RowGroupingPagingStyle", alias: "RowGroupingPagingStyle" }] : [{ alias: "RowGroupingPagingStyle" }]));
|
|
4193
|
+
this.RowGroupingPagingStyle = signal(null, ...(ngDevMode ? [{ debugName: "RowGroupingPagingStyle" }] : []));
|
|
4194
4194
|
/** Qualora per qualsiasi motivo non venisse usato **items** dell'AppSearch questo Input indica qual è il nome della proprietà da utilizzare */
|
|
4195
|
-
this.ItemSourceProperty = input('');
|
|
4195
|
+
this.ItemSourceProperty = input('', ...(ngDevMode ? [{ debugName: "ItemSourceProperty" }] : []));
|
|
4196
4196
|
/** Indica se utilizzare la cache di selezione che permette di mantenere gli stati di selezione dei vari oggetti navigando da una pagina all'altra */
|
|
4197
|
-
this._UseSelectionCache = input(null, { alias: "UseSelectionCache" });
|
|
4198
|
-
this.UseSelectionCache = signal(null);
|
|
4197
|
+
this._UseSelectionCache = input(null, ...(ngDevMode ? [{ debugName: "_UseSelectionCache", alias: "UseSelectionCache" }] : [{ alias: "UseSelectionCache" }]));
|
|
4198
|
+
this.UseSelectionCache = signal(null, ...(ngDevMode ? [{ debugName: "UseSelectionCache" }] : []));
|
|
4199
4199
|
/** Permette di decidere se, in modalità raggruppamento, mostrare o meno il valore delle colonne di gruppo negli oggetti finali. Di default sono nascosti */
|
|
4200
|
-
this._ShowItemGroupsColumns = input(null, { alias: "ShowItemGroupsColumns" });
|
|
4201
|
-
this.ShowItemGroupsColumns = signal(null);
|
|
4200
|
+
this._ShowItemGroupsColumns = input(null, ...(ngDevMode ? [{ debugName: "_ShowItemGroupsColumns", alias: "ShowItemGroupsColumns" }] : [{ alias: "ShowItemGroupsColumns" }]));
|
|
4201
|
+
this.ShowItemGroupsColumns = signal(null, ...(ngDevMode ? [{ debugName: "ShowItemGroupsColumns" }] : []));
|
|
4202
4202
|
/** Indica che tutti i campi che definiscono le modalità di modifica campo possono essere modificati in base alle impostazioni */
|
|
4203
|
-
this.Editable = input(false);
|
|
4203
|
+
this.Editable = input(false, ...(ngDevMode ? [{ debugName: "Editable" }] : []));
|
|
4204
4204
|
/** Indica se è possibile effettuare selezioni a range per poi farci eventualmente copia incolla */
|
|
4205
|
-
this.RangeSelection = input(false);
|
|
4205
|
+
this.RangeSelection = input(false, ...(ngDevMode ? [{ debugName: "RangeSelection" }] : []));
|
|
4206
4206
|
/** Indica il numero di millisecondi per cui debouncare il writeValue per la modalità **EsTableHandledSearch** */
|
|
4207
|
-
this.SearchThrottle = input(50);
|
|
4207
|
+
this.SearchThrottle = input(50, ...(ngDevMode ? [{ debugName: "SearchThrottle" }] : []));
|
|
4208
4208
|
/** Evento che viene richiamato al cambio di oridnamento di una colonna */
|
|
4209
4209
|
this.onOrderChanged = new EventEmitter();
|
|
4210
4210
|
/**
|
|
@@ -4236,8 +4236,8 @@ class EsTableComponent {
|
|
|
4236
4236
|
/** Numero di pagine (durante la paginazione in modalità Array) */
|
|
4237
4237
|
this.arraymodePages = 1;
|
|
4238
4238
|
/** Oggetti per ogni pagina (durante la paginazione in modalità Array) */
|
|
4239
|
-
this._ArraymodeItemsPerPage = input(null, { alias: "ArraymodeItemsPerPage" });
|
|
4240
|
-
this.ArraymodeItemsPerPage = signal(null);
|
|
4239
|
+
this._ArraymodeItemsPerPage = input(null, ...(ngDevMode ? [{ debugName: "_ArraymodeItemsPerPage", alias: "ArraymodeItemsPerPage" }] : [{ alias: "ArraymodeItemsPerPage" }]));
|
|
4240
|
+
this.ArraymodeItemsPerPage = signal(null, ...(ngDevMode ? [{ debugName: "ArraymodeItemsPerPage" }] : []));
|
|
4241
4241
|
/** Colonne da visualizzare in modalità array */
|
|
4242
4242
|
this.arrayColumns = [];
|
|
4243
4243
|
/** Ordine delle colonne da visualizzare in modalità array */
|
|
@@ -4269,19 +4269,19 @@ class EsTableComponent {
|
|
|
4269
4269
|
/** Variabile d'appoggio per capire se c'è bisogno di ri-effettuare una ricerca o meno */
|
|
4270
4270
|
this.ResearchNeeded = false;
|
|
4271
4271
|
/** Colonne visibili della vista attuale. Valorizzato di default al numero massimo di colonne supportate dalla tabella per le casistiche in assenza di custom cells */
|
|
4272
|
-
this.Columns = signal({ Visibile: 100, VisibleUnpinned: 100, Global: 100 });
|
|
4272
|
+
this.Columns = signal({ Visibile: 100, VisibleUnpinned: 100, Global: 100 }, ...(ngDevMode ? [{ debugName: "Columns" }] : []));
|
|
4273
4273
|
/** In caso di Row Grouping qui viene salvata la vista principale dei gruppi base */
|
|
4274
4274
|
this.MainGroupView = null;
|
|
4275
4275
|
/** Conteggio base degli oggetti. In modalità normale viene resettato ad ogni nuova View inserita, in modalità RowGrouping viene resettato solo ad una nuova View di livello "0" */
|
|
4276
4276
|
this.BaseItemsCount = null;
|
|
4277
4277
|
/** Indica se ci sono delle colonne pinnate e visibili. Serve per poter settare tutte le colonne prima che arrivino dati a pinned*/
|
|
4278
|
-
this.HasPinnedColumns = signal(null);
|
|
4278
|
+
this.HasPinnedColumns = signal(null, ...(ngDevMode ? [{ debugName: "HasPinnedColumns" }] : []));
|
|
4279
4279
|
/** Larghezza calcolata del container delle colonne pinnate */
|
|
4280
|
-
this.PinnedContainerWidth = signal(null);
|
|
4280
|
+
this.PinnedContainerWidth = signal(null, ...(ngDevMode ? [{ debugName: "PinnedContainerWidth" }] : []));
|
|
4281
4281
|
/** Indica se nonostante siamo in modalità array sono stati individuati dei gruppi. In tal caso es-table si comporta da pseudo backend ed effettua le aggregazioni e raggruppamenti completamente lato client */
|
|
4282
|
-
this.ArrayGrouping = signal(false);
|
|
4282
|
+
this.ArrayGrouping = signal(false, ...(ngDevMode ? [{ debugName: "ArrayGrouping" }] : []));
|
|
4283
4283
|
/** Indica che l'es-table è basata sulle direttive (nuova modalità) */
|
|
4284
|
-
this.DirectivesBased = signal(false);
|
|
4284
|
+
this.DirectivesBased = signal(false, ...(ngDevMode ? [{ debugName: "DirectivesBased" }] : []));
|
|
4285
4285
|
/** Indica lo stato di selezione per singola cella */
|
|
4286
4286
|
this.selectionStatus = {};
|
|
4287
4287
|
/** Chiamata reale al writeValue dopo il passaggio di **SearchThrottle** millisecondi. Solo modalità EsTableHandledSearch */
|
|
@@ -5693,10 +5693,10 @@ class EsTableComponent {
|
|
|
5693
5693
|
return;
|
|
5694
5694
|
this.emb.MainWindow.postMessage({ type: "modal-close" }, "*");
|
|
5695
5695
|
}
|
|
5696
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5697
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.25", type: EsTableComponent, isStandalone: false, selector: "es-table", inputs: { globalCheck: { classPropertyName: "globalCheck", publicName: "globalCheck", isSignal: true, isRequired: false, transformFunction: null }, autoUpdate: { classPropertyName: "autoUpdate", publicName: "autoUpdate", isSignal: true, isRequired: false, transformFunction: null }, seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: false, transformFunction: null }, researchInProgress: { classPropertyName: "researchInProgress", publicName: "researchInProgress", isSignal: true, isRequired: false, transformFunction: null }, globalColVisCheck: { classPropertyName: "globalColVisCheck", publicName: "globalColVisCheck", isSignal: true, isRequired: false, transformFunction: null }, EsThTdProvider: { classPropertyName: "EsThTdProvider", publicName: "EsThTdProvider", isSignal: false, isRequired: false, transformFunction: null }, CornerMenuOptions: { classPropertyName: "CornerMenuOptions", publicName: "CornerMenuOptions", isSignal: true, isRequired: false, transformFunction: null }, _ColumnsResizable: { classPropertyName: "_ColumnsResizable", publicName: "ColumnsResizable", isSignal: true, isRequired: false, transformFunction: null }, _ColumnsPinnable: { classPropertyName: "_ColumnsPinnable", publicName: "ColumnsPinnable", isSignal: true, isRequired: false, transformFunction: null }, _AutoUpdate: { classPropertyName: "_AutoUpdate", publicName: "AutoUpdate", isSignal: true, isRequired: false, transformFunction: null }, Height: { classPropertyName: "Height", publicName: "Height", isSignal: true, isRequired: false, transformFunction: null }, EmptySpaceBackgroundColor: { classPropertyName: "EmptySpaceBackgroundColor", publicName: "EmptySpaceBackgroundColor", isSignal: true, isRequired: false, transformFunction: null }, EsTableHandledSearch: { classPropertyName: "EsTableHandledSearch", publicName: "EsTableHandledSearch", isSignal: true, isRequired: false, transformFunction: null }, MaxHeight: { classPropertyName: "MaxHeight", publicName: "MaxHeight", isSignal: true, isRequired: false, transformFunction: null }, _ContainerClass: { classPropertyName: "_ContainerClass", publicName: "ContainerClass", isSignal: true, isRequired: false, transformFunction: null }, XLSXExport: { classPropertyName: "XLSXExport", publicName: "XLSXExport", isSignal: true, isRequired: false, transformFunction: null }, CSVExport: { classPropertyName: "CSVExport", publicName: "CSVExport", isSignal: true, isRequired: false, transformFunction: null }, _AllSearch: { classPropertyName: "_AllSearch", publicName: "AllSearch", isSignal: true, isRequired: false, transformFunction: null }, HighCellDensity: { classPropertyName: "HighCellDensity", publicName: "HighCellDensity", isSignal: true, isRequired: false, transformFunction: null }, _Selection: { classPropertyName: "_Selection", publicName: "Selection", isSignal: true, isRequired: false, transformFunction: null }, ShowLoadingOnBootstrap: { classPropertyName: "ShowLoadingOnBootstrap", publicName: "ShowLoadingOnBootstrap", isSignal: true, isRequired: false, transformFunction: null }, Removal: { classPropertyName: "Removal", publicName: "Removal", isSignal: true, isRequired: false, transformFunction: null }, RemovalCondition: { classPropertyName: "RemovalCondition", publicName: "RemovalCondition", isSignal: true, isRequired: false, transformFunction: null }, _Export: { classPropertyName: "_Export", publicName: "Export", isSignal: true, isRequired: false, transformFunction: null }, _ShiftClick: { classPropertyName: "_ShiftClick", publicName: "ShiftClick", isSignal: true, isRequired: false, transformFunction: null }, CountLabel: { classPropertyName: "CountLabel", publicName: "CountLabel", isSignal: true, isRequired: false, transformFunction: null }, _HidePaging: { classPropertyName: "_HidePaging", publicName: "HidePaging", isSignal: true, isRequired: false, transformFunction: null }, _HidePagingCount: { classPropertyName: "_HidePagingCount", publicName: "HidePagingCount", isSignal: true, isRequired: false, transformFunction: null }, _HidePagingButtons: { classPropertyName: "_HidePagingButtons", publicName: "HidePagingButtons", isSignal: true, isRequired: false, transformFunction: null }, ContextMenu: { classPropertyName: "ContextMenu", publicName: "ContextMenu", isSignal: false, isRequired: false, transformFunction: null }, ExportFileName: { classPropertyName: "ExportFileName", publicName: "ExportFileName", isSignal: true, isRequired: false, transformFunction: null }, _TableClass: { classPropertyName: "_TableClass", publicName: "TableClass", isSignal: true, isRequired: false, transformFunction: null }, ExportFunction: { classPropertyName: "ExportFunction", publicName: "ExportFunction", isSignal: false, isRequired: false, transformFunction: null }, ExportOnlyVisibleColumns: { classPropertyName: "ExportOnlyVisibleColumns", publicName: "ExportOnlyVisibleColumns", isSignal: true, isRequired: false, transformFunction: null }, HasHeaderGroup: { classPropertyName: "HasHeaderGroup", publicName: "HasHeaderGroup", isSignal: true, isRequired: false, transformFunction: null }, HasSecondaryHeaderGroup: { classPropertyName: "HasSecondaryHeaderGroup", publicName: "HasSecondaryHeaderGroup", isSignal: true, isRequired: false, transformFunction: null }, HeaderHidden: { classPropertyName: "HeaderHidden", publicName: "HeaderHidden", isSignal: true, isRequired: false, transformFunction: null }, BodyHidden: { classPropertyName: "BodyHidden", publicName: "BodyHidden", isSignal: true, isRequired: false, transformFunction: null }, SelectionDisabled: { classPropertyName: "SelectionDisabled", publicName: "SelectionDisabled", isSignal: true, isRequired: false, transformFunction: null }, SingleSelection: { classPropertyName: "SingleSelection", publicName: "SingleSelection", isSignal: true, isRequired: false, transformFunction: null }, RowClassAssigner: { classPropertyName: "RowClassAssigner", publicName: "RowClassAssigner", isSignal: false, isRequired: false, transformFunction: null }, _OrderByColumn: { classPropertyName: "_OrderByColumn", publicName: "OrderByColumn", isSignal: true, isRequired: false, transformFunction: null }, MultipleOrderingDirectives: { classPropertyName: "MultipleOrderingDirectives", publicName: "MultipleOrderingDirectives", isSignal: true, isRequired: false, transformFunction: null }, _HiddenColumns: { classPropertyName: "_HiddenColumns", publicName: "HiddenColumns", isSignal: true, isRequired: false, transformFunction: null }, _ColumnsOrdering: { classPropertyName: "_ColumnsOrdering", publicName: "ColumnsOrdering", isSignal: true, isRequired: false, transformFunction: null }, SearchView: { classPropertyName: "SearchView", publicName: "SearchView", isSignal: true, isRequired: false, transformFunction: null }, _SelectAll: { classPropertyName: "_SelectAll", publicName: "SelectAll", isSignal: true, isRequired: false, transformFunction: null }, _UseArrayModePaging: { classPropertyName: "_UseArrayModePaging", publicName: "UseArrayModePaging", isSignal: true, isRequired: false, transformFunction: null }, _DynamicRowColumnsDefinition: { classPropertyName: "_DynamicRowColumnsDefinition", publicName: "DynamicRowColumnsDefinition", isSignal: true, isRequired: false, transformFunction: null }, DynamicOperations: { classPropertyName: "DynamicOperations", publicName: "DynamicOperations", isSignal: true, isRequired: false, transformFunction: null }, Hierarchy: { classPropertyName: "Hierarchy", publicName: "Hierarchy", isSignal: true, isRequired: false, transformFunction: null }, _ParentKey: { classPropertyName: "_ParentKey", publicName: "ParentKey", isSignal: true, isRequired: false, transformFunction: null }, _OwnKey: { classPropertyName: "_OwnKey", publicName: "OwnKey", isSignal: true, isRequired: false, transformFunction: null }, _AutoSortHierarchy: { classPropertyName: "_AutoSortHierarchy", publicName: "AutoSortHierarchy", isSignal: true, isRequired: false, transformFunction: null }, StartsExpanded: { classPropertyName: "StartsExpanded", publicName: "StartsExpanded", isSignal: true, isRequired: false, transformFunction: null }, _SavePreferences: { classPropertyName: "_SavePreferences", publicName: "SavePreferences", isSignal: true, isRequired: false, transformFunction: null }, _DefaultAlignment: { classPropertyName: "_DefaultAlignment", publicName: "DefaultAlignment", isSignal: true, isRequired: false, transformFunction: null }, _PagingStyle: { classPropertyName: "_PagingStyle", publicName: "PagingStyle", isSignal: true, isRequired: false, transformFunction: null }, _RowGroupingPagingStyle: { classPropertyName: "_RowGroupingPagingStyle", publicName: "RowGroupingPagingStyle", isSignal: true, isRequired: false, transformFunction: null }, ItemSourceProperty: { classPropertyName: "ItemSourceProperty", publicName: "ItemSourceProperty", isSignal: true, isRequired: false, transformFunction: null }, _UseSelectionCache: { classPropertyName: "_UseSelectionCache", publicName: "UseSelectionCache", isSignal: true, isRequired: false, transformFunction: null }, _ShowItemGroupsColumns: { classPropertyName: "_ShowItemGroupsColumns", publicName: "ShowItemGroupsColumns", isSignal: true, isRequired: false, transformFunction: null }, Editable: { classPropertyName: "Editable", publicName: "Editable", isSignal: true, isRequired: false, transformFunction: null }, RangeSelection: { classPropertyName: "RangeSelection", publicName: "RangeSelection", isSignal: true, isRequired: false, transformFunction: null }, SearchThrottle: { classPropertyName: "SearchThrottle", publicName: "SearchThrottle", isSignal: true, isRequired: false, transformFunction: null }, _ArraymodeItemsPerPage: { classPropertyName: "_ArraymodeItemsPerPage", publicName: "ArraymodeItemsPerPage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { globalCheck: "globalCheckChange", autoUpdate: "autoUpdateChange", seconds: "secondsChange", researchInProgress: "researchInProgressChange", globalColVisCheck: "globalColVisCheckChange", onOrderChanged: "onOrderChanged", onSearchRequest: "onSearchRequest", onSelectionChanged: "onSelectionChanged", onRemoval: "onRemoval", onAbortRemoval: "onAbortRemoval", onModelChange: "onModelChange", onOpenContextMenu: "onOpenContextMenu", onCornerAction: "onCornerAction", onDynamicOperation: "onDynamicOperation" }, queries: [{ propertyName: "bodyRef", first: true, predicate: ["body"], descendants: true }, { propertyName: "headerRef", first: true, predicate: ["header"], descendants: true }, { propertyName: "headerGroupRef", first: true, predicate: ["headerGroup"], descendants: true }, { propertyName: "secondaryHeaderGroupRef", first: true, predicate: ["secondaryHeaderGroup"], descendants: true }, { propertyName: "EsTdEditorDirectives", predicate: EsTdEditorDirective }, { propertyName: "EsTdsDirective", predicate: EsTdDirective }, { propertyName: "EsThsDirective", predicate: EsThDirective }, { propertyName: "ThTdProvider", predicate: ThTdProvider }], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }, { propertyName: "exportDownloader", first: true, predicate: ["exportDownloader"], descendants: true }, { propertyName: "tableEmptyMenu", first: true, predicate: ["emptyMenu"], descendants: true, static: true }], ngImport: i0, template: "<!-- Patacchino di autoaggiornamento -->\r\n<div class=\"w-100\" *ngIf=\"AutoUpdate()\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate()\" maxlength=\"3\" class=\"form-control est-custom-input\" type=\"text\" [(ngModel)]=\"seconds\" [ngModelOptions]=\"{'standalone': true}\" /> {{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2\">\r\n <label class=\"est-switch\">\r\n <input type=\"checkbox\" style=\"width: 15px\" [(ngModel)]=\"autoUpdate\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"est-slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<div *ngIf=\"View\" class=\"est-relative\" [style.height]=\"Height()\" [style.background-color]=\"EmptySpaceBackgroundColor()\">\r\n <div *ngIf=\"FirstBind() && ShowLoadingOnBootstrap()\" class=\"est-loading-box\">\r\n <div class=\"est-loading-content\">\r\n <span class=\"fa fa-spinner fa-spin\"></span> {{'Performing Table bootstrap' | localize: lc}}...\r\n </div>\r\n </div>\r\n\r\n <div class=\"est-top-pager\" *ngIf=\"PagingStyle() == 'both' || PagingStyle() == 'top'\">\r\n <ng-container *ngTemplateOutlet=\"pagingElement\"></ng-container>\r\n </div>\r\n\r\n <div class=\"est-top-allselect\" *ngIf=\"canSelectAll() || (View?.selection || arraymodeSelection)?.all\">\r\n <span>{{ (selectedObjects() == -1 ? ('All the' | localize : lc) : ((selectedObjects() || 0) | number : '0.0-0' : lc.Locale)) + ' ' + ((selectedObjects() == 1 ? 'Object Selected' : 'Objects Selected') | localize : lc) }}</span> \r\n <span class=\"est-link est-inline\" (click)=\"selection_H.selectAllOrResetSelection()\">{{ (View?.selection || arraymodeSelection)?.all ? ('Reset Selection' | localize : lc) : ('Select Everything' | localize : lc)}}</span>\r\n </div>\r\n\r\n <div class=\"table-responsive datatable est-full-height {{ContainerClass()}}\" [style.max-height.px]=\"MaxHeight()\">\r\n <table class=\"{{ TableClass() }} est-margin-bottom-10 est\" style=\"background-color: white;\" [class.est-high-density]=\"HighCellDensity()\">\r\n <thead [hidden]=\"HeaderHidden() || FirstBind()\">\r\n <!-- Aggiungo il pezzo che gestisce la selezione di tutto se attivo da config -->\r\n <tr *ngIf=\"(SelectAll() && !SingleSelection()) || PagingStyle() != 'bottom'\">\r\n <th class=\"est-no-selection\" [attr.colspan]=\"Columns().Global\" [class.est-hidden-view]=\"!canSelectAll() && !(View?.selection || arraymodeSelection)?.all && PagingStyle() == 'bottom'\">\r\n <p class=\"est-hidden-view app-margin-bottom-0\">\u00A7</p>\r\n </th>\r\n </tr>\r\n\r\n <!-- Blocco header group -->\r\n <ng-container *ngIf=\"RowThGroups\">\r\n <tr *ngFor=\"let level of RowThGroups; trackBy: IDTrackBy\">\r\n <th *ngFor=\"let cell of level; trackBy: IDTrackBy\" [attr.colspan]=\"cell.Span\"\r\n [class.est-pinned-header]=\"cell.Pinned\" [class.est-col-min]=\"cell.Pinned\"\r\n [class.est-ltab-border]=\"cell.Borders\" [class.est-rtab-border]=\"cell.Borders\"\r\n class=\"est-text-center\">\r\n <ng-container *ngIf=\"cell.Pinned;\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border est-cell-group-padding\"></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!cell.Pinned && cell.Content; Else: cell.Template\">\r\n {{cell.Content}}\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!RowThGroups\">\r\n <tr *ngIf=\"HasHeaderGroup()\">\r\n <ng-container *ngTemplateOutlet=\"headerGroupRef\"></ng-container>\r\n <th *ngIf=\"Export()\"></th>\r\n </tr>\r\n\r\n <!-- Blocco header group secondario -->\r\n <tr *ngIf=\"HasSecondaryHeaderGroup()\">\r\n <ng-container *ngTemplateOutlet=\"secondaryHeaderGroupRef\"></ng-container>\r\n <th *ngIf=\"Export()\"></th>\r\n </tr>\r\n </ng-container>\r\n\r\n <!-- Blocco effettivo degli header -->\r\n <tr>\r\n <div id=\"thead->tr->debug_block\" style=\"display: none; white-space: pre-wrap;\">\r\n Selection: {{Selection()}}\r\n HasPinnedColumns: {{HasPinnedColumns()}}\r\n arrayMode: {{arrayMode()}}\r\n viewMode: {{viewMode()}}\r\n UseCustomCells: {{UseCustomCells()}}\r\n RowTHs: {{!!RowTHs}}\r\n RowTHs.length: {{RowTHs?.length}}\r\n DynamicRowColumnsDefinition: {{!!DynamicRowColumnsDefinition()}}\r\n </div>\r\n\r\n <!-- Aggiungo una checkbox se la selezione \u00E8 attiva -->\r\n <th class=\"est-col-min\" *ngIf=\"Selection() && !HasPinnedColumns()\">\r\n <input *ngIf=\"!SingleSelection()\" class=\"est-pointer\" type=\"checkbox\" style=\"width: 15px\" [disabled]=\"SelectionDisabled()\" [(ngModel)]=\"globalCheck\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"globalCheckChanged();\">\r\n </th>\r\n\r\n <!-- Header che valgono per view mode e array mode -->\r\n <ng-container *ngIf=\"arrayMode() || viewMode()\">\r\n <!-- In una tabella base prendo semplicemente i th scritti dall'utente nell'HTML -->\r\n <ng-container *ngIf=\"(!UseCustomCells() || !RowTHs || RowTHs.length == 0) && !DynamicRowColumnsDefinition()\">\r\n <ng-container *ngTemplateOutlet=\"headerRef\"></ng-container>\r\n </ng-container>\r\n\r\n <!-- Se ho un modello dinamico dell'oggetto creo le colonne in base alle propriet\u00E0 -->\r\n <ng-container *ngIf=\"(!UseCustomCells() || !RowTHs || RowTHs.length == 0) && DynamicRowColumnsDefinition()\">\r\n <th *ngFor=\"let operation of DynamicOperations(); trackBy: idTrackBy\" class=\"est-col-min est-no-side-padding\"></th>\r\n\r\n <ng-container *ngFor=\"let rowHeader of DynamicRowColumnsDefinition(); trackBy: PropertyNameTrackBy\">\r\n <ng-container *ngIf=\"rowHeader.Visible\">\r\n <th *ngIf=\"OrderByColumn()\" id=\"esth_{{rowHeader.PropertyName}}\" es-th=\"{{rowHeader.PropertyName}}\" class=\"{{UserDefinedDynamicCols() ? ((rowHeader.Clss || '') + (rowHeader.HeaderWraps ? '' : ' est-nowrap')) : ' est-nowrap'}}\" [Order]=\"rowHeader.DataOrder\" [Resizable]=\"ColumnsResizable()\" [Orderable]=\"rowHeader.Orderable\" [OrderBy]=\"OrderByColumn()\" [SearchInProgress]=\"researchInProgress()\" (onOrderChange)=\"thOrderChanged(rowHeader.PropertyName, $event)\">{{rowHeader.Description}}</th>\r\n <th *ngIf=\"!OrderByColumn()\" id=\"esth_{{rowHeader.PropertyName}}\" es-th=\"{{rowHeader.PropertyName}}\" class=\"{{UserDefinedDynamicCols() ? ((rowHeader.Clss || '') + (rowHeader.HeaderWraps ? '' : ' est-nowrap')) : ' est-nowrap'}}\" [Order]=\"rowHeader.DataOrder\" [Resizable]=\"ColumnsResizable()\" [Orderable]=\"rowHeader.Orderable\" [OrderBy]=\"OrderByColumn()\">{{rowHeader.Description}}</th>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Se non ho un modello dinamico ma invece delle celle custom, genero gli header in base ai row th -->\r\n <ng-container *ngIf=\"UseCustomCells() && RowTHs?.length > 0\">\r\n <th *ngIf=\"HasPinnedColumns()\" class=\"est-pinned-header est-col-min\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border est-simple-border-bottom\">\r\n <th class=\"est-col-min est-no-border\" *ngIf=\"Selection()\" [style.width.px]=\"20\">\r\n <input *ngIf=\"!SingleSelection()\" class=\"est-pointer\" style=\"width: 15px\" type=\"checkbox\" [disabled]=\"SelectionDisabled()\" [(ngModel)]=\"globalCheck\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"globalCheckChanged();\">\r\n </th>\r\n <ng-container *ngFor=\"let rowHeader of RowTHs; trackBy: IDAndOrderTrackBy\">\r\n <th *ngIf=\"rowHeader && rowHeader.Visible && rowHeader.Pinned\"\r\n [style.width.px]=\"rowHeader.PinnedWidth\"\r\n es-th=\"{{rowHeader.ID}}\"\r\n class=\"{{rowHeader.Class || ''}}\"\r\n [class.est-pinned-internal-header]=\"true\"\r\n [class.est-no-border]=\"true\"\r\n [class.est-nowrap]=\"!rowHeader.Wrap\"\r\n [Pinned]=\"true\"\r\n [Fixed]=\"rowHeader.Fixed\"\r\n [Order]=\"rowHeader.Order\"\r\n [Resizable]=\"ColumnsResizable()\"\r\n [Orderable]=\"rowHeader.Orderable\"\r\n [OrderBy]=\"OrderByColumn()\"\r\n [SearchInProgress]=\"researchInProgress()\"\r\n (onUnpinning)=\"columnMetadata_H.unpinColumn($event)\"\r\n (onOrderChange)=\"thOrderChanged(rowHeader.ID, $event)\">\r\n\r\n <ng-container *ngIf=\"rowHeader.Template\"><ng-container *ngTemplateOutlet=\"rowHeader.Template; context: { $implicit: rowHeader.Multi ? rowHeader.MultiContent : null } \"></ng-container></ng-container>\r\n <span *ngIf=\"!rowHeader.Template\">{{rowHeader.Content}}|{{rowHeader.Order}}</span>\r\n </th>\r\n </ng-container>\r\n </div>\r\n </th>\r\n <ng-container *ngFor=\"let rowHeader of RowTHs; trackBy: IDAndOrderTrackBy\">\r\n\r\n <div id=\"thead->tr->th->debug_block\" style=\"display: none; white-space: pre-wrap;\">\r\n rowHeader: {{!!rowHeader}}\r\n rowHeader.Visible: {{rowHeader?.Visible}}\r\n rowHeader.Pinned: {{rowHeader?.Pinned}}\r\n rowHeader.Template: {{!!rowHeader.Template}}\r\n rowHeader.Order: {{rowHeader.Order}}\r\n </div>\r\n\r\n <th *ngIf=\"rowHeader && rowHeader.Visible && !rowHeader.Pinned\"\r\n es-th=\"{{rowHeader.ID}}\"\r\n class=\"{{rowHeader.Class || ''}}\"\r\n [style.text-align]=\" rowHeader.Alignment || null\"\r\n [class.est-ltab-border]=\"rowHeader.LeftBorder\"\r\n [class.est-rtab-border]=\"rowHeader.RightBorder\"\r\n [class.est-nowrap]=\"!rowHeader.Wrap\"\r\n [Order]=\"rowHeader.Order\"\r\n [Resizable]=\"ColumnsResizable()\"\r\n [Orderable]=\"rowHeader.Orderable\"\r\n [OrderBy]=\"OrderByColumn()\"\r\n [SearchInProgress]=\"researchInProgress()\"\r\n (onOrderChange)=\"thOrderChanged(rowHeader.ID, $event)\">\r\n\r\n <ng-container *ngIf=\"rowHeader.Template\"><ng-container *ngTemplateOutlet=\"rowHeader.Template; context: { $implicit: rowHeader.Multi ? rowHeader.MultiContent : null }\"></ng-container></ng-container>\r\n <span *ngIf=\"!rowHeader.Template\">{{rowHeader.Content}}</span>\r\n </th>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!--Per l'eliminazione mi serve un header aggiuntivo-->\r\n <th *ngIf=\"Removal()\" [class.est-right-9]=\"Export() || HiddenColumns()\" class=\"est-col-min est-sticky-last-column\"><span class=\"fa fa-trash\"></span></th>\r\n\r\n <!--Per l'esportazione mi serve l'header extra da cui faccio uscire i 3 pallocchi-->\r\n <th *ngIf=\"Export() || HiddenColumns() || ColumnsOrdering() || CornerMenuOptions()\" class=\"est-table-dotted-menu est-sticky-last-column est-col-min text-sm-center\">\r\n\r\n <!-- Blocco con i 3 pallocchi che tira fuori il context menu delle operazioni -->\r\n <div class=\"btn-group\" container=\"body\" placement=\"bottom right\" dropdown #dropdown=\"bs-dropdown\" [autoClose]=\"true\">\r\n <span dropdownToggle class=\"fa fa-ellipsis-v est-fs-18 est-pointer est-padding-3\"></span>\r\n\r\n <div *dropdownMenu class=\"dropdown-menu dropdown-menu-right est-bring-to-front-strong\">\r\n <div class=\"est-pointer\">\r\n <a class=\"dropdown-item\" *ngIf=\"HiddenColumns() || ColumnsOrdering()\" (click)=\"columnMetadata_H.resetColumnVisSelection(); showDialog(changeColumnVisibilityModal, columnsDialog)\">\r\n <ng-container *ngIf=\"!HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Order' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && !ColumnsOrdering()\">\r\n {{'Columns Visibility' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Visibility and Order' | localize : lc}}\r\n </ng-container>\r\n </a>\r\n \r\n <ng-container *ac=\"exportGlobalAcl\">\r\n <a class=\"dropdown-item\" *ngIf=\"Export() && CSVExport()\" (click)=\"export_H.tryExport('CSV')\">{{'Export View' | localize : lc}} (CSV)</a>\r\n <a class=\"dropdown-item\" *ngIf=\"Export() && XLSXExport()\" (click)=\"export_H.tryExport('XLSX')\">{{'Export View' | localize : lc}} (XLSX)</a>\r\n </ng-container>\r\n\r\n <a class=\"dropdown-item\" *ngFor=\"let option of CornerMenuOptions(); trackBy: idTrackBy\" (click)=\"cornerActionClicked(option.id)\">{{option.description}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody [hidden]=\"BodyHidden() || FirstBind()\" [class.est-no-selection]=\"RangeSelection()\">\r\n <!--Con selection attiva richiamo il template che gestisce il context menu-->\r\n <ng-container *ngIf=\"Selection()\">\r\n <ng-container *ngTemplateOutlet=\"TBodySelection; context: { $implicit: { selDisabled: arrayMode() ? false : SelectionDisabled(), sel: Selection() }}\"></ng-container>\r\n </ng-container>\r\n\r\n <!--Senza selection richiamo il template che NON gestisce il context menu-->\r\n <ng-container *ngIf=\"!Selection()\">\r\n <ng-container *ngTemplateOutlet=\"TBody\"></ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div *ngIf=\"PagingStyle() == 'both' || PagingStyle() == 'bottom'\">\r\n <ng-container *ngTemplateOutlet=\"pagingElement\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<!-- Template che contiene tutte le info di paginazione in modo da poterlo replicare anche sopra -->\r\n<ng-template #pagingElement>\r\n <ng-container *ngIf=\"!FirstBind()\">\r\n <!-- Pulsanti avanti-indietro di paginazione -->\r\n <div *ngIf=\"PagerOptions.ShowPaging && PagerOptions.ShowButtons && (PagerOptions.PagerCount > 10 || PagerOptions.PagerCount == -1)\" class=\"pull-right btn-toolbar\">\r\n <ng-container *ngIf=\"PagerOptions.View?.pagingavailable || viewMode()\">\r\n <ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { Margin: true, ATP: addToPage.bind(this), GTP: goToPage.bind(this), Array: arrayPulsanti() }}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"arrayMode() && UseArrayModePaging() && !SearchView()\">\r\n <ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { Margin: true, ATP: arrayAddToPage.bind(this), GTP: arrayGoToPage.bind(this), Array: arrayPulsanti() }}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <!-- Paginatore dove appare la count e le opzioni di paginazione -->\r\n <div class=\"pull-right\" *ngIf=\"PagerOptions.ShowCount || PagerOptions.ShowPagingOptions\">\r\n <div class=\"est-mt-min-5\" *ngIf=\"PagerOptions.ShowPaging\">\r\n <es-paging *ngIf=\"!PagerOptions.UsesView\" [CountLabel]=\"CountLabel()\" [ShowPaging]=\"PagerOptions.ShowPagingOptions\" [ShowCount]=\"PagerOptions.ShowCount\" [PagerCount]=\"PagerOptions.PagerCount\" [WarnOnAll]=\"false\" [CurrentPageSize]=\"ArraymodeItemsPerPage()\" (pagingSelected)=\"items_H.refreshPaging($event)\"></es-paging>\r\n <es-paging *ngIf=\"PagerOptions.UsesView\" [CountLabel]=\"CountLabel()\" [ShowPaging]=\"PagerOptions.ShowPagingOptions\" [ShowCount]=\"PagerOptions.ShowCount\" [PagerCount]=\"PagerOptions.PagerCount\" [GroupMode]=\"PagerOptions.Searches == 'groups'\" [AllSearch]=\"AllSearch()\" [View]=\"PagerOptions.View\" (pagingSelected)=\"onItemsPerPageChanged($event);\"></es-paging>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<!-- Template che contiene i pulsanti per cambiare pagina -->\r\n<ng-template #pagingButtons let-options>\r\n <div class=\"est-flex\" [class.est-margin-left-50]=\"options.Margin\">\r\n <a class=\"btn\" class=\"est-page-prev app-pointer\" (click)=\"options.ATP(-1, options.separator)\"><span class=\"fa fa-chevron-left\"></span></a>\r\n <div *ngIf=\"options.Array\" class=\"est-inline\"><a *ngFor=\"let p of options.Array; trackBy: valTrackBy\" class=\"btn est-page-sel {{p.cssClass}}\" (click)=\"options.GTP(p.val, options.separator)\">{{p.val}}</a></div>\r\n <a class=\"btn\" class=\"est-page-next app-pointer\" (click)=\"options.ATP(1, options.separator)\"><span class=\"fa fa-chevron-right\"></span></a>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Questi due template rappresentano effettivamente il body della tabella. essendo il tr l'unica cosa che davvero cambia, il resto \u00E8 templatizzato -->\r\n<ng-template #TBodySelection let-templateOptions>\r\n <ng-container *ngFor=\"let item of boundSource(); let even = even; let i=index; trackBy: bodyTrackBy\">\r\n <tr *ngIf=\"item._visible || (!Hierarchy() && !ArrayGrouping())\"\r\n [class]=\"item._rowClass ? item._rowClass : ''\"\r\n [class.est-line-through]=\"item.removed || item.deleted\"\r\n [class.est-pointer]=\"!item.locked\"\r\n [class.est-white-selected]=\"item._selected && !item.locked\"\r\n [class.est-rg]=\"item._group\"\r\n [class.est-rg-sep]=\"item._sep\"\r\n [contextMenu]=\"!item.locked ? (ContextMenu || emptyMenu) : emptyMenu\" [contextMenuSubject]=\"item\"\r\n (click)=\"!RangeSelection() && handleRowClick($event, item, true)\"\r\n (contextmenu)=\"onRightClick();\">\r\n\r\n <td *ngIf=\"!item.locked && !item._sep && !HasPinnedColumns()\">\r\n <input type=\"checkbox\"\r\n style=\"width: 15px\"\r\n [disabled]=\"templateOptions.selDisabled\"\r\n [class.est-pointer]=\"!item.locked\"\r\n [(ngModel)]=\"item._selected\" name=\"check{{i}}\"\r\n (click)=\"$event.stopPropagation(); handleClick($event, item);\">\r\n </td>\r\n <td *ngIf=\"(item.locked || item._sep) && !HasPinnedColumns()\"></td>\r\n\r\n <ng-container *ngIf=\"item._sep\"><ng-container *ngTemplateOutlet=\"groupPager; context: { $implicit: item }\"></ng-container> </ng-container>\r\n\r\n <ng-container *ngIf=\"!item._sep\">\r\n <ng-container *ngTemplateOutlet=\"basicColumns; context: { $implicit: item, index: i }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"customCells; context: { $implicit: item, index: i, templateOptions: templateOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"bodyDeleteAndExport; context: { $implicit: { even: even, item: item, index: i }}\"></ng-container>\r\n </tr>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #TBody>\r\n <ng-container *ngFor=\"let item of boundSource(); let i = index, let even = even; trackBy: bodyTrackBy\">\r\n <tr *ngIf=\"item._visible || !Hierarchy()\"\r\n [class]=\"item._rowClass ? item._rowClass : ''\"\r\n [class.est-line-through]=\"item.removed || item.deleted\"\r\n [class.est-rg]=\"item._group\"\r\n [class.est-rg-sep]=\"item._sep\"\r\n (click)=\"handleRowClick($event, item, false)\">\r\n\r\n <ng-container *ngIf=\"item._sep\"><ng-container *ngTemplateOutlet=\"groupPager; context: { $implicit: item }\"></ng-container></ng-container>\r\n\r\n <ng-container *ngIf=\"!item._sep\">\r\n <ng-container *ngTemplateOutlet=\"basicColumns; context: { $implicit: item, index: i }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"customCells; context: { $implicit: item, index: i }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"bodyDeleteAndExport; context: { $implicit: { even: even, item: item, index: i }}\"></ng-container>\r\n </tr>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #groupPager let-item>\r\n <td class=\"est-pinned-body \" *ngIf=\"HasPinnedColumns()\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border est-cell-group-padding\"></div>\r\n </td>\r\n <td *ngIf=\"item._grouplevel > 1\" [attr.colspan]=\"item._grouplevel-1\"></td>\r\n <td [attr.colspan]=\"Columns().VisibleUnpinned - (item._grouplevel > 0 ? item._grouplevel - 1 : 0)\">\r\n <div class=\"est-rg-sep-flex-right\" *ngIf=\"RowGroupingPagingStyle() == 'right'\">\r\n <div class=\"est-rg-page\"><ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { separator: item, ATP: addToPageGroup.bind(this), GTP: goToPageGroup.bind(this), Array: item.buttons }}\"></ng-container></div>\r\n <div class=\"est-rg-ipp\" *ngIf=\"(item.searches == 'groups' ? item.view.groupcount : item.view.objectcount) > 10\"><es-paging [CountLabel]=\"CountLabel()\" [AllSearch]=\"AllSearch()\" [GroupMode]=\"item.searches == 'groups'\" [PagerCount]=\"item.searches == 'groups' ? item.view.groupcount : item.view.objectcount\" [View]=\"item.view\" (pagingSelected)=\"onGroupItemsPerPageChanged(item, $event);\"></es-paging></div>\r\n </div>\r\n\r\n <div class=\"est-rg-sep-flex-left\" *ngIf=\"RowGroupingPagingStyle() == 'left'\">\r\n <div class=\"est-rg-ipp\"><es-paging [AllSearch]=\"AllSearch()\" [CountLabel]=\"CountLabel()\" [GroupMode]=\"item.searches == 'groups'\" [PagerCount]=\"item.searches == 'groups' ? item.view.groupcount : item.view.objectcount\" [View]=\"item.view\" (pagingSelected)=\"onGroupItemsPerPageChanged(item, $event);\"></es-paging></div>\r\n <div class=\"est-rg-page\" *ngIf=\"(item.searches == 'groups' ? item.view.groupcount : item.view.objectcount) > 10\"><ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { separator: item, ATP: addToPageGroup.bind(this), GTP: goToPageGroup.bind(this), Array: item.buttons }}\"></ng-container></div>\r\n </div>\r\n </td>\r\n</ng-template>\r\n\r\n<!-- Questo template contiene la print condizionale su tabelle semplici, con header e body scritti a manazza -->\r\n<ng-template #basicColumns let-item let-index=\"index\">\r\n <ng-container *ngIf=\"(!UseCustomCells() || EmptyRowTds()) && !DynamicRowColumnsDefinition()\">\r\n <ng-container *ngTemplateOutlet=\"bodyRef; context : {$implicit: item, index: index}\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultEditor let-ctx>\r\n <!-- Un po' triste ma questo \u00E8 il metodo pi\u00F9 semplice per gestire il cambio di modello -->\r\n <!-- Manca da reimplementare il [FocusSubject]=\"FocusSubject\" -->\r\n <ng-container *ngIf=\"ctx.item.properties\">\r\n <form-adaptive [FormLayout]=\"false\" [Validation]=\"false\" [Configuration]=\"ctx.definition.EditorOptions\" [(ngModel)]=\"ctx.item.properties[ctx.definition.PropertyName]\" name=\"{{ ctx.definition.PropertyName + '_' + ctx.item._hash }}\" [Type]=\"ctx.definition.PropertyType\" [Source]=\"ctx.definition.PropertySource\" (inputFinalized)=\"ctx.finalizer()\"></form-adaptive>\r\n </ng-container>\r\n <ng-container *ngIf=\"!ctx.item.properties\">\r\n <form-adaptive [FormLayout]=\"false\" [Validation]=\"false\" [Configuration]=\"ctx.definition.EditorOptions\" [(ngModel)]=\"ctx.item[ctx.definition.PropertyName]\" name=\"{{ ctx.definition.PropertyName + '_' + ctx.item._hash }}\" [Type]=\"ctx.definition.PropertyType\" [Source]=\"ctx.definition.PropertySource\" (inputFinalized)=\"ctx.finalizer()\"></form-adaptive>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultEsTd let-ctx>\r\n <!-- TODO: Formattare il valore in base a valType.type -->\r\n <ng-container *ngIf=\"ctx.type == 'enum'\">\r\n {{ (ctx.value | est_lookup : ctx.definition.PropertySource).description }}\r\n </ng-container>\r\n <ng-container *ngIf=\"ctx.type != 'enum'\">\r\n {{ctx.value}}\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #customCells let-item let-opt=\"templateOptions\">\r\n <ng-container *ngIf=\"UseCustomCells() && !EmptyRowTds()\">\r\n <!-- Cella che aggrega tutte le colonne che devono essere pinnate -->\r\n <td *ngIf=\"HasPinnedColumns()\" class=\"est-pinned-body est-col-min\" [class.est-white-selected]=\"item._selected\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border\">\r\n <td *ngIf=\"!item.locked && !item._sep && Selection()\" class=\"est-no-border est-col-min\" [style.width.px]=\"20\">\r\n <input type=\"checkbox\" style=\"width: 15px\" [disabled]=\"opt.selDisabled\" [class.est-pointer]=\"!item.locked\" [(ngModel)]=\"item._selected\" name=\"check{{item._hash}}\" (click)=\"$event.stopPropagation(); handleClick($event, item);\">\r\n </td>\r\n <td class=\"est-no-border est-col-min\" *ngIf=\"(item.locked || item._sep) && Selection()\" [style.width.px]=\"20\"></td>\r\n\r\n <ng-container *ngFor=\"let cell of RowTDs[item._hash]; let index = index; trackBy: IDTrackBy\">\r\n <ng-container *ngIf=\"cell().Pinned\">\r\n <ng-container *ngTemplateOutlet=\"customTd; context: { \r\n $implicit: item, \r\n index: index, \r\n cell: cell, \r\n pinned: true, \r\n selectionStatus: selectionStatus[item._ordinal]?.[index],\r\n selectionStatusUp: selectionStatus[item._ordinal - 1]?.[index],\r\n selectionStatusDown: selectionStatus[item._ordinal + 1]?.[index],\r\n selectionStatusLeft: selectionStatus[item._ordinal]?.[index - 1],\r\n selectionStatusRight: selectionStatus[item._ordinal]?.[index + 1] \r\n };\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </td>\r\n\r\n <!-- Body effettivo della riga -->\r\n <ng-container *ngFor=\"let cell of RowTDs[item._hash]; let index = index; trackBy: IDTrackBy\">\r\n <ng-container *ngIf=\"!cell().Pinned;\">\r\n <ng-container *ngTemplateOutlet=\"customTd; context: { \r\n $implicit: item, \r\n index: index, \r\n cell: cell, \r\n pinned: false, \r\n selectionStatus: selectionStatus[item._ordinal]?.[index],\r\n selectionStatusUp: selectionStatus[item._ordinal - 1]?.[index],\r\n selectionStatusDown: selectionStatus[item._ordinal + 1]?.[index],\r\n selectionStatusLeft: selectionStatus[item._ordinal]?.[index - 1],\r\n selectionStatusRight: selectionStatus[item._ordinal]?.[index + 1] \r\n };\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </ng-container>\r\n</ng-template>\r\n\r\n<!-- Cella customizzata, elemento grafico base per la tabella -->\r\n<ng-template #customTd let-item let-cell=\"cell\" let-index=\"index\" let-pinned=\"pinned\" let-selStatus=\"selectionStatus\" let-selStatusUp=\"selectionStatusUp\" let-selStatusDown=\"selectionStatusDown\" let-selStatusLeft=\"selectionStatusLeft\" let-selStatusRight=\"selectionStatusRight\">\r\n\r\n <!-- Customizzazione per celle con icona (sono essenzialmente operazioni semplici e basta) -->\r\n <ng-container *ngIf=\"cell().IconClass && cell().Visible\">\r\n <ng-container *ngIf=\"!cell().ConditionField || (((item.properties || item) | est_propinsensitive : cell().ConditionField) == cell().ConditionValue)\">\r\n <td [class.est-no-right-padding]=\"index != DynamicOperations().length -1\" [class.est-no-left-padding]=\"index != 0\" class=\"est-col-min\"><span title=\"{{cell().Title}}\" class=\"{{cell().IconClass}} est-pointer\" (click)=\"dynamicOperation(item, cell().ID)\">{{cell().Content}}</span></td>\r\n </ng-container>\r\n <ng-container *ngIf=\"cell().ConditionField && (((item.properties || item) | est_propinsensitive : cell().ConditionField) != cell().ConditionValue)\">\r\n <td class=\"est-col-min est-no-side-padding\"></td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-----------------------------------------------------------------------------------------------------------------------\r\n - ATTENZIONE: Gli spazi fra gli Input di questo mega td sono significativi e dividono la dichiarazione in sezioni: -\r\n - . Generiche -\r\n - . Gestione allineamento e colori per la modalit\u00E0 report -\r\n - . Gestioni grafiche particolari per il Pinned -\r\n - . Gestione della selezione a singola cella in assenza di pinned -\r\n - . Gestione click classico e selezione multicella -\r\n ------------------------------------------------------------------------------------------------------------------------->\r\n\r\n <td *ngIf=\"!cell().IconClass && cell().Visible\"\r\n es-td=\"{{cell().Property || cell().ID}}\"\r\n id=\"estd_{{cell().Property || cell().ID}}_{{item._ordinal}}_{{index}}\"\r\n class=\"{{ cell().Class }}\"\r\n\r\n [Context]=\"item._hash\"\r\n [class.est-default-row-height]=\"!HighCellDensity()\"\r\n [class.est-white-selected]=\"item._selected\"\r\n [class.est-no-selection]=\"Editable() && cell().PropertyName\"\r\n [class.est-rg-hdr]=\"cell().GroupHeader\"\r\n [class.est-rg-agg]=\"cell().GroupAggregation\"\r\n [class.est-nowrap]=\"Hierarchy() || !cell().Wraps\"\r\n\r\n [style.text-align]=\"(!pinned && cell().Alignment) ? cell().Alignment : null\"\r\n [style.color]=\"(!pinned && item.forecolors && cell().PropAccessor) ? item.forecolors[cell().PropAccessor] : null\"\r\n [style.background-color]=\"(!pinned && item.backcolors && cell().PropAccessor) ? item.backcolors[cell().PropAccessor] : null\"\r\n \r\n [style.width.px]=\"pinned ? cell().PinnedWidth : null\"\r\n [class.est-no-border]=\"pinned\"\r\n\r\n [class.est-no-border-bottom]=\"selStatusDown?.tborder\"\r\n [class.est-no-border-top]=\"selStatusUp?.bborder\"\r\n [class.est-ltab-border]=\"cell().LeftBorder && !selStatus?.lborder && !selStatusLeft?.rborder\"\r\n [class.est-rtab-border]=\"cell().RightBorder && !selStatus?.rborder && !selStatusRight?.lborder\"\r\n \r\n [class.est-selected-cell]=\"selStatus?.selected\"\r\n [class.est-cell-lborder]=\" selStatus?.lborder\"\r\n [class.est-cell-rborder]=\" selStatus?.rborder\"\r\n [class.est-cell-tborder]=\" selStatus?.tborder\"\r\n [class.est-cell-bborder]=\" selStatus?.bborder\"\r\n [class.est-cell-lborder-tmp]=\"!cell().LeftBorder && !selStatus?.lborder && !selStatus?.loverlaps\"\r\n [class.est-cell-rborder-tmp]=\"!cell().RightBorder && !selStatus?.rborder && !selStatus?.roverlaps\"\r\n [class.est-cell-tborder-tmp]=\"!selStatus?.tborder && !selStatus?.toverlaps\"\r\n [class.est-cell-bborder-tmp]=\"!selStatus?.bborder && !selStatus?.boverlaps\"\r\n\r\n #cellRef\r\n\r\n (click)=\"dbClickEditOrSingleClickRowSelection($event, cell, item)\"\r\n\r\n (onCellGeneration)=\"registerCell($event, cell(), item, cellRef.el)\">\r\n\r\n <!-- \r\n @@@ Queste registrazioni le lascio fare all'interno di registerCell per evitare di attaccare la change detection automatica agli eventi, che rallenta di diosanto\r\n\r\n (mousedown)=\"mousedown($event, cell, item)\"\r\n (mouseenter)=\"mouseenter($event)\"\r\n (mouseup)=\"mouseup($event)\"\r\n -->\r\n\r\n <div [class.est-edit-hidden]=\"cell()._editing\" [class.est-pre]=\"!(Hierarchy() && index == 0)\">\r\n\r\n <ng-container #DEBUG>\r\n <!-- Debug box in caso la roba che viene scritta nelle celle non torni. Scirvere qui i propri binding per controllare cose -->\r\n </ng-container>\r\n\r\n <!-- 90% Template disponibile, quindi derivante da *td, controllo giusto che non sia un field particolare multi -->\r\n <ng-container *ngIf=\"cell().Template\">\r\n <ng-container *ngIf=\"!cell().Multi\"><ng-container *ngTemplateOutlet=\"cell().Template; context: { $implicit: item }\"></ng-container></ng-container>\r\n <span *ngIf=\"cell().Multi\"><ng-container *ngTemplateOutlet=\"cell().Template; context: { $implicit: (item[cell().MultiProp] ? item[cell().MultiProp][cell().MultiIndex] : {}) }\"></ng-container></span>\r\n </ng-container>\r\n\r\n <!-- 8%\r\n Template non disponibile, pu\u00F2 venire da\r\n RoutePath in caso sia un link di una tabella dinamica\r\n PropAccessor in caso di ReportRow (quindi oggetti con \"values\" dentro),\r\n o Renderer se modalit\u00E0 dinamica/standard (in qual caso il renderer \u00E8 il default)\r\n -->\r\n <ng-container *ngIf=\"!cell().Template && !cell().Multi && !cell().Content\">\r\n <a *ngIf=\"cell().RoutePath\" [routerLink]=\"item | est_routerlink : cell().RoutePath : cell().RouteParameterProperties\" class=\"est-link\" [innerHTML]=\"item.properties ? item.properties[cell().PropertyName] : item[cell().PropertyName]\"></a>\r\n\r\n <span *ngIf=\"cell().PropAccessor\">\r\n {{(item.values? item.values[cell().PropAccessor] : item[cell().PropAccessor]) | est_format: cell().Format }}\r\n </span>\r\n\r\n <ng-container *ngIf=\"!cell().PropAccessor && !cell().RoutePath\">\r\n <ng-container *ngTemplateOutlet=\"cell().PropertyName | est_renderer: { name: cell().RendererName, src: EsTdsDirective, fallback: defaultEsTd }; context: { $implicit: { definition: cell(), value: item.properties ? item.properties[cell().PropertyName] : item[cell().PropertyName], type: cell().PropertyType} }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- 1% Se in modalit\u00E0 gerarchica metto il td per navigare la gerarchia -->\r\n <ng-container *ngIf=\"Hierarchy() && index == 0\"><ng-container *ngTemplateOutlet=\"HierarchyNavigator; context: { $implicit: item }\"></ng-container></ng-container>\r\n\r\n <!-- 1% Content programmatico per le casistiche di Row Grouping ecc... -->\r\n <ng-container *ngIf=\"cell().Content\">\r\n {{cell().Content}}\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"cell()._editing\" class=\"est-mt-min-5\">\r\n <ng-container *ngTemplateOutlet=\"cell().PropertyName | est_editor: { name: cell().EditorName, src: EsTdEditorDirectives, fallback: defaultEditor}; context: { $implicit: { definition: cell(), columnIndex: index, item: item, finalizer: finalizeUserEdit.bind(this, cell, item, index) } }\"></ng-container>\r\n </div>\r\n </td>\r\n</ng-template>\r\n\r\n<!-- Navigatore della gerarchia di una view gerarchica, con tasto per espandere e collassare -->\r\n<ng-template #HierarchyNavigator let-item>\r\n <span *ngIf=\"!item.parent\" class=\"fa fa-chevron-down\" style=\"visibility:hidden\"></span>\r\n <span *ngIf=\"item.parent && item._expanded\" class=\"fa fa-chevron-down est-pointer est-no-selection\" (click)=\"hierarchyMode_H.collapseParent(item[this.OwnKey()])\"></span>\r\n <span *ngIf=\"item.parent && !item._expanded\" class=\"fa fa-chevron-up est-pointer est-no-selection\" (click)=\"hierarchyMode_H.expandParent(item[this.OwnKey()])\"></span>\r\n \r\n</ng-template>\r\n\r\n<!-- Pulsanti di eliminazione/undo eliminazione ed esportazione che vanno in fondo ad un record edlla tabella -->\r\n<ng-template #bodyDeleteAndExport let-options>\r\n <ng-container *ngIf=\"Removal() && !RemovalCondition()\">\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"!(options.item.removed || options.item.deleted)\"><span class=\"fa fa-remove est-pointer text-danger\" [hidden]=\"options.item.removable != undefined && !options.item.removable\" (click)=\"onRemoval.emit(options.item)\"></span></td>\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"(options.item.removed || options.item.deleted)\"><span class=\"fa fa-undo text-warning est-pointer\" (click)=\"onAbortRemoval.emit(options.item)\"></span></td>\r\n </ng-container>\r\n <ng-container *ngIf=\"Removal() && RemovalCondition()\">\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"!(options.item.removed || options.item.deleted) && options.item[RemovalCondition()]\"><span class=\"fa fa-remove est-pointer text-danger\" [hidden]=\"options.item.removable != undefined && !options.item.removable\" (click)=\"onRemoval.emit(options.item)\"></span></td>\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"(options.item.removed || options.item.deleted) && options.item[RemovalCondition()]\"><span class=\"fa fa-undo text-warning est-pointer\" (click)=\"onAbortRemoval.emit(options.item)\"></span></td>\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"!options.item[RemovalCondition()]\"><span class=\"fa fa-remove est-hidden-view\"></span></td>\r\n </ng-container>\r\n <td *ngIf=\"Export() || HiddenColumns() || CornerMenuOptions()\" class=\"est-sticky-last-column{{options.even && !Hierarchy() ? '-alt' : ''}}\"></td>\r\n</ng-template>\r\n\r\n<!-- Context menu vuoto default per tutte le tabella che non ce l'hanno, in modo che al click destro appaia \"nessuna op disponibile\" -->\r\n<context-menu #emptyMenu>\r\n <ng-template contextMenuItem><span><em>{{'No operations available' | localize : lc}}...</em></span></ng-template>\r\n</context-menu>\r\n\r\n<!-- Modal per cambiare posizione e visibilit\u00E0 delle colonne dell'es-table -->\r\n<div bsModal #changeColumnVisibilityModal=\"bs-modal\" #columnsDialog class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" cdkDrag>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header est-pointer\" cdkDragHandle>\r\n <h5 class=\"modal-title pull-left\">\r\n <ng-container *ngIf=\"!HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Order' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && !ColumnsOrdering()\">\r\n {{'Columns Visibility' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Visibility and Order' | localize : lc}}\r\n </ng-container>\r\n </h5>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"hideDialog(changeColumnVisibilityModal);\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div *ngIf=\"!TMPColumnsList || TMPColumnsList.length == 0\" class=\"card card-info est-padding-10 est-margin-bottom-0\">\r\n {{'There are no columns configured to be hidden/shown in this view' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"TMPColumnsList && TMPColumnsList.length > 0\" style=\"max-height:500px; overflow-y:auto\">\r\n <!--Aaaaaaah la tristezza... qui mi servirebbe l'es-table per facilitare la selezione multipla ecc... peccato che se la linko qui entro in un loop impressionante-->\r\n <table class=\"table table-striped table-sm est-margin-bottom-0\">\r\n <thead>\r\n <tr>\r\n <th class=\"est-col-min\" *ngIf=\"HiddenColumns()\">\r\n <input class=\"est-pointer\" type=\"checkbox\" style=\"width: 15px\" [(ngModel)]=\"globalColVisCheck\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"columnMetadata_H.globalColVisCheckChanged();\">\r\n </th>\r\n <!-- <th class=\"est-col-min\" *ngIf=\"ColumnsOrdering\"></th> -->\r\n <th class=\"est-col-min est-nowrap\">{{'Column Name' | localize : lc}}</th>\r\n <!--Filler-->\r\n <th></th>\r\n <!-- Pinner -->\r\n <th *ngIf=\"DirectivesBased()\" class=\"est-col-min\"></th>\r\n </tr>\r\n </thead>\r\n <tbody\r\n cdkDropList\r\n [cdkDropListData]=\"TMPColumnsList\"\r\n (cdkDropListDropped)=\"columnMetadata_H.columnReordered($event)\"\r\n [cdkDropListSortPredicate]=\"columnMetadata_H.sortPredicate.bind(this.columnMetadata_H)\"\r\n class=\"est-dropbox\">\r\n\r\n <tr *ngFor=\"let item of TMPColumnsList; let i = index; let last = last; trackBy: idTrackBy\"\r\n class=\"est-pointer est-droplist\"\r\n [class.est-white-selected]=\"lastSelectedItemID == item.id\"\r\n [class.est-no-selection]=\"!item.visible\"\r\n cdkDrag\r\n [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"!ColumnsOrdering || item.fixed || item.pinned\">\r\n\r\n <td *ngIf=\"HiddenColumns()\">\r\n <input type=\"checkbox\" style=\"width: 15px\" [class.est-hidden-view]=\"item.fixed\" class=\"est-pointer\" [(ngModel)]=\"item.visible\" name=\"visible{{i}}\" (ngModelChange)=\"columnMetadata_H.updateGlobalColVisCheck();\" />\r\n </td>\r\n <td class=\"est-nowrap drag-visible\" (click)=\"columnMetadata_H.columnClicked(item);\">\r\n <ng-container *ngIf=\"item.template\">\r\n <!-- Padri -->\r\n <span *ngIf=\"item.parentTemplates && item.parentTemplates.length > 0\" class=\"est-fw-bold est-fs-13\">\r\n ( \r\n <ng-container *ngFor=\"let parent of item.parentTemplates; let last=last; trackBy: idTrackBy\">\r\n <ng-container *ngIf=\"parent.tmpl\"><ng-container *ngTemplateOutlet=\"parent.tmpl\"></ng-container></ng-container>\r\n <ng-container *ngIf=\"parent.content\">{{parent.content}}</ng-container>\r\n <span *ngIf=\"!last\"> - </span>\r\n </ng-container>\r\n )\r\n </span>\r\n <!-- Template header originale -->\r\n <ng-container *ngTemplateOutlet=\"item.template; context: { $implicit: item.multi ? item.multiContent : null }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!item.template\">{{item.description}}</ng-container>\r\n </td>\r\n <!--Filler-->\r\n <td (click)=\"columnMetadata_H.columnClicked(item);\"></td>\r\n <!-- Pinner -->\r\n <td *ngIf=\"DirectivesBased() && ColumnsPinnable()\"><span *ngIf=\"!item.fixed && item.pinnable\" class=\"fa fa-thumb-tack\" [class.text-success]=\"item.pinned\" (click)=\"columnMetadata_H.pinOrUnpinColumn(item)\"></span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary est-margin-right-10\" (click)=\"lastSelectedItemID = null; hideDialog(changeColumnVisibilityModal);\">{{'Close' | localize : lc}}</button>\r\n <button type=\"button\" [disabled]=\"!TMPColumnsList || TMPColumnsList.length == 0\" class=\"btn btn-primary\" (click)=\"columnMetadata_H.confirmColumnVisibilitySelection() && hideDialog(changeColumnVisibilityModal)\">{{'Confirm' | localize : lc}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.est-loading-box{height:200px;text-align:center;position:relative;background:#ccc}.est-loading-content{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:35px}.est-scrollable{max-height:600px;overflow:auto}.est-head-resizer{top:0;right:0;bottom:0;width:7px;position:absolute;cursor:col-resize}.est-head-resizer-internal{inset:0 0 0 6px;width:1px;position:absolute;background-color:#ccc;height:100%}.est-pointer{cursor:pointer}.est-high-density th,.est-high-density td{padding:0;padding-left:.2rem;padding-right:.2rem}.est-default-row-height{height:31px}.est-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.est-edit-hidden{visibility:hidden;height:1px!important}.est-hidden-view{visibility:hidden}.est-no-border{border:none!important}.est-nowrap{white-space:nowrap}.est-mt-min-5{margin-top:-5px}.est-white-selected{background-color:#ddd!important}.est-line-through{text-decoration:line-through}.est-no-side-padding{padding-left:0;padding-right:0}.est-no-left-padding,.est-no-right-padding{padding-left:0}.est-col-min{width:1px}.est-margin-bottom-0{margin-bottom:0!important}.est-margin-right-10{margin-right:10px!important}.est-right-9{right:9px!important}.est-table-dotted-menu{padding:0 0 2px!important;color:#999}.est-fs-18{font-size:18px}.est-fs-14,.est-fs-13{font-size:14px}.est-fw-bold{font-weight:700}.est-padding-3{padding:3px!important}.est-page-container{position:relative}.est-bring-to-front-strong{z-index:99999999!important}.est-switch{position:relative;display:inline-block;width:30px;height:17px;margin-bottom:0;margin-right:5px;margin-left:5px}.est-switch input{display:none}.est-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.est-slider:before{position:absolute;content:\"\";height:13px;width:13px;left:3px;bottom:2px;background-color:#fff;-webkit-transition:.4s;transition:.4s}input:checked+.est-slider{background-color:#2196f3}input:focus+.est-slider{box-shadow:0 0 1px #2196f3}input:checked+.est-slider:before{-webkit-transform:translateX(11px);-ms-transform:translateX(11px);transform:translate(11px)}.est-slider.round{border-radius:10px}.est-slider.round:before{border-radius:50%}.est-custom-input{width:30px;display:inline;padding:1px;height:20px}.est-row-lvl-1 td:first-child{padding-left:5px}.est-row-lvl-2 td:first-child{padding-left:20px}.est-row-lvl-3 td:first-child{padding-left:35px}.est-row-lvl-4 td:first-child{padding-left:50px}.est-row-lvl-5 td:first-child{padding-left:65px}.est-row-lvl-6 td:first-child{padding-left:80px}.est-row-lvl-7 td:first-child{padding-left:95px}.est-row-lvl-8 td:first-child{padding-left:110px}.est-row-lvl-9 td:first-child{padding-left:125px}.est-row-lvl-10 td:first-child{padding-left:140px}.est-row-lvl-11 td:first-child{padding-left:155px}.est-row-lvl-12 td:first-child{padding-left:170px}.est-row-lvl-13 td:first-child{padding-left:185px}.est-row-lvl-14 td:first-child{padding-left:200px}.est-row-lvl-15 td:first-child{padding-left:215px}.est-row-lvl-16 td:first-child{padding-left:230px}.est-row-lvl-17 td:first-child{padding-left:245px}.est-row-lvl-18 td:first-child{padding-left:260px}.est-row-lvl-19 td:first-child{padding-left:275px}.est-row-lvl-20 td:first-child{padding-left:290px}.est-row-lvl-21 td:first-child{padding-left:305px}.est-row-lvl-22 td:first-child{padding-left:320px}.est-row-lvl-23 td:first-child{padding-left:335px}.est-row-lvl-24 td:first-child{padding-left:350px}.est-row-lvl-25 td:first-child{padding-left:365px}.est-row-lvl-26 td:first-child{padding-left:380px}.est-row-lvl-27 td:first-child{padding-left:395px}.est-row-lvl-28 td:first-child{padding-left:410px}.est-row-lvl-29 td:first-child{padding-left:425px}.est-row-lvl-30 td:first-child{padding-left:440px}.est-row-lvl-31 td:first-child{padding-left:455px}.est-row-lvl-32 td:first-child{padding-left:470px}.est-row-lvl-33 td:first-child{padding-left:485px}.est-row-lvl-34 td:first-child{padding-left:500px}.est-row-lvl-35 td:first-child{padding-left:515px}.est-row-lvl-36 td:first-child{padding-left:530px}.est-row-lvl-37 td:first-child{padding-left:545px}.est-row-lvl-38 td:first-child{padding-left:560px}.est-row-lvl-39 td:first-child{padding-left:575px}.est-row-lvl-40 td:first-child{padding-left:590px}.est-row-lvl-41 td:first-child{padding-left:605px}.est-row-lvl-42 td:first-child{padding-left:620px}.est-row-lvl-43 td:first-child{padding-left:635px}.est-row-lvl-44 td:first-child{padding-left:650px}.est-row-lvl-45 td:first-child{padding-left:665px}.est-row-lvl-46 td:first-child{padding-left:680px}.est-row-lvl-47 td:first-child{padding-left:695px}.est-row-lvl-48 td:first-child{padding-left:710px}.est-row-lvl-49 td:first-child{padding-left:725px}.est-row-lvl-50 td:first-child{padding-left:740px}.est-row-lvl-51 td:first-child{padding-left:755px}.est-row-lvl-52 td:first-child{padding-left:770px}.est-row-lvl-53 td:first-child{padding-left:785px}.est-row-lvl-54 td:first-child{padding-left:800px}.est-row-lvl-55 td:first-child{padding-left:815px}.est-row-lvl-56 td:first-child{padding-left:830px}.est-row-lvl-57 td:first-child{padding-left:845px}.est-row-lvl-58 td:first-child{padding-left:860px}.est-row-lvl-59 td:first-child{padding-left:875px}.est-row-lvl-60 td:first-child{padding-left:890px}.est-row-lvl-61 td:first-child{padding-left:905px}.est-row-lvl-62 td:first-child{padding-left:920px}.est-row-lvl-63 td:first-child{padding-left:935px}.est-row-lvl-64 td:first-child{padding-left:950px}.est-row-lvl-65 td:first-child{padding-left:965px}.est-row-lvl-66 td:first-child{padding-left:980px}.est-row-lvl-67 td:first-child{padding-left:995px}.est-row-lvl-68 td:first-child{padding-left:1010px}.est-row-lvl-69 td:first-child{padding-left:1025px}.est-row-lvl-70 td:first-child{padding-left:1040px}.est-row-lvl-71 td:first-child{padding-left:1055px}.est-row-lvl-72 td:first-child{padding-left:1070px}.est-row-lvl-73 td:first-child{padding-left:1085px}.est-row-lvl-74 td:first-child{padding-left:1100px}.est-row-lvl-75 td:first-child{padding-left:1115px}.est-row-lvl-76 td:first-child{padding-left:1130px}.est-row-lvl-77 td:first-child{padding-left:1145px}.est-row-lvl-78 td:first-child{padding-left:1160px}.est-row-lvl-79 td:first-child{padding-left:1175px}.est-row-lvl-80 td:first-child{padding-left:1190px}.est-row-lvl-81 td:first-child{padding-left:1205px}.est-row-lvl-82 td:first-child{padding-left:1220px}.est-row-lvl-83 td:first-child{padding-left:1235px}.est-row-lvl-84 td:first-child{padding-left:1250px}.est-row-lvl-85 td:first-child{padding-left:1265px}.est-row-lvl-86 td:first-child{padding-left:1280px}.est-row-lvl-87 td:first-child{padding-left:1295px}.est-row-lvl-88 td:first-child{padding-left:1310px}.est-row-lvl-89 td:first-child{padding-left:1325px}.est-row-lvl-90 td:first-child{padding-left:1340px}.est-row-lvl-91 td:first-child{padding-left:1355px}.est-row-lvl-92 td:first-child{padding-left:1370px}.est-row-lvl-93 td:first-child{padding-left:1385px}.est-row-lvl-94 td:first-child{padding-left:1400px}.est-row-lvl-95 td:first-child{padding-left:1415px}.est-row-lvl-96 td:first-child{padding-left:1430px}.est-row-lvl-97 td:first-child{padding-left:1445px}.est-row-lvl-98 td:first-child{padding-left:1460px}.est-row-lvl-99 td:first-child{padding-left:1475px}.est-relative{position:relative}.est-top-pager{position:absolute;right:0;top:5px}.est-top-allselect{position:absolute;left:0;top:5px;font-weight:700}.est-padding-10{padding:10px!important}.est-margin-right-50{margin-right:50px}.est-margin-left-50{margin-left:50px}.est-quick-unpin{color:#000;margin-left:8px;font-size:14px;transform:rotate(45deg)}.est-full-height{height:100%}.est-page-sel{margin-left:3px;margin-right:3px;padding:0 5px;font-size:inherit;border:none;border-radius:15px}.est-page-sel:not(.app-white-text){color:#000!important}.est-page-prev,.est-page-next{color:#000;padding:2px 0 0;font-size:inherit}.est-pinned-header{background-color:#fff;left:0;top:0;position:sticky;z-index:1;border-bottom:1px solid #dee2e6!important;padding:0!important}.est-simple-border-bottom{border-bottom:1px solid #dee2e6}.est-pinned-internal-header{border-top:0;border-bottom:0px solid #dee2e6}.est-pinned-border{border-right:2px solid #dee2e6!important}.est-cell-padding{padding:.3rem}.est-pinned-body{background-color:#fff;left:0;position:sticky;z-index:1;border-top:1px solid #dee2e6!important;padding:0!important}.est-inline{display:inline!important}.est-inline-block{display:inline-block!important}.est-link{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block}.est-link:hover{color:#23527c!important;cursor:pointer;text-decoration:underline!important}.est-sticky-last-column{right:-1px;position:sticky;z-index:0;background-color:#fff}.est-sticky-last-column-alt{right:-1px;position:sticky;z-index:0;background-color:#f2f2f2}.est-ltab-border{border-left:1px solid #bbb!important}.est-rtab-border{border-right:1px solid #bbb!important}.est-no-border-bottom{border-bottom:none!important}.est-no-border-top{border-top:none!important}.est-cell-group-padding{padding:calc(.3rem + 1px);position:absolute;top:0;left:0;height:100%;width:100%}.est-selected-cell{background-color:#2196f333!important}.est-cell-lborder{border-left:1.02px solid rgb(33,150,243)!important}.est-cell-tborder{border-top:1.02px solid rgb(33,150,243)!important}.est-cell-rborder{border-right:1.02px solid rgb(33,150,243)!important}.est-cell-bborder{border-bottom:1.02px solid rgb(33,150,243)!important}.est-cell-lborder-tmp{border-left:1.02px solid transparent!important}.est-cell-tborder-tmp{border-top:1.02px solid transparent!important}.est-cell-rborder-tmp{border-right:1.02px solid transparent!important}.est-cell-bborder-tmp{border-bottom:1.02px solid transparent!important}.est-margin-bottom-10{margin-bottom:10px}.est-text-center{text-align:center}.est-flex{display:flex}.est-rg-sep-flex-right{display:flex;flex-direction:row-reverse;width:100%;margin:-5px}.est-rg-sep-flex-left{display:flex;flex-direction:row;width:100%;margin:-5px}.est-rg-hdr{font-weight:700}.est-rg-agg{font-style:italic}.est-rg{background-color:#7777!important}.est-rg-sep{font-size:12px;padding-right:20px!important;background-color:#bbbb!important}.est-rg-ipp{text-align:left;display:inline-flex;margin-right:25px}.est-rg-page{text-align:right;display:inline-flex;font-size:inherit;padding-top:5px}.est-droplist.cdk-drag-placeholder{opacity:0}.est-droplist.cdk-drag-preview{z-index:999999999!important;opacity:1;box-sizing:border-box;border-radius:4px;background-color:#fff;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.est-droplist.cdk-drag-preview td:not(.drag-visible){visibility:hidden}.est-droplist.cdk-drag-preview td.drag-visible{padding-top:3px}.est-droplist.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.est-droplist.cdk-drop-list-dragging .est-dropbox:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.est-pre{white-space:pre}.est val-datetime .mat-form-field-appearance-outline .mat-form-field-infix input{margin-bottom:3px!important;min-width:130px!important}.est .mat-form-field-flex{height:29px!important;padding:0!important}.est .mat-form-field-flex .mat-form-field-outline{color:#00f}.est .mat-form-field-flex .mat-form-field-outline .mat-form-field-outline-start{border-left:none;border-top:none;border-radius:0}.est .mat-form-field-flex .mat-form-field-outline .mat-form-field-outline-end{border-top:none;border-radius:0;border-right:none}.est .mat-form-field-wrapper{height:20px;min-height:20px!important;margin-top:0!important}.est .mat-form-field-infix{width:100%!important;min-width:50px!important}.est .mat-form-field-infix select.mat-input-element{margin-top:-5px!important}.est .mat-datepicker-input{margin-bottom:3px!important}.est input{height:20px;padding-top:0!important}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i10.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "directive", type: i11.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i11.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i11.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i12.ContextMenuAttachDirective, selector: "[contextMenu]", inputs: ["contextMenuSubject", "contextMenu"] }, { kind: "component", type: i12.ContextMenuComponent, selector: "context-menu", inputs: ["menuClass", "autoFocus", "useBootstrap4", "disabled"], outputs: ["close", "open"] }, { kind: "directive", type: i12.ContextMenuItemDirective, selector: "[contextMenuItem]", inputs: ["subMenu", "divider", "enabled", "passive", "visible"], outputs: ["execute"] }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i13.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i14.EsFormAdaptiveComponent, selector: "form-adaptive", inputs: ["Type", "TypeMissingMessage", "SearchFunction", "Precision", "TypePattern"] }, { kind: "directive", type: i15.AccessControlDirective, selector: "[ac]", inputs: ["ac", "acAbsolute"] }, { kind: "component", type: EsTablePagerComponent, selector: "es-paging", inputs: ["CurrentPageSize", "View", "WarnOnAll", "AllSearch", "DefaultAll", "GroupMode", "GroupCount", "CountLabel", "ShowCount", "ShowPaging", "PagerCount", "Hidden"], outputs: ["pagingSelected"] }, { kind: "component", type: EsTh, selector: "[es-th]", inputs: ["es-th", "Order", "Orderable", "Display", "Resizable", "Pinned", "SearchInProgress", "OrderBy", "Wrap", "Fixed", "Template", "Visible"], outputs: ["onOrderChange", "onUnpinning"] }, { kind: "component", type: EsTd, selector: "[es-td]", inputs: ["es-td", "Context"], outputs: ["onCellGeneration"] }, { kind: "pipe", type: i8.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }, { kind: "pipe", type: EstFormatPipe, name: "est_format" }, { kind: "pipe", type: EstLookupPipe, name: "est_lookup" }, { kind: "pipe", type: EstRouterLinkPipe, name: "est_routerlink" }, { kind: "pipe", type: EstRendererPipe, name: "est_renderer" }, { kind: "pipe", type: EstEditorPipe, name: "est_editor" }, { kind: "pipe", type: EstPropInsensitivePipe, name: "est_propinsensitive" }], viewProviders: [{ provide: LocalizationService, useClass: EsTableLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5696
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTableComponent, deps: [{ token: i0.NgZone }, { token: i1.NgControl, optional: true, self: true }, { token: i2$1.PreferencesService, optional: true }, { token: EST_DEFAULTS, optional: true }, { token: EST_EXPORT_GLOBAL_ACL, optional: true }, { token: i2.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: UtilitiesHandler }, { token: i5.UtilityService }, { token: i5.ExportService }, { token: i5.DateService }, { token: i5.MessageService }, { token: CopyPasteDetector }, { token: i5.ClipboardService }, { token: Logger }, { token: i5.AppEmbeddingExtensions }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5697
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.24", type: EsTableComponent, isStandalone: false, selector: "es-table", inputs: { globalCheck: { classPropertyName: "globalCheck", publicName: "globalCheck", isSignal: true, isRequired: false, transformFunction: null }, autoUpdate: { classPropertyName: "autoUpdate", publicName: "autoUpdate", isSignal: true, isRequired: false, transformFunction: null }, seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: false, transformFunction: null }, researchInProgress: { classPropertyName: "researchInProgress", publicName: "researchInProgress", isSignal: true, isRequired: false, transformFunction: null }, globalColVisCheck: { classPropertyName: "globalColVisCheck", publicName: "globalColVisCheck", isSignal: true, isRequired: false, transformFunction: null }, EsThTdProvider: { classPropertyName: "EsThTdProvider", publicName: "EsThTdProvider", isSignal: false, isRequired: false, transformFunction: null }, CornerMenuOptions: { classPropertyName: "CornerMenuOptions", publicName: "CornerMenuOptions", isSignal: true, isRequired: false, transformFunction: null }, _ColumnsResizable: { classPropertyName: "_ColumnsResizable", publicName: "ColumnsResizable", isSignal: true, isRequired: false, transformFunction: null }, _ColumnsPinnable: { classPropertyName: "_ColumnsPinnable", publicName: "ColumnsPinnable", isSignal: true, isRequired: false, transformFunction: null }, _AutoUpdate: { classPropertyName: "_AutoUpdate", publicName: "AutoUpdate", isSignal: true, isRequired: false, transformFunction: null }, Height: { classPropertyName: "Height", publicName: "Height", isSignal: true, isRequired: false, transformFunction: null }, EmptySpaceBackgroundColor: { classPropertyName: "EmptySpaceBackgroundColor", publicName: "EmptySpaceBackgroundColor", isSignal: true, isRequired: false, transformFunction: null }, EsTableHandledSearch: { classPropertyName: "EsTableHandledSearch", publicName: "EsTableHandledSearch", isSignal: true, isRequired: false, transformFunction: null }, MaxHeight: { classPropertyName: "MaxHeight", publicName: "MaxHeight", isSignal: true, isRequired: false, transformFunction: null }, _ContainerClass: { classPropertyName: "_ContainerClass", publicName: "ContainerClass", isSignal: true, isRequired: false, transformFunction: null }, XLSXExport: { classPropertyName: "XLSXExport", publicName: "XLSXExport", isSignal: true, isRequired: false, transformFunction: null }, CSVExport: { classPropertyName: "CSVExport", publicName: "CSVExport", isSignal: true, isRequired: false, transformFunction: null }, _AllSearch: { classPropertyName: "_AllSearch", publicName: "AllSearch", isSignal: true, isRequired: false, transformFunction: null }, HighCellDensity: { classPropertyName: "HighCellDensity", publicName: "HighCellDensity", isSignal: true, isRequired: false, transformFunction: null }, _Selection: { classPropertyName: "_Selection", publicName: "Selection", isSignal: true, isRequired: false, transformFunction: null }, ShowLoadingOnBootstrap: { classPropertyName: "ShowLoadingOnBootstrap", publicName: "ShowLoadingOnBootstrap", isSignal: true, isRequired: false, transformFunction: null }, Removal: { classPropertyName: "Removal", publicName: "Removal", isSignal: true, isRequired: false, transformFunction: null }, RemovalCondition: { classPropertyName: "RemovalCondition", publicName: "RemovalCondition", isSignal: true, isRequired: false, transformFunction: null }, _Export: { classPropertyName: "_Export", publicName: "Export", isSignal: true, isRequired: false, transformFunction: null }, _ShiftClick: { classPropertyName: "_ShiftClick", publicName: "ShiftClick", isSignal: true, isRequired: false, transformFunction: null }, CountLabel: { classPropertyName: "CountLabel", publicName: "CountLabel", isSignal: true, isRequired: false, transformFunction: null }, _HidePaging: { classPropertyName: "_HidePaging", publicName: "HidePaging", isSignal: true, isRequired: false, transformFunction: null }, _HidePagingCount: { classPropertyName: "_HidePagingCount", publicName: "HidePagingCount", isSignal: true, isRequired: false, transformFunction: null }, _HidePagingButtons: { classPropertyName: "_HidePagingButtons", publicName: "HidePagingButtons", isSignal: true, isRequired: false, transformFunction: null }, ContextMenu: { classPropertyName: "ContextMenu", publicName: "ContextMenu", isSignal: false, isRequired: false, transformFunction: null }, ExportFileName: { classPropertyName: "ExportFileName", publicName: "ExportFileName", isSignal: true, isRequired: false, transformFunction: null }, _TableClass: { classPropertyName: "_TableClass", publicName: "TableClass", isSignal: true, isRequired: false, transformFunction: null }, ExportFunction: { classPropertyName: "ExportFunction", publicName: "ExportFunction", isSignal: false, isRequired: false, transformFunction: null }, ExportOnlyVisibleColumns: { classPropertyName: "ExportOnlyVisibleColumns", publicName: "ExportOnlyVisibleColumns", isSignal: true, isRequired: false, transformFunction: null }, HasHeaderGroup: { classPropertyName: "HasHeaderGroup", publicName: "HasHeaderGroup", isSignal: true, isRequired: false, transformFunction: null }, HasSecondaryHeaderGroup: { classPropertyName: "HasSecondaryHeaderGroup", publicName: "HasSecondaryHeaderGroup", isSignal: true, isRequired: false, transformFunction: null }, HeaderHidden: { classPropertyName: "HeaderHidden", publicName: "HeaderHidden", isSignal: true, isRequired: false, transformFunction: null }, BodyHidden: { classPropertyName: "BodyHidden", publicName: "BodyHidden", isSignal: true, isRequired: false, transformFunction: null }, SelectionDisabled: { classPropertyName: "SelectionDisabled", publicName: "SelectionDisabled", isSignal: true, isRequired: false, transformFunction: null }, SingleSelection: { classPropertyName: "SingleSelection", publicName: "SingleSelection", isSignal: true, isRequired: false, transformFunction: null }, RowClassAssigner: { classPropertyName: "RowClassAssigner", publicName: "RowClassAssigner", isSignal: false, isRequired: false, transformFunction: null }, _OrderByColumn: { classPropertyName: "_OrderByColumn", publicName: "OrderByColumn", isSignal: true, isRequired: false, transformFunction: null }, MultipleOrderingDirectives: { classPropertyName: "MultipleOrderingDirectives", publicName: "MultipleOrderingDirectives", isSignal: true, isRequired: false, transformFunction: null }, _HiddenColumns: { classPropertyName: "_HiddenColumns", publicName: "HiddenColumns", isSignal: true, isRequired: false, transformFunction: null }, _ColumnsOrdering: { classPropertyName: "_ColumnsOrdering", publicName: "ColumnsOrdering", isSignal: true, isRequired: false, transformFunction: null }, SearchView: { classPropertyName: "SearchView", publicName: "SearchView", isSignal: true, isRequired: false, transformFunction: null }, _SelectAll: { classPropertyName: "_SelectAll", publicName: "SelectAll", isSignal: true, isRequired: false, transformFunction: null }, _UseArrayModePaging: { classPropertyName: "_UseArrayModePaging", publicName: "UseArrayModePaging", isSignal: true, isRequired: false, transformFunction: null }, _DynamicRowColumnsDefinition: { classPropertyName: "_DynamicRowColumnsDefinition", publicName: "DynamicRowColumnsDefinition", isSignal: true, isRequired: false, transformFunction: null }, DynamicOperations: { classPropertyName: "DynamicOperations", publicName: "DynamicOperations", isSignal: true, isRequired: false, transformFunction: null }, Hierarchy: { classPropertyName: "Hierarchy", publicName: "Hierarchy", isSignal: true, isRequired: false, transformFunction: null }, _ParentKey: { classPropertyName: "_ParentKey", publicName: "ParentKey", isSignal: true, isRequired: false, transformFunction: null }, _OwnKey: { classPropertyName: "_OwnKey", publicName: "OwnKey", isSignal: true, isRequired: false, transformFunction: null }, _AutoSortHierarchy: { classPropertyName: "_AutoSortHierarchy", publicName: "AutoSortHierarchy", isSignal: true, isRequired: false, transformFunction: null }, StartsExpanded: { classPropertyName: "StartsExpanded", publicName: "StartsExpanded", isSignal: true, isRequired: false, transformFunction: null }, _SavePreferences: { classPropertyName: "_SavePreferences", publicName: "SavePreferences", isSignal: true, isRequired: false, transformFunction: null }, _DefaultAlignment: { classPropertyName: "_DefaultAlignment", publicName: "DefaultAlignment", isSignal: true, isRequired: false, transformFunction: null }, _PagingStyle: { classPropertyName: "_PagingStyle", publicName: "PagingStyle", isSignal: true, isRequired: false, transformFunction: null }, _RowGroupingPagingStyle: { classPropertyName: "_RowGroupingPagingStyle", publicName: "RowGroupingPagingStyle", isSignal: true, isRequired: false, transformFunction: null }, ItemSourceProperty: { classPropertyName: "ItemSourceProperty", publicName: "ItemSourceProperty", isSignal: true, isRequired: false, transformFunction: null }, _UseSelectionCache: { classPropertyName: "_UseSelectionCache", publicName: "UseSelectionCache", isSignal: true, isRequired: false, transformFunction: null }, _ShowItemGroupsColumns: { classPropertyName: "_ShowItemGroupsColumns", publicName: "ShowItemGroupsColumns", isSignal: true, isRequired: false, transformFunction: null }, Editable: { classPropertyName: "Editable", publicName: "Editable", isSignal: true, isRequired: false, transformFunction: null }, RangeSelection: { classPropertyName: "RangeSelection", publicName: "RangeSelection", isSignal: true, isRequired: false, transformFunction: null }, SearchThrottle: { classPropertyName: "SearchThrottle", publicName: "SearchThrottle", isSignal: true, isRequired: false, transformFunction: null }, _ArraymodeItemsPerPage: { classPropertyName: "_ArraymodeItemsPerPage", publicName: "ArraymodeItemsPerPage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { globalCheck: "globalCheckChange", autoUpdate: "autoUpdateChange", seconds: "secondsChange", researchInProgress: "researchInProgressChange", globalColVisCheck: "globalColVisCheckChange", onOrderChanged: "onOrderChanged", onSearchRequest: "onSearchRequest", onSelectionChanged: "onSelectionChanged", onRemoval: "onRemoval", onAbortRemoval: "onAbortRemoval", onModelChange: "onModelChange", onOpenContextMenu: "onOpenContextMenu", onCornerAction: "onCornerAction", onDynamicOperation: "onDynamicOperation" }, queries: [{ propertyName: "bodyRef", first: true, predicate: ["body"], descendants: true }, { propertyName: "headerRef", first: true, predicate: ["header"], descendants: true }, { propertyName: "headerGroupRef", first: true, predicate: ["headerGroup"], descendants: true }, { propertyName: "secondaryHeaderGroupRef", first: true, predicate: ["secondaryHeaderGroup"], descendants: true }, { propertyName: "EsTdEditorDirectives", predicate: EsTdEditorDirective }, { propertyName: "EsTdsDirective", predicate: EsTdDirective }, { propertyName: "EsThsDirective", predicate: EsThDirective }, { propertyName: "ThTdProvider", predicate: ThTdProvider }], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }, { propertyName: "exportDownloader", first: true, predicate: ["exportDownloader"], descendants: true }, { propertyName: "tableEmptyMenu", first: true, predicate: ["emptyMenu"], descendants: true, static: true }], ngImport: i0, template: "<!-- Patacchino di autoaggiornamento -->\r\n<div class=\"w-100\" *ngIf=\"AutoUpdate()\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate()\" maxlength=\"3\" class=\"form-control est-custom-input\" type=\"text\" [(ngModel)]=\"seconds\" [ngModelOptions]=\"{'standalone': true}\" /> {{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2\">\r\n <label class=\"est-switch\">\r\n <input type=\"checkbox\" style=\"width: 15px\" [(ngModel)]=\"autoUpdate\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"est-slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<div *ngIf=\"View\" class=\"est-relative\" [style.height]=\"Height()\" [style.background-color]=\"EmptySpaceBackgroundColor()\">\r\n <div *ngIf=\"FirstBind() && ShowLoadingOnBootstrap()\" class=\"est-loading-box\">\r\n <div class=\"est-loading-content\">\r\n <span class=\"fa fa-spinner fa-spin\"></span> {{'Performing Table bootstrap' | localize: lc}}...\r\n </div>\r\n </div>\r\n\r\n <div class=\"est-top-pager\" *ngIf=\"PagingStyle() == 'both' || PagingStyle() == 'top'\">\r\n <ng-container *ngTemplateOutlet=\"pagingElement\"></ng-container>\r\n </div>\r\n\r\n <div class=\"est-top-allselect\" *ngIf=\"canSelectAll() || (View?.selection || arraymodeSelection)?.all\">\r\n <span>{{ (selectedObjects() == -1 ? ('All the' | localize : lc) : ((selectedObjects() || 0) | number : '0.0-0' : lc.Locale)) + ' ' + ((selectedObjects() == 1 ? 'Object Selected' : 'Objects Selected') | localize : lc) }}</span> \r\n <span class=\"est-link est-inline\" (click)=\"selection_H.selectAllOrResetSelection()\">{{ (View?.selection || arraymodeSelection)?.all ? ('Reset Selection' | localize : lc) : ('Select Everything' | localize : lc)}}</span>\r\n </div>\r\n\r\n <div class=\"table-responsive datatable est-full-height {{ContainerClass()}}\" [style.max-height.px]=\"MaxHeight()\">\r\n <table class=\"{{ TableClass() }} est-margin-bottom-10 est\" style=\"background-color: white;\" [class.est-high-density]=\"HighCellDensity()\">\r\n <thead [hidden]=\"HeaderHidden() || FirstBind()\">\r\n <!-- Aggiungo il pezzo che gestisce la selezione di tutto se attivo da config -->\r\n <tr *ngIf=\"(SelectAll() && !SingleSelection()) || PagingStyle() != 'bottom'\">\r\n <th class=\"est-no-selection\" [attr.colspan]=\"Columns().Global\" [class.est-hidden-view]=\"!canSelectAll() && !(View?.selection || arraymodeSelection)?.all && PagingStyle() == 'bottom'\">\r\n <p class=\"est-hidden-view app-margin-bottom-0\">\u00A7</p>\r\n </th>\r\n </tr>\r\n\r\n <!-- Blocco header group -->\r\n <ng-container *ngIf=\"RowThGroups\">\r\n <tr *ngFor=\"let level of RowThGroups; trackBy: IDTrackBy\">\r\n <th *ngFor=\"let cell of level; trackBy: IDTrackBy\" [attr.colspan]=\"cell.Span\"\r\n [class.est-pinned-header]=\"cell.Pinned\" [class.est-col-min]=\"cell.Pinned\"\r\n [class.est-ltab-border]=\"cell.Borders\" [class.est-rtab-border]=\"cell.Borders\"\r\n class=\"est-text-center\">\r\n <ng-container *ngIf=\"cell.Pinned;\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border est-cell-group-padding\"></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!cell.Pinned && cell.Content; Else: cell.Template\">\r\n {{cell.Content}}\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!RowThGroups\">\r\n <tr *ngIf=\"HasHeaderGroup()\">\r\n <ng-container *ngTemplateOutlet=\"headerGroupRef\"></ng-container>\r\n <th *ngIf=\"Export()\"></th>\r\n </tr>\r\n\r\n <!-- Blocco header group secondario -->\r\n <tr *ngIf=\"HasSecondaryHeaderGroup()\">\r\n <ng-container *ngTemplateOutlet=\"secondaryHeaderGroupRef\"></ng-container>\r\n <th *ngIf=\"Export()\"></th>\r\n </tr>\r\n </ng-container>\r\n\r\n <!-- Blocco effettivo degli header -->\r\n <tr>\r\n <div id=\"thead->tr->debug_block\" style=\"display: none; white-space: pre-wrap;\">\r\n Selection: {{Selection()}}\r\n HasPinnedColumns: {{HasPinnedColumns()}}\r\n arrayMode: {{arrayMode()}}\r\n viewMode: {{viewMode()}}\r\n UseCustomCells: {{UseCustomCells()}}\r\n RowTHs: {{!!RowTHs}}\r\n RowTHs.length: {{RowTHs?.length}}\r\n DynamicRowColumnsDefinition: {{!!DynamicRowColumnsDefinition()}}\r\n </div>\r\n\r\n <!-- Aggiungo una checkbox se la selezione \u00E8 attiva -->\r\n <th class=\"est-col-min\" *ngIf=\"Selection() && !HasPinnedColumns()\">\r\n <input *ngIf=\"!SingleSelection()\" class=\"est-pointer\" type=\"checkbox\" style=\"width: 15px\" [disabled]=\"SelectionDisabled()\" [(ngModel)]=\"globalCheck\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"globalCheckChanged();\">\r\n </th>\r\n\r\n <!-- Header che valgono per view mode e array mode -->\r\n <ng-container *ngIf=\"arrayMode() || viewMode()\">\r\n <!-- In una tabella base prendo semplicemente i th scritti dall'utente nell'HTML -->\r\n <ng-container *ngIf=\"(!UseCustomCells() || !RowTHs || RowTHs.length == 0) && !DynamicRowColumnsDefinition()\">\r\n <ng-container *ngTemplateOutlet=\"headerRef\"></ng-container>\r\n </ng-container>\r\n\r\n <!-- Se ho un modello dinamico dell'oggetto creo le colonne in base alle propriet\u00E0 -->\r\n <ng-container *ngIf=\"(!UseCustomCells() || !RowTHs || RowTHs.length == 0) && DynamicRowColumnsDefinition()\">\r\n <th *ngFor=\"let operation of DynamicOperations(); trackBy: idTrackBy\" class=\"est-col-min est-no-side-padding\"></th>\r\n\r\n <ng-container *ngFor=\"let rowHeader of DynamicRowColumnsDefinition(); trackBy: PropertyNameTrackBy\">\r\n <ng-container *ngIf=\"rowHeader.Visible\">\r\n <th *ngIf=\"OrderByColumn()\" id=\"esth_{{rowHeader.PropertyName}}\" es-th=\"{{rowHeader.PropertyName}}\" class=\"{{UserDefinedDynamicCols() ? ((rowHeader.Clss || '') + (rowHeader.HeaderWraps ? '' : ' est-nowrap')) : ' est-nowrap'}}\" [Order]=\"rowHeader.DataOrder\" [Resizable]=\"ColumnsResizable()\" [Orderable]=\"rowHeader.Orderable\" [OrderBy]=\"OrderByColumn()\" [SearchInProgress]=\"researchInProgress()\" (onOrderChange)=\"thOrderChanged(rowHeader.PropertyName, $event)\">{{rowHeader.Description}}</th>\r\n <th *ngIf=\"!OrderByColumn()\" id=\"esth_{{rowHeader.PropertyName}}\" es-th=\"{{rowHeader.PropertyName}}\" class=\"{{UserDefinedDynamicCols() ? ((rowHeader.Clss || '') + (rowHeader.HeaderWraps ? '' : ' est-nowrap')) : ' est-nowrap'}}\" [Order]=\"rowHeader.DataOrder\" [Resizable]=\"ColumnsResizable()\" [Orderable]=\"rowHeader.Orderable\" [OrderBy]=\"OrderByColumn()\">{{rowHeader.Description}}</th>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Se non ho un modello dinamico ma invece delle celle custom, genero gli header in base ai row th -->\r\n <ng-container *ngIf=\"UseCustomCells() && RowTHs?.length > 0\">\r\n <th *ngIf=\"HasPinnedColumns()\" class=\"est-pinned-header est-col-min\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border est-simple-border-bottom\">\r\n <th class=\"est-col-min est-no-border\" *ngIf=\"Selection()\" [style.width.px]=\"20\">\r\n <input *ngIf=\"!SingleSelection()\" class=\"est-pointer\" style=\"width: 15px\" type=\"checkbox\" [disabled]=\"SelectionDisabled()\" [(ngModel)]=\"globalCheck\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"globalCheckChanged();\">\r\n </th>\r\n <ng-container *ngFor=\"let rowHeader of RowTHs; trackBy: IDAndOrderTrackBy\">\r\n <th *ngIf=\"rowHeader && rowHeader.Visible && rowHeader.Pinned\"\r\n [style.width.px]=\"rowHeader.PinnedWidth\"\r\n es-th=\"{{rowHeader.ID}}\"\r\n class=\"{{rowHeader.Class || ''}}\"\r\n [class.est-pinned-internal-header]=\"true\"\r\n [class.est-no-border]=\"true\"\r\n [class.est-nowrap]=\"!rowHeader.Wrap\"\r\n [Pinned]=\"true\"\r\n [Fixed]=\"rowHeader.Fixed\"\r\n [Order]=\"rowHeader.Order\"\r\n [Resizable]=\"ColumnsResizable()\"\r\n [Orderable]=\"rowHeader.Orderable\"\r\n [OrderBy]=\"OrderByColumn()\"\r\n [SearchInProgress]=\"researchInProgress()\"\r\n (onUnpinning)=\"columnMetadata_H.unpinColumn($event)\"\r\n (onOrderChange)=\"thOrderChanged(rowHeader.ID, $event)\">\r\n\r\n <ng-container *ngIf=\"rowHeader.Template\"><ng-container *ngTemplateOutlet=\"rowHeader.Template; context: { $implicit: rowHeader.Multi ? rowHeader.MultiContent : null } \"></ng-container></ng-container>\r\n <span *ngIf=\"!rowHeader.Template\">{{rowHeader.Content}}|{{rowHeader.Order}}</span>\r\n </th>\r\n </ng-container>\r\n </div>\r\n </th>\r\n <ng-container *ngFor=\"let rowHeader of RowTHs; trackBy: IDAndOrderTrackBy\">\r\n\r\n <div id=\"thead->tr->th->debug_block\" style=\"display: none; white-space: pre-wrap;\">\r\n rowHeader: {{!!rowHeader}}\r\n rowHeader.Visible: {{rowHeader?.Visible}}\r\n rowHeader.Pinned: {{rowHeader?.Pinned}}\r\n rowHeader.Template: {{!!rowHeader.Template}}\r\n rowHeader.Order: {{rowHeader.Order}}\r\n </div>\r\n\r\n <th *ngIf=\"rowHeader && rowHeader.Visible && !rowHeader.Pinned\"\r\n es-th=\"{{rowHeader.ID}}\"\r\n class=\"{{rowHeader.Class || ''}}\"\r\n [style.text-align]=\" rowHeader.Alignment || null\"\r\n [class.est-ltab-border]=\"rowHeader.LeftBorder\"\r\n [class.est-rtab-border]=\"rowHeader.RightBorder\"\r\n [class.est-nowrap]=\"!rowHeader.Wrap\"\r\n [Order]=\"rowHeader.Order\"\r\n [Resizable]=\"ColumnsResizable()\"\r\n [Orderable]=\"rowHeader.Orderable\"\r\n [OrderBy]=\"OrderByColumn()\"\r\n [SearchInProgress]=\"researchInProgress()\"\r\n (onOrderChange)=\"thOrderChanged(rowHeader.ID, $event)\">\r\n\r\n <ng-container *ngIf=\"rowHeader.Template\"><ng-container *ngTemplateOutlet=\"rowHeader.Template; context: { $implicit: rowHeader.Multi ? rowHeader.MultiContent : null }\"></ng-container></ng-container>\r\n <span *ngIf=\"!rowHeader.Template\">{{rowHeader.Content}}</span>\r\n </th>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!--Per l'eliminazione mi serve un header aggiuntivo-->\r\n <th *ngIf=\"Removal()\" [class.est-right-9]=\"Export() || HiddenColumns()\" class=\"est-col-min est-sticky-last-column\"><span class=\"fa fa-trash\"></span></th>\r\n\r\n <!--Per l'esportazione mi serve l'header extra da cui faccio uscire i 3 pallocchi-->\r\n <th *ngIf=\"Export() || HiddenColumns() || ColumnsOrdering() || CornerMenuOptions()\" class=\"est-table-dotted-menu est-sticky-last-column est-col-min text-sm-center\">\r\n\r\n <!-- Blocco con i 3 pallocchi che tira fuori il context menu delle operazioni -->\r\n <div class=\"btn-group\" container=\"body\" placement=\"bottom right\" dropdown #dropdown=\"bs-dropdown\" [autoClose]=\"true\">\r\n <span dropdownToggle class=\"fa fa-ellipsis-v est-fs-18 est-pointer est-padding-3\"></span>\r\n\r\n <div *dropdownMenu class=\"dropdown-menu dropdown-menu-right est-bring-to-front-strong\">\r\n <div class=\"est-pointer\">\r\n <a class=\"dropdown-item\" *ngIf=\"HiddenColumns() || ColumnsOrdering()\" (click)=\"columnMetadata_H.resetColumnVisSelection(); showDialog(changeColumnVisibilityModal, columnsDialog)\">\r\n <ng-container *ngIf=\"!HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Order' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && !ColumnsOrdering()\">\r\n {{'Columns Visibility' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Visibility and Order' | localize : lc}}\r\n </ng-container>\r\n </a>\r\n \r\n <ng-container *ac=\"exportGlobalAcl\">\r\n <a class=\"dropdown-item\" *ngIf=\"Export() && CSVExport()\" (click)=\"export_H.tryExport('CSV')\">{{'Export View' | localize : lc}} (CSV)</a>\r\n <a class=\"dropdown-item\" *ngIf=\"Export() && XLSXExport()\" (click)=\"export_H.tryExport('XLSX')\">{{'Export View' | localize : lc}} (XLSX)</a>\r\n </ng-container>\r\n\r\n <a class=\"dropdown-item\" *ngFor=\"let option of CornerMenuOptions(); trackBy: idTrackBy\" (click)=\"cornerActionClicked(option.id)\">{{option.description}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody [hidden]=\"BodyHidden() || FirstBind()\" [class.est-no-selection]=\"RangeSelection()\">\r\n <!--Con selection attiva richiamo il template che gestisce il context menu-->\r\n <ng-container *ngIf=\"Selection()\">\r\n <ng-container *ngTemplateOutlet=\"TBodySelection; context: { $implicit: { selDisabled: arrayMode() ? false : SelectionDisabled(), sel: Selection() }}\"></ng-container>\r\n </ng-container>\r\n\r\n <!--Senza selection richiamo il template che NON gestisce il context menu-->\r\n <ng-container *ngIf=\"!Selection()\">\r\n <ng-container *ngTemplateOutlet=\"TBody\"></ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div *ngIf=\"PagingStyle() == 'both' || PagingStyle() == 'bottom'\">\r\n <ng-container *ngTemplateOutlet=\"pagingElement\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<!-- Template che contiene tutte le info di paginazione in modo da poterlo replicare anche sopra -->\r\n<ng-template #pagingElement>\r\n <ng-container *ngIf=\"!FirstBind()\">\r\n <!-- Pulsanti avanti-indietro di paginazione -->\r\n <div *ngIf=\"PagerOptions.ShowPaging && PagerOptions.ShowButtons && (PagerOptions.PagerCount > 10 || PagerOptions.PagerCount == -1)\" class=\"pull-right btn-toolbar\">\r\n <ng-container *ngIf=\"PagerOptions.View?.pagingavailable || viewMode()\">\r\n <ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { Margin: true, ATP: addToPage.bind(this), GTP: goToPage.bind(this), Array: arrayPulsanti() }}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"arrayMode() && UseArrayModePaging() && !SearchView()\">\r\n <ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { Margin: true, ATP: arrayAddToPage.bind(this), GTP: arrayGoToPage.bind(this), Array: arrayPulsanti() }}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <!-- Paginatore dove appare la count e le opzioni di paginazione -->\r\n <div class=\"pull-right\" *ngIf=\"PagerOptions.ShowCount || PagerOptions.ShowPagingOptions\">\r\n <div class=\"est-mt-min-5\" *ngIf=\"PagerOptions.ShowPaging\">\r\n <es-paging *ngIf=\"!PagerOptions.UsesView\" [CountLabel]=\"CountLabel()\" [ShowPaging]=\"PagerOptions.ShowPagingOptions\" [ShowCount]=\"PagerOptions.ShowCount\" [PagerCount]=\"PagerOptions.PagerCount\" [WarnOnAll]=\"false\" [CurrentPageSize]=\"ArraymodeItemsPerPage()\" (pagingSelected)=\"items_H.refreshPaging($event)\"></es-paging>\r\n <es-paging *ngIf=\"PagerOptions.UsesView\" [CountLabel]=\"CountLabel()\" [ShowPaging]=\"PagerOptions.ShowPagingOptions\" [ShowCount]=\"PagerOptions.ShowCount\" [PagerCount]=\"PagerOptions.PagerCount\" [GroupMode]=\"PagerOptions.Searches == 'groups'\" [AllSearch]=\"AllSearch()\" [View]=\"PagerOptions.View\" (pagingSelected)=\"onItemsPerPageChanged($event);\"></es-paging>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<!-- Template che contiene i pulsanti per cambiare pagina -->\r\n<ng-template #pagingButtons let-options>\r\n <div class=\"est-flex\" [class.est-margin-left-50]=\"options.Margin\">\r\n <a class=\"btn\" class=\"est-page-prev app-pointer\" (click)=\"options.ATP(-1, options.separator)\"><span class=\"fa fa-chevron-left\"></span></a>\r\n <div *ngIf=\"options.Array\" class=\"est-inline\"><a *ngFor=\"let p of options.Array; trackBy: valTrackBy\" class=\"btn est-page-sel {{p.cssClass}}\" (click)=\"options.GTP(p.val, options.separator)\">{{p.val}}</a></div>\r\n <a class=\"btn\" class=\"est-page-next app-pointer\" (click)=\"options.ATP(1, options.separator)\"><span class=\"fa fa-chevron-right\"></span></a>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Questi due template rappresentano effettivamente il body della tabella. essendo il tr l'unica cosa che davvero cambia, il resto \u00E8 templatizzato -->\r\n<ng-template #TBodySelection let-templateOptions>\r\n <ng-container *ngFor=\"let item of boundSource(); let even = even; let i=index; trackBy: bodyTrackBy\">\r\n <tr *ngIf=\"item._visible || (!Hierarchy() && !ArrayGrouping())\"\r\n [class]=\"item._rowClass ? item._rowClass : ''\"\r\n [class.est-line-through]=\"item.removed || item.deleted\"\r\n [class.est-pointer]=\"!item.locked\"\r\n [class.est-white-selected]=\"item._selected && !item.locked\"\r\n [class.est-rg]=\"item._group\"\r\n [class.est-rg-sep]=\"item._sep\"\r\n [contextMenu]=\"!item.locked ? (ContextMenu || emptyMenu) : emptyMenu\" [contextMenuSubject]=\"item\"\r\n (click)=\"!RangeSelection() && handleRowClick($event, item, true)\"\r\n (contextmenu)=\"onRightClick();\">\r\n\r\n <td *ngIf=\"!item.locked && !item._sep && !HasPinnedColumns()\">\r\n <input type=\"checkbox\"\r\n style=\"width: 15px\"\r\n [disabled]=\"templateOptions.selDisabled\"\r\n [class.est-pointer]=\"!item.locked\"\r\n [(ngModel)]=\"item._selected\" name=\"check{{i}}\"\r\n (click)=\"$event.stopPropagation(); handleClick($event, item);\">\r\n </td>\r\n <td *ngIf=\"(item.locked || item._sep) && !HasPinnedColumns()\"></td>\r\n\r\n <ng-container *ngIf=\"item._sep\"><ng-container *ngTemplateOutlet=\"groupPager; context: { $implicit: item }\"></ng-container> </ng-container>\r\n\r\n <ng-container *ngIf=\"!item._sep\">\r\n <ng-container *ngTemplateOutlet=\"basicColumns; context: { $implicit: item, index: i }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"customCells; context: { $implicit: item, index: i, templateOptions: templateOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"bodyDeleteAndExport; context: { $implicit: { even: even, item: item, index: i }}\"></ng-container>\r\n </tr>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #TBody>\r\n <ng-container *ngFor=\"let item of boundSource(); let i = index, let even = even; trackBy: bodyTrackBy\">\r\n <tr *ngIf=\"item._visible || !Hierarchy()\"\r\n [class]=\"item._rowClass ? item._rowClass : ''\"\r\n [class.est-line-through]=\"item.removed || item.deleted\"\r\n [class.est-rg]=\"item._group\"\r\n [class.est-rg-sep]=\"item._sep\"\r\n (click)=\"handleRowClick($event, item, false)\">\r\n\r\n <ng-container *ngIf=\"item._sep\"><ng-container *ngTemplateOutlet=\"groupPager; context: { $implicit: item }\"></ng-container></ng-container>\r\n\r\n <ng-container *ngIf=\"!item._sep\">\r\n <ng-container *ngTemplateOutlet=\"basicColumns; context: { $implicit: item, index: i }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"customCells; context: { $implicit: item, index: i }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"bodyDeleteAndExport; context: { $implicit: { even: even, item: item, index: i }}\"></ng-container>\r\n </tr>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #groupPager let-item>\r\n <td class=\"est-pinned-body \" *ngIf=\"HasPinnedColumns()\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border est-cell-group-padding\"></div>\r\n </td>\r\n <td *ngIf=\"item._grouplevel > 1\" [attr.colspan]=\"item._grouplevel-1\"></td>\r\n <td [attr.colspan]=\"Columns().VisibleUnpinned - (item._grouplevel > 0 ? item._grouplevel - 1 : 0)\">\r\n <div class=\"est-rg-sep-flex-right\" *ngIf=\"RowGroupingPagingStyle() == 'right'\">\r\n <div class=\"est-rg-page\"><ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { separator: item, ATP: addToPageGroup.bind(this), GTP: goToPageGroup.bind(this), Array: item.buttons }}\"></ng-container></div>\r\n <div class=\"est-rg-ipp\" *ngIf=\"(item.searches == 'groups' ? item.view.groupcount : item.view.objectcount) > 10\"><es-paging [CountLabel]=\"CountLabel()\" [AllSearch]=\"AllSearch()\" [GroupMode]=\"item.searches == 'groups'\" [PagerCount]=\"item.searches == 'groups' ? item.view.groupcount : item.view.objectcount\" [View]=\"item.view\" (pagingSelected)=\"onGroupItemsPerPageChanged(item, $event);\"></es-paging></div>\r\n </div>\r\n\r\n <div class=\"est-rg-sep-flex-left\" *ngIf=\"RowGroupingPagingStyle() == 'left'\">\r\n <div class=\"est-rg-ipp\"><es-paging [AllSearch]=\"AllSearch()\" [CountLabel]=\"CountLabel()\" [GroupMode]=\"item.searches == 'groups'\" [PagerCount]=\"item.searches == 'groups' ? item.view.groupcount : item.view.objectcount\" [View]=\"item.view\" (pagingSelected)=\"onGroupItemsPerPageChanged(item, $event);\"></es-paging></div>\r\n <div class=\"est-rg-page\" *ngIf=\"(item.searches == 'groups' ? item.view.groupcount : item.view.objectcount) > 10\"><ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { separator: item, ATP: addToPageGroup.bind(this), GTP: goToPageGroup.bind(this), Array: item.buttons }}\"></ng-container></div>\r\n </div>\r\n </td>\r\n</ng-template>\r\n\r\n<!-- Questo template contiene la print condizionale su tabelle semplici, con header e body scritti a manazza -->\r\n<ng-template #basicColumns let-item let-index=\"index\">\r\n <ng-container *ngIf=\"(!UseCustomCells() || EmptyRowTds()) && !DynamicRowColumnsDefinition()\">\r\n <ng-container *ngTemplateOutlet=\"bodyRef; context : {$implicit: item, index: index}\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultEditor let-ctx>\r\n <!-- Un po' triste ma questo \u00E8 il metodo pi\u00F9 semplice per gestire il cambio di modello -->\r\n <!-- Manca da reimplementare il [FocusSubject]=\"FocusSubject\" -->\r\n <ng-container *ngIf=\"ctx.item.properties\">\r\n <form-adaptive [FormLayout]=\"false\" [Validation]=\"false\" [Configuration]=\"ctx.definition.EditorOptions\" [(ngModel)]=\"ctx.item.properties[ctx.definition.PropertyName]\" name=\"{{ ctx.definition.PropertyName + '_' + ctx.item._hash }}\" [Type]=\"ctx.definition.PropertyType\" [Source]=\"ctx.definition.PropertySource\" (inputFinalized)=\"ctx.finalizer()\"></form-adaptive>\r\n </ng-container>\r\n <ng-container *ngIf=\"!ctx.item.properties\">\r\n <form-adaptive [FormLayout]=\"false\" [Validation]=\"false\" [Configuration]=\"ctx.definition.EditorOptions\" [(ngModel)]=\"ctx.item[ctx.definition.PropertyName]\" name=\"{{ ctx.definition.PropertyName + '_' + ctx.item._hash }}\" [Type]=\"ctx.definition.PropertyType\" [Source]=\"ctx.definition.PropertySource\" (inputFinalized)=\"ctx.finalizer()\"></form-adaptive>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultEsTd let-ctx>\r\n <!-- TODO: Formattare il valore in base a valType.type -->\r\n <ng-container *ngIf=\"ctx.type == 'enum'\">\r\n {{ (ctx.value | est_lookup : ctx.definition.PropertySource).description }}\r\n </ng-container>\r\n <ng-container *ngIf=\"ctx.type != 'enum'\">\r\n {{ctx.value}}\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #customCells let-item let-opt=\"templateOptions\">\r\n <ng-container *ngIf=\"UseCustomCells() && !EmptyRowTds()\">\r\n <!-- Cella che aggrega tutte le colonne che devono essere pinnate -->\r\n <td *ngIf=\"HasPinnedColumns()\" class=\"est-pinned-body est-col-min\" [class.est-white-selected]=\"item._selected\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border\">\r\n <td *ngIf=\"!item.locked && !item._sep && Selection()\" class=\"est-no-border est-col-min\" [style.width.px]=\"20\">\r\n <input type=\"checkbox\" style=\"width: 15px\" [disabled]=\"opt.selDisabled\" [class.est-pointer]=\"!item.locked\" [(ngModel)]=\"item._selected\" name=\"check{{item._hash}}\" (click)=\"$event.stopPropagation(); handleClick($event, item);\">\r\n </td>\r\n <td class=\"est-no-border est-col-min\" *ngIf=\"(item.locked || item._sep) && Selection()\" [style.width.px]=\"20\"></td>\r\n\r\n <ng-container *ngFor=\"let cell of RowTDs[item._hash]; let index = index; trackBy: IDTrackBy\">\r\n <ng-container *ngIf=\"cell().Pinned\">\r\n <ng-container *ngTemplateOutlet=\"customTd; context: { \r\n $implicit: item, \r\n index: index, \r\n cell: cell, \r\n pinned: true, \r\n selectionStatus: selectionStatus[item._ordinal]?.[index],\r\n selectionStatusUp: selectionStatus[item._ordinal - 1]?.[index],\r\n selectionStatusDown: selectionStatus[item._ordinal + 1]?.[index],\r\n selectionStatusLeft: selectionStatus[item._ordinal]?.[index - 1],\r\n selectionStatusRight: selectionStatus[item._ordinal]?.[index + 1] \r\n };\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </td>\r\n\r\n <!-- Body effettivo della riga -->\r\n <ng-container *ngFor=\"let cell of RowTDs[item._hash]; let index = index; trackBy: IDTrackBy\">\r\n <ng-container *ngIf=\"!cell().Pinned;\">\r\n <ng-container *ngTemplateOutlet=\"customTd; context: { \r\n $implicit: item, \r\n index: index, \r\n cell: cell, \r\n pinned: false, \r\n selectionStatus: selectionStatus[item._ordinal]?.[index],\r\n selectionStatusUp: selectionStatus[item._ordinal - 1]?.[index],\r\n selectionStatusDown: selectionStatus[item._ordinal + 1]?.[index],\r\n selectionStatusLeft: selectionStatus[item._ordinal]?.[index - 1],\r\n selectionStatusRight: selectionStatus[item._ordinal]?.[index + 1] \r\n };\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </ng-container>\r\n</ng-template>\r\n\r\n<!-- Cella customizzata, elemento grafico base per la tabella -->\r\n<ng-template #customTd let-item let-cell=\"cell\" let-index=\"index\" let-pinned=\"pinned\" let-selStatus=\"selectionStatus\" let-selStatusUp=\"selectionStatusUp\" let-selStatusDown=\"selectionStatusDown\" let-selStatusLeft=\"selectionStatusLeft\" let-selStatusRight=\"selectionStatusRight\">\r\n\r\n <!-- Customizzazione per celle con icona (sono essenzialmente operazioni semplici e basta) -->\r\n <ng-container *ngIf=\"cell().IconClass && cell().Visible\">\r\n <ng-container *ngIf=\"!cell().ConditionField || (((item.properties || item) | est_propinsensitive : cell().ConditionField) == cell().ConditionValue)\">\r\n <td [class.est-no-right-padding]=\"index != DynamicOperations().length -1\" [class.est-no-left-padding]=\"index != 0\" class=\"est-col-min\"><span title=\"{{cell().Title}}\" class=\"{{cell().IconClass}} est-pointer\" (click)=\"dynamicOperation(item, cell().ID)\">{{cell().Content}}</span></td>\r\n </ng-container>\r\n <ng-container *ngIf=\"cell().ConditionField && (((item.properties || item) | est_propinsensitive : cell().ConditionField) != cell().ConditionValue)\">\r\n <td class=\"est-col-min est-no-side-padding\"></td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-----------------------------------------------------------------------------------------------------------------------\r\n - ATTENZIONE: Gli spazi fra gli Input di questo mega td sono significativi e dividono la dichiarazione in sezioni: -\r\n - . Generiche -\r\n - . Gestione allineamento e colori per la modalit\u00E0 report -\r\n - . Gestioni grafiche particolari per il Pinned -\r\n - . Gestione della selezione a singola cella in assenza di pinned -\r\n - . Gestione click classico e selezione multicella -\r\n ------------------------------------------------------------------------------------------------------------------------->\r\n\r\n <td *ngIf=\"!cell().IconClass && cell().Visible\"\r\n es-td=\"{{cell().Property || cell().ID}}\"\r\n id=\"estd_{{cell().Property || cell().ID}}_{{item._ordinal}}_{{index}}\"\r\n class=\"{{ cell().Class }}\"\r\n\r\n [Context]=\"item._hash\"\r\n [class.est-default-row-height]=\"!HighCellDensity()\"\r\n [class.est-white-selected]=\"item._selected\"\r\n [class.est-no-selection]=\"Editable() && cell().PropertyName\"\r\n [class.est-rg-hdr]=\"cell().GroupHeader\"\r\n [class.est-rg-agg]=\"cell().GroupAggregation\"\r\n [class.est-nowrap]=\"Hierarchy() || !cell().Wraps\"\r\n\r\n [style.text-align]=\"(!pinned && cell().Alignment) ? cell().Alignment : null\"\r\n [style.color]=\"(!pinned && item.forecolors && cell().PropAccessor) ? item.forecolors[cell().PropAccessor] : null\"\r\n [style.background-color]=\"(!pinned && item.backcolors && cell().PropAccessor) ? item.backcolors[cell().PropAccessor] : null\"\r\n \r\n [style.width.px]=\"pinned ? cell().PinnedWidth : null\"\r\n [class.est-no-border]=\"pinned\"\r\n\r\n [class.est-no-border-bottom]=\"selStatusDown?.tborder\"\r\n [class.est-no-border-top]=\"selStatusUp?.bborder\"\r\n [class.est-ltab-border]=\"cell().LeftBorder && !selStatus?.lborder && !selStatusLeft?.rborder\"\r\n [class.est-rtab-border]=\"cell().RightBorder && !selStatus?.rborder && !selStatusRight?.lborder\"\r\n \r\n [class.est-selected-cell]=\"selStatus?.selected\"\r\n [class.est-cell-lborder]=\" selStatus?.lborder\"\r\n [class.est-cell-rborder]=\" selStatus?.rborder\"\r\n [class.est-cell-tborder]=\" selStatus?.tborder\"\r\n [class.est-cell-bborder]=\" selStatus?.bborder\"\r\n [class.est-cell-lborder-tmp]=\"!cell().LeftBorder && !selStatus?.lborder && !selStatus?.loverlaps\"\r\n [class.est-cell-rborder-tmp]=\"!cell().RightBorder && !selStatus?.rborder && !selStatus?.roverlaps\"\r\n [class.est-cell-tborder-tmp]=\"!selStatus?.tborder && !selStatus?.toverlaps\"\r\n [class.est-cell-bborder-tmp]=\"!selStatus?.bborder && !selStatus?.boverlaps\"\r\n\r\n #cellRef\r\n\r\n (click)=\"dbClickEditOrSingleClickRowSelection($event, cell, item)\"\r\n\r\n (onCellGeneration)=\"registerCell($event, cell(), item, cellRef.el)\">\r\n\r\n <!-- \r\n @@@ Queste registrazioni le lascio fare all'interno di registerCell per evitare di attaccare la change detection automatica agli eventi, che rallenta di diosanto\r\n\r\n (mousedown)=\"mousedown($event, cell, item)\"\r\n (mouseenter)=\"mouseenter($event)\"\r\n (mouseup)=\"mouseup($event)\"\r\n -->\r\n\r\n <div [class.est-edit-hidden]=\"cell()._editing\" [class.est-pre]=\"!(Hierarchy() && index == 0)\">\r\n\r\n <ng-container #DEBUG>\r\n <!-- Debug box in caso la roba che viene scritta nelle celle non torni. Scirvere qui i propri binding per controllare cose -->\r\n </ng-container>\r\n\r\n <!-- 90% Template disponibile, quindi derivante da *td, controllo giusto che non sia un field particolare multi -->\r\n <ng-container *ngIf=\"cell().Template\">\r\n <ng-container *ngIf=\"!cell().Multi\"><ng-container *ngTemplateOutlet=\"cell().Template; context: { $implicit: item }\"></ng-container></ng-container>\r\n <span *ngIf=\"cell().Multi\"><ng-container *ngTemplateOutlet=\"cell().Template; context: { $implicit: (item[cell().MultiProp] ? item[cell().MultiProp][cell().MultiIndex] : {}) }\"></ng-container></span>\r\n </ng-container>\r\n\r\n <!-- 8%\r\n Template non disponibile, pu\u00F2 venire da\r\n RoutePath in caso sia un link di una tabella dinamica\r\n PropAccessor in caso di ReportRow (quindi oggetti con \"values\" dentro),\r\n o Renderer se modalit\u00E0 dinamica/standard (in qual caso il renderer \u00E8 il default)\r\n -->\r\n <ng-container *ngIf=\"!cell().Template && !cell().Multi && !cell().Content\">\r\n <a *ngIf=\"cell().RoutePath\" [routerLink]=\"item | est_routerlink : cell().RoutePath : cell().RouteParameterProperties\" class=\"est-link\" [innerHTML]=\"item.properties ? item.properties[cell().PropertyName] : item[cell().PropertyName]\"></a>\r\n\r\n <span *ngIf=\"cell().PropAccessor\">\r\n {{(item.values? item.values[cell().PropAccessor] : item[cell().PropAccessor]) | est_format: cell().Format }}\r\n </span>\r\n\r\n <ng-container *ngIf=\"!cell().PropAccessor && !cell().RoutePath\">\r\n <ng-container *ngTemplateOutlet=\"cell().PropertyName | est_renderer: { name: cell().RendererName, src: EsTdsDirective, fallback: defaultEsTd }; context: { $implicit: { definition: cell(), value: item.properties ? item.properties[cell().PropertyName] : item[cell().PropertyName], type: cell().PropertyType} }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- 1% Se in modalit\u00E0 gerarchica metto il td per navigare la gerarchia -->\r\n <ng-container *ngIf=\"Hierarchy() && index == 0\"><ng-container *ngTemplateOutlet=\"HierarchyNavigator; context: { $implicit: item }\"></ng-container></ng-container>\r\n\r\n <!-- 1% Content programmatico per le casistiche di Row Grouping ecc... -->\r\n <ng-container *ngIf=\"cell().Content\">\r\n {{cell().Content}}\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"cell()._editing\" class=\"est-mt-min-5\">\r\n <ng-container *ngTemplateOutlet=\"cell().PropertyName | est_editor: { name: cell().EditorName, src: EsTdEditorDirectives, fallback: defaultEditor}; context: { $implicit: { definition: cell(), columnIndex: index, item: item, finalizer: finalizeUserEdit.bind(this, cell, item, index) } }\"></ng-container>\r\n </div>\r\n </td>\r\n</ng-template>\r\n\r\n<!-- Navigatore della gerarchia di una view gerarchica, con tasto per espandere e collassare -->\r\n<ng-template #HierarchyNavigator let-item>\r\n <span *ngIf=\"!item.parent\" class=\"fa fa-chevron-down\" style=\"visibility:hidden\"></span>\r\n <span *ngIf=\"item.parent && item._expanded\" class=\"fa fa-chevron-down est-pointer est-no-selection\" (click)=\"hierarchyMode_H.collapseParent(item[this.OwnKey()])\"></span>\r\n <span *ngIf=\"item.parent && !item._expanded\" class=\"fa fa-chevron-up est-pointer est-no-selection\" (click)=\"hierarchyMode_H.expandParent(item[this.OwnKey()])\"></span>\r\n \r\n</ng-template>\r\n\r\n<!-- Pulsanti di eliminazione/undo eliminazione ed esportazione che vanno in fondo ad un record edlla tabella -->\r\n<ng-template #bodyDeleteAndExport let-options>\r\n <ng-container *ngIf=\"Removal() && !RemovalCondition()\">\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"!(options.item.removed || options.item.deleted)\"><span class=\"fa fa-remove est-pointer text-danger\" [hidden]=\"options.item.removable != undefined && !options.item.removable\" (click)=\"onRemoval.emit(options.item)\"></span></td>\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"(options.item.removed || options.item.deleted)\"><span class=\"fa fa-undo text-warning est-pointer\" (click)=\"onAbortRemoval.emit(options.item)\"></span></td>\r\n </ng-container>\r\n <ng-container *ngIf=\"Removal() && RemovalCondition()\">\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"!(options.item.removed || options.item.deleted) && options.item[RemovalCondition()]\"><span class=\"fa fa-remove est-pointer text-danger\" [hidden]=\"options.item.removable != undefined && !options.item.removable\" (click)=\"onRemoval.emit(options.item)\"></span></td>\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"(options.item.removed || options.item.deleted) && options.item[RemovalCondition()]\"><span class=\"fa fa-undo text-warning est-pointer\" (click)=\"onAbortRemoval.emit(options.item)\"></span></td>\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"!options.item[RemovalCondition()]\"><span class=\"fa fa-remove est-hidden-view\"></span></td>\r\n </ng-container>\r\n <td *ngIf=\"Export() || HiddenColumns() || CornerMenuOptions()\" class=\"est-sticky-last-column{{options.even && !Hierarchy() ? '-alt' : ''}}\"></td>\r\n</ng-template>\r\n\r\n<!-- Context menu vuoto default per tutte le tabella che non ce l'hanno, in modo che al click destro appaia \"nessuna op disponibile\" -->\r\n<context-menu #emptyMenu>\r\n <ng-template contextMenuItem><span><em>{{'No operations available' | localize : lc}}...</em></span></ng-template>\r\n</context-menu>\r\n\r\n<!-- Modal per cambiare posizione e visibilit\u00E0 delle colonne dell'es-table -->\r\n<div bsModal #changeColumnVisibilityModal=\"bs-modal\" #columnsDialog class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" cdkDrag>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header est-pointer\" cdkDragHandle>\r\n <h5 class=\"modal-title pull-left\">\r\n <ng-container *ngIf=\"!HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Order' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && !ColumnsOrdering()\">\r\n {{'Columns Visibility' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Visibility and Order' | localize : lc}}\r\n </ng-container>\r\n </h5>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"hideDialog(changeColumnVisibilityModal);\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div *ngIf=\"!TMPColumnsList || TMPColumnsList.length == 0\" class=\"card card-info est-padding-10 est-margin-bottom-0\">\r\n {{'There are no columns configured to be hidden/shown in this view' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"TMPColumnsList && TMPColumnsList.length > 0\" style=\"max-height:500px; overflow-y:auto\">\r\n <!--Aaaaaaah la tristezza... qui mi servirebbe l'es-table per facilitare la selezione multipla ecc... peccato che se la linko qui entro in un loop impressionante-->\r\n <table class=\"table table-striped table-sm est-margin-bottom-0\">\r\n <thead>\r\n <tr>\r\n <th class=\"est-col-min\" *ngIf=\"HiddenColumns()\">\r\n <input class=\"est-pointer\" type=\"checkbox\" style=\"width: 15px\" [(ngModel)]=\"globalColVisCheck\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"columnMetadata_H.globalColVisCheckChanged();\">\r\n </th>\r\n <!-- <th class=\"est-col-min\" *ngIf=\"ColumnsOrdering\"></th> -->\r\n <th class=\"est-col-min est-nowrap\">{{'Column Name' | localize : lc}}</th>\r\n <!--Filler-->\r\n <th></th>\r\n <!-- Pinner -->\r\n <th *ngIf=\"DirectivesBased()\" class=\"est-col-min\"></th>\r\n </tr>\r\n </thead>\r\n <tbody\r\n cdkDropList\r\n [cdkDropListData]=\"TMPColumnsList\"\r\n (cdkDropListDropped)=\"columnMetadata_H.columnReordered($event)\"\r\n [cdkDropListSortPredicate]=\"columnMetadata_H.sortPredicate.bind(this.columnMetadata_H)\"\r\n class=\"est-dropbox\">\r\n\r\n <tr *ngFor=\"let item of TMPColumnsList; let i = index; let last = last; trackBy: idTrackBy\"\r\n class=\"est-pointer est-droplist\"\r\n [class.est-white-selected]=\"lastSelectedItemID == item.id\"\r\n [class.est-no-selection]=\"!item.visible\"\r\n cdkDrag\r\n [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"!ColumnsOrdering || item.fixed || item.pinned\">\r\n\r\n <td *ngIf=\"HiddenColumns()\">\r\n <input type=\"checkbox\" style=\"width: 15px\" [class.est-hidden-view]=\"item.fixed\" class=\"est-pointer\" [(ngModel)]=\"item.visible\" name=\"visible{{i}}\" (ngModelChange)=\"columnMetadata_H.updateGlobalColVisCheck();\" />\r\n </td>\r\n <td class=\"est-nowrap drag-visible\" (click)=\"columnMetadata_H.columnClicked(item);\">\r\n <ng-container *ngIf=\"item.template\">\r\n <!-- Padri -->\r\n <span *ngIf=\"item.parentTemplates && item.parentTemplates.length > 0\" class=\"est-fw-bold est-fs-13\">\r\n ( \r\n <ng-container *ngFor=\"let parent of item.parentTemplates; let last=last; trackBy: idTrackBy\">\r\n <ng-container *ngIf=\"parent.tmpl\"><ng-container *ngTemplateOutlet=\"parent.tmpl\"></ng-container></ng-container>\r\n <ng-container *ngIf=\"parent.content\">{{parent.content}}</ng-container>\r\n <span *ngIf=\"!last\"> - </span>\r\n </ng-container>\r\n )\r\n </span>\r\n <!-- Template header originale -->\r\n <ng-container *ngTemplateOutlet=\"item.template; context: { $implicit: item.multi ? item.multiContent : null }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!item.template\">{{item.description}}</ng-container>\r\n </td>\r\n <!--Filler-->\r\n <td (click)=\"columnMetadata_H.columnClicked(item);\"></td>\r\n <!-- Pinner -->\r\n <td *ngIf=\"DirectivesBased() && ColumnsPinnable()\"><span *ngIf=\"!item.fixed && item.pinnable\" class=\"fa fa-thumb-tack\" [class.text-success]=\"item.pinned\" (click)=\"columnMetadata_H.pinOrUnpinColumn(item)\"></span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary est-margin-right-10\" (click)=\"lastSelectedItemID = null; hideDialog(changeColumnVisibilityModal);\">{{'Close' | localize : lc}}</button>\r\n <button type=\"button\" [disabled]=\"!TMPColumnsList || TMPColumnsList.length == 0\" class=\"btn btn-primary\" (click)=\"columnMetadata_H.confirmColumnVisibilitySelection() && hideDialog(changeColumnVisibilityModal)\">{{'Confirm' | localize : lc}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.est-loading-box{height:200px;text-align:center;position:relative;background:#ccc}.est-loading-content{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:35px}.est-scrollable{max-height:600px;overflow:auto}.est-head-resizer{top:0;right:0;bottom:0;width:7px;position:absolute;cursor:col-resize}.est-head-resizer-internal{inset:0 0 0 6px;width:1px;position:absolute;background-color:#ccc;height:100%}.est-pointer{cursor:pointer}.est-high-density th,.est-high-density td{padding:0;padding-left:.2rem;padding-right:.2rem}.est-default-row-height{height:31px}.est-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.est-edit-hidden{visibility:hidden;height:1px!important}.est-hidden-view{visibility:hidden}.est-no-border{border:none!important}.est-nowrap{white-space:nowrap}.est-mt-min-5{margin-top:-5px}.est-white-selected{background-color:#ddd!important}.est-line-through{text-decoration:line-through}.est-no-side-padding{padding-left:0;padding-right:0}.est-no-left-padding,.est-no-right-padding{padding-left:0}.est-col-min{width:1px}.est-margin-bottom-0{margin-bottom:0!important}.est-margin-right-10{margin-right:10px!important}.est-right-9{right:9px!important}.est-table-dotted-menu{padding:0 0 2px!important;color:#999}.est-fs-18{font-size:18px}.est-fs-14,.est-fs-13{font-size:14px}.est-fw-bold{font-weight:700}.est-padding-3{padding:3px!important}.est-page-container{position:relative}.est-bring-to-front-strong{z-index:99999999!important}.est-switch{position:relative;display:inline-block;width:30px;height:17px;margin-bottom:0;margin-right:5px;margin-left:5px}.est-switch input{display:none}.est-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.est-slider:before{position:absolute;content:\"\";height:13px;width:13px;left:3px;bottom:2px;background-color:#fff;-webkit-transition:.4s;transition:.4s}input:checked+.est-slider{background-color:#2196f3}input:focus+.est-slider{box-shadow:0 0 1px #2196f3}input:checked+.est-slider:before{-webkit-transform:translateX(11px);-ms-transform:translateX(11px);transform:translate(11px)}.est-slider.round{border-radius:10px}.est-slider.round:before{border-radius:50%}.est-custom-input{width:30px;display:inline;padding:1px;height:20px}.est-row-lvl-1 td:first-child{padding-left:5px}.est-row-lvl-2 td:first-child{padding-left:20px}.est-row-lvl-3 td:first-child{padding-left:35px}.est-row-lvl-4 td:first-child{padding-left:50px}.est-row-lvl-5 td:first-child{padding-left:65px}.est-row-lvl-6 td:first-child{padding-left:80px}.est-row-lvl-7 td:first-child{padding-left:95px}.est-row-lvl-8 td:first-child{padding-left:110px}.est-row-lvl-9 td:first-child{padding-left:125px}.est-row-lvl-10 td:first-child{padding-left:140px}.est-row-lvl-11 td:first-child{padding-left:155px}.est-row-lvl-12 td:first-child{padding-left:170px}.est-row-lvl-13 td:first-child{padding-left:185px}.est-row-lvl-14 td:first-child{padding-left:200px}.est-row-lvl-15 td:first-child{padding-left:215px}.est-row-lvl-16 td:first-child{padding-left:230px}.est-row-lvl-17 td:first-child{padding-left:245px}.est-row-lvl-18 td:first-child{padding-left:260px}.est-row-lvl-19 td:first-child{padding-left:275px}.est-row-lvl-20 td:first-child{padding-left:290px}.est-row-lvl-21 td:first-child{padding-left:305px}.est-row-lvl-22 td:first-child{padding-left:320px}.est-row-lvl-23 td:first-child{padding-left:335px}.est-row-lvl-24 td:first-child{padding-left:350px}.est-row-lvl-25 td:first-child{padding-left:365px}.est-row-lvl-26 td:first-child{padding-left:380px}.est-row-lvl-27 td:first-child{padding-left:395px}.est-row-lvl-28 td:first-child{padding-left:410px}.est-row-lvl-29 td:first-child{padding-left:425px}.est-row-lvl-30 td:first-child{padding-left:440px}.est-row-lvl-31 td:first-child{padding-left:455px}.est-row-lvl-32 td:first-child{padding-left:470px}.est-row-lvl-33 td:first-child{padding-left:485px}.est-row-lvl-34 td:first-child{padding-left:500px}.est-row-lvl-35 td:first-child{padding-left:515px}.est-row-lvl-36 td:first-child{padding-left:530px}.est-row-lvl-37 td:first-child{padding-left:545px}.est-row-lvl-38 td:first-child{padding-left:560px}.est-row-lvl-39 td:first-child{padding-left:575px}.est-row-lvl-40 td:first-child{padding-left:590px}.est-row-lvl-41 td:first-child{padding-left:605px}.est-row-lvl-42 td:first-child{padding-left:620px}.est-row-lvl-43 td:first-child{padding-left:635px}.est-row-lvl-44 td:first-child{padding-left:650px}.est-row-lvl-45 td:first-child{padding-left:665px}.est-row-lvl-46 td:first-child{padding-left:680px}.est-row-lvl-47 td:first-child{padding-left:695px}.est-row-lvl-48 td:first-child{padding-left:710px}.est-row-lvl-49 td:first-child{padding-left:725px}.est-row-lvl-50 td:first-child{padding-left:740px}.est-row-lvl-51 td:first-child{padding-left:755px}.est-row-lvl-52 td:first-child{padding-left:770px}.est-row-lvl-53 td:first-child{padding-left:785px}.est-row-lvl-54 td:first-child{padding-left:800px}.est-row-lvl-55 td:first-child{padding-left:815px}.est-row-lvl-56 td:first-child{padding-left:830px}.est-row-lvl-57 td:first-child{padding-left:845px}.est-row-lvl-58 td:first-child{padding-left:860px}.est-row-lvl-59 td:first-child{padding-left:875px}.est-row-lvl-60 td:first-child{padding-left:890px}.est-row-lvl-61 td:first-child{padding-left:905px}.est-row-lvl-62 td:first-child{padding-left:920px}.est-row-lvl-63 td:first-child{padding-left:935px}.est-row-lvl-64 td:first-child{padding-left:950px}.est-row-lvl-65 td:first-child{padding-left:965px}.est-row-lvl-66 td:first-child{padding-left:980px}.est-row-lvl-67 td:first-child{padding-left:995px}.est-row-lvl-68 td:first-child{padding-left:1010px}.est-row-lvl-69 td:first-child{padding-left:1025px}.est-row-lvl-70 td:first-child{padding-left:1040px}.est-row-lvl-71 td:first-child{padding-left:1055px}.est-row-lvl-72 td:first-child{padding-left:1070px}.est-row-lvl-73 td:first-child{padding-left:1085px}.est-row-lvl-74 td:first-child{padding-left:1100px}.est-row-lvl-75 td:first-child{padding-left:1115px}.est-row-lvl-76 td:first-child{padding-left:1130px}.est-row-lvl-77 td:first-child{padding-left:1145px}.est-row-lvl-78 td:first-child{padding-left:1160px}.est-row-lvl-79 td:first-child{padding-left:1175px}.est-row-lvl-80 td:first-child{padding-left:1190px}.est-row-lvl-81 td:first-child{padding-left:1205px}.est-row-lvl-82 td:first-child{padding-left:1220px}.est-row-lvl-83 td:first-child{padding-left:1235px}.est-row-lvl-84 td:first-child{padding-left:1250px}.est-row-lvl-85 td:first-child{padding-left:1265px}.est-row-lvl-86 td:first-child{padding-left:1280px}.est-row-lvl-87 td:first-child{padding-left:1295px}.est-row-lvl-88 td:first-child{padding-left:1310px}.est-row-lvl-89 td:first-child{padding-left:1325px}.est-row-lvl-90 td:first-child{padding-left:1340px}.est-row-lvl-91 td:first-child{padding-left:1355px}.est-row-lvl-92 td:first-child{padding-left:1370px}.est-row-lvl-93 td:first-child{padding-left:1385px}.est-row-lvl-94 td:first-child{padding-left:1400px}.est-row-lvl-95 td:first-child{padding-left:1415px}.est-row-lvl-96 td:first-child{padding-left:1430px}.est-row-lvl-97 td:first-child{padding-left:1445px}.est-row-lvl-98 td:first-child{padding-left:1460px}.est-row-lvl-99 td:first-child{padding-left:1475px}.est-relative{position:relative}.est-top-pager{position:absolute;right:0;top:5px}.est-top-allselect{position:absolute;left:0;top:5px;font-weight:700}.est-padding-10{padding:10px!important}.est-margin-right-50{margin-right:50px}.est-margin-left-50{margin-left:50px}.est-quick-unpin{color:#000;margin-left:8px;font-size:14px;transform:rotate(45deg)}.est-full-height{height:100%}.est-page-sel{margin-left:3px;margin-right:3px;padding:0 5px;font-size:inherit;border:none;border-radius:15px}.est-page-sel:not(.app-white-text){color:#000!important}.est-page-prev,.est-page-next{color:#000;padding:2px 0 0;font-size:inherit}.est-pinned-header{background-color:#fff;left:0;top:0;position:sticky;z-index:1;border-bottom:1px solid #dee2e6!important;padding:0!important}.est-simple-border-bottom{border-bottom:1px solid #dee2e6}.est-pinned-internal-header{border-top:0;border-bottom:0px solid #dee2e6}.est-pinned-border{border-right:2px solid #dee2e6!important}.est-cell-padding{padding:.3rem}.est-pinned-body{background-color:#fff;left:0;position:sticky;z-index:1;border-top:1px solid #dee2e6!important;padding:0!important}.est-inline{display:inline!important}.est-inline-block{display:inline-block!important}.est-link{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block}.est-link:hover{color:#23527c!important;cursor:pointer;text-decoration:underline!important}.est-sticky-last-column{right:-1px;position:sticky;z-index:0;background-color:#fff}.est-sticky-last-column-alt{right:-1px;position:sticky;z-index:0;background-color:#f2f2f2}.est-ltab-border{border-left:1px solid #bbb!important}.est-rtab-border{border-right:1px solid #bbb!important}.est-no-border-bottom{border-bottom:none!important}.est-no-border-top{border-top:none!important}.est-cell-group-padding{padding:calc(.3rem + 1px);position:absolute;top:0;left:0;height:100%;width:100%}.est-selected-cell{background-color:#2196f333!important}.est-cell-lborder{border-left:1.02px solid rgb(33,150,243)!important}.est-cell-tborder{border-top:1.02px solid rgb(33,150,243)!important}.est-cell-rborder{border-right:1.02px solid rgb(33,150,243)!important}.est-cell-bborder{border-bottom:1.02px solid rgb(33,150,243)!important}.est-cell-lborder-tmp{border-left:1.02px solid transparent!important}.est-cell-tborder-tmp{border-top:1.02px solid transparent!important}.est-cell-rborder-tmp{border-right:1.02px solid transparent!important}.est-cell-bborder-tmp{border-bottom:1.02px solid transparent!important}.est-margin-bottom-10{margin-bottom:10px}.est-text-center{text-align:center}.est-flex{display:flex}.est-rg-sep-flex-right{display:flex;flex-direction:row-reverse;width:100%;margin:-5px}.est-rg-sep-flex-left{display:flex;flex-direction:row;width:100%;margin:-5px}.est-rg-hdr{font-weight:700}.est-rg-agg{font-style:italic}.est-rg{background-color:#7777!important}.est-rg-sep{font-size:12px;padding-right:20px!important;background-color:#bbbb!important}.est-rg-ipp{text-align:left;display:inline-flex;margin-right:25px}.est-rg-page{text-align:right;display:inline-flex;font-size:inherit;padding-top:5px}.est-droplist.cdk-drag-placeholder{opacity:0}.est-droplist.cdk-drag-preview{z-index:999999999!important;opacity:1;box-sizing:border-box;border-radius:4px;background-color:#fff;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.est-droplist.cdk-drag-preview td:not(.drag-visible){visibility:hidden}.est-droplist.cdk-drag-preview td.drag-visible{padding-top:3px}.est-droplist.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.est-droplist.cdk-drop-list-dragging .est-dropbox:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.est-pre{white-space:pre}.est val-datetime .mat-form-field-appearance-outline .mat-form-field-infix input{margin-bottom:3px!important;min-width:130px!important}.est .mat-form-field-flex{height:29px!important;padding:0!important}.est .mat-form-field-flex .mat-form-field-outline{color:#00f}.est .mat-form-field-flex .mat-form-field-outline .mat-form-field-outline-start{border-left:none;border-top:none;border-radius:0}.est .mat-form-field-flex .mat-form-field-outline .mat-form-field-outline-end{border-top:none;border-radius:0;border-right:none}.est .mat-form-field-wrapper{height:20px;min-height:20px!important;margin-top:0!important}.est .mat-form-field-infix{width:100%!important;min-width:50px!important}.est .mat-form-field-infix select.mat-input-element{margin-top:-5px!important}.est .mat-datepicker-input{margin-bottom:3px!important}.est input{height:20px;padding-top:0!important}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i10.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "directive", type: i11.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i11.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i11.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i12.ContextMenuAttachDirective, selector: "[contextMenu]", inputs: ["contextMenuSubject", "contextMenu"] }, { kind: "component", type: i12.ContextMenuComponent, selector: "context-menu", inputs: ["menuClass", "autoFocus", "useBootstrap4", "disabled"], outputs: ["close", "open"] }, { kind: "directive", type: i12.ContextMenuItemDirective, selector: "[contextMenuItem]", inputs: ["subMenu", "divider", "enabled", "passive", "visible"], outputs: ["execute"] }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i13.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i14.EsFormAdaptiveComponent, selector: "form-adaptive", inputs: ["Type", "TypeMissingMessage", "SearchFunction", "Precision", "TypePattern"] }, { kind: "directive", type: i15.AccessControlDirective, selector: "[ac]", inputs: ["ac", "acAbsolute"] }, { kind: "component", type: EsTablePagerComponent, selector: "es-paging", inputs: ["CurrentPageSize", "View", "WarnOnAll", "AllSearch", "DefaultAll", "GroupMode", "GroupCount", "CountLabel", "ShowCount", "ShowPaging", "PagerCount", "Hidden"], outputs: ["pagingSelected"] }, { kind: "component", type: EsTh, selector: "[es-th]", inputs: ["es-th", "Order", "Orderable", "Display", "Resizable", "Pinned", "SearchInProgress", "OrderBy", "Wrap", "Fixed", "Template", "Visible"], outputs: ["onOrderChange", "onUnpinning"] }, { kind: "component", type: EsTd, selector: "[es-td]", inputs: ["es-td", "Context"], outputs: ["onCellGeneration"] }, { kind: "pipe", type: i8.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }, { kind: "pipe", type: EstFormatPipe, name: "est_format" }, { kind: "pipe", type: EstLookupPipe, name: "est_lookup" }, { kind: "pipe", type: EstRouterLinkPipe, name: "est_routerlink" }, { kind: "pipe", type: EstRendererPipe, name: "est_renderer" }, { kind: "pipe", type: EstEditorPipe, name: "est_editor" }, { kind: "pipe", type: EstPropInsensitivePipe, name: "est_propinsensitive" }], viewProviders: [{ provide: LocalizationService, useClass: EsTableLoc }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5698
5698
|
}
|
|
5699
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5699
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTableComponent, decorators: [{
|
|
5700
5700
|
type: Component,
|
|
5701
5701
|
args: [{ selector: 'es-table', viewProviders: [{ provide: LocalizationService, useClass: EsTableLoc }], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "<!-- Patacchino di autoaggiornamento -->\r\n<div class=\"w-100\" *ngIf=\"AutoUpdate()\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate()\" maxlength=\"3\" class=\"form-control est-custom-input\" type=\"text\" [(ngModel)]=\"seconds\" [ngModelOptions]=\"{'standalone': true}\" /> {{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2\">\r\n <label class=\"est-switch\">\r\n <input type=\"checkbox\" style=\"width: 15px\" [(ngModel)]=\"autoUpdate\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"est-slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<div *ngIf=\"View\" class=\"est-relative\" [style.height]=\"Height()\" [style.background-color]=\"EmptySpaceBackgroundColor()\">\r\n <div *ngIf=\"FirstBind() && ShowLoadingOnBootstrap()\" class=\"est-loading-box\">\r\n <div class=\"est-loading-content\">\r\n <span class=\"fa fa-spinner fa-spin\"></span> {{'Performing Table bootstrap' | localize: lc}}...\r\n </div>\r\n </div>\r\n\r\n <div class=\"est-top-pager\" *ngIf=\"PagingStyle() == 'both' || PagingStyle() == 'top'\">\r\n <ng-container *ngTemplateOutlet=\"pagingElement\"></ng-container>\r\n </div>\r\n\r\n <div class=\"est-top-allselect\" *ngIf=\"canSelectAll() || (View?.selection || arraymodeSelection)?.all\">\r\n <span>{{ (selectedObjects() == -1 ? ('All the' | localize : lc) : ((selectedObjects() || 0) | number : '0.0-0' : lc.Locale)) + ' ' + ((selectedObjects() == 1 ? 'Object Selected' : 'Objects Selected') | localize : lc) }}</span> \r\n <span class=\"est-link est-inline\" (click)=\"selection_H.selectAllOrResetSelection()\">{{ (View?.selection || arraymodeSelection)?.all ? ('Reset Selection' | localize : lc) : ('Select Everything' | localize : lc)}}</span>\r\n </div>\r\n\r\n <div class=\"table-responsive datatable est-full-height {{ContainerClass()}}\" [style.max-height.px]=\"MaxHeight()\">\r\n <table class=\"{{ TableClass() }} est-margin-bottom-10 est\" style=\"background-color: white;\" [class.est-high-density]=\"HighCellDensity()\">\r\n <thead [hidden]=\"HeaderHidden() || FirstBind()\">\r\n <!-- Aggiungo il pezzo che gestisce la selezione di tutto se attivo da config -->\r\n <tr *ngIf=\"(SelectAll() && !SingleSelection()) || PagingStyle() != 'bottom'\">\r\n <th class=\"est-no-selection\" [attr.colspan]=\"Columns().Global\" [class.est-hidden-view]=\"!canSelectAll() && !(View?.selection || arraymodeSelection)?.all && PagingStyle() == 'bottom'\">\r\n <p class=\"est-hidden-view app-margin-bottom-0\">\u00A7</p>\r\n </th>\r\n </tr>\r\n\r\n <!-- Blocco header group -->\r\n <ng-container *ngIf=\"RowThGroups\">\r\n <tr *ngFor=\"let level of RowThGroups; trackBy: IDTrackBy\">\r\n <th *ngFor=\"let cell of level; trackBy: IDTrackBy\" [attr.colspan]=\"cell.Span\"\r\n [class.est-pinned-header]=\"cell.Pinned\" [class.est-col-min]=\"cell.Pinned\"\r\n [class.est-ltab-border]=\"cell.Borders\" [class.est-rtab-border]=\"cell.Borders\"\r\n class=\"est-text-center\">\r\n <ng-container *ngIf=\"cell.Pinned;\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border est-cell-group-padding\"></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!cell.Pinned && cell.Content; Else: cell.Template\">\r\n {{cell.Content}}\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!RowThGroups\">\r\n <tr *ngIf=\"HasHeaderGroup()\">\r\n <ng-container *ngTemplateOutlet=\"headerGroupRef\"></ng-container>\r\n <th *ngIf=\"Export()\"></th>\r\n </tr>\r\n\r\n <!-- Blocco header group secondario -->\r\n <tr *ngIf=\"HasSecondaryHeaderGroup()\">\r\n <ng-container *ngTemplateOutlet=\"secondaryHeaderGroupRef\"></ng-container>\r\n <th *ngIf=\"Export()\"></th>\r\n </tr>\r\n </ng-container>\r\n\r\n <!-- Blocco effettivo degli header -->\r\n <tr>\r\n <div id=\"thead->tr->debug_block\" style=\"display: none; white-space: pre-wrap;\">\r\n Selection: {{Selection()}}\r\n HasPinnedColumns: {{HasPinnedColumns()}}\r\n arrayMode: {{arrayMode()}}\r\n viewMode: {{viewMode()}}\r\n UseCustomCells: {{UseCustomCells()}}\r\n RowTHs: {{!!RowTHs}}\r\n RowTHs.length: {{RowTHs?.length}}\r\n DynamicRowColumnsDefinition: {{!!DynamicRowColumnsDefinition()}}\r\n </div>\r\n\r\n <!-- Aggiungo una checkbox se la selezione \u00E8 attiva -->\r\n <th class=\"est-col-min\" *ngIf=\"Selection() && !HasPinnedColumns()\">\r\n <input *ngIf=\"!SingleSelection()\" class=\"est-pointer\" type=\"checkbox\" style=\"width: 15px\" [disabled]=\"SelectionDisabled()\" [(ngModel)]=\"globalCheck\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"globalCheckChanged();\">\r\n </th>\r\n\r\n <!-- Header che valgono per view mode e array mode -->\r\n <ng-container *ngIf=\"arrayMode() || viewMode()\">\r\n <!-- In una tabella base prendo semplicemente i th scritti dall'utente nell'HTML -->\r\n <ng-container *ngIf=\"(!UseCustomCells() || !RowTHs || RowTHs.length == 0) && !DynamicRowColumnsDefinition()\">\r\n <ng-container *ngTemplateOutlet=\"headerRef\"></ng-container>\r\n </ng-container>\r\n\r\n <!-- Se ho un modello dinamico dell'oggetto creo le colonne in base alle propriet\u00E0 -->\r\n <ng-container *ngIf=\"(!UseCustomCells() || !RowTHs || RowTHs.length == 0) && DynamicRowColumnsDefinition()\">\r\n <th *ngFor=\"let operation of DynamicOperations(); trackBy: idTrackBy\" class=\"est-col-min est-no-side-padding\"></th>\r\n\r\n <ng-container *ngFor=\"let rowHeader of DynamicRowColumnsDefinition(); trackBy: PropertyNameTrackBy\">\r\n <ng-container *ngIf=\"rowHeader.Visible\">\r\n <th *ngIf=\"OrderByColumn()\" id=\"esth_{{rowHeader.PropertyName}}\" es-th=\"{{rowHeader.PropertyName}}\" class=\"{{UserDefinedDynamicCols() ? ((rowHeader.Clss || '') + (rowHeader.HeaderWraps ? '' : ' est-nowrap')) : ' est-nowrap'}}\" [Order]=\"rowHeader.DataOrder\" [Resizable]=\"ColumnsResizable()\" [Orderable]=\"rowHeader.Orderable\" [OrderBy]=\"OrderByColumn()\" [SearchInProgress]=\"researchInProgress()\" (onOrderChange)=\"thOrderChanged(rowHeader.PropertyName, $event)\">{{rowHeader.Description}}</th>\r\n <th *ngIf=\"!OrderByColumn()\" id=\"esth_{{rowHeader.PropertyName}}\" es-th=\"{{rowHeader.PropertyName}}\" class=\"{{UserDefinedDynamicCols() ? ((rowHeader.Clss || '') + (rowHeader.HeaderWraps ? '' : ' est-nowrap')) : ' est-nowrap'}}\" [Order]=\"rowHeader.DataOrder\" [Resizable]=\"ColumnsResizable()\" [Orderable]=\"rowHeader.Orderable\" [OrderBy]=\"OrderByColumn()\">{{rowHeader.Description}}</th>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Se non ho un modello dinamico ma invece delle celle custom, genero gli header in base ai row th -->\r\n <ng-container *ngIf=\"UseCustomCells() && RowTHs?.length > 0\">\r\n <th *ngIf=\"HasPinnedColumns()\" class=\"est-pinned-header est-col-min\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border est-simple-border-bottom\">\r\n <th class=\"est-col-min est-no-border\" *ngIf=\"Selection()\" [style.width.px]=\"20\">\r\n <input *ngIf=\"!SingleSelection()\" class=\"est-pointer\" style=\"width: 15px\" type=\"checkbox\" [disabled]=\"SelectionDisabled()\" [(ngModel)]=\"globalCheck\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"globalCheckChanged();\">\r\n </th>\r\n <ng-container *ngFor=\"let rowHeader of RowTHs; trackBy: IDAndOrderTrackBy\">\r\n <th *ngIf=\"rowHeader && rowHeader.Visible && rowHeader.Pinned\"\r\n [style.width.px]=\"rowHeader.PinnedWidth\"\r\n es-th=\"{{rowHeader.ID}}\"\r\n class=\"{{rowHeader.Class || ''}}\"\r\n [class.est-pinned-internal-header]=\"true\"\r\n [class.est-no-border]=\"true\"\r\n [class.est-nowrap]=\"!rowHeader.Wrap\"\r\n [Pinned]=\"true\"\r\n [Fixed]=\"rowHeader.Fixed\"\r\n [Order]=\"rowHeader.Order\"\r\n [Resizable]=\"ColumnsResizable()\"\r\n [Orderable]=\"rowHeader.Orderable\"\r\n [OrderBy]=\"OrderByColumn()\"\r\n [SearchInProgress]=\"researchInProgress()\"\r\n (onUnpinning)=\"columnMetadata_H.unpinColumn($event)\"\r\n (onOrderChange)=\"thOrderChanged(rowHeader.ID, $event)\">\r\n\r\n <ng-container *ngIf=\"rowHeader.Template\"><ng-container *ngTemplateOutlet=\"rowHeader.Template; context: { $implicit: rowHeader.Multi ? rowHeader.MultiContent : null } \"></ng-container></ng-container>\r\n <span *ngIf=\"!rowHeader.Template\">{{rowHeader.Content}}|{{rowHeader.Order}}</span>\r\n </th>\r\n </ng-container>\r\n </div>\r\n </th>\r\n <ng-container *ngFor=\"let rowHeader of RowTHs; trackBy: IDAndOrderTrackBy\">\r\n\r\n <div id=\"thead->tr->th->debug_block\" style=\"display: none; white-space: pre-wrap;\">\r\n rowHeader: {{!!rowHeader}}\r\n rowHeader.Visible: {{rowHeader?.Visible}}\r\n rowHeader.Pinned: {{rowHeader?.Pinned}}\r\n rowHeader.Template: {{!!rowHeader.Template}}\r\n rowHeader.Order: {{rowHeader.Order}}\r\n </div>\r\n\r\n <th *ngIf=\"rowHeader && rowHeader.Visible && !rowHeader.Pinned\"\r\n es-th=\"{{rowHeader.ID}}\"\r\n class=\"{{rowHeader.Class || ''}}\"\r\n [style.text-align]=\" rowHeader.Alignment || null\"\r\n [class.est-ltab-border]=\"rowHeader.LeftBorder\"\r\n [class.est-rtab-border]=\"rowHeader.RightBorder\"\r\n [class.est-nowrap]=\"!rowHeader.Wrap\"\r\n [Order]=\"rowHeader.Order\"\r\n [Resizable]=\"ColumnsResizable()\"\r\n [Orderable]=\"rowHeader.Orderable\"\r\n [OrderBy]=\"OrderByColumn()\"\r\n [SearchInProgress]=\"researchInProgress()\"\r\n (onOrderChange)=\"thOrderChanged(rowHeader.ID, $event)\">\r\n\r\n <ng-container *ngIf=\"rowHeader.Template\"><ng-container *ngTemplateOutlet=\"rowHeader.Template; context: { $implicit: rowHeader.Multi ? rowHeader.MultiContent : null }\"></ng-container></ng-container>\r\n <span *ngIf=\"!rowHeader.Template\">{{rowHeader.Content}}</span>\r\n </th>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!--Per l'eliminazione mi serve un header aggiuntivo-->\r\n <th *ngIf=\"Removal()\" [class.est-right-9]=\"Export() || HiddenColumns()\" class=\"est-col-min est-sticky-last-column\"><span class=\"fa fa-trash\"></span></th>\r\n\r\n <!--Per l'esportazione mi serve l'header extra da cui faccio uscire i 3 pallocchi-->\r\n <th *ngIf=\"Export() || HiddenColumns() || ColumnsOrdering() || CornerMenuOptions()\" class=\"est-table-dotted-menu est-sticky-last-column est-col-min text-sm-center\">\r\n\r\n <!-- Blocco con i 3 pallocchi che tira fuori il context menu delle operazioni -->\r\n <div class=\"btn-group\" container=\"body\" placement=\"bottom right\" dropdown #dropdown=\"bs-dropdown\" [autoClose]=\"true\">\r\n <span dropdownToggle class=\"fa fa-ellipsis-v est-fs-18 est-pointer est-padding-3\"></span>\r\n\r\n <div *dropdownMenu class=\"dropdown-menu dropdown-menu-right est-bring-to-front-strong\">\r\n <div class=\"est-pointer\">\r\n <a class=\"dropdown-item\" *ngIf=\"HiddenColumns() || ColumnsOrdering()\" (click)=\"columnMetadata_H.resetColumnVisSelection(); showDialog(changeColumnVisibilityModal, columnsDialog)\">\r\n <ng-container *ngIf=\"!HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Order' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && !ColumnsOrdering()\">\r\n {{'Columns Visibility' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Visibility and Order' | localize : lc}}\r\n </ng-container>\r\n </a>\r\n \r\n <ng-container *ac=\"exportGlobalAcl\">\r\n <a class=\"dropdown-item\" *ngIf=\"Export() && CSVExport()\" (click)=\"export_H.tryExport('CSV')\">{{'Export View' | localize : lc}} (CSV)</a>\r\n <a class=\"dropdown-item\" *ngIf=\"Export() && XLSXExport()\" (click)=\"export_H.tryExport('XLSX')\">{{'Export View' | localize : lc}} (XLSX)</a>\r\n </ng-container>\r\n\r\n <a class=\"dropdown-item\" *ngFor=\"let option of CornerMenuOptions(); trackBy: idTrackBy\" (click)=\"cornerActionClicked(option.id)\">{{option.description}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody [hidden]=\"BodyHidden() || FirstBind()\" [class.est-no-selection]=\"RangeSelection()\">\r\n <!--Con selection attiva richiamo il template che gestisce il context menu-->\r\n <ng-container *ngIf=\"Selection()\">\r\n <ng-container *ngTemplateOutlet=\"TBodySelection; context: { $implicit: { selDisabled: arrayMode() ? false : SelectionDisabled(), sel: Selection() }}\"></ng-container>\r\n </ng-container>\r\n\r\n <!--Senza selection richiamo il template che NON gestisce il context menu-->\r\n <ng-container *ngIf=\"!Selection()\">\r\n <ng-container *ngTemplateOutlet=\"TBody\"></ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div *ngIf=\"PagingStyle() == 'both' || PagingStyle() == 'bottom'\">\r\n <ng-container *ngTemplateOutlet=\"pagingElement\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n<!-- Template che contiene tutte le info di paginazione in modo da poterlo replicare anche sopra -->\r\n<ng-template #pagingElement>\r\n <ng-container *ngIf=\"!FirstBind()\">\r\n <!-- Pulsanti avanti-indietro di paginazione -->\r\n <div *ngIf=\"PagerOptions.ShowPaging && PagerOptions.ShowButtons && (PagerOptions.PagerCount > 10 || PagerOptions.PagerCount == -1)\" class=\"pull-right btn-toolbar\">\r\n <ng-container *ngIf=\"PagerOptions.View?.pagingavailable || viewMode()\">\r\n <ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { Margin: true, ATP: addToPage.bind(this), GTP: goToPage.bind(this), Array: arrayPulsanti() }}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"arrayMode() && UseArrayModePaging() && !SearchView()\">\r\n <ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { Margin: true, ATP: arrayAddToPage.bind(this), GTP: arrayGoToPage.bind(this), Array: arrayPulsanti() }}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <!-- Paginatore dove appare la count e le opzioni di paginazione -->\r\n <div class=\"pull-right\" *ngIf=\"PagerOptions.ShowCount || PagerOptions.ShowPagingOptions\">\r\n <div class=\"est-mt-min-5\" *ngIf=\"PagerOptions.ShowPaging\">\r\n <es-paging *ngIf=\"!PagerOptions.UsesView\" [CountLabel]=\"CountLabel()\" [ShowPaging]=\"PagerOptions.ShowPagingOptions\" [ShowCount]=\"PagerOptions.ShowCount\" [PagerCount]=\"PagerOptions.PagerCount\" [WarnOnAll]=\"false\" [CurrentPageSize]=\"ArraymodeItemsPerPage()\" (pagingSelected)=\"items_H.refreshPaging($event)\"></es-paging>\r\n <es-paging *ngIf=\"PagerOptions.UsesView\" [CountLabel]=\"CountLabel()\" [ShowPaging]=\"PagerOptions.ShowPagingOptions\" [ShowCount]=\"PagerOptions.ShowCount\" [PagerCount]=\"PagerOptions.PagerCount\" [GroupMode]=\"PagerOptions.Searches == 'groups'\" [AllSearch]=\"AllSearch()\" [View]=\"PagerOptions.View\" (pagingSelected)=\"onItemsPerPageChanged($event);\"></es-paging>\r\n </div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<!-- Template che contiene i pulsanti per cambiare pagina -->\r\n<ng-template #pagingButtons let-options>\r\n <div class=\"est-flex\" [class.est-margin-left-50]=\"options.Margin\">\r\n <a class=\"btn\" class=\"est-page-prev app-pointer\" (click)=\"options.ATP(-1, options.separator)\"><span class=\"fa fa-chevron-left\"></span></a>\r\n <div *ngIf=\"options.Array\" class=\"est-inline\"><a *ngFor=\"let p of options.Array; trackBy: valTrackBy\" class=\"btn est-page-sel {{p.cssClass}}\" (click)=\"options.GTP(p.val, options.separator)\">{{p.val}}</a></div>\r\n <a class=\"btn\" class=\"est-page-next app-pointer\" (click)=\"options.ATP(1, options.separator)\"><span class=\"fa fa-chevron-right\"></span></a>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Questi due template rappresentano effettivamente il body della tabella. essendo il tr l'unica cosa che davvero cambia, il resto \u00E8 templatizzato -->\r\n<ng-template #TBodySelection let-templateOptions>\r\n <ng-container *ngFor=\"let item of boundSource(); let even = even; let i=index; trackBy: bodyTrackBy\">\r\n <tr *ngIf=\"item._visible || (!Hierarchy() && !ArrayGrouping())\"\r\n [class]=\"item._rowClass ? item._rowClass : ''\"\r\n [class.est-line-through]=\"item.removed || item.deleted\"\r\n [class.est-pointer]=\"!item.locked\"\r\n [class.est-white-selected]=\"item._selected && !item.locked\"\r\n [class.est-rg]=\"item._group\"\r\n [class.est-rg-sep]=\"item._sep\"\r\n [contextMenu]=\"!item.locked ? (ContextMenu || emptyMenu) : emptyMenu\" [contextMenuSubject]=\"item\"\r\n (click)=\"!RangeSelection() && handleRowClick($event, item, true)\"\r\n (contextmenu)=\"onRightClick();\">\r\n\r\n <td *ngIf=\"!item.locked && !item._sep && !HasPinnedColumns()\">\r\n <input type=\"checkbox\"\r\n style=\"width: 15px\"\r\n [disabled]=\"templateOptions.selDisabled\"\r\n [class.est-pointer]=\"!item.locked\"\r\n [(ngModel)]=\"item._selected\" name=\"check{{i}}\"\r\n (click)=\"$event.stopPropagation(); handleClick($event, item);\">\r\n </td>\r\n <td *ngIf=\"(item.locked || item._sep) && !HasPinnedColumns()\"></td>\r\n\r\n <ng-container *ngIf=\"item._sep\"><ng-container *ngTemplateOutlet=\"groupPager; context: { $implicit: item }\"></ng-container> </ng-container>\r\n\r\n <ng-container *ngIf=\"!item._sep\">\r\n <ng-container *ngTemplateOutlet=\"basicColumns; context: { $implicit: item, index: i }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"customCells; context: { $implicit: item, index: i, templateOptions: templateOptions }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"bodyDeleteAndExport; context: { $implicit: { even: even, item: item, index: i }}\"></ng-container>\r\n </tr>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #TBody>\r\n <ng-container *ngFor=\"let item of boundSource(); let i = index, let even = even; trackBy: bodyTrackBy\">\r\n <tr *ngIf=\"item._visible || !Hierarchy()\"\r\n [class]=\"item._rowClass ? item._rowClass : ''\"\r\n [class.est-line-through]=\"item.removed || item.deleted\"\r\n [class.est-rg]=\"item._group\"\r\n [class.est-rg-sep]=\"item._sep\"\r\n (click)=\"handleRowClick($event, item, false)\">\r\n\r\n <ng-container *ngIf=\"item._sep\"><ng-container *ngTemplateOutlet=\"groupPager; context: { $implicit: item }\"></ng-container></ng-container>\r\n\r\n <ng-container *ngIf=\"!item._sep\">\r\n <ng-container *ngTemplateOutlet=\"basicColumns; context: { $implicit: item, index: i }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"customCells; context: { $implicit: item, index: i }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"bodyDeleteAndExport; context: { $implicit: { even: even, item: item, index: i }}\"></ng-container>\r\n </tr>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #groupPager let-item>\r\n <td class=\"est-pinned-body \" *ngIf=\"HasPinnedColumns()\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border est-cell-group-padding\"></div>\r\n </td>\r\n <td *ngIf=\"item._grouplevel > 1\" [attr.colspan]=\"item._grouplevel-1\"></td>\r\n <td [attr.colspan]=\"Columns().VisibleUnpinned - (item._grouplevel > 0 ? item._grouplevel - 1 : 0)\">\r\n <div class=\"est-rg-sep-flex-right\" *ngIf=\"RowGroupingPagingStyle() == 'right'\">\r\n <div class=\"est-rg-page\"><ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { separator: item, ATP: addToPageGroup.bind(this), GTP: goToPageGroup.bind(this), Array: item.buttons }}\"></ng-container></div>\r\n <div class=\"est-rg-ipp\" *ngIf=\"(item.searches == 'groups' ? item.view.groupcount : item.view.objectcount) > 10\"><es-paging [CountLabel]=\"CountLabel()\" [AllSearch]=\"AllSearch()\" [GroupMode]=\"item.searches == 'groups'\" [PagerCount]=\"item.searches == 'groups' ? item.view.groupcount : item.view.objectcount\" [View]=\"item.view\" (pagingSelected)=\"onGroupItemsPerPageChanged(item, $event);\"></es-paging></div>\r\n </div>\r\n\r\n <div class=\"est-rg-sep-flex-left\" *ngIf=\"RowGroupingPagingStyle() == 'left'\">\r\n <div class=\"est-rg-ipp\"><es-paging [AllSearch]=\"AllSearch()\" [CountLabel]=\"CountLabel()\" [GroupMode]=\"item.searches == 'groups'\" [PagerCount]=\"item.searches == 'groups' ? item.view.groupcount : item.view.objectcount\" [View]=\"item.view\" (pagingSelected)=\"onGroupItemsPerPageChanged(item, $event);\"></es-paging></div>\r\n <div class=\"est-rg-page\" *ngIf=\"(item.searches == 'groups' ? item.view.groupcount : item.view.objectcount) > 10\"><ng-container *ngTemplateOutlet=\"pagingButtons; context: { $implicit: { separator: item, ATP: addToPageGroup.bind(this), GTP: goToPageGroup.bind(this), Array: item.buttons }}\"></ng-container></div>\r\n </div>\r\n </td>\r\n</ng-template>\r\n\r\n<!-- Questo template contiene la print condizionale su tabelle semplici, con header e body scritti a manazza -->\r\n<ng-template #basicColumns let-item let-index=\"index\">\r\n <ng-container *ngIf=\"(!UseCustomCells() || EmptyRowTds()) && !DynamicRowColumnsDefinition()\">\r\n <ng-container *ngTemplateOutlet=\"bodyRef; context : {$implicit: item, index: index}\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultEditor let-ctx>\r\n <!-- Un po' triste ma questo \u00E8 il metodo pi\u00F9 semplice per gestire il cambio di modello -->\r\n <!-- Manca da reimplementare il [FocusSubject]=\"FocusSubject\" -->\r\n <ng-container *ngIf=\"ctx.item.properties\">\r\n <form-adaptive [FormLayout]=\"false\" [Validation]=\"false\" [Configuration]=\"ctx.definition.EditorOptions\" [(ngModel)]=\"ctx.item.properties[ctx.definition.PropertyName]\" name=\"{{ ctx.definition.PropertyName + '_' + ctx.item._hash }}\" [Type]=\"ctx.definition.PropertyType\" [Source]=\"ctx.definition.PropertySource\" (inputFinalized)=\"ctx.finalizer()\"></form-adaptive>\r\n </ng-container>\r\n <ng-container *ngIf=\"!ctx.item.properties\">\r\n <form-adaptive [FormLayout]=\"false\" [Validation]=\"false\" [Configuration]=\"ctx.definition.EditorOptions\" [(ngModel)]=\"ctx.item[ctx.definition.PropertyName]\" name=\"{{ ctx.definition.PropertyName + '_' + ctx.item._hash }}\" [Type]=\"ctx.definition.PropertyType\" [Source]=\"ctx.definition.PropertySource\" (inputFinalized)=\"ctx.finalizer()\"></form-adaptive>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultEsTd let-ctx>\r\n <!-- TODO: Formattare il valore in base a valType.type -->\r\n <ng-container *ngIf=\"ctx.type == 'enum'\">\r\n {{ (ctx.value | est_lookup : ctx.definition.PropertySource).description }}\r\n </ng-container>\r\n <ng-container *ngIf=\"ctx.type != 'enum'\">\r\n {{ctx.value}}\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #customCells let-item let-opt=\"templateOptions\">\r\n <ng-container *ngIf=\"UseCustomCells() && !EmptyRowTds()\">\r\n <!-- Cella che aggrega tutte le colonne che devono essere pinnate -->\r\n <td *ngIf=\"HasPinnedColumns()\" class=\"est-pinned-body est-col-min\" [class.est-white-selected]=\"item._selected\">\r\n <div [style.width.px]=\"PinnedContainerWidth()\" class=\"est-pinned-border\">\r\n <td *ngIf=\"!item.locked && !item._sep && Selection()\" class=\"est-no-border est-col-min\" [style.width.px]=\"20\">\r\n <input type=\"checkbox\" style=\"width: 15px\" [disabled]=\"opt.selDisabled\" [class.est-pointer]=\"!item.locked\" [(ngModel)]=\"item._selected\" name=\"check{{item._hash}}\" (click)=\"$event.stopPropagation(); handleClick($event, item);\">\r\n </td>\r\n <td class=\"est-no-border est-col-min\" *ngIf=\"(item.locked || item._sep) && Selection()\" [style.width.px]=\"20\"></td>\r\n\r\n <ng-container *ngFor=\"let cell of RowTDs[item._hash]; let index = index; trackBy: IDTrackBy\">\r\n <ng-container *ngIf=\"cell().Pinned\">\r\n <ng-container *ngTemplateOutlet=\"customTd; context: { \r\n $implicit: item, \r\n index: index, \r\n cell: cell, \r\n pinned: true, \r\n selectionStatus: selectionStatus[item._ordinal]?.[index],\r\n selectionStatusUp: selectionStatus[item._ordinal - 1]?.[index],\r\n selectionStatusDown: selectionStatus[item._ordinal + 1]?.[index],\r\n selectionStatusLeft: selectionStatus[item._ordinal]?.[index - 1],\r\n selectionStatusRight: selectionStatus[item._ordinal]?.[index + 1] \r\n };\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </td>\r\n\r\n <!-- Body effettivo della riga -->\r\n <ng-container *ngFor=\"let cell of RowTDs[item._hash]; let index = index; trackBy: IDTrackBy\">\r\n <ng-container *ngIf=\"!cell().Pinned;\">\r\n <ng-container *ngTemplateOutlet=\"customTd; context: { \r\n $implicit: item, \r\n index: index, \r\n cell: cell, \r\n pinned: false, \r\n selectionStatus: selectionStatus[item._ordinal]?.[index],\r\n selectionStatusUp: selectionStatus[item._ordinal - 1]?.[index],\r\n selectionStatusDown: selectionStatus[item._ordinal + 1]?.[index],\r\n selectionStatusLeft: selectionStatus[item._ordinal]?.[index - 1],\r\n selectionStatusRight: selectionStatus[item._ordinal]?.[index + 1] \r\n };\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </ng-container>\r\n</ng-template>\r\n\r\n<!-- Cella customizzata, elemento grafico base per la tabella -->\r\n<ng-template #customTd let-item let-cell=\"cell\" let-index=\"index\" let-pinned=\"pinned\" let-selStatus=\"selectionStatus\" let-selStatusUp=\"selectionStatusUp\" let-selStatusDown=\"selectionStatusDown\" let-selStatusLeft=\"selectionStatusLeft\" let-selStatusRight=\"selectionStatusRight\">\r\n\r\n <!-- Customizzazione per celle con icona (sono essenzialmente operazioni semplici e basta) -->\r\n <ng-container *ngIf=\"cell().IconClass && cell().Visible\">\r\n <ng-container *ngIf=\"!cell().ConditionField || (((item.properties || item) | est_propinsensitive : cell().ConditionField) == cell().ConditionValue)\">\r\n <td [class.est-no-right-padding]=\"index != DynamicOperations().length -1\" [class.est-no-left-padding]=\"index != 0\" class=\"est-col-min\"><span title=\"{{cell().Title}}\" class=\"{{cell().IconClass}} est-pointer\" (click)=\"dynamicOperation(item, cell().ID)\">{{cell().Content}}</span></td>\r\n </ng-container>\r\n <ng-container *ngIf=\"cell().ConditionField && (((item.properties || item) | est_propinsensitive : cell().ConditionField) != cell().ConditionValue)\">\r\n <td class=\"est-col-min est-no-side-padding\"></td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-----------------------------------------------------------------------------------------------------------------------\r\n - ATTENZIONE: Gli spazi fra gli Input di questo mega td sono significativi e dividono la dichiarazione in sezioni: -\r\n - . Generiche -\r\n - . Gestione allineamento e colori per la modalit\u00E0 report -\r\n - . Gestioni grafiche particolari per il Pinned -\r\n - . Gestione della selezione a singola cella in assenza di pinned -\r\n - . Gestione click classico e selezione multicella -\r\n ------------------------------------------------------------------------------------------------------------------------->\r\n\r\n <td *ngIf=\"!cell().IconClass && cell().Visible\"\r\n es-td=\"{{cell().Property || cell().ID}}\"\r\n id=\"estd_{{cell().Property || cell().ID}}_{{item._ordinal}}_{{index}}\"\r\n class=\"{{ cell().Class }}\"\r\n\r\n [Context]=\"item._hash\"\r\n [class.est-default-row-height]=\"!HighCellDensity()\"\r\n [class.est-white-selected]=\"item._selected\"\r\n [class.est-no-selection]=\"Editable() && cell().PropertyName\"\r\n [class.est-rg-hdr]=\"cell().GroupHeader\"\r\n [class.est-rg-agg]=\"cell().GroupAggregation\"\r\n [class.est-nowrap]=\"Hierarchy() || !cell().Wraps\"\r\n\r\n [style.text-align]=\"(!pinned && cell().Alignment) ? cell().Alignment : null\"\r\n [style.color]=\"(!pinned && item.forecolors && cell().PropAccessor) ? item.forecolors[cell().PropAccessor] : null\"\r\n [style.background-color]=\"(!pinned && item.backcolors && cell().PropAccessor) ? item.backcolors[cell().PropAccessor] : null\"\r\n \r\n [style.width.px]=\"pinned ? cell().PinnedWidth : null\"\r\n [class.est-no-border]=\"pinned\"\r\n\r\n [class.est-no-border-bottom]=\"selStatusDown?.tborder\"\r\n [class.est-no-border-top]=\"selStatusUp?.bborder\"\r\n [class.est-ltab-border]=\"cell().LeftBorder && !selStatus?.lborder && !selStatusLeft?.rborder\"\r\n [class.est-rtab-border]=\"cell().RightBorder && !selStatus?.rborder && !selStatusRight?.lborder\"\r\n \r\n [class.est-selected-cell]=\"selStatus?.selected\"\r\n [class.est-cell-lborder]=\" selStatus?.lborder\"\r\n [class.est-cell-rborder]=\" selStatus?.rborder\"\r\n [class.est-cell-tborder]=\" selStatus?.tborder\"\r\n [class.est-cell-bborder]=\" selStatus?.bborder\"\r\n [class.est-cell-lborder-tmp]=\"!cell().LeftBorder && !selStatus?.lborder && !selStatus?.loverlaps\"\r\n [class.est-cell-rborder-tmp]=\"!cell().RightBorder && !selStatus?.rborder && !selStatus?.roverlaps\"\r\n [class.est-cell-tborder-tmp]=\"!selStatus?.tborder && !selStatus?.toverlaps\"\r\n [class.est-cell-bborder-tmp]=\"!selStatus?.bborder && !selStatus?.boverlaps\"\r\n\r\n #cellRef\r\n\r\n (click)=\"dbClickEditOrSingleClickRowSelection($event, cell, item)\"\r\n\r\n (onCellGeneration)=\"registerCell($event, cell(), item, cellRef.el)\">\r\n\r\n <!-- \r\n @@@ Queste registrazioni le lascio fare all'interno di registerCell per evitare di attaccare la change detection automatica agli eventi, che rallenta di diosanto\r\n\r\n (mousedown)=\"mousedown($event, cell, item)\"\r\n (mouseenter)=\"mouseenter($event)\"\r\n (mouseup)=\"mouseup($event)\"\r\n -->\r\n\r\n <div [class.est-edit-hidden]=\"cell()._editing\" [class.est-pre]=\"!(Hierarchy() && index == 0)\">\r\n\r\n <ng-container #DEBUG>\r\n <!-- Debug box in caso la roba che viene scritta nelle celle non torni. Scirvere qui i propri binding per controllare cose -->\r\n </ng-container>\r\n\r\n <!-- 90% Template disponibile, quindi derivante da *td, controllo giusto che non sia un field particolare multi -->\r\n <ng-container *ngIf=\"cell().Template\">\r\n <ng-container *ngIf=\"!cell().Multi\"><ng-container *ngTemplateOutlet=\"cell().Template; context: { $implicit: item }\"></ng-container></ng-container>\r\n <span *ngIf=\"cell().Multi\"><ng-container *ngTemplateOutlet=\"cell().Template; context: { $implicit: (item[cell().MultiProp] ? item[cell().MultiProp][cell().MultiIndex] : {}) }\"></ng-container></span>\r\n </ng-container>\r\n\r\n <!-- 8%\r\n Template non disponibile, pu\u00F2 venire da\r\n RoutePath in caso sia un link di una tabella dinamica\r\n PropAccessor in caso di ReportRow (quindi oggetti con \"values\" dentro),\r\n o Renderer se modalit\u00E0 dinamica/standard (in qual caso il renderer \u00E8 il default)\r\n -->\r\n <ng-container *ngIf=\"!cell().Template && !cell().Multi && !cell().Content\">\r\n <a *ngIf=\"cell().RoutePath\" [routerLink]=\"item | est_routerlink : cell().RoutePath : cell().RouteParameterProperties\" class=\"est-link\" [innerHTML]=\"item.properties ? item.properties[cell().PropertyName] : item[cell().PropertyName]\"></a>\r\n\r\n <span *ngIf=\"cell().PropAccessor\">\r\n {{(item.values? item.values[cell().PropAccessor] : item[cell().PropAccessor]) | est_format: cell().Format }}\r\n </span>\r\n\r\n <ng-container *ngIf=\"!cell().PropAccessor && !cell().RoutePath\">\r\n <ng-container *ngTemplateOutlet=\"cell().PropertyName | est_renderer: { name: cell().RendererName, src: EsTdsDirective, fallback: defaultEsTd }; context: { $implicit: { definition: cell(), value: item.properties ? item.properties[cell().PropertyName] : item[cell().PropertyName], type: cell().PropertyType} }\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- 1% Se in modalit\u00E0 gerarchica metto il td per navigare la gerarchia -->\r\n <ng-container *ngIf=\"Hierarchy() && index == 0\"><ng-container *ngTemplateOutlet=\"HierarchyNavigator; context: { $implicit: item }\"></ng-container></ng-container>\r\n\r\n <!-- 1% Content programmatico per le casistiche di Row Grouping ecc... -->\r\n <ng-container *ngIf=\"cell().Content\">\r\n {{cell().Content}}\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"cell()._editing\" class=\"est-mt-min-5\">\r\n <ng-container *ngTemplateOutlet=\"cell().PropertyName | est_editor: { name: cell().EditorName, src: EsTdEditorDirectives, fallback: defaultEditor}; context: { $implicit: { definition: cell(), columnIndex: index, item: item, finalizer: finalizeUserEdit.bind(this, cell, item, index) } }\"></ng-container>\r\n </div>\r\n </td>\r\n</ng-template>\r\n\r\n<!-- Navigatore della gerarchia di una view gerarchica, con tasto per espandere e collassare -->\r\n<ng-template #HierarchyNavigator let-item>\r\n <span *ngIf=\"!item.parent\" class=\"fa fa-chevron-down\" style=\"visibility:hidden\"></span>\r\n <span *ngIf=\"item.parent && item._expanded\" class=\"fa fa-chevron-down est-pointer est-no-selection\" (click)=\"hierarchyMode_H.collapseParent(item[this.OwnKey()])\"></span>\r\n <span *ngIf=\"item.parent && !item._expanded\" class=\"fa fa-chevron-up est-pointer est-no-selection\" (click)=\"hierarchyMode_H.expandParent(item[this.OwnKey()])\"></span>\r\n \r\n</ng-template>\r\n\r\n<!-- Pulsanti di eliminazione/undo eliminazione ed esportazione che vanno in fondo ad un record edlla tabella -->\r\n<ng-template #bodyDeleteAndExport let-options>\r\n <ng-container *ngIf=\"Removal() && !RemovalCondition()\">\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"!(options.item.removed || options.item.deleted)\"><span class=\"fa fa-remove est-pointer text-danger\" [hidden]=\"options.item.removable != undefined && !options.item.removable\" (click)=\"onRemoval.emit(options.item)\"></span></td>\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"(options.item.removed || options.item.deleted)\"><span class=\"fa fa-undo text-warning est-pointer\" (click)=\"onAbortRemoval.emit(options.item)\"></span></td>\r\n </ng-container>\r\n <ng-container *ngIf=\"Removal() && RemovalCondition()\">\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"!(options.item.removed || options.item.deleted) && options.item[RemovalCondition()]\"><span class=\"fa fa-remove est-pointer text-danger\" [hidden]=\"options.item.removable != undefined && !options.item.removable\" (click)=\"onRemoval.emit(options.item)\"></span></td>\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"(options.item.removed || options.item.deleted) && options.item[RemovalCondition()]\"><span class=\"fa fa-undo text-warning est-pointer\" (click)=\"onAbortRemoval.emit(options.item)\"></span></td>\r\n <td class=\"est-sticky-last-column{{options.even? '-alt' : ''}} {{Export() || HiddenColumns() || CornerMenuOptions() ? 'est-right-9' : ''}}\" *ngIf=\"!options.item[RemovalCondition()]\"><span class=\"fa fa-remove est-hidden-view\"></span></td>\r\n </ng-container>\r\n <td *ngIf=\"Export() || HiddenColumns() || CornerMenuOptions()\" class=\"est-sticky-last-column{{options.even && !Hierarchy() ? '-alt' : ''}}\"></td>\r\n</ng-template>\r\n\r\n<!-- Context menu vuoto default per tutte le tabella che non ce l'hanno, in modo che al click destro appaia \"nessuna op disponibile\" -->\r\n<context-menu #emptyMenu>\r\n <ng-template contextMenuItem><span><em>{{'No operations available' | localize : lc}}...</em></span></ng-template>\r\n</context-menu>\r\n\r\n<!-- Modal per cambiare posizione e visibilit\u00E0 delle colonne dell'es-table -->\r\n<div bsModal #changeColumnVisibilityModal=\"bs-modal\" #columnsDialog class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" cdkDrag>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header est-pointer\" cdkDragHandle>\r\n <h5 class=\"modal-title pull-left\">\r\n <ng-container *ngIf=\"!HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Order' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && !ColumnsOrdering()\">\r\n {{'Columns Visibility' | localize : lc}}\r\n </ng-container>\r\n <ng-container *ngIf=\"HiddenColumns() && ColumnsOrdering()\">\r\n {{'Columns Visibility and Order' | localize : lc}}\r\n </ng-container>\r\n </h5>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"hideDialog(changeColumnVisibilityModal);\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div *ngIf=\"!TMPColumnsList || TMPColumnsList.length == 0\" class=\"card card-info est-padding-10 est-margin-bottom-0\">\r\n {{'There are no columns configured to be hidden/shown in this view' | localize : lc}}\r\n </div>\r\n <div *ngIf=\"TMPColumnsList && TMPColumnsList.length > 0\" style=\"max-height:500px; overflow-y:auto\">\r\n <!--Aaaaaaah la tristezza... qui mi servirebbe l'es-table per facilitare la selezione multipla ecc... peccato che se la linko qui entro in un loop impressionante-->\r\n <table class=\"table table-striped table-sm est-margin-bottom-0\">\r\n <thead>\r\n <tr>\r\n <th class=\"est-col-min\" *ngIf=\"HiddenColumns()\">\r\n <input class=\"est-pointer\" type=\"checkbox\" style=\"width: 15px\" [(ngModel)]=\"globalColVisCheck\" [ngModelOptions]=\"{'standalone': true}\" (ngModelChange)=\"columnMetadata_H.globalColVisCheckChanged();\">\r\n </th>\r\n <!-- <th class=\"est-col-min\" *ngIf=\"ColumnsOrdering\"></th> -->\r\n <th class=\"est-col-min est-nowrap\">{{'Column Name' | localize : lc}}</th>\r\n <!--Filler-->\r\n <th></th>\r\n <!-- Pinner -->\r\n <th *ngIf=\"DirectivesBased()\" class=\"est-col-min\"></th>\r\n </tr>\r\n </thead>\r\n <tbody\r\n cdkDropList\r\n [cdkDropListData]=\"TMPColumnsList\"\r\n (cdkDropListDropped)=\"columnMetadata_H.columnReordered($event)\"\r\n [cdkDropListSortPredicate]=\"columnMetadata_H.sortPredicate.bind(this.columnMetadata_H)\"\r\n class=\"est-dropbox\">\r\n\r\n <tr *ngFor=\"let item of TMPColumnsList; let i = index; let last = last; trackBy: idTrackBy\"\r\n class=\"est-pointer est-droplist\"\r\n [class.est-white-selected]=\"lastSelectedItemID == item.id\"\r\n [class.est-no-selection]=\"!item.visible\"\r\n cdkDrag\r\n [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"!ColumnsOrdering || item.fixed || item.pinned\">\r\n\r\n <td *ngIf=\"HiddenColumns()\">\r\n <input type=\"checkbox\" style=\"width: 15px\" [class.est-hidden-view]=\"item.fixed\" class=\"est-pointer\" [(ngModel)]=\"item.visible\" name=\"visible{{i}}\" (ngModelChange)=\"columnMetadata_H.updateGlobalColVisCheck();\" />\r\n </td>\r\n <td class=\"est-nowrap drag-visible\" (click)=\"columnMetadata_H.columnClicked(item);\">\r\n <ng-container *ngIf=\"item.template\">\r\n <!-- Padri -->\r\n <span *ngIf=\"item.parentTemplates && item.parentTemplates.length > 0\" class=\"est-fw-bold est-fs-13\">\r\n ( \r\n <ng-container *ngFor=\"let parent of item.parentTemplates; let last=last; trackBy: idTrackBy\">\r\n <ng-container *ngIf=\"parent.tmpl\"><ng-container *ngTemplateOutlet=\"parent.tmpl\"></ng-container></ng-container>\r\n <ng-container *ngIf=\"parent.content\">{{parent.content}}</ng-container>\r\n <span *ngIf=\"!last\"> - </span>\r\n </ng-container>\r\n )\r\n </span>\r\n <!-- Template header originale -->\r\n <ng-container *ngTemplateOutlet=\"item.template; context: { $implicit: item.multi ? item.multiContent : null }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!item.template\">{{item.description}}</ng-container>\r\n </td>\r\n <!--Filler-->\r\n <td (click)=\"columnMetadata_H.columnClicked(item);\"></td>\r\n <!-- Pinner -->\r\n <td *ngIf=\"DirectivesBased() && ColumnsPinnable()\"><span *ngIf=\"!item.fixed && item.pinnable\" class=\"fa fa-thumb-tack\" [class.text-success]=\"item.pinned\" (click)=\"columnMetadata_H.pinOrUnpinColumn(item)\"></span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary est-margin-right-10\" (click)=\"lastSelectedItemID = null; hideDialog(changeColumnVisibilityModal);\">{{'Close' | localize : lc}}</button>\r\n <button type=\"button\" [disabled]=\"!TMPColumnsList || TMPColumnsList.length == 0\" class=\"btn btn-primary\" (click)=\"columnMetadata_H.confirmColumnVisibilitySelection() && hideDialog(changeColumnVisibilityModal)\">{{'Confirm' | localize : lc}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.est-loading-box{height:200px;text-align:center;position:relative;background:#ccc}.est-loading-content{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:35px}.est-scrollable{max-height:600px;overflow:auto}.est-head-resizer{top:0;right:0;bottom:0;width:7px;position:absolute;cursor:col-resize}.est-head-resizer-internal{inset:0 0 0 6px;width:1px;position:absolute;background-color:#ccc;height:100%}.est-pointer{cursor:pointer}.est-high-density th,.est-high-density td{padding:0;padding-left:.2rem;padding-right:.2rem}.est-default-row-height{height:31px}.est-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.est-edit-hidden{visibility:hidden;height:1px!important}.est-hidden-view{visibility:hidden}.est-no-border{border:none!important}.est-nowrap{white-space:nowrap}.est-mt-min-5{margin-top:-5px}.est-white-selected{background-color:#ddd!important}.est-line-through{text-decoration:line-through}.est-no-side-padding{padding-left:0;padding-right:0}.est-no-left-padding,.est-no-right-padding{padding-left:0}.est-col-min{width:1px}.est-margin-bottom-0{margin-bottom:0!important}.est-margin-right-10{margin-right:10px!important}.est-right-9{right:9px!important}.est-table-dotted-menu{padding:0 0 2px!important;color:#999}.est-fs-18{font-size:18px}.est-fs-14,.est-fs-13{font-size:14px}.est-fw-bold{font-weight:700}.est-padding-3{padding:3px!important}.est-page-container{position:relative}.est-bring-to-front-strong{z-index:99999999!important}.est-switch{position:relative;display:inline-block;width:30px;height:17px;margin-bottom:0;margin-right:5px;margin-left:5px}.est-switch input{display:none}.est-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.est-slider:before{position:absolute;content:\"\";height:13px;width:13px;left:3px;bottom:2px;background-color:#fff;-webkit-transition:.4s;transition:.4s}input:checked+.est-slider{background-color:#2196f3}input:focus+.est-slider{box-shadow:0 0 1px #2196f3}input:checked+.est-slider:before{-webkit-transform:translateX(11px);-ms-transform:translateX(11px);transform:translate(11px)}.est-slider.round{border-radius:10px}.est-slider.round:before{border-radius:50%}.est-custom-input{width:30px;display:inline;padding:1px;height:20px}.est-row-lvl-1 td:first-child{padding-left:5px}.est-row-lvl-2 td:first-child{padding-left:20px}.est-row-lvl-3 td:first-child{padding-left:35px}.est-row-lvl-4 td:first-child{padding-left:50px}.est-row-lvl-5 td:first-child{padding-left:65px}.est-row-lvl-6 td:first-child{padding-left:80px}.est-row-lvl-7 td:first-child{padding-left:95px}.est-row-lvl-8 td:first-child{padding-left:110px}.est-row-lvl-9 td:first-child{padding-left:125px}.est-row-lvl-10 td:first-child{padding-left:140px}.est-row-lvl-11 td:first-child{padding-left:155px}.est-row-lvl-12 td:first-child{padding-left:170px}.est-row-lvl-13 td:first-child{padding-left:185px}.est-row-lvl-14 td:first-child{padding-left:200px}.est-row-lvl-15 td:first-child{padding-left:215px}.est-row-lvl-16 td:first-child{padding-left:230px}.est-row-lvl-17 td:first-child{padding-left:245px}.est-row-lvl-18 td:first-child{padding-left:260px}.est-row-lvl-19 td:first-child{padding-left:275px}.est-row-lvl-20 td:first-child{padding-left:290px}.est-row-lvl-21 td:first-child{padding-left:305px}.est-row-lvl-22 td:first-child{padding-left:320px}.est-row-lvl-23 td:first-child{padding-left:335px}.est-row-lvl-24 td:first-child{padding-left:350px}.est-row-lvl-25 td:first-child{padding-left:365px}.est-row-lvl-26 td:first-child{padding-left:380px}.est-row-lvl-27 td:first-child{padding-left:395px}.est-row-lvl-28 td:first-child{padding-left:410px}.est-row-lvl-29 td:first-child{padding-left:425px}.est-row-lvl-30 td:first-child{padding-left:440px}.est-row-lvl-31 td:first-child{padding-left:455px}.est-row-lvl-32 td:first-child{padding-left:470px}.est-row-lvl-33 td:first-child{padding-left:485px}.est-row-lvl-34 td:first-child{padding-left:500px}.est-row-lvl-35 td:first-child{padding-left:515px}.est-row-lvl-36 td:first-child{padding-left:530px}.est-row-lvl-37 td:first-child{padding-left:545px}.est-row-lvl-38 td:first-child{padding-left:560px}.est-row-lvl-39 td:first-child{padding-left:575px}.est-row-lvl-40 td:first-child{padding-left:590px}.est-row-lvl-41 td:first-child{padding-left:605px}.est-row-lvl-42 td:first-child{padding-left:620px}.est-row-lvl-43 td:first-child{padding-left:635px}.est-row-lvl-44 td:first-child{padding-left:650px}.est-row-lvl-45 td:first-child{padding-left:665px}.est-row-lvl-46 td:first-child{padding-left:680px}.est-row-lvl-47 td:first-child{padding-left:695px}.est-row-lvl-48 td:first-child{padding-left:710px}.est-row-lvl-49 td:first-child{padding-left:725px}.est-row-lvl-50 td:first-child{padding-left:740px}.est-row-lvl-51 td:first-child{padding-left:755px}.est-row-lvl-52 td:first-child{padding-left:770px}.est-row-lvl-53 td:first-child{padding-left:785px}.est-row-lvl-54 td:first-child{padding-left:800px}.est-row-lvl-55 td:first-child{padding-left:815px}.est-row-lvl-56 td:first-child{padding-left:830px}.est-row-lvl-57 td:first-child{padding-left:845px}.est-row-lvl-58 td:first-child{padding-left:860px}.est-row-lvl-59 td:first-child{padding-left:875px}.est-row-lvl-60 td:first-child{padding-left:890px}.est-row-lvl-61 td:first-child{padding-left:905px}.est-row-lvl-62 td:first-child{padding-left:920px}.est-row-lvl-63 td:first-child{padding-left:935px}.est-row-lvl-64 td:first-child{padding-left:950px}.est-row-lvl-65 td:first-child{padding-left:965px}.est-row-lvl-66 td:first-child{padding-left:980px}.est-row-lvl-67 td:first-child{padding-left:995px}.est-row-lvl-68 td:first-child{padding-left:1010px}.est-row-lvl-69 td:first-child{padding-left:1025px}.est-row-lvl-70 td:first-child{padding-left:1040px}.est-row-lvl-71 td:first-child{padding-left:1055px}.est-row-lvl-72 td:first-child{padding-left:1070px}.est-row-lvl-73 td:first-child{padding-left:1085px}.est-row-lvl-74 td:first-child{padding-left:1100px}.est-row-lvl-75 td:first-child{padding-left:1115px}.est-row-lvl-76 td:first-child{padding-left:1130px}.est-row-lvl-77 td:first-child{padding-left:1145px}.est-row-lvl-78 td:first-child{padding-left:1160px}.est-row-lvl-79 td:first-child{padding-left:1175px}.est-row-lvl-80 td:first-child{padding-left:1190px}.est-row-lvl-81 td:first-child{padding-left:1205px}.est-row-lvl-82 td:first-child{padding-left:1220px}.est-row-lvl-83 td:first-child{padding-left:1235px}.est-row-lvl-84 td:first-child{padding-left:1250px}.est-row-lvl-85 td:first-child{padding-left:1265px}.est-row-lvl-86 td:first-child{padding-left:1280px}.est-row-lvl-87 td:first-child{padding-left:1295px}.est-row-lvl-88 td:first-child{padding-left:1310px}.est-row-lvl-89 td:first-child{padding-left:1325px}.est-row-lvl-90 td:first-child{padding-left:1340px}.est-row-lvl-91 td:first-child{padding-left:1355px}.est-row-lvl-92 td:first-child{padding-left:1370px}.est-row-lvl-93 td:first-child{padding-left:1385px}.est-row-lvl-94 td:first-child{padding-left:1400px}.est-row-lvl-95 td:first-child{padding-left:1415px}.est-row-lvl-96 td:first-child{padding-left:1430px}.est-row-lvl-97 td:first-child{padding-left:1445px}.est-row-lvl-98 td:first-child{padding-left:1460px}.est-row-lvl-99 td:first-child{padding-left:1475px}.est-relative{position:relative}.est-top-pager{position:absolute;right:0;top:5px}.est-top-allselect{position:absolute;left:0;top:5px;font-weight:700}.est-padding-10{padding:10px!important}.est-margin-right-50{margin-right:50px}.est-margin-left-50{margin-left:50px}.est-quick-unpin{color:#000;margin-left:8px;font-size:14px;transform:rotate(45deg)}.est-full-height{height:100%}.est-page-sel{margin-left:3px;margin-right:3px;padding:0 5px;font-size:inherit;border:none;border-radius:15px}.est-page-sel:not(.app-white-text){color:#000!important}.est-page-prev,.est-page-next{color:#000;padding:2px 0 0;font-size:inherit}.est-pinned-header{background-color:#fff;left:0;top:0;position:sticky;z-index:1;border-bottom:1px solid #dee2e6!important;padding:0!important}.est-simple-border-bottom{border-bottom:1px solid #dee2e6}.est-pinned-internal-header{border-top:0;border-bottom:0px solid #dee2e6}.est-pinned-border{border-right:2px solid #dee2e6!important}.est-cell-padding{padding:.3rem}.est-pinned-body{background-color:#fff;left:0;position:sticky;z-index:1;border-top:1px solid #dee2e6!important;padding:0!important}.est-inline{display:inline!important}.est-inline-block{display:inline-block!important}.est-link{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block}.est-link:hover{color:#23527c!important;cursor:pointer;text-decoration:underline!important}.est-sticky-last-column{right:-1px;position:sticky;z-index:0;background-color:#fff}.est-sticky-last-column-alt{right:-1px;position:sticky;z-index:0;background-color:#f2f2f2}.est-ltab-border{border-left:1px solid #bbb!important}.est-rtab-border{border-right:1px solid #bbb!important}.est-no-border-bottom{border-bottom:none!important}.est-no-border-top{border-top:none!important}.est-cell-group-padding{padding:calc(.3rem + 1px);position:absolute;top:0;left:0;height:100%;width:100%}.est-selected-cell{background-color:#2196f333!important}.est-cell-lborder{border-left:1.02px solid rgb(33,150,243)!important}.est-cell-tborder{border-top:1.02px solid rgb(33,150,243)!important}.est-cell-rborder{border-right:1.02px solid rgb(33,150,243)!important}.est-cell-bborder{border-bottom:1.02px solid rgb(33,150,243)!important}.est-cell-lborder-tmp{border-left:1.02px solid transparent!important}.est-cell-tborder-tmp{border-top:1.02px solid transparent!important}.est-cell-rborder-tmp{border-right:1.02px solid transparent!important}.est-cell-bborder-tmp{border-bottom:1.02px solid transparent!important}.est-margin-bottom-10{margin-bottom:10px}.est-text-center{text-align:center}.est-flex{display:flex}.est-rg-sep-flex-right{display:flex;flex-direction:row-reverse;width:100%;margin:-5px}.est-rg-sep-flex-left{display:flex;flex-direction:row;width:100%;margin:-5px}.est-rg-hdr{font-weight:700}.est-rg-agg{font-style:italic}.est-rg{background-color:#7777!important}.est-rg-sep{font-size:12px;padding-right:20px!important;background-color:#bbbb!important}.est-rg-ipp{text-align:left;display:inline-flex;margin-right:25px}.est-rg-page{text-align:right;display:inline-flex;font-size:inherit;padding-top:5px}.est-droplist.cdk-drag-placeholder{opacity:0}.est-droplist.cdk-drag-preview{z-index:999999999!important;opacity:1;box-sizing:border-box;border-radius:4px;background-color:#fff;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.est-droplist.cdk-drag-preview td:not(.drag-visible){visibility:hidden}.est-droplist.cdk-drag-preview td.drag-visible{padding-top:3px}.est-droplist.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.est-droplist.cdk-drop-list-dragging .est-dropbox:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.est-pre{white-space:pre}.est val-datetime .mat-form-field-appearance-outline .mat-form-field-infix input{margin-bottom:3px!important;min-width:130px!important}.est .mat-form-field-flex{height:29px!important;padding:0!important}.est .mat-form-field-flex .mat-form-field-outline{color:#00f}.est .mat-form-field-flex .mat-form-field-outline .mat-form-field-outline-start{border-left:none;border-top:none;border-radius:0}.est .mat-form-field-flex .mat-form-field-outline .mat-form-field-outline-end{border-top:none;border-radius:0;border-right:none}.est .mat-form-field-wrapper{height:20px;min-height:20px!important;margin-top:0!important}.est .mat-form-field-infix{width:100%!important;min-width:50px!important}.est .mat-form-field-infix select.mat-input-element{margin-top:-5px!important}.est .mat-datepicker-input{margin-bottom:3px!important}.est input{height:20px;padding-top:0!important}\n"] }]
|
|
5702
5702
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.NgControl, decorators: [{
|
|
@@ -5715,7 +5715,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
5715
5715
|
}, {
|
|
5716
5716
|
type: Inject,
|
|
5717
5717
|
args: [EST_EXPORT_GLOBAL_ACL]
|
|
5718
|
-
}] }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: UtilitiesHandler }, { type: i5.UtilityService }, { type: i5.ExportService }, { type: i5.DateService }, { type: i5.MessageService }, { type: CopyPasteDetector }, { type: i5.ClipboardService }, { type: Logger }, { type: i5.AppEmbeddingExtensions }, { type: i0.Renderer2 }], propDecorators: { EsTdEditorDirectives: [{
|
|
5718
|
+
}] }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: UtilitiesHandler }, { type: i5.UtilityService }, { type: i5.ExportService }, { type: i5.DateService }, { type: i5.MessageService }, { type: CopyPasteDetector }, { type: i5.ClipboardService }, { type: Logger }, { type: i5.AppEmbeddingExtensions }, { type: i0.Renderer2 }], propDecorators: { globalCheck: [{ type: i0.Input, args: [{ isSignal: true, alias: "globalCheck", required: false }] }, { type: i0.Output, args: ["globalCheckChange"] }], autoUpdate: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoUpdate", required: false }] }, { type: i0.Output, args: ["autoUpdateChange"] }], seconds: [{ type: i0.Input, args: [{ isSignal: true, alias: "seconds", required: false }] }, { type: i0.Output, args: ["secondsChange"] }], researchInProgress: [{ type: i0.Input, args: [{ isSignal: true, alias: "researchInProgress", required: false }] }, { type: i0.Output, args: ["researchInProgressChange"] }], globalColVisCheck: [{ type: i0.Input, args: [{ isSignal: true, alias: "globalColVisCheck", required: false }] }, { type: i0.Output, args: ["globalColVisCheckChange"] }], EsTdEditorDirectives: [{
|
|
5719
5719
|
type: ContentChildren,
|
|
5720
5720
|
args: [EsTdEditorDirective]
|
|
5721
5721
|
}], EsTdsDirective: [{
|
|
@@ -5744,13 +5744,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
5744
5744
|
}], inputField: [{
|
|
5745
5745
|
type: ViewChild,
|
|
5746
5746
|
args: ['input', { static: false }]
|
|
5747
|
-
}], ContextMenu: [{
|
|
5747
|
+
}], CornerMenuOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "CornerMenuOptions", required: false }] }], _ColumnsResizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "ColumnsResizable", required: false }] }], _ColumnsPinnable: [{ type: i0.Input, args: [{ isSignal: true, alias: "ColumnsPinnable", required: false }] }], _AutoUpdate: [{ type: i0.Input, args: [{ isSignal: true, alias: "AutoUpdate", required: false }] }], Height: [{ type: i0.Input, args: [{ isSignal: true, alias: "Height", required: false }] }], EmptySpaceBackgroundColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "EmptySpaceBackgroundColor", required: false }] }], EsTableHandledSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "EsTableHandledSearch", required: false }] }], MaxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "MaxHeight", required: false }] }], _ContainerClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "ContainerClass", required: false }] }], XLSXExport: [{ type: i0.Input, args: [{ isSignal: true, alias: "XLSXExport", required: false }] }], CSVExport: [{ type: i0.Input, args: [{ isSignal: true, alias: "CSVExport", required: false }] }], _AllSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "AllSearch", required: false }] }], HighCellDensity: [{ type: i0.Input, args: [{ isSignal: true, alias: "HighCellDensity", required: false }] }], _Selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "Selection", required: false }] }], ShowLoadingOnBootstrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "ShowLoadingOnBootstrap", required: false }] }], Removal: [{ type: i0.Input, args: [{ isSignal: true, alias: "Removal", required: false }] }], RemovalCondition: [{ type: i0.Input, args: [{ isSignal: true, alias: "RemovalCondition", required: false }] }], _Export: [{ type: i0.Input, args: [{ isSignal: true, alias: "Export", required: false }] }], _ShiftClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "ShiftClick", required: false }] }], CountLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "CountLabel", required: false }] }], _HidePaging: [{ type: i0.Input, args: [{ isSignal: true, alias: "HidePaging", required: false }] }], _HidePagingCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "HidePagingCount", required: false }] }], _HidePagingButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "HidePagingButtons", required: false }] }], ContextMenu: [{
|
|
5748
5748
|
type: Input
|
|
5749
|
-
}], ExportFunction: [{
|
|
5749
|
+
}], ExportFileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "ExportFileName", required: false }] }], _TableClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "TableClass", required: false }] }], ExportFunction: [{
|
|
5750
5750
|
type: Input
|
|
5751
|
-
}], RowClassAssigner: [{
|
|
5751
|
+
}], ExportOnlyVisibleColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "ExportOnlyVisibleColumns", required: false }] }], HasHeaderGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "HasHeaderGroup", required: false }] }], HasSecondaryHeaderGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "HasSecondaryHeaderGroup", required: false }] }], HeaderHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "HeaderHidden", required: false }] }], BodyHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "BodyHidden", required: false }] }], SelectionDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "SelectionDisabled", required: false }] }], SingleSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "SingleSelection", required: false }] }], RowClassAssigner: [{
|
|
5752
5752
|
type: Input
|
|
5753
|
-
}], onOrderChanged: [{
|
|
5753
|
+
}], _OrderByColumn: [{ type: i0.Input, args: [{ isSignal: true, alias: "OrderByColumn", required: false }] }], MultipleOrderingDirectives: [{ type: i0.Input, args: [{ isSignal: true, alias: "MultipleOrderingDirectives", required: false }] }], _HiddenColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "HiddenColumns", required: false }] }], _ColumnsOrdering: [{ type: i0.Input, args: [{ isSignal: true, alias: "ColumnsOrdering", required: false }] }], SearchView: [{ type: i0.Input, args: [{ isSignal: true, alias: "SearchView", required: false }] }], _SelectAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "SelectAll", required: false }] }], _UseArrayModePaging: [{ type: i0.Input, args: [{ isSignal: true, alias: "UseArrayModePaging", required: false }] }], _DynamicRowColumnsDefinition: [{ type: i0.Input, args: [{ isSignal: true, alias: "DynamicRowColumnsDefinition", required: false }] }], DynamicOperations: [{ type: i0.Input, args: [{ isSignal: true, alias: "DynamicOperations", required: false }] }], Hierarchy: [{ type: i0.Input, args: [{ isSignal: true, alias: "Hierarchy", required: false }] }], _ParentKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "ParentKey", required: false }] }], _OwnKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "OwnKey", required: false }] }], _AutoSortHierarchy: [{ type: i0.Input, args: [{ isSignal: true, alias: "AutoSortHierarchy", required: false }] }], StartsExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "StartsExpanded", required: false }] }], _SavePreferences: [{ type: i0.Input, args: [{ isSignal: true, alias: "SavePreferences", required: false }] }], _DefaultAlignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "DefaultAlignment", required: false }] }], _PagingStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "PagingStyle", required: false }] }], _RowGroupingPagingStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "RowGroupingPagingStyle", required: false }] }], ItemSourceProperty: [{ type: i0.Input, args: [{ isSignal: true, alias: "ItemSourceProperty", required: false }] }], _UseSelectionCache: [{ type: i0.Input, args: [{ isSignal: true, alias: "UseSelectionCache", required: false }] }], _ShowItemGroupsColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "ShowItemGroupsColumns", required: false }] }], Editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "Editable", required: false }] }], RangeSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "RangeSelection", required: false }] }], SearchThrottle: [{ type: i0.Input, args: [{ isSignal: true, alias: "SearchThrottle", required: false }] }], onOrderChanged: [{
|
|
5754
5754
|
type: Output
|
|
5755
5755
|
}], onSearchRequest: [{
|
|
5756
5756
|
type: Output
|
|
@@ -5774,7 +5774,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
5774
5774
|
}], tableEmptyMenu: [{
|
|
5775
5775
|
type: ViewChild,
|
|
5776
5776
|
args: ['emptyMenu', { static: true }]
|
|
5777
|
-
}] } });
|
|
5777
|
+
}], _ArraymodeItemsPerPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "ArraymodeItemsPerPage", required: false }] }] } });
|
|
5778
5778
|
class EsTdReference {
|
|
5779
5779
|
}
|
|
5780
5780
|
|
|
@@ -5828,8 +5828,8 @@ class EsTableModule {
|
|
|
5828
5828
|
]
|
|
5829
5829
|
};
|
|
5830
5830
|
}
|
|
5831
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5832
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
5831
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5832
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.24", ngImport: i0, type: EsTableModule, declarations: [
|
|
5833
5833
|
// Direttive
|
|
5834
5834
|
EsTdDirective,
|
|
5835
5835
|
EsThDirective,
|
|
@@ -5866,9 +5866,9 @@ class EsTableModule {
|
|
|
5866
5866
|
EsTableComponent,
|
|
5867
5867
|
EsTablePagerComponent,
|
|
5868
5868
|
ThTdProvider] }); }
|
|
5869
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
5869
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTableModule, imports: [MODULES, SelectModule] }); }
|
|
5870
5870
|
}
|
|
5871
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5871
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: EsTableModule, decorators: [{
|
|
5872
5872
|
type: NgModule,
|
|
5873
5873
|
args: [{
|
|
5874
5874
|
imports: [MODULES, SelectModule],
|
|
@@ -5925,7 +5925,7 @@ class EsTableMultiValue {
|
|
|
5925
5925
|
* @param {boolean} exports Indica se questo header con questo valore dev'essere esportato
|
|
5926
5926
|
* @param {string} export_format Qualora **export** fosse **true** indica il formato per l'esportazione
|
|
5927
5927
|
*/
|
|
5928
|
-
constructor(value, header, header_group, exports
|
|
5928
|
+
constructor(value, header, header_group, exports = false, export_format = "") {
|
|
5929
5929
|
this.value = value;
|
|
5930
5930
|
this.header = header;
|
|
5931
5931
|
this.header_group = header_group;
|
|
@@ -5933,7 +5933,7 @@ class EsTableMultiValue {
|
|
|
5933
5933
|
this.exports = false;
|
|
5934
5934
|
/** Qualora **export** fosse **true** indica il formato per l'esportazione */
|
|
5935
5935
|
this.export_format = "";
|
|
5936
|
-
this.exports = exports
|
|
5936
|
+
this.exports = exports;
|
|
5937
5937
|
this.export_format = export_format;
|
|
5938
5938
|
this._headersHierarchy = header_group ? header_group.split(">").map(t => t.trim()) : [];
|
|
5939
5939
|
}
|