@provoly/dashboard 0.14.11 → 0.14.13
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/admin/admin.module.d.ts +2 -1
- package/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.d.ts +1 -0
- package/admin/components/admin-classes/store/admin-class.actions.d.ts +11 -0
- package/admin/components/admin-classes/store/admin-class.effects.d.ts +5 -0
- package/admin/components/admin-classes/store/admin-class.reducer.d.ts +1 -0
- package/admin/components/admin-classes/store/admin-class.selectors.d.ts +1 -0
- package/admin/i18n/en.translations.d.ts +11 -0
- package/admin/i18n/fr.translations.d.ts +11 -0
- package/admin/store/admin.service.d.ts +1 -0
- package/esm2022/admin/admin.module.mjs +8 -4
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +8 -4
- package/esm2022/admin/components/admin-classes/store/admin-class.actions.mjs +5 -2
- package/esm2022/admin/components/admin-classes/store/admin-class.effects.mjs +4 -1
- package/esm2022/admin/components/admin-classes/store/admin-class.reducer.mjs +6 -2
- package/esm2022/admin/components/admin-classes/store/admin-class.selectors.mjs +4 -2
- package/esm2022/admin/i18n/en.translations.mjs +12 -1
- package/esm2022/admin/i18n/fr.translations.mjs +12 -1
- package/esm2022/admin/store/admin.service.mjs +6 -1
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +2 -1
- package/esm2022/dataset/i18n/fr.translations.mjs +2 -2
- package/esm2022/lib/core/components/about/about.component.mjs +14 -9
- package/esm2022/lib/core/i18n/en.translations.mjs +3 -2
- package/esm2022/lib/core/i18n/fr.translations.mjs +3 -2
- package/esm2022/lib/core/model/widget-aggregated-chart-manifest.interface.mjs +2 -1
- package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +2 -1
- package/esm2022/lib/core/public-api.mjs +4 -1
- package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +101 -0
- package/esm2022/lib/core/store/aggregation/base-aggregation.service.mjs +16 -0
- package/esm2022/lib/core/store/aggregation/frontend-aggregation.service.mjs +210 -0
- package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
- package/esm2022/lib/core/store/config/config.service.mjs +13 -13
- package/esm2022/lib/core/store/config/versions.interface.mjs +1 -1
- package/esm2022/lib/core/store/context-menu/context-menu.actions.mjs +1 -1
- package/esm2022/lib/core/store/context-menu/context-menu.reducer.mjs +5 -3
- package/esm2022/lib/core/store/context-menu/context-menu.selectors.mjs +4 -2
- package/esm2022/lib/core/store/field/field.interface.mjs +1 -1
- package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +23 -17
- package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +1 -1
- package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +1 -1
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +4 -3
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +5 -3
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +5 -4
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +8 -9
- package/esm2022/widgets/widget-aggregated-chart/public-api.mjs +1 -4
- package/esm2022/widgets/widget-aggregated-chart/widget-aggregated-chart.module.mjs +2 -3
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +2 -2
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -2
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +2 -1
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +94 -34
- package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +3 -2
- package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +3 -2
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +47 -52
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -2
- package/esm2022/widgets/widget-vega/i18n/en.translations.mjs +4 -2
- package/esm2022/widgets/widget-vega/i18n/fr.translations.mjs +4 -2
- package/fesm2022/provoly-dashboard-admin.mjs +55 -9
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +2 -1
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +4 -3
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +10 -313
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +2 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +98 -36
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +47 -52
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +2 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +6 -2
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +420 -99
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/about/about.component.d.ts +3 -1
- package/lib/core/i18n/en.translations.d.ts +1 -0
- package/lib/core/i18n/fr.translations.d.ts +1 -0
- package/lib/core/model/widget-aggregated-chart-manifest.interface.d.ts +2 -1
- package/lib/core/model/widget-map-manifest.interface.d.ts +1 -0
- package/lib/core/public-api.d.ts +3 -0
- package/{widgets/widget-aggregated-chart/service → lib/core/store/aggregation}/backend-aggregation.service.d.ts +4 -1
- package/{widgets/widget-aggregated-chart/service → lib/core/store/aggregation}/base-aggregation.service.d.ts +14 -1
- package/{widgets/widget-aggregated-chart/service → lib/core/store/aggregation}/frontend-aggregation.service.d.ts +3 -2
- package/lib/core/store/class/class.interface.d.ts +1 -0
- package/lib/core/store/config/config.service.d.ts +2 -1
- package/lib/core/store/config/versions.interface.d.ts +3 -3
- package/lib/core/store/context-menu/context-menu.actions.d.ts +2 -0
- package/lib/core/store/context-menu/context-menu.reducer.d.ts +1 -0
- package/lib/core/store/context-menu/context-menu.selectors.d.ts +1 -0
- package/lib/core/store/field/field.interface.d.ts +1 -0
- package/lib/dashboard/components/context-menu/context-menu.component.d.ts +1 -0
- package/lib/dashboard/store/dashboard.selectors.d.ts +6 -1
- package/package.json +1 -1
- package/styles/base/_utils.scss +4 -0
- package/styles/components/_o-pry-admin-classes-customize.scss +6 -4
- package/toolbox/components/save-view/save-view.component.d.ts +2 -1
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +1 -7
- package/widgets/widget-aggregated-chart/public-api.d.ts +0 -3
- package/widgets/widget-map/component/widget-map.component.d.ts +14 -3
- package/widgets/widget-table/component/widget-table.component.d.ts +6 -1
- package/widgets/widget-vega/i18n/en.translations.d.ts +2 -0
- package/widgets/widget-vega/i18n/fr.translations.d.ts +2 -0
- package/esm2022/widgets/widget-aggregated-chart/service/backend-aggregation.service.mjs +0 -96
- package/esm2022/widgets/widget-aggregated-chart/service/base-aggregation.service.mjs +0 -16
- package/esm2022/widgets/widget-aggregated-chart/service/frontend-aggregation.service.mjs +0 -206
|
@@ -10,6 +10,7 @@ export var Operation;
|
|
|
10
10
|
Operation["Q3"] = "q3";
|
|
11
11
|
Operation["MIN"] = "min";
|
|
12
12
|
Operation["MAX"] = "max";
|
|
13
|
+
Operation["EXTENT"] = "extent";
|
|
13
14
|
})(Operation || (Operation = {}));
|
|
14
15
|
export var GraphType;
|
|
15
16
|
(function (GraphType) {
|
|
@@ -23,4 +24,4 @@ export var GraphType;
|
|
|
23
24
|
GraphType["HISTOGRAM"] = "bar-histogram";
|
|
24
25
|
GraphType["POINTS"] = "point-default";
|
|
25
26
|
})(GraphType || (GraphType = {}));
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWFnZ3JlZ2F0ZWQtY2hhcnQtbWFuaWZlc3QuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvbW9kZWwvd2lkZ2V0LWFnZ3JlZ2F0ZWQtY2hhcnQtbWFuaWZlc3QuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFNBWVg7QUFaRCxXQUFZLFNBQVM7SUFDbkIsMEJBQWEsQ0FBQTtJQUNiLDRCQUFlLENBQUE7SUFDZix3QkFBVyxDQUFBO0lBQ1gscUNBQXdCLENBQUE7SUFDeEIsNEJBQWUsQ0FBQTtJQUNmLDhCQUFpQixDQUFBO0lBQ2pCLHNCQUFTLENBQUE7SUFDVCxzQkFBUyxDQUFBO0lBQ1Qsd0JBQVcsQ0FBQTtJQUNYLHdCQUFXLENBQUE7SUFDWCw4QkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBWlcsU0FBUyxLQUFULFNBQVMsUUFZcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQVVYO0FBVkQsV0FBWSxTQUFTO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLHNFQUF5RCxDQUFBO0lBQ3pELGdDQUFtQixDQUFBO0lBQ25CLHFDQUF3QixDQUFBO0lBQ3hCLG1DQUFzQixDQUFBO0lBQ3RCLG1EQUFzQyxDQUFBO0lBQ3RDLGdDQUFtQixDQUFBO0lBQ25CLHdDQUEyQixDQUFBO0lBQzNCLHFDQUF3QixDQUFBO0FBQzFCLENBQUMsRUFWVyxTQUFTLEtBQVQsU0FBUyxRQVVwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE9wZXJhdGlvbiB7XG4gIE5PTkUgPSAnbm9uZScsXG4gIENPVU5UID0gJ2NvdW50JyxcbiAgU1VNID0gJ3N1bScsXG4gIERJU1RJTkNUID0gJ2NhcmRpbmFsaXR5JyxcbiAgQVZFUkFHRSA9ICdhdmcnLFxuICBNRURJQU4gPSAnbWVkaWFuJyxcbiAgUTEgPSAncTEnLFxuICBRMyA9ICdxMycsXG4gIE1JTiA9ICdtaW4nLFxuICBNQVggPSAnbWF4JyxcbiAgRVhURU5UID0gJ2V4dGVudCdcbn1cblxuZXhwb3J0IGVudW0gR3JhcGhUeXBlIHtcbiAgQVJFQSA9ICdhcmVhLWRlZmF1bHQnLFxuICBBUkVBX1dJVEhfTElORVNfQU5EX1BPSU5UUyA9ICdhcmVhLXdpdGgtbGluZXMtYW5kLXBvaW50cycsXG4gIEJBUiA9ICdiYXItZGVmYXVsdCcsXG4gIENJUkNVTEFSID0gJ2FyYy1kZWZhdWx0JyxcbiAgQ1VSVkUgPSAnbGluZS1kZWZhdWx0JyxcbiAgQ1VSVkVfV0lUSF9QT0lOVFMgPSAnbGluZS13aXRoLXBvaW50cycsXG4gIERPTlVUID0gJ2FyYy1kb251dCcsXG4gIEhJU1RPR1JBTSA9ICdiYXItaGlzdG9ncmFtJyxcbiAgUE9JTlRTID0gJ3BvaW50LWRlZmF1bHQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXRMaW1pdCB7XG4gIGF0OiBudW1iZXI7XG4gIG90aGVyczogYm9vbGVhbjtcbiAgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnO1xuICBpc1RpbWVMaW1pdDogZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZUxpbWl0IHtcbiAgaW50ZXJ2YWw6ICdzZWNvbmQnIHwgJ21pbnV0ZScgfCAnaG91cicgfCAnZGF5JyB8ICd3ZWVrJyB8ICdxdWFydGVyJyB8ICd5ZWFyJztcbiAgaXNUaW1lTGltaXQ6IHRydWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRBZ2dyZWdhdGVkV2lkZ2V0T3B0aW9ucyB7XG4gIGFic2Npc3NhOiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBhdHRyaWJ1dGU6IHN0cmluZztcbiAgICBrZWVwMDogYm9vbGVhbjtcbiAgICBsaW1pdD86IEF0TGltaXQgfCBUaW1lTGltaXQ7XG4gIH07XG4gIG9yZGluYXRlOiB7XG4gICAgb3BlcmF0aW9uOiBPcGVyYXRpb247XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBhdHRyaWJ1dGU/OiBzdHJpbmc7XG4gICAga2VlcDA6IGJvb2xlYW47XG4gIH07XG4gIGdyb3VwQnk/OiB7XG4gICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgY29sb3I6IHN0cmluZztcbiAgfTtcbiAgZ3JhcGg6IHtcbiAgICBkb251dFNpemU/OiBudW1iZXI7XG4gICAgdG9vbHRpcD86IGJvb2xlYW47XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgdHlwZTogR3JhcGhUeXBlO1xuICAgIHN0YWNrZWQ/OiBib29sZWFuO1xuICAgIGxlZ2VuZD86IGJvb2xlYW47XG4gIH07XG4gIGFkZGl0aW9uYWxTcGVjPzogYW55O1xufVxuIl19
|
|
@@ -15,4 +15,5 @@ export const widgetMapConfig = {
|
|
|
15
15
|
'upload'
|
|
16
16
|
])
|
|
17
17
|
};
|
|
18
|
-
|
|
18
|
+
export const DEFAULT_PROJECTION = 'EPSG:4326';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LW1hcC1tYW5pZmVzdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9tb2RlbC93aWRnZXQtbWFwLW1hbmlmZXN0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBdUl2QyxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZiw0QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBOEU7UUFDekcsTUFBTTtRQUNOLE9BQU87UUFDUCxPQUFPO1FBQ1AsV0FBVztRQUNYLE1BQU07UUFDTixRQUFRO1FBQ1IsUUFBUTtLQUNULENBQUM7Q0FDSCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwV2lkZ2V0T3B0aW9ucyB7XG4gIGNlbnRlcj86IG51bWJlcltdO1xuICB6b29tPzoge1xuICAgIHN0YXJ0OiBudW1iZXI7XG4gICAgbWluOiBudW1iZXI7XG4gICAgbWF4OiBudW1iZXI7XG4gIH07XG4gIHN0eWxlOiBzdHJpbmc7XG4gIHN0eWxlVVJMPzogc3RyaW5nO1xuICBsYXllcnM/OiBNYXBXaWRnZXRMYXllck9wdGlvbnNbXTtcbiAgZml0PzogYm9vbGVhbjtcbiAgYXR0cmlidXRpb25zPzogYm9vbGVhbjtcbiAgdG9vbHRpcE1vZGU/OiBUb29sdGlwTW9kZTtcbiAgc2luZ2xlTGF5ZXI/OiBib29sZWFuO1xuICBpZ25vcmVBdXRvTGF5ZXI/OiBzdHJpbmdbXTtcbiAgYXV0b21hdGljTGF5ZXJzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgTWFwV2lkZ2V0TGF5ZXJPcHRpb25zID1cbiAgfCBNYXBXaWRnZXRIZWF0TWFwTGF5ZXJPcHRpb25zXG4gIHwgTWFwV2lkZ2V0TWFya2VyTGF5ZXJPcHRpb25zXG4gIHwgTWFwV2lkZ2V0QnViYmxlTGF5ZXJPcHRpb25zXG4gIHwgTWFwV2lkZ2V0UmVsYXRpb25MYXllck9wdGlvbnNcbiAgfCBNYXBXTVNMYXllckxheWVyT3B0aW9uc1xuICB8IE1hcEZlYXR1cmVMYXllck9wdGlvbnNcbiAgfCBNYXBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zXG4gIHwgTWFwUmFzdGVyVGlsZUxheWVyT3B0aW9uc1xuICB8IE1hcEdlb1NlcnZlckxheWVyT3B0aW9uc1xuICB8IE1hcEF1dG9MYXllck9wdGlvbnNcbiAgfCBNYXBXTVRTTGF5ZXJMYXllck9wdGlvbnNcbiAgfCBNYXBXaWRnZXRHZW9tZXRyeUxheWVyT3B0aW9ucztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlV2lkZ2V0TWFwTGF5ZXJPcHRpb25zIHtcbiAgdHlwZTogc3RyaW5nO1xuICBhdHRyaWJ1dGlvbj86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIG1pblpvb20/OiBudW1iZXI7XG4gIG1heFpvb20/OiBudW1iZXI7XG4gIG9wYWNpdHk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwV2lkZ2V0SGVhdE1hcExheWVyT3B0aW9ucyBleHRlbmRzIEJhc2VXaWRnZXRNYXBMYXllck9wdGlvbnMge1xuICB0eXBlOiAnaGVhdG1hcCc7XG4gIGF0dHJpYnV0ZTogc3RyaW5nO1xuICBjbGFzc2VzPzogc3RyaW5nW107XG4gIGludGVuc2l0eUF0dHJpYnV0ZT86IHN0cmluZztcbiAgaW50ZW5zaXR5QXNjPzogYm9vbGVhbjtcbiAgcmFkaXVzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcFdpZGdldEdlb21ldHJ5TGF5ZXJPcHRpb25zIGV4dGVuZHMgQmFzZVdpZGdldE1hcExheWVyT3B0aW9ucyB7XG4gIHR5cGU6ICdwb2ludCcgfCAnbGluZScgfCAncG9seWdvbicgfCAnbXVsdGktbGluZScgfCAnbXVsdGktcG9seWdvbic7XG4gIGF0dHJpYnV0ZTogc3RyaW5nO1xuICBjbGFzc2VzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwV2lkZ2V0TWFya2VyTGF5ZXJPcHRpb25zIGV4dGVuZHMgQmFzZVdpZGdldE1hcExheWVyT3B0aW9ucyB7XG4gIHR5cGU6ICdtYXJrZXInO1xuICBhdHRyaWJ1dGU6IHN0cmluZztcbiAgY2xhc3Nlcz86IHN0cmluZ1tdO1xuICBjbHVzdGVyZWQ/OiBib29sZWFuO1xuICBjbHVzdGVyRGlzdGFuY2U/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwV2lkZ2V0QnViYmxlTGF5ZXJPcHRpb25zIGV4dGVuZHMgQmFzZVdpZGdldE1hcExheWVyT3B0aW9ucyB7XG4gIHR5cGU6ICdidWJibGUnO1xuICBhdHRyaWJ1dGU6IHN0cmluZztcbiAgaW50ZW5zaXR5QXR0cmlidXRlPzogc3RyaW5nO1xuICBpbnRlbnNpdHlBc2M/OiBib29sZWFuO1xuICByYWRpdXNGYWN0b3I/OiBudW1iZXI7XG4gIHJhZGl1cz86IG51bWJlcjtcbiAgY2xhc3Nlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcFdpZGdldFJlbGF0aW9uTGF5ZXJPcHRpb25zIGV4dGVuZHMgQmFzZVdpZGdldE1hcExheWVyT3B0aW9ucyB7XG4gIHR5cGU6ICdyZWxhdGlvbic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwV01TTGF5ZXJMYXllck9wdGlvbnMgZXh0ZW5kcyBCYXNlV2lkZ2V0TWFwTGF5ZXJPcHRpb25zIHtcbiAgdHlwZTogJ3dtcyc7XG4gIHVybDogc3RyaW5nO1xuICBwYXJhbUxheWVyOiBzdHJpbmc7XG4gIHBhcmFtVGlsZWQ6IGJvb2xlYW47XG4gIG9DbGFzczogc3RyaW5nO1xuICBnZXRGZWF0dXJlSW5mb0FkZGl0aW9uYWxQYXJhbWV0ZXJzPzogYW55O1xuICBhZGRpdGlvbmFsUGFyYW1ldGVycz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBXTVRTTGF5ZXJMYXllck9wdGlvbnMgZXh0ZW5kcyBCYXNlV2lkZ2V0TWFwTGF5ZXJPcHRpb25zIHtcbiAgdHlwZTogJ3dtdHMnO1xuICB1cmw6IHN0cmluZztcbiAgcGFyYW1MYXllcjogc3RyaW5nO1xuICBtYXRyaXhTZXQ6IHN0cmluZztcbiAgc3R5bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBGZWF0dXJlTGF5ZXJPcHRpb25zIGV4dGVuZHMgQmFzZVdpZGdldE1hcExheWVyT3B0aW9ucyB7XG4gIHR5cGU6ICdmZWF0dXJlbGF5ZXInO1xuICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zIGV4dGVuZHMgQmFzZVdpZGdldE1hcExheWVyT3B0aW9ucyB7XG4gIHR5cGU6ICd2ZWN0b3J0aWxlJztcbiAgdXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwUmFzdGVyVGlsZUxheWVyT3B0aW9ucyBleHRlbmRzIEJhc2VXaWRnZXRNYXBMYXllck9wdGlvbnMge1xuICB0eXBlOiAncmFzdGVydGlsZSc7XG4gIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcEdlb1NlcnZlckxheWVyT3B0aW9ucyBleHRlbmRzIEJhc2VXaWRnZXRNYXBMYXllck9wdGlvbnMge1xuICB0eXBlOiAnZ2Vvc2VydmVyJztcbiAga2V5OiBzdHJpbmc7XG4gIHBhcmFtTGF5ZXI6IHN0cmluZztcbiAgcGFyYW1UaWxlZDogYm9vbGVhbjtcbiAgdXJsOiBzdHJpbmc7XG4gIG9DbGFzczogc3RyaW5nO1xuICBkYXRhc291cmNlSWQ6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgYWRkaXRpb25hbFBhcmFtZXRlcnM/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwQXV0b0xheWVyT3B0aW9ucyBleHRlbmRzIEJhc2VXaWRnZXRNYXBMYXllck9wdGlvbnMge1xuICB0eXBlOiAnYXV0byc7XG4gIG9DbGFzczogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbiAgc3ViVHlwZTogc3RyaW5nO1xuICBhdHRyaWJ1dGU6IHN0cmluZztcbiAgY2xhc3Nlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBUb29sdGlwTW9kZSB7XG4gIENMSUNLID0gJ2NsaWNrJyxcbiAgTk9ORSA9ICdub25lJ1xufVxuXG5leHBvcnQgY29uc3Qgd2lkZ2V0TWFwQ29uZmlnID0ge1xuICBhY3Rpb25zJDogbmV3IEJlaGF2aW9yU3ViamVjdDwoJ2NsaWNrJyB8ICdsYXNzbycgfCAncmVjdGFuZ2xlJyB8ICd6b29tJyB8ICdtb3ZlJyB8ICdleHBvcnQnIHwgJ3VwbG9hZCcpW10+KFtcbiAgICAnbW92ZScsXG4gICAgJ2NsaWNrJyxcbiAgICAnbGFzc28nLFxuICAgICdyZWN0YW5nbGUnLFxuICAgICd6b29tJyxcbiAgICAnZXhwb3J0JyxcbiAgICAndXBsb2FkJ1xuICBdKVxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUFJPSkVDVElPTiA9ICdFUFNHOjQzMjYnO1xuIl19
|
|
@@ -42,6 +42,9 @@ export * from './store/context-menu/context-menu.actions';
|
|
|
42
42
|
export * from './store/context-menu/context-menu.selectors';
|
|
43
43
|
export * from './store/context-menu/context-menu.reducer';
|
|
44
44
|
export * from './store/raw/raw.service';
|
|
45
|
+
export * from './store/aggregation/base-aggregation.service';
|
|
46
|
+
export * from './store/aggregation/backend-aggregation.service';
|
|
47
|
+
export * from './store/aggregation/frontend-aggregation.service';
|
|
45
48
|
export * from './components/nq-color-selector/nq-color-selector.component';
|
|
46
49
|
export * from './components/translate-id/translate-id.pipe';
|
|
47
50
|
export * from './components/translate-item-to-symbol/translate-item-to-symbol.pipe';
|
|
@@ -115,4 +118,4 @@ export * from './i18n/deep-merge.function';
|
|
|
115
118
|
export * from './errors/http-error-interceptor.service';
|
|
116
119
|
export * from './components/about/pry-about.module';
|
|
117
120
|
export * from './components/about/about.component';
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFj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QixDQUFDO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb3JlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29uZmlnL2ljb24tZGVmaW5pdGlvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29uZmlnL2NvbmZpZy53aWRnZXQuY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY2xhc3MvY2xhc3MuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NsYXNzL2NsYXNzLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NsYXNzL2NsYXNzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NsYXNzL2NsYXNzLnJlZHVjZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9jbGFzcy9jbGFzcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvZmllbGQvZmllbGQuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2ZpZWxkL2ZpZWxkLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2ZpZWxkL2ZpZWxkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2ZpZWxkL2ZpZWxkLnNlcnZpY2UnO1xuZXhwb3J0IHsgRmllbGRTdGF0ZSB9IGZyb20gJy4vc3RvcmUvZmllbGQvZmllbGQucmVkdWNlcic7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2ltYWdlL2ltYWdlLmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9pbWFnZS9pbWFnZS5zZWxlY3RvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9pbWFnZS9pbWFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvaW1hZ2UvaW1hZ2UucmVkdWNlcic7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL3NlYXJjaC9zZWFyY2guYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL3NlYXJjaC9zZWFyY2guY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvc2VhcmNoL3NlYXJjaC5zZWxlY3RvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9zZWFyY2gvc2VhcmNoLnJlZHVjZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9zZWFyY2gvbGF0LWxvbi10by1nZW9ncmFwaGljLWZpZWxkLXRyYW5zZm9ybWF0aW9uLmZ1bmN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY2F0ZWdvcnkvY2F0ZWdvcnkuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NhdGVnb3J5L2NhdGVnb3J5LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NhdGVnb3J5L2NhdGVnb3J5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9jYXRlZ29yeS9jYXRlZ29yeS5zZWxlY3RvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnJlZHVjZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2RhdGEtc291cmNlL25hbWVkLXF1ZXJ5LXR5cGVzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvZGF0YS1zb3VyY2UvbmFtZWQtcXVlcnktdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9yZWxhdGlvbi10eXBlcy9yZWxhdGlvbi10eXBlcy5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvcmVsYXRpb24tdHlwZXMvcmVsYXRpb24tdHlwZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL3JlbGF0aW9uLXR5cGVzL3JlbGF0aW9uLXR5cGVzLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL3JlbGF0aW9uLXR5cGVzL3JlbGF0aW9uLXR5cGVzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VsZWN0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5yZWR1Y2VyJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvcmF3L3Jhdy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9ucS1jb2xvci1zZWxlY3Rvci9ucS1jb2xvci1zZWxlY3Rvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RyYW5zbGF0ZS1pZC90cmFuc2xhdGUtaWQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdHJhbnNsYXRlLWl0ZW0tdG8tc3ltYm9sL3RyYW5zbGF0ZS1pdGVtLXRvLXN5bWJvbC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9nZXQtc2VjdXJlZC1pbWFnZS9nZXQtc2VjdXJlZC1pbWFnZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1sYXlvdXQvYmFzZS1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLW1lbnUvYmFzZS1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS10b29sYm94L2Jhc2UtdG9vbGJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtdG9vbGJveC9iYXNlLXRvb2xib3gtYWN0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NlbGVjdC1pbWFnZS9zZWxlY3QtaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pY29uL2ljb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vdmVybGF5L292ZXJsYXkuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vdmVybGF5L3Rvb2x0aXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vdmVybGF5L292ZXJsYXkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vdmVybGF5L2RpYWxvZy1yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL292ZXJsYXkvZGlhbG9nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL292ZXJsYXkvZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS1oaWdobGlnaHQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9kYXRlLXBpY2tlci90aW1lLXBpY2tlci9sb29wLXNjcm9sbC1jb2x1bW4vbG9vcC1zY3JvbGwtY29sdW1uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZWRpdC1pbnB1dC9lZGl0LWlucHV0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZWRpdC1pbnB1dC9lZGl0LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaGlkZGVuLXdoZW4tb3ZlcmxheS9oaWRkZW4td2hlbi1vdmVybGF5LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaGlkZGVuLXdoZW4tb3ZlcmxheS9oaWRkZW4td2hlbi1vdmVybGF5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC9wcnktbW9kYWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC1zdGF0dXMvbW9kYWwtc3RhdHVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwtc3RhdHVzL21vZGFsLXN0YXR1cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90b2dnbGUvdG9nZ2xlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc29ydC9zb3J0LWRhdGEucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc29ydC9zb3J0LWhlYWRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NvcnQvc29ydC1oZWFkZXIvc29ydC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zb3J0L3NvcnQtdGFibGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zb3J0L3NvcnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NvcnQvc29ydC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9yYW5nZS9yYW5nZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NoYXJlL3NoYXJlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NoYXJlL3NoYXJlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2suaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFicy90YWItZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90YWJzL3RhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hY2Nlc3MvYWNjZXNzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2FjY2Vzcy9hY2Nlc3MuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9hY2Nlc3MvYWNjZXNzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzL2FjY2Vzcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzL2FjY2Vzcy51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3dzL3dlYnNvY2tldC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3ltYm9sL3N5bWJvbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbGJveC90b29sYm94LW1hbmlmZXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90b29sYm94L3Rvb2xib3gtbWVudS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4vaTE4bi5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vaTE4bi9pMThuLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaTE4bi9mci50cmFuc2xhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuL2VuLnRyYW5zbGF0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4vZGVlcC1tZXJnZS5mdW5jdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycy9odHRwLWVycm9yLWludGVyY2VwdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Fib3V0L3ByeS1hYm91dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Fib3V0L2Fib3V0LmNvbXBvbmVudCc7XG4iXX0=
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFj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QixDQUFDO0FBQ25DLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb3JlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29uZmlnL2ljb24tZGVmaW5pdGlvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29uZmlnL2NvbmZpZy53aWRnZXQuY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY2xhc3MvY2xhc3MuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NsYXNzL2NsYXNzLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NsYXNzL2NsYXNzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NsYXNzL2NsYXNzLnJlZHVjZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9jbGFzcy9jbGFzcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvZmllbGQvZmllbGQuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2ZpZWxkL2ZpZWxkLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2ZpZWxkL2ZpZWxkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2ZpZWxkL2ZpZWxkLnNlcnZpY2UnO1xuZXhwb3J0IHsgRmllbGRTdGF0ZSB9IGZyb20gJy4vc3RvcmUvZmllbGQvZmllbGQucmVkdWNlcic7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2ltYWdlL2ltYWdlLmFjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9pbWFnZS9pbWFnZS5zZWxlY3RvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9pbWFnZS9pbWFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvaW1hZ2UvaW1hZ2UucmVkdWNlcic7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL3NlYXJjaC9zZWFyY2guYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL3NlYXJjaC9zZWFyY2guY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvc2VhcmNoL3NlYXJjaC5zZWxlY3RvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9zZWFyY2gvc2VhcmNoLnJlZHVjZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9zZWFyY2gvbGF0LWxvbi10by1nZW9ncmFwaGljLWZpZWxkLXRyYW5zZm9ybWF0aW9uLmZ1bmN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY2F0ZWdvcnkvY2F0ZWdvcnkuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NhdGVnb3J5L2NhdGVnb3J5LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NhdGVnb3J5L2NhdGVnb3J5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9jYXRlZ29yeS9jYXRlZ29yeS5zZWxlY3RvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnJlZHVjZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2RhdGEtc291cmNlL25hbWVkLXF1ZXJ5LXR5cGVzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvZGF0YS1zb3VyY2UvbmFtZWQtcXVlcnktdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS9yZWxhdGlvbi10eXBlcy9yZWxhdGlvbi10eXBlcy5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvcmVsYXRpb24tdHlwZXMvcmVsYXRpb24tdHlwZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL3JlbGF0aW9uLXR5cGVzL3JlbGF0aW9uLXR5cGVzLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL3JlbGF0aW9uLXR5cGVzL3JlbGF0aW9uLXR5cGVzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuc2VsZWN0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5yZWR1Y2VyJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvcmF3L3Jhdy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvYWdncmVnYXRpb24vYmFzZS1hZ2dyZWdhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvYWdncmVnYXRpb24vYmFja2VuZC1hZ2dyZWdhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUvYWdncmVnYXRpb24vZnJvbnRlbmQtYWdncmVnYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbnEtY29sb3Itc2VsZWN0b3IvbnEtY29sb3Itc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90cmFuc2xhdGUtaWQvdHJhbnNsYXRlLWlkLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RyYW5zbGF0ZS1pdGVtLXRvLXN5bWJvbC90cmFuc2xhdGUtaXRlbS10by1zeW1ib2wucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZ2V0LXNlY3VyZWQtaW1hZ2UvZ2V0LXNlY3VyZWQtaW1hZ2UucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtbGF5b3V0L2Jhc2UtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1tZW51L2Jhc2UtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtdG9vbGJveC9iYXNlLXRvb2xib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXRvb2xib3gvYmFzZS10b29sYm94LWFjdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3VwbG9hZC91cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3QtaW1hZ2Uvc2VsZWN0LWltYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi9pY29uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvb3ZlcmxheS9vdmVybGF5LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvb3ZlcmxheS90b29sdGlwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvb3ZlcmxheS9kaWFsb2ctcmVmJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vdmVybGF5L2RpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vdmVybGF5L2RpYWxvZy1jb25maXJtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UtaGlnaGxpZ2h0LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RhdGUtcGlja2VyL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvdGltZS1waWNrZXIvbG9vcC1zY3JvbGwtY29sdW1uL2xvb3Atc2Nyb2xsLWNvbHVtbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2VkaXQtaW5wdXQvZWRpdC1pbnB1dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2VkaXQtaW5wdXQvZWRpdC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2hpZGRlbi13aGVuLW92ZXJsYXkvaGlkZGVuLXdoZW4tb3ZlcmxheS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2hpZGRlbi13aGVuLW92ZXJsYXkvaGlkZGVuLXdoZW4tb3ZlcmxheS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwvcHJ5LW1vZGFsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwtc3RhdHVzL21vZGFsLXN0YXR1cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL21vZGFsLXN0YXR1cy9tb2RhbC1zdGF0dXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdG9nZ2xlL3RvZ2dsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NvcnQvc29ydC1kYXRhLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NvcnQvc29ydC1oZWFkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zb3J0L3NvcnQtaGVhZGVyL3NvcnQtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc29ydC9zb3J0LXRhYmxlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc29ydC9zb3J0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zb3J0L3NvcnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3JhbmdlL3JhbmdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcmFuZ2UvcmFuZ2UubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zaGFyZS9zaGFyZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NoYXJlL3NoYXJlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zaGFyZS9zaGFyZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYnMvdGFiLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFicy90YWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzL2FjY2Vzcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hY2Nlc3MvYWNjZXNzLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzL2FjY2Vzcy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FjY2Vzcy9hY2Nlc3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FjY2Vzcy9hY2Nlc3MudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi93cy93ZWJzb2NrZXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3N5bWJvbC9zeW1ib2wuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xib3gvdG9vbGJveC1tYW5pZmVzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbGJveC90b29sYm94LW1lbnUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuL2kxOG4ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4vaTE4bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuL2kxOG4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4vZnIudHJhbnNsYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vaTE4bi9lbi50cmFuc2xhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuL2RlZXAtbWVyZ2UuZnVuY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMvaHR0cC1lcnJvci1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hYm91dC9wcnktYWJvdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hYm91dC9hYm91dC5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { HttpParams } from '@angular/common/http';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { map, of, switchMap } from 'rxjs';
|
|
4
|
+
import { DashboardSelectors } from '../../../dashboard/store/dashboard.selectors';
|
|
5
|
+
import { Operation } from '../../model/widget-aggregated-chart-manifest.interface';
|
|
6
|
+
import { ClassSelectors } from '../class/class.selectors';
|
|
7
|
+
import { ConfigSelectors } from '../config/config.selectors';
|
|
8
|
+
import { FieldSelectors } from '../field/field.selectors';
|
|
9
|
+
import { DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID } from '../search/search.constants';
|
|
10
|
+
import { PryAggregationService } from './base-aggregation.service';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@ngrx/store";
|
|
13
|
+
import * as i2 from "../../components/snackbar/snackbar.service";
|
|
14
|
+
import * as i3 from "../../i18n/i18n.service";
|
|
15
|
+
import * as i4 from "@angular/common/http";
|
|
16
|
+
import * as i5 from "../search/search.service";
|
|
17
|
+
export class PryBackendAggregationService extends PryAggregationService {
|
|
18
|
+
constructor(store, snackBar, translateService, httpClient, searchService) {
|
|
19
|
+
super();
|
|
20
|
+
this.store = store;
|
|
21
|
+
this.snackBar = snackBar;
|
|
22
|
+
this.translateService = translateService;
|
|
23
|
+
this.httpClient = httpClient;
|
|
24
|
+
this.searchService = searchService;
|
|
25
|
+
this.rs = {};
|
|
26
|
+
this.classes = [];
|
|
27
|
+
this.fields = [];
|
|
28
|
+
this.filters = {};
|
|
29
|
+
this.store.select(DashboardSelectors.resultSets).subscribe((rs) => (this.rs = rs));
|
|
30
|
+
this.store.select(ClassSelectors.classes).subscribe((classes) => (this.classes = classes));
|
|
31
|
+
this.store.select(FieldSelectors.fields).subscribe((fields) => (this.fields = fields));
|
|
32
|
+
this.store.select(DashboardSelectors.datasourceFilters).subscribe((filters) => (this.filters = filters));
|
|
33
|
+
}
|
|
34
|
+
aggregate(datasources, options) {
|
|
35
|
+
const targetDatasource = datasources.find((ds) => ![DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID].includes(ds));
|
|
36
|
+
if (datasources.length > 1) {
|
|
37
|
+
this.snackBar.open({
|
|
38
|
+
type: 'warning',
|
|
39
|
+
message: this.translateService.instant('@pry.message.backend-only-1-datasource'),
|
|
40
|
+
timeout: 4000
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (datasources.includes(DEFAULT_NAMED_QUERY_ID) || datasources.includes(EXPLORE_NAMED_QUERY_ID)) {
|
|
44
|
+
this.snackBar.open({
|
|
45
|
+
type: 'warning',
|
|
46
|
+
message: this.translateService.instant('@pry.message.cannot-aggregate-virtual-ds'),
|
|
47
|
+
timeout: 4000
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (!targetDatasource) {
|
|
51
|
+
console.warn('Aggregation needs a target datasource.');
|
|
52
|
+
return of({ operation: options.ordinate?.operation ?? 'none', values: [] });
|
|
53
|
+
}
|
|
54
|
+
let params = new HttpParams();
|
|
55
|
+
if (options.abscissa && options.abscissa.attribute) {
|
|
56
|
+
params = params.set('aggregatedBy', options.abscissa.attribute);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
console.warn('Aggregation needs an aggregatedBy member.');
|
|
60
|
+
if (options.ordinate.operation !== Operation.EXTENT) {
|
|
61
|
+
return of({ operation: options.ordinate.operation, values: [] });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (options.abscissa && options.abscissa.limit) {
|
|
65
|
+
if (options.abscissa.limit.isTimeLimit) {
|
|
66
|
+
params = params.set('dateInterval', options.abscissa.limit.interval);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
params = params.set('interval', options.abscissa.limit.at);
|
|
70
|
+
params = params.set('limitOrder', options.abscissa.limit.order);
|
|
71
|
+
params = params.set('limitOthers', options.abscissa.limit.others);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const operation = options.ordinate.operation?.replace(/^none$/, Operation.SUM);
|
|
75
|
+
params = params.set('operation', operation);
|
|
76
|
+
if (!!options.ordinate.attribute) {
|
|
77
|
+
params = params.set('valueField', options.ordinate.attribute);
|
|
78
|
+
}
|
|
79
|
+
if (options.groupBy) {
|
|
80
|
+
params = params.set('groupBy', options.groupBy.attribute);
|
|
81
|
+
}
|
|
82
|
+
params = this.searchService.getItemsFilter(targetDatasource, params);
|
|
83
|
+
return this.store.select(ConfigSelectors.dataUrl).pipe(switchMap((url) => this.httpClient
|
|
84
|
+
.get(`${url}/data-sources/id/${targetDatasource}/items/aggregate`, {
|
|
85
|
+
params
|
|
86
|
+
})
|
|
87
|
+
.pipe(map((result) => ({
|
|
88
|
+
...result,
|
|
89
|
+
operation: options.ordinate.operation === Operation.NONE ? Operation.NONE : result.operation
|
|
90
|
+
})))));
|
|
91
|
+
}
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryBackendAggregationService, deps: [{ token: i1.Store }, { token: i2.PrySnackbarService }, { token: i3.PryI18nService }, { token: i4.HttpClient }, { token: i5.SearchService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
93
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryBackendAggregationService, providedIn: 'root' }); }
|
|
94
|
+
}
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryBackendAggregationService, decorators: [{
|
|
96
|
+
type: Injectable,
|
|
97
|
+
args: [{
|
|
98
|
+
providedIn: 'root'
|
|
99
|
+
}]
|
|
100
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.PrySnackbarService }, { type: i3.PryI18nService }, { type: i4.HttpClient }, { type: i5.SearchService }]; } });
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC1hZ2dyZWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvc3RvcmUvYWdncmVnYXRpb24vYmFja2VuZC1hZ2dyZWdhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUtsRixPQUFPLEVBQWdDLFNBQVMsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRWpILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVGLE9BQU8sRUFBcUIscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQUt0RixNQUFNLE9BQU8sNEJBQTZCLFNBQVEscUJBQXFCO0lBTXJFLFlBQ1UsS0FBWSxFQUNaLFFBQTRCLEVBQzVCLGdCQUFnQyxFQUNoQyxVQUFzQixFQUN0QixhQUE0QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQU5BLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBQ2hDLGVBQVUs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Q0FBQyxTQUFTLENBQUMsQ0FBQztTQUMvRDtRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNuQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMzRDtRQUNELE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVyRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxVQUFVO2FBQ1osR0FBRyxDQUFvQixHQUFHLEdBQUcsb0JBQW9CLGdCQUFnQixrQkFBa0IsRUFBRTtZQUNwRixNQUFNO1NBQ1AsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDZixHQUFHLE1BQU07WUFDVCxTQUFTLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVM7U0FDN0YsQ0FBQyxDQUFDLENBQ0osQ0FDSixDQUNGLENBQUM7SUFDSixDQUFDOzhHQXZGVSw0QkFBNEI7a0hBQTVCLDRCQUE0QixjQUYzQixNQUFNOzsyRkFFUCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBQcnlTbmFja2JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vbW9kZWwvZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXRzIH0gZnJvbSAnLi4vLi4vbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hhcnRBZ2dyZWdhdGVkV2lkZ2V0T3B0aW9ucywgT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvd2lkZ2V0LWFnZ3JlZ2F0ZWQtY2hhcnQtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsYXNzIH0gZnJvbSAnLi4vY2xhc3MvY2xhc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsYXNzU2VsZWN0b3JzIH0gZnJvbSAnLi4vY2xhc3MvY2xhc3Muc2VsZWN0b3JzJztcbmltcG9ydCB7IENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGQvZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkU2VsZWN0b3JzIH0gZnJvbSAnLi4vZmllbGQvZmllbGQuc2VsZWN0b3JzJztcbmltcG9ydCB7IERFRkFVTFRfTkFNRURfUVVFUllfSUQsIEVYUExPUkVfTkFNRURfUVVFUllfSUQgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uUmVzdWx0LCBQcnlBZ2dyZWdhdGlvblNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtYWdncmVnYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByeUJhY2tlbmRBZ2dyZWdhdGlvblNlcnZpY2UgZXh0ZW5kcyBQcnlBZ2dyZWdhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIHJzOiBSZXN1bHRTZXRzID0ge307XG4gIHByaXZhdGUgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuICBwcml2YXRlIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGZpbHRlcnM6IHsgW2RhdGFzb3VyY2U6IHN0cmluZ106IEZpbHRlckNvbnRleHRbXSB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogUHJ5U25hY2tiYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpLnN1YnNjcmliZSgocnMpID0+ICh0aGlzLnJzID0gcnMgYXMgUmVzdWx0U2V0cykpO1xuICAgIHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpLnN1YnNjcmliZSgoY2xhc3NlcykgPT4gKHRoaXMuY2xhc3NlcyA9IGNsYXNzZXMpKTtcbiAgICB0aGlzLnN0b3JlLnNlbGVjdChGaWVsZFNlbGVjdG9ycy5maWVsZHMpLnN1YnNjcmliZSgoZmllbGRzKSA9PiAodGhpcy5maWVsZHMgPSBmaWVsZHMpKTtcbiAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZGF0YXNvdXJjZUZpbHRlcnMpLnN1YnNjcmliZSgoZmlsdGVycykgPT4gKHRoaXMuZmlsdGVycyA9IGZpbHRlcnMpKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFnZ3JlZ2F0ZShkYXRhc291cmNlczogc3RyaW5nW10sIG9wdGlvbnM6IENoYXJ0QWdncmVnYXRlZFdpZGdldE9wdGlvbnMpOiBPYnNlcnZhYmxlPEFnZ3JlZ2F0aW9uUmVzdWx0PiB7XG4gICAgY29uc3QgdGFyZ2V0RGF0YXNvdXJjZSA9IGRhdGFzb3VyY2VzLmZpbmQoKGRzKSA9PiAhW0RFRkFVTFRfTkFNRURfUVVFUllfSUQsIEVYUExPUkVfTkFNRURfUVVFUllfSURdLmluY2x1ZGVzKGRzKSk7XG5cbiAgICBpZiAoZGF0YXNvdXJjZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKHtcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnLFxuICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5tZXNzYWdlLmJhY2tlbmQtb25seS0xLWRhdGFzb3VyY2UnKSxcbiAgICAgICAgdGltZW91dDogNDAwMFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGFzb3VyY2VzLmluY2x1ZGVzKERFRkFVTFRfTkFNRURfUVVFUllfSUQpIHx8IGRhdGFzb3VyY2VzLmluY2x1ZGVzKEVYUExPUkVfTkFNRURfUVVFUllfSUQpKSB7XG4gICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oe1xuICAgICAgICB0eXBlOiAnd2FybmluZycsXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5Lm1lc3NhZ2UuY2Fubm90LWFnZ3JlZ2F0ZS12aXJ0dWFsLWRzJyksXG4gICAgICAgIHRpbWVvdXQ6IDQwMDBcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghdGFyZ2V0RGF0YXNvdXJjZSkge1xuICAgICAgY29uc29sZS53YXJuKCdBZ2dyZWdhdGlvbiBuZWVkcyBhIHRhcmdldCBkYXRhc291cmNlLicpO1xuICAgICAgcmV0dXJuIG9mKHsgb3BlcmF0aW9uOiBvcHRpb25zLm9yZGluYXRlPy5vcGVyYXRpb24gPz8gJ25vbmUnLCB2YWx1ZXM6IFtdIH0gYXMgQWdncmVnYXRpb25SZXN1bHQpO1xuICAgIH1cblxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChvcHRpb25zLmFic2Npc3NhICYmIG9wdGlvbnMuYWJzY2lzc2EuYXR0cmlidXRlKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdhZ2dyZWdhdGVkQnknLCBvcHRpb25zLmFic2Npc3NhLmF0dHJpYnV0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignQWdncmVnYXRpb24gbmVlZHMgYW4gYWdncmVnYXRlZEJ5IG1lbWJlci4nKTtcbiAgICAgIGlmIChvcHRpb25zLm9yZGluYXRlLm9wZXJhdGlvbiAhPT0gT3BlcmF0aW9uLkVYVEVOVCkge1xuICAgICAgICByZXR1cm4gb2YoeyBvcGVyYXRpb246IG9wdGlvbnMub3JkaW5hdGUub3BlcmF0aW9uLCB2YWx1ZXM6IFtdIH0gYXMgQWdncmVnYXRpb25SZXN1bHQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3B0aW9ucy5hYnNjaXNzYSAmJiBvcHRpb25zLmFic2Npc3NhLmxpbWl0KSB7XG4gICAgICBpZiAob3B0aW9ucy5hYnNjaXNzYS5saW1pdC5pc1RpbWVMaW1pdCkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdkYXRlSW50ZXJ2YWwnLCBvcHRpb25zLmFic2Npc3NhLmxpbWl0LmludGVydmFsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2ludGVydmFsJywgb3B0aW9ucy5hYnNjaXNzYS5saW1pdC5hdCk7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2xpbWl0T3JkZXInLCBvcHRpb25zLmFic2Npc3NhLmxpbWl0Lm9yZGVyKTtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbGltaXRPdGhlcnMnLCBvcHRpb25zLmFic2Npc3NhLmxpbWl0Lm90aGVycyk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG9wZXJhdGlvbiA9IG9wdGlvbnMub3JkaW5hdGUub3BlcmF0aW9uPy5yZXBsYWNlKC9ebm9uZSQvLCBPcGVyYXRpb24uU1VNKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdvcGVyYXRpb24nLCBvcGVyYXRpb24pO1xuICAgIGlmICghIW9wdGlvbnMub3JkaW5hdGUuYXR0cmlidXRlKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd2YWx1ZUZpZWxkJywgb3B0aW9ucy5vcmRpbmF0ZS5hdHRyaWJ1dGUpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5ncm91cEJ5KSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdncm91cEJ5Jywgb3B0aW9ucy5ncm91cEJ5LmF0dHJpYnV0ZSk7XG4gICAgfVxuICAgIHBhcmFtcyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXRJdGVtc0ZpbHRlcih0YXJnZXREYXRhc291cmNlLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5kYXRhVXJsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh1cmwpID0+XG4gICAgICAgIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgIC5nZXQ8QWdncmVnYXRpb25SZXN1bHQ+KGAke3VybH0vZGF0YS1zb3VyY2VzL2lkLyR7dGFyZ2V0RGF0YXNvdXJjZX0vaXRlbXMvYWdncmVnYXRlYCwge1xuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgICAgfSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzdWx0KSA9PiAoe1xuICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogb3B0aW9ucy5vcmRpbmF0ZS5vcGVyYXRpb24gPT09IE9wZXJhdGlvbi5OT05FID8gT3BlcmF0aW9uLk5PTkUgOiByZXN1bHQub3BlcmF0aW9uXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class PryAggregationService {
|
|
4
|
+
aggregate(datasource, options) {
|
|
5
|
+
throw new Error('You must declare the use of an aggregation service. Add PryBackendAggregationService, PryFrontendAggregationService or a custom service');
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAggregationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAggregationService, providedIn: 'root' }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAggregationService, decorators: [{
|
|
11
|
+
type: Injectable,
|
|
12
|
+
args: [{
|
|
13
|
+
providedIn: 'root'
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hZ2dyZWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvc3RvcmUvYWdncmVnYXRpb24vYmFzZS1hZ2dyZWdhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBZ0MzQyxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFNBQVMsQ0FBQyxVQUFvQixFQUFFLE9BQXFDO1FBQ25FLE1BQU0sSUFBSSxLQUFLLENBQ2IseUlBQXlJLENBQzFJLENBQUM7SUFDSixDQUFDOzhHQUxVLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRnBCLE1BQU07OzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBWYWx1ZVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDaGFydEFnZ3JlZ2F0ZWRXaWRnZXRPcHRpb25zLCBPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbC93aWRnZXQtYWdncmVnYXRlZC1jaGFydC1tYW5pZmVzdC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0aW9uUmVzdWx0IHtcbiAgb3BlcmF0aW9uOiBPcGVyYXRpb247XG4gIHZhbHVlczogKFxuICAgIHwge1xuICAgICAgICBrZXk6IFZhbHVlVHlwZTtcbiAgICAgICAgdmFsdWU6IFZhbHVlVHlwZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAga2V5OiBWYWx1ZVR5cGU7XG4gICAgICAgIGdyb3VwQnk6IHtcbiAgICAgICAgICBrZXk6IFZhbHVlVHlwZTtcbiAgICAgICAgICB2YWx1ZTogVmFsdWVUeXBlO1xuICAgICAgICB9W107XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIGtleTogVmFsdWVUeXBlO1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIGJvdHRvbV9yaWdodDogeyBsb246IHN0cmluZzsgbGF0OiBzdHJpbmcgfTtcbiAgICAgICAgICB0b3BfbGVmdDogeyBsb246IHN0cmluZzsgbGF0OiBzdHJpbmcgfTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgKVtdO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcnlBZ2dyZWdhdGlvblNlcnZpY2Uge1xuICBhZ2dyZWdhdGUoZGF0YXNvdXJjZTogc3RyaW5nW10sIG9wdGlvbnM6IENoYXJ0QWdncmVnYXRlZFdpZGdldE9wdGlvbnMpOiBPYnNlcnZhYmxlPEFnZ3JlZ2F0aW9uUmVzdWx0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1lvdSBtdXN0IGRlY2xhcmUgdGhlIHVzZSBvZiBhbiBhZ2dyZWdhdGlvbiBzZXJ2aWNlLiBBZGQgUHJ5QmFja2VuZEFnZ3JlZ2F0aW9uU2VydmljZSwgUHJ5RnJvbnRlbmRBZ2dyZWdhdGlvblNlcnZpY2Ugb3IgYSBjdXN0b20gc2VydmljZSdcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { combineLatest, map } from 'rxjs';
|
|
3
|
+
import { ItemUtils } from '../../../dashboard/item-utils';
|
|
4
|
+
import { ResultsetUtils } from '../../../dashboard/resultset-utils';
|
|
5
|
+
import { DashboardSelectors } from '../../../dashboard/store/dashboard.selectors';
|
|
6
|
+
import { Operation } from '../../model/widget-aggregated-chart-manifest.interface';
|
|
7
|
+
import { ClassSelectors } from '../class/class.selectors';
|
|
8
|
+
import { PryAggregationService } from './base-aggregation.service';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@ngrx/store";
|
|
11
|
+
export class PryFrontendAggregationService extends PryAggregationService {
|
|
12
|
+
constructor(store) {
|
|
13
|
+
super();
|
|
14
|
+
this.store = store;
|
|
15
|
+
}
|
|
16
|
+
// @ts-ignore
|
|
17
|
+
aggregate(datasource, options) {
|
|
18
|
+
return combineLatest([
|
|
19
|
+
this.store.select(DashboardSelectors.resultSets),
|
|
20
|
+
this.store.select(ClassSelectors.classes)
|
|
21
|
+
]).pipe(map(([resultSets, classes]) => {
|
|
22
|
+
const abscissa = classes
|
|
23
|
+
.map((clazz) => clazz.attributes.find((attr) => attr.id === options.abscissa.attribute))
|
|
24
|
+
.find((attr) => !!attr)?.name;
|
|
25
|
+
const ordinate = classes
|
|
26
|
+
.map((clazz) => clazz.attributes.find((attr) => attr.id === options.ordinate.attribute))
|
|
27
|
+
.find((attr) => !!attr)?.name;
|
|
28
|
+
if (!abscissa || !ordinate) {
|
|
29
|
+
throw new Error('abscissaorodinateinvalid');
|
|
30
|
+
}
|
|
31
|
+
let data = datasource.map((rsName) => resultSets[rsName ?? '']).filter((rsName) => !!rsName);
|
|
32
|
+
const resultSet = data.reduce((rs1, rs2) => ResultsetUtils.mergeResultSets(rs1, rs2), {
|
|
33
|
+
items: {},
|
|
34
|
+
relations: [],
|
|
35
|
+
merged: data.length
|
|
36
|
+
});
|
|
37
|
+
let items = Object.keys(resultSet.items)
|
|
38
|
+
.map((classId) => resultSet.items[classId])
|
|
39
|
+
.reduce((prev, curr) => [...prev, ...curr], []);
|
|
40
|
+
if (!!options.groupBy) {
|
|
41
|
+
const groupBy = classes
|
|
42
|
+
.map((clazz) => clazz.attributes.find((attr) => attr.id === options.groupBy?.attribute))
|
|
43
|
+
.find((attr) => !!attr)?.name;
|
|
44
|
+
if (!groupBy) {
|
|
45
|
+
throw new Error('groupByAttributeisinvalid');
|
|
46
|
+
}
|
|
47
|
+
const itemsGrouped = this.groupBy(items, groupBy);
|
|
48
|
+
const values = [];
|
|
49
|
+
Object.keys(itemsGrouped).forEach((key) => {
|
|
50
|
+
values.push({
|
|
51
|
+
key,
|
|
52
|
+
groupBy: this.getValueFromOperation(itemsGrouped[key], options.ordinate.operation, abscissa, ordinate, options.abscissa.limit)
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
return { operation: options.ordinate.operation, values: values };
|
|
56
|
+
}
|
|
57
|
+
const values = this.getValueFromOperation(items, options.ordinate.operation, abscissa, ordinate, options.abscissa.limit);
|
|
58
|
+
return { operation: options.ordinate.operation, values: values };
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
getValueFromOperation(items, operation, abscissa, ordinate, limit) {
|
|
62
|
+
let result = [];
|
|
63
|
+
const groupByAbscissa = this.groupBy(items, abscissa);
|
|
64
|
+
groupByAbscissa.map((test) => console.log(groupByAbscissa[test]));
|
|
65
|
+
switch (operation) {
|
|
66
|
+
case Operation.COUNT:
|
|
67
|
+
result.push(...Object.keys(groupByAbscissa).map((key) => ({
|
|
68
|
+
key: key,
|
|
69
|
+
value: groupByAbscissa[key].length
|
|
70
|
+
})));
|
|
71
|
+
break;
|
|
72
|
+
case Operation.SUM:
|
|
73
|
+
result.push(...Object.keys(groupByAbscissa).map((key) => ({
|
|
74
|
+
key: key,
|
|
75
|
+
value: this.getSum(groupByAbscissa[key], ordinate)
|
|
76
|
+
})));
|
|
77
|
+
break;
|
|
78
|
+
case Operation.DISTINCT:
|
|
79
|
+
result.push(...Object.keys(groupByAbscissa).map((key) => ({
|
|
80
|
+
key: key,
|
|
81
|
+
value: this.getDistinct(groupByAbscissa[key], ordinate)
|
|
82
|
+
})));
|
|
83
|
+
break;
|
|
84
|
+
case Operation.AVERAGE:
|
|
85
|
+
result.push(...Object.keys(groupByAbscissa).map((key) => ({
|
|
86
|
+
key: key,
|
|
87
|
+
value: this.getAverage(groupByAbscissa[key], ordinate)
|
|
88
|
+
})));
|
|
89
|
+
break;
|
|
90
|
+
case Operation.MEDIAN:
|
|
91
|
+
result.push(...Object.keys(groupByAbscissa).map((key) => ({
|
|
92
|
+
key: key,
|
|
93
|
+
value: this.getQuartile(groupByAbscissa[key], ordinate, 0.5)
|
|
94
|
+
})));
|
|
95
|
+
break;
|
|
96
|
+
case Operation.Q1:
|
|
97
|
+
result.push(...Object.keys(groupByAbscissa).map((key) => ({
|
|
98
|
+
key: key,
|
|
99
|
+
value: this.getQuartile(groupByAbscissa[key], ordinate, 0.25)
|
|
100
|
+
})));
|
|
101
|
+
break;
|
|
102
|
+
case Operation.Q3:
|
|
103
|
+
result.push(...Object.keys(groupByAbscissa).map((key) => ({
|
|
104
|
+
key: key,
|
|
105
|
+
value: this.getQuartile(groupByAbscissa[key], ordinate, 0.75)
|
|
106
|
+
})));
|
|
107
|
+
break;
|
|
108
|
+
case Operation.MIN:
|
|
109
|
+
result.push(...Object.keys(groupByAbscissa).map((key) => ({
|
|
110
|
+
key: key,
|
|
111
|
+
value: this.getMin(groupByAbscissa[key], ordinate)
|
|
112
|
+
})));
|
|
113
|
+
break;
|
|
114
|
+
default:
|
|
115
|
+
result.push(...Object.keys(groupByAbscissa).map((key) => ({
|
|
116
|
+
key: key,
|
|
117
|
+
value: this.getMax(groupByAbscissa[key], ordinate)
|
|
118
|
+
})));
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
if (limit) {
|
|
122
|
+
result = this.formatByLimit(result, limit);
|
|
123
|
+
}
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
groupBy(items, attribute) {
|
|
127
|
+
let distincts = [];
|
|
128
|
+
items.forEach((item) => {
|
|
129
|
+
let value = this.getValueFromAttribute(item, attribute);
|
|
130
|
+
if (distincts[value.value]) {
|
|
131
|
+
distincts[value.value].push(item);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
distincts[value.value] = [item];
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
return distincts;
|
|
138
|
+
}
|
|
139
|
+
getValueFromAttribute(item, attribute) {
|
|
140
|
+
let value = ItemUtils.getAttributeValue(item, attribute);
|
|
141
|
+
return Array.isArray(value) ? value[0] : value;
|
|
142
|
+
}
|
|
143
|
+
getSum(items, attribute) {
|
|
144
|
+
let sum = 0;
|
|
145
|
+
items.forEach((item) => {
|
|
146
|
+
sum += this.getValueFromAttribute(item, attribute).value;
|
|
147
|
+
});
|
|
148
|
+
return sum;
|
|
149
|
+
}
|
|
150
|
+
getMin(items, attribute) {
|
|
151
|
+
const result = items.reduce((prev, curr) => {
|
|
152
|
+
const prevValue = this.getValueFromAttribute(prev, attribute).value;
|
|
153
|
+
const currValue = this.getValueFromAttribute(curr, attribute).value;
|
|
154
|
+
return prevValue < currValue ? prev : curr;
|
|
155
|
+
});
|
|
156
|
+
return this.getValueFromAttribute(result, attribute).value;
|
|
157
|
+
}
|
|
158
|
+
getMax(items, attribute) {
|
|
159
|
+
const result = items.reduce((prev, curr) => {
|
|
160
|
+
const prevValue = this.getValueFromAttribute(prev, attribute).value;
|
|
161
|
+
const currValue = this.getValueFromAttribute(curr, attribute).value;
|
|
162
|
+
return prevValue > currValue ? prev : curr;
|
|
163
|
+
});
|
|
164
|
+
return this.getValueFromAttribute(result, attribute).value;
|
|
165
|
+
}
|
|
166
|
+
getAverage(items, attribute) {
|
|
167
|
+
const allValues = items.map((item) => this.getValueFromAttribute(item, attribute).value);
|
|
168
|
+
return allValues.reduce((acc, val) => acc + val, 0) / allValues.length;
|
|
169
|
+
}
|
|
170
|
+
getDistinct(items, attribute) {
|
|
171
|
+
return [...new Set(items.map((item) => this.getValueFromAttribute(item, attribute).value))].length;
|
|
172
|
+
}
|
|
173
|
+
getQuartile(items, attribute, q) {
|
|
174
|
+
const allValues = items.map((item) => this.getValueFromAttribute(item, attribute).value);
|
|
175
|
+
const allValuesSorted = allValues.sort((a, b) => a - b);
|
|
176
|
+
let pos = (allValuesSorted.length - 1) * q;
|
|
177
|
+
if (pos % 1 === 0) {
|
|
178
|
+
return allValuesSorted[pos];
|
|
179
|
+
}
|
|
180
|
+
pos = Math.floor(pos);
|
|
181
|
+
if (allValuesSorted[pos + 1] !== undefined) {
|
|
182
|
+
return (allValuesSorted[pos] + allValuesSorted[pos + 1]) / 2;
|
|
183
|
+
}
|
|
184
|
+
return allValuesSorted[pos];
|
|
185
|
+
}
|
|
186
|
+
getPercentile(items, attribute, q) {
|
|
187
|
+
const allValues = items.map((item) => this.getValueFromAttribute(item, attribute).value);
|
|
188
|
+
const allValuesSorted = allValues.sort((a, b) => a - b);
|
|
189
|
+
return ((100 * allValuesSorted.reduce((acc, v) => acc + (v < q ? 1 : 0) + (v === q ? 0.5 : 0), 0)) /
|
|
190
|
+
allValuesSorted.length);
|
|
191
|
+
}
|
|
192
|
+
formatByLimit(data, limit) {
|
|
193
|
+
if (!limit.isTimeLimit) {
|
|
194
|
+
data
|
|
195
|
+
.sort((a, b) => (limit.order === 'asc' ? (a.value > b.value ? 1 : -1) : a.value < b.value ? 1 : -1))
|
|
196
|
+
.splice(limit.at);
|
|
197
|
+
return data;
|
|
198
|
+
}
|
|
199
|
+
return data;
|
|
200
|
+
}
|
|
201
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryFrontendAggregationService, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
202
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryFrontendAggregationService, providedIn: 'root' }); }
|
|
203
|
+
}
|
|
204
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryFrontendAggregationService, decorators: [{
|
|
205
|
+
type: Injectable,
|
|
206
|
+
args: [{
|
|
207
|
+
providedIn: 'root'
|
|
208
|
+
}]
|
|
209
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmQtYWdncmVnYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2FnZ3JlZ2F0aW9uL2Zyb250ZW5kLWFnZ3JlZ2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRWxGLE9BQU8sRUFHTCxTQUFTLEVBRVYsTUFBTSx3REFBd0QsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFxQixxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFLdEYsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHFCQUFxQjtJQUN0RSxZQUFvQixLQUFZO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUVoQyxDQUFDO0lBRUQsYUFBYTtJQUNKLFNBQVMsQ0FBQyxVQUFvQixFQUFFLE9BQXFDO1FBQzVFLE9BQU8sYUFBYSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztZQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1NBQzFDLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUM1QixNQUFNLFFBQVEsR0FBRyxPQUFPO2lCQUNyQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3ZGLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQztZQUNoQyxNQUFNLFFBQVEsR0FBRyxPQUFPO2lCQUNyQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3ZGLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDN0M7WUFDRCxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNwRixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsRUFBRTtnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDcEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxLQUFLLEdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2lCQUM3QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQVcsQ0FBQztZQUM1RCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNyQixNQUFNLE9BQU8sR0FBRyxPQUFPO3FCQUNwQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7cUJBQ3ZGLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQztnQkFDaEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7aUJBQzlDO2dCQUNELE1BQU0sWUFBWSxHQUF1QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDdEYsTUFBTSxNQUFNLEdBQXdDLEVBQUUsQ0FBQztnQkFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDVixHQUFHO3dCQUNILE9BQU8sRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQ2pDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQzFCLFFBQVEsRUFDUixRQUFRLEVBQ1IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ3ZCO3FCQUNGLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQXVCLENBQUM7YUFDdkY7WUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQ3ZDLEtBQUssRUFDTCxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDMUIsUUFBUSxFQUNSLFFBQVEsRUFDUixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FDdkIsQ0FBQztZQUNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBdUIsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHFCQUFxQixDQUNuQixLQUFhLEVBQ2IsU0FBb0IsRUFDcEIsUUFBZ0IsRUFDaEIsUUFBZ0IsRUFDaEIsS0FBMkI7UUFFM0IsSUFBSSxNQUFNLEdBQTJDLEVBQUUsQ0FBQztRQUN4RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0RCxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxTQUFTLENBQUMsS0FBSztnQkFDbEIsTUFBTSxDQUFDLElBQUksQ0FDVCxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUM1QyxHQUFHLEVBQUUsR0FBRztvQkFDUixLQUFLLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU07aUJBQ25DLENBQUMsQ0FBQyxDQUNKLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDLEdBQUc7Z0JBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDNUMsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQztpQkFDbkQsQ0FBQyxDQUFDLENBQ0osQ0FBQztnQkFDRixNQUFNO1lBQ1IsS0FBSyxTQUFTLENBQUMsUUFBUTtnQkFDckIsTUFBTSxDQUFDLElBQUksQ0FDVCxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUM1QyxHQUFHLEVBQUUsR0FBRztvQkFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDO2lCQUN4RCxDQUFDLENBQUMsQ0FDSixDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNwQixNQUFNLENBQUMsSUFBSSxDQUNULEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzVDLEdBQUcsRUFBRSxHQUFHO29CQUNSLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUM7aUJBQ3ZELENBQUMsQ0FBQyxDQUNKLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDLE1BQU07Z0JBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDNUMsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUM7aUJBQzdELENBQUMsQ0FBQyxDQUNKLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDLEVBQUU7Z0JBQ2YsTUFBTSxDQUFDLElBQUksQ0FDVCxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUM1QyxHQUFHLEVBQUUsR0FBRztvQkFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQztpQkFDOUQsQ0FBQyxDQUFDLENBQ0osQ0FBQztnQkFDRixNQUFNO1lBQ1IsS0FBSyxTQUFTLENBQUMsRUFBRTtnQkFDZixNQUFNLENBQUMsSUFBSSxDQUNULEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzVDLEdBQUcsRUFBRSxHQUFHO29CQUNSLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO2lCQUM5RCxDQUFDLENBQUMsQ0FDSixDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLFNBQVMsQ0FBQyxHQUFHO2dCQUNoQixNQUFNLENBQUMsSUFBSSxDQUNULEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzVDLEdBQUcsRUFBRSxHQUFHO29CQUNSLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUM7aUJBQ25ELENBQUMsQ0FBQyxDQUNKLENBQUM7Z0JBQ0YsTUFBTTtZQUNSO2dCQUNFLE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDNUMsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQztpQkFDbkQsQ0FBQyxDQUFDLENBQ0osQ0FBQztnQkFDRixNQUFNO1NBQ1Q7UUFDRCxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBYSxFQUFFLFNBQWlCO1FBQ3RDLElBQUksU0FBUyxHQUFRLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN4RCxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBd0IsQ0FBQyxFQUFFO2dCQUM3QyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQXdCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEQ7aUJBQU07Z0JBQ0wsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUF3QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNwRDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQVUsRUFBRSxTQUFpQjtRQUNqRCxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDakQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDckMsSUFBSSxHQUFHLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNyQixHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxLQUFlLENBQUM7UUFDckUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLFNBQWlCO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsSUFBUyxFQUFFLEVBQUU7WUFDbkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDcEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDcEUsT0FBTyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDckMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxJQUFTLEVBQUUsRUFBRTtZQUNuRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNwRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNwRSxPQUFPLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM3RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWEsRUFBRSxTQUFpQjtRQUN6QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEtBQWUsQ0FBQyxDQUFDO1FBQ25HLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUN6RSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxTQUFpQjtRQUMxQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckcsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhLEVBQUUsU0FBaUIsRUFBRSxDQUFTO1FBQ3JELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsS0FBZSxDQUFDLENBQUM7UUFDbkcsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV4RSxJQUFJLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7UUFFRCxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLGVBQWUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQzFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM5RDtRQUVELE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYSxFQUFFLFNBQWlCLEVBQUUsQ0FBUztRQUN2RCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEtBQWUsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEUsT0FBTyxDQUNMLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxRixlQUFlLENBQUMsTUFBTSxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUE0QyxFQUFFLEtBQTBCO1FBQ3BGLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3RCLElBQUk7aUJBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ25HLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0FsUFUsNkJBQTZCO2tIQUE3Qiw2QkFBNkIsY0FGNUIsTUFBTTs7MkZBRVAsNkJBQTZCO2tCQUh6QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJdGVtVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvaXRlbS11dGlscyc7XG5pbXBvcnQgeyBSZXN1bHRzZXRVdGlscyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9yZXN1bHRzZXQtdXRpbHMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgSXRlbSwgVmFsdWVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgQXRMaW1pdCxcbiAgQ2hhcnRBZ2dyZWdhdGVkV2lkZ2V0T3B0aW9ucyxcbiAgT3BlcmF0aW9uLFxuICBUaW1lTGltaXRcbn0gZnJvbSAnLi4vLi4vbW9kZWwvd2lkZ2V0LWFnZ3JlZ2F0ZWQtY2hhcnQtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsYXNzU2VsZWN0b3JzIH0gZnJvbSAnLi4vY2xhc3MvY2xhc3Muc2VsZWN0b3JzJztcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uUmVzdWx0LCBQcnlBZ2dyZWdhdGlvblNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtYWdncmVnYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByeUZyb250ZW5kQWdncmVnYXRpb25TZXJ2aWNlIGV4dGVuZHMgUHJ5QWdncmVnYXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBvdmVycmlkZSBhZ2dyZWdhdGUoZGF0YXNvdXJjZTogc3RyaW5nW10sIG9wdGlvbnM6IENoYXJ0QWdncmVnYXRlZFdpZGdldE9wdGlvbnMpOiBPYnNlcnZhYmxlPEFnZ3JlZ2F0aW9uUmVzdWx0PiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcmVzdWx0U2V0cywgY2xhc3Nlc10pID0+IHtcbiAgICAgICAgY29uc3QgYWJzY2lzc2EgPSBjbGFzc2VzXG4gICAgICAgICAgLm1hcCgoY2xhenopID0+IGNsYXp6LmF0dHJpYnV0ZXMuZmluZCgoYXR0cikgPT4gYXR0ci5pZCA9PT0gb3B0aW9ucy5hYnNjaXNzYS5hdHRyaWJ1dGUpKVxuICAgICAgICAgIC5maW5kKChhdHRyKSA9PiAhIWF0dHIpPy5uYW1lO1xuICAgICAgICBjb25zdCBvcmRpbmF0ZSA9IGNsYXNzZXNcbiAgICAgICAgICAubWFwKChjbGF6eikgPT4gY2xhenouYXR0cmlidXRlcy5maW5kKChhdHRyKSA9PiBhdHRyLmlkID09PSBvcHRpb25zLm9yZGluYXRlLmF0dHJpYnV0ZSkpXG4gICAgICAgICAgLmZpbmQoKGF0dHIpID0+ICEhYXR0cik/Lm5hbWU7XG4gICAgICAgIGlmICghYWJzY2lzc2EgfHwgIW9yZGluYXRlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhYnNjaXNzYW9yb2RpbmF0ZWludmFsaWQnKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGF0YSA9IGRhdGFzb3VyY2UubWFwKChyc05hbWUpID0+IHJlc3VsdFNldHNbcnNOYW1lID8/ICcnXSkuZmlsdGVyKChyc05hbWUpID0+ICEhcnNOYW1lKTtcbiAgICAgICAgY29uc3QgcmVzdWx0U2V0ID0gZGF0YS5yZWR1Y2UoKHJzMSwgcnMyKSA9PiBSZXN1bHRzZXRVdGlscy5tZXJnZVJlc3VsdFNldHMocnMxLCByczIpLCB7XG4gICAgICAgICAgaXRlbXM6IHt9LFxuICAgICAgICAgIHJlbGF0aW9uczogW10sXG4gICAgICAgICAgbWVyZ2VkOiBkYXRhLmxlbmd0aFxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGl0ZW1zOiBJdGVtW10gPSBPYmplY3Qua2V5cyhyZXN1bHRTZXQuaXRlbXMpXG4gICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gcmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdKVxuICAgICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IFsuLi5wcmV2LCAuLi5jdXJyXSwgW10pIGFzIEl0ZW1bXTtcbiAgICAgICAgaWYgKCEhb3B0aW9ucy5ncm91cEJ5KSB7XG4gICAgICAgICAgY29uc3QgZ3JvdXBCeSA9IGNsYXNzZXNcbiAgICAgICAgICAgIC5tYXAoKGNsYXp6KSA9PiBjbGF6ei5hdHRyaWJ1dGVzLmZpbmQoKGF0dHIpID0+IGF0dHIuaWQgPT09IG9wdGlvbnMuZ3JvdXBCeT8uYXR0cmlidXRlKSlcbiAgICAgICAgICAgIC5maW5kKChhdHRyKSA9PiAhIWF0dHIpPy5uYW1lO1xuICAgICAgICAgIGlmICghZ3JvdXBCeSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdncm91cEJ5QXR0cmlidXRlaXNpbnZhbGlkJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGl0ZW1zR3JvdXBlZDogeyBba2V5OiBzdHJpbmcgfCBudW1iZXJdOiBJdGVtW10gfSA9IHRoaXMuZ3JvdXBCeShpdGVtcywgZ3JvdXBCeSk7XG4gICAgICAgICAgY29uc3QgdmFsdWVzOiB7IGtleTogVmFsdWVUeXBlOyBncm91cEJ5OiB7fVtdIH1bXSA9IFtdO1xuICAgICAgICAgIE9iamVjdC5rZXlzKGl0ZW1zR3JvdXBlZCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh7XG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgZ3JvdXBCeTogdGhpcy5nZXRWYWx1ZUZyb21PcGVyYXRpb24oXG4gICAgICAgICAgICAgICAgaXRlbXNHcm91cGVkW2tleV0sXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5vcmRpbmF0ZS5vcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgYWJzY2lzc2EsXG4gICAgICAgICAgICAgICAgb3JkaW5hdGUsXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5hYnNjaXNzYS5saW1pdFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4geyBvcGVyYXRpb246IG9wdGlvbnMub3JkaW5hdGUub3BlcmF0aW9uLCB2YWx1ZXM6IHZhbHVlcyB9IGFzIEFnZ3JlZ2F0aW9uUmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZ2V0VmFsdWVGcm9tT3BlcmF0aW9uKFxuICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgIG9wdGlvbnMub3JkaW5hdGUub3BlcmF0aW9uLFxuICAgICAgICAgIGFic2Npc3NhLFxuICAgICAgICAgIG9yZGluYXRlLFxuICAgICAgICAgIG9wdGlvbnMuYWJzY2lzc2EubGltaXRcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHsgb3BlcmF0aW9uOiBvcHRpb25zLm9yZGluYXRlLm9wZXJhdGlvbiwgdmFsdWVzOiB2YWx1ZXMgfSBhcyBBZ2dyZWdhdGlvblJlc3VsdDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFZhbHVlRnJvbU9wZXJhdGlvbihcbiAgICBpdGVtczogSXRlbVtdLFxuICAgIG9wZXJhdGlvbjogT3BlcmF0aW9uLFxuICAgIGFic2Npc3NhOiBzdHJpbmcsXG4gICAgb3JkaW5hdGU6IHN0cmluZyxcbiAgICBsaW1pdD86IEF0TGltaXQgfCBUaW1lTGltaXRcbiAgKSB7XG4gICAgbGV0IHJlc3VsdDogeyBrZXk6IFZhbHVlVHlwZTsgdmFsdWU6IFZhbHVlVHlwZSB9W10gPSBbXTtcbiAgICBjb25zdCBncm91cEJ5QWJzY2lzc2EgPSB0aGlzLmdyb3VwQnkoaXRlbXMsIGFic2Npc3NhKTtcbiAgICBncm91cEJ5QWJzY2lzc2EubWFwKCh0ZXN0OiBhbnkpID0+IGNvbnNvbGUubG9nKGdyb3VwQnlBYnNjaXNzYVt0ZXN0XSkpO1xuICAgIHN3aXRjaCAob3BlcmF0aW9uKSB7XG4gICAgICBjYXNlIE9wZXJhdGlvbi5DT1VOVDpcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgLi4uT2JqZWN0LmtleXMoZ3JvdXBCeUFic2Npc3NhKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IGdyb3VwQnlBYnNjaXNzYVtrZXldLmxlbmd0aFxuICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3BlcmF0aW9uLlNVTTpcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgLi4uT2JqZWN0LmtleXMoZ3JvdXBCeUFic2Npc3NhKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0U3VtKGdyb3VwQnlBYnNjaXNzYVtrZXldLCBvcmRpbmF0ZSlcbiAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9wZXJhdGlvbi5ESVNUSU5DVDpcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgLi4uT2JqZWN0LmtleXMoZ3JvdXBCeUFic2Npc3NhKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0RGlzdGluY3QoZ3JvdXBCeUFic2Npc3NhW2tleV0sIG9yZGluYXRlKVxuICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3BlcmF0aW9uLkFWRVJBR0U6XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgIC4uLk9iamVjdC5rZXlzKGdyb3VwQnlBYnNjaXNzYSkubWFwKChrZXkpID0+ICh7XG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldEF2ZXJhZ2UoZ3JvdXBCeUFic2Npc3NhW2tleV0sIG9yZGluYXRlKVxuICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3BlcmF0aW9uLk1FRElBTjpcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgLi4uT2JqZWN0LmtleXMoZ3JvdXBCeUFic2Npc3NhKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0UXVhcnRpbGUoZ3JvdXBCeUFic2Npc3NhW2tleV0sIG9yZGluYXRlLCAwLjUpXG4gICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBPcGVyYXRpb24uUTE6XG4gICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgIC4uLk9iamVjdC5rZXlzKGdyb3VwQnlBYnNjaXNzYSkubWFwKChrZXkpID0+ICh7XG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldFF1YXJ0aWxlKGdyb3VwQnlBYnNjaXNzYVtrZXldLCBvcmRpbmF0ZSwgMC4yNSlcbiAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9wZXJhdGlvbi5RMzpcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgLi4uT2JqZWN0LmtleXMoZ3JvdXBCeUFic2Npc3NhKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0UXVhcnRpbGUoZ3JvdXBCeUFic2Npc3NhW2tleV0sIG9yZGluYXRlLCAwLjc1KVxuICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3BlcmF0aW9uLk1JTjpcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgLi4uT2JqZWN0LmtleXMoZ3JvdXBCeUFic2Npc3NhKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0TWluKGdyb3VwQnlBYnNjaXNzYVtrZXldLCBvcmRpbmF0ZSlcbiAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAuLi5PYmplY3Qua2V5cyhncm91cEJ5QWJzY2lzc2EpLm1hcCgoa2V5KSA9PiAoe1xuICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRNYXgoZ3JvdXBCeUFic2Npc3NhW2tleV0sIG9yZGluYXRlKVxuICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKGxpbWl0KSB7XG4gICAgICByZXN1bHQgPSB0aGlzLmZvcm1hdEJ5TGltaXQocmVzdWx0LCBsaW1pdCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBncm91cEJ5KGl0ZW1zOiBJdGVtW10sIGF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgbGV0IGRpc3RpbmN0czogYW55ID0gW107XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogSXRlbSkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZUZyb21BdHRyaWJ1dGUoaXRlbSwgYXR0cmlidXRlKTtcbiAgICAgIGlmIChkaXN0aW5jdHNbdmFsdWUudmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyXSkge1xuICAgICAgICBkaXN0aW5jdHNbdmFsdWUudmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyXS5wdXNoKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlzdGluY3RzW3ZhbHVlLnZhbHVlIGFzIHN0cmluZyB8IG51bWJlcl0gPSBbaXRlbV07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRpc3RpbmN0cztcbiAgfVxuXG4gIGdldFZhbHVlRnJvbUF0dHJpYnV0ZShpdGVtOiBJdGVtLCBhdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZSA9IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVWYWx1ZShpdGVtLCBhdHRyaWJ1dGUpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlWzBdIDogdmFsdWU7XG4gIH1cblxuICBnZXRTdW0oaXRlbXM6IEl0ZW1bXSwgYXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICBsZXQgc3VtOiBudW1iZXIgPSAwO1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIHN1bSArPSB0aGlzLmdldFZhbHVlRnJvbUF0dHJpYnV0ZShpdGVtLCBhdHRyaWJ1dGUpLnZhbHVlIGFzIG51bWJlcjtcbiAgICB9KTtcbiAgICByZXR1cm4gc3VtO1xuICB9XG5cbiAgZ2V0TWluKGl0ZW1zOiBJdGVtW10sIGF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gaXRlbXMucmVkdWNlKChwcmV2OiBhbnksIGN1cnI6IGFueSkgPT4ge1xuICAgICAgY29uc3QgcHJldlZhbHVlID0gdGhpcy5nZXRWYWx1ZUZyb21BdHRyaWJ1dGUocHJldiwgYXR0cmlidXRlKS52YWx1ZTtcbiAgICAgIGNvbnN0IGN1cnJWYWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tQXR0cmlidXRlKGN1cnIsIGF0dHJpYnV0ZSkudmFsdWU7XG4gICAgICByZXR1cm4gcHJldlZhbHVlIDwgY3VyclZhbHVlID8gcHJldiA6IGN1cnI7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVGcm9tQXR0cmlidXRlKHJlc3VsdCwgYXR0cmlidXRlKS52YWx1ZTtcbiAgfVxuXG4gIGdldE1heChpdGVtczogSXRlbVtdLCBhdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGl0ZW1zLnJlZHVjZSgocHJldjogYW55LCBjdXJyOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tQXR0cmlidXRlKHByZXYsIGF0dHJpYnV0ZSkudmFsdWU7XG4gICAgICBjb25zdCBjdXJyVmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbUF0dHJpYnV0ZShjdXJyLCBhdHRyaWJ1dGUpLnZhbHVlO1xuICAgICAgcmV0dXJuIHByZXZWYWx1ZSA+IGN1cnJWYWx1ZSA/IHByZXYgOiBjdXJyO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmdldFZhbHVlRnJvbUF0dHJpYnV0ZShyZXN1bHQsIGF0dHJpYnV0ZSkudmFsdWU7XG4gIH1cblxuICBnZXRBdmVyYWdlKGl0ZW1zOiBJdGVtW10sIGF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYWxsVmFsdWVzID0gaXRlbXMubWFwKChpdGVtKSA9PiB0aGlzLmdldFZhbHVlRnJvbUF0dHJpYnV0ZShpdGVtLCBhdHRyaWJ1dGUpLnZhbHVlIGFzIG51bWJlcik7XG4gICAgcmV0dXJuIGFsbFZhbHVlcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwsIDApIC8gYWxsVmFsdWVzLmxlbmd0aDtcbiAgfVxuXG4gIGdldERpc3RpbmN0KGl0ZW1zOiBJdGVtW10sIGF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KGl0ZW1zLm1hcCgoaXRlbSkgPT4gdGhpcy5nZXRWYWx1ZUZyb21BdHRyaWJ1dGUoaXRlbSwgYXR0cmlidXRlKS52YWx1ZSkpXS5sZW5ndGg7XG4gIH1cblxuICBnZXRRdWFydGlsZShpdGVtczogSXRlbVtdLCBhdHRyaWJ1dGU6IHN0cmluZywgcTogbnVtYmVyKSB7XG4gICAgY29uc3QgYWxsVmFsdWVzID0gaXRlbXMubWFwKChpdGVtKSA9PiB0aGlzLmdldFZhbHVlRnJvbUF0dHJpYnV0ZShpdGVtLCBhdHRyaWJ1dGUpLnZhbHVlIGFzIG51bWJlcik7XG4gICAgY29uc3QgYWxsVmFsdWVzU29ydGVkID0gYWxsVmFsdWVzLnNvcnQoKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiBhIC0gYik7XG5cbiAgICBsZXQgcG9zID0gKGFsbFZhbHVlc1NvcnRlZC5sZW5ndGggLSAxKSAqIHE7XG4gICAgaWYgKHBvcyAlIDEgPT09IDApIHtcbiAgICAgIHJldHVybiBhbGxWYWx1ZXNTb3J0ZWRbcG9zXTtcbiAgICB9XG5cbiAgICBwb3MgPSBNYXRoLmZsb29yKHBvcyk7XG4gICAgaWYgKGFsbFZhbHVlc1NvcnRlZFtwb3MgKyAxXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gKGFsbFZhbHVlc1NvcnRlZFtwb3NdICsgYWxsVmFsdWVzU29ydGVkW3BvcyArIDFdKSAvIDI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFsbFZhbHVlc1NvcnRlZFtwb3NdO1xuICB9XG5cbiAgZ2V0UGVyY2VudGlsZShpdGVtczogSXRlbVtdLCBhdHRyaWJ1dGU6IHN0cmluZywgcTogbnVtYmVyKSB7XG4gICAgY29uc3QgYWxsVmFsdWVzID0gaXRlbXMubWFwKChpdGVtKSA9PiB0aGlzLmdldFZhbHVlRnJvbUF0dHJpYnV0ZShpdGVtLCBhdHRyaWJ1dGUpLnZhbHVlIGFzIG51bWJlcik7XG4gICAgY29uc3QgYWxsVmFsdWVzU29ydGVkID0gYWxsVmFsdWVzLnNvcnQoKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiBhIC0gYik7XG4gICAgcmV0dXJuIChcbiAgICAgICgxMDAgKiBhbGxWYWx1ZXNTb3J0ZWQucmVkdWNlKChhY2MsIHYpID0+IGFjYyArICh2IDwgcSA/IDEgOiAwKSArICh2ID09PSBxID8gMC41IDogMCksIDApKSAvXG4gICAgICBhbGxWYWx1ZXNTb3J0ZWQubGVuZ3RoXG4gICAgKTtcbiAgfVxuXG4gIGZvcm1hdEJ5TGltaXQoZGF0YTogeyBrZXk6IFZhbHVlVHlwZTsgdmFsdWU6IFZhbHVlVHlwZSB9W10sIGxpbWl0OiBBdExpbWl0IHwgVGltZUxpbWl0KSB7XG4gICAgaWYgKCFsaW1pdC5pc1RpbWVMaW1pdCkge1xuICAgICAgZGF0YVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gKGxpbWl0Lm9yZGVyID09PSAnYXNjJyA/IChhLnZhbHVlID4gYi52YWx1ZSA/IDEgOiAtMSkgOiBhLnZhbHVlIDwgYi52YWx1ZSA/IDEgOiAtMSkpXG4gICAgICAgIC5zcGxpY2UobGltaXQuYXQpO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvc3RvcmUvY2xhc3MvY2xhc3MuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENsYXNzIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXTtcbiAgc3RvcmFnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBtdWx0aVZhbHVlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdXNpbmVzc0RhdGEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG4gIGRhdGU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NvY2lhdGlvbnMge1xuICBpZDogc3RyaW5nO1xuICBhc3NvY2lhdGlvbnM6IFtcbiAgICB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgdHlwZTogc3RyaW5nO1xuICAgIH1cbiAgXTtcbiAgdXNlZEVsc2V3aGVyZTogYm9vbGVhbjtcbn1cbiJdfQ==
|