@provoly/dashboard 0.15.3 → 0.15.5
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/components/card/card.module.d.ts +1 -1
- package/dataset/style/_o-pry-dataset-detail.scss +4 -0
- package/esm2022/components/card/card.component.mjs +3 -3
- package/esm2022/components/card/card.module.mjs +5 -5
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/lib/core/components/overlay/overlay.module.mjs +4 -5
- package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -5
- package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +2 -5
- package/esm2022/lib/core/public-api.mjs +1 -2
- package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +21 -10
- package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +1 -90
- package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +14 -6
- package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +7 -4
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +24 -12
- package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +4 -5
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +4 -7
- package/esm2022/notification/components/notification/notification.component.mjs +3 -3
- package/esm2022/notification/i18n/en.translations.mjs +2 -1
- package/esm2022/notification/i18n/fr.translations.mjs +2 -1
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +5 -3
- package/esm2022/presentation/components/presentation.component.mjs +5 -4
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/search/i18n/en.translations.mjs +9 -3
- package/esm2022/search/i18n/fr.translations.mjs +9 -3
- package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +3 -3
- package/esm2022/search/search-home/search-home.component.mjs +3 -3
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +6 -3
- package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +3 -3
- package/esm2022/search/search-tools/search-tools.component.mjs +3 -3
- package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
- package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
- package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
- package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +3 -3
- package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
- package/esm2022/toolbox/style/css.component.mjs +2 -2
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +22 -7
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +15 -10
- package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +2 -1
- package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +2 -1
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +1 -1
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
- package/esm2022/widgets/widget-graph/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +1 -1
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +12 -14
- package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +8 -12
- package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +1 -1
- package/fesm2022/provoly-dashboard-components-card.mjs +6 -6
- package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +4 -4
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +4 -2
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +10 -7
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +6 -6
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +29 -14
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +20 -20
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +21 -6
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +16 -9
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-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 +4 -4
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +21 -26
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +83 -260
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/overlay/overlay.module.d.ts +8 -9
- package/lib/core/public-api.d.ts +0 -1
- package/lib/core/store/aggregation/backend-aggregation.service.d.ts +2 -0
- package/lib/dashboard/components/widgets/data-widget.component.d.ts +3 -2
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +8 -5
- package/notification/i18n/en.translations.d.ts +1 -0
- package/notification/i18n/fr.translations.d.ts +1 -0
- package/package.json +7 -8
- package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +2 -2
- package/presentation/style/_o-pry-presentation.scss +17 -13
- package/schematics/migration.json +5 -0
- package/schematics/ng-add/index.js +0 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-update/version-0-15/index.d.ts +2 -0
- package/schematics/ng-update/version-0-15/index.js +19 -0
- package/schematics/ng-update/version-0-15/index.js.map +1 -0
- package/schematics/ng-update/version-0-15/index.spec.d.ts +1 -0
- package/schematics/ng-update/version-0-15/index.spec.js +51 -0
- package/schematics/ng-update/version-0-15/index.spec.js.map +1 -0
- package/search/i18n/en.translations.d.ts +6 -0
- package/search/i18n/fr.translations.d.ts +6 -0
- package/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.d.ts +1 -0
- package/styles/components/_a-tooltip.scss +76 -0
- package/styles/components/_o-dashboard.scss +1 -1
- package/styles/components/_o-pry-card.scss +14 -0
- package/styles/components/_o-widget.scss +1 -0
- package/styles/layout/_o-workspace.scss +0 -1
- package/styles/main.scss +2 -0
- package/styles-theme/components-theme/_a-tooltip.theme.scss +12 -0
- package/styles-theme/main-theme.scss +1 -0
- package/toolbox/style/_o-toolbox.scss +6 -0
- package/tooltips/attribute/attribute-tooltip.component.d.ts +2 -1
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +2 -0
- package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +1 -0
- package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +1 -0
- package/widgets/widget-graph/style/_o-widget-graph.scss +15 -1
- package/widgets/widget-map/component/widget-map.component.d.ts +0 -1
- package/widgets/widget-map/style/_o-widget-map.scss +14 -0
- package/esm2022/lib/core/components/overlay/tooltip.directive.mjs +0 -121
- package/lib/core/components/overlay/tooltip.directive.d.ts +0 -28
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { BaseTooltipComponent } from '@provoly/dashboard';
|
|
3
|
-
import { of } from 'rxjs';
|
|
3
|
+
import { map, of } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@provoly/dashboard";
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
@@ -10,7 +10,22 @@ export class AttributeTooltipComponent extends BaseTooltipComponent {
|
|
|
10
10
|
this.translateIdPipe = translateIdPipe;
|
|
11
11
|
this.context = this.context ?? { attributes: [] };
|
|
12
12
|
}
|
|
13
|
-
getValue(attribute) {
|
|
13
|
+
getValue(attribute, limit = 9999) {
|
|
14
|
+
return this._getValue(attribute).pipe(map((value) => {
|
|
15
|
+
switch (typeof value) {
|
|
16
|
+
case 'undefined':
|
|
17
|
+
return '';
|
|
18
|
+
case 'number':
|
|
19
|
+
return value.toString();
|
|
20
|
+
case 'string':
|
|
21
|
+
return value;
|
|
22
|
+
default:
|
|
23
|
+
const result = JSON.stringify(value);
|
|
24
|
+
return result.length > limit ? `${result.substring(0, limit)}...` : result;
|
|
25
|
+
}
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
_getValue(attribute) {
|
|
14
29
|
if (!this.data.item.properties) {
|
|
15
30
|
// This is for Provoly-like items
|
|
16
31
|
switch (attribute) {
|
|
@@ -22,19 +37,19 @@ export class AttributeTooltipComponent extends BaseTooltipComponent {
|
|
|
22
37
|
output: 'name'
|
|
23
38
|
});
|
|
24
39
|
default:
|
|
25
|
-
return of(
|
|
40
|
+
return of(this.data.item.attributes[attribute]?.value);
|
|
26
41
|
}
|
|
27
42
|
}
|
|
28
43
|
else {
|
|
29
44
|
// This is for other items, like WMSFeatures
|
|
30
|
-
return of(this.data.item.properties.find((prop) => prop.key === attribute)?.value
|
|
45
|
+
return of(this.data.item.properties.find((prop) => prop.key === attribute)?.value);
|
|
31
46
|
}
|
|
32
47
|
}
|
|
33
48
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AttributeTooltipComponent, deps: [{ token: i1.TranslateIdPipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AttributeTooltipComponent, selector: "pry-attribute-tooltip", usesInheritance: true, ngImport: i0, template: "<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AttributeTooltipComponent, selector: "pry-attribute-tooltip", usesInheritance: true, ngImport: i0, template: "<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n [title]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span [title]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\">{{\n data.item.oClass | translateId : { type: 'class', output: 'name' } | async\n }}</span>\n </h3>\n <ng-container *ngFor=\"let attribute of context.attributes\">\n <p [title]=\"getValue(attribute) | async\">\n <span>{{ attribute }}:</span> {{ getValue(attribute, 40) | async }}\n </p>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i1.TranslateItemToSymbolPipe, name: "translateItemToSymbol" }] }); }
|
|
35
50
|
}
|
|
36
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AttributeTooltipComponent, decorators: [{
|
|
37
52
|
type: Component,
|
|
38
|
-
args: [{ selector: 'pry-attribute-tooltip', template: "<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{
|
|
53
|
+
args: [{ selector: 'pry-attribute-tooltip', template: "<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n [title]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span [title]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\">{{\n data.item.oClass | translateId : { type: 'class', output: 'name' } | async\n }}</span>\n </h3>\n <ng-container *ngFor=\"let attribute of context.attributes\">\n <p [title]=\"getValue(attribute) | async\">\n <span>{{ attribute }}:</span> {{ getValue(attribute, 40) | async }}\n </p>\n </ng-container>\n</div>\n" }]
|
|
39
54
|
}], ctorParameters: function () { return [{ type: i1.TranslateIdPipe }]; } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLXRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbHRpcHMvYXR0cmlidXRlL2F0dHJpYnV0ZS10b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2x0aXBzL2F0dHJpYnV0ZS9hdHRyaWJ1dGUtdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBbUIsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQU0zQyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsb0JBQW9CO0lBQ2pFLFlBQW9CLGVBQWdDO1FBQ2xELEtBQUssRUFBRSxDQUFDO1FBRFUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRWxELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQWlCLEVBQUUsS0FBSyxHQUFHLElBQUk7UUFDdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDbkMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWixRQUFRLE9BQU8sS0FBSyxFQUFFO2dCQUNwQixLQUFLLFdBQVc7b0JBQ2QsT0FBTyxFQUFFLENBQUM7Z0JBQ1osS0FBSyxRQUFRO29CQUNYLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixLQUFLLFFBQVE7b0JBQ1gsT0FBTyxLQUFLLENBQUM7Z0JBQ2Y7b0JBQ0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDckMsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7YUFDOUU7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFpQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzlCLGlDQUFpQztZQUNqQyxRQUFRLFNBQVMsRUFBRTtnQkFDakIsS0FBSyxJQUFJO29CQUNQLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLEtBQUssUUFBUTtvQkFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUMvRCxJQUFJLEVBQUUsT0FBTzt3QkFDYixNQUFNLEVBQUUsTUFBTTtxQkFDZixDQUF1QixDQUFDO2dCQUMzQjtvQkFDRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDMUQ7U0FDRjthQUFNO1lBQ0wsNENBQTRDO1lBQzVDLE9BQU8sRUFBRSxDQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFvQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FDeEcsQ0FBQztTQUNIO0lBQ0gsQ0FBQzs4R0E1Q1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsb0ZDUnRDLHN6QkFtQkE7OzJGRFhhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VUb29sdGlwQ29tcG9uZW50LCBUcmFuc2xhdGVJZFBpcGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYXR0cmlidXRlLXRvb2x0aXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXR0cmlidXRlLXRvb2x0aXAuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZVRvb2x0aXBDb21wb25lbnQgZXh0ZW5kcyBCYXNlVG9vbHRpcENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlSWRQaXBlOiBUcmFuc2xhdGVJZFBpcGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY29udGV4dCA9IHRoaXMuY29udGV4dCA/PyB7IGF0dHJpYnV0ZXM6IFtdIH07XG4gIH1cblxuICBnZXRWYWx1ZShhdHRyaWJ1dGU6IHN0cmluZywgbGltaXQgPSA5OTk5KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWUoYXR0cmlidXRlKS5waXBlKFxuICAgICAgbWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQubGVuZ3RoID4gbGltaXQgPyBgJHtyZXN1bHQuc3Vic3RyaW5nKDAsIGxpbWl0KX0uLi5gIDogcmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBfZ2V0VmFsdWUoYXR0cmlidXRlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bWJlcj4ge1xuICAgIGlmICghdGhpcy5kYXRhLml0ZW0ucHJvcGVydGllcykge1xuICAgICAgLy8gVGhpcyBpcyBmb3IgUHJvdm9seS1saWtlIGl0ZW1zXG4gICAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkge1xuICAgICAgICBjYXNlICdpZCc6XG4gICAgICAgICAgcmV0dXJuIG9mKHRoaXMuZGF0YS5pdGVtW2F0dHJpYnV0ZV0pO1xuICAgICAgICBjYXNlICdvQ2xhc3MnOlxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZUlkUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRhLml0ZW1bYXR0cmlidXRlXSwge1xuICAgICAgICAgICAgdHlwZTogJ2NsYXNzJyxcbiAgICAgICAgICAgIG91dHB1dDogJ25hbWUnXG4gICAgICAgICAgfSkgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBvZih0aGlzLmRhdGEuaXRlbS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV0/LnZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyBpcyBmb3Igb3RoZXIgaXRlbXMsIGxpa2UgV01TRmVhdHVyZXNcbiAgICAgIHJldHVybiBvZihcbiAgICAgICAgdGhpcy5kYXRhLml0ZW0ucHJvcGVydGllcy5maW5kKChwcm9wOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0pID0+IHByb3Aua2V5ID09PSBhdHRyaWJ1dGUpPy52YWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtLXRvb2x0aXBfX2l0ZW1fX2NvbnRlbnRcIj5cbiAgPGgzIGNsYXNzPVwiYS1oMyAtYXR0cmlidXRlXCI+XG4gICAgPGltZ1xuICAgICAgW3NyY109XCJkYXRhLml0ZW0gfCB0cmFuc2xhdGVJdGVtVG9TeW1ib2wgfCBhc3luY1wiXG4gICAgICBbYWx0XT1cImRhdGEuaXRlbS5vQ2xhc3MgfCB0cmFuc2xhdGVJZCA6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jXCJcbiAgICAgIFt0aXRsZV09XCJkYXRhLml0ZW0ub0NsYXNzIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdjbGFzcycsIG91dHB1dDogJ25hbWUnIH0gfCBhc3luY1wiXG4gICAgICB3aWR0aD1cIjMyXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgLz5cbiAgICA8c3BhbiBbdGl0bGVdPVwiZGF0YS5pdGVtLm9DbGFzcyB8IHRyYW5zbGF0ZUlkIDogeyB0eXBlOiAnY2xhc3MnLCBvdXRwdXQ6ICduYW1lJyB9IHwgYXN5bmNcIj57e1xuICAgICAgZGF0YS5pdGVtLm9DbGFzcyB8IHRyYW5zbGF0ZUlkIDogeyB0eXBlOiAnY2xhc3MnLCBvdXRwdXQ6ICduYW1lJyB9IHwgYXN5bmNcbiAgICB9fTwvc3Bhbj5cbiAgPC9oMz5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXR0cmlidXRlIG9mIGNvbnRleHQuYXR0cmlidXRlc1wiPlxuICAgIDxwIFt0aXRsZV09XCJnZXRWYWx1ZShhdHRyaWJ1dGUpIHwgYXN5bmNcIj5cbiAgICAgIDxzcGFuPnt7IGF0dHJpYnV0ZSB9fTo8L3NwYW4+IHt7IGdldFZhbHVlKGF0dHJpYnV0ZSwgNDApIHwgYXN5bmMgfX1cbiAgICA8L3A+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|