@esfaenza/es-table 12.2.17 → 12.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/esfaenza-es-table.umd.js +3625 -1520
- package/bundles/esfaenza-es-table.umd.js.map +1 -1
- package/esfaenza-es-table.d.ts +7 -5
- package/esfaenza-es-table.metadata.json +1 -1
- package/esm2015/esfaenza-es-table.js +8 -6
- package/esm2015/lib/components/es-table/es_table.component.js +1316 -0
- package/esm2015/lib/components/es-table/es_table.component.loc.js +36 -0
- package/esm2015/lib/components/es-td/es_td.component.js +106 -0
- package/esm2015/lib/components/es-th/es_th.component.js +160 -0
- package/esm2015/lib/components/pager/table_pager.component.js +106 -0
- package/esm2015/lib/components/pager/table_pager.component.loc.js +22 -0
- package/esm2015/lib/core/handlers/classes/ColumnMetadataHandler.js +679 -0
- package/esm2015/lib/core/handlers/classes/DynamicModeHandler.js +64 -0
- package/esm2015/lib/core/handlers/classes/ExportHandler.js +43 -0
- package/esm2015/lib/core/handlers/classes/HierarchyModeHandler.js +136 -0
- package/esm2015/lib/core/handlers/classes/ItemsHandler.js +130 -0
- package/esm2015/lib/core/handlers/classes/ReportModeHandler.js +70 -0
- package/esm2015/lib/core/handlers/classes/RowGroupingHandler.js +475 -0
- package/esm2015/lib/core/handlers/classes/SelectionHandler.js +527 -0
- package/esm2015/lib/core/handlers/classes/UtilitiesHandler.js +169 -0
- package/esm2015/lib/core/handlers/index.js +10 -0
- package/esm2015/lib/directives/es_td.directive.js +18 -5
- package/esm2015/lib/directives/es_th.directive.js +64 -0
- package/esm2015/lib/domain/configuration/EsTableDefaultable.js +4 -0
- package/esm2015/lib/domain/configuration/EsTableModuleConfig.js +4 -0
- package/esm2015/lib/domain/externals/classes/CornerMenuOption.js +4 -0
- package/esm2015/lib/domain/externals/classes/EsTableColumnsDefinition.js +31 -0
- package/esm2015/lib/domain/externals/classes/EsTableOperationDefinition.js +22 -0
- package/esm2015/lib/domain/externals/classes/appsearch/AppOrdering.js +16 -0
- package/esm2015/lib/domain/externals/classes/appsearch/AppSearch.js +35 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GenericItem.js +11 -0
- package/esm2015/lib/domain/externals/classes/appsearch/Group.js +17 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GroupAggregation.js +16 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GroupFilter.js +14 -0
- package/esm2015/lib/domain/externals/classes/appsearch/GroupOrAggregation.js +16 -0
- package/esm2015/lib/domain/externals/classes/appsearch/ItemsSelection.js +23 -0
- package/esm2015/lib/domain/externals/classes/report/ReportColumn.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportDefinition.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportOrder.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportParam.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportResult.js +4 -0
- package/esm2015/lib/domain/externals/classes/report/ReportRow.js +4 -0
- package/esm2015/lib/domain/externals/index.js +18 -0
- package/esm2015/lib/domain/index.js +3 -16
- package/esm2015/lib/domain/internals/classes/CacheTriptic.js +16 -0
- package/esm2015/lib/domain/internals/classes/EsTableColumn.js +24 -0
- package/esm2015/lib/domain/internals/classes/GroupPager.js +21 -0
- package/esm2015/lib/domain/internals/classes/GroupRouteFragment.js +17 -0
- package/esm2015/lib/domain/internals/classes/ThAggregation.js +16 -0
- package/esm2015/lib/domain/internals/classes/ThElement.js +2 -0
- package/esm2015/lib/domain/internals/index.js +7 -0
- package/esm2015/lib/es-table.module.js +16 -10
- package/esm2015/lib/tokens.js +6 -4
- package/esm2015/public-api.js +7 -6
- package/fesm2015/esfaenza-es-table.js +3579 -1597
- package/fesm2015/esfaenza-es-table.js.map +1 -1
- package/lib/{es_table.component.d.ts → components/es-table/es_table.component.d.ts} +186 -317
- package/lib/{es_table.component.loc.d.ts → components/es-table/es_table.component.loc.d.ts} +2 -6
- package/lib/{es_td.component.d.ts → components/es-td/es_td.component.d.ts} +14 -36
- package/lib/components/es-th/es_th.component.d.ts +89 -0
- package/lib/components/pager/table_pager.component.d.ts +54 -0
- package/lib/{pager → components/pager}/table_pager.component.loc.d.ts +2 -6
- package/lib/core/handlers/classes/ColumnMetadataHandler.d.ts +159 -0
- package/lib/core/handlers/classes/DynamicModeHandler.d.ts +32 -0
- package/lib/core/handlers/classes/ExportHandler.d.ts +22 -0
- package/lib/core/handlers/classes/HierarchyModeHandler.d.ts +40 -0
- package/lib/core/handlers/classes/ItemsHandler.d.ts +41 -0
- package/lib/core/handlers/classes/ReportModeHandler.d.ts +21 -0
- package/lib/core/handlers/classes/RowGroupingHandler.d.ts +114 -0
- package/lib/core/handlers/classes/SelectionHandler.d.ts +149 -0
- package/lib/core/handlers/classes/UtilitiesHandler.d.ts +67 -0
- package/lib/core/handlers/index.d.ts +9 -0
- package/lib/directives/es_td.directive.d.ts +16 -3
- package/lib/directives/es_th.directive.d.ts +46 -0
- package/lib/domain/configuration/EsTableDefaultable.d.ts +19 -0
- package/lib/domain/configuration/EsTableModuleConfig.d.ts +10 -0
- package/lib/domain/externals/classes/CornerMenuOption.d.ts +7 -0
- package/lib/domain/{classes → externals/classes}/EsTableColumnsDefinition.d.ts +5 -7
- package/lib/domain/{classes → externals/classes}/EsTableOperationDefinition.d.ts +1 -3
- package/lib/domain/{classes → externals/classes/appsearch}/AppOrdering.d.ts +0 -0
- package/lib/domain/externals/classes/appsearch/AppSearch.d.ts +67 -0
- package/lib/domain/externals/classes/appsearch/GenericItem.d.ts +13 -0
- package/lib/domain/externals/classes/appsearch/Group.d.ts +17 -0
- package/lib/domain/externals/classes/appsearch/GroupAggregation.d.ts +14 -0
- package/lib/domain/externals/classes/appsearch/GroupFilter.d.ts +12 -0
- package/lib/domain/externals/classes/appsearch/GroupOrAggregation.d.ts +14 -0
- package/lib/domain/externals/classes/appsearch/ItemsSelection.d.ts +22 -0
- package/lib/domain/externals/classes/report/ReportColumn.d.ts +15 -0
- package/lib/domain/externals/classes/report/ReportDefinition.d.ts +24 -0
- package/lib/domain/externals/classes/report/ReportOrder.d.ts +7 -0
- package/lib/domain/externals/classes/report/ReportParam.d.ts +40 -0
- package/lib/domain/externals/classes/report/ReportResult.d.ts +12 -0
- package/lib/domain/externals/classes/report/ReportRow.d.ts +5 -0
- package/lib/domain/externals/index.d.ts +17 -0
- package/lib/domain/index.d.ts +2 -15
- package/lib/domain/internals/classes/CacheTriptic.d.ts +14 -0
- package/lib/domain/internals/classes/EsTableColumn.d.ts +25 -0
- package/lib/domain/internals/classes/GroupPager.d.ts +22 -0
- package/lib/domain/internals/classes/GroupRouteFragment.d.ts +15 -0
- package/lib/domain/internals/classes/ThAggregation.d.ts +14 -0
- package/lib/domain/internals/classes/ThElement.d.ts +13 -0
- package/lib/domain/internals/index.d.ts +6 -0
- package/lib/es-table.module.d.ts +1 -1
- package/lib/tokens.d.ts +6 -3
- package/package.json +2 -1
- package/public-api.d.ts +6 -5
- package/esm2015/lib/domain/classes/AppOrdering.js +0 -16
- package/esm2015/lib/domain/classes/AppSearch.js +0 -35
- package/esm2015/lib/domain/classes/CornerMenuOption.js +0 -6
- package/esm2015/lib/domain/classes/EsTableColumn.js +0 -18
- package/esm2015/lib/domain/classes/EsTableColumnsDefinition.js +0 -31
- package/esm2015/lib/domain/classes/EsTableOperationDefinition.js +0 -24
- package/esm2015/lib/domain/classes/GenericItem.js +0 -15
- package/esm2015/lib/domain/classes/IAppSearch.js +0 -2
- package/esm2015/lib/domain/classes/ItemsSelection.js +0 -25
- package/esm2015/lib/domain/classes/ReportColumn.js +0 -6
- package/esm2015/lib/domain/classes/ReportDefinition.js +0 -6
- package/esm2015/lib/domain/classes/ReportOrder.js +0 -6
- package/esm2015/lib/domain/classes/ReportParam.js +0 -6
- package/esm2015/lib/domain/classes/ReportResult.js +0 -6
- package/esm2015/lib/domain/classes/ReportRow.js +0 -6
- package/esm2015/lib/es_table.component.js +0 -1825
- package/esm2015/lib/es_table.component.loc.js +0 -36
- package/esm2015/lib/es_td.component.js +0 -121
- package/esm2015/lib/es_th.component.js +0 -168
- package/esm2015/lib/models/EsTableModuleConfig.js +0 -6
- package/esm2015/lib/pager/table_pager.component.js +0 -70
- package/esm2015/lib/pager/table_pager.component.loc.js +0 -24
- package/lib/domain/classes/AppSearch.d.ts +0 -76
- package/lib/domain/classes/CornerMenuOption.d.ts +0 -13
- package/lib/domain/classes/EsTableColumn.d.ts +0 -16
- package/lib/domain/classes/GenericItem.d.ts +0 -25
- package/lib/domain/classes/IAppSearch.d.ts +0 -67
- package/lib/domain/classes/ItemsSelection.d.ts +0 -27
- package/lib/domain/classes/ReportColumn.d.ts +0 -29
- package/lib/domain/classes/ReportDefinition.d.ts +0 -46
- package/lib/domain/classes/ReportOrder.d.ts +0 -13
- package/lib/domain/classes/ReportParam.d.ts +0 -76
- package/lib/domain/classes/ReportResult.d.ts +0 -22
- package/lib/domain/classes/ReportRow.d.ts +0 -9
- package/lib/es_th.component.d.ts +0 -119
- package/lib/models/EsTableModuleConfig.d.ts +0 -9
- package/lib/pager/table_pager.component.d.ts +0 -50
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Injectable, Inject, Optional } from "@angular/core";
|
|
2
|
+
import { LocalizationService } from "@esfaenza/localizations";
|
|
3
|
+
import { EST_LOCALE } from '../../tokens';
|
|
4
|
+
/** Classe di localizzazione per il componente **EsTableComponent** */
|
|
5
|
+
export class EsTableLoc extends LocalizationService {
|
|
6
|
+
/** @ignore */
|
|
7
|
+
constructor(LOC_LOCALE) {
|
|
8
|
+
super(LOC_LOCALE !== null && LOC_LOCALE !== void 0 ? LOC_LOCALE : 'it-IT');
|
|
9
|
+
super.set("en->it", "All the", ["Tutti gli"]);
|
|
10
|
+
super.set("en->it", "All", ["Tutto"]);
|
|
11
|
+
super.set("en->it", "Groups", ["Gruppi"]);
|
|
12
|
+
super.set("en->it", "Cannot export an empty dataset", ["Impossibile esportare un dataset vuoto"]);
|
|
13
|
+
super.set("en->it", "Performing Table bootstrap", ["Sto caricando la Tabella"]);
|
|
14
|
+
super.set("en->it", "Update every", ["Aggiorna ogni"]);
|
|
15
|
+
super.set("en->it", "second/s", ["secondo/i"]);
|
|
16
|
+
super.set("en->it", "Export View", ["Esporta Vista"]);
|
|
17
|
+
super.set("en->it", "Column Name", ["Nome Colonna"]);
|
|
18
|
+
super.set("en->it", "Columns Order", ["Ordine Colonne"]);
|
|
19
|
+
super.set("en->it", "Columns Visibility", ["Visibilità Colonne"]);
|
|
20
|
+
super.set("en->it", "There are no columns configured to be hidden/shown in this view", ["Non ci sono colonne configurate per essere visualizzate/nascoste in questa vista dati"]);
|
|
21
|
+
super.set("en->it", "Columns Visibility and Order", ["Visibilità e Ordine Colonne"]);
|
|
22
|
+
super.set("en->it", "Objects Selected", ["Oggetti Selezionati"]);
|
|
23
|
+
super.set("en->it", "Object Selected", ["Oggetto Selezionato"]);
|
|
24
|
+
super.set("en->it", "Select Everything", ["Seleziona Tutto"]);
|
|
25
|
+
super.set("en->it", "Reset Selection", ["Resetta Selezione"]);
|
|
26
|
+
super.set("en->it", "No operations available", ["Nessuna operazione disponibile"]);
|
|
27
|
+
super.set("en->it", "Paging options are not available for this report", ["Le opzioni di paginazione non sono disponibili per questo report"]);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
EsTableLoc.decorators = [
|
|
31
|
+
{ type: Injectable }
|
|
32
|
+
];
|
|
33
|
+
EsTableLoc.ctorParameters = () => [
|
|
34
|
+
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [EST_LOCALE,] }] }
|
|
35
|
+
];
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGFibGUuY29tcG9uZW50LmxvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9lcy10YWJsZS9lc190YWJsZS5jb21wb25lbnQubG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFDLHNFQUFzRTtBQUV0RSxNQUFNLE9BQU8sVUFBVyxTQUFRLG1CQUFtQjtJQUUvQyxjQUFjO0lBQ2QsWUFBNEMsVUFBa0I7UUFDMUQsS0FBSyxDQUFDLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLE9BQU8sQ0FBQyxDQUFDO1FBRzdCLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDOUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGdDQUFnQyxFQUFFLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLDRCQUE0QixFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDdkQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDckQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ3pELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLG9CQUFvQixFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGlFQUFpRSxFQUFFLENBQUMsdUZBQXVGLENBQUMsQ0FBQyxDQUFDO1FBQ2xMLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLDhCQUE4QixFQUFFLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzlELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQzlELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLHlCQUF5QixFQUFFLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO1FBQ25GLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGtEQUFrRCxFQUFFLENBQUMsa0VBQWtFLENBQUMsQ0FBQyxDQUFDO0lBQ2xKLENBQUM7OztZQTNCSixVQUFVOzs7eUNBSU0sUUFBUSxZQUFJLE1BQU0sU0FBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgRVNUX0xPQ0FMRSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcblxyXG4vKiogQ2xhc3NlIGRpIGxvY2FsaXp6YXppb25lIHBlciBpbCBjb21wb25lbnRlICoqRXNUYWJsZUNvbXBvbmVudCoqICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEVzVGFibGVMb2MgZXh0ZW5kcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChFU1RfTE9DQUxFKSBMT0NfTE9DQUxFOiBzdHJpbmcpIHsgICBcclxuICAgICAgICBzdXBlcihMT0NfTE9DQUxFID8/ICdpdC1JVCcpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkFsbCB0aGVcIiwgW1wiVHV0dGkgZ2xpXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJBbGxcIiwgW1wiVHV0dG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkdyb3Vwc1wiLCBbXCJHcnVwcGlcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkNhbm5vdCBleHBvcnQgYW4gZW1wdHkgZGF0YXNldFwiLCBbXCJJbXBvc3NpYmlsZSBlc3BvcnRhcmUgdW4gZGF0YXNldCB2dW90b1wiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiUGVyZm9ybWluZyBUYWJsZSBib290c3RyYXBcIiwgW1wiU3RvIGNhcmljYW5kbyBsYSBUYWJlbGxhXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJVcGRhdGUgZXZlcnlcIiwgW1wiQWdnaW9ybmEgb2duaVwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwic2Vjb25kL3NcIiwgW1wic2Vjb25kby9pXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJFeHBvcnQgVmlld1wiLCBbXCJFc3BvcnRhIFZpc3RhXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJDb2x1bW4gTmFtZVwiLCBbXCJOb21lIENvbG9ubmFcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkNvbHVtbnMgT3JkZXJcIiwgW1wiT3JkaW5lIENvbG9ubmVcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkNvbHVtbnMgVmlzaWJpbGl0eVwiLCBbXCJWaXNpYmlsaXTDoCBDb2xvbm5lXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJUaGVyZSBhcmUgbm8gY29sdW1ucyBjb25maWd1cmVkIHRvIGJlIGhpZGRlbi9zaG93biBpbiB0aGlzIHZpZXdcIiwgW1wiTm9uIGNpIHNvbm8gY29sb25uZSBjb25maWd1cmF0ZSBwZXIgZXNzZXJlIHZpc3VhbGl6emF0ZS9uYXNjb3N0ZSBpbiBxdWVzdGEgdmlzdGEgZGF0aVwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiQ29sdW1ucyBWaXNpYmlsaXR5IGFuZCBPcmRlclwiLCBbXCJWaXNpYmlsaXTDoCBlIE9yZGluZSBDb2xvbm5lXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJPYmplY3RzIFNlbGVjdGVkXCIsIFtcIk9nZ2V0dGkgU2VsZXppb25hdGlcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIk9iamVjdCBTZWxlY3RlZFwiLCBbXCJPZ2dldHRvIFNlbGV6aW9uYXRvXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJTZWxlY3QgRXZlcnl0aGluZ1wiLCBbXCJTZWxlemlvbmEgVHV0dG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlJlc2V0IFNlbGVjdGlvblwiLCBbXCJSZXNldHRhIFNlbGV6aW9uZVwiXSk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiTm8gb3BlcmF0aW9ucyBhdmFpbGFibGVcIiwgW1wiTmVzc3VuYSBvcGVyYXppb25lIGRpc3BvbmliaWxlXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJQYWdpbmcgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyByZXBvcnRcIiwgW1wiTGUgb3B6aW9uaSBkaSBwYWdpbmF6aW9uZSBub24gc29ubyBkaXNwb25pYmlsaSBwZXIgcXVlc3RvIHJlcG9ydFwiXSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
//Angular
|
|
2
|
+
import { Component, Input, Renderer2, ElementRef, ViewContainerRef, ChangeDetectionStrategy } from "@angular/core";
|
|
3
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
/** Componente rappresentante una singola cella del body della tabella */
|
|
5
|
+
export class EsTd {
|
|
6
|
+
/** @ignore */
|
|
7
|
+
constructor(myself, renderer, _viewContainer, sanitizer) {
|
|
8
|
+
this.myself = myself;
|
|
9
|
+
this.renderer = renderer;
|
|
10
|
+
this._viewContainer = _viewContainer;
|
|
11
|
+
this.sanitizer = sanitizer;
|
|
12
|
+
/** Id della cella, dev'essere lo stesso della colonna **EsTh** relativa */
|
|
13
|
+
this.ID = "";
|
|
14
|
+
/** Valore da mostrare all'interno della cella. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
|
|
15
|
+
this.Display = null;
|
|
16
|
+
/** Template Angular da istanziare per questo TD */
|
|
17
|
+
this.Template = null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Imposta la visibilità o meno della cella, si traduce nell'applicazione o rimozione della classe **app-display-none**
|
|
21
|
+
*
|
|
22
|
+
* @param {boolean} expression Indicazione della visibilità
|
|
23
|
+
*/
|
|
24
|
+
set Visible(expression) {
|
|
25
|
+
this._Visible = expression;
|
|
26
|
+
if (expression)
|
|
27
|
+
this.renderer.removeClass(this.myself.nativeElement, "app-display-none");
|
|
28
|
+
else
|
|
29
|
+
this.renderer.addClass(this.myself.nativeElement, "app-display-none");
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Restituisce lo stato di Visibilità della cella in oggetto
|
|
33
|
+
*
|
|
34
|
+
* @returns {boolean} **true** se visibile, **false** altrimenti
|
|
35
|
+
*/
|
|
36
|
+
get Visible() {
|
|
37
|
+
if (this._Visible == undefined)
|
|
38
|
+
this._Visible = true;
|
|
39
|
+
return this._Visible;
|
|
40
|
+
}
|
|
41
|
+
/** @ignore */
|
|
42
|
+
ngAfterViewInit() {
|
|
43
|
+
// Se è Internal significa che è gestita internamente da ES-TABLE quindi evito di fare sti due passaggi di lettura del DOM
|
|
44
|
+
if (this.Internal)
|
|
45
|
+
return;
|
|
46
|
+
// L'hash è calcolato dalla ES-table in fase di binding
|
|
47
|
+
this.Context = this.Context || this.getTemplateContext()._hash;
|
|
48
|
+
this.Content = this.Display === null || this.Display === "" ? this.sanitizer.bypassSecurityTrustHtml(this.myself.nativeElement.innerHTML) : this.sanitizer.bypassSecurityTrustHtml(this.Display);
|
|
49
|
+
this.Class = this.myself.nativeElement.className.replace("app-display-none", "");
|
|
50
|
+
}
|
|
51
|
+
/** Ottiene il contesto della view su cui è istanziato il componente */
|
|
52
|
+
getTemplateContext() {
|
|
53
|
+
// NGBUG: (<any>this._viewContainer)._view non esiste più in IVY: https://stackoverflow.com/questions/60398827/getting-the-context-of-the-template-inside-of-which-my-component-has-been-render
|
|
54
|
+
let vc = this._viewContainer;
|
|
55
|
+
let context;
|
|
56
|
+
// Primo giro di recupero del contesto, supponendo di non avere a che fare col compilatore IVY
|
|
57
|
+
if (vc._view == null)
|
|
58
|
+
context = null;
|
|
59
|
+
else if (vc._view.parent && !vc._view.context.$implicit && vc._view.parent.context && vc._view.parent.context.$implicit)
|
|
60
|
+
context = vc._view.parent.context.$implicit;
|
|
61
|
+
else if (vc._view.context && vc._view.context.ngIf)
|
|
62
|
+
context = vc._view.viewContainerParent.context.$implicit;
|
|
63
|
+
else
|
|
64
|
+
context = vc._view.context.$implicit;
|
|
65
|
+
if (context)
|
|
66
|
+
return context;
|
|
67
|
+
// Se non ho ancora trovato il contesto probabilmente sono in IVY e devo fare dei lookup un po' incasinati per beccarlo
|
|
68
|
+
var array = this._viewContainer._hostLView;
|
|
69
|
+
for (let i = 0; i < array.length; i++) {
|
|
70
|
+
let item = array[i];
|
|
71
|
+
if (item && item.$implicit && !item.ngIf)
|
|
72
|
+
return item.$implicit;
|
|
73
|
+
// Second level search for the real context in case the first one we find is an ngIf
|
|
74
|
+
if (item && item.length && item.length > 0) {
|
|
75
|
+
for (let ii = 0; ii < item.length; ii++) {
|
|
76
|
+
let iitem = item[ii];
|
|
77
|
+
if (iitem && iitem.$implicit && !iitem.ngIf)
|
|
78
|
+
return iitem.$implicit;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
EsTd.decorators = [
|
|
85
|
+
{ type: Component, args: [{
|
|
86
|
+
selector: "[es-td]",
|
|
87
|
+
template: "<span>\r\n <ng-content></ng-content>\r\n</span>",
|
|
88
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
89
|
+
},] }
|
|
90
|
+
];
|
|
91
|
+
EsTd.ctorParameters = () => [
|
|
92
|
+
{ type: ElementRef },
|
|
93
|
+
{ type: Renderer2 },
|
|
94
|
+
{ type: ViewContainerRef },
|
|
95
|
+
{ type: DomSanitizer }
|
|
96
|
+
];
|
|
97
|
+
EsTd.propDecorators = {
|
|
98
|
+
ID: [{ type: Input, args: ['es-td',] }],
|
|
99
|
+
Internal: [{ type: Input }],
|
|
100
|
+
RouterLink: [{ type: Input }],
|
|
101
|
+
Display: [{ type: Input }],
|
|
102
|
+
Template: [{ type: Input }],
|
|
103
|
+
Context: [{ type: Input }],
|
|
104
|
+
Visible: [{ type: Input }]
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2VzLXRkL2VzX3RkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFFbkUseUVBQXlFO0FBTXpFLE1BQU0sT0FBTyxJQUFJO0lBNkJiLGNBQWM7SUFDZCxZQUFvQixNQUFrQixFQUFVLFFBQW1CLEVBQVUsY0FBZ0MsRUFBWSxTQUF1QjtRQUE1SCxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWM7UUE1QmhKLDJFQUEyRTtRQUMzRCxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBUWhDLDRIQUE0SDtRQUNuSCxZQUFPLEdBQVksSUFBSSxDQUFDO1FBRWpDLG1EQUFtRDtRQUMxQyxhQUFRLEdBQVMsSUFBSSxDQUFDO0lBZXFILENBQUM7SUFFcko7Ozs7T0FJRztJQUNILElBQWEsT0FBTyxDQUFDLFVBQW1CO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBRTNCLElBQUksVUFBVTtZQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7O1lBRXpFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFD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QUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNyQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7d0JBQ3ZDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQztpQkFDOUI7YUFDSjtTQUNKO0lBQ0wsQ0FBQzs7O1lBN0dKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsU0FBUztnQkFDbkIsOERBQXFDO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7O1lBUnFDLFVBQVU7WUFBckIsU0FBUztZQUFjLGdCQUFnQjtZQUN6RCxZQUFZOzs7aUJBV2hCLEtBQUssU0FBQyxPQUFPO3VCQUdiLEtBQUs7eUJBR0wsS0FBSztzQkFHTCxLQUFLO3VCQUdMLEtBQUs7c0JBU0wsS0FBSztzQkFhTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy9Bbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG4vKiogQ29tcG9uZW50ZSByYXBwcmVzZW50YW50ZSB1bmEgc2luZ29sYSBjZWxsYSBkZWwgYm9keSBkZWxsYSB0YWJlbGxhICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2VzLXRkXVwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9lc190ZC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzVGQge1xyXG5cclxuICAgIC8qKiBJZCBkZWxsYSBjZWxsYSwgZGV2J2Vzc2VyZSBsbyBzdGVzc28gZGVsbGEgY29sb25uYSAqKkVzVGgqKiByZWxhdGl2YSAqL1xyXG4gICAgQElucHV0KCdlcy10ZCcpIElEOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2Ugw6ggdW5hIGNlbGxhIGludGVybmEgKHJpZ2VuZXJhdGEgcHJvZ3JhbW1hdGljYW1lbnRlKSBvIG5vICovXHJcbiAgICBASW5wdXQoKSBJbnRlcm5hbD86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIFJvdXRlckxpbmsgcXVhbG9yYSBpbCBjbGljayBzdSBxdWVzdGEgY2VsbGEgZGViYmEgbmF2aWdhcmUgZGEgcXVhbGNoZSBwYXJ0ZSAqL1xyXG4gICAgQElucHV0KCkgUm91dGVyTGluaz86IGFueTtcclxuXHJcbiAgICAvKiogVmFsb3JlIGRhIG1vc3RyYXJlIGFsbCdpbnRlcm5vIGRlbGxhIGNlbGxhLiBTZSBvbWVzc28gdmVycsOgIHByb2lldHRhdG8gaWwgY29udGVudXRvIGRhbCB0ZW1wbGF0ZSBpbiBjdWkgw6ggc3RhdGEgdXNhdGEgKi9cclxuICAgIEBJbnB1dCgpIERpc3BsYXk/OiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKiBUZW1wbGF0ZSBBbmd1bGFyIGRhIGlzdGFuemlhcmUgcGVyIHF1ZXN0byBURCAqL1xyXG4gICAgQElucHV0KCkgVGVtcGxhdGU/OiBhbnkgPSBudWxsO1xyXG5cclxuICAgIC8qKiBDbGFzc2kgZGEgYXBwbGljYXJlIGFsbGEgY2VsbGEgKi9cclxuICAgIHB1YmxpYyBDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKiogQ29udGVudXRvIGRhIG1vc3RyYXJlIHByb2lldHRhdG8gZGFsIGNvbXBvbmVudGUgcGFkcmUgKi9cclxuICAgIHB1YmxpYyBDb250ZW50PzogU2FmZUh0bWw7XHJcblxyXG4gICAgLyoqIENvbnRlc3RvIGRlbGwnb2dnZXR0byBhIGN1aSBzaSByaWZlcmlzY2UgaWwgZGF0byB2aXN1YWxpenphdG8uIENvbnRpZW5lIGwnaGFzaCBkZWxsJ29nZ2V0dG8gaW4gcXVlc3Rpb25lICovXHJcbiAgICBASW5wdXQoKSBDb250ZXh0OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEluZGljYXppb25pIHN1bGxhIHZpc2liaWxpdMOgIGRlbGxhIGNlbGxhICovXHJcbiAgICBwcml2YXRlIF9WaXNpYmxlPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBteXNlbGY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBfdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgcHJvdGVjdGVkIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgbGEgdmlzaWJpbGl0w6AgbyBtZW5vIGRlbGxhIGNlbGxhLCBzaSB0cmFkdWNlIG5lbGwnYXBwbGljYXppb25lIG8gcmltb3ppb25lIGRlbGxhIGNsYXNzZSAqKmFwcC1kaXNwbGF5LW5vbmUqKlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGV4cHJlc3Npb24gSW5kaWNhemlvbmUgZGVsbGEgdmlzaWJpbGl0w6BcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgc2V0IFZpc2libGUoZXhwcmVzc2lvbjogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX1Zpc2libGUgPSBleHByZXNzaW9uO1xyXG5cclxuICAgICAgICBpZiAoZXhwcmVzc2lvbilcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LCBcImFwcC1kaXNwbGF5LW5vbmVcIik7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQsIFwiYXBwLWRpc3BsYXktbm9uZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3RpdHVpc2NlIGxvIHN0YXRvIGRpIFZpc2liaWxpdMOgIGRlbGxhIGNlbGxhIGluIG9nZ2V0dG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59ICoqdHJ1ZSoqIHNlIHZpc2liaWxlLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBnZXQgVmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5fVmlzaWJsZSA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX1Zpc2libGUgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fVmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIC8vIFNlIMOoIEludGVybmFsIHNpZ25pZmljYSBjaGUgw6ggZ2VzdGl0YSBpbnRlcm5hbWVudGUgZGEgRVMtVEFCTEUgcXVpbmRpIGV2aXRvIGRpIGZhcmUgc3RpIGR1ZSBwYXNzYWdnaSBkaSBsZXR0dXJhIGRlbCBET01cclxuICAgICAgICBpZiAodGhpcy5JbnRlcm5hbClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAvLyBMJ2hhc2ggw6ggY2FsY29sYXRvIGRhbGxhIEVTLXRhYmxlIGluIGZhc2UgZGkgYmluZGluZ1xyXG4gICAgICAgIHRoaXMuQ29udGV4dCA9IHRoaXMuQ29udGV4dCB8fCB0aGlzLmdldFRlbXBsYXRlQ29udGV4dCgpLl9oYXNoO1xyXG4gICAgICAgIHRoaXMuQ29udGVudCA9IHRoaXMuRGlzcGxheSA9PT0gbnVsbCB8fCB0aGlzLkRpc3BsYXkgPT09IFwiXCIgPyB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCkgOiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLkRpc3BsYXkpO1xyXG4gICAgICAgIHRoaXMuQ2xhc3MgPSB0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKFwiYXBwLWRpc3BsYXktbm9uZVwiLCBcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogT3R0aWVuZSBpbCBjb250ZXN0byBkZWxsYSB2aWV3IHN1IGN1aSDDqCBpc3RhbnppYXRvIGlsIGNvbXBvbmVudGUgKi9cclxuICAgIHByaXZhdGUgZ2V0VGVtcGxhdGVDb250ZXh0KCkge1xyXG4gICAgICAgIC8vIE5HQlVHOiAoPGFueT50aGlzLl92aWV3Q29udGFpbmVyKS5fdmlldyBub24gZXNpc3RlIHBpw7kgaW4gSVZZOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82MDM5ODgyNy9nZXR0aW5nLXRoZS1jb250ZXh0LW9mLXRoZS10ZW1wbGF0ZS1pbnNpZGUtb2Ytd2hpY2gtbXktY29tcG9uZW50LWhhcy1iZWVuLXJlbmRlclxyXG4gICAgICAgIGxldCB2YyA9ICg8YW55PnRoaXMuX3ZpZXdDb250YWluZXIpO1xyXG4gICAgICAgIGxldCBjb250ZXh0O1xyXG4gICAgICAgIC8vIFByaW1vIGdpcm8gZGkgcmVjdXBlcm8gZGVsIGNvbnRlc3RvLCBzdXBwb25lbmRvIGRpIG5vbiBhdmVyZSBhIGNoZSBmYXJlIGNvbCBjb21waWxhdG9yZSBJVllcclxuICAgICAgICBpZiAodmMuX3ZpZXcgPT0gbnVsbClcclxuICAgICAgICAgICAgY29udGV4dCA9IG51bGw7XHJcbiAgICAgICAgZWxzZSBpZiAodmMuX3ZpZXcucGFyZW50ICYmICF2Yy5fdmlldy5jb250ZXh0LiRpbXBsaWNpdCAmJiB2Yy5fdmlldy5wYXJlbnQuY29udGV4dCAmJiB2Yy5fdmlldy5wYXJlbnQuY29udGV4dC4kaW1wbGljaXQpXHJcbiAgICAgICAgICAgIGNvbnRleHQgPSB2Yy5fdmlldy5wYXJlbnQuY29udGV4dC4kaW1wbGljaXQ7XHJcbiAgICAgICAgZWxzZSBpZiAodmMuX3ZpZXcuY29udGV4dCAmJiB2Yy5fdmlldy5jb250ZXh0Lm5nSWYpXHJcbiAgICAgICAgICAgIGNvbnRleHQgPSB2Yy5fdmlldy52aWV3Q29udGFpbmVyUGFyZW50LmNvbnRleHQuJGltcGxpY2l0O1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY29udGV4dCA9IHZjLl92aWV3LmNvbnRleHQuJGltcGxpY2l0O1xyXG5cclxuICAgICAgICBpZiAoY29udGV4dClcclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7XHJcblxyXG4gICAgICAgIC8vIFNlIG5vbiBobyBhbmNvcmEgdHJvdmF0byBpbCBjb250ZXN0byBwcm9iYWJpbG1lbnRlIHNvbm8gaW4gSVZZIGUgZGV2byBmYXJlIGRlaSBsb29rdXAgdW4gcG8nIGluY2FzaW5hdGkgcGVyIGJlY2NhcmxvXHJcbiAgICAgICAgdmFyIGFycmF5ID0gKDxhbnk+dGhpcy5fdmlld0NvbnRhaW5lcikuX2hvc3RMVmlldztcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gYXJyYXlbaV07XHJcbiAgICAgICAgICAgIGlmIChpdGVtICYmIGl0ZW0uJGltcGxpY2l0ICYmICFpdGVtLm5nSWYpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS4kaW1wbGljaXQ7XHJcblxyXG4gICAgICAgICAgICAvLyBTZWNvbmQgbGV2ZWwgc2VhcmNoIGZvciB0aGUgcmVhbCBjb250ZXh0IGluIGNhc2UgdGhlIGZpcnN0IG9uZSB3ZSBmaW5kIGlzIGFuIG5nSWZcclxuICAgICAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS5sZW5ndGggJiYgaXRlbS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpaSA9IDA7IGlpIDwgaXRlbS5sZW5ndGg7IGlpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaWl0ZW0gPSBpdGVtW2lpXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaWl0ZW0gJiYgaWl0ZW0uJGltcGxpY2l0ICYmICFpaXRlbS5uZ0lmKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWl0ZW0uJGltcGxpY2l0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
//Angular
|
|
2
|
+
import { Component, Input, Output, EventEmitter, ElementRef, ViewChild, Renderer2, HostListener, ChangeDetectionStrategy } from "@angular/core";
|
|
3
|
+
/** Componente rappresentante una Colonna della tabella */
|
|
4
|
+
export class EsTh {
|
|
5
|
+
/** @ignore */
|
|
6
|
+
constructor(myself, renderer) {
|
|
7
|
+
this.myself = myself;
|
|
8
|
+
this.renderer = renderer;
|
|
9
|
+
/** Dizionario di mappatura con ordinamento attuale e ordinamento successivo per gestire i passaggi di stato */
|
|
10
|
+
this.orderNext = { "NONE": "DESC", "DESC": "ASC", "ASC": null };
|
|
11
|
+
/** Indica se si sta effettuando un'operazione di resize su questa colonna */
|
|
12
|
+
this.resizingThis = false;
|
|
13
|
+
/**
|
|
14
|
+
* Storicizza l'offset di partenza del resize dell'elemento HTML per poter calcolare la nuova dimensione richiesta durente il resize
|
|
15
|
+
*
|
|
16
|
+
* nuova width = startOffset + posizione X del mouse
|
|
17
|
+
*/
|
|
18
|
+
this.startOffset = null;
|
|
19
|
+
/** Id della colonna, dev'essere lo stesso per tutti gli **EsTd** relativi */
|
|
20
|
+
this.ID = "";
|
|
21
|
+
/** Indica se questa colonna è ordinabile o meno */
|
|
22
|
+
this.Orderable = true;
|
|
23
|
+
/** Valore da mostrare all'interno della colonna. Se omesso verrà proiettato il contenuto dal template in cui è stata usata */
|
|
24
|
+
this.Display = "";
|
|
25
|
+
/** Indica se le dimnsioni di questa colonna sono modificabili o meno */
|
|
26
|
+
this.Resizable = false;
|
|
27
|
+
/** Indica se questo header è pinnato. In caso lo fosse presenta il tastino per effettuare lo spinning */
|
|
28
|
+
this.Pinned = false;
|
|
29
|
+
/**
|
|
30
|
+
* Indica se sta venendo eseguita una operazione di ricerca o meno, serve per evitare l'esecuzione di eventuale codice che potrebbe dare fastidio
|
|
31
|
+
* come ad esempio l'escuzione di un ordinamento durante il caricamento di dati nuovi
|
|
32
|
+
*/
|
|
33
|
+
this.SearchInProgress = false;
|
|
34
|
+
/** Indica se il testo presente in questo Header può andare a capo o meno, di default non può */
|
|
35
|
+
this.Wrap = false;
|
|
36
|
+
/** Indica se la colonna è fixed, cioè se non può né essere nascosta, né riposizionata. Solo le prime colonne possono essere Fixed */
|
|
37
|
+
this.Fixed = false;
|
|
38
|
+
/** Template Angular da istanziare per questo TH */
|
|
39
|
+
this.Template = null;
|
|
40
|
+
/** Evento emesso al cambio di ordinamento effettuato su questa colonna */
|
|
41
|
+
this.onOrderChange = new EventEmitter();
|
|
42
|
+
/** Evento emesso all'unpinning della colonna */
|
|
43
|
+
this.onUnpinning = new EventEmitter();
|
|
44
|
+
/** Impostato dall'**EsTable**, per controllare che ci sia almeno un TD che utilizzi quest'header */
|
|
45
|
+
this._referenced = false;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Imposta la visibilità o meno della colonna, si traduce nell'applicazione o rimozione della classe **app-display-none**
|
|
49
|
+
*
|
|
50
|
+
* @param {boolean} expression Indicazione della visibilità
|
|
51
|
+
*/
|
|
52
|
+
set Visible(expression) {
|
|
53
|
+
this._Visible = expression;
|
|
54
|
+
if (expression)
|
|
55
|
+
this.renderer.removeClass(this.myself.nativeElement, "app-display-none");
|
|
56
|
+
else
|
|
57
|
+
this.renderer.addClass(this.myself.nativeElement, "app-display-none");
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Restituisce lo stato di Visibilità della colonna in oggetto
|
|
61
|
+
*
|
|
62
|
+
* @returns {boolean} **true** se visibile, **false** altrimenti
|
|
63
|
+
*/
|
|
64
|
+
get Visible() {
|
|
65
|
+
if (this._Visible == undefined)
|
|
66
|
+
this._Visible = true;
|
|
67
|
+
return this._Visible;
|
|
68
|
+
}
|
|
69
|
+
/** @ignore */
|
|
70
|
+
ngAfterViewInit() {
|
|
71
|
+
//Assegnare direttamente il content è più veloce che passare dal native element per qualche motivo
|
|
72
|
+
this.Description = this.Display === null || this.Display === "" ? this.content.nativeElement.innerText : this.Display;
|
|
73
|
+
this.Class = this.myself.nativeElement.className.replace("app-display-none", "");
|
|
74
|
+
//Resize
|
|
75
|
+
if (this.Resizable)
|
|
76
|
+
this.renderer.addClass(this.myself.nativeElement, "app-relative");
|
|
77
|
+
}
|
|
78
|
+
/** Emette l'evento di unpinning */
|
|
79
|
+
unpin() {
|
|
80
|
+
this.onUnpinning.emit(this.ID);
|
|
81
|
+
}
|
|
82
|
+
/** Gestisce la modifica dell'ordinamento qualora venisse cliccato su questa colonna */
|
|
83
|
+
setupNextOrderAndNotify() {
|
|
84
|
+
if (!this.ID) {
|
|
85
|
+
console.log("Attempt to order a column without ID. Operation ignored");
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (this.SearchInProgress) {
|
|
89
|
+
console.log("Attempt to order a column during a search. Operation ignored");
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (!this.OrderBy || !this.Orderable)
|
|
93
|
+
return;
|
|
94
|
+
var nextOrder = this.orderNext[this.Order || "NONE"];
|
|
95
|
+
this.Order = nextOrder;
|
|
96
|
+
this.onOrderChange.emit(this.Order);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Evento di inizio resize della colonna
|
|
100
|
+
*
|
|
101
|
+
* @param {any} ev Evento MouseDown
|
|
102
|
+
*/
|
|
103
|
+
onResizeStart(ev) {
|
|
104
|
+
if (!this.Resizable)
|
|
105
|
+
return;
|
|
106
|
+
this.resizingThis = true;
|
|
107
|
+
this.startOffset = this.myself.nativeElement.offsetWidth - ev.pageX;
|
|
108
|
+
}
|
|
109
|
+
/** Listener per la fine dell'operazione di resize */
|
|
110
|
+
onMouseUp() {
|
|
111
|
+
if (!this.Resizable)
|
|
112
|
+
return;
|
|
113
|
+
this.resizingThis = false;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Listener per gestire il movimento del mouse qualora un'operazione di resize fosse in esecuzione
|
|
117
|
+
*
|
|
118
|
+
* @param {$event} ev Evento MouseMove
|
|
119
|
+
*/
|
|
120
|
+
onMouseMove($event) {
|
|
121
|
+
if (!this.Resizable || !this.resizingThis)
|
|
122
|
+
return;
|
|
123
|
+
//Uso jquery per non dover far partire un intero ciclo di change detection solo per fare un resize del cazzo
|
|
124
|
+
//(anche perché viene lanciato ogni 0.1 secondo quindi not a good idea)
|
|
125
|
+
this.myself.nativeElement.style.width = (this.startOffset + $event.pageX) + "px";
|
|
126
|
+
//Fermo il bubbling per non fare cose strane
|
|
127
|
+
$event.preventDefault();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
EsTh.decorators = [
|
|
131
|
+
{ type: Component, args: [{
|
|
132
|
+
selector: "[es-th]",
|
|
133
|
+
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\" class=\"app-pointer fa fa-thumb-tack est-quick-unpin\" (click)=\"unpin()\"></span>\r\n<div [hidden]=\"!Resizable\" class=\"est-head-resizer\" (mousedown)=\"onResizeStart($event)\"></div>\r\n",
|
|
134
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
135
|
+
},] }
|
|
136
|
+
];
|
|
137
|
+
EsTh.ctorParameters = () => [
|
|
138
|
+
{ type: ElementRef },
|
|
139
|
+
{ type: Renderer2 }
|
|
140
|
+
];
|
|
141
|
+
EsTh.propDecorators = {
|
|
142
|
+
ID: [{ type: Input, args: ['es-th',] }],
|
|
143
|
+
Order: [{ type: Input }],
|
|
144
|
+
Orderable: [{ type: Input }],
|
|
145
|
+
Display: [{ type: Input }],
|
|
146
|
+
Resizable: [{ type: Input }],
|
|
147
|
+
Pinned: [{ type: Input }],
|
|
148
|
+
SearchInProgress: [{ type: Input }],
|
|
149
|
+
OrderBy: [{ type: Input }],
|
|
150
|
+
Wrap: [{ type: Input }],
|
|
151
|
+
Fixed: [{ type: Input }],
|
|
152
|
+
Template: [{ type: Input }],
|
|
153
|
+
onOrderChange: [{ type: Output }],
|
|
154
|
+
onUnpinning: [{ type: Output }],
|
|
155
|
+
content: [{ type: ViewChild, args: ["content", { static: false },] }],
|
|
156
|
+
Visible: [{ type: Input }],
|
|
157
|
+
onMouseUp: [{ type: HostListener, args: ['window:mouseup.out-zone',] }],
|
|
158
|
+
onMouseMove: [{ type: HostListener, args: ['window:mousemove.out-zone', ['$event'],] }]
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNfdGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2VzLXRoL2VzX3RoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEosMERBQTBEO0FBTTFELE1BQU0sT0FBTyxJQUFJO0lBd0ViLGNBQWM7SUFDZCxZQUFvQixNQUFrQixFQUFVLFFBQW1CO1FBQS9DLFdBQU0sR0FBTixNQUFNLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBdkVuRSwrR0FBK0c7UUFDdkcsY0FBUyxHQUErQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFLL0csNkVBQTZFO1FBQ3JFLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDSyxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUVuQyw2RUFBNkU7UUFDN0QsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUtoQyxtREFBbUQ7UUFDMUMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVuQyw4SEFBOEg7UUFDckgsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUU5Qix3RUFBd0U7UUFDL0QsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVwQyx5R0FBeUc7UUFDaEcsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUVqQzs7O1dBR0c7UUFDTSxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFLM0MsZ0dBQWdHO1FBQ3ZGLFNBQUksR0FBWSxLQUFLLENBQUM7UUFFL0IscUlBQXFJO1FB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QztJQUN4RSxDQUFDO0lBRUQscURBQXFEO0lBRTlDLFNBQVM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDZixPQUFPO1FBRVgsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFFSSxXQUFXLENBQUMsTUFBTTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQ3JDLE9BQU87UUFFWCw0R0FBNEc7UUFDNUcsdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFakYsNENBQTRDO1FBQzVDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7WUF0TEosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixxdUJBQXFDO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7O1lBUGdELFVBQVU7WUFBYSxTQUFTOzs7aUJBMkI1RSxLQUFLLFNBQUMsT0FBTztvQkFHYixLQUFLO3dCQUdMLEtBQUs7c0JBR0wsS0FBSzt3QkFHTCxLQUFLO3FCQUdMLEtBQUs7K0JBTUwsS0FBSztzQkFHTCxLQUFLO21CQUdMLEtBQUs7b0JBR0wsS0FBSzt1QkFHTCxLQUFLOzRCQUdMLE1BQU07MEJBR04sTUFBTTtzQkFHTixTQUFTLFNBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtzQkFtQnRDLEtBQUs7d0JBeUVMLFlBQVksU0FBQyx5QkFBeUI7MEJBYXRDLFlBQVksU0FBQywyQkFBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBSZW5kZXJlcjIsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqIENvbXBvbmVudGUgcmFwcHJlc2VudGFudGUgdW5hIENvbG9ubmEgZGVsbGEgdGFiZWxsYSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcIltlcy10aF1cIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZXNfdGguY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc1RoIHtcclxuXHJcbiAgICAvKiogRGl6aW9uYXJpbyBkaSBtYXBwYXR1cmEgY29uIG9yZGluYW1lbnRvIGF0dHVhbGUgZSBvcmRpbmFtZW50byBzdWNjZXNzaXZvIHBlciBnZXN0aXJlIGkgcGFzc2FnZ2kgZGkgc3RhdG8gKi9cclxuICAgIHByaXZhdGUgb3JkZXJOZXh0OiB7IFtpbmRleDogc3RyaW5nXTogJ0RFU0MnIHwgJ0FTQycgfCBudWxsIH0gPSB7IFwiTk9ORVwiOiBcIkRFU0NcIiwgXCJERVNDXCI6IFwiQVNDXCIsIFwiQVNDXCI6IG51bGwgfTtcclxuXHJcbiAgICAvKiogSW5kaWNhemlvbmUgc3VsbGEgdmlzaWJpbGl0w6AgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgcHJpdmF0ZSBfVmlzaWJsZTogYm9vbGVhbjtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIHNpIHN0YSBlZmZldHR1YW5kbyB1bidvcGVyYXppb25lIGRpIHJlc2l6ZSBzdSBxdWVzdGEgY29sb25uYSAqL1xyXG4gICAgcHJpdmF0ZSByZXNpemluZ1RoaXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0b3JpY2l6emEgbCdvZmZzZXQgZGkgcGFydGVuemEgZGVsIHJlc2l6ZSBkZWxsJ2VsZW1lbnRvIEhUTUwgcGVyIHBvdGVyIGNhbGNvbGFyZSBsYSBudW92YSBkaW1lbnNpb25lIHJpY2hpZXN0YSBkdXJlbnRlIGlsIHJlc2l6ZSBcclxuICAgICAqIFxyXG4gICAgICogbnVvdmEgd2lkdGggPSBzdGFydE9mZnNldCArIHBvc2l6aW9uZSBYIGRlbCBtb3VzZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXJ0T2Zmc2V0OiBudW1iZXIgPSBudWxsO1xyXG5cclxuICAgIC8qKiBJZCBkZWxsYSBjb2xvbm5hLCBkZXYnZXNzZXJlIGxvIHN0ZXNzbyBwZXIgdHV0dGkgZ2xpICoqRXNUZCoqIHJlbGF0aXZpICovXHJcbiAgICBASW5wdXQoJ2VzLXRoJykgSUQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqIE9yZGluYW1lbnRvIGF0dHVhbGUgZGVsbGEgY29sb25uYSAqL1xyXG4gICAgQElucHV0KCkgT3JkZXI/OiAnREVTQycgfCAnQVNDJztcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIHF1ZXN0YSBjb2xvbm5hIMOoIG9yZGluYWJpbGUgbyBtZW5vICovXHJcbiAgICBASW5wdXQoKSBPcmRlcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKiBWYWxvcmUgZGEgbW9zdHJhcmUgYWxsJ2ludGVybm8gZGVsbGEgY29sb25uYS4gU2Ugb21lc3NvIHZlcnLDoCBwcm9pZXR0YXRvIGlsIGNvbnRlbnV0byBkYWwgdGVtcGxhdGUgaW4gY3VpIMOoIHN0YXRhIHVzYXRhICovXHJcbiAgICBASW5wdXQoKSBEaXNwbGF5OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbGUgZGltbnNpb25pIGRpIHF1ZXN0YSBjb2xvbm5hIHNvbm8gbW9kaWZpY2FiaWxpIG8gbWVubyAqL1xyXG4gICAgQElucHV0KCkgUmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBxdWVzdG8gaGVhZGVyIMOoIHBpbm5hdG8uIEluIGNhc28gbG8gZm9zc2UgcHJlc2VudGEgaWwgdGFzdGlubyBwZXIgZWZmZXR0dWFyZSBsbyBzcGlubmluZyAqL1xyXG4gICAgQElucHV0KCkgUGlubmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2Ugc3RhIHZlbmVuZG8gZXNlZ3VpdGEgdW5hIG9wZXJhemlvbmUgZGkgcmljZXJjYSBvIG1lbm8sIHNlcnZlIHBlciBldml0YXJlIGwnZXNlY3V6aW9uZSBkaSBldmVudHVhbGUgY29kaWNlIGNoZSBwb3RyZWJiZSBkYXJlIGZhc3RpZGlvIFxyXG4gICAgICogY29tZSBhZCBlc2VtcGlvIGwnZXNjdXppb25lIGRpIHVuIG9yZGluYW1lbnRvIGR1cmFudGUgaWwgY2FyaWNhbWVudG8gZGkgZGF0aSBudW92aVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBTZWFyY2hJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEltcG9zdGF0byBkYWxsJyoqRXNUYWJsZSoqLCBzZXJ2ZSBwZXIgcGVybWV0dGVyZSBvIG1lbm8gZGkgZWZmZXR0dWFyZSBvcmRpbmFtZW50aSBkYXRpIHN1IHF1ZXN0YSBjb2xvbm5hICovXHJcbiAgICBASW5wdXQoKSBPcmRlckJ5OiBib29sZWFuO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgaWwgdGVzdG8gcHJlc2VudGUgaW4gcXVlc3RvIEhlYWRlciBwdcOyIGFuZGFyZSBhIGNhcG8gbyBtZW5vLCBkaSBkZWZhdWx0IG5vbiBwdcOyICovXHJcbiAgICBASW5wdXQoKSBXcmFwOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBsYSBjb2xvbm5hIMOoIGZpeGVkLCBjaW/DqCBzZSBub24gcHXDsiBuw6kgZXNzZXJlIG5hc2Nvc3RhLCBuw6kgcmlwb3NpemlvbmF0YS4gU29sbyBsZSBwcmltZSBjb2xvbm5lIHBvc3Nvbm8gZXNzZXJlIEZpeGVkICovXHJcbiAgICBASW5wdXQoKSBGaXhlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBUZW1wbGF0ZSBBbmd1bGFyIGRhIGlzdGFuemlhcmUgcGVyIHF1ZXN0byBUSCAqL1xyXG4gICAgQElucHV0KCkgVGVtcGxhdGU/OiBhbnkgPSBudWxsO1xyXG5cclxuICAgIC8qKiBFdmVudG8gZW1lc3NvIGFsIGNhbWJpbyBkaSBvcmRpbmFtZW50byBlZmZldHR1YXRvIHN1IHF1ZXN0YSBjb2xvbm5hICovXHJcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uT3JkZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjwnREVTQycgfCAnQVNDJyB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjwnREVTQycgfCAnQVNDJyB8IG51bGw+KCk7XHJcblxyXG4gICAgLyoqIEV2ZW50byBlbWVzc28gYWxsJ3VucGlubmluZyBkZWxsYSBjb2xvbm5hICovXHJcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uVW5waW5uaW5nOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIC8qKiBQcm9pZXppb25lIGRlbCBjb250ZW51dG8gZGkgcXVlc3RhIGNvbG9ubmEgKi9cclxuICAgIEBWaWV3Q2hpbGQoXCJjb250ZW50XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250ZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKiBDbGFzc2kgZGEgYXBwbGljYXJlIGFsbGEgY29sb25uYSAqL1xyXG4gICAgcHVibGljIENsYXNzOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEltcG9zdGF0byBkYWxsJyoqRXNUYWJsZSoqLCBwZXIgY29udHJvbGxhcmUgY2hlIGNpIHNpYSBhbG1lbm8gdW4gVEQgY2hlIHV0aWxpenppIHF1ZXN0J2hlYWRlciAqL1xyXG4gICAgcHVibGljIF9yZWZlcmVuY2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIFZhcmlhYmlsZSBmaW5hbGUgc3UgY3VpIMOoIGJpbmRhdG8gaWwgY29udGVudXRvIGRlbGxhIGNlbGxhLiBTYXLDoCB2YWxvcml6emF0byBhICoqRGlzcGxheSoqIHNlIHNwZWNpZmljYXRvLCBhbGwnKippbm5lckhUTUwqKiBkZWxsJ2VsZW1lbnRvIHByb2lldHRhdG8gYWx0cmltZW50aSAqL1xyXG4gICAgcHVibGljIERlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbXlzZWxmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBsYSB2aXNpYmlsaXTDoCBvIG1lbm8gZGVsbGEgY29sb25uYSwgc2kgdHJhZHVjZSBuZWxsJ2FwcGxpY2F6aW9uZSBvIHJpbW96aW9uZSBkZWxsYSBjbGFzc2UgKiphcHAtZGlzcGxheS1ub25lKipcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBleHByZXNzaW9uIEluZGljYXppb25lIGRlbGxhIHZpc2liaWxpdMOgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNldCBWaXNpYmxlKGV4cHJlc3Npb246IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9WaXNpYmxlID0gZXhwcmVzc2lvbjtcclxuXHJcbiAgICAgICAgaWYgKGV4cHJlc3Npb24pXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5teXNlbGYubmF0aXZlRWxlbWVudCwgXCJhcHAtZGlzcGxheS1ub25lXCIpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LCBcImFwcC1kaXNwbGF5LW5vbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXN0aXR1aXNjZSBsbyBzdGF0byBkaSBWaXNpYmlsaXTDoCBkZWxsYSBjb2xvbm5hIGluIG9nZ2V0dG9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59ICoqdHJ1ZSoqIHNlIHZpc2liaWxlLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBnZXQgVmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5fVmlzaWJsZSA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX1Zpc2libGUgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fVmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIC8vQXNzZWduYXJlIGRpcmV0dGFtZW50ZSBpbCBjb250ZW50IMOoIHBpw7kgdmVsb2NlIGNoZSBwYXNzYXJlIGRhbCBuYXRpdmUgZWxlbWVudCBwZXIgcXVhbGNoZSBtb3Rpdm9cclxuICAgICAgICB0aGlzLkRlc2NyaXB0aW9uID0gdGhpcy5EaXNwbGF5ID09PSBudWxsIHx8IHRoaXMuRGlzcGxheSA9PT0gXCJcIiA/IHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCA6IHRoaXMuRGlzcGxheTtcclxuXHJcbiAgICAgICAgdGhpcy5DbGFzcyA9IHRoaXMubXlzZWxmLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoXCJhcHAtZGlzcGxheS1ub25lXCIsIFwiXCIpO1xyXG5cclxuICAgICAgICAvL1Jlc2l6ZVxyXG4gICAgICAgIGlmICh0aGlzLlJlc2l6YWJsZSlcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50LCBcImFwcC1yZWxhdGl2ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogRW1ldHRlIGwnZXZlbnRvIGRpIHVucGlubmluZyAqL1xyXG4gICAgdW5waW4oKSB7XHJcbiAgICAgICAgdGhpcy5vblVucGlubmluZy5lbWl0KHRoaXMuSUQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBHZXN0aXNjZSBsYSBtb2RpZmljYSBkZWxsJ29yZGluYW1lbnRvIHF1YWxvcmEgdmVuaXNzZSBjbGljY2F0byBzdSBxdWVzdGEgY29sb25uYSAqL1xyXG4gICAgc2V0dXBOZXh0T3JkZXJBbmROb3RpZnkoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLklEKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQXR0ZW1wdCB0byBvcmRlciBhIGNvbHVtbiB3aXRob3V0IElELiBPcGVyYXRpb24gaWdub3JlZFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuU2VhcmNoSW5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkF0dGVtcHQgdG8gb3JkZXIgYSBjb2x1bW4gZHVyaW5nIGEgc2VhcmNoLiBPcGVyYXRpb24gaWdub3JlZFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLk9yZGVyQnkgfHwgIXRoaXMuT3JkZXJhYmxlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIHZhciBuZXh0T3JkZXIgPSB0aGlzLm9yZGVyTmV4dFt0aGlzLk9yZGVyIHx8IFwiTk9ORVwiXTtcclxuICAgICAgICB0aGlzLk9yZGVyID0gbmV4dE9yZGVyO1xyXG5cclxuICAgICAgICB0aGlzLm9uT3JkZXJDaGFuZ2UuZW1pdCh0aGlzLk9yZGVyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50byBkaSBpbml6aW8gcmVzaXplIGRlbGxhIGNvbG9ubmFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IGV2IEV2ZW50byBNb3VzZURvd25cclxuICAgICAqL1xyXG4gICAgb25SZXNpemVTdGFydChldikge1xyXG4gICAgICAgIGlmICghdGhpcy5SZXNpemFibGUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5yZXNpemluZ1RoaXMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRPZmZzZXQgPSB0aGlzLm15c2VsZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZXYucGFnZVg7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIExpc3RlbmVyIHBlciBsYSBmaW5lIGRlbGwnb3BlcmF6aW9uZSBkaSByZXNpemUgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZXVwLm91dC16b25lJylcclxuICAgIHB1YmxpYyBvbk1vdXNlVXAoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLlJlc2l6YWJsZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLnJlc2l6aW5nVGhpcyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdGVuZXIgcGVyIGdlc3RpcmUgaWwgbW92aW1lbnRvIGRlbCBtb3VzZSBxdWFsb3JhIHVuJ29wZXJhemlvbmUgZGkgcmVzaXplIGZvc3NlIGluIGVzZWN1emlvbmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHskZXZlbnR9IGV2IEV2ZW50byBNb3VzZU1vdmVcclxuICAgICAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1vdXNlbW92ZS5vdXQtem9uZScsIFsnJGV2ZW50J10pXHJcbiAgICBwdWJsaWMgb25Nb3VzZU1vdmUoJGV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLlJlc2l6YWJsZSB8fCAhdGhpcy5yZXNpemluZ1RoaXMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgLy9Vc28ganF1ZXJ5IHBlciBub24gZG92ZXIgZmFyIHBhcnRpcmUgdW4gaW50ZXJvIGNpY2xvIGRpIGNoYW5nZSBkZXRlY3Rpb24gc29sbyBwZXIgZmFyZSB1biByZXNpemUgZGVsIGNhenpvXHJcbiAgICAgICAgLy8oYW5jaGUgcGVyY2jDqSB2aWVuZSBsYW5jaWF0byBvZ25pIDAuMSBzZWNvbmRvIHF1aW5kaSBub3QgYSBnb29kIGlkZWEpXHJcbiAgICAgICAgdGhpcy5teXNlbGYubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9ICh0aGlzLnN0YXJ0T2Zmc2V0ICsgJGV2ZW50LnBhZ2VYKSArIFwicHhcIjtcclxuXHJcbiAgICAgICAgLy9GZXJtbyBpbCBidWJibGluZyBwZXIgbm9uIGZhcmUgY29zZSBzdHJhbmVcclxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Optional, Output, ViewEncapsulation } from "@angular/core";
|
|
3
|
+
// Configurazioni
|
|
4
|
+
import { LocalizationService } from "@esfaenza/localizations";
|
|
5
|
+
import { MessageService } from "@esfaenza/extensions";
|
|
6
|
+
// Applicazione
|
|
7
|
+
import { TablePagerLoc } from "./table_pager.component.loc";
|
|
8
|
+
import { EST_LOCALE } from "../../tokens";
|
|
9
|
+
/** Componente che si occupa della paginazione di una tabella */
|
|
10
|
+
export class TablePagerComponent {
|
|
11
|
+
/** @ignore */
|
|
12
|
+
constructor(msgExts, lc, cdr, locale) {
|
|
13
|
+
this.msgExts = msgExts;
|
|
14
|
+
this.lc = lc;
|
|
15
|
+
this.cdr = cdr;
|
|
16
|
+
this.locale = locale;
|
|
17
|
+
/** Indica se deve mostrare un warning quando si cercano di solezionare come elementi da visualizzare "Tutti" */
|
|
18
|
+
this.WarnOnAll = true;
|
|
19
|
+
/** Indica se dare la possibilità o meno di selezionare "Tutti" nelle opzioni di paginazione */
|
|
20
|
+
this.AllSearch = true;
|
|
21
|
+
/** Placeholder che identifica il "Tutti" */
|
|
22
|
+
this.DefaultAll = 999999;
|
|
23
|
+
/** Indica se attivare la modalità gruppo con stili più snelli per apparire sotto ai raggruppamenti */
|
|
24
|
+
this.GroupMode = false;
|
|
25
|
+
/** Indica se utilizzare il conteggio dei gruppi o degli oggetti */
|
|
26
|
+
this.GroupCount = false;
|
|
27
|
+
/** Indica il testo che va a sostituire "Oggetti Visualizzati" in caso si stia facendo qualcosa di custom, Ignorato in caso di gruppi */
|
|
28
|
+
this.CountLabel = null;
|
|
29
|
+
/** Indica se visualizzare il numero totale di oggeti presenti */
|
|
30
|
+
this.ShowCount = true;
|
|
31
|
+
/** Indica se visualizzare il numero totale di oggeti presenti */
|
|
32
|
+
this.ShowPaging = true;
|
|
33
|
+
/** Output invocato quando il numero di elementi per pagina viene modificato da un click utente */
|
|
34
|
+
this.pagingSelected = new EventEmitter();
|
|
35
|
+
/** Opzioni di paginazione */
|
|
36
|
+
this.PagingOptions = [10, 15, 30, 45, 100];
|
|
37
|
+
}
|
|
38
|
+
/** @ignore */
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
this.Model = this.View ? (this.View.itemsperpageoverride || 15) : this.CurrentPageSize;
|
|
41
|
+
if (this.AllSearch)
|
|
42
|
+
this.PagingOptions.push(this.DefaultAll);
|
|
43
|
+
}
|
|
44
|
+
/** @ignore */
|
|
45
|
+
ngOnChanges(changes) {
|
|
46
|
+
let newView = changes['View'];
|
|
47
|
+
let newCPS = changes['CurrentPageSize'];
|
|
48
|
+
if ((newView && !newView.firstChange) || (newCPS && !newCPS.firstChange))
|
|
49
|
+
this.Model = (newView === null || newView === void 0 ? void 0 : newView.currentValue) ? (newView.currentValue.itemsperpageoverride || 15) : (newCPS === null || newCPS === void 0 ? void 0 : newCPS.currentValue) ? newCPS.currentValue : null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Funzione richiamata dal template quando un utente clicca su un numero di paginazione.
|
|
53
|
+
*
|
|
54
|
+
* Cliccare 2 volte sullo stesso numero causa comunque un refresh dei dati
|
|
55
|
+
*
|
|
56
|
+
* @param {number} pageSize Dimensione selezionata lato UI
|
|
57
|
+
*/
|
|
58
|
+
choice(pageSize) {
|
|
59
|
+
if (pageSize == this.DefaultAll && this.WarnOnAll) {
|
|
60
|
+
this.msgExts.simpleWarningWithChoice(this.lc.loc("Are you sure you want to retrieve all results?"), this.lc.loc("This might slow down the page and possibly crash the entire application"), () => { this.pagingSelected.emit(pageSize); this.Model = pageSize; }, () => {
|
|
61
|
+
// Dio solo sa perché mi tocca fare sta roba... qui dentro per qualche motivo la CD non prende
|
|
62
|
+
let prevModel = this.Model;
|
|
63
|
+
this.Model = null;
|
|
64
|
+
this.cdr.detectChanges();
|
|
65
|
+
this.Model = prevModel;
|
|
66
|
+
this.cdr.detectChanges();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.pagingSelected.emit(pageSize);
|
|
71
|
+
this.Model = pageSize;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
TablePagerComponent.decorators = [
|
|
76
|
+
{ type: Component, args: [{
|
|
77
|
+
selector: "app-paging",
|
|
78
|
+
viewProviders: [{ provide: LocalizationService, useClass: TablePagerLoc }],
|
|
79
|
+
template: "<ng-container *ngIf=\"!Hidden\">\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 && (Model == DefaultAll || PagerCount >= Model || PagerCount == -1)\">\r\n <mat-form-field [appearance]=\"'legacy'\" class=\"mat-paginator-page-size-select est-fs-14 est-ipp-bold\">\r\n <select matNativeControl [ngModel]=\"Model\" name=\"input\" (ngModelChange)=\"choice($event)\">\r\n <ng-container *ngFor=\"let pOpt of PagingOptions\">\r\n <option *ngIf=\"pOpt == DefaultAll || PagerCount >= pOpt || PagerCount == -1\" [value]=\"pOpt\">{{ pOpt == DefaultAll ? ('All' | localize : lc) : pOpt.toString()}}</option>\r\n </ng-container>\r\n </select>\r\n </mat-form-field>\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' : locale}}</span>\r\n</ng-container>",
|
|
80
|
+
encapsulation: ViewEncapsulation.None,
|
|
81
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
82
|
+
styles: [".est-rg-ipp-sel-all{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block;display:inline}.est-rg-ipp-sel{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block;display:inline}.est-ipp-sel-all{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block;display:inline}.est-head-resizer{top:0;right:0;bottom:0;width:2px;position:absolute;cursor:col-resize;background-color:#ccc}.est-ipp-sel{color:#0275d8!important;cursor:pointer;text-decoration:none;display:block;display:inline}.est-ipp-bold{font-weight:bold}.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"]
|
|
83
|
+
},] }
|
|
84
|
+
];
|
|
85
|
+
TablePagerComponent.ctorParameters = () => [
|
|
86
|
+
{ type: MessageService },
|
|
87
|
+
{ type: LocalizationService },
|
|
88
|
+
{ type: ChangeDetectorRef },
|
|
89
|
+
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [EST_LOCALE,] }] }
|
|
90
|
+
];
|
|
91
|
+
TablePagerComponent.propDecorators = {
|
|
92
|
+
CurrentPageSize: [{ type: Input }],
|
|
93
|
+
View: [{ type: Input }],
|
|
94
|
+
WarnOnAll: [{ type: Input }],
|
|
95
|
+
AllSearch: [{ type: Input }],
|
|
96
|
+
DefaultAll: [{ type: Input }],
|
|
97
|
+
GroupMode: [{ type: Input }],
|
|
98
|
+
GroupCount: [{ type: Input }],
|
|
99
|
+
CountLabel: [{ type: Input }],
|
|
100
|
+
ShowCount: [{ type: Input }],
|
|
101
|
+
ShowPaging: [{ type: Input }],
|
|
102
|
+
PagerCount: [{ type: Input }],
|
|
103
|
+
Hidden: [{ type: Input }],
|
|
104
|
+
pagingSelected: [{ type: Output }]
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVfcGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2VyL3RhYmxlX3BhZ2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2SyxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELGVBQWU7QUFDZixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxQyxnRUFBZ0U7QUFTaEUsTUFBTSxPQUFPLG1CQUFtQjtJQXlDNUIsY0FBYztJQUNkLFlBQW9CLE9BQXVCLEVBQVMsRUFBdUIsRUFBUyxHQUFzQixFQUF5QyxNQUFjO1FBQTdJLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUF5QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBbENqSyxnSEFBZ0g7UUFDdkcsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVuQywrRkFBK0Y7UUFDdEYsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVuQyw0Q0FBNEM7UUFDbkMsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQUU3QixzR0FBc0c7UUFDN0YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUUzQixtRUFBbUU7UUFDMUQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUU1Qix3SUFBd0k7UUFDL0gsZUFBVSxHQUFXLElBQUksQ0FBQztRQUVuQyxpRUFBaUU7UUFDeEQsY0FBUyxHQUFZLElBQUksQ0FBQztRQUVuQyxpRUFBaUU7UUFDeEQsZUFBVSxHQUFZLElBQUksQ0FBQztRQVFwQyxrR0FBa0c7UUFDeEYsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBUXRELDZCQUE2QjtRQUN0QixrQkFBYSxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBRSxDQUFDO0lBTjZHLENBQUM7SUFRdEssY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN2RixJQUFJLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUNwRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNuSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQWdCO1FBQzFCLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUNoQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxFQUM3RCxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyx5RUFBeUUsQ0FBQyxFQUN0RixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUNwRSxHQUFHLEVBQUU7Z0JBQ0QsOEZBQThGO2dCQUM5RixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7U0FDVjthQUNJO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7U0FDekI7SUFDTCxDQUFDOzs7WUFwR0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixhQUFhLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLENBQUM7Z0JBRTFFLGtuQ0FBMkM7Z0JBQzNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWRRLGNBQWM7WUFEZCxtQkFBbUI7WUFITSxpQkFBaUI7eUNBNkQ4RCxRQUFRLFlBQUksTUFBTSxTQUFDLFVBQVU7Ozs4QkF2Q3pJLEtBQUs7bUJBR0wsS0FBSzt3QkFHTCxLQUFLO3dCQUdMLEtBQUs7eUJBR0wsS0FBSzt3QkFHTCxLQUFLO3lCQUdMLEtBQUs7eUJBR0wsS0FBSzt3QkFHTCxLQUFLO3lCQUdMLEtBQUs7eUJBR0wsS0FBSztxQkFHTCxLQUFLOzZCQUdMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBUYWJsZVBhZ2VyTG9jIH0gZnJvbSBcIi4vdGFibGVfcGFnZXIuY29tcG9uZW50LmxvY1wiO1xyXG5pbXBvcnQgeyBFU1RfTE9DQUxFIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuLyoqIENvbXBvbmVudGUgY2hlIHNpIG9jY3VwYSBkZWxsYSBwYWdpbmF6aW9uZSBkaSB1bmEgdGFiZWxsYSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFwcC1wYWdpbmdcIixcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBUYWJsZVBhZ2VyTG9jIH1dLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGVfcGFnZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGFibGVfcGFnZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVQYWdlckNvbXBvbmVudCB7XHJcblxyXG4gICAgLyoqIERpbWVuc2lvbmUgZGkgcGFnaW5hIGF0dHVhbGUgKi9cclxuICAgIEBJbnB1dCgpIEN1cnJlbnRQYWdlU2l6ZTogYW55O1xyXG5cclxuICAgIC8qKiBWaWV3IGdlc3RpdGEsIGNoZSBwdcOyIGVzc2VyZSB1biBJQXBwU2VhcmNoIG8gdW5hIFJlcG9ydFZpZXcgKi9cclxuICAgIEBJbnB1dCgpIFZpZXc6IGFueTtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGRldmUgbW9zdHJhcmUgdW4gd2FybmluZyBxdWFuZG8gc2kgY2VyY2FubyBkaSBzb2xlemlvbmFyZSBjb21lIGVsZW1lbnRpIGRhIHZpc3VhbGl6emFyZSBcIlR1dHRpXCIgKi9cclxuICAgIEBJbnB1dCgpIFdhcm5PbkFsbDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBkYXJlIGxhIHBvc3NpYmlsaXTDoCBvIG1lbm8gZGkgc2VsZXppb25hcmUgXCJUdXR0aVwiIG5lbGxlIG9wemlvbmkgZGkgcGFnaW5hemlvbmUgKi9cclxuICAgIEBJbnB1dCgpIEFsbFNlYXJjaDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBcclxuICAgIC8qKiBQbGFjZWhvbGRlciBjaGUgaWRlbnRpZmljYSBpbCBcIlR1dHRpXCIgKi9cclxuICAgIEBJbnB1dCgpIERlZmF1bHRBbGwgPSA5OTk5OTk7XHJcbiAgICBcclxuICAgIC8qKiBJbmRpY2Egc2UgYXR0aXZhcmUgbGEgbW9kYWxpdMOgIGdydXBwbyBjb24gc3RpbGkgcGnDuSBzbmVsbGkgcGVyIGFwcGFyaXJlIHNvdHRvIGFpIHJhZ2dydXBwYW1lbnRpICovXHJcbiAgICBASW5wdXQoKSBHcm91cE1vZGUgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIHV0aWxpenphcmUgaWwgY29udGVnZ2lvIGRlaSBncnVwcGkgbyBkZWdsaSBvZ2dldHRpICovXHJcbiAgICBASW5wdXQoKSBHcm91cENvdW50ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBpbCB0ZXN0byBjaGUgdmEgYSBzb3N0aXR1aXJlIFwiT2dnZXR0aSBWaXN1YWxpenphdGlcIiBpbiBjYXNvIHNpIHN0aWEgZmFjZW5kbyBxdWFsY29zYSBkaSBjdXN0b20sIElnbm9yYXRvIGluIGNhc28gZGkgZ3J1cHBpICovXHJcbiAgICBASW5wdXQoKSBDb3VudExhYmVsOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgdmlzdWFsaXp6YXJlIGlsIG51bWVybyB0b3RhbGUgZGkgb2dnZXRpIHByZXNlbnRpICovXHJcbiAgICBASW5wdXQoKSBTaG93Q291bnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgdmlzdWFsaXp6YXJlIGlsIG51bWVybyB0b3RhbGUgZGkgb2dnZXRpIHByZXNlbnRpICovXHJcbiAgICBASW5wdXQoKSBTaG93UGFnaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIGlsIG51bWVybyB0b3RhbGUgZGkgb2dnZXRpIHByZXNlbnRpICovXHJcbiAgICBASW5wdXQoKSBQYWdlckNvdW50OiBudW1iZXI7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBtb3N0cmFyZSBvIG1lbm8gaWwgY29udGVudXRvIEBkZXByZWNhdGVkIHVzYXRhIHNvbG8gZGEgTWF0cml4VmFsdWVzQ29tcG9uZW50IG5lbGxhIGxpYiByZWxhdGl2YSAqL1xyXG4gICAgQElucHV0KCkgSGlkZGVuOiBib29sZWFuO1xyXG5cclxuICAgIC8qKiBPdXRwdXQgaW52b2NhdG8gcXVhbmRvIGlsIG51bWVybyBkaSBlbGVtZW50aSBwZXIgcGFnaW5hIHZpZW5lIG1vZGlmaWNhdG8gZGEgdW4gY2xpY2sgdXRlbnRlICovXHJcbiAgICBAT3V0cHV0KCkgcGFnaW5nU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBtc2dFeHRzOiBNZXNzYWdlU2VydmljZSwgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgQE9wdGlvbmFsKCkgQEluamVjdChFU1RfTE9DQUxFKSBwdWJsaWMgbG9jYWxlOiBzdHJpbmcpIHsgfVxyXG5cclxuICAgIC8qKiBNb2RlbGxvIHN1IGN1aSBsYSBzZWxlY3QgZWZmZXR0dWEgb3BlcmF6aW9uaSBkaSBzZWxlemlvbmUgKi9cclxuICAgIHB1YmxpYyBNb2RlbDogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBPcHppb25pIGRpIHBhZ2luYXppb25lICovXHJcbiAgICBwdWJsaWMgUGFnaW5nT3B0aW9uczogbnVtYmVyW10gPSBbMTAsIDE1LCAzMCwgNDUsIDEwMCBdO1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLk1vZGVsID0gdGhpcy5WaWV3ID8gKHRoaXMuVmlldy5pdGVtc3BlcnBhZ2VvdmVycmlkZSB8fCAxNSkgOiB0aGlzLkN1cnJlbnRQYWdlU2l6ZTtcclxuICAgICAgICBpZiAodGhpcy5BbGxTZWFyY2gpXHJcbiAgICAgICAgICAgIHRoaXMuUGFnaW5nT3B0aW9ucy5wdXNoKHRoaXMuRGVmYXVsdEFsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBsZXQgbmV3VmlldyA9IGNoYW5nZXNbJ1ZpZXcnXTtcclxuICAgICAgICBsZXQgbmV3Q1BTID0gY2hhbmdlc1snQ3VycmVudFBhZ2VTaXplJ107XHJcblxyXG4gICAgICAgIGlmICgobmV3VmlldyAmJiAhbmV3Vmlldy5maXJzdENoYW5nZSkgfHwgKG5ld0NQUyAmJiAhbmV3Q1BTLmZpcnN0Q2hhbmdlKSlcclxuICAgICAgICAgICAgdGhpcy5Nb2RlbCA9IG5ld1ZpZXc/LmN1cnJlbnRWYWx1ZSA/IChuZXdWaWV3LmN1cnJlbnRWYWx1ZS5pdGVtc3BlcnBhZ2VvdmVycmlkZSB8fCAxNSkgOiBuZXdDUFM/LmN1cnJlbnRWYWx1ZSA/IG5ld0NQUy5jdXJyZW50VmFsdWUgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuemlvbmUgcmljaGlhbWF0YSBkYWwgdGVtcGxhdGUgcXVhbmRvIHVuIHV0ZW50ZSBjbGljY2Egc3UgdW4gbnVtZXJvIGRpIHBhZ2luYXppb25lLlxyXG4gICAgICogXHJcbiAgICAgKiBDbGljY2FyZSAyIHZvbHRlIHN1bGxvIHN0ZXNzbyBudW1lcm8gY2F1c2EgY29tdW5xdWUgdW4gcmVmcmVzaCBkZWkgZGF0aVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcGFnZVNpemUgRGltZW5zaW9uZSBzZWxlemlvbmF0YSBsYXRvIFVJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaG9pY2UocGFnZVNpemU6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChwYWdlU2l6ZSA9PSB0aGlzLkRlZmF1bHRBbGwgJiYgdGhpcy5XYXJuT25BbGwpIHtcclxuICAgICAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVdhcm5pbmdXaXRoQ2hvaWNlKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5sYy5sb2MoXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmV0cmlldmUgYWxsIHJlc3VsdHM/XCIpLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5sYy5sb2MoXCJUaGlzIG1pZ2h0IHNsb3cgZG93biB0aGUgcGFnZSBhbmQgcG9zc2libHkgY3Jhc2ggdGhlIGVudGlyZSBhcHBsaWNhdGlvblwiKSxcclxuICAgICAgICAgICAgICAgICgpID0+IHsgdGhpcy5wYWdpbmdTZWxlY3RlZC5lbWl0KHBhZ2VTaXplKTsgdGhpcy5Nb2RlbCA9IHBhZ2VTaXplOyB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIERpbyBzb2xvIHNhIHBlcmNow6kgbWkgdG9jY2EgZmFyZSBzdGEgcm9iYS4uLiBxdWkgZGVudHJvIHBlciBxdWFsY2hlIG1vdGl2byBsYSBDRCBub24gcHJlbmRlXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZNb2RlbCA9IHRoaXMuTW9kZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Nb2RlbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuTW9kZWwgPSBwcmV2TW9kZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luZ1NlbGVjdGVkLmVtaXQocGFnZVNpemUpO1xyXG4gICAgICAgICAgICB0aGlzLk1vZGVsID0gcGFnZVNpemU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Injectable, Inject, Optional } from "@angular/core";
|
|
2
|
+
import { LocalizationService } from "@esfaenza/localizations";
|
|
3
|
+
import { EST_LOCALE } from '../../tokens';
|
|
4
|
+
/** Classe di localizzazione per il componente **TablePagerComponent** */
|
|
5
|
+
export class TablePagerLoc extends LocalizationService {
|
|
6
|
+
/** @ignore */
|
|
7
|
+
constructor(LOC_LOCALE) {
|
|
8
|
+
super(LOC_LOCALE !== null && LOC_LOCALE !== void 0 ? LOC_LOCALE : 'it-IT');
|
|
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
|
+
}
|
|
16
|
+
TablePagerLoc.decorators = [
|
|
17
|
+
{ type: Injectable }
|
|
18
|
+
];
|
|
19
|
+
TablePagerLoc.ctorParameters = () => [
|
|
20
|
+
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [EST_LOCALE,] }] }
|
|
21
|
+
];
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVfcGFnZXIuY29tcG9uZW50LmxvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlci90YWJsZV9wYWdlci5jb21wb25lbnQubG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFDLHlFQUF5RTtBQUV6RSxNQUFNLE9BQU8sYUFBYyxTQUFRLG1CQUFtQjtJQUVsRCxjQUFjO0lBQ2QsWUFBNEMsVUFBa0I7UUFDMUQsS0FBSyxDQUFDLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7UUFDakUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQzdELEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGdEQUFnRCxFQUFFLENBQUMsa0RBQWtELENBQUMsQ0FBQyxDQUFDO1FBQzVILEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLHlFQUF5RSxFQUFFLENBQUMsNEVBQTRFLENBQUMsQ0FBQyxDQUFDO0lBQ25MLENBQUM7OztZQVhKLFVBQVU7Ozt5Q0FJTSxRQUFRLFlBQUksTUFBTSxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBFU1RfTE9DQUxFIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuXHJcbi8qKiBDbGFzc2UgZGkgbG9jYWxpenphemlvbmUgcGVyIGlsIGNvbXBvbmVudGUgKipUYWJsZVBhZ2VyQ29tcG9uZW50KiogKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVGFibGVQYWdlckxvYyBleHRlbmRzIExvY2FsaXphdGlvblNlcnZpY2Uge1xyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KEVTVF9MT0NBTEUpIExPQ19MT0NBTEU6IHN0cmluZykge1xyXG4gICAgICAgIHN1cGVyKExPQ19MT0NBTEUgPz8gJ2l0LUlUJyk7XHJcbiAgICAgICAgc3VwZXIuc2V0KFwiZW4tPml0XCIsIFwiQWxsXCIsIFtcIlR1dHRvXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJTaG93biBFbGVtZW50c1wiLCBbXCJFbGVtZW50aSB2aXN1YWxpenphdGlcIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlNob3duIEdyb3Vwc1wiLCBbXCJHcnVwcGkgdmlzdWFsaXp6YXRpXCJdKTtcclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmV0cmlldmUgYWxsIHJlc3VsdHM/XCIsIFtcIlNpIMOoIHNpY3VyaSBkaSB2b2xlciBjYXJpY2FyZSB0dXR0aSBpIHJpc3VsdGF0aT9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlRoaXMgbWlnaHQgc2xvdyBkb3duIHRoZSBwYWdlIGFuZCBwb3NzaWJseSBjcmFzaCB0aGUgZW50aXJlIGFwcGxpY2F0aW9uXCIsIFtcIkwnb3BlcmF6aW9uZSBwb3RyZWJiZSByYWxsZW50YXJlIGxhIHBhZ2luYSBmaW5vIGFsIGNyYXNoIGRlbGwnYXBwbGljYXppb25lXCJdKTtcclxuICAgIH1cclxufSJdfQ==
|