@provoly/dashboard 0.18.5 → 0.18.6
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/dataset/style/_o-pry-dataset-card.scss +0 -1
- package/dataset/style/_o-pry-dataset-detail.scss +4 -0
- package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +3 -3
- package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +3 -3
- package/esm2022/dataset/components/dataset.component.mjs +3 -3
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/filters/date/date-filter.component.mjs +8 -4
- package/esm2022/filters/list/list-filter.component.mjs +4 -3
- package/esm2022/filters/number/number-filter.component.mjs +3 -3
- package/esm2022/filters/text/text-filter.component.mjs +3 -3
- package/esm2022/lib/core/store/search/search.effects.mjs +2 -2
- package/esm2022/lib/dashboard/filter/base-filter.component.mjs +4 -1
- package/esm2022/lib/dashboard/item-utils.mjs +1 -60
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +3 -4
- package/esm2022/presentation/components/presentation.component.mjs +1 -3
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +39 -38
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +12 -12
- package/esm2022/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.mjs +3 -3
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +262 -216
- package/fesm2022/provoly-dashboard-admin.mjs +2 -2
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +6 -6
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-date.mjs +7 -3
- package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs +3 -2
- package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-number.mjs +2 -2
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-text.mjs +2 -2
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +0 -2
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +377 -331
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +34 -90
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/filters/date/date-filter.component.d.ts +1 -0
- package/lib/dashboard/filter/base-filter.component.d.ts +4 -2
- package/lib/dashboard/item-utils.d.ts +0 -8
- package/lib/dashboard/store/dashboard.effects.d.ts +0 -3
- package/package.json +7 -7
- package/styles/components/_a-table.scss +1 -1
- package/styles/components/_m-filter.scss +23 -23
- package/styles/components/_m-form-label-field.scss +6 -0
- package/styles-theme/components-theme/_m-filter.theme.scss +19 -4
- package/widgets/widget-map/utils/widget-map.utils.d.ts +23 -17
|
@@ -21,10 +21,10 @@ export class TextFilterComponent extends BaseFilterComponent {
|
|
|
21
21
|
this.value$.next($event);
|
|
22
22
|
}
|
|
23
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: TextFilterComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: TextFilterComponent, selector: "pry-text-filter", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"filter\" class=\"m-filter\">\n <div class=\"m-filter__wrapper\">\n <div class=\"m-filter__input-wrapper\">\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <input\n class=\"m-filter__input\"\n [ngModel]=\"
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: TextFilterComponent, selector: "pry-text-filter", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"filter\" class=\"m-filter\">\n <div class=\"m-filter__wrapper\">\n <div class=\"m-filter__input-wrapper\">\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <input\n class=\"m-filter__input\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"valueChange($event)\"\n [id]=\"filter.name\"\n type=\"text\"\n />\n </div>\n <span\n *ngIf=\"!!_value\"\n class=\"m-filter__clear-wrapper m-filter__clear-wrapper--text\"\n (click)=\"setFilter('')\"\n [title]=\"'@pry.filters.clear' | i18n\"\n >\n <span class=\"m-filter__clear\">\u00D7</span>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </span>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: TextFilterComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
|
-
args: [{ selector: 'pry-text-filter', template: "<div *ngIf=\"filter\" class=\"m-filter\">\n <div class=\"m-filter__wrapper\">\n <div class=\"m-filter__input-wrapper\">\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <input\n class=\"m-filter__input\"\n [ngModel]=\"
|
|
28
|
+
args: [{ selector: 'pry-text-filter', template: "<div *ngIf=\"filter\" class=\"m-filter\">\n <div class=\"m-filter__wrapper\">\n <div class=\"m-filter__input-wrapper\">\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <input\n class=\"m-filter__input\"\n [ngModel]=\"_value\"\n (ngModelChange)=\"valueChange($event)\"\n [id]=\"filter.name\"\n type=\"text\"\n />\n </div>\n <span\n *ngIf=\"!!_value\"\n class=\"m-filter__clear-wrapper m-filter__clear-wrapper--text\"\n (click)=\"setFilter('')\"\n [title]=\"'@pry.filters.clear' | i18n\"\n >\n <span class=\"m-filter__clear\">\u00D7</span>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </span>\n </div>\n</div>\n" }]
|
|
29
29
|
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvZmlsdGVycy90ZXh0L3RleHQtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2ZpbHRlcnMvdGV4dC90ZXh0LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFNdEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG1CQUFtQjtJQUcxRCxZQUFZLEtBQVk7UUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSGYsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFzQixDQUFDO1FBSXpDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN4RyxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUF5QjtRQUNqQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBVztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQWpCVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4RUNWaEMsb3lCQXVCQTs7MkZEYmEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS10ZXh0LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWZpbHRlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEZpbHRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VGaWx0ZXJDb21wb25lbnQge1xuICB2YWx1ZSQgPSBuZXcgU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMudHlwZSA9ICd0ZXh0JztcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy52YWx1ZSQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5zZXRGaWx0ZXIodmFsdWUpKVxuICAgICk7XG4gIH1cblxuICBzZXRGaWx0ZXIodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHN1cGVyLnVwZGF0ZUZpbHRlcih2YWx1ZSk7XG4gIH1cblxuICB2YWx1ZUNoYW5nZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsdWUkLm5leHQoJGV2ZW50KTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImZpbHRlclwiIGNsYXNzPVwibS1maWx0ZXJcIj5cbiAgPGRpdiBjbGFzcz1cIm0tZmlsdGVyX193cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm0tZmlsdGVyX19pbnB1dC13cmFwcGVyXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIG0tZmlsdGVyX19sYWJlbFwiIGZvcj1cInt7IGZpbHRlci5uYW1lIH19XCI+e3sgZmlsdGVyLm5hbWUgfX0mbmJzcDs6Jm5ic3A7PC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cIm0tZmlsdGVyX19pbnB1dFwiXG4gICAgICAgIFtuZ01vZGVsXT1cIl92YWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbaWRdPVwiZmlsdGVyLm5hbWVcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cIiEhX3ZhbHVlXCJcbiAgICAgIGNsYXNzPVwibS1maWx0ZXJfX2NsZWFyLXdyYXBwZXIgbS1maWx0ZXJfX2NsZWFyLXdyYXBwZXItLXRleHRcIlxuICAgICAgKGNsaWNrKT1cInNldEZpbHRlcignJylcIlxuICAgICAgW3RpdGxlXT1cIidAcHJ5LmZpbHRlcnMuY2xlYXInIHwgaTE4blwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtLWZpbHRlcl9fY2xlYXJcIj7Dlzwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS50b29sYm94LmNsb3NlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -19,7 +19,7 @@ export class SearchEffects {
|
|
|
19
19
|
id: props.id,
|
|
20
20
|
params: this.searchService.getItemsSerializedParams(props.id, quickOrder)
|
|
21
21
|
})), catchError((error) => [SearchActions.searchFailure({ error, id: props.id })])))));
|
|
22
|
-
this.updateAggregatesInWidget$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.getDatasourceItems), filter((props) => props.id !== DEFAULT_NAMED_QUERY_ID && props.id !== EXPLORE_NAMED_QUERY_ID), tap((props) =>
|
|
22
|
+
this.updateAggregatesInWidget$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.getDatasourceItems), filter((props) => props.id !== DEFAULT_NAMED_QUERY_ID && props.id !== EXPLORE_NAMED_QUERY_ID), tap((props) => window.dispatchEvent(new CustomEvent('datasourceRefresh', { detail: props.id })))), { dispatch: false });
|
|
23
23
|
this.search$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.search), mergeMap((props) => this.searchService.search(props.payload).pipe(map((resultSet) => SearchActions.searchSuccess({ resultSet, id: props.id })), catchError((error) => [SearchActions.searchFailure({ error })])))));
|
|
24
24
|
this.searchSuccess$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.searchSuccess), map((action) => DashboardActions.updateResultSet({
|
|
25
25
|
id: action.id ?? DEFAULT_NAMED_QUERY_ID,
|
|
@@ -33,4 +33,4 @@ export class SearchEffects {
|
|
|
33
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SearchEffects, decorators: [{
|
|
34
34
|
type: Injectable
|
|
35
35
|
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.SearchService }, { type: i3.Store }]; } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFHbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQUlwRixNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQixRQUFpQixFQUFVLGFBQTRCLEVBQVUsS0FBWTtRQUE3RSxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBRWpHLGlCQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUN4QyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFN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O1lBQ3ZDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07U0FDdEIsQ0FBQyxDQUNILENBQ0YsQ0FDRixDQUFDO0lBekRrRyxDQUFDOzhHQUQxRixhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRhcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tb25vLWNsYXNzLm1vZGVsJztcbmltcG9ydCB7IEZ1bGxUZXh0U2VhcmNoUGF5bG9hZCwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbXVsdGktY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgU2VhcmNoQWN0aW9ucyB9IGZyb20gJy4vc2VhcmNoLmFjdGlvbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9OQU1FRF9RVUVSWV9JRCwgRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCB9IGZyb20gJy4vc2VhcmNoLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2guc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWFyY2hFZmZlY3RzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucywgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLCBwcml2YXRlIHN0b3JlOiBTdG9yZSkge31cblxuICBzZWFyY2hOYW1lZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMpLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJhbmspLCB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucXVpY2tPcmRlcikpLFxuICAgICAgZmlsdGVyKChbXywgcmFua10pID0+IHJhbmsgPT09IDApLFxuICAgICAgZmlsdGVyKChbcHJvcHMsIHJhbmtdKSA9PiBwcm9wcy5pZCAhPT0gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCAmJiBwcm9wcy5pZCAhPT0gRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCksXG4gICAgICBtZXJnZU1hcCgoW3Byb3BzLCByYW5rLCBxdWlja09yZGVyXSkgPT5cbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmdldEl0ZW1zKHByb3BzLmlkLCBxdWlja09yZGVyW3Byb3BzLmlkXSkucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3VsdFNldCkgPT5cbiAgICAgICAgICAgIFNlYXJjaEFjdGlvbnMuc2VhcmNoU3VjY2Vzcyh7XG4gICAgICAgICAgICAgIHJlc3VsdFNldCxcbiAgICAgICAgICAgICAgaWQ6IHByb3BzLmlkLFxuICAgICAgICAgICAgICBwYXJhbXM6IHRoaXMuc2VhcmNoU2VydmljZS5nZXRJdGVtc1NlcmlhbGl6ZWRQYXJhbXMocHJvcHMuaWQsIHF1aWNrT3JkZXIpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtTZWFyY2hBY3Rpb25zLnNlYXJjaEZhaWx1cmUoeyBlcnJvciwgaWQ6IHByb3BzLmlkIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVBZ2dyZWdhdGVzSW5XaWRnZXQkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyksXG4gICAgICAgIGZpbHRlcigocHJvcHMpID0+IHByb3BzLmlkICE9PSBERUZBVUxUX05BTUVEX1FVRVJZX0lEICYmIHByb3BzLmlkICE9PSBFWFBMT1JFX05BTUVEX1FVRVJZX0lEKSxcbiAgICAgICAgdGFwKChwcm9wcykgPT4gd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdkYXRhc291cmNlUmVmcmVzaCcsIHsgZGV0YWlsOiBwcm9wcy5pZCB9KSkpXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBzZWFyY2gkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuc2VhcmNoKSxcbiAgICAgIG1lcmdlTWFwKFxuICAgICAgICAocHJvcHM6IHsgcGF5bG9hZDogTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB8IE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIHwgRnVsbFRleHRTZWFyY2hQYXlsb2FkOyBpZD86IHN0cmluZyB9KSA9PlxuICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2gocHJvcHMucGF5bG9hZCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzdWx0U2V0KSA9PiBTZWFyY2hBY3Rpb25zLnNlYXJjaFN1Y2Nlc3MoeyByZXN1bHRTZXQsIGlkOiBwcm9wcy5pZCB9KSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW1NlYXJjaEFjdGlvbnMuc2VhcmNoRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHNlYXJjaFN1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuc2VhcmNoU3VjY2VzcyksXG4gICAgICBtYXAoKGFjdGlvbikgPT5cbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVSZXN1bHRTZXQoe1xuICAgICAgICAgIGlkOiBhY3Rpb24uaWQgPz8gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCxcbiAgICAgICAgICByZXN1bHRTZXQ6IGFjdGlvbi5yZXN1bHRTZXQsXG4gICAgICAgICAgcGFyYW1zOiBhY3Rpb24ucGFyYW1zXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19
|
|
@@ -9,6 +9,9 @@ export class BaseFilterComponent extends SubscriptionnerDirective {
|
|
|
9
9
|
this.store = store;
|
|
10
10
|
this.type = 'base';
|
|
11
11
|
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this._value = this.filter?.value;
|
|
14
|
+
}
|
|
12
15
|
updateFilter(value) {
|
|
13
16
|
this._value = value;
|
|
14
17
|
}
|
|
@@ -32,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
32
35
|
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { filter: [{
|
|
33
36
|
type: Input
|
|
34
37
|
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9maWx0ZXIvYmFzZS1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFHOUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHdCQUF3QjtJQUsvRCxZQUFzQixLQUFZO1FBQ2hDLEtBQUssRUFBRSxDQUFDO1FBRFksVUFBSyxHQUFMLEtBQUssQ0FBTztRQUVoQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDakMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxVQUFVO29CQUNsQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRTtvQkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNO2lCQUNuQixDQUFDLENBQ0gsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzhHQTlCVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw0R0FEb0IsRUFBRTs7MkZBQ3pDLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzRGQUU3QyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRBY3Rpb25zIH0gZnJvbSAnLi4vc3RvcmUvZGFzaGJvYXJkLmFjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6ICdwcnktYmFzZS1maWx0ZXInLCB0ZW1wbGF0ZTogJycgfSlcbmV4cG9ydCBjbGFzcyBCYXNlRmlsdGVyQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZmlsdGVyPzogRmlsdGVyO1xuICB0eXBlITogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3ZhbHVlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHN0b3JlOiBTdG9yZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy50eXBlID0gJ2Jhc2UnO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB0aGlzLmZpbHRlcj8udmFsdWU7XG4gIH1cblxuICB1cGRhdGVGaWx0ZXIodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICB2YWxpZGF0ZUZpbHRlcnMoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyKSB7XG4gICAgICB0aGlzLmZpbHRlci5hdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlRmlsdGVyVmFsdWUoe1xuICAgICAgICAgICAgZGF0YXNvdXJjZUlkOiBhdHRyaWJ1dGUuZGF0YXNvdXJjZSxcbiAgICAgICAgICAgIGlkOiB0aGlzLmZpbHRlcj8uaWQgPz8gJycsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5fdmFsdWVcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,64 +1,5 @@
|
|
|
1
|
-
import { GeoJSON } from 'ol/format';
|
|
2
|
-
import { fromLonLat } from 'ol/proj';
|
|
3
|
-
import { FieldType } from '../core/store/field/field.interface';
|
|
4
1
|
const hiddenFieldText = '*********';
|
|
5
2
|
export class ItemUtils {
|
|
6
|
-
static readGeometry(item, type, attribute) {
|
|
7
|
-
if (!attribute || !item.attributes[attribute.name]) {
|
|
8
|
-
// @ts-ignore
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
let value = item.attributes[attribute.name];
|
|
12
|
-
if (value.type === 'MULTI') {
|
|
13
|
-
value = value.values[0];
|
|
14
|
-
}
|
|
15
|
-
return new GeoJSON().readGeometry(this.projectGeometry(value.value));
|
|
16
|
-
}
|
|
17
|
-
static projectGeometry(geometry) {
|
|
18
|
-
return {
|
|
19
|
-
...geometry,
|
|
20
|
-
coordinates: typeof geometry.coordinates[0] === 'number'
|
|
21
|
-
? fromLonLat(geometry.coordinates)
|
|
22
|
-
: geometry.coordinates.map((sub) => this.projectGeometry({ type: '', coordinates: sub }).coordinates)
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
static readLocations(item, type) {
|
|
26
|
-
const points = [];
|
|
27
|
-
Object.entries(item.attributes).forEach(([key, value]) => {
|
|
28
|
-
if (value.type === 'VALUE') {
|
|
29
|
-
this.extractGeometries(value, points, type);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
value.values.forEach((value) => {
|
|
33
|
-
this.extractGeometries(value, points, type);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
return points;
|
|
38
|
-
}
|
|
39
|
-
static extractGeometries(value, points, type) {
|
|
40
|
-
const valueSimple = value.value;
|
|
41
|
-
if (typeof valueSimple !== 'string' && typeof valueSimple !== 'number') {
|
|
42
|
-
if (type === 'point' && valueSimple.type === FieldType.POINT) {
|
|
43
|
-
points.push(valueSimple.coordinates);
|
|
44
|
-
}
|
|
45
|
-
if (type === 'point' && valueSimple.type === FieldType.MULTIPOINT) {
|
|
46
|
-
points.push(...valueSimple.coordinates);
|
|
47
|
-
}
|
|
48
|
-
if (type === 'line' && valueSimple.type === FieldType.LINE) {
|
|
49
|
-
points.push(valueSimple.coordinates);
|
|
50
|
-
}
|
|
51
|
-
if (type === 'line' && valueSimple.type === FieldType.MULTILINE) {
|
|
52
|
-
points.push(...valueSimple.coordinates);
|
|
53
|
-
}
|
|
54
|
-
if (type === 'polygon' && valueSimple.type === FieldType.POLYGON) {
|
|
55
|
-
points.push(valueSimple.coordinates);
|
|
56
|
-
}
|
|
57
|
-
if (type === 'polygon' && valueSimple.type === FieldType.MULTIPOLYGON) {
|
|
58
|
-
points.push(...valueSimple.coordinates);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
3
|
static getAttributeValue(item, attribute) {
|
|
63
4
|
if (!attribute) {
|
|
64
5
|
return undefined;
|
|
@@ -164,4 +105,4 @@ export class ItemUtils {
|
|
|
164
105
|
return Array.isArray(a) && Array.isArray(b) && a.length === b.length && a.every((val, index) => val === b[index]);
|
|
165
106
|
}
|
|
166
107
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvaXRlbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJckMsT0FBTyxFQUFTLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBTXZFLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUVwQyxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMsWUFBWSxDQUNqQixJQUFVLEVBQ1YsSUFBTyxFQUNQLFNBQWdDO1FBRWhDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsRCxhQUFhO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDMUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLElBQUksT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQVksQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsUUFHdEI7UUFDQyxPQUFPO1lBQ0wsR0FBRyxRQUFRO1lBQ1gsV0FBVyxFQUNULE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO2dCQUN6QyxDQUFDLENBQUMs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NUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFRLEVBQUUsQ0FBUTtRQUN6QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW9KU09OIH0gZnJvbSAnb2wvZm9ybWF0JztcbmltcG9ydCBHZW9tZXRyeSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCB7IGZyb21Mb25MYXQgfSBmcm9tICdvbC9wcm9qJztcbmltcG9ydCB7IEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUsIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBJdGVtLCBWYWx1ZVR5cGUgfSBmcm9tICcuLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldCB9IGZyb20gJy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlLCBDbGFzcyB9IGZyb20gJy4uL2NvcmUvc3RvcmUvY2xhc3MvY2xhc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkLCBGaWVsZFR5cGUgfSBmcm9tICcuLi9jb3JlL3N0b3JlL2ZpZWxkL2ZpZWxkLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2xGZWF0dXJlIHtcbiAgZ2V0KGtleTogc3RyaW5nKTogYW55O1xufVxuXG5jb25zdCBoaWRkZW5GaWVsZFRleHQgPSAnKioqKioqKioqJztcblxuZXhwb3J0IGNsYXNzIEl0ZW1VdGlscyB7XG4gIHN0YXRpYyByZWFkR2VvbWV0cnk8VCBleHRlbmRzICdwb2ludCcgfCAnbGluZScgfCAnbXVsdGktbGluZScgfCAncG9seWdvbicgfCAnbXVsdGktcG9seWdvbic+KFxuICAgIGl0ZW06IEl0ZW0sXG4gICAgdHlwZTogVCxcbiAgICBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHVuZGVmaW5lZFxuICApOiBHZW9tZXRyeSB7XG4gICAgaWYgKCFhdHRyaWJ1dGUgfHwgIWl0ZW0uYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV0pIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IGl0ZW0uYXR0cmlidXRlc1thdHRyaWJ1dGUubmFtZV07XG4gICAgaWYgKHZhbHVlLnR5cGUgPT09ICdNVUxUSScpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudmFsdWVzWzBdO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEdlb0pTT04oKS5yZWFkR2VvbWV0cnkodGhpcy5wcm9qZWN0R2VvbWV0cnkodmFsdWUudmFsdWUgYXMgYW55KSk7XG4gIH1cblxuICBzdGF0aWMgcHJvamVjdEdlb21ldHJ5KGdlb21ldHJ5OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdIHwgW251bWJlciwgbnVtYmVyXVtdIHwgW251bWJlciwgbnVtYmVyXVtdW10gfCBbbnVtYmVyLCBudW1iZXJdW11bXVtdO1xuICB9KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ2VvbWV0cnksXG4gICAgICBjb29yZGluYXRlczpcbiAgICAgICAgdHlwZW9mIGdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdID09PSAnbnVtYmVyJ1xuICAgICAgICAgID8gZnJvbUxvbkxhdChnZW9tZXRyeS5jb29yZGluYXRlcyBhcyBbbnVtYmVyLCBudW1iZXJdKVxuICAgICAgICAgIDogKGdlb21ldHJ5LmNvb3JkaW5hdGVzIGFzIFtudW1iZXIsIG51bWJlcl1bXSB8IFtudW1iZXIsIG51bWJlcl1bXVtdIHwgW251bWJlciwgbnVtYmVyXVtdW11bXSkubWFwKFxuICAgICAgICAgICAgICAoc3ViKSA9PiB0aGlzLnByb2plY3RHZW9tZXRyeSh7IHR5cGU6ICcnLCBjb29yZGluYXRlczogc3ViIH0pLmNvb3JkaW5hdGVzXG4gICAgICAgICAgICApXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyByZWFkTG9jYXRpb25zPFQgZXh0ZW5kcyAncG9pbnQnIHwgJ2xpbmUnIHwgJ3BvbHlnb24nPihcbiAgICBpdGVtOiBJdGVtLFxuICAgIHR5cGU6IFRcbiAgKTogVCBleHRlbmRzICdwb2ludCcgPyBbbnVtYmVyLCBudW1iZXJdW10gOiBbbnVtYmVyLCBudW1iZXJdW11bXSB7XG4gICAgY29uc3QgcG9pbnRzID0gW10gYXMgYW55O1xuICAgIE9iamVjdC5lbnRyaWVzKGl0ZW0uYXR0cmlidXRlcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAodmFsdWUudHlwZSA9PT0gJ1ZBTFVFJykge1xuICAgICAgICB0aGlzLmV4dHJhY3RHZW9tZXRyaWVzKHZhbHVlLCBwb2ludHMsIHR5cGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUudmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5leHRyYWN0R2VvbWV0cmllcyh2YWx1ZSwgcG9pbnRzLCB0eXBlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHBvaW50cztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGV4dHJhY3RHZW9tZXRyaWVzKHZhbHVlOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSwgcG9pbnRzOiBhbnlbXSwgdHlwZTogJ3BvaW50JyB8ICdsaW5lJyB8ICdwb2x5Z29uJykge1xuICAgIGNvbnN0IHZhbHVlU2ltcGxlID0gdmFsdWUudmFsdWU7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZVNpbXBsZSAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlU2ltcGxlICE9PSAnbnVtYmVyJykge1xuICAgICAgaWYgKHR5cGUgPT09ICdwb2ludCcgJiYgdmFsdWVTaW1wbGUudHlwZSA9PT0gRmllbGRUeXBlLlBPSU5UKSB7XG4gICAgICAgIHBvaW50cy5wdXNoKHZhbHVlU2ltcGxlLmNvb3JkaW5hdGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlID09PSAncG9pbnQnICYmIHZhbHVlU2ltcGxlLnR5cGUgPT09IEZpZWxkVHlwZS5NVUxUSVBPSU5UKSB7XG4gICAgICAgIHBvaW50cy5wdXNoKC4uLnZhbHVlU2ltcGxlLmNvb3JkaW5hdGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlID09PSAnbGluZScgJiYgdmFsdWVTaW1wbGUudHlwZSA9PT0gRmllbGRUeXBlLkxJTkUpIHtcbiAgICAgICAgcG9pbnRzLnB1c2godmFsdWVTaW1wbGUuY29vcmRpbmF0ZXMpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09ICdsaW5lJyAmJiB2YWx1ZVNpbXBsZS50eXBlID09PSBGaWVsZFR5cGUuTVVMVElMSU5FKSB7XG4gICAgICAgIHBvaW50cy5wdXNoKC4uLnZhbHVlU2ltcGxlLmNvb3JkaW5hdGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlID09PSAncG9seWdvbicgJiYgdmFsdWVTaW1wbGUudHlwZSA9PT0gRmllbGRUeXBlLlBPTFlHT04pIHtcbiAgICAgICAgcG9pbnRzLnB1c2godmFsdWVTaW1wbGUuY29vcmRpbmF0ZXMpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09ICdwb2x5Z29uJyAmJiB2YWx1ZVNpbXBsZS50eXBlID09PSBGaWVsZFR5cGUuTVVMVElQT0xZR09OKSB7XG4gICAgICAgIHBvaW50cy5wdXNoKC4uLnZhbHVlU2ltcGxlLmNvb3JkaW5hdGVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0QXR0cmlidXRlVmFsdWUoXG4gICAgaXRlbTogSXRlbSB8IE9sRmVhdHVyZSxcbiAgICBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSB8IEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10ge1xuICAgIGlmICghYXR0cmlidXRlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYXR0cmlidXRlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuICEhaXRlbS5nZXQgPyBpdGVtLmdldChhdHRyaWJ1dGUpIDogaXRlbS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG4gICAgfVxuICAgIGlmIChhdHRyaWJ1dGUubXVsdGlWYWx1ZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChcbiAgICAgICAgICAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ29DbGFzcycpXG4gICAgICAgICAgICA/IChpdGVtIGFzIE9sRmVhdHVyZSkuZ2V0KCdhdHRyaWJ1dGVzJylbYXR0cmlidXRlLm5hbWVdID8/IHt9XG4gICAgICAgICAgICA6ICgoaXRlbSBhcyBJdGVtKS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKSkgPz8ge31cbiAgICAgICAgKS52YWx1ZXMgPz8gW11cbiAgICAgIClcbiAgICAgICAgLm1hcCgodjogQXR0cmlidXRlU2ltcGxlVmFsdWUpID0+ICh7IC4uLnYsIHZhbHVlOiB2LnZpc2libGUgPyB2LnZhbHVlIDogaGlkZGVuRmllbGRUZXh0IH0pKVxuICAgICAgICAuc29ydChJdGVtVXRpbHMuc29ydEF0dHJpYnV0ZXMpO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgIWl0ZW0uaGFzT3duUHJvcGVydHkoJ29DbGFzcycpXG4gICAgICAgID8gKGl0ZW0gYXMgT2xGZWF0dXJlKS5nZXQoJ2F0dHJpYnV0ZXMnKVthdHRyaWJ1dGUubmFtZV1cbiAgICAgICAgOiAoaXRlbSBhcyBJdGVtKS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS5uYW1lXVxuICAgICkgYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gIH1cblxuICBzdGF0aWMgZ2V0QXR0cmlidXRlQ2FsY3VsYXRlZFZhbHVlKGl0ZW06IEl0ZW0sIGF0dHJpYnV0ZTogQXR0cmlidXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogVmFsdWVUeXBlIHwgVmFsdWVUeXBlW10ge1xuICAgIGlmICghYXR0cmlidXRlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgVmFsdWVUeXBlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGF0dHJpYnV0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBpdGVtW2F0dHJpYnV0ZV07XG4gICAgfVxuICAgIGlmIChhdHRyaWJ1dGUubXVsdGlWYWx1ZWQpIHtcbiAgICAgIHJldHVybiAoSXRlbVV0aWxzLmdldEF0dHJpYnV0ZVZhbHVlKGl0ZW0sIGF0dHJpYnV0ZSkgYXMgQXR0cmlidXRlU2ltcGxlVmFsdWVbXSkubWFwKCh2KSA9PiB2LnZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlVmFsdWUoaXRlbSwgYXR0cmlidXRlKSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZTtcbiAgICByZXR1cm4gdmFsdWUgPyAodmFsdWUudmlzaWJsZSA/IHZhbHVlLnZhbHVlIDogaGlkZGVuRmllbGRUZXh0KSA6ICh1bmRlZmluZWQgYXMgdW5rbm93biBhcyBWYWx1ZVR5cGUpO1xuICB9XG5cbiAgc3RhdGljIHNvcnRBdHRyaWJ1dGVzKGE6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBiOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSk6IG51bWJlciB7XG4gICAgY29uc3QgY29tcGFyZVZpc2libGUgPSAoYi52aXNpYmxlID8gMSA6IC0xKSAtIChhLnZpc2libGUgPyAxIDogLTEpO1xuICAgIGlmIChjb21wYXJlVmlzaWJsZSAhPT0gMCkge1xuICAgICAgcmV0dXJuIGNvbXBhcmVWaXNpYmxlO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgKGI/Lm1ldGFkYXRhID8gKGI/Lm1ldGFkYXRhWydfbW9kaWZpY2F0aW9uX2RhdGUnXSBhcyBudW1iZXIpID8/IDAgOiAwKSAtXG4gICAgICAoYT8ubWV0YWRhdGEgPyAoYT8ubWV0YWRhdGFbJ19tb2RpZmljYXRpb25fZGF0ZSddIGFzIG51bWJlcikgPz8gMCA6IDApXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBwZXJ0aW5lbnRWYWx1ZShpdGVtczogSXRlbVtdLCBhdHRyOiBBdHRyaWJ1dGUpIHtcbiAgICByZXR1cm4gaXRlbXNcbiAgICAgIC5tYXAoKGl0ZW0pID0+IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVDYWxjdWxhdGVkVmFsdWUoaXRlbSwgYXR0cikpXG4gICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJylcbiAgICAgIC5tYXAoKHZhbHVlKSA9PiB2YWx1ZSBhcyBudW1iZXIpO1xuICB9XG5cbiAgc3RhdGljIGlzTG9jYXRpb24odHVwbGU6IGFueVtdKSB7XG4gICAgcmV0dXJuICEhdHVwbGVbMF0gJiYgISF0dXBsZVsxXSAmJiB0eXBlb2YgdHVwbGVbMF0gPT09ICdudW1iZXInICYmIHR5cGVvZiB0dXBsZVsxXSA9PT0gJ251bWJlcic7XG4gIH1cblxuICBzdGF0aWMgZ2V0QXR0cmlidXRlc0Zyb21BdmFpbGFiaWxpdHlJblJlc3VsdFNldChyZXN1bHRTZXQ6IFJlc3VsdFNldCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5uZXcgU2V0KFxuICAgICAgICBPYmplY3Qua2V5cyhyZXN1bHRTZXQ/Lml0ZW1zIHx8IHt9KVxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+XG4gICAgICAgICAgICByZXN1bHRTZXQuaXRlbXNbY2xhc3NJZF0ubWFwKChpdGVtKSA9PiBbLi4uT2JqZWN0LmtleXMoaXRlbSksIC4uLk9iamVjdC5rZXlzKGl0ZW0uYXR0cmlidXRlcyldKVxuICAgICAgICAgIClcbiAgICAgICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBbLi4ucHJldiwgLi4uY3Vycl0sIFtdKVxuICAgICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IFsuLi5wcmV2LCAuLi5jdXJyXSwgW10pXG4gICAgICAgICAgLmZpbHRlcigocHJvcCkgPT4gcHJvcCAhPT0gJ2F0dHJpYnV0ZXMnKVxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgZmluZEluUmVzdWx0U2V0KHJlc3VsdFNldDogUmVzdWx0U2V0LCBpZDogc3RyaW5nKTogSXRlbSB7XG4gICAgcmV0dXJuIChcbiAgICAgIE9iamVjdC5rZXlzKHJlc3VsdFNldC5pdGVtcylcbiAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gcmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaWQpKVxuICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKSBhcyBJdGVtW11cbiAgICApLmZpbmQoKGl0ZW0pID0+ICEhaXRlbSkgYXMgSXRlbTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRGaWVsZHNGcm9tQXZhaWxhYmlsaXR5SW5SZXN1bHRTZXQocmVzdWx0U2V0OiBSZXN1bHRTZXQsIGNsYXNzZXM6IENsYXNzW10sIGZpZWxkczogRmllbGRbXSk6IEZpZWxkW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5uZXcgU2V0KFxuICAgICAgICBPYmplY3Qua2V5cyhyZXN1bHRTZXQ/Lml0ZW1zIHx8IHt9KVxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IGNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSBjbGFzc0lkKSBhcyBDbGFzcylcbiAgICAgICAgICAuZmlsdGVyKChvQ2xhc3MpID0+IG9DbGFzcyAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG9DbGFzczogQ2xhc3MpID0+XG4gICAgICAgICAgICBmaWVsZHNcbiAgICAgICAgICAgICAgLmZpbHRlcigoZikgPT4gb0NsYXNzLmF0dHJpYnV0ZXMubWFwKChhdHRyKSA9PiBhdHRyLmZpZWxkKS5pbmNsdWRlcyhmLmlkKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZikgPT4gZiAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIClcbiAgICAgICAgICAucmVkdWNlKChwOiBGaWVsZFtdLCBjOiBGaWVsZFtdKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgaGFzTG9jYXRpb24oY2xheno6IENsYXNzKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgaXNWYWxpZE9iamVjdChvYmplY3Q6IEl0ZW0pIHtcbiAgICByZXR1cm4gb2JqZWN0Lm9DbGFzcyAmJiBvYmplY3Qub0NsYXNzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBzdGF0aWMgZ2V0QXR0cmlidXRlc0Zyb21ScyhcbiAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICBjbGFzc2VzOiBDbGFzc1tdLFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBkZWZzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9XG4gICk6IEF0dHJpYnV0ZVtdIHtcbiAgICBjb25zdCBkZWZpbml0aW9ucyA9IGRlZnMgPz8ge307XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIE9iamVjdC5rZXlzKHJlc3VsdFNldD8uaXRlbXMgfHwge30pXG4gICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gY2xhc3Nlcy5maW5kKChjbCkgPT4gY2wuaWQgPT09IGNsYXNzSWQpIGFzIENsYXNzKVxuICAgICAgICAgIC5maWx0ZXIoKG9DbGFzcykgPT4gb0NsYXNzICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgLm1hcCgob0NsYXNzKSA9PlxuICAgICAgICAgICAgb0NsYXNzLmF0dHJpYnV0ZXMuZmlsdGVyKChhdHRyKSA9PlxuICAgICAgICAgICAgICBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlc0RlZmluaXRpb25Gb3JDbGFzcyhvQ2xhc3MsIGRlZmluaXRpb25zKS5pbmNsdWRlcyhhdHRyLm5hbWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICAgICAgLmZpbHRlcigoYXR0cjogQXR0cmlidXRlKSA9PiAhIWZpZWxkcy5maW5kKChmKSA9PiBmLmlkID09PSBhdHRyLmZpZWxkKSlcbiAgICAgIClcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZXNEZWZpbml0aW9uRm9yQ2xhc3MoY2xheno6IENsYXNzLCBkZWZzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0pIHtcbiAgICByZXR1cm4gZGVmc1tjbGF6ei5pZCA/PyAnJ10gPz8gKGNsYXp6ID8/IHsgYXR0cmlidXRlczogW10gfSkuYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGF0dHIubmFtZSk7XG4gIH1cblxuICBzdGF0aWMgZW5zdXJlSXRlbUlkSGFzQ29ycmVjdEZvcm1hdChpdGVtOiBJdGVtKTogSXRlbSB7XG4gICAgaWYgKCFpdGVtLmlkLmluY2x1ZGVzKCdAJykpIHtcbiAgICAgIGl0ZW0uaWQgPSBgJHtpdGVtLm9DbGFzc31AJHtpdGVtLmlkfWA7XG4gICAgfVxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgc3RhdGljIHNpbXBsZUFycmF5RXF1YWxzKGE6IGFueVtdLCBiOiBhbnlbXSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoKHZhbCwgaW5kZXgpID0+IHZhbCA9PT0gYltpbmRleF0pO1xuICB9XG59XG4iXX0=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvaXRlbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFDLGlCQUFpQixDQUN0QixJQUFzQixFQUN0QixTQUF5QztRQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxTQUE0QyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDakMsYUFBYTtZQUNiLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEU7UUFDRCxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDekIsT0FBTyxDQUNMLENBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO2dCQUM3QixDQUFDLENBQUUsSUFBa0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQzdELENBQUMsQ0FBRyxJQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQTRCLENBQUMsSUFBSSxFQUFFLENBQ2pGLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FDZjtpQkFDRSxHQUFHLENBQUMsQ0FBQyxDQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMs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Q0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzFFO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsK0JBQStCLENBQUMsS0FBWSxFQUFFLElBQWlDO1FBQ3BGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVELE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxJQUFVO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDdkM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBUSxFQUFFLENBQVE7UUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlTXVsdGlwbGVWYWx1ZSwgQXR0cmlidXRlU2ltcGxlVmFsdWUsIEl0ZW0sIFZhbHVlVHlwZSB9IGZyb20gJy4uL2NvcmUvbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0U2V0IH0gZnJvbSAnLi4vY29yZS9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIENsYXNzIH0gZnJvbSAnLi4vY29yZS9zdG9yZS9jbGFzcy9jbGFzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi9jb3JlL3N0b3JlL2ZpZWxkL2ZpZWxkLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2xGZWF0dXJlIHtcbiAgZ2V0KGtleTogc3RyaW5nKTogYW55O1xufVxuXG5jb25zdCBoaWRkZW5GaWVsZFRleHQgPSAnKioqKioqKioqJztcblxuZXhwb3J0IGNsYXNzIEl0ZW1VdGlscyB7XG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVWYWx1ZShcbiAgICBpdGVtOiBJdGVtIHwgT2xGZWF0dXJlLFxuICAgIGF0dHJpYnV0ZTogQXR0cmlidXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlIHwgQXR0cmlidXRlU2ltcGxlVmFsdWVbXSB7XG4gICAgaWYgKCFhdHRyaWJ1dGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gISFpdGVtLmdldCA/IGl0ZW0uZ2V0KGF0dHJpYnV0ZSkgOiBpdGVtLmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcbiAgICB9XG4gICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKFxuICAgICAgICAgICghaXRlbS5oYXNPd25Qcm9wZXJ0eSgnb0NsYXNzJylcbiAgICAgICAgICAgID8gKGl0ZW0gYXMgT2xGZWF0dXJlKS5nZXQoJ2F0dHJpYnV0ZXMnKVthdHRyaWJ1dGUubmFtZV0gPz8ge31cbiAgICAgICAgICAgIDogKChpdGVtIGFzIEl0ZW0pLmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpKSA/PyB7fVxuICAgICAgICApLnZhbHVlcyA/PyBbXVxuICAgICAgKVxuICAgICAgICAubWFwKCh2OiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSkgPT4gKHsgLi4udiwgdmFsdWU6IHYudmlzaWJsZSA/IHYudmFsdWUgOiBoaWRkZW5GaWVsZFRleHQgfSkpXG4gICAgICAgIC5zb3J0KEl0ZW1VdGlscy5zb3J0QXR0cmlidXRlcyk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAhaXRlbS5oYXNPd25Qcm9wZXJ0eSgnb0NsYXNzJylcbiAgICAgICAgPyAoaXRlbSBhcyBPbEZlYXR1cmUpLmdldCgnYXR0cmlidXRlcycpW2F0dHJpYnV0ZS5uYW1lXVxuICAgICAgICA6IChpdGVtIGFzIEl0ZW0pLmF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdXG4gICAgKSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVDYWxjdWxhdGVkVmFsdWUoaXRlbTogSXRlbSwgYXR0cmlidXRlOiBBdHRyaWJ1dGUgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBWYWx1ZVR5cGUgfCBWYWx1ZVR5cGVbXSB7XG4gICAgaWYgKCFhdHRyaWJ1dGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBWYWx1ZVR5cGU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYXR0cmlidXRlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuIGl0ZW1bYXR0cmlidXRlXTtcbiAgICB9XG4gICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlZCkge1xuICAgICAgcmV0dXJuIChJdGVtVXRpbHMuZ2V0QXR0cmlidXRlVmFsdWUoaXRlbSwgYXR0cmlidXRlKSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZVtdKS5tYXAoKHYpID0+IHYudmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVWYWx1ZShpdGVtLCBhdHRyaWJ1dGUpIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlO1xuICAgIHJldHVybiB2YWx1ZSA/ICh2YWx1ZS52aXNpYmxlID8gdmFsdWUudmFsdWUgOiBoaWRkZW5GaWVsZFRleHQpIDogKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFZhbHVlVHlwZSk7XG4gIH1cblxuICBzdGF0aWMgc29ydEF0dHJpYnV0ZXMoYTogQXR0cmlidXRlU2ltcGxlVmFsdWUsIGI6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wYXJlVmlzaWJsZSA9IChiLnZpc2libGUgPyAxIDogLTEpIC0gKGEudmlzaWJsZSA/IDEgOiAtMSk7XG4gICAgaWYgKGNvbXBhcmVWaXNpYmxlICE9PSAwKSB7XG4gICAgICByZXR1cm4gY29tcGFyZVZpc2libGU7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAoYj8ubWV0YWRhdGEgPyAoYj8ubWV0YWRhdGFbJ19tb2RpZmljYXRpb25fZGF0ZSddIGFzIG51bWJlcikgPz8gMCA6IDApIC1cbiAgICAgIChhPy5tZXRhZGF0YSA/IChhPy5tZXRhZGF0YVsnX21vZGlmaWNhdGlvbl9kYXRlJ10gYXMgbnVtYmVyKSA/PyAwIDogMClcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIHBlcnRpbmVudFZhbHVlKGl0ZW1zOiBJdGVtW10sIGF0dHI6IEF0dHJpYnV0ZSkge1xuICAgIHJldHVybiBpdGVtc1xuICAgICAgLm1hcCgoaXRlbSkgPT4gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZUNhbGN1bGF0ZWRWYWx1ZShpdGVtLCBhdHRyKSlcbiAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKVxuICAgICAgLm1hcCgodmFsdWUpID0+IHZhbHVlIGFzIG51bWJlcik7XG4gIH1cblxuICBzdGF0aWMgaXNMb2NhdGlvbih0dXBsZTogYW55W10pIHtcbiAgICByZXR1cm4gISF0dXBsZVswXSAmJiAhIXR1cGxlWzFdICYmIHR5cGVvZiB0dXBsZVswXSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHR1cGxlWzFdID09PSAnbnVtYmVyJztcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRnJvbUF2YWlsYWJpbGl0eUluUmVzdWx0U2V0KHJlc3VsdFNldDogUmVzdWx0U2V0KSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIE9iamVjdC5rZXlzKHJlc3VsdFNldD8uaXRlbXMgfHwge30pXG4gICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT5cbiAgICAgICAgICAgIHJlc3VsdFNldC5pdGVtc1tjbGFzc0lkXS5tYXAoKGl0ZW0pID0+IFsuLi5PYmplY3Qua2V5cyhpdGVtKSwgLi4uT2JqZWN0LmtleXMoaXRlbS5hdHRyaWJ1dGVzKV0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IFsuLi5wcmV2LCAuLi5jdXJyXSwgW10pXG4gICAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcbiAgICAgICAgICAuZmlsdGVyKChwcm9wKSA9PiBwcm9wICE9PSAnYXR0cmlidXRlcycpXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBmaW5kSW5SZXN1bHRTZXQocmVzdWx0U2V0OiBSZXN1bHRTZXQsIGlkOiBzdHJpbmcpOiBJdGVtIHtcbiAgICByZXR1cm4gKFxuICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Lml0ZW1zKVxuICAgICAgICAubWFwKChjbGFzc0lkKSA9PiByZXN1bHRTZXQuaXRlbXNbY2xhc3NJZF0uZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlkID09PSBpZCkpXG4gICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pIGFzIEl0ZW1bXVxuICAgICkuZmluZCgoaXRlbSkgPT4gISFpdGVtKSBhcyBJdGVtO1xuICB9XG5cbiAgc3RhdGljIGdldEZpZWxkc0Zyb21BdmFpbGFiaWxpdHlJblJlc3VsdFNldChyZXN1bHRTZXQ6IFJlc3VsdFNldCwgY2xhc3NlczogQ2xhc3NbXSwgZmllbGRzOiBGaWVsZFtdKTogRmllbGRbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIE9iamVjdC5rZXlzKHJlc3VsdFNldD8uaXRlbXMgfHwge30pXG4gICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gY2xhc3Nlcy5maW5kKChjbCkgPT4gY2wuaWQgPT09IGNsYXNzSWQpIGFzIENsYXNzKVxuICAgICAgICAgIC5maWx0ZXIoKG9DbGFzcykgPT4gb0NsYXNzICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgLm1hcCgob0NsYXNzOiBDbGFzcykgPT5cbiAgICAgICAgICAgIGZpZWxkc1xuICAgICAgICAgICAgICAuZmlsdGVyKChmKSA9PiBvQ2xhc3MuYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGF0dHIuZmllbGQpLmluY2x1ZGVzKGYuaWQpKVxuICAgICAgICAgICAgICAuZmlsdGVyKChmKSA9PiBmICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5yZWR1Y2UoKHA6IEZpZWxkW10sIGM6IEZpZWxkW10pID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBoYXNMb2NhdGlvbihjbGF6ejogQ2xhc3MpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkT2JqZWN0KG9iamVjdDogSXRlbSkge1xuICAgIHJldHVybiBvYmplY3Qub0NsYXNzICYmIG9iamVjdC5vQ2xhc3MubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRnJvbVJzKFxuICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgIGNsYXNzZXM6IENsYXNzW10sXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGRlZnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH1cbiAgKTogQXR0cmlidXRlW10ge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZGVmcyA/PyB7fTtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Py5pdGVtcyB8fCB7fSlcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PiBjbGFzc2VzLmZpbmQoKGNsKSA9PiBjbC5pZCA9PT0gY2xhc3NJZCkgYXMgQ2xhc3MpXG4gICAgICAgICAgLmZpbHRlcigob0NsYXNzKSA9PiBvQ2xhc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChvQ2xhc3MpID0+XG4gICAgICAgICAgICBvQ2xhc3MuYXR0cmlidXRlcy5maWx0ZXIoKGF0dHIpID0+XG4gICAgICAgICAgICAgIEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKG9DbGFzcywgZGVmaW5pdGlvbnMpLmluY2x1ZGVzKGF0dHIubmFtZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAgICAgICAuZmlsdGVyKChhdHRyOiBBdHRyaWJ1dGUpID0+ICEhZmllbGRzLmZpbmQoKGYpID0+IGYuaWQgPT09IGF0dHIuZmllbGQpKVxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgZ2V0QXR0cmlidXRlc0RlZmluaXRpb25Gb3JDbGFzcyhjbGF6ejogQ2xhc3MsIGRlZnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSkge1xuICAgIHJldHVybiBkZWZzW2NsYXp6LmlkID8/ICcnXSA/PyAoY2xhenogPz8geyBhdHRyaWJ1dGVzOiBbXSB9KS5hdHRyaWJ1dGVzLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKTtcbiAgfVxuXG4gIHN0YXRpYyBlbnN1cmVJdGVtSWRIYXNDb3JyZWN0Rm9ybWF0KGl0ZW06IEl0ZW0pOiBJdGVtIHtcbiAgICBpZiAoIWl0ZW0uaWQuaW5jbHVkZXMoJ0AnKSkge1xuICAgICAgaXRlbS5pZCA9IGAke2l0ZW0ub0NsYXNzfUAke2l0ZW0uaWR9YDtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBzdGF0aWMgc2ltcGxlQXJyYXlFcXVhbHMoYTogYW55W10sIGI6IGFueVtdKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYSkgJiYgQXJyYXkuaXNBcnJheShiKSAmJiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeSgodmFsLCBpbmRleCkgPT4gdmFsID09PSBiW2luZGV4XSk7XG4gIH1cbn1cbiJdfQ==
|