@esfaenza/es-table 16.2.29 → 17.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/esm2022/esfaenza-es-table.mjs +4 -4
- package/esm2022/lib/components/es-table/es_table.component.loc.mjs +38 -38
- package/esm2022/lib/components/es-table/es_table.component.mjs +1891 -1891
- package/esm2022/lib/components/es-td/es_td.component.mjs +40 -40
- package/esm2022/lib/components/es-th/es_th.component.mjs +176 -176
- package/esm2022/lib/components/pager/table_pager.component.loc.mjs +20 -20
- package/esm2022/lib/components/pager/table_pager.component.mjs +111 -111
- package/esm2022/lib/components/pipes/est-format.pipe.mjs +44 -44
- package/esm2022/lib/components/pipes/est-lookup.pipe.mjs +19 -19
- package/esm2022/lib/components/pipes/est-propinsensitive.pipe.mjs +19 -19
- package/esm2022/lib/components/pipes/est-renderer.pipe.mjs +36 -36
- package/esm2022/lib/components/pipes/est-routerlink.pipe.mjs +41 -41
- package/esm2022/lib/components/pipes/est_editor.pipe.mjs +36 -36
- package/esm2022/lib/core/CopyPasteDetector.mjs +27 -27
- package/esm2022/lib/core/Logger.mjs +25 -25
- package/esm2022/lib/core/handlers/ColumnMetadataHandler.mjs +835 -835
- package/esm2022/lib/core/handlers/DynamicModeHandler.mjs +109 -109
- package/esm2022/lib/core/handlers/ExportHandler.mjs +32 -32
- package/esm2022/lib/core/handlers/HierarchyModeHandler.mjs +136 -136
- package/esm2022/lib/core/handlers/ItemsHandler.mjs +119 -119
- package/esm2022/lib/core/handlers/ReportModeHandler.mjs +60 -60
- package/esm2022/lib/core/handlers/RowGroupingHandler.mjs +480 -480
- package/esm2022/lib/core/handlers/SelectionHandler.mjs +778 -778
- package/esm2022/lib/core/handlers/UtilitiesHandler.mjs +151 -151
- package/esm2022/lib/directives/es_td.directive.mjs +54 -54
- package/esm2022/lib/directives/es_td_editor.directive.mjs +24 -24
- package/esm2022/lib/directives/es_th.directive.mjs +130 -130
- package/esm2022/lib/directives/es_th_td_provider.directive.mjs +34 -34
- package/esm2022/lib/domain/configuration/EsTableDefaultable.mjs +3 -3
- package/esm2022/lib/domain/configuration/EsTableModuleConfig.mjs +3 -3
- package/esm2022/lib/domain/externals/CornerMenuOption.mjs +3 -3
- package/esm2022/lib/domain/externals/EsTableColumnsDefinition.mjs +47 -47
- package/esm2022/lib/domain/externals/EsTableModelChange.mjs +18 -18
- package/esm2022/lib/domain/externals/EsTableOperationDefinition.mjs +21 -21
- package/esm2022/lib/domain/externals/ItemPropEditableReference.mjs +3 -3
- package/esm2022/lib/domain/externals/appsearch/AppOrdering.mjs +15 -15
- package/esm2022/lib/domain/externals/appsearch/AppSearch.mjs +65 -65
- package/esm2022/lib/domain/externals/appsearch/EsTableMultiValue.mjs +24 -24
- package/esm2022/lib/domain/externals/appsearch/GenericItem.mjs +10 -10
- package/esm2022/lib/domain/externals/appsearch/Group.mjs +16 -16
- package/esm2022/lib/domain/externals/appsearch/GroupAggregation.mjs +15 -15
- package/esm2022/lib/domain/externals/appsearch/GroupFilter.mjs +13 -13
- package/esm2022/lib/domain/externals/appsearch/GroupOrAggregation.mjs +15 -15
- package/esm2022/lib/domain/externals/appsearch/ItemsSelection.mjs +22 -22
- package/esm2022/lib/domain/externals/report/ReportColumn.mjs +3 -3
- package/esm2022/lib/domain/externals/report/ReportParam.mjs +3 -3
- package/esm2022/lib/domain/externals/report/ReportRow.mjs +3 -3
- package/esm2022/lib/domain/internals/CacheTriptic.mjs +15 -15
- package/esm2022/lib/domain/internals/EsTableColumn.mjs +31 -31
- package/esm2022/lib/domain/internals/GroupPager.mjs +22 -22
- package/esm2022/lib/domain/internals/GroupRouteFragment.mjs +16 -16
- package/esm2022/lib/domain/internals/PagerInfos.mjs +14 -14
- package/esm2022/lib/domain/internals/TdElement.mjs +1 -1
- package/esm2022/lib/domain/internals/ThAggregation.mjs +15 -15
- package/esm2022/lib/domain/internals/ThElement.mjs +1 -1
- package/esm2022/lib/domain/internals/ThGroup.mjs +1 -1
- package/esm2022/lib/domain/types.mjs +1 -1
- package/esm2022/lib/es-table.module.mjs +124 -124
- package/esm2022/lib/tokens.mjs +5 -5
- package/esm2022/public-api.mjs +27 -27
- package/fesm2022/esfaenza-es-table.mjs +5771 -5771
- package/fesm2022/esfaenza-es-table.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/es-table/es_table.component.d.ts +738 -738
- package/lib/components/es-table/es_table.component.loc.d.ts +10 -10
- package/lib/components/es-td/es_td.component.d.ts +26 -26
- package/lib/components/es-th/es_th.component.d.ts +92 -92
- package/lib/components/pager/table_pager.component.d.ts +56 -56
- package/lib/components/pager/table_pager.component.loc.d.ts +10 -10
- package/lib/components/pipes/est-format.pipe.d.ts +10 -10
- package/lib/components/pipes/est-lookup.pipe.d.ts +13 -13
- package/lib/components/pipes/est-propinsensitive.pipe.d.ts +7 -7
- package/lib/components/pipes/est-renderer.pipe.d.ts +15 -15
- package/lib/components/pipes/est-routerlink.pipe.d.ts +20 -20
- package/lib/components/pipes/est_editor.pipe.d.ts +15 -15
- package/lib/core/CopyPasteDetector.d.ts +15 -15
- package/lib/core/Logger.d.ts +10 -10
- package/lib/core/handlers/ColumnMetadataHandler.d.ts +189 -189
- package/lib/core/handlers/DynamicModeHandler.d.ts +22 -22
- package/lib/core/handlers/ExportHandler.d.ts +18 -18
- package/lib/core/handlers/HierarchyModeHandler.d.ts +40 -40
- package/lib/core/handlers/ItemsHandler.d.ts +35 -35
- package/lib/core/handlers/ReportModeHandler.d.ts +27 -27
- package/lib/core/handlers/RowGroupingHandler.d.ts +118 -118
- package/lib/core/handlers/SelectionHandler.d.ts +230 -230
- package/lib/core/handlers/UtilitiesHandler.d.ts +57 -57
- package/lib/directives/es_td.directive.d.ts +42 -42
- package/lib/directives/es_td_editor.directive.d.ts +14 -14
- package/lib/directives/es_th.directive.d.ts +107 -107
- package/lib/directives/es_th_td_provider.directive.d.ts +15 -15
- package/lib/domain/configuration/EsTableDefaultable.d.ts +21 -21
- package/lib/domain/configuration/EsTableModuleConfig.d.ts +8 -8
- package/lib/domain/externals/CornerMenuOption.d.ts +7 -7
- package/lib/domain/externals/EsTableColumnsDefinition.d.ts +56 -56
- package/lib/domain/externals/EsTableModelChange.d.ts +17 -17
- package/lib/domain/externals/EsTableOperationDefinition.d.ts +20 -20
- package/lib/domain/externals/ItemPropEditableReference.d.ts +34 -34
- package/lib/domain/externals/appsearch/AppOrdering.d.ts +14 -14
- package/lib/domain/externals/appsearch/AppSearch.d.ts +100 -100
- package/lib/domain/externals/appsearch/EsTableMultiValue.d.ts +22 -22
- package/lib/domain/externals/appsearch/GenericItem.d.ts +13 -13
- package/lib/domain/externals/appsearch/Group.d.ts +17 -17
- package/lib/domain/externals/appsearch/GroupAggregation.d.ts +14 -14
- package/lib/domain/externals/appsearch/GroupFilter.d.ts +12 -12
- package/lib/domain/externals/appsearch/GroupOrAggregation.d.ts +14 -14
- package/lib/domain/externals/appsearch/ItemsSelection.d.ts +22 -22
- package/lib/domain/externals/report/ReportColumn.d.ts +19 -19
- package/lib/domain/externals/report/ReportParam.d.ts +40 -40
- package/lib/domain/externals/report/ReportRow.d.ts +9 -9
- package/lib/domain/internals/CacheTriptic.d.ts +14 -14
- package/lib/domain/internals/EsTableColumn.d.ts +41 -41
- package/lib/domain/internals/GroupPager.d.ts +26 -26
- package/lib/domain/internals/GroupRouteFragment.d.ts +15 -15
- package/lib/domain/internals/PagerInfos.d.ts +13 -13
- package/lib/domain/internals/TdElement.d.ts +57 -57
- package/lib/domain/internals/ThAggregation.d.ts +14 -14
- package/lib/domain/internals/ThElement.d.ts +24 -24
- package/lib/domain/internals/ThGroup.d.ts +10 -10
- package/lib/domain/types.d.ts +2 -2
- package/lib/es-table.module.d.ts +35 -35
- package/lib/tokens.d.ts +6 -6
- package/package.json +14 -14
- package/public-api.d.ts +27 -27
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Component, Input, ChangeDetectionStrategy, EventEmitter, Output } from "@angular/core";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/material/legacy-tooltip";
|
|
5
|
-
/** Componente rappresentante una singola cella del body della tabella */
|
|
6
|
-
export class EsTd {
|
|
7
|
-
/** @ignore */
|
|
8
|
-
constructor(cdr) {
|
|
9
|
-
this.cdr = cdr;
|
|
10
|
-
/** Id della cella, dev'essere lo stesso della colonna **EsTh** relativa */
|
|
11
|
-
this.ID = "";
|
|
12
|
-
/** Quando questa cella viene generata questo evento permette di dire "ehi, sono nato!" */
|
|
13
|
-
this.onCellGeneration = new EventEmitter();
|
|
14
|
-
/** Errore attualmente presente sulla cella */
|
|
15
|
-
this.ValidationError = "";
|
|
16
|
-
}
|
|
17
|
-
/** @ignore */
|
|
18
|
-
ngAfterViewInit() {
|
|
19
|
-
this.onCellGeneration.emit({ id: this.ID, hash: this.Context, self: this });
|
|
20
|
-
}
|
|
21
|
-
/** Api per impostare un "errore" su questa cella in maniera programmatica */
|
|
22
|
-
validationError(error) {
|
|
23
|
-
this.ValidationError = error;
|
|
24
|
-
this.cdr.markForCheck();
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
30
|
-
type: Component,
|
|
31
|
-
args: [{ selector: "[es-td]", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"td-content\" [class.td-error]=\"!!ValidationError\" [matTooltip]=\"ValidationError\">\r\n <ng-content></ng-content>\r\n</div>", styles: [".td-error{background-color:#f003;box-shadow:inset 0 0 0 1px red}.td-content{padding:.3rem;margin:-.3rem;box-sizing:border-box!important}\n"] }]
|
|
32
|
-
}], ctorParameters:
|
|
33
|
-
type: Input,
|
|
34
|
-
args: ['es-td']
|
|
35
|
-
}], Context: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}], onCellGeneration: [{
|
|
38
|
-
type: Output
|
|
39
|
-
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
// Angular
|
|
2
|
+
import { Component, Input, ChangeDetectionStrategy, EventEmitter, Output } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/legacy-tooltip";
|
|
5
|
+
/** Componente rappresentante una singola cella del body della tabella */
|
|
6
|
+
export class EsTd {
|
|
7
|
+
/** @ignore */
|
|
8
|
+
constructor(cdr) {
|
|
9
|
+
this.cdr = cdr;
|
|
10
|
+
/** Id della cella, dev'essere lo stesso della colonna **EsTh** relativa */
|
|
11
|
+
this.ID = "";
|
|
12
|
+
/** Quando questa cella viene generata questo evento permette di dire "ehi, sono nato!" */
|
|
13
|
+
this.onCellGeneration = new EventEmitter();
|
|
14
|
+
/** Errore attualmente presente sulla cella */
|
|
15
|
+
this.ValidationError = "";
|
|
16
|
+
}
|
|
17
|
+
/** @ignore */
|
|
18
|
+
ngAfterViewInit() {
|
|
19
|
+
this.onCellGeneration.emit({ id: this.ID, hash: this.Context, self: this });
|
|
20
|
+
}
|
|
21
|
+
/** Api per impostare un "errore" su questa cella in maniera programmatica */
|
|
22
|
+
validationError(error) {
|
|
23
|
+
this.ValidationError = error;
|
|
24
|
+
this.cdr.markForCheck();
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EsTd, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EsTd, selector: "[es-td]", inputs: { ID: ["es-td", "ID"], Context: "Context" }, outputs: { onCellGeneration: "onCellGeneration" }, ngImport: i0, template: "<div class=\"td-content\" [class.td-error]=\"!!ValidationError\" [matTooltip]=\"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.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EsTd, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: "[es-td]", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"td-content\" [class.td-error]=\"!!ValidationError\" [matTooltip]=\"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"] }]
|
|
32
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { ID: [{
|
|
33
|
+
type: Input,
|
|
34
|
+
args: ['es-td']
|
|
35
|
+
}], Context: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], onCellGeneration: [{
|
|
38
|
+
type: Output
|
|
39
|
+
}] } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2VzLXRkL2VzX3RkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9lcy10ZC9lc190ZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7OztBQUVuSCx5RUFBeUU7QUFPekUsTUFBTSxPQUFPLElBQUk7SUFjYixjQUFjO0lBQ2QsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFiMUMsMkVBQTJFO1FBQzNELE9BQUUsR0FBVyxFQUFFLENBQUM7UUFLaEMsMkZBQTJGO1FBQ2pGLHFCQUFnQixHQUF5RCxJQUFJLFlBQVksRUFBMEMsQ0FBQztRQUU5SSw4Q0FBOEM7UUFDdkMsb0JBQWUsR0FBVyxFQUFFLENBQUM7SUFHVSxDQUFDO0lBRS9DLGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCw2RUFBNkU7SUFDdEUsZUFBZSxDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDOytHQTFCUSxJQUFJO21HQUFKLElBQUksdUpDVmpCLCtJQUVNOzs0RkRRTyxJQUFJO2tCQU5oQixTQUFTOytCQUNJLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTTtzRkFNL0IsRUFBRTtzQkFBakIsS0FBSzt1QkFBQyxPQUFPO2dCQUdMLE9BQU87c0JBQWYsS0FBSztnQkFHSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqIENvbXBvbmVudGUgcmFwcHJlc2VudGFudGUgdW5hIHNpbmdvbGEgY2VsbGEgZGVsIGJvZHkgZGVsbGEgdGFiZWxsYSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcIltlcy10ZF1cIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZXNfdGQuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3R5bGVVcmxzOiBbXCJlc190ZC5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNUZCB7XHJcblxyXG4gICAgLyoqIElkIGRlbGxhIGNlbGxhLCBkZXYnZXNzZXJlIGxvIHN0ZXNzbyBkZWxsYSBjb2xvbm5hICoqRXNUaCoqIHJlbGF0aXZhICovXHJcbiAgICBASW5wdXQoJ2VzLXRkJykgSUQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqIENvbnRlc3RvIGRlbGwnb2dnZXR0byBhIGN1aSBzaSByaWZlcmlzY2UgaWwgZGF0byB2aXN1YWxpenphdG8uIENvbnRpZW5lIGwnaGFzaCBkZWxsJ29nZ2V0dG8gaW4gcXVlc3Rpb25lICovXHJcbiAgICBASW5wdXQoKSBDb250ZXh0OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIFF1YW5kbyBxdWVzdGEgY2VsbGEgdmllbmUgZ2VuZXJhdGEgcXVlc3RvIGV2ZW50byBwZXJtZXR0ZSBkaSBkaXJlIFwiZWhpLCBzb25vIG5hdG8hXCIgICovXHJcbiAgICBAT3V0cHV0KCkgb25DZWxsR2VuZXJhdGlvbjogRXZlbnRFbWl0dGVyPHtpZDogc3RyaW5nLCBoYXNoOiBzdHJpbmcsIHNlbGY6IEVzVGR9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e2lkOiBzdHJpbmcsIGhhc2g6IHN0cmluZywgc2VsZjogRXNUZH0+KCk7XHJcblxyXG4gICAgLyoqIEVycm9yZSBhdHR1YWxtZW50ZSBwcmVzZW50ZSBzdWxsYSBjZWxsYSAqL1xyXG4gICAgcHVibGljIFZhbGlkYXRpb25FcnJvcjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMub25DZWxsR2VuZXJhdGlvbi5lbWl0KHsgaWQ6IHRoaXMuSUQsIGhhc2g6IHRoaXMuQ29udGV4dCwgc2VsZjogdGhpcyB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQXBpIHBlciBpbXBvc3RhcmUgdW4gXCJlcnJvcmVcIiBzdSBxdWVzdGEgY2VsbGEgaW4gbWFuaWVyYSBwcm9ncmFtbWF0aWNhICovXHJcbiAgICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yKGVycm9yPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5WYWxpZGF0aW9uRXJyb3IgPSBlcnJvcjtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJ0ZC1jb250ZW50XCIgW2NsYXNzLnRkLWVycm9yXT1cIiEhVmFsaWRhdGlvbkVycm9yXCIgW21hdFRvb2x0aXBdPVwiVmFsaWRhdGlvbkVycm9yXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,176 +1,176 @@
|
|
|
1
|
-
//Angular
|
|
2
|
-
import { Component, Input, Output, EventEmitter, ViewChild, HostListener, ChangeDetectionStrategy } from "@angular/core";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
/** Componente rappresentante una Colonna della tabella */
|
|
6
|
-
export class EsTh {
|
|
7
|
-
/** @ignore */
|
|
8
|
-
constructor(myself, renderer) {
|
|
9
|
-
this.myself = myself;
|
|
10
|
-
this.renderer = renderer;
|
|
11
|
-
/** Dizionario di mappatura con ordinamento attuale e ordinamento successivo per gestire i passaggi di stato */
|
|
12
|
-
this.orderNext = { "NONE": "DESC", "DESC": "ASC", "ASC": null };
|
|
13
|
-
/** Indica se si sta effettuando un'operazione di resize su questa colonna */
|
|
14
|
-
this.resizingThis = false;
|
|
15
|
-
/**
|
|
16
|
-
* Storicizza l'offset di partenza del resize dell'elemento HTML per poter calcolare la nuova dimensione richiesta durente il resize
|
|
17
|
-
*
|
|
18
|
-
* nuova width = startOffset + posizione X del mouse
|
|
19
|
-
*/
|
|
20
|
-
this.startOffset = null;
|
|
21
|
-
/** Id della colonna, dev'essere lo stesso per tutti gli **EsTd** relativi */
|
|
22
|
-
this.ID = "";
|
|
23
|
-
/** Indica se questa colonna è ordinabile o meno */
|
|
24
|
-
this.Orderable = true;
|
|
25
|
-
/** Valore da mostrare all'interno della colonna. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
|
|
26
|
-
this.Display = "";
|
|
27
|
-
/** Indica se le dimnsioni di questa colonna sono modificabili o meno */
|
|
28
|
-
this.Resizable = false;
|
|
29
|
-
/** Indica se questo header è pinnato. In caso lo fosse presenta il tastino per effettuare lo spinning */
|
|
30
|
-
this.Pinned = false;
|
|
31
|
-
/**
|
|
32
|
-
* Indica se sta venendo eseguita una operazione di ricerca o meno, serve per evitare l'esecuzione di eventuale codice che potrebbe dare fastidio
|
|
33
|
-
* come ad esempio l'escuzione di un ordinamento durante il caricamento di dati nuovi
|
|
34
|
-
*/
|
|
35
|
-
this.SearchInProgress = false;
|
|
36
|
-
/** Indica se il testo presente in questo Header può andare a capo o meno, di default non può */
|
|
37
|
-
this.Wrap = false;
|
|
38
|
-
/** Indica se la colonna è fixed, cioè se non può né essere nascosta, né riposizionata. Solo le prime colonne possono essere Fixed */
|
|
39
|
-
this.Fixed = false;
|
|
40
|
-
/** Template Angular da istanziare per questo TH */
|
|
41
|
-
this.Template = null;
|
|
42
|
-
/** Evento emesso al cambio di ordinamento effettuato su questa colonna */
|
|
43
|
-
this.onOrderChange = new EventEmitter();
|
|
44
|
-
/** Evento emesso all'unpinning della colonna */
|
|
45
|
-
this.onUnpinning = new EventEmitter();
|
|
46
|
-
/** Impostato dall'**EsTable**, per controllare che ci sia almeno un TD che utilizzi quest'header */
|
|
47
|
-
this._referenced = false;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Imposta la visibilità o meno della colonna, si traduce nell'applicazione o rimozione della classe **app-display-none**
|
|
51
|
-
*
|
|
52
|
-
* @param {boolean} expression Indicazione della visibilità
|
|
53
|
-
*/
|
|
54
|
-
set Visible(expression) {
|
|
55
|
-
this._Visible = expression;
|
|
56
|
-
if (expression)
|
|
57
|
-
this.renderer.removeClass(this.myself.nativeElement, "app-display-none");
|
|
58
|
-
else
|
|
59
|
-
this.renderer.addClass(this.myself.nativeElement, "app-display-none");
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Restituisce lo stato di Visibilità della colonna in oggetto
|
|
63
|
-
*
|
|
64
|
-
* @returns {boolean} **true** se visibile, **false** altrimenti
|
|
65
|
-
*/
|
|
66
|
-
get Visible() {
|
|
67
|
-
if (this._Visible == undefined)
|
|
68
|
-
this._Visible = true;
|
|
69
|
-
return this._Visible;
|
|
70
|
-
}
|
|
71
|
-
/** @ignore */
|
|
72
|
-
ngAfterViewInit() {
|
|
73
|
-
//Assegnare direttamente il content è più veloce che passare dal native element per qualche motivo
|
|
74
|
-
this.Description = this.Display === null || this.Display === "" ? this.content.nativeElement.innerText : this.Display;
|
|
75
|
-
this.Class = this.myself.nativeElement.className.replace("app-display-none", "");
|
|
76
|
-
//Resize
|
|
77
|
-
if (this.Resizable)
|
|
78
|
-
this.renderer.addClass(this.myself.nativeElement, "app-relative");
|
|
79
|
-
}
|
|
80
|
-
/** Emette l'evento di unpinning */
|
|
81
|
-
unpin() {
|
|
82
|
-
this.onUnpinning.emit(this.ID);
|
|
83
|
-
}
|
|
84
|
-
/** Gestisce la modifica dell'ordinamento qualora venisse cliccato su questa colonna */
|
|
85
|
-
setupNextOrderAndNotify() {
|
|
86
|
-
if (!this.ID) {
|
|
87
|
-
console.log("Attempt to order a column without ID. Operation ignored");
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if (this.SearchInProgress) {
|
|
91
|
-
console.log("Attempt to order a column during a search. Operation ignored");
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
if (!this.OrderBy || !this.Orderable)
|
|
95
|
-
return;
|
|
96
|
-
var nextOrder = this.orderNext[this.Order || "NONE"];
|
|
97
|
-
this.Order = nextOrder;
|
|
98
|
-
this.onOrderChange.emit(this.Order);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Evento di inizio resize della colonna
|
|
102
|
-
*
|
|
103
|
-
* @param {any} ev Evento MouseDown
|
|
104
|
-
*/
|
|
105
|
-
onResizeStart(ev) {
|
|
106
|
-
if (!this.Resizable)
|
|
107
|
-
return;
|
|
108
|
-
this.resizingThis = true;
|
|
109
|
-
this.startOffset = this.myself.nativeElement.offsetWidth - ev.pageX;
|
|
110
|
-
}
|
|
111
|
-
/** Listener per la fine dell'operazione di resize */
|
|
112
|
-
onMouseUp() {
|
|
113
|
-
if (!this.Resizable)
|
|
114
|
-
return;
|
|
115
|
-
this.resizingThis = false;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Listener per gestire il movimento del mouse qualora un'operazione di resize fosse in esecuzione
|
|
119
|
-
*
|
|
120
|
-
* @param {$event} ev Evento MouseMove
|
|
121
|
-
*/
|
|
122
|
-
onMouseMove($event) {
|
|
123
|
-
if (!this.Resizable || !this.resizingThis)
|
|
124
|
-
return;
|
|
125
|
-
//Uso jquery per non dover far partire un intero ciclo di change detection solo per fare un resize del cazzo
|
|
126
|
-
//(anche perché viene lanciato ogni 0.1 secondo quindi not a good idea)
|
|
127
|
-
this.myself.nativeElement.style.width = (this.startOffset + $event.pageX) + "px";
|
|
128
|
-
//Fermo il bubbling per non fare cose strane
|
|
129
|
-
$event.preventDefault();
|
|
130
|
-
}
|
|
131
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
133
|
-
}
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
135
|
-
type: Component,
|
|
136
|
-
args: [{ selector: "[es-th]", changeDetection: ChangeDetectionStrategy.OnPush, 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>" }]
|
|
137
|
-
}], ctorParameters:
|
|
138
|
-
type: Input,
|
|
139
|
-
args: ['es-th']
|
|
140
|
-
}], Order: [{
|
|
141
|
-
type: Input
|
|
142
|
-
}], Orderable: [{
|
|
143
|
-
type: Input
|
|
144
|
-
}], Display: [{
|
|
145
|
-
type: Input
|
|
146
|
-
}], Resizable: [{
|
|
147
|
-
type: Input
|
|
148
|
-
}], Pinned: [{
|
|
149
|
-
type: Input
|
|
150
|
-
}], SearchInProgress: [{
|
|
151
|
-
type: Input
|
|
152
|
-
}], OrderBy: [{
|
|
153
|
-
type: Input
|
|
154
|
-
}], Wrap: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}], Fixed: [{
|
|
157
|
-
type: Input
|
|
158
|
-
}], Template: [{
|
|
159
|
-
type: Input
|
|
160
|
-
}], onOrderChange: [{
|
|
161
|
-
type: Output
|
|
162
|
-
}], onUnpinning: [{
|
|
163
|
-
type: Output
|
|
164
|
-
}], content: [{
|
|
165
|
-
type: ViewChild,
|
|
166
|
-
args: ["content", { static: false }]
|
|
167
|
-
}], Visible: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], onMouseUp: [{
|
|
170
|
-
type: HostListener,
|
|
171
|
-
args: ['window:mouseup.out-zone']
|
|
172
|
-
}], onMouseMove: [{
|
|
173
|
-
type: HostListener,
|
|
174
|
-
args: ['window:mousemove.out-zone', ['$event']]
|
|
175
|
-
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2VzLXRoL2VzX3RoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9lcy10aC9lc190aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYyxTQUFTLEVBQWEsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFaEosMERBQTBEO0FBTTFELE1BQU0sT0FBTyxJQUFJO0lBd0ViLGNBQWM7SUFDZCxZQUFvQixNQUFrQixFQUFVLFFBQW1CO1FBQS9DLFdBQU0sR0FBTixNQUFNLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBdkVuRSwrR0FBK0c7UUFDdkcsY0FBUyxHQUErQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFLL0csNkVBQTZFO1FBQ3JFLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDSyxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUVuQyw2RUFBNkU7UUFDN0QsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUtoQyxtREFBbUQ7UUFDMUMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVuQyw4SEFBOEg7UUFDckgsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUU5Qix3RUFBd0U7UUFDL0QsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVwQyx5R0FBeUc7UUFDaEcsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUVqQzs7O1dBR0c7UUFDTSxxQkFBZ0IsR0FB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c0JBQS9DLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFtQjFCLE9BQU87c0JBQW5CLEtBQUs7Z0JBMEVDLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBY2hDLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvL0FuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgUmVuZGVyZXIyLCBIb3N0TGlzdGVuZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKiBDb21wb25lbnRlIHJhcHByZXNlbnRhbnRlIHVuYSBDb2xvbm5hIGRlbGxhIHRhYmVsbGEgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJbZXMtdGhdXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2VzX3RoLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNUaCB7XHJcblxyXG4gICAgLyoqIERpemlvbmFyaW8gZGkgbWFwcGF0dXJhIGNvbiBvcmRpbmFtZW50byBhdHR1YWxlIGUgb3JkaW5hbWVudG8gc3VjY2Vzc2l2byBwZXIgZ2VzdGlyZSBpIHBhc3NhZ2dpIGRpIHN0YXRvICovXHJcbiAgICBwcml2YXRlIG9yZGVyTmV4dDogeyBbaW5kZXg6IHN0cmluZ106ICdERVNDJyB8ICdBU0MnIHwgbnVsbCB9ID0geyBcIk5PTkVcIjogXCJERVNDXCIsIFwiREVTQ1wiOiBcIkFTQ1wiLCBcIkFTQ1wiOiBudWxsIH07XHJcblxyXG4gICAgLyoqIEluZGljYXppb25lIHN1bGxhIHZpc2liaWxpdMOgIGRlbGxhIGNvbG9ubmEgKi9cclxuICAgIHByaXZhdGUgX1Zpc2libGU6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBzaSBzdGEgZWZmZXR0dWFuZG8gdW4nb3BlcmF6aW9uZSBkaSByZXNpemUgc3UgcXVlc3RhIGNvbG9ubmEgKi9cclxuICAgIHByaXZhdGUgcmVzaXppbmdUaGlzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9yaWNpenphIGwnb2Zmc2V0IGRpIHBhcnRlbnphIGRlbCByZXNpemUgZGVsbCdlbGVtZW50byBIVE1MIHBlciBwb3RlciBjYWxjb2xhcmUgbGEgbnVvdmEgZGltZW5zaW9uZSByaWNoaWVzdGEgZHVyZW50ZSBpbCByZXNpemUgXHJcbiAgICAgKiBcclxuICAgICAqIG51b3ZhIHdpZHRoID0gc3RhcnRPZmZzZXQgKyBwb3NpemlvbmUgWCBkZWwgbW91c2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdGFydE9mZnNldDogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgICAvKiogSWQgZGVsbGEgY29sb25uYSwgZGV2J2Vzc2VyZSBsbyBzdGVzc28gcGVyIHR1dHRpIGdsaSAqKkVzVGQqKiByZWxhdGl2aSAqL1xyXG4gICAgQElucHV0KCdlcy10aCcpIElEOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBPcmRpbmFtZW50byBhdHR1YWxlIGRlbGxhIGNvbG9ubmEgKi9cclxuICAgIEBJbnB1dCgpIE9yZGVyPzogJ0RFU0MnIHwgJ0FTQyc7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBxdWVzdGEgY29sb25uYSDDqCBvcmRpbmFiaWxlIG8gbWVubyAqL1xyXG4gICAgQElucHV0KCkgT3JkZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogVmFsb3JlIGRhIG1vc3RyYXJlIGFsbCdpbnRlcm5vIGRlbGxhIGNvbG9ubmEuIFNlIG9tZXNzbyB2ZXJyw6AgcHJvaWV0dGF0byBpbCBjb250ZW51dG8gZGFsIHRlbXBsYXRlIGluIGN1aSDDqCBzdGF0YSB1c2F0YSAqL1xyXG4gICAgQElucHV0KCkgRGlzcGxheTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGxlIGRpbW5zaW9uaSBkaSBxdWVzdGEgY29sb25uYSBzb25vIG1vZGlmaWNhYmlsaSBvIG1lbm8gKi9cclxuICAgIEBJbnB1dCgpIFJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgcXVlc3RvIGhlYWRlciDDqCBwaW5uYXRvLiBJbiBjYXNvIGxvIGZvc3NlIHByZXNlbnRhIGlsIHRhc3Rpbm8gcGVyIGVmZmV0dHVhcmUgbG8gc3Bpbm5pbmcgKi9cclxuICAgIEBJbnB1dCgpIFBpbm5lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIHN0YSB2ZW5lbmRvIGVzZWd1aXRhIHVuYSBvcGVyYXppb25lIGRpIHJpY2VyY2EgbyBtZW5vLCBzZXJ2ZSBwZXIgZXZpdGFyZSBsJ2VzZWN1emlvbmUgZGkgZXZlbnR1YWxlIGNvZGljZSBjaGUgcG90cmViYmUgZGFyZSBmYXN0aWRpbyBcclxuICAgICAqIGNvbWUgYWQgZXNlbXBpbyBsJ2VzY3V6aW9uZSBkaSB1biBvcmRpbmFtZW50byBkdXJhbnRlIGlsIGNhcmljYW1lbnRvIGRpIGRhdGkgbnVvdmlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgU2VhcmNoSW5Qcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbXBvc3RhdG8gZGFsbCcqKkVzVGFibGUqKiwgc2VydmUgcGVyIHBlcm1ldHRlcmUgbyBtZW5vIGRpIGVmZmV0dHVhcmUgb3JkaW5hbWVudGkgZGF0aSBzdSBxdWVzdGEgY29sb25uYSAqL1xyXG4gICAgQElucHV0KCkgT3JkZXJCeTogYm9vbGVhbjtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGlsIHRlc3RvIHByZXNlbnRlIGluIHF1ZXN0byBIZWFkZXIgcHXDsiBhbmRhcmUgYSBjYXBvIG8gbWVubywgZGkgZGVmYXVsdCBub24gcHXDsiAqL1xyXG4gICAgQElucHV0KCkgV3JhcDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbGEgY29sb25uYSDDqCBmaXhlZCwgY2lvw6ggc2Ugbm9uIHB1w7IgbsOpIGVzc2VyZSBuYXNjb3N0YSwgbsOpIHJpcG9zaXppb25hdGEuIFNvbG8gbGUgcHJpbWUgY29sb25uZSBwb3Nzb25vIGVzc2VyZSBGaXhlZCAqL1xyXG4gICAgQElucHV0KCkgRml4ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogVGVtcGxhdGUgQW5ndWxhciBkYSBpc3RhbnppYXJlIHBlciBxdWVzdG8gVEggKi9cclxuICAgIEBJbnB1dCgpIFRlbXBsYXRlPzogYW55ID0gbnVsbDtcclxuXHJcbiAgICAvKiogRXZlbnRvIGVtZXNzbyBhbCBjYW1iaW8gZGkgb3JkaW5hbWVudG8gZWZmZXR0dWF0byBzdSBxdWVzdGEgY29sb25uYSAqL1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbk9yZGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8J0RFU0MnIHwgJ0FTQycgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8J0RFU0MnIHwgJ0FTQycgfCBudWxsPigpO1xyXG5cclxuICAgIC8qKiBFdmVudG8gZW1lc3NvIGFsbCd1bnBpbm5pbmcgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblVucGlubmluZzogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICAvKiogUHJvaWV6aW9uZSBkZWwgY29udGVudXRvIGRpIHF1ZXN0YSBjb2xvbm5hICovXHJcbiAgICBAVmlld0NoaWxkKFwiY29udGVudFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgY29udGVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKiogQ2xhc3NpIGRhIGFwcGxpY2FyZSBhbGxhIGNvbG9ubmEgKi9cclxuICAgIHB1YmxpYyBDbGFzczogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBJbXBvc3RhdG8gZGFsbCcqKkVzVGFibGUqKiwgcGVyIGNvbnRyb2xsYXJlIGNoZSBjaSBzaWEgYWxtZW5vIHVuIFREIGNoZSB1dGlsaXp6aSBxdWVzdCdoZWFkZXIgKi9cclxuICAgIHB1YmxpYyBfcmVmZXJlbmNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBWYXJpYWJpbGUgZmluYWxlIHN1IGN1aSDDqCBiaW5kYXRvIGlsIGNvbnRlbnV0byBkZWxsYSBjZWxsYS4gU2Fyw6AgdmFsb3JpenphdG8gYSAqKkRpc3BsYXkqKiBzZSBzcGVjaWZpY2F0bywgYWxsJyoqaW5uZXJIVE1MKiogZGVsbCdlbGVtZW50byBwcm9pZXR0YXRvIGFsdHJpbWVudGkgKi9cclxuICAgIHB1YmxpYyBEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG15c2VsZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgbGEgdmlzaWJpbGl0w6AgbyBtZW5vIGRlbGxhIGNvbG9ubmEsIHNpIHRyYWR1Y2UgbmVsbCdhcHBsaWNhemlvbmUgbyByaW1vemlvbmUgZGVsbGEgY2xhc3NlICoqYXBwLWRpc3BsYXktbm9uZSoqXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZXhwcmVzc2lvbiBJbmRpY2F6aW9uZSBkZWxsYSB2aXNpYmlsaXTDoFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBzZXQgVmlzaWJsZShleHByZXNzaW9uOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fVmlzaWJsZSA9IGV4cHJlc3Npb247XHJcblxyXG4gICAgICAgIGlmIChleHByZXNzaW9uKVxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQsIFwiYXBwLWRpc3BsYXktbm9uZVwiKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5teXNlbGYubmF0aXZlRWxlbWVudCwgXCJhcHAtZGlzcGxheS1ub25lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzdGl0dWlzY2UgbG8gc3RhdG8gZGkgVmlzaWJpbGl0w6AgZGVsbGEgY29sb25uYSBpbiBvZ2dldHRvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSAqKnRydWUqKiBzZSB2aXNpYmlsZSwgKipmYWxzZSoqIGFsdHJpbWVudGlcclxuICAgICAqL1xyXG4gICAgZ2V0IFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX1Zpc2libGUgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICB0aGlzLl9WaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX1Zpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICAvL0Fzc2VnbmFyZSBkaXJldHRhbWVudGUgaWwgY29udGVudCDDqCBwacO5IHZlbG9jZSBjaGUgcGFzc2FyZSBkYWwgbmF0aXZlIGVsZW1lbnQgcGVyIHF1YWxjaGUgbW90aXZvXHJcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHRoaXMuRGlzcGxheSA9PT0gbnVsbCB8fCB0aGlzLkRpc3BsYXkgPT09IFwiXCIgPyB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudC5pbm5lclRleHQgOiB0aGlzLkRpc3BsYXk7XHJcblxyXG4gICAgICAgIHRoaXMuQ2xhc3MgPSB0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKFwiYXBwLWRpc3BsYXktbm9uZVwiLCBcIlwiKTtcclxuXHJcbiAgICAgICAgLy9SZXNpemVcclxuICAgICAgICBpZiAodGhpcy5SZXNpemFibGUpXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5teXNlbGYubmF0aXZlRWxlbWVudCwgXCJhcHAtcmVsYXRpdmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEVtZXR0ZSBsJ2V2ZW50byBkaSB1bnBpbm5pbmcgKi9cclxuICAgIHVucGluKCkge1xyXG4gICAgICAgIHRoaXMub25VbnBpbm5pbmcuZW1pdCh0aGlzLklEKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogR2VzdGlzY2UgbGEgbW9kaWZpY2EgZGVsbCdvcmRpbmFtZW50byBxdWFsb3JhIHZlbmlzc2UgY2xpY2NhdG8gc3UgcXVlc3RhIGNvbG9ubmEgKi9cclxuICAgIHNldHVwTmV4dE9yZGVyQW5kTm90aWZ5KCkge1xyXG4gICAgICAgIGlmICghdGhpcy5JRCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkF0dGVtcHQgdG8gb3JkZXIgYSBjb2x1bW4gd2l0aG91dCBJRC4gT3BlcmF0aW9uIGlnbm9yZWRcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLlNlYXJjaEluUHJvZ3Jlc3MpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJBdHRlbXB0IHRvIG9yZGVyIGEgY29sdW1uIGR1cmluZyBhIHNlYXJjaC4gT3BlcmF0aW9uIGlnbm9yZWRcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5PcmRlckJ5IHx8ICF0aGlzLk9yZGVyYWJsZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB2YXIgbmV4dE9yZGVyID0gdGhpcy5vcmRlck5leHRbdGhpcy5PcmRlciB8fCBcIk5PTkVcIl07XHJcbiAgICAgICAgdGhpcy5PcmRlciA9IG5leHRPcmRlcjtcclxuXHJcbiAgICAgICAgdGhpcy5vbk9yZGVyQ2hhbmdlLmVtaXQodGhpcy5PcmRlcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudG8gZGkgaW5pemlvIHJlc2l6ZSBkZWxsYSBjb2xvbm5hXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBldiBFdmVudG8gTW91c2VEb3duXHJcbiAgICAgKi9cclxuICAgIG9uUmVzaXplU3RhcnQoZXYpIHtcclxuICAgICAgICBpZiAoIXRoaXMuUmVzaXphYmxlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMucmVzaXppbmdUaGlzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gdGhpcy5teXNlbGYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIGV2LnBhZ2VYO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBMaXN0ZW5lciBwZXIgbGEgZmluZSBkZWxsJ29wZXJhemlvbmUgZGkgcmVzaXplICovXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bW91c2V1cC5vdXQtem9uZScpXHJcbiAgICBwdWJsaWMgb25Nb3VzZVVwKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5SZXNpemFibGUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5yZXNpemluZ1RoaXMgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3RlbmVyIHBlciBnZXN0aXJlIGlsIG1vdmltZW50byBkZWwgbW91c2UgcXVhbG9yYSB1bidvcGVyYXppb25lIGRpIHJlc2l6ZSBmb3NzZSBpbiBlc2VjdXppb25lXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7JGV2ZW50fSBldiBFdmVudG8gTW91c2VNb3ZlXHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZW1vdmUub3V0LXpvbmUnLCBbJyRldmVudCddKVxyXG4gICAgcHVibGljIG9uTW91c2VNb3ZlKCRldmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5SZXNpemFibGUgfHwgIXRoaXMucmVzaXppbmdUaGlzKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIC8vVXNvIGpxdWVyeSBwZXIgbm9uIGRvdmVyIGZhciBwYXJ0aXJlIHVuIGludGVybyBjaWNsbyBkaSBjaGFuZ2UgZGV0ZWN0aW9uIHNvbG8gcGVyIGZhcmUgdW4gcmVzaXplIGRlbCBjYXp6b1xyXG4gICAgICAgIC8vKGFuY2hlIHBlcmNow6kgdmllbmUgbGFuY2lhdG8gb2duaSAwLjEgc2Vjb25kbyBxdWluZGkgbm90IGEgZ29vZCBpZGVhKVxyXG4gICAgICAgIHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSAodGhpcy5zdGFydE9mZnNldCArICRldmVudC5wYWdlWCkgKyBcInB4XCI7XHJcblxyXG4gICAgICAgIC8vRmVybW8gaWwgYnViYmxpbmcgcGVyIG5vbiBmYXJlIGNvc2Ugc3RyYW5lXHJcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbn0iLCI8c3BhbiAoY2xpY2spPVwic2V0dXBOZXh0T3JkZXJBbmROb3RpZnkoKVwiIFtjbGFzcy5hcHAtbm8tc2VsZWN0aW9uXT1cIiEhSUQgJiYgT3JkZXJhYmxlXCIgW2NsYXNzLmFwcC1wb2ludGVyXT1cIiEhSUQgJiYgT3JkZXJhYmxlXCI+XHJcbiAgICA8c3BhbiAjY29udGVudD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGVudCAqbmdJZj1cIiFUZW1wbGF0ZVwiPjwvbmctY29udGVudD5cclxuICAgIDwvc3Bhbj4mbmJzcDtcclxuICAgIDxzcGFuIGNsYXNzPVwiZmFcIiBbY2xhc3MuZmEtY2hldnJvbi1kb3duXT1cIk9yZGVyID09ICdERVNDJ1wiIFtjbGFzcy5mYS1jaGV2cm9uLXVwXT1cIk9yZGVyID09ICdBU0MnXCI+PC9zcGFuPlxyXG48L3NwYW4+XHJcbjxzcGFuICpuZ0lmPVwiUGlubmVkICYmICFGaXhlZFwiIGNsYXNzPVwiYXBwLXBvaW50ZXIgZmEgZmEtdGh1bWItdGFjayBlc3QtcXVpY2stdW5waW5cIiAoY2xpY2spPVwidW5waW4oKVwiPjwvc3Bhbj5cclxuPGRpdiBbaGlkZGVuXT1cIiFSZXNpemFibGUgfHwgRml4ZWQgfHwgUGlubmVkXCIgY2xhc3M9XCJlc3QtaGVhZC1yZXNpemVyXCIgKG1vdXNlZG93bik9XCJvblJlc2l6ZVN0YXJ0KCRldmVudClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJlc3QtaGVhZC1yZXNpemVyLWludGVybmFsXCI+PC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
1
|
+
//Angular
|
|
2
|
+
import { Component, Input, Output, EventEmitter, ViewChild, HostListener, ChangeDetectionStrategy } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
/** Componente rappresentante una Colonna della tabella */
|
|
6
|
+
export class EsTh {
|
|
7
|
+
/** @ignore */
|
|
8
|
+
constructor(myself, renderer) {
|
|
9
|
+
this.myself = myself;
|
|
10
|
+
this.renderer = renderer;
|
|
11
|
+
/** Dizionario di mappatura con ordinamento attuale e ordinamento successivo per gestire i passaggi di stato */
|
|
12
|
+
this.orderNext = { "NONE": "DESC", "DESC": "ASC", "ASC": null };
|
|
13
|
+
/** Indica se si sta effettuando un'operazione di resize su questa colonna */
|
|
14
|
+
this.resizingThis = false;
|
|
15
|
+
/**
|
|
16
|
+
* Storicizza l'offset di partenza del resize dell'elemento HTML per poter calcolare la nuova dimensione richiesta durente il resize
|
|
17
|
+
*
|
|
18
|
+
* nuova width = startOffset + posizione X del mouse
|
|
19
|
+
*/
|
|
20
|
+
this.startOffset = null;
|
|
21
|
+
/** Id della colonna, dev'essere lo stesso per tutti gli **EsTd** relativi */
|
|
22
|
+
this.ID = "";
|
|
23
|
+
/** Indica se questa colonna è ordinabile o meno */
|
|
24
|
+
this.Orderable = true;
|
|
25
|
+
/** Valore da mostrare all'interno della colonna. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
|
|
26
|
+
this.Display = "";
|
|
27
|
+
/** Indica se le dimnsioni di questa colonna sono modificabili o meno */
|
|
28
|
+
this.Resizable = false;
|
|
29
|
+
/** Indica se questo header è pinnato. In caso lo fosse presenta il tastino per effettuare lo spinning */
|
|
30
|
+
this.Pinned = false;
|
|
31
|
+
/**
|
|
32
|
+
* Indica se sta venendo eseguita una operazione di ricerca o meno, serve per evitare l'esecuzione di eventuale codice che potrebbe dare fastidio
|
|
33
|
+
* come ad esempio l'escuzione di un ordinamento durante il caricamento di dati nuovi
|
|
34
|
+
*/
|
|
35
|
+
this.SearchInProgress = false;
|
|
36
|
+
/** Indica se il testo presente in questo Header può andare a capo o meno, di default non può */
|
|
37
|
+
this.Wrap = false;
|
|
38
|
+
/** Indica se la colonna è fixed, cioè se non può né essere nascosta, né riposizionata. Solo le prime colonne possono essere Fixed */
|
|
39
|
+
this.Fixed = false;
|
|
40
|
+
/** Template Angular da istanziare per questo TH */
|
|
41
|
+
this.Template = null;
|
|
42
|
+
/** Evento emesso al cambio di ordinamento effettuato su questa colonna */
|
|
43
|
+
this.onOrderChange = new EventEmitter();
|
|
44
|
+
/** Evento emesso all'unpinning della colonna */
|
|
45
|
+
this.onUnpinning = new EventEmitter();
|
|
46
|
+
/** Impostato dall'**EsTable**, per controllare che ci sia almeno un TD che utilizzi quest'header */
|
|
47
|
+
this._referenced = false;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Imposta la visibilità o meno della colonna, si traduce nell'applicazione o rimozione della classe **app-display-none**
|
|
51
|
+
*
|
|
52
|
+
* @param {boolean} expression Indicazione della visibilità
|
|
53
|
+
*/
|
|
54
|
+
set Visible(expression) {
|
|
55
|
+
this._Visible = expression;
|
|
56
|
+
if (expression)
|
|
57
|
+
this.renderer.removeClass(this.myself.nativeElement, "app-display-none");
|
|
58
|
+
else
|
|
59
|
+
this.renderer.addClass(this.myself.nativeElement, "app-display-none");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Restituisce lo stato di Visibilità della colonna in oggetto
|
|
63
|
+
*
|
|
64
|
+
* @returns {boolean} **true** se visibile, **false** altrimenti
|
|
65
|
+
*/
|
|
66
|
+
get Visible() {
|
|
67
|
+
if (this._Visible == undefined)
|
|
68
|
+
this._Visible = true;
|
|
69
|
+
return this._Visible;
|
|
70
|
+
}
|
|
71
|
+
/** @ignore */
|
|
72
|
+
ngAfterViewInit() {
|
|
73
|
+
//Assegnare direttamente il content è più veloce che passare dal native element per qualche motivo
|
|
74
|
+
this.Description = this.Display === null || this.Display === "" ? this.content.nativeElement.innerText : this.Display;
|
|
75
|
+
this.Class = this.myself.nativeElement.className.replace("app-display-none", "");
|
|
76
|
+
//Resize
|
|
77
|
+
if (this.Resizable)
|
|
78
|
+
this.renderer.addClass(this.myself.nativeElement, "app-relative");
|
|
79
|
+
}
|
|
80
|
+
/** Emette l'evento di unpinning */
|
|
81
|
+
unpin() {
|
|
82
|
+
this.onUnpinning.emit(this.ID);
|
|
83
|
+
}
|
|
84
|
+
/** Gestisce la modifica dell'ordinamento qualora venisse cliccato su questa colonna */
|
|
85
|
+
setupNextOrderAndNotify() {
|
|
86
|
+
if (!this.ID) {
|
|
87
|
+
console.log("Attempt to order a column without ID. Operation ignored");
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (this.SearchInProgress) {
|
|
91
|
+
console.log("Attempt to order a column during a search. Operation ignored");
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (!this.OrderBy || !this.Orderable)
|
|
95
|
+
return;
|
|
96
|
+
var nextOrder = this.orderNext[this.Order || "NONE"];
|
|
97
|
+
this.Order = nextOrder;
|
|
98
|
+
this.onOrderChange.emit(this.Order);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Evento di inizio resize della colonna
|
|
102
|
+
*
|
|
103
|
+
* @param {any} ev Evento MouseDown
|
|
104
|
+
*/
|
|
105
|
+
onResizeStart(ev) {
|
|
106
|
+
if (!this.Resizable)
|
|
107
|
+
return;
|
|
108
|
+
this.resizingThis = true;
|
|
109
|
+
this.startOffset = this.myself.nativeElement.offsetWidth - ev.pageX;
|
|
110
|
+
}
|
|
111
|
+
/** Listener per la fine dell'operazione di resize */
|
|
112
|
+
onMouseUp() {
|
|
113
|
+
if (!this.Resizable)
|
|
114
|
+
return;
|
|
115
|
+
this.resizingThis = false;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Listener per gestire il movimento del mouse qualora un'operazione di resize fosse in esecuzione
|
|
119
|
+
*
|
|
120
|
+
* @param {$event} ev Evento MouseMove
|
|
121
|
+
*/
|
|
122
|
+
onMouseMove($event) {
|
|
123
|
+
if (!this.Resizable || !this.resizingThis)
|
|
124
|
+
return;
|
|
125
|
+
//Uso jquery per non dover far partire un intero ciclo di change detection solo per fare un resize del cazzo
|
|
126
|
+
//(anche perché viene lanciato ogni 0.1 secondo quindi not a good idea)
|
|
127
|
+
this.myself.nativeElement.style.width = (this.startOffset + $event.pageX) + "px";
|
|
128
|
+
//Fermo il bubbling per non fare cose strane
|
|
129
|
+
$event.preventDefault();
|
|
130
|
+
}
|
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EsTh, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EsTh, selector: "[es-th]", inputs: { ID: ["es-th", "ID"], Order: "Order", Orderable: "Orderable", Display: "Display", Resizable: "Resizable", Pinned: "Pinned", SearchInProgress: "SearchInProgress", OrderBy: "OrderBy", Wrap: "Wrap", Fixed: "Fixed", Template: "Template", Visible: "Visible" }, 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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
133
|
+
}
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EsTh, decorators: [{
|
|
135
|
+
type: Component,
|
|
136
|
+
args: [{ selector: "[es-th]", changeDetection: ChangeDetectionStrategy.OnPush, 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>" }]
|
|
137
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { ID: [{
|
|
138
|
+
type: Input,
|
|
139
|
+
args: ['es-th']
|
|
140
|
+
}], Order: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], Orderable: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], Display: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], Resizable: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], Pinned: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], SearchInProgress: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], OrderBy: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], Wrap: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], Fixed: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], Template: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], onOrderChange: [{
|
|
161
|
+
type: Output
|
|
162
|
+
}], onUnpinning: [{
|
|
163
|
+
type: Output
|
|
164
|
+
}], content: [{
|
|
165
|
+
type: ViewChild,
|
|
166
|
+
args: ["content", { static: false }]
|
|
167
|
+
}], Visible: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], onMouseUp: [{
|
|
170
|
+
type: HostListener,
|
|
171
|
+
args: ['window:mouseup.out-zone']
|
|
172
|
+
}], onMouseMove: [{
|
|
173
|
+
type: HostListener,
|
|
174
|
+
args: ['window:mousemove.out-zone', ['$event']]
|
|
175
|
+
}] } });
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2VzLXRoL2VzX3RoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9lcy10aC9lc190aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYyxTQUFTLEVBQWEsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFaEosMERBQTBEO0FBTTFELE1BQU0sT0FBTyxJQUFJO0lBd0ViLGNBQWM7SUFDZCxZQUFvQixNQUFrQixFQUFVLFFBQW1CO1FBQS9DLFdBQU0sR0FBTixNQUFNLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBdkVuRSwrR0FBK0c7UUFDdkcsY0FBUyxHQUErQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFLL0csNkVBQTZFO1FBQ3JFLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDSyxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUVuQyw2RUFBNkU7UUFDN0QsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUtoQyxtREFBbUQ7UUFDMUMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVuQyw4SEFBOEg7UUFDckgsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUU5Qix3RUFBd0U7UUFDL0QsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVwQyx5R0FBeUc7UUFDaEcsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUVqQzs7O1dBR0c7UUFDTSxxQkFBZ0IsR0FB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M0IsTUFBTTtnQkFHa0MsT0FBTztzQkFBL0MsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQW1CMUIsT0FBTztzQkFBbkIsS0FBSztnQkEwRUMsU0FBUztzQkFEZixZQUFZO3VCQUFDLHlCQUF5QjtnQkFjaEMsV0FBVztzQkFEakIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBSZW5kZXJlcjIsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqIENvbXBvbmVudGUgcmFwcHJlc2VudGFudGUgdW5hIENvbG9ubmEgZGVsbGEgdGFiZWxsYSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcIltlcy10aF1cIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZXNfdGguY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc1RoIHtcclxuXHJcbiAgICAvKiogRGl6aW9uYXJpbyBkaSBtYXBwYXR1cmEgY29uIG9yZGluYW1lbnRvIGF0dHVhbGUgZSBvcmRpbmFtZW50byBzdWNjZXNzaXZvIHBlciBnZXN0aXJlIGkgcGFzc2FnZ2kgZGkgc3RhdG8gKi9cclxuICAgIHByaXZhdGUgb3JkZXJOZXh0OiB7IFtpbmRleDogc3RyaW5nXTogJ0RFU0MnIHwgJ0FTQycgfCBudWxsIH0gPSB7IFwiTk9ORVwiOiBcIkRFU0NcIiwgXCJERVNDXCI6IFwiQVNDXCIsIFwiQVNDXCI6IG51bGwgfTtcclxuXHJcbiAgICAvKiogSW5kaWNhemlvbmUgc3VsbGEgdmlzaWJpbGl0w6AgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgcHJpdmF0ZSBfVmlzaWJsZTogYm9vbGVhbjtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIHNpIHN0YSBlZmZldHR1YW5kbyB1bidvcGVyYXppb25lIGRpIHJlc2l6ZSBzdSBxdWVzdGEgY29sb25uYSAqL1xyXG4gICAgcHJpdmF0ZSByZXNpemluZ1RoaXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0b3JpY2l6emEgbCdvZmZzZXQgZGkgcGFydGVuemEgZGVsIHJlc2l6ZSBkZWxsJ2VsZW1lbnRvIEhUTUwgcGVyIHBvdGVyIGNhbGNvbGFyZSBsYSBudW92YSBkaW1lbnNpb25lIHJpY2hpZXN0YSBkdXJlbnRlIGlsIHJlc2l6ZSBcclxuICAgICAqIFxyXG4gICAgICogbnVvdmEgd2lkdGggPSBzdGFydE9mZnNldCArIHBvc2l6aW9uZSBYIGRlbCBtb3VzZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXJ0T2Zmc2V0OiBudW1iZXIgPSBudWxsO1xyXG5cclxuICAgIC8qKiBJZCBkZWxsYSBjb2xvbm5hLCBkZXYnZXNzZXJlIGxvIHN0ZXNzbyBwZXIgdHV0dGkgZ2xpICoqRXNUZCoqIHJlbGF0aXZpICovXHJcbiAgICBASW5wdXQoJ2VzLXRoJykgSUQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqIE9yZGluYW1lbnRvIGF0dHVhbGUgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgQElucHV0KCkgT3JkZXI/OiAnREVTQycgfCAnQVNDJztcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIHF1ZXN0YSBjb2xvbm5hIMOoIG9yZGluYWJpbGUgbyBtZW5vICovXHJcbiAgICBASW5wdXQoKSBPcmRlcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKiBWYWxvcmUgZGEgbW9zdHJhcmUgYWxsJ2ludGVybm8gZGVsbGEgY29sb25uYS4gU2Ugb21lc3NvIHZlcnLDoCBwcm9pZXR0YXRvIGlsIGNvbnRlbnV0byBkYWwgdGVtcGxhdGUgaW4gY3VpIMOoIHN0YXRhIHVzYXRhICovXHJcbiAgICBASW5wdXQoKSBEaXNwbGF5OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbGUgZGltbnNpb25pIGRpIHF1ZXN0YSBjb2xvbm5hIHNvbm8gbW9kaWZpY2FiaWxpIG8gbWVubyAqL1xyXG4gICAgQElucHV0KCkgUmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBxdWVzdG8gaGVhZGVyIMOoIHBpbm5hdG8uIEluIGNhc28gbG8gZm9zc2UgcHJlc2VudGEgaWwgdGFzdGlubyBwZXIgZWZmZXR0dWFyZSBsbyBzcGlubmluZyAqL1xyXG4gICAgQElucHV0KCkgUGlubmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2Ugc3RhIHZlbmVuZG8gZXNlZ3VpdGEgdW5hIG9wZXJhemlvbmUgZGkgcmljZXJjYSBvIG1lbm8sIHNlcnZlIHBlciBldml0YXJlIGwnZXNlY3V6aW9uZSBkaSBldmVudHVhbGUgY29kaWNlIGNoZSBwb3RyZWJiZSBkYXJlIGZhc3RpZGlvIFxyXG4gICAgICogY29tZSBhZCBlc2VtcGlvIGwnZXNjdXppb25lIGRpIHVuIG9yZGluYW1lbnRvIGR1cmFudGUgaWwgY2FyaWNhbWVudG8gZGkgZGF0aSBudW92aVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBTZWFyY2hJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEltcG9zdGF0byBkYWxsJyoqRXNUYWJsZSoqLCBzZXJ2ZSBwZXIgcGVybWV0dGVyZSBvIG1lbm8gZGkgZWZmZXR0dWFyZSBvcmRpbmFtZW50aSBkYXRpIHN1IHF1ZXN0YSBjb2xvbm5hICovXHJcbiAgICBASW5wdXQoKSBPcmRlckJ5OiBib29sZWFuO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgaWwgdGVzdG8gcHJlc2VudGUgaW4gcXVlc3RvIEhlYWRlciBwdcOyIGFuZGFyZSBhIGNhcG8gbyBtZW5vLCBkaSBkZWZhdWx0IG5vbiBwdcOyICovXHJcbiAgICBASW5wdXQoKSBXcmFwOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBsYSBjb2xvbm5hIMOoIGZpeGVkLCBjaW/DqCBzZSBub24gcHXDsiBuw6kgZXNzZXJlIG5hc2Nvc3RhLCBuw6kgcmlwb3NpemlvbmF0YS4gU29sbyBsZSBwcmltZSBjb2xvbm5lIHBvc3Nvbm8gZXNzZXJlIEZpeGVkICovXHJcbiAgICBASW5wdXQoKSBGaXhlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBUZW1wbGF0ZSBBbmd1bGFyIGRhIGlzdGFuemlhcmUgcGVyIHF1ZXN0byBUSCAqL1xyXG4gICAgQElucHV0KCkgVGVtcGxhdGU/OiBhbnkgPSBudWxsO1xyXG5cclxuICAgIC8qKiBFdmVudG8gZW1lc3NvIGFsIGNhbWJpbyBkaSBvcmRpbmFtZW50byBlZmZldHR1YXRvIHN1IHF1ZXN0YSBjb2xvbm5hICovXHJcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uT3JkZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjwnREVTQycgfCAnQVNDJyB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjwnREVTQycgfCAnQVNDJyB8IG51bGw+KCk7XHJcblxyXG4gICAgLyoqIEV2ZW50byBlbWVzc28gYWxsJ3VucGlubmluZyBkZWxsYSBjb2xvbm5hICovXHJcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uVW5waW5uaW5nOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIC8qKiBQcm9pZXppb25lIGRlbCBjb250ZW51dG8gZGkgcXVlc3RhIGNvbG9ubmEgKi9cclxuICAgIEBWaWV3Q2hpbGQoXCJjb250ZW50XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250ZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKiBDbGFzc2kgZGEgYXBwbGljYXJlIGFsbGEgY29sb25uYSAqL1xyXG4gICAgcHVibGljIENsYXNzOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEltcG9zdGF0byBkYWxsJyoqRXNUYWJsZSoqLCBwZXIgY29udHJvbGxhcmUgY2hlIGNpIHNpYSBhbG1lbm8gdW4gVEQgY2hlIHV0aWxpenppIHF1ZXN0J2hlYWRlciAqL1xyXG4gICAgcHVibGljIF9yZWZlcmVuY2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIFZhcmlhYmlsZSBmaW5hbGUgc3UgY3VpIMOoIGJpbmRhdG8gaWwgY29udGVudXRvIGRlbGxhIGNlbGxhLiBTYXLDoCB2YWxvcml6emF0byBhICoqRGlzcGxheSoqIHNlIHNwZWNpZmljYXRvLCBhbGwnKippbm5lckhUTUwqKiBkZWxsJ2VsZW1lbnRvIHByb2lldHRhdG8gYWx0cmltZW50aSAqL1xyXG4gICAgcHVibGljIERlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbXlzZWxmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBsYSB2aXNpYmlsaXTDoCBvIG1lbm8gZGVsbGEgY29sb25uYSwgc2kgdHJhZHVjZSBuZWxsJ2FwcGxpY2F6aW9uZSBvIHJpbW96aW9uZSBkZWxsYSBjbGFzc2UgKiphcHAtZGlzcGxheS1ub25lKipcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBleHByZXNzaW9uIEluZGljYXppb25lIGRlbGxhIHZpc2liaWxpdMOgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNldCBWaXNpYmxlKGV4cHJlc3Npb246IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9WaXNpYmxlID0gZXhwcmVzc2lvbjtcclxuXHJcbiAgICAgICAgaWYgKGV4cHJlc3Npb24pXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5teXNlbGYubmF0aXZlRWxlbWVudCwgXCJhcHAtZGlzcGxheS1ub25lXCIpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LCBcImFwcC1kaXNwbGF5LW5vbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXN0aXR1aXNjZSBsbyBzdGF0byBkaSBWaXNpYmlsaXTDoCBkZWxsYSBjb2xvbm5hIGluIG9nZ2V0dG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59ICoqdHJ1ZSoqIHNlIHZpc2liaWxlLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBnZXQgVmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5fVmlzaWJsZSA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX1Zpc2libGUgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fVmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIC8vQXNzZWduYXJlIGRpcmV0dGFtZW50ZSBpbCBjb250ZW50IMOoIHBpw7kgdmVsb2NlIGNoZSBwYXNzYXJlIGRhbCBuYXRpdmUgZWxlbWVudCBwZXIgcXVhbGNoZSBtb3Rpdm9cclxuICAgICAgICB0aGlzLkRlc2NyaXB0aW9uID0gdGhpcy5EaXNwbGF5ID09PSBudWxsIHx8IHRoaXMuRGlzcGxheSA9PT0gXCJcIiA/IHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCA6IHRoaXMuRGlzcGxheTtcclxuXHJcbiAgICAgICAgdGhpcy5DbGFzcyA9IHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoXCJhcHAtZGlzcGxheS1ub25lXCIsIFwiXCIpO1xyXG5cclxuICAgICAgICAvL1Jlc2l6ZVxyXG4gICAgICAgIGlmICh0aGlzLlJlc2l6YWJsZSlcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LCBcImFwcC1yZWxhdGl2ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogRW1ldHRlIGwnZXZlbnRvIGRpIHVucGlubmluZyAqL1xyXG4gICAgdW5waW4oKSB7XHJcbiAgICAgICAgdGhpcy5vblVucGlubmluZy5lbWl0KHRoaXMuSUQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBHZXN0aXNjZSBsYSBtb2RpZmljYSBkZWxsJ29yZGluYW1lbnRvIHF1YWxvcmEgdmVuaXNzZSBjbGljY2F0byBzdSBxdWVzdGEgY29sb25uYSAqL1xyXG4gICAgc2V0dXBOZXh0T3JkZXJBbmROb3RpZnkoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLklEKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQXR0ZW1wdCB0byBvcmRlciBhIGNvbHVtbiB3aXRob3V0IElELiBPcGVyYXRpb24gaWdub3JlZFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuU2VhcmNoSW5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkF0dGVtcHQgdG8gb3JkZXIgYSBjb2x1bW4gZHVyaW5nIGEgc2VhcmNoLiBPcGVyYXRpb24gaWdub3JlZFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLk9yZGVyQnkgfHwgIXRoaXMuT3JkZXJhYmxlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIHZhciBuZXh0T3JkZXIgPSB0aGlzLm9yZGVyTmV4dFt0aGlzLk9yZGVyIHx8IFwiTk9ORVwiXTtcclxuICAgICAgICB0aGlzLk9yZGVyID0gbmV4dE9yZGVyO1xyXG5cclxuICAgICAgICB0aGlzLm9uT3JkZXJDaGFuZ2UuZW1pdCh0aGlzLk9yZGVyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50byBkaSBpbml6aW8gcmVzaXplIGRlbGxhIGNvbG9ubmFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IGV2IEV2ZW50byBNb3VzZURvd25cclxuICAgICAqL1xyXG4gICAgb25SZXNpemVTdGFydChldikge1xyXG4gICAgICAgIGlmICghdGhpcy5SZXNpemFibGUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5yZXNpemluZ1RoaXMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRPZmZzZXQgPSB0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZXYucGFnZVg7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIExpc3RlbmVyIHBlciBsYSBmaW5lIGRlbGwnb3BlcmF6aW9uZSBkaSByZXNpemUgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZXVwLm91dC16b25lJylcclxuICAgIHB1YmxpYyBvbk1vdXNlVXAoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLlJlc2l6YWJsZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLnJlc2l6aW5nVGhpcyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdGVuZXIgcGVyIGdlc3RpcmUgaWwgbW92aW1lbnRvIGRlbCBtb3VzZSBxdWFsb3JhIHVuJ29wZXJhemlvbmUgZGkgcmVzaXplIGZvc3NlIGluIGVzZWN1emlvbmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHskZXZlbnR9IGV2IEV2ZW50byBNb3VzZU1vdmVcclxuICAgICAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1vdXNlbW92ZS5vdXQtem9uZScsIFsnJGV2ZW50J10pXHJcbiAgICBwdWJsaWMgb25Nb3VzZU1vdmUoJGV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLlJlc2l6YWJsZSB8fCAhdGhpcy5yZXNpemluZ1RoaXMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgLy9Vc28ganF1ZXJ5IHBlciBub24gZG92ZXIgZmFyIHBhcnRpcmUgdW4gaW50ZXJvIGNpY2xvIGRpIGNoYW5nZSBkZXRlY3Rpb24gc29sbyBwZXIgZmFyZSB1biByZXNpemUgZGVsIGNhenpvXHJcbiAgICAgICAgLy8oYW5jaGUgcGVyY2jDqSB2aWVuZSBsYW5jaWF0byBvZ25pIDAuMSBzZWNvbmRvIHF1aW5kaSBub3QgYSBnb29kIGlkZWEpXHJcbiAgICAgICAgdGhpcy5teXNlbGYubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9ICh0aGlzLnN0YXJ0T2Zmc2V0ICsgJGV2ZW50LnBhZ2VYKSArIFwicHhcIjtcclxuXHJcbiAgICAgICAgLy9GZXJtbyBpbCBidWJibGluZyBwZXIgbm9uIGZhcmUgY29zZSBzdHJhbmVcclxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxufSIsIjxzcGFuIChjbGljayk9XCJzZXR1cE5leHRPcmRlckFuZE5vdGlmeSgpXCIgW2NsYXNzLmFwcC1uby1zZWxlY3Rpb25dPVwiISFJRCAmJiBPcmRlcmFibGVcIiBbY2xhc3MuYXBwLXBvaW50ZXJdPVwiISFJRCAmJiBPcmRlcmFibGVcIj5cclxuICAgIDxzcGFuICNjb250ZW50PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiIVRlbXBsYXRlXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9zcGFuPiZuYnNwO1xyXG4gICAgPHNwYW4gY2xhc3M9XCJmYVwiIFtjbGFzcy5mYS1jaGV2cm9uLWRvd25dPVwiT3JkZXIgPT0gJ0RFU0MnXCIgW2NsYXNzLmZhLWNoZXZyb24tdXBdPVwiT3JkZXIgPT0gJ0FTQydcIj48L3NwYW4+XHJcbjwvc3Bhbj5cclxuPHNwYW4gKm5nSWY9XCJQaW5uZWQgJiYgIUZpeGVkXCIgY2xhc3M9XCJhcHAtcG9pbnRlciBmYSBmYS10aHVtYi10YWNrIGVzdC1xdWljay11bnBpblwiIChjbGljayk9XCJ1bnBpbigpXCI+PC9zcGFuPlxyXG48ZGl2IFtoaWRkZW5dPVwiIVJlc2l6YWJsZSB8fCBGaXhlZCB8fCBQaW5uZWRcIiBjbGFzcz1cImVzdC1oZWFkLXJlc2l6ZXJcIiAobW91c2Vkb3duKT1cIm9uUmVzaXplU3RhcnQoJGV2ZW50KVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImVzdC1oZWFkLXJlc2l6ZXItaW50ZXJuYWxcIj48L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { LocalizationService } from "@esfaenza/localizations";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/** Classe di localizzazione per il componente **TablePagerComponent** */
|
|
5
|
-
export class TablePagerLoc extends LocalizationService {
|
|
6
|
-
/** @ignore */
|
|
7
|
-
constructor(injector) {
|
|
8
|
-
super(injector);
|
|
9
|
-
super.set("en->it", "All", ["Tutto"]);
|
|
10
|
-
super.set("en->it", "Shown Elements", ["Elementi visualizzati"]);
|
|
11
|
-
super.set("en->it", "Shown Groups", ["Gruppi visualizzati"]);
|
|
12
|
-
super.set("en->it", "Are you sure you want to retrieve all results?", ["Si è sicuri di voler caricare tutti i risultati?"]);
|
|
13
|
-
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"]);
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
16
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
19
|
-
type: Injectable
|
|
20
|
-
}], ctorParameters:
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { LocalizationService } from "@esfaenza/localizations";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** Classe di localizzazione per il componente **TablePagerComponent** */
|
|
5
|
+
export class TablePagerLoc extends LocalizationService {
|
|
6
|
+
/** @ignore */
|
|
7
|
+
constructor(injector) {
|
|
8
|
+
super(injector);
|
|
9
|
+
super.set("en->it", "All", ["Tutto"]);
|
|
10
|
+
super.set("en->it", "Shown Elements", ["Elementi visualizzati"]);
|
|
11
|
+
super.set("en->it", "Shown Groups", ["Gruppi visualizzati"]);
|
|
12
|
+
super.set("en->it", "Are you sure you want to retrieve all results?", ["Si è sicuri di voler caricare tutti i risultati?"]);
|
|
13
|
+
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"]);
|
|
14
|
+
}
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TablePagerLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
16
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TablePagerLoc }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TablePagerLoc, decorators: [{
|
|
19
|
+
type: Injectable
|
|
20
|
+
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
21
21
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVfcGFnZXIuY29tcG9uZW50LmxvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlci90YWJsZV9wYWdlci5jb21wb25lbnQubG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRTlELHlFQUF5RTtBQUV6RSxNQUFNLE9BQU8sYUFBYyxTQUFRLG1CQUFtQjtJQUVsRCxjQUFjO0lBQ2QsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUNqRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDN0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZ0RBQWdELEVBQUUsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDLENBQUM7UUFDNUgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUseUVBQXlFLEVBQUUsQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDLENBQUM7SUFDbkwsQ0FBQzsrR0FWUSxhQUFhO21IQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuXHJcbi8qKiBDbGFzc2UgZGkgbG9jYWxpenphemlvbmUgcGVyIGlsIGNvbXBvbmVudGUgKipUYWJsZVBhZ2VyQ29tcG9uZW50KiogKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVGFibGVQYWdlckxvYyBleHRlbmRzIExvY2FsaXphdGlvblNlcnZpY2Uge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiQWxsXCIsIFtcIlR1dHRvXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJTaG93biBFbGVtZW50c1wiLCBbXCJFbGVtZW50aSB2aXN1YWxpenphdGlcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlNob3duIEdyb3Vwc1wiLCBbXCJHcnVwcGkgdmlzdWFsaXp6YXRpXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmV0cmlldmUgYWxsIHJlc3VsdHM/XCIsIFtcIlNpIMOoIHNpY3VyaSBkaSB2b2xlciBjYXJpY2FyZSB0dXR0aSBpIHJpc3VsdGF0aT9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlRoaXMgbWlnaHQgc2xvdyBkb3duIHRoZSBwYWdlIGFuZCBwb3NzaWJseSBjcmFzaCB0aGUgZW50aXJlIGFwcGxpY2F0aW9uXCIsIFtcIkwnb3BlcmF6aW9uZSBwb3RyZWJiZSByYWxsZW50YXJlIGxhIHBhZ2luYSBmaW5vIGFsIGNyYXNoIGRlbGwnYXBwbGljYXppb25lXCJdKTtcclxuICAgIH1cclxufSJdfQ==
|