@provoly/dashboard 1.4.14 → 1.4.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +7 -7
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +7 -7
- package/esm2022/admin/components/admin-abac-rules/components/composed-condition/composed-condition.component.mjs +10 -10
- package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +6 -6
- package/esm2022/admin/components/admin-abac-rules/components/select-attribute/select-attribute.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +10 -10
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +10 -15
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +8 -8
- package/esm2022/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +6 -6
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +6 -6
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +5 -5
- package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +6 -6
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +7 -7
- package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +5 -5
- package/esm2022/admin/components/admin-environment/admin-environment-update/admin-environment-update.component.mjs +5 -5
- package/esm2022/admin/components/admin-environment/admin-environment.component.mjs +5 -5
- package/esm2022/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.mjs +5 -5
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +3 -3
- package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +5 -5
- package/esm2022/admin/components/admin-links/admin-links.component.mjs +5 -5
- package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +4 -5
- package/esm2022/admin/components/admin-metadata/shared/list-metadata/pry-list-metadata.component.mjs +5 -6
- package/esm2022/admin/components/admin-metadata-rules/admin-metadata-rules.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +4 -5
- package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates-form/admin-predicates-form.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates-update/admin-predicates-update.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +5 -5
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-modal/admin-relation-types-modal.component.mjs +4 -5
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +5 -5
- package/esm2022/admin/components/admin-relation-types/admin-relation-types.component.mjs +6 -6
- package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +6 -6
- package/esm2022/admin/components/admin-user/admin-user.component.mjs +5 -5
- package/esm2022/admin/components/association/association.component.mjs +4 -5
- package/esm2022/components/card/card.component.mjs +5 -6
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +6 -6
- package/esm2022/components/scheme-picker/scheme-picker.component.mjs +7 -7
- package/esm2022/components/stepper/stepper.component.mjs +3 -4
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +5 -5
- package/esm2022/dataset/components/dataset-version-form/dataset-version-form.component.mjs +6 -7
- package/esm2022/filters/date/date-filter.component.mjs +5 -6
- package/esm2022/filters/list/list-filter.component.mjs +6 -7
- package/esm2022/filters/number/number-filter.component.mjs +5 -6
- package/esm2022/filters/text/text-filter.component.mjs +5 -6
- package/esm2022/lib/core/components/about/about.component.mjs +3 -3
- package/esm2022/lib/core/components/accordion/accordion-item/accordion-item.component.mjs +7 -7
- package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +6 -6
- package/esm2022/lib/core/components/base-toolbox/base-toolbox.component.mjs +6 -6
- package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +6 -7
- package/esm2022/lib/core/components/date-picker/date-picker.component.mjs +4 -4
- package/esm2022/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.mjs +3 -4
- package/esm2022/lib/core/components/date-picker/time-picker/time-picker.component.mjs +6 -6
- package/esm2022/lib/core/components/edit-input/edit-input.component.mjs +7 -8
- package/esm2022/lib/core/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/core/components/modal/modal.component.mjs +5 -6
- package/esm2022/lib/core/components/nq-color-selector/nq-color-selector.component.mjs +5 -5
- package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +3 -3
- package/esm2022/lib/core/components/range/range.component.mjs +5 -6
- package/esm2022/lib/core/components/select/select.component.mjs +3 -3
- package/esm2022/lib/core/components/select-image/select-image.component.mjs +5 -5
- package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +6 -6
- package/esm2022/lib/core/components/snackbar/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/core/components/status-modal/status-modal.component.mjs +5 -5
- package/esm2022/lib/core/components/tabs/tab-group.component.mjs +3 -3
- package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -4
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +9 -9
- package/esm2022/lib/core/store/search/search.effects.mjs +4 -2
- package/esm2022/lib/core/store/search/search.service.mjs +3 -7
- package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +3 -3
- package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +2 -2
- package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +8 -8
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +12 -12
- package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +5 -5
- package/esm2022/lib/dashboard/components/metadata/metadata.component.mjs +5 -6
- package/esm2022/lib/dashboard/components/vizualize-raw/vizualize-raw.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +6 -6
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +10 -10
- package/esm2022/lib/dashboard/components/widgets/widget-filler/widget-filler.component.mjs +2 -2
- package/esm2022/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.mjs +2 -2
- package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +7 -7
- package/esm2022/lib/dashboard/resultset-utils.mjs +7 -8
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +3 -3
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +13 -24
- package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +3 -3
- package/esm2022/notification/components/notification/content/notification-content.component.mjs +3 -3
- package/esm2022/notification/components/notification/notification.component.mjs +5 -5
- package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +7 -7
- package/esm2022/pipeline/components/pipeline-editor/graph-serializer.utils.mjs +2 -2
- package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +5 -5
- package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +9 -9
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +6 -6
- package/esm2022/presentation/components/presentation.component.mjs +6 -6
- package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +5 -5
- package/esm2022/restitution/components/restitution/restitution.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +9 -9
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
- package/esm2022/search/components/choose-widget/choose-widget.component.mjs +5 -5
- package/esm2022/search/components/edit-named-query/edit-named-query.component.mjs +9 -9
- 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-mono-class/components/search-composed/search-composed.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +8 -8
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +6 -6
- package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +3 -3
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +7 -7
- package/esm2022/search/search-multi-class/components/multi-class-field-selection/multi-class-field-selection.component.mjs +6 -6
- package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +7 -7
- package/esm2022/search/search-tools/search-tools.component.mjs +13 -13
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +5 -5
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +10 -10
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +8 -8
- package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +5 -6
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +3 -3
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +4 -4
- package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +2 -2
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +12 -12
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +13 -7
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +7 -7
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +7 -7
- package/esm2022/widgets/widget-iframe/messaging/iframe-messaging.service.mjs +2 -2
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +10 -10
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +2 -2
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +2 -2
- package/esm2022/widgets/widget-table/expand-value/expand-value.component.mjs +4 -5
- package/esm2022/widgets/widget-template/component/widget-template.component.mjs +7 -7
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +10 -10
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +9 -9
- package/fesm2022/provoly-dashboard-admin.mjs +171 -175
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-card.mjs +4 -5
- package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +4 -4
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +6 -6
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-stepper.mjs +2 -3
- package/fesm2022/provoly-dashboard-components-stepper.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +14 -14
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-date.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-number.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-text.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +4 -4
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline.mjs +21 -21
- package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +14 -14
- 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 +35 -35
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +25 -25
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +2 -2
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +3 -3
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +11 -5
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +5 -5
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +8 -8
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +9 -9
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +6 -6
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs +7 -7
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +11 -11
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +7 -7
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +203 -218
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -5,9 +5,9 @@ import { filter, map } from 'rxjs/operators';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@ngrx/store";
|
|
7
7
|
import * as i2 from "@angular/platform-browser";
|
|
8
|
-
import * as i3 from "@
|
|
9
|
-
import * as i4 from "
|
|
10
|
-
import * as i5 from "
|
|
8
|
+
import * as i3 from "@provoly/dashboard";
|
|
9
|
+
import * as i4 from "../style/css.component";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
11
|
export class WidgetTemplateComponent extends DataWidgetComponent {
|
|
12
12
|
static { this.idGenerator = 0; }
|
|
13
13
|
constructor(store, el, sanitizer) {
|
|
@@ -17,7 +17,7 @@ export class WidgetTemplateComponent extends DataWidgetComponent {
|
|
|
17
17
|
this.id = WidgetTemplateComponent.idGenerator++;
|
|
18
18
|
this.options$ = this.manifest$.pipe(map((manifest) => manifest.options));
|
|
19
19
|
this.subscriptions.add(this.options$.pipe(filter((opt) => !!opt)).subscribe((options) => {
|
|
20
|
-
this.optionsCopy = { ...
|
|
20
|
+
this.optionsCopy = { ...structuredClone(options) };
|
|
21
21
|
}));
|
|
22
22
|
this.template$ = this.options$.pipe(map((options) => (!!options.svg ? options.svg : options.html ?? '')), combineLatestWith(this.resultSet$), map(([template, rs]) => this.evaluate(template, rs)));
|
|
23
23
|
this.css$ = this.options$.pipe(map((options) => `<style>${this.limitScope(options.css ?? '')}</style>`), combineLatestWith(this.resultSet$), map(([template, rs]) => this.evaluate(template, rs)));
|
|
@@ -86,10 +86,10 @@ export class WidgetTemplateComponent extends DataWidgetComponent {
|
|
|
86
86
|
this.optionsCopy.css = $event.currentTarget.value;
|
|
87
87
|
}
|
|
88
88
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetTemplateComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
89
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
89
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: WidgetTemplateComponent, selector: "pry-widget-template", usesInheritance: true, ngImport: i0, template: "<pry-widget-template-css></pry-widget-template-css>\n@if (displayHeader$ | async) {\n <pry-widget-header\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"html_src\">{{ '@pry.widget.template.html' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area -overflow\"\n id=\"html_src\"\n [value]=\"optionsCopy.html\"\n (input)=\"changeHtml($event)\"\n ></textarea>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"css_src\">{{ '@pry.widget.template.css' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area -overflow\"\n id=\"css_src\"\n [value]=\"optionsCopy.css\"\n (input)=\"changeCss($event)\"\n ></textarea>\n </div>\n </div>\n </pry-settings>\n </pry-widget-header>\n}\n@if (css$ | async; as css) {\n <div [innerHtml]=\"css\"></div>\n}\n@if (template$ | async; as template) {\n <div [class]=\"'pry-template-' + id\" [innerHtml]=\"template\"></div>\n}\n", dependencies: [{ kind: "component", type: i3.SettingsComponent, selector: "pry-settings", inputs: ["widgetIndex", "isDisable", "headerPresent", "open$", "header"], outputs: ["triggerClick", "saveTriggered", "changeTitle"] }, { kind: "component", type: i3.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: i4.PryWidgetTemplateCssComponent, selector: "pry-widget-template-css" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
90
90
|
}
|
|
91
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetTemplateComponent, decorators: [{
|
|
92
92
|
type: Component,
|
|
93
|
-
args: [{ selector: 'pry-widget-template', template: "<pry-widget-template-css></pry-widget-template-css>\n
|
|
93
|
+
args: [{ selector: 'pry-widget-template', template: "<pry-widget-template-css></pry-widget-template-css>\n@if (displayHeader$ | async) {\n <pry-widget-header\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"html_src\">{{ '@pry.widget.template.html' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area -overflow\"\n id=\"html_src\"\n [value]=\"optionsCopy.html\"\n (input)=\"changeHtml($event)\"\n ></textarea>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"css_src\">{{ '@pry.widget.template.css' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area -overflow\"\n id=\"css_src\"\n [value]=\"optionsCopy.css\"\n (input)=\"changeCss($event)\"\n ></textarea>\n </div>\n </div>\n </pry-settings>\n </pry-widget-header>\n}\n@if (css$ | async; as css) {\n <div [innerHtml]=\"css\"></div>\n}\n@if (template$ | async; as template) {\n <div [class]=\"'pry-template-' + id\" [innerHtml]=\"template\"></div>\n}\n" }]
|
|
94
94
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }, { type: i2.DomSanitizer }] });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3dpZGdldHMvd2lkZ2V0LXRlbXBsYXRlL2NvbXBvbmVudC93aWRnZXQtdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGVtcGxhdGUvY29tcG9uZW50L3dpZGdldC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQU03QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsbUJBQW1CO2FBTXZELGdCQUFXLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFFdkIsWUFDRSxLQUFpQixFQUNqQixFQUFjLEVBQ04sU0FBdUI7UUFFL0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUZULGNBQVMsR0FBVCxTQUFTLENBQWM7UUFUakMsZ0JBQVcsR0FBMEIsRUFBRSxDQUFDO1FBWXRDLElBQUksQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFnQyxDQUFDLENBQUMsQ0FBQztRQUVsRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQTJCLEVBQUUsQ0FBQztRQUMzRixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDakMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQ3BFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ3JELENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFDeEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUNsQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDckQsQ0FBQztJQUNKLENBQUM7SUFFUSxZQUFZO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFFBQVEsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUMxRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWdCLEVBQUUsRUFBTztRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFFdEIsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUM5QixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLFVBQVUsR0FBUSxJQUFJLENBQUM7Z0JBRTNCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDOUIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNwQyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDL0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs2QkFDdkUsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7NkJBQ25CLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ3BCLFVBQVUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNqQyxDQUFDO3lCQUFNLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNyQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzs0QkFDakIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNoRSxDQUFDO29CQUNILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzs0QkFDakIsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDNUMsSUFBSSxZQUFZLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQ0FDeEIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQzs0QkFDckMsQ0FBQztpQ0FBTSxDQUFDO2dDQUNOLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO2dDQUNsRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztnQ0FDdEQsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7NEJBQ2hELENBQUM7NEJBQ0QsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0NBQ2hELFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDOzRCQUNoQyxDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTyxVQUFVLENBQUMsR0FBVztRQUM1QixNQUFNLEtBQUssR0FBRyxpQkFBaUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRXpDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTdGLE9BQU8sS0FBSyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFhO1FBQ3RCLGFBQWE7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNyRCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWE7UUFDckIsYUFBYTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ3BELENBQUM7OEdBekdVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGtGQ1hwQyxxa0RBNENBOzsyRkRqQ2EsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEYXRhV2lkZ2V0Q29tcG9uZW50LCBUZW1wbGF0ZVdpZGdldE9wdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdFdpdGgsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktd2lkZ2V0LXRlbXBsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0VGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBEYXRhV2lkZ2V0Q29tcG9uZW50IHtcbiAgb3B0aW9ucyQ6IE9ic2VydmFibGU8VGVtcGxhdGVXaWRnZXRPcHRpb25zPjtcbiAgb3B0aW9uc0NvcHk6IFRlbXBsYXRlV2lkZ2V0T3B0aW9ucyA9IHt9O1xuICB0ZW1wbGF0ZSQ6IE9ic2VydmFibGU8U2FmZUh0bWw+O1xuICBjc3MkOiBPYnNlcnZhYmxlPFNhZmVIdG1sPjtcbiAgaWQ6IG51bWJlcjtcbiAgc3RhdGljIGlkR2VuZXJhdG9yID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdG9yZTogU3RvcmU8YW55PixcbiAgICBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICkge1xuICAgIHN1cGVyKHN0b3JlLCBlbCk7XG4gICAgdGhpcy5pZCA9IFdpZGdldFRlbXBsYXRlQ29tcG9uZW50LmlkR2VuZXJhdG9yKys7XG4gICAgdGhpcy5vcHRpb25zJCA9IHRoaXMubWFuaWZlc3QkLnBpcGUobWFwKChtYW5pZmVzdCkgPT4gbWFuaWZlc3Qub3B0aW9ucyBhcyBUZW1wbGF0ZVdpZGdldE9wdGlvbnMpKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wdGlvbnMkLnBpcGUoZmlsdGVyKChvcHQpID0+ICEhb3B0KSkuc3Vic2NyaWJlKChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkgPSB7IC4uLihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKSBhcyBUZW1wbGF0ZVdpZGdldE9wdGlvbnMpIH07XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnRlbXBsYXRlJCA9IHRoaXMub3B0aW9ucyQucGlwZShcbiAgICAgIG1hcCgob3B0aW9ucykgPT4gKCEhb3B0aW9ucy5zdmcgPyBvcHRpb25zLnN2ZyA6IG9wdGlvbnMuaHRtbCA/PyAnJykpLFxuICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5yZXN1bHRTZXQkKSxcbiAgICAgIG1hcCgoW3RlbXBsYXRlLCByc10pID0+IHRoaXMuZXZhbHVhdGUodGVtcGxhdGUsIHJzKSlcbiAgICApO1xuXG4gICAgdGhpcy5jc3MkID0gdGhpcy5vcHRpb25zJC5waXBlKFxuICAgICAgbWFwKChvcHRpb25zKSA9PiBgPHN0eWxlPiR7dGhpcy5saW1pdFNjb3BlKG9wdGlvbnMuY3NzID8/ICcnKX08L3N0eWxlPmApLFxuICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5yZXN1bHRTZXQkKSxcbiAgICAgIG1hcCgoW3RlbXBsYXRlLCByc10pID0+IHRoaXMuZXZhbHVhdGUodGVtcGxhdGUsIHJzKSlcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgZW1pdE1hbmlmZXN0KCkge1xuICAgIHRoaXMubWFuaWZlc3RNb2RpZmllZC5lbWl0KHtcbiAgICAgIHdpZGdldEluZGV4OiB0aGlzLndpZGdldEluZGV4LFxuICAgICAgbWFuaWZlc3Q6IHsgLi4udGhpcy5tYW5pZmVzdCwgb3B0aW9uczogdGhpcy5vcHRpb25zQ29weSB9XG4gICAgfSk7XG4gIH1cblxuICBldmFsdWF0ZSh0ZW1wbGF0ZTogc3RyaW5nLCByczogYW55KTogU2FmZUh0bWwge1xuICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoJ3t7KC4qPyl9fScsICdnJyk7XG4gICAgY29uc3QgdG9SZXBsYWNlID0gdGVtcGxhdGUubWF0Y2gocmVnZXhwKTtcbiAgICBsZXQgcmVzdWx0ID0gdGVtcGxhdGU7XG5cbiAgICBpZiAoISF0b1JlcGxhY2UpIHtcbiAgICAgIHRvUmVwbGFjZS5mb3JFYWNoKChleHRyYWN0ZWQpID0+IHtcbiAgICAgICAgY29uc3QgZXhwciA9IGV4dHJhY3RlZC5zdWJzdHJpbmcoMiwgZXh0cmFjdGVkLmxlbmd0aCAtIDIpO1xuICAgICAgICBjb25zdCBzcGxpdHRlZCA9IGV4cHIuc3BsaXQoL1suXFxdXS8pLmZpbHRlcigoZXh0cikgPT4gZXh0ciAhPT0gJycpO1xuICAgICAgICBsZXQgZXZhbHVhdGlvbjogYW55ID0gbnVsbDtcblxuICAgICAgICBzcGxpdHRlZC5mb3JFYWNoKChfc3BsaXRQYXJ0KSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3BsaXRQYXJ0ID0gX3NwbGl0UGFydC50cmltKCk7XG4gICAgICAgICAgaWYgKHNwbGl0UGFydC5zdGFydHNXaXRoKCdycycpKSB7XG4gICAgICAgICAgICBjb25zdCBjbGFzc0lkID0gKGV4cHIubWF0Y2goL3JzXFxbJyguKSo/Jy8pID8/IFsnbm8tY2xhc3MtaWQtZGV0ZWN0ZWQnXSlbMF1cbiAgICAgICAgICAgICAgLnJlcGxhY2UoXCJyc1snXCIsICcnKVxuICAgICAgICAgICAgICAucmVwbGFjZShcIidcIiwgJycpO1xuICAgICAgICAgICAgZXZhbHVhdGlvbiA9IHJzLml0ZW1zW2NsYXNzSWRdO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3BsaXRQYXJ0LnN0YXJ0c1dpdGgoJ1snKSkge1xuICAgICAgICAgICAgaWYgKCEhZXZhbHVhdGlvbikge1xuICAgICAgICAgICAgICBldmFsdWF0aW9uID0gZXZhbHVhdGlvbltwYXJzZUludChzcGxpdFBhcnQuc3Vic3RyaW5nKDEpLCAxMCldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoISFldmFsdWF0aW9uKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4T2ZDYXJldCA9IHNwbGl0UGFydC5pbmRleE9mKCdbJyk7XG4gICAgICAgICAgICAgIGlmIChpbmRleE9mQ2FyZXQgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvbiA9IGV2YWx1YXRpb25bc3BsaXRQYXJ0XTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wID0gc3BsaXRQYXJ0LnN1YnN0cmluZygwLCBpbmRleE9mQ2FyZXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YlByb3AgPSBzcGxpdFBhcnQuc3Vic3RyaW5nKGluZGV4T2ZDYXJldCArIDEpO1xuICAgICAgICAgICAgICAgIGV2YWx1YXRpb24gPSBldmFsdWF0aW9uW3Byb3BdLnZhbHVlc1tzdWJQcm9wXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoISFldmFsdWF0aW9uICYmIGV2YWx1YXRpb24udHlwZSA9PT0gJ1ZBTFVFJykge1xuICAgICAgICAgICAgICAgIGV2YWx1YXRpb24gPSBldmFsdWF0aW9uLnZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShleHRyYWN0ZWQsIGV2YWx1YXRpb24pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHJlc3VsdCk7XG4gIH1cblxuICBwcml2YXRlIGxpbWl0U2NvcGUoY3NzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNjb3BlID0gYC5wcnktdGVtcGxhdGUtJHt0aGlzLmlkfWA7XG5cbiAgICBjb25zdCBzY29wZWQgPSBjc3MucmVwbGFjZSgvKFt9LF0gPykvZywgYCQxJHtzY29wZX0gYCkucmVwbGFjZShuZXcgUmVnRXhwKHNjb3BlICsgJyAkJyksICcnKTtcblxuICAgIHJldHVybiBzY29wZSArICcgJyArIHNjb3BlZDtcbiAgfVxuXG4gIGNoYW5nZUh0bWwoJGV2ZW50OiBFdmVudCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLm9wdGlvbnNDb3B5Lmh0bWwgPSAkZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgfVxuXG4gIGNoYW5nZUNzcygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMub3B0aW9uc0NvcHkuY3NzID0gJGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gIH1cbn1cbiIsIjxwcnktd2lkZ2V0LXRlbXBsYXRlLWNzcz48L3ByeS13aWRnZXQtdGVtcGxhdGUtY3NzPlxuPHByeS13aWRnZXQtaGVhZGVyXG4gICpuZ0lmPVwiZGlzcGxheUhlYWRlciQgfCBhc3luY1wiXG4gIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gIFttYW5pZmVzdF09XCJtYW5pZmVzdFwiXG4gIChtYW5pZmVzdE1vZGlmaWVkKT1cIm1hbmlmZXN0TW9kaWZpZWQuZW1pdCgkZXZlbnQpXCJcbiAgI2hlYWRlclxuICBbaGVhZGVyT3B0aW9uc109XCIoZGlzcGxheUhlYWRlciQgfCBhc3luYykgPz8ge31cIlxuICBbZGF0YXNvdXJjZUlkc109XCIoZGF0YXNvdXJjZUlkcyQgfCBhc3luYykgPz8gW11cIlxuPlxuICA8cHJ5LXNldHRpbmdzXG4gICAgKHNhdmVUcmlnZ2VyZWQpPVwiZW1pdE1hbmlmZXN0KClcIlxuICAgIChjaGFuZ2VUaXRsZSk9XCJjaGFuZ2VXaWRnZXRUaXRsZSgkZXZlbnQpXCJcbiAgICBbaGVhZGVyUHJlc2VudF09XCJkaXNwbGF5SGVhZGVyJCB8IGFzeW5jXCJcbiAgICBbd2lkZ2V0SW5kZXhdPVwid2lkZ2V0SW5kZXhcIlxuICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcbiAgICBbb3BlbiRdPVwib3BlbiRcIlxuICAgIGNsYXNzPVwiby1zZXR0aW5nc1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiby1zZXR0aW5nc19fZmllbGRzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJodG1sX3NyY1wiPnt7ICdAcHJ5LndpZGdldC50ZW1wbGF0ZS5odG1sJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZCBhLXRleHQtYXJlYSAtb3ZlcmZsb3dcIlxuICAgICAgICAgIGlkPVwiaHRtbF9zcmNcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25zQ29weS5odG1sXCJcbiAgICAgICAgICAoaW5wdXQpPVwiY2hhbmdlSHRtbCgkZXZlbnQpXCJcbiAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiY3NzX3NyY1wiPnt7ICdAcHJ5LndpZGdldC50ZW1wbGF0ZS5jc3MnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkIGEtdGV4dC1hcmVhIC1vdmVyZmxvd1wiXG4gICAgICAgICAgaWQ9XCJjc3Nfc3JjXCJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uc0NvcHkuY3NzXCJcbiAgICAgICAgICAoaW5wdXQpPVwiY2hhbmdlQ3NzKCRldmVudClcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3ByeS1zZXR0aW5ncz5cbjwvcHJ5LXdpZGdldC1oZWFkZXI+XG48ZGl2ICpuZ0lmPVwiY3NzJCB8IGFzeW5jIGFzIGNzc1wiIFtpbm5lckh0bWxdPVwiY3NzXCI+PC9kaXY+XG48ZGl2ICpuZ0lmPVwidGVtcGxhdGUkIHwgYXN5bmMgYXMgdGVtcGxhdGVcIiBbY2xhc3NdPVwiJ3ByeS10ZW1wbGF0ZS0nICsgaWRcIiBbaW5uZXJIdG1sXT1cInRlbXBsYXRlXCI+PC9kaXY+XG4iXX0=
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3dpZGdldHMvd2lkZ2V0LXRlbXBsYXRlL2NvbXBvbmVudC93aWRnZXQtdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGVtcGxhdGUvY29tcG9uZW50L3dpZGdldC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQU03QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsbUJBQW1CO2FBTXZELGdCQUFXLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFFdkIsWUFDRSxLQUFpQixFQUNqQixFQUFjLEVBQ04sU0FBdUI7UUFFL0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUZULGNBQVMsR0FBVCxTQUFTLENBQWM7UUFUakMsZ0JBQVcsR0FBMEIsRUFBRSxDQUFDO1FBWXRDLElBQUksQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFnQyxDQUFDLENBQUMsQ0FBQztRQUVsRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBSSxlQUFlLENBQUMsT0FBTyxDQUEyQixFQUFFLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2pDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUNwRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ2xDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNyRCxDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDNUIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQ3hFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ3JELENBQUM7SUFDSixDQUFDO0lBRVEsWUFBWTtRQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1lBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7U0FDMUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFnQixFQUFFLEVBQU87UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBRXRCLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDOUIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxVQUFVLEdBQVEsSUFBSSxDQUFDO2dCQUUzQixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7b0JBQzlCLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDcEMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQy9CLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NkJBQ3ZFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDOzZCQUNuQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNwQixVQUFVLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDakMsQ0FBQzt5QkFBTSxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDckMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7NEJBQ2pCLFVBQVUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDaEUsQ0FBQztvQkFDSCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7NEJBQ2pCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQzVDLElBQUksWUFBWSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ3hCLFVBQVUsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7NEJBQ3JDLENBQUM7aUNBQU0sQ0FBQztnQ0FDTixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztnQ0FDbEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0NBQ3RELFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUNoRCxDQUFDOzRCQUNELElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dDQUNoRCxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQzs0QkFDaEMsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sVUFBVSxDQUFDLEdBQVc7UUFDNUIsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUV6QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3RixPQUFPLEtBQUssR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYTtRQUN0QixhQUFhO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDckQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFhO1FBQ3JCLGFBQWE7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNwRCxDQUFDOzhHQXpHVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixrRkNYcEMsOHBEQWdEQTs7MkZEckNhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRGF0YVdpZGdldENvbXBvbmVudCwgVGVtcGxhdGVXaWRnZXRPcHRpb25zIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3RXaXRoLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXdpZGdldC10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFRlbXBsYXRlQ29tcG9uZW50IGV4dGVuZHMgRGF0YVdpZGdldENvbXBvbmVudCB7XG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPFRlbXBsYXRlV2lkZ2V0T3B0aW9ucz47XG4gIG9wdGlvbnNDb3B5OiBUZW1wbGF0ZVdpZGdldE9wdGlvbnMgPSB7fTtcbiAgdGVtcGxhdGUkOiBPYnNlcnZhYmxlPFNhZmVIdG1sPjtcbiAgY3NzJDogT2JzZXJ2YWJsZTxTYWZlSHRtbD47XG4gIGlkOiBudW1iZXI7XG4gIHN0YXRpYyBpZEdlbmVyYXRvciA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplclxuICApIHtcbiAgICBzdXBlcihzdG9yZSwgZWwpO1xuICAgIHRoaXMuaWQgPSBXaWRnZXRUZW1wbGF0ZUNvbXBvbmVudC5pZEdlbmVyYXRvcisrO1xuICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLm1hbmlmZXN0JC5waXBlKG1hcCgobWFuaWZlc3QpID0+IG1hbmlmZXN0Lm9wdGlvbnMgYXMgVGVtcGxhdGVXaWRnZXRPcHRpb25zKSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5vcHRpb25zJC5waXBlKGZpbHRlcigob3B0KSA9PiAhIW9wdCkpLnN1YnNjcmliZSgob3B0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnNDb3B5ID0geyAuLi4oc3RydWN0dXJlZENsb25lKG9wdGlvbnMpIGFzIFRlbXBsYXRlV2lkZ2V0T3B0aW9ucykgfTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMudGVtcGxhdGUkID0gdGhpcy5vcHRpb25zJC5waXBlKFxuICAgICAgbWFwKChvcHRpb25zKSA9PiAoISFvcHRpb25zLnN2ZyA/IG9wdGlvbnMuc3ZnIDogb3B0aW9ucy5odG1sID8/ICcnKSksXG4gICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLnJlc3VsdFNldCQpLFxuICAgICAgbWFwKChbdGVtcGxhdGUsIHJzXSkgPT4gdGhpcy5ldmFsdWF0ZSh0ZW1wbGF0ZSwgcnMpKVxuICAgICk7XG5cbiAgICB0aGlzLmNzcyQgPSB0aGlzLm9wdGlvbnMkLnBpcGUoXG4gICAgICBtYXAoKG9wdGlvbnMpID0+IGA8c3R5bGU+JHt0aGlzLmxpbWl0U2NvcGUob3B0aW9ucy5jc3MgPz8gJycpfTwvc3R5bGU+YCksXG4gICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLnJlc3VsdFNldCQpLFxuICAgICAgbWFwKChbdGVtcGxhdGUsIHJzXSkgPT4gdGhpcy5ldmFsdWF0ZSh0ZW1wbGF0ZSwgcnMpKVxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBlbWl0TWFuaWZlc3QoKSB7XG4gICAgdGhpcy5tYW5pZmVzdE1vZGlmaWVkLmVtaXQoe1xuICAgICAgd2lkZ2V0SW5kZXg6IHRoaXMud2lkZ2V0SW5kZXgsXG4gICAgICBtYW5pZmVzdDogeyAuLi50aGlzLm1hbmlmZXN0LCBvcHRpb25zOiB0aGlzLm9wdGlvbnNDb3B5IH1cbiAgICB9KTtcbiAgfVxuXG4gIGV2YWx1YXRlKHRlbXBsYXRlOiBzdHJpbmcsIHJzOiBhbnkpOiBTYWZlSHRtbCB7XG4gICAgY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cCgne3soLio/KX19JywgJ2cnKTtcbiAgICBjb25zdCB0b1JlcGxhY2UgPSB0ZW1wbGF0ZS5tYXRjaChyZWdleHApO1xuICAgIGxldCByZXN1bHQgPSB0ZW1wbGF0ZTtcblxuICAgIGlmICghIXRvUmVwbGFjZSkge1xuICAgICAgdG9SZXBsYWNlLmZvckVhY2goKGV4dHJhY3RlZCkgPT4ge1xuICAgICAgICBjb25zdCBleHByID0gZXh0cmFjdGVkLnN1YnN0cmluZygyLCBleHRyYWN0ZWQubGVuZ3RoIC0gMik7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVkID0gZXhwci5zcGxpdCgvWy5cXF1dLykuZmlsdGVyKChleHRyKSA9PiBleHRyICE9PSAnJyk7XG4gICAgICAgIGxldCBldmFsdWF0aW9uOiBhbnkgPSBudWxsO1xuXG4gICAgICAgIHNwbGl0dGVkLmZvckVhY2goKF9zcGxpdFBhcnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzcGxpdFBhcnQgPSBfc3BsaXRQYXJ0LnRyaW0oKTtcbiAgICAgICAgICBpZiAoc3BsaXRQYXJ0LnN0YXJ0c1dpdGgoJ3JzJykpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzSWQgPSAoZXhwci5tYXRjaCgvcnNcXFsnKC4pKj8nLykgPz8gWyduby1jbGFzcy1pZC1kZXRlY3RlZCddKVswXVxuICAgICAgICAgICAgICAucmVwbGFjZShcInJzWydcIiwgJycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKFwiJ1wiLCAnJyk7XG4gICAgICAgICAgICBldmFsdWF0aW9uID0gcnMuaXRlbXNbY2xhc3NJZF07XG4gICAgICAgICAgfSBlbHNlIGlmIChzcGxpdFBhcnQuc3RhcnRzV2l0aCgnWycpKSB7XG4gICAgICAgICAgICBpZiAoISFldmFsdWF0aW9uKSB7XG4gICAgICAgICAgICAgIGV2YWx1YXRpb24gPSBldmFsdWF0aW9uW3BhcnNlSW50KHNwbGl0UGFydC5zdWJzdHJpbmcoMSksIDEwKV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghIWV2YWx1YXRpb24pIHtcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXhPZkNhcmV0ID0gc3BsaXRQYXJ0LmluZGV4T2YoJ1snKTtcbiAgICAgICAgICAgICAgaWYgKGluZGV4T2ZDYXJldCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBldmFsdWF0aW9uID0gZXZhbHVhdGlvbltzcGxpdFBhcnRdO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb3AgPSBzcGxpdFBhcnQuc3Vic3RyaW5nKDAsIGluZGV4T2ZDYXJldCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViUHJvcCA9IHNwbGl0UGFydC5zdWJzdHJpbmcoaW5kZXhPZkNhcmV0ICsgMSk7XG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvbiA9IGV2YWx1YXRpb25bcHJvcF0udmFsdWVzW3N1YlByb3BdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICghIWV2YWx1YXRpb24gJiYgZXZhbHVhdGlvbi50eXBlID09PSAnVkFMVUUnKSB7XG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvbiA9IGV2YWx1YXRpb24udmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKGV4dHJhY3RlZCwgZXZhbHVhdGlvbik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgbGltaXRTY29wZShjc3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2NvcGUgPSBgLnByeS10ZW1wbGF0ZS0ke3RoaXMuaWR9YDtcblxuICAgIGNvbnN0IHNjb3BlZCA9IGNzcy5yZXBsYWNlKC8oW30sXSA/KS9nLCBgJDEke3Njb3BlfSBgKS5yZXBsYWNlKG5ldyBSZWdFeHAoc2NvcGUgKyAnICQnKSwgJycpO1xuXG4gICAgcmV0dXJuIHNjb3BlICsgJyAnICsgc2NvcGVkO1xuICB9XG5cbiAgY2hhbmdlSHRtbCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMub3B0aW9uc0NvcHkuaHRtbCA9ICRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICB9XG5cbiAgY2hhbmdlQ3NzKCRldmVudDogRXZlbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5vcHRpb25zQ29weS5jc3MgPSAkZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgfVxufVxuIiwiPHByeS13aWRnZXQtdGVtcGxhdGUtY3NzPjwvcHJ5LXdpZGdldC10ZW1wbGF0ZS1jc3M+XG5AaWYgKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpIHtcbiAgPHByeS13aWRnZXQtaGVhZGVyXG4gICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICBbbWFuaWZlc3RdPVwibWFuaWZlc3RcIlxuICAgIChtYW5pZmVzdE1vZGlmaWVkKT1cIm1hbmlmZXN0TW9kaWZpZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAjaGVhZGVyXG4gICAgW2hlYWRlck9wdGlvbnNdPVwiKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpID8/IHt9XCJcbiAgICBbZGF0YXNvdXJjZUlkc109XCIoZGF0YXNvdXJjZUlkcyQgfCBhc3luYykgPz8gW11cIlxuICAgID5cbiAgICA8cHJ5LXNldHRpbmdzXG4gICAgICAoc2F2ZVRyaWdnZXJlZCk9XCJlbWl0TWFuaWZlc3QoKVwiXG4gICAgICAoY2hhbmdlVGl0bGUpPVwiY2hhbmdlV2lkZ2V0VGl0bGUoJGV2ZW50KVwiXG4gICAgICBbaGVhZGVyUHJlc2VudF09XCJkaXNwbGF5SGVhZGVyJCB8IGFzeW5jXCJcbiAgICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgICBbaGVhZGVyXT1cImhlYWRlclwiXG4gICAgICBbb3BlbiRdPVwib3BlbiRcIlxuICAgICAgY2xhc3M9XCJvLXNldHRpbmdzXCJcbiAgICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXNldHRpbmdzX19maWVsZHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJodG1sX3NyY1wiPnt7ICdAcHJ5LndpZGdldC50ZW1wbGF0ZS5odG1sJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGQgYS10ZXh0LWFyZWEgLW92ZXJmbG93XCJcbiAgICAgICAgICAgIGlkPVwiaHRtbF9zcmNcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbnNDb3B5Lmh0bWxcIlxuICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZUh0bWwoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNzc19zcmNcIj57eyAnQHByeS53aWRnZXQudGVtcGxhdGUuY3NzJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGQgYS10ZXh0LWFyZWEgLW92ZXJmbG93XCJcbiAgICAgICAgICAgIGlkPVwiY3NzX3NyY1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uc0NvcHkuY3NzXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJjaGFuZ2VDc3MoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9wcnktc2V0dGluZ3M+XG4gIDwvcHJ5LXdpZGdldC1oZWFkZXI+XG59XG5AaWYgKGNzcyQgfCBhc3luYzsgYXMgY3NzKSB7XG4gIDxkaXYgW2lubmVySHRtbF09XCJjc3NcIj48L2Rpdj5cbn1cbkBpZiAodGVtcGxhdGUkIHwgYXN5bmM7IGFzIHRlbXBsYXRlKSB7XG4gIDxkaXYgW2NsYXNzXT1cIidwcnktdGVtcGxhdGUtJyArIGlkXCIgW2lubmVySHRtbF09XCJ0ZW1wbGF0ZVwiPjwvZGl2PlxufVxuIl19
|
|
@@ -4,12 +4,12 @@ import { combineLatest } from 'rxjs';
|
|
|
4
4
|
import { filter, map } from 'rxjs/operators';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@ngrx/store";
|
|
7
|
-
import * as i2 from "@angular/
|
|
8
|
-
import * as i3 from "@
|
|
9
|
-
import * as i4 from "@provoly/dashboard";
|
|
10
|
-
import * as i5 from "@provoly/dashboard/
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
import * as i3 from "@provoly/dashboard";
|
|
9
|
+
import * as i4 from "@provoly/dashboard/components/checkbox";
|
|
10
|
+
import * as i5 from "@provoly/dashboard/widgets/widget-map";
|
|
11
|
+
import * as i6 from "../style/css.component";
|
|
12
|
+
import * as i7 from "@angular/common";
|
|
13
13
|
import * as i8 from "@provoly/dashboard/components/data-format";
|
|
14
14
|
export class WidgetTileComponent extends DataWidgetComponent {
|
|
15
15
|
constructor(store, el) {
|
|
@@ -27,7 +27,7 @@ export class WidgetTileComponent extends DataWidgetComponent {
|
|
|
27
27
|
this.classes = [];
|
|
28
28
|
this.options$ = this.manifest$.pipe(map((manifest) => manifest.options));
|
|
29
29
|
this.subscriptions.add(this.options$.pipe(filter((opt) => !!opt)).subscribe((options) => {
|
|
30
|
-
this.optionsCopy = { ...
|
|
30
|
+
this.optionsCopy = { ...structuredClone(options) };
|
|
31
31
|
}));
|
|
32
32
|
this.items$ = combineLatest([
|
|
33
33
|
this.resultSet$.pipe(map((rs) => Object.values(rs.items).reduce((p, c) => [...p, ...c], []))),
|
|
@@ -122,10 +122,10 @@ export class WidgetTileComponent extends DataWidgetComponent {
|
|
|
122
122
|
return Object.keys(value?.metadata ?? {}).length > 0;
|
|
123
123
|
}
|
|
124
124
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetTileComponent, deps: [{ token: i1.Store }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: WidgetTileComponent, selector: "pry-widget-tile", usesInheritance: true, ngImport: i0, template: "<pry-widget-tile-css></pry-widget-tile-css>\n<div class=\"o-widget o-widget--tile\">\n <pry-widget-header\n
|
|
125
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: WidgetTileComponent, selector: "pry-widget-tile", usesInheritance: true, ngImport: i0, template: "<pry-widget-tile-css></pry-widget-tile-css>\n<div class=\"o-widget o-widget--tile\">\n @if (displayHeader$ | async) {\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n #header\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"tile_classes\">{{ '@pry.widget.tile.classes' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeClasses($event)\"\n [items]=\"classes$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [ngModel]=\"optionsCopy.classes\"\n bindLabel=\"name\"\n bindValue=\"id\"\n id=\"tile_classes\"\n ></pry-select>\n </div>\n </pry-settings>\n </pry-widget-header>\n }\n <div class=\"o-widget--tile-wrapper\" [style.top]=\"(displayHeader$ | async) ? WIDGET_HEADER_HEIGHT + 'px' : 0\">\n @if ((items$ | async)?.length === 0) {\n <div class=\"no-result\">\n <img\n class=\"no-result__search\"\n src=\"../../../assets/svgs/pry_recherche_pas_de_resultat.svg\"\n alt=\"{{ '@pry.widget.tile.empty' | i18n }}\"\n aria-hidden=\"true\"\n />\n <span class=\"no-result__text\">{{ '@pry.widget.tile.empty' | i18n }}</span>\n </div>\n }\n <ul class=\"o-widget--tile__list\">\n @for (item of items$ | async; track item.id; let index = $index) {\n <li class=\"o-widget--tile__list__item\" (contextmenu)=\"contextMenu($event, item)\">\n <div class=\"o-widget--tile__list__item__header\">\n <img\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"item | translateItemToSymbol | async\"\n [alt]=\"item.oClass | translateId: { type: 'class', output: 'name' } | async\"\n />\n <h3 class=\"o-widget--tile__list__item__header__title\">\n {{\n item.oClass\n | translateId\n : {\n type: 'class',\n output: 'name'\n }\n | async\n }}\n </h3>\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async).includes(item.id)\"\n (click)=\"select($event, item)\"\n ></pry-checkbox>\n </div>\n <div class=\"o-properties\">\n <ul class=\"o-properties__list\">\n @for (property of (propertiesToDisplay$ | async)![item.oClass]; track property.prop) {\n @for (value of getValue(item, property.prop); track value; let i = $index; let c = $count) {\n <li\n class=\"o-properties__list__item\"\n >\n @if (i === 0) {\n <p class=\"o-properties__list__item__label\">{{ property.label }}:</p>\n }\n @if (!isRaw(property.label, item.oClass)) {\n <p class=\"o-properties__list__item__value\">\n {{ value?.value | dataFormat: property.field }}\n </p>\n } @else {\n <p class=\"o-properties__list__item__raw\">\n <pry-vizualize-raw [item]=\"item\" [propertyName]=\"property.label\"></pry-vizualize-raw>\n </p>\n }\n @if (hasMetadata(value)) {\n <pry-metadata [item]=\"value\"></pry-metadata>\n }\n </li>\n }\n }\n </ul>\n </div>\n <div (click)=\"toggleMap(index, item)\" class=\"o-widget--tile__list__item__footer\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n aria-controls=\"tile-map-xxx\"\n aria-expanded=\"false\"\n >\n {{ '@pry.widget.tile.map' | i18n }}\n </button>\n </div>\n @if (maps[index]) {\n <div class=\"o-widget--tile__list__item__map\" id=\"tile-map-xxx\">\n <pry-widget-map [staticManifest]=\"mapManifest\" [staticResultSet]=\"maps[index]!\"></pry-widget-map>\n </div>\n }\n </li>\n }\n </ul>\n</div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SettingsComponent, selector: "pry-settings", inputs: ["widgetIndex", "isDisable", "headerPresent", "open$", "header"], outputs: ["triggerClick", "saveTriggered", "changeTitle"] }, { kind: "component", type: i3.MetadataComponent, selector: "pry-metadata", inputs: ["item"] }, { kind: "component", type: i3.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: i3.VizualizeRawComponent, selector: "pry-vizualize-raw", inputs: ["item", "propertyName", "alt"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "component", type: i5.WidgetMapComponent, selector: "pry-widget-map" }, { kind: "component", type: i6.PryWidgetTileCssComponent, selector: "pry-widget-tile-css" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.TranslateItemToSymbolPipe, name: "translateItemToSymbol" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i8.DataFormatPipe, name: "dataFormat" }] }); }
|
|
126
126
|
}
|
|
127
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetTileComponent, decorators: [{
|
|
128
128
|
type: Component,
|
|
129
|
-
args: [{ selector: 'pry-widget-tile', template: "<pry-widget-tile-css></pry-widget-tile-css>\n<div class=\"o-widget o-widget--tile\">\n <pry-widget-header\n
|
|
129
|
+
args: [{ selector: 'pry-widget-tile', template: "<pry-widget-tile-css></pry-widget-tile-css>\n<div class=\"o-widget o-widget--tile\">\n @if (displayHeader$ | async) {\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n #header\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"tile_classes\">{{ '@pry.widget.tile.classes' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeClasses($event)\"\n [items]=\"classes$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [ngModel]=\"optionsCopy.classes\"\n bindLabel=\"name\"\n bindValue=\"id\"\n id=\"tile_classes\"\n ></pry-select>\n </div>\n </pry-settings>\n </pry-widget-header>\n }\n <div class=\"o-widget--tile-wrapper\" [style.top]=\"(displayHeader$ | async) ? WIDGET_HEADER_HEIGHT + 'px' : 0\">\n @if ((items$ | async)?.length === 0) {\n <div class=\"no-result\">\n <img\n class=\"no-result__search\"\n src=\"../../../assets/svgs/pry_recherche_pas_de_resultat.svg\"\n alt=\"{{ '@pry.widget.tile.empty' | i18n }}\"\n aria-hidden=\"true\"\n />\n <span class=\"no-result__text\">{{ '@pry.widget.tile.empty' | i18n }}</span>\n </div>\n }\n <ul class=\"o-widget--tile__list\">\n @for (item of items$ | async; track item.id; let index = $index) {\n <li class=\"o-widget--tile__list__item\" (contextmenu)=\"contextMenu($event, item)\">\n <div class=\"o-widget--tile__list__item__header\">\n <img\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"item | translateItemToSymbol | async\"\n [alt]=\"item.oClass | translateId: { type: 'class', output: 'name' } | async\"\n />\n <h3 class=\"o-widget--tile__list__item__header__title\">\n {{\n item.oClass\n | translateId\n : {\n type: 'class',\n output: 'name'\n }\n | async\n }}\n </h3>\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async).includes(item.id)\"\n (click)=\"select($event, item)\"\n ></pry-checkbox>\n </div>\n <div class=\"o-properties\">\n <ul class=\"o-properties__list\">\n @for (property of (propertiesToDisplay$ | async)![item.oClass]; track property.prop) {\n @for (value of getValue(item, property.prop); track value; let i = $index; let c = $count) {\n <li\n class=\"o-properties__list__item\"\n >\n @if (i === 0) {\n <p class=\"o-properties__list__item__label\">{{ property.label }}:</p>\n }\n @if (!isRaw(property.label, item.oClass)) {\n <p class=\"o-properties__list__item__value\">\n {{ value?.value | dataFormat: property.field }}\n </p>\n } @else {\n <p class=\"o-properties__list__item__raw\">\n <pry-vizualize-raw [item]=\"item\" [propertyName]=\"property.label\"></pry-vizualize-raw>\n </p>\n }\n @if (hasMetadata(value)) {\n <pry-metadata [item]=\"value\"></pry-metadata>\n }\n </li>\n }\n }\n </ul>\n </div>\n <div (click)=\"toggleMap(index, item)\" class=\"o-widget--tile__list__item__footer\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n aria-controls=\"tile-map-xxx\"\n aria-expanded=\"false\"\n >\n {{ '@pry.widget.tile.map' | i18n }}\n </button>\n </div>\n @if (maps[index]) {\n <div class=\"o-widget--tile__list__item__map\" id=\"tile-map-xxx\">\n <pry-widget-map [staticManifest]=\"mapManifest\" [staticResultSet]=\"maps[index]!\"></pry-widget-map>\n </div>\n }\n </li>\n }\n </ul>\n</div>\n</div>\n" }]
|
|
130
130
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }] });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGlsZS9jb21wb25lbnQvd2lkZ2V0LXRpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGlsZS9jb21wb25lbnQvd2lkZ2V0LXRpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBR0wsY0FBYyxFQUNkLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFFbkIsY0FBYyxFQUNkLFNBQVMsRUFFVCxTQUFTLEVBR1Qsb0JBQW9CLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBTTdDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUFrQjFELFlBQVksS0FBaUIsRUFBRSxFQUFjO1FBQzNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFmbkIsU0FBSSxHQUE4QixFQUFFLENBQUM7UUFDckMsZ0JBQVcsR0FBRztZQUNaLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQzNDLE9BQU8s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QUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFnQixFQUFFLE9BQWU7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDakUsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQztJQUNyRCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWtDO1FBQzVDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs4R0F4SVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsOEVDM0JoQyx5cEpBdUhBOzsyRkQ1RmEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSxcbiAgQ2xhc3MsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb25maWdTZWxlY3RvcnMsXG4gIENvbnRleHRNZW51QWN0aW9ucyxcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBEYXRhV2lkZ2V0Q29tcG9uZW50LFxuICBGaWVsZCxcbiAgRmllbGRTZWxlY3RvcnMsXG4gIEZpZWxkVHlwZSxcbiAgSXRlbSxcbiAgSXRlbVV0aWxzLFxuICBSZXN1bHRTZXQsXG4gIFRpbGVXaWRnZXRPcHRpb25zLFxuICBXSURHRVRfSEVBREVSX0hFSUdIVFxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS13aWRnZXQtdGlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtdGlsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0VGlsZUNvbXBvbmVudCBleHRlbmRzIERhdGFXaWRnZXRDb21wb25lbnQge1xuICBvcHRpb25zJDogT2JzZXJ2YWJsZTxUaWxlV2lkZ2V0T3B0aW9ucz47XG4gIGl0ZW1zJDogT2JzZXJ2YWJsZTxJdGVtW10+O1xuICBzZWxlY3RlZElkcyQ6IE9ic2VydmFibGU8YW55PjtcbiAgbWFwczogKHVuZGVmaW5lZCB8IFJlc3VsdFNldClbXSA9IFtdO1xuICBtYXBNYW5pZmVzdCA9IHtcbiAgICB0eXBlOiAnbWFwJyxcbiAgICBoZWFkZXI6IGZhbHNlLFxuICAgIGxheW91dDogeyB4OiAxLCB5OiAxLCB3aWR0aDogMSwgaGVpZ2h0OiAxIH0sXG4gICAgb3B0aW9uczogeyBsYXllcnM6IFt7IHR5cGU6ICdtYXJrZXInIH1dLCBmaXQ6IHRydWUgfVxuICB9O1xuICBjbGFzc2VzJDogT2JzZXJ2YWJsZTxDbGFzc1tdPjtcbiAgb3B0aW9uc0NvcHk6IFRpbGVXaWRnZXRPcHRpb25zID0ge307XG4gIFdJREdFVF9IRUFERVJfSEVJR0hUID0gV0lER0VUX0hFQURFUl9IRUlHSFQ7XG4gIHByb3BlcnRpZXNUb0Rpc3BsYXkkOiBPYnNlcnZhYmxlPHsgW3A6IHN0cmluZ106IHsgbGFiZWw6IHN0cmluZzsgcHJvcDogc3RyaW5nOyBmaWVsZDogRmllbGQgfVtdIH0gfCB1bmRlZmluZWQ+O1xuICBmaWVsZHM6IEZpZWxkW10gPSBbXTtcbiAgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZTxhbnk+LCBlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKHN0b3JlLCBlbCk7XG4gICAgdGhpcy5vcHRpb25zJCA9IHRoaXMubWFuaWZlc3QkLnBpcGUobWFwKChtYW5pZmVzdCkgPT4gbWFuaWZlc3Qub3B0aW9ucyBhcyBUaWxlV2lkZ2V0T3B0aW9ucykpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wdGlvbnMkLnBpcGUoZmlsdGVyKChvcHQpID0+ICEhb3B0KSkuc3Vic2NyaWJlKChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkgPSB7IC4uLihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKSBhcyBUaWxlV2lkZ2V0T3B0aW9ucykgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLml0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5yZXN1bHRTZXQkLnBpcGUobWFwKChycykgPT4gT2JqZWN0LnZhbHVlcyhycy5pdGVtcykucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKSkpLFxuICAgICAgdGhpcy5vcHRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtpdGVtcywgb3B0aW9uc10pID0+XG4gICAgICAgIGl0ZW1zLmZpbHRlcihcbiAgICAgICAgICAoaXRlbSkgPT4gIW9wdGlvbnMuY2xhc3NlcyB8fCBvcHRpb25zLmNsYXNzZXMubGVuZ3RoID09PSAwIHx8IG9wdGlvbnMuY2xhc3Nlcy5pbmNsdWRlcyhpdGVtLm9DbGFzcylcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zZWxlY3RlZElkcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc2VsZWN0ZWRJdGVtSWRzKTtcbiAgICB0aGlzLmNsYXNzZXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3Nlcyk7XG4gICAgdGhpcy5wcm9wZXJ0aWVzVG9EaXNwbGF5JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jbGFzc2VzJCxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy50aWxlQXR0cmlidXRlc0RlZmluaXRpb25zKSxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5tYXhBdHRyaWJ1dGVzSW5UaWxlcylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbY2xhc3NlcywgdGlsZURlZnMsIG1heFRpbGVzQXR0cmlidXRlc10pID0+ICh7XG4gICAgICAgIC4uLmNsYXNzZXNcbiAgICAgICAgICAubWFwKChjbGF6eikgPT4gKHtcbiAgICAgICAgICAgIFtjbGF6ei5pZF06IFtcbiAgICAgICAgICAgICAgLi4uY2xhenouYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgIC5tYXAoKGF0dHIpID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogYXR0ci5uYW1lLFxuICAgICAgICAgICAgICAgICAgcHJvcDogYXR0ci50ZWNobmljYWxOYW1lLFxuICAgICAgICAgICAgICAgICAgZmllbGQ6IGF0dHIuZmllbGRcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChfLCBpKSA9PiBpIDwgbWF4VGlsZXNBdHRyaWJ1dGVzKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIC4uLmMgfSksIHt9KSxcbiAgICAgICAgLi4uY2xhc3Nlc1xuICAgICAgICAgIC5maWx0ZXIoKGNsYXp6KSA9PiAhIXRpbGVEZWZzW2NsYXp6LmlkXSlcbiAgICAgICAgICAubWFwKChjbGF6eikgPT4gKHtcbiAgICAgICAgICAgIFtjbGF6ei5pZF06IFtcbiAgICAgICAgICAgICAgLi4uY2xhenouYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGF0dHIpID0+IHRpbGVEZWZzW2NsYXp6LmlkXS5pbmNsdWRlcyhhdHRyLm5hbWUpKVxuICAgICAgICAgICAgICAgIC5tYXAoKGF0dHIpID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogYXR0ci5uYW1lLFxuICAgICAgICAgICAgICAgICAgcHJvcDogYXR0ci50ZWNobmljYWxOYW1lLFxuICAgICAgICAgICAgICAgICAgZmllbGQ6IGF0dHIuZmllbGRcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KSlcbiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSlcbiAgICAgIH0pKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnN0b3JlLnNlbGVjdChGaWVsZFNlbGVjdG9ycy5maWVsZHMpLnN1YnNjcmliZSgoZmllbGRzKSA9PiAodGhpcy5maWVsZHMgPSBmaWVsZHMpKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmNsYXNzZXMkLnN1YnNjcmliZSgoY2xhc3NlcykgPT4gKHRoaXMuY2xhc3NlcyA9IGNsYXNzZXMpKSk7XG4gIH1cblxuICBjb250ZXh0TWVudSgkZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEl0ZW0pIHtcbiAgICBpZiAodGhpcy5tYW5pZmVzdC5jb250ZXh0TWVudSAhPT0gZmFsc2UpIHtcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgQ29udGV4dE1lbnVBY3Rpb25zLm9wZW4oe1xuICAgICAgICAgIGl0ZW1JZDogaXRlbS5pZCxcbiAgICAgICAgICBjbGllbnRYOiAkZXZlbnQuY2xpZW50WCxcbiAgICAgICAgICBjbGllbnRZOiAkZXZlbnQuY2xpZW50WSxcbiAgICAgICAgICBmcm9tOiAndGlsZScsXG4gICAgICAgICAgYWxsb3dPYmplY3RDcmVhdGlvbjogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0KCRldmVudDogTW91c2VFdmVudCwgaXRlbTogSXRlbSkge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0KHsgaWQ6IGl0ZW0uaWQsIGN1bXVsYXRpdmU6ICEkZXZlbnQuc2hpZnRLZXkgfSkpO1xuICB9XG5cbiAgdG9nZ2xlTWFwKGluZGV4OiBudW1iZXIsIGl0ZW06IEl0ZW0pIHtcbiAgICB0aGlzLm1hcHNbaW5kZXhdID0gIXRoaXMubWFwc1tpbmRleF1cbiAgICAgID8gKHsgaXRlbXM6IHsgW2l0ZW0ub0NsYXNzXTogW2l0ZW1dIH0sIHJlbGF0aW9uczogW10gfSBhcyBSZXN1bHRTZXQpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJlc3VsdFNldFdpdGhJdGVtKGl0ZW06IEl0ZW0pOiBSZXN1bHRTZXQge1xuICAgIHJldHVybiB7IGl0ZW1zOiB7IFtpdGVtLm9DbGFzc106IFtpdGVtXSB9LCByZWxhdGlvbnM6IFtdIH07XG4gIH1cblxuICBvdmVycmlkZSBlbWl0TWFuaWZlc3QoKSB7XG4gICAgdGhpcy5tYW5pZmVzdE1vZGlmaWVkLmVtaXQoe1xuICAgICAgd2lkZ2V0SW5kZXg6IHRoaXMud2lkZ2V0SW5kZXgsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi50aGlzLm1hbmlmZXN0LFxuICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnNDb3B5XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjaGFuZ2VDbGFzc2VzKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5vcHRpb25zQ29weS5jbGFzc2VzID0gJGV2ZW50O1xuICB9XG5cbiAgZ2V0VmFsdWUoaXRlbTogSXRlbSwgcHJvcGVydHk6IHN0cmluZyk6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10ge1xuICAgIGNvbnN0IHZhbHVlID0gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZVZhbHVlKGl0ZW0sIHByb3BlcnR5KTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIH1cblxuICBpc1Jhdyhwcm9wZXJ0eTogc3RyaW5nLCBjbGFzc0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjbGF6eiA9IHRoaXMuY2xhc3Nlcy5maW5kKChjbGF6eikgPT4gY2xhenouaWQgPT09IGNsYXNzSWQpO1xuICAgIGNvbnN0IHByb3AgPSBjbGF6ej8uYXR0cmlidXRlcy5maW5kKChhdHRyKSA9PiBhdHRyLm5hbWUgPT09IHByb3BlcnR5KTtcbiAgICByZXR1cm4gcHJvcD8uZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLlJBVyA/PyBmYWxzZTtcbiAgfVxuXG4gIGhhc01ldGFkYXRhKHZhbHVlOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSB8IEl0ZW0pIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModmFsdWU/Lm1ldGFkYXRhID8/IHt9KS5sZW5ndGggPiAwO1xuICB9XG59XG4iLCI8cHJ5LXdpZGdldC10aWxlLWNzcz48L3ByeS13aWRnZXQtdGlsZS1jc3M+XG48ZGl2IGNsYXNzPVwiby13aWRnZXQgby13aWRnZXQtLXRpbGVcIj5cbiAgPHByeS13aWRnZXQtaGVhZGVyXG4gICAgW2RhdGFzb3VyY2VJZHNdPVwiKGRhdGFzb3VyY2VJZHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAqbmdJZj1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgW21hbmlmZXN0XT1cIm1hbmlmZXN0XCJcbiAgICAobWFuaWZlc3RNb2RpZmllZCk9XCJtYW5pZmVzdE1vZGlmaWVkLmVtaXQoJGV2ZW50KVwiXG4gICAgW2hlYWRlck9wdGlvbnNdPVwiKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpID8/IHt9XCJcbiAgICAjaGVhZGVyXG4gID5cbiAgICA8cHJ5LXNldHRpbmdzXG4gICAgICAoc2F2ZVRyaWdnZXJlZCk9XCJlbWl0TWFuaWZlc3QoKVwiXG4gICAgICAoY2hhbmdlVGl0bGUpPVwiY2hhbmdlV2lkZ2V0VGl0bGUoJGV2ZW50KVwiXG4gICAgICBbaGVhZGVyUHJlc2VudF09XCJkaXNwbGF5SGVhZGVyJCB8IGFzeW5jXCJcbiAgICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgICBbaGVhZGVyXT1cImhlYWRlclwiXG4gICAgICBbb3BlbiRdPVwib3BlbiRcIlxuICAgICAgY2xhc3M9XCJvLXNldHRpbmdzXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0aWxlX2NsYXNzZXNcIj57eyAnQHByeS53aWRnZXQudGlsZS5jbGFzc2VzJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNsYXNzZXMoJGV2ZW50KVwiXG4gICAgICAgICAgW2l0ZW1zXT1cImNsYXNzZXMkIHwgYXN5bmNcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwib3B0aW9uc0NvcHkuY2xhc3Nlc1wiXG4gICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgICAgIGlkPVwidGlsZV9jbGFzc2VzXCJcbiAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvcHJ5LXNldHRpbmdzPlxuICA8L3ByeS13aWRnZXQtaGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLXRpbGUtd3JhcHBlclwiIFtzdHlsZS50b3BdPVwiKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpID8gV0lER0VUX0hFQURFUl9IRUlHSFQgKyAncHgnIDogMFwiPlxuICAgIEBpZiAoKGl0ZW1zJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0XCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBjbGFzcz1cIm5vLXJlc3VsdF9fc2VhcmNoXCJcbiAgICAgICAgICBzcmM9XCIuLi8uLi8uLi9hc3NldHMvc3Zncy9wcnlfcmVjaGVyY2hlX3Bhc19kZV9yZXN1bHRhdC5zdmdcIlxuICAgICAgICAgIGFsdD1cInt7ICdAcHJ5LndpZGdldC50aWxlLmVtcHR5JyB8IGkxOG4gfX1cIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibm8tcmVzdWx0X190ZXh0XCI+e3sgJ0Bwcnkud2lkZ2V0LnRpbGUuZW1wdHknIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8dWwgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdFwiPlxuICAgICAgQGZvciAoaXRlbSBvZiBpdGVtcyQgfCBhc3luYzsgdHJhY2sgaXRlbS5pZDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgIDxsaSBjbGFzcz1cIm8td2lkZ2V0LS10aWxlX19saXN0X19pdGVtXCIgKGNvbnRleHRtZW51KT1cImNvbnRleHRNZW51KCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLXRpbGVfX2xpc3RfX2l0ZW1fX2hlYWRlclwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjI1XCJcbiAgICAgICAgICAgICAgW3dpZHRoXT1cIjI1XCJcbiAgICAgICAgICAgICAgW3NyY109XCJpdGVtIHwgdHJhbnNsYXRlSXRlbVRvU3ltYm9sIHwgYXN5bmNcIlxuICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0ub0NsYXNzIHwgdHJhbnNsYXRlSWQ6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbV9faGVhZGVyX190aXRsZVwiPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgIGl0ZW0ub0NsYXNzXG4gICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZUlkXG4gICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NsYXNzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dDogJ25hbWUnXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwiKHNlbGVjdGVkSWRzJCB8IGFzeW5jKS5pbmNsdWRlcyhpdGVtLmlkKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3QoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICA+PC9wcnktY2hlY2tib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJvcGVydGllc1wiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0XCI+XG4gICAgICAgICAgICAgIEBmb3IgKHByb3BlcnR5IG9mIChwcm9wZXJ0aWVzVG9EaXNwbGF5JCB8IGFzeW5jKSFbaXRlbS5vQ2xhc3NdOyB0cmFjayBwcm9wZXJ0eS5wcm9wKSB7XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZ2V0VmFsdWUoaXRlbSwgcHJvcGVydHkucHJvcCk7IGxldCBpID0gaW5kZXg7IGxldCBjID0gY291bnRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvLXByb3BlcnRpZXNfX2xpc3RfX2l0ZW1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm8tcHJvcGVydGllc19fbGlzdF9faXRlbV9fbGFiZWxcIj57eyBwcm9wZXJ0eS5sYWJlbCB9fTo8L3A+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKCFpc1Jhdyhwcm9wZXJ0eS5sYWJlbCwgaXRlbS5vQ2xhc3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtX192YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlPy52YWx1ZSB8IGRhdGFGb3JtYXQ6IHByb3BlcnR5LmZpZWxkIH19XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm8tcHJvcGVydGllc19fbGlzdF9faXRlbV9fcmF3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHByeS12aXp1YWxpemUtcmF3IFtpdGVtXT1cIml0ZW1cIiBbcHJvcGVydHlOYW1lXT1cInByb3BlcnR5LmxhYmVsXCI+PC9wcnktdml6dWFsaXplLXJhdz5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmIChoYXNNZXRhZGF0YSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHByeS1tZXRhZGF0YSBbaXRlbV09XCJ2YWx1ZVwiPjwvcHJ5LW1ldGFkYXRhPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwidG9nZ2xlTWFwKGluZGV4LCBpdGVtKVwiIGNsYXNzPVwiby13aWRnZXQtLXRpbGVfX2xpc3RfX2l0ZW1fX2Zvb3RlclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi10ZXh0IC1saW5rLWxpa2VcIlxuICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwidGlsZS1tYXAteHh4XCJcbiAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ0Bwcnkud2lkZ2V0LnRpbGUubWFwJyB8IGkxOG4gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZiAobWFwc1tpbmRleF0pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbV9fbWFwXCIgaWQ9XCJ0aWxlLW1hcC14eHhcIj5cbiAgICAgICAgICAgICAgPHByeS13aWRnZXQtbWFwIFtzdGF0aWNNYW5pZmVzdF09XCJtYXBNYW5pZmVzdFwiIFtzdGF0aWNSZXN1bHRTZXRdPVwibWFwc1tpbmRleF0hXCI+PC9wcnktd2lkZ2V0LW1hcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGlsZS9jb21wb25lbnQvd2lkZ2V0LXRpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGlsZS9jb21wb25lbnQvd2lkZ2V0LXRpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBR0wsY0FBYyxFQUNkLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFFbkIsY0FBYyxFQUNkLFNBQVMsRUFFVCxTQUFTLEVBR1Qsb0JBQW9CLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBTTdDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUFrQjFELFlBQVksS0FBaUIsRUFBRSxFQUFjO1FBQzNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFmbkIsU0FBSSxHQUE4QixFQUFFLENBQUM7UUFDckMsZ0JBQVcsR0FBRztZQUNaLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQzNDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtTQUNyRCxDQUFDO1FBRUYsZ0JBQVcsR0FBc0IsRUFBRSxDQUFDO1FBQ3BDLHlCQUFvQixHQUFHLG9CQUFvQixDQUFDO1FBRTVDLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFZLEVBQUUsQ0FBQztRQUlwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQTRCLENBQUMsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9ELElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxHQUFJLGVBQWUsQ0FBQyxPQUFPLENBQXVCLEVBQUUsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RixJQUFJLENBQUMsUUFBUTtTQUNkLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUN2QixLQUFLLENBQUMsTUFBTSxDQUNWLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FDcEcsQ0FDRixDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxhQUFhLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUM7WUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDO1NBQ3hELENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsR0FBRyxPQUFPO2lCQUNQLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDZixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDVixHQUFHLEtBQUssQ0FBQyxVQUFVO3lCQUNoQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWE7d0JBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztxQkFDbEIsQ0FBQyxDQUFDO3lCQUNGLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztpQkFDNUM7YUFDRixDQUFDLENBQUM7aUJBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekMsR0FBRyxPQUFPO2lCQUNQLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3ZDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDZixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDVixHQUFHLEtBQUssQ0FBQyxVQUFVO3lCQUNoQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDeEQsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTt3QkFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhO3dCQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7cUJBQ2xCLENBQUMsQ0FBQztpQkFDTjthQUNGLENBQUMsQ0FBQztpQkFDRixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUMxQyxDQUFDLENBQUMsQ0FDSixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWtCLEVBQUUsSUFBVTtRQUN4QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGtCQUFrQixDQUFDLElBQUksQ0FBQztnQkFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNmLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDdkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUN2QixJQUFJLEVBQUUsTUFBTTtnQkFDWixtQkFBbUIsRUFBRSxLQUFLO2FBQzNCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsTUFBa0IsRUFBRSxJQUFVO1FBQ25DLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFVO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNsQyxDQUFDLENBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBZ0I7WUFDcEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBVTtRQUMxQixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRVEsWUFBWTtRQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1lBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxJQUFJLENBQUMsUUFBUTtnQkFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFXO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNwQyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVUsRUFBRSxRQUFnQjtRQUNuQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxLQUFLLENBQUMsUUFBZ0IsRUFBRSxPQUFlO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFrQztRQUM1QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OEdBeElVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhFQzNCaEMsNG9KQXlIQTs7MkZEOUZhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlU2ltcGxlVmFsdWUsXG4gIENsYXNzLFxuICBDbGFzc1NlbGVjdG9ycyxcbiAgQ29uZmlnU2VsZWN0b3JzLFxuICBDb250ZXh0TWVudUFjdGlvbnMsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGF0YVdpZGdldENvbXBvbmVudCxcbiAgRmllbGQsXG4gIEZpZWxkU2VsZWN0b3JzLFxuICBGaWVsZFR5cGUsXG4gIEl0ZW0sXG4gIEl0ZW1VdGlscyxcbiAgUmVzdWx0U2V0LFxuICBUaWxlV2lkZ2V0T3B0aW9ucyxcbiAgV0lER0VUX0hFQURFUl9IRUlHSFRcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktd2lkZ2V0LXRpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXRpbGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFRpbGVDb21wb25lbnQgZXh0ZW5kcyBEYXRhV2lkZ2V0Q29tcG9uZW50IHtcbiAgb3B0aW9ucyQ6IE9ic2VydmFibGU8VGlsZVdpZGdldE9wdGlvbnM+O1xuICBpdGVtcyQ6IE9ic2VydmFibGU8SXRlbVtdPjtcbiAgc2VsZWN0ZWRJZHMkOiBPYnNlcnZhYmxlPGFueT47XG4gIG1hcHM6ICh1bmRlZmluZWQgfCBSZXN1bHRTZXQpW10gPSBbXTtcbiAgbWFwTWFuaWZlc3QgPSB7XG4gICAgdHlwZTogJ21hcCcsXG4gICAgaGVhZGVyOiBmYWxzZSxcbiAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgd2lkdGg6IDEsIGhlaWdodDogMSB9LFxuICAgIG9wdGlvbnM6IHsgbGF5ZXJzOiBbeyB0eXBlOiAnbWFya2VyJyB9XSwgZml0OiB0cnVlIH1cbiAgfTtcbiAgY2xhc3NlcyQ6IE9ic2VydmFibGU8Q2xhc3NbXT47XG4gIG9wdGlvbnNDb3B5OiBUaWxlV2lkZ2V0T3B0aW9ucyA9IHt9O1xuICBXSURHRVRfSEVBREVSX0hFSUdIVCA9IFdJREdFVF9IRUFERVJfSEVJR0hUO1xuICBwcm9wZXJ0aWVzVG9EaXNwbGF5JDogT2JzZXJ2YWJsZTx7IFtwOiBzdHJpbmddOiB7IGxhYmVsOiBzdHJpbmc7IHByb3A6IHN0cmluZzsgZmllbGQ6IEZpZWxkIH1bXSB9IHwgdW5kZWZpbmVkPjtcbiAgZmllbGRzOiBGaWVsZFtdID0gW107XG4gIGNsYXNzZXM6IENsYXNzW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmU8YW55PiwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihzdG9yZSwgZWwpO1xuICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLm1hbmlmZXN0JC5waXBlKG1hcCgobWFuaWZlc3QpID0+IG1hbmlmZXN0Lm9wdGlvbnMgYXMgVGlsZVdpZGdldE9wdGlvbnMpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5vcHRpb25zJC5waXBlKGZpbHRlcigob3B0KSA9PiAhIW9wdCkpLnN1YnNjcmliZSgob3B0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnNDb3B5ID0geyAuLi4oc3RydWN0dXJlZENsb25lKG9wdGlvbnMpIGFzIFRpbGVXaWRnZXRPcHRpb25zKSB9O1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuaXRlbXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnJlc3VsdFNldCQucGlwZShtYXAoKHJzKSA9PiBPYmplY3QudmFsdWVzKHJzLml0ZW1zKS5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pKSksXG4gICAgICB0aGlzLm9wdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2l0ZW1zLCBvcHRpb25zXSkgPT5cbiAgICAgICAgaXRlbXMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiAhb3B0aW9ucy5jbGFzc2VzIHx8IG9wdGlvbnMuY2xhc3Nlcy5sZW5ndGggPT09IDAgfHwgb3B0aW9ucy5jbGFzc2VzLmluY2x1ZGVzKGl0ZW0ub0NsYXNzKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkSWRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5zZWxlY3RlZEl0ZW1JZHMpO1xuICAgIHRoaXMuY2xhc3NlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKTtcbiAgICB0aGlzLnByb3BlcnRpZXNUb0Rpc3BsYXkkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNsYXNzZXMkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnRpbGVBdHRyaWJ1dGVzRGVmaW5pdGlvbnMpLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLm1heEF0dHJpYnV0ZXNJblRpbGVzKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtjbGFzc2VzLCB0aWxlRGVmcywgbWF4VGlsZXNBdHRyaWJ1dGVzXSkgPT4gKHtcbiAgICAgICAgLi4uY2xhc3Nlc1xuICAgICAgICAgIC5tYXAoKGNsYXp6KSA9PiAoe1xuICAgICAgICAgICAgW2NsYXp6LmlkXTogW1xuICAgICAgICAgICAgICAuLi5jbGF6ei5hdHRyaWJ1dGVzXG4gICAgICAgICAgICAgICAgLm1hcCgoYXR0cikgPT4gKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBhdHRyLm5hbWUsXG4gICAgICAgICAgICAgICAgICBwcm9wOiBhdHRyLnRlY2huaWNhbE5hbWUsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogYXR0ci5maWVsZFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKF8sIGkpID0+IGkgPCBtYXhUaWxlc0F0dHJpYnV0ZXMpXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSkpXG4gICAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgLi4uYyB9KSwge30pLFxuICAgICAgICAuLi5jbGFzc2VzXG4gICAgICAgICAgLmZpbHRlcigoY2xhenopID0+ICEhdGlsZURlZnNbY2xhenouaWRdKVxuICAgICAgICAgIC5tYXAoKGNsYXp6KSA9PiAoe1xuICAgICAgICAgICAgW2NsYXp6LmlkXTogW1xuICAgICAgICAgICAgICAuLi5jbGF6ei5hdHRyaWJ1dGVzXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYXR0cikgPT4gdGlsZURlZnNbY2xhenouaWRdLmluY2x1ZGVzKGF0dHIubmFtZSkpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXR0cikgPT4gKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBhdHRyLm5hbWUsXG4gICAgICAgICAgICAgICAgICBwcm9wOiBhdHRyLnRlY2huaWNhbE5hbWUsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogYXR0ci5maWVsZFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIC4uLmMgfSksIHt9KVxuICAgICAgfSkpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RvcmUuc2VsZWN0KEZpZWxkU2VsZWN0b3JzLmZpZWxkcykuc3Vic2NyaWJlKChmaWVsZHMpID0+ICh0aGlzLmZpZWxkcyA9IGZpZWxkcykpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuY2xhc3NlcyQuc3Vic2NyaWJlKChjbGFzc2VzKSA9PiAodGhpcy5jbGFzc2VzID0gY2xhc3NlcykpKTtcbiAgfVxuXG4gIGNvbnRleHRNZW51KCRldmVudDogTW91c2VFdmVudCwgaXRlbTogSXRlbSkge1xuICAgIGlmICh0aGlzLm1hbmlmZXN0LmNvbnRleHRNZW51ICE9PSBmYWxzZSkge1xuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBDb250ZXh0TWVudUFjdGlvbnMub3Blbih7XG4gICAgICAgICAgaXRlbUlkOiBpdGVtLmlkLFxuICAgICAgICAgIGNsaWVudFg6ICRldmVudC5jbGllbnRYLFxuICAgICAgICAgIGNsaWVudFk6ICRldmVudC5jbGllbnRZLFxuICAgICAgICAgIGZyb206ICd0aWxlJyxcbiAgICAgICAgICBhbGxvd09iamVjdENyZWF0aW9uOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3QoJGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBJdGVtKSB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3QoeyBpZDogaXRlbS5pZCwgY3VtdWxhdGl2ZTogISRldmVudC5zaGlmdEtleSB9KSk7XG4gIH1cblxuICB0b2dnbGVNYXAoaW5kZXg6IG51bWJlciwgaXRlbTogSXRlbSkge1xuICAgIHRoaXMubWFwc1tpbmRleF0gPSAhdGhpcy5tYXBzW2luZGV4XVxuICAgICAgPyAoeyBpdGVtczogeyBbaXRlbS5vQ2xhc3NdOiBbaXRlbV0gfSwgcmVsYXRpb25zOiBbXSB9IGFzIFJlc3VsdFNldClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmVzdWx0U2V0V2l0aEl0ZW0oaXRlbTogSXRlbSk6IFJlc3VsdFNldCB7XG4gICAgcmV0dXJuIHsgaXRlbXM6IHsgW2l0ZW0ub0NsYXNzXTogW2l0ZW1dIH0sIHJlbGF0aW9uczogW10gfTtcbiAgfVxuXG4gIG92ZXJyaWRlIGVtaXRNYW5pZmVzdCgpIHtcbiAgICB0aGlzLm1hbmlmZXN0TW9kaWZpZWQuZW1pdCh7XG4gICAgICB3aWRnZXRJbmRleDogdGhpcy53aWRnZXRJbmRleCxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnRoaXMubWFuaWZlc3QsXG4gICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9uc0NvcHlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNoYW5nZUNsYXNzZXMoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnNDb3B5LmNsYXNzZXMgPSAkZXZlbnQ7XG4gIH1cblxuICBnZXRWYWx1ZShpdGVtOiBJdGVtLCBwcm9wZXJ0eTogc3RyaW5nKTogQXR0cmlidXRlU2ltcGxlVmFsdWVbXSB7XG4gICAgY29uc3QgdmFsdWUgPSBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlVmFsdWUoaXRlbSwgcHJvcGVydHkpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfVxuXG4gIGlzUmF3KHByb3BlcnR5OiBzdHJpbmcsIGNsYXNzSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsYXp6ID0gdGhpcy5jbGFzc2VzLmZpbmQoKGNsYXp6KSA9PiBjbGF6ei5pZCA9PT0gY2xhc3NJZCk7XG4gICAgY29uc3QgcHJvcCA9IGNsYXp6Py5hdHRyaWJ1dGVzLmZpbmQoKGF0dHIpID0+IGF0dHIubmFtZSA9PT0gcHJvcGVydHkpO1xuICAgIHJldHVybiBwcm9wPy5maWVsZC50eXBlID09PSBGaWVsZFR5cGUuUkFXID8/IGZhbHNlO1xuICB9XG5cbiAgaGFzTWV0YWRhdGEodmFsdWU6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlIHwgSXRlbSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh2YWx1ZT8ubWV0YWRhdGEgPz8ge30pLmxlbmd0aCA+IDA7XG4gIH1cbn1cbiIsIjxwcnktd2lkZ2V0LXRpbGUtY3NzPjwvcHJ5LXdpZGdldC10aWxlLWNzcz5cbjxkaXYgY2xhc3M9XCJvLXdpZGdldCBvLXdpZGdldC0tdGlsZVwiPlxuICBAaWYgKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpIHtcbiAgICA8cHJ5LXdpZGdldC1oZWFkZXJcbiAgICAgIFtkYXRhc291cmNlSWRzXT1cIihkYXRhc291cmNlSWRzJCB8IGFzeW5jKSA/PyBbXVwiXG4gICAgICBbd2lkZ2V0SW5kZXhdPVwid2lkZ2V0SW5kZXhcIlxuICAgICAgW21hbmlmZXN0XT1cIm1hbmlmZXN0XCJcbiAgICAgIChtYW5pZmVzdE1vZGlmaWVkKT1cIm1hbmlmZXN0TW9kaWZpZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgIFtoZWFkZXJPcHRpb25zXT1cIihkaXNwbGF5SGVhZGVyJCB8IGFzeW5jKSA/PyB7fVwiXG4gICAgICAjaGVhZGVyXG4gICAgICA+XG4gICAgICA8cHJ5LXNldHRpbmdzXG4gICAgICAgIChzYXZlVHJpZ2dlcmVkKT1cImVtaXRNYW5pZmVzdCgpXCJcbiAgICAgICAgKGNoYW5nZVRpdGxlKT1cImNoYW5nZVdpZGdldFRpdGxlKCRldmVudClcIlxuICAgICAgICBbaGVhZGVyUHJlc2VudF09XCJkaXNwbGF5SGVhZGVyJCB8IGFzeW5jXCJcbiAgICAgICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICAgICAgW2hlYWRlcl09XCJoZWFkZXJcIlxuICAgICAgICBbb3BlbiRdPVwib3BlbiRcIlxuICAgICAgICBjbGFzcz1cIm8tc2V0dGluZ3NcIlxuICAgICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwidGlsZV9jbGFzc2VzXCI+e3sgJ0Bwcnkud2lkZ2V0LnRpbGUuY2xhc3NlcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlQ2xhc3NlcygkZXZlbnQpXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJjbGFzc2VzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjbG9zZU9uU2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnNDb3B5LmNsYXNzZXNcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgICAgICBpZD1cInRpbGVfY2xhc3Nlc1wiXG4gICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3ByeS1zZXR0aW5ncz5cbiAgICA8L3ByeS13aWRnZXQtaGVhZGVyPlxuICB9XG4gIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tdGlsZS13cmFwcGVyXCIgW3N0eWxlLnRvcF09XCIoZGlzcGxheUhlYWRlciQgfCBhc3luYykgPyBXSURHRVRfSEVBREVSX0hFSUdIVCArICdweCcgOiAwXCI+XG4gICAgQGlmICgoaXRlbXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJuby1yZXN1bHRcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIGNsYXNzPVwibm8tcmVzdWx0X19zZWFyY2hcIlxuICAgICAgICAgIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9zdmdzL3ByeV9yZWNoZXJjaGVfcGFzX2RlX3Jlc3VsdGF0LnN2Z1wiXG4gICAgICAgICAgYWx0PVwie3sgJ0Bwcnkud2lkZ2V0LnRpbGUuZW1wdHknIHwgaTE4biB9fVwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXJlc3VsdF9fdGV4dFwiPnt7ICdAcHJ5LndpZGdldC50aWxlLmVtcHR5JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPHVsIGNsYXNzPVwiby13aWRnZXQtLXRpbGVfX2xpc3RcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXMkIHwgYXN5bmM7IHRyYWNrIGl0ZW0uaWQ7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICA8bGkgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbVwiIChjb250ZXh0bWVudSk9XCJjb250ZXh0TWVudSgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8td2lkZ2V0LS10aWxlX19saXN0X19pdGVtX19oZWFkZXJcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgW2hlaWdodF09XCIyNVwiXG4gICAgICAgICAgICAgIFt3aWR0aF09XCIyNVwiXG4gICAgICAgICAgICAgIFtzcmNdPVwiaXRlbSB8IHRyYW5zbGF0ZUl0ZW1Ub1N5bWJvbCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLm9DbGFzcyB8IHRyYW5zbGF0ZUlkOiB7IHR5cGU6ICdjbGFzcycsIG91dHB1dDogJ25hbWUnIH0gfCBhc3luY1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbV9faGVhZGVyX190aXRsZVwiPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICBpdGVtLm9DbGFzc1xuICAgICAgICAgICAgICB8IHRyYW5zbGF0ZUlkXG4gICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICB0eXBlOiAnY2xhc3MnLFxuICAgICAgICAgICAgICBvdXRwdXQ6ICduYW1lJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIihzZWxlY3RlZElkcyQgfCBhc3luYykuaW5jbHVkZXMoaXRlbS5pZClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICA+PC9wcnktY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcm9wZXJ0aWVzXCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChwcm9wZXJ0eSBvZiAocHJvcGVydGllc1RvRGlzcGxheSQgfCBhc3luYykhW2l0ZW0ub0NsYXNzXTsgdHJhY2sgcHJvcGVydHkucHJvcCkge1xuICAgICAgICAgICAgICBAZm9yICh2YWx1ZSBvZiBnZXRWYWx1ZShpdGVtLCBwcm9wZXJ0eS5wcm9wKTsgdHJhY2sgdmFsdWU7IGxldCBpID0gJGluZGV4OyBsZXQgYyA9ICRjb3VudCkge1xuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvLXByb3BlcnRpZXNfX2xpc3RfX2l0ZW1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtX19sYWJlbFwiPnt7IHByb3BlcnR5LmxhYmVsIH19OjwvcD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBpZiAoIWlzUmF3KHByb3BlcnR5LmxhYmVsLCBpdGVtLm9DbGFzcykpIHtcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJvLXByb3BlcnRpZXNfX2xpc3RfX2l0ZW1fX3ZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWU/LnZhbHVlIHwgZGF0YUZvcm1hdDogcHJvcGVydHkuZmllbGQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtX19yYXdcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cHJ5LXZpenVhbGl6ZS1yYXcgW2l0ZW1dPVwiaXRlbVwiIFtwcm9wZXJ0eU5hbWVdPVwicHJvcGVydHkubGFiZWxcIj48L3ByeS12aXp1YWxpemUtcmF3PlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKGhhc01ldGFkYXRhKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICA8cHJ5LW1ldGFkYXRhIFtpdGVtXT1cInZhbHVlXCI+PC9wcnktbWV0YWRhdGE+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IChjbGljayk9XCJ0b2dnbGVNYXAoaW5kZXgsIGl0ZW0pXCIgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbV9fZm9vdGVyXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLXRleHQgLWxpbmstbGlrZVwiXG4gICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwidGlsZS1tYXAteHh4XCJcbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQHByeS53aWRnZXQudGlsZS5tYXAnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChtYXBzW2luZGV4XSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbV9fbWFwXCIgaWQ9XCJ0aWxlLW1hcC14eHhcIj5cbiAgICAgICAgICAgIDxwcnktd2lkZ2V0LW1hcCBbc3RhdGljTWFuaWZlc3RdPVwibWFwTWFuaWZlc3RcIiBbc3RhdGljUmVzdWx0U2V0XT1cIm1hcHNbaW5kZXhdIVwiPjwvcHJ5LXdpZGdldC1tYXA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvbGk+XG4gICAgfVxuICA8L3VsPlxuPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -7,8 +7,8 @@ import embed from 'vega-embed';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@ngrx/store";
|
|
9
9
|
import * as i2 from "@provoly/dashboard";
|
|
10
|
-
import * as i3 from "
|
|
11
|
-
import * as i4 from "
|
|
10
|
+
import * as i3 from "../style/css.component";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
12
|
export class WidgetVegaComponent extends DataWidgetComponent {
|
|
13
13
|
constructor(store, translateService, el, document, snackService) {
|
|
14
14
|
super(store, el);
|
|
@@ -21,13 +21,13 @@ export class WidgetVegaComponent extends DataWidgetComponent {
|
|
|
21
21
|
this.initialFormattedBaseSpec = '{}';
|
|
22
22
|
this.options$ = this.manifest$.pipe(map((manifest) => (manifest.options ?? {})));
|
|
23
23
|
this.subscriptions.add(this.options$.subscribe((options) => {
|
|
24
|
-
this.optionsCopy =
|
|
24
|
+
this.optionsCopy = structuredClone(options);
|
|
25
25
|
this.formattedBaseSpec = JSON.stringify(this.optionsCopy.baseSpec, undefined, 4);
|
|
26
26
|
this.initialFormattedBaseSpec = JSON.stringify(this.optionsCopy.baseSpec, undefined, 4);
|
|
27
27
|
}));
|
|
28
28
|
this.vegaSpec$ = combineLatest([this.options$, this.resultSet$, this.widgetSize$, this.displayHeader$]).pipe(filter(([options, rs, size, header]) => !!rs), map(([options, rs, size, header]) => {
|
|
29
29
|
const data = WidgetVegaComponent.getValues(rs);
|
|
30
|
-
const vegaSpec = WidgetVegaComponent.placeData(options,
|
|
30
|
+
const vegaSpec = WidgetVegaComponent.placeData(options, structuredClone(options.baseSpec), data);
|
|
31
31
|
vegaSpec.width = vegaSpec.width ?? size.width - 5;
|
|
32
32
|
vegaSpec.height = vegaSpec.height ?? size.height - 5 - (header ? WIDGET_HEADER_HEIGHT.value : 0);
|
|
33
33
|
vegaSpec.autosize = vegaSpec.autosize ?? { type: 'fit', contains: 'padding' };
|
|
@@ -52,7 +52,7 @@ export class WidgetVegaComponent extends DataWidgetComponent {
|
|
|
52
52
|
return result;
|
|
53
53
|
}
|
|
54
54
|
static placeData(options, baseSpec, data) {
|
|
55
|
-
const clone =
|
|
55
|
+
const clone = structuredClone(baseSpec);
|
|
56
56
|
let ref = clone;
|
|
57
57
|
(options.placeData ?? []).forEach((prop, idx, arr) => {
|
|
58
58
|
if (ref) {
|
|
@@ -74,7 +74,7 @@ export class WidgetVegaComponent extends DataWidgetComponent {
|
|
|
74
74
|
if (this.document.logVegaSpec !== undefined) {
|
|
75
75
|
console.log(JSON.stringify(spec, undefined, 4));
|
|
76
76
|
}
|
|
77
|
-
embed(this.vega.nativeElement,
|
|
77
|
+
embed(this.vega.nativeElement, structuredClone(spec), {
|
|
78
78
|
actions: false,
|
|
79
79
|
renderer: 'canvas',
|
|
80
80
|
formatLocale: this.translateService.instantObject('@pry.widget.chart.numberLocale'),
|
|
@@ -122,11 +122,11 @@ export class WidgetVegaComponent extends DataWidgetComponent {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetVegaComponent, deps: [{ token: i1.Store }, { token: i2.PryI18nService }, { token: i0.ElementRef }, { token: DOCUMENT }, { token: i2.PrySnackbarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
125
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: WidgetVegaComponent, selector: "pry-widget-vega", viewQueries: [{ propertyName: "vega", first: true, predicate: ["vega"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-widget-vega-css></pry-widget-vega-css>\n<div class=\"o-widget o-widget--chart\">\n @if (displayHeader$ | async) {\n <pry-widget-header\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"placeData_src\">{{ '@pry.widget.vega.placeData' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"placeData_src\"\n type=\"text\"\n [value]=\"(optionsCopy.placeData ?? []).join('.')\"\n (input)=\"changePlaceData($event)\"\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"spec_src\">{{ '@pry.widget.vega.spec' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area\"\n id=\"spec_src\"\n [value]=\"formattedBaseSpec\"\n (input)=\"changeSpec($event)\"\n ></textarea>\n </div>\n </div>\n </pry-settings>\n </pry-widget-header>\n }\n <div class=\"o-widget--chart--chart\" #vega></div>\n</div>\n", dependencies: [{ kind: "component", type: i2.SettingsComponent, selector: "pry-settings", inputs: ["widgetIndex", "isDisable", "headerPresent", "open$", "header"], outputs: ["triggerClick", "saveTriggered", "changeTitle"] }, { kind: "component", type: i2.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: i3.PryWidgetVegaCssComponent, selector: "pry-widget-vega-css" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
126
126
|
}
|
|
127
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WidgetVegaComponent, decorators: [{
|
|
128
128
|
type: Component,
|
|
129
|
-
args: [{ selector: 'pry-widget-vega', template: "<pry-widget-vega-css></pry-widget-vega-css>\n<div class=\"o-widget o-widget--chart\">\n
|
|
129
|
+
args: [{ selector: 'pry-widget-vega', template: "<pry-widget-vega-css></pry-widget-vega-css>\n<div class=\"o-widget o-widget--chart\">\n @if (displayHeader$ | async) {\n <pry-widget-header\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"placeData_src\">{{ '@pry.widget.vega.placeData' | i18n }}</label>\n <input\n class=\"a-form-field\"\n id=\"placeData_src\"\n type=\"text\"\n [value]=\"(optionsCopy.placeData ?? []).join('.')\"\n (input)=\"changePlaceData($event)\"\n />\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"spec_src\">{{ '@pry.widget.vega.spec' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area\"\n id=\"spec_src\"\n [value]=\"formattedBaseSpec\"\n (input)=\"changeSpec($event)\"\n ></textarea>\n </div>\n </div>\n </pry-settings>\n </pry-widget-header>\n }\n <div class=\"o-widget--chart--chart\" #vega></div>\n</div>\n" }]
|
|
130
130
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.PryI18nService }, { type: i0.ElementRef }, { type: Document, decorators: [{
|
|
131
131
|
type: Inject,
|
|
132
132
|
args: [DOCUMENT]
|
|
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
134
134
|
type: ViewChild,
|
|
135
135
|
args: ['vega']
|
|
136
136
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXZlZ2EuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUVMLG1CQUFtQixFQU9uQixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sS0FBNEIsTUFBTSxZQUFZLENBQUM7Ozs7OztBQU10RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBVTFELFlBQ0UsS0FBaUIsRUFDVCxnQkFBZ0MsRUFDeEMsRUFBYyxFQUNZLFFBQWtCLEVBQ3BDLFlBQWdDO1FBRXhDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFMVCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBRWQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFYMUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsZ0JBQVcsR0FBc0IsRUFBRSxRQUFR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QUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYTtRQUN0QixJQUFJLENBQUM7WUFDSCxhQUFhO1lBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDakQsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUM7Z0JBQzNFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDO2FBQ3JFLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0E1SVUsbUJBQW1CLCtGQWNwQixRQUFRO2tHQWRQLG1CQUFtQiw0S0N2QmhDLDhsREE4Q0E7OzJGRHZCYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsaUJBQWlCOzswQkFpQnhCLE1BQU07MkJBQUMsUUFBUTswRUFiQyxJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLFxuICBEYXRhV2lkZ2V0Q29tcG9uZW50LFxuICBJdGVtLFxuICBQcnlJMThuU2VydmljZSxcbiAgUHJ5U25hY2tiYXJTZXJ2aWNlLFxuICBSZXN1bHRTZXQsXG4gIFZhbHVlVHlwZSxcbiAgVmVnYVdpZGdldE9wdGlvbnMsXG4gIFdJREdFVF9IRUFERVJfSEVJR0hUXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZpZXcgfSBmcm9tICd2ZWdhJztcbmltcG9ydCBlbWJlZCwgeyBWaXN1YWxpemF0aW9uU3BlYyB9IGZyb20gJ3ZlZ2EtZW1iZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktd2lkZ2V0LXZlZ2EnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXZlZ2EuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFZlZ2FDb21wb25lbnQgZXh0ZW5kcyBEYXRhV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3ZlZ2EnKSB2ZWdhITogRWxlbWVudFJlZjtcbiAgdmlldz86IFZpZXc7XG4gIHZlZ2FTcGVjJDogT2JzZXJ2YWJsZTxWaXN1YWxpemF0aW9uU3BlYz47XG4gIHRyaWdnZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgb3B0aW9ucyQ6IE9ic2VydmFibGU8YW55PjtcbiAgb3B0aW9uc0NvcHk6IFZlZ2FXaWRnZXRPcHRpb25zID0geyBiYXNlU3BlYzoge30sIHBsYWNlRGF0YTogW10gfTtcbiAgZm9ybWF0dGVkQmFzZVNwZWM6IHN0cmluZyA9ICd7fSc7XG4gIGluaXRpYWxGb3JtYXR0ZWRCYXNlU3BlYzogc3RyaW5nID0gJ3t9JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlLFxuICAgIGVsOiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByaXZhdGUgc25hY2tTZXJ2aWNlOiBQcnlTbmFja2JhclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUsIGVsKTtcblxuICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLm1hbmlmZXN0JC5waXBlKG1hcCgobWFuaWZlc3QpID0+IChtYW5pZmVzdC5vcHRpb25zID8/IHt9KSBhcyBhbnkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5vcHRpb25zJC5zdWJzY3JpYmUoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zQ29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICB0aGlzLmZvcm1hdHRlZEJhc2VTcGVjID0gSlNPTi5zdHJpbmdpZnkodGhpcy5vcHRpb25zQ29weS5iYXNlU3BlYywgdW5kZWZpbmVkLCA0KTtcbiAgICAgICAgdGhpcy5pbml0aWFsRm9ybWF0dGVkQmFzZVNwZWMgPSBKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnNDb3B5LmJhc2VTcGVjLCB1bmRlZmluZWQsIDQpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy52ZWdhU3BlYyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm9wdGlvbnMkLCB0aGlzLnJlc3VsdFNldCQsIHRoaXMud2lkZ2V0U2l6ZSQsIHRoaXMuZGlzcGxheUhlYWRlciRdKS5waXBlKFxuICAgICAgZmlsdGVyKChbb3B0aW9ucywgcnMsIHNpemUsIGhlYWRlcl0pID0+ICEhcnMpLFxuICAgICAgbWFwKChbb3B0aW9ucywgcnMsIHNpemUsIGhlYWRlcl0pID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IFdpZGdldFZlZ2FDb21wb25lbnQuZ2V0VmFsdWVzKHJzKTtcblxuICAgICAgICBjb25zdCB2ZWdhU3BlYyA9IFdpZGdldFZlZ2FDb21wb25lbnQucGxhY2VEYXRhKG9wdGlvbnMsIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5iYXNlU3BlYykpLCBkYXRhKTtcblxuICAgICAgICB2ZWdhU3BlYy53aWR0aCA9IHZlZ2FTcGVjLndpZHRoID8/IHNpemUud2lkdGggLSA1O1xuICAgICAgICB2ZWdhU3BlYy5oZWlnaHQgPSB2ZWdhU3BlYy5oZWlnaHQgPz8gc2l6ZS5oZWlnaHQgLSA1IC0gKGhlYWRlciA/IFdJREdFVF9IRUFERVJfSEVJR0hULnZhbHVlIDogMCk7XG4gICAgICAgIHZlZ2FTcGVjLmF1dG9zaXplID0gdmVnYVNwZWMuYXV0b3NpemUgPz8geyB0eXBlOiAnZml0JywgY29udGFpbnM6ICdwYWRkaW5nJyB9O1xuICAgICAgICB2ZWdhU3BlYy5wYWRkaW5nID0gdmVnYVNwZWMucGFkZGluZyA/PyAxNTtcblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh3aW5kb3cud2lkZ2V0VmVnYUxvZ2dpbmcgPT09IHRydWUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh2ZWdhU3BlYywgdW5kZWZpbmVkLCA0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmVnYVNwZWM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VmFsdWVzKGRhdGE6IFJlc3VsdFNldCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhLml0ZW1zKVxuICAgICAgLm1hcCgoY2xhenopID0+IGRhdGEuaXRlbXNbY2xhenpdLm1hcCgoaXRlbSkgPT4gV2lkZ2V0VmVnYUNvbXBvbmVudC50cmFuc2Zvcm1Qcm92b2x5TW9kZWxUb0NsYXNzaWMoaXRlbSkpKVxuICAgICAgLmZsYXQoKTtcbiAgfVxuXG4gIHN0YXRpYyB0cmFuc2Zvcm1Qcm92b2x5TW9kZWxUb0NsYXNzaWModmFsdWVzOiBJdGVtKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBWYWx1ZVR5cGUgfTtcbiAgICBPYmplY3Qua2V5cyh2YWx1ZXMuYXR0cmlidXRlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICByZXN1bHRba2V5XSA9ICh2YWx1ZXMuYXR0cmlidXRlc1trZXldIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS52YWx1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgcGxhY2VEYXRhKG9wdGlvbnM6IFZlZ2FXaWRnZXRPcHRpb25zLCBiYXNlU3BlYzogYW55LCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IFZhbHVlVHlwZSB9W10pIHtcbiAgICBjb25zdCBjbG9uZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYmFzZVNwZWMpKTtcbiAgICBsZXQgcmVmID0gY2xvbmU7XG4gICAgKG9wdGlvbnMucGxhY2VEYXRhID8/IFtdKS5mb3JFYWNoKChwcm9wLCBpZHgsIGFycikgPT4ge1xuICAgICAgaWYgKHJlZikge1xuICAgICAgICBpZiAoaWR4IDwgYXJyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICByZWYgPSByZWZbcHJvcF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmW3Byb3BdID0gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy52ZWdhU3BlYyQsIHRoaXMudHJpZ2dlciQsIHRoaXMud2lkZ2V0U2l6ZSRdKS5zdWJzY3JpYmUoKFtzcGVjLCBfLCBzaXplXSkgPT4ge1xuICAgICAgICBpZiAodGhpcy52ZWdhKSB7XG4gICAgICAgICAgdGhpcy52aWV3Py5maW5hbGl6ZSgpO1xuXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGlmICh0aGlzLmRvY3VtZW50LmxvZ1ZlZ2FTcGVjICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHNwZWMsIHVuZGVmaW5lZCwgNCkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVtYmVkKHRoaXMudmVnYS5uYXRpdmVFbGVtZW50LCBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHNwZWMpKSwge1xuICAgICAgICAgICAgYWN0aW9uczogZmFsc2UsXG4gICAgICAgICAgICByZW5kZXJlcjogJ2NhbnZhcycsXG4gICAgICAgICAgICBmb3JtYXRMb2NhbGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50T2JqZWN0KCdAcHJ5LndpZGdldC5jaGFydC5udW1iZXJMb2NhbGUnKSxcbiAgICAgICAgICAgIHRpbWVGb3JtYXRMb2NhbGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50T2JqZWN0KCdAcHJ5LndpZGdldC5jaGFydC50aW1lRm9ybWF0TG9jYWxlJylcbiAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+ICh0aGlzLnZpZXcgPSByZXN1bHQudmlldykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50cmlnZ2VyJC5uZXh0KCksIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXIkLm5leHQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvSW1hZ2UoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgcmVzb2x2ZSh0aGlzLnZlZ2EubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdjYW52YXMnKVswXS50b0RhdGFVUkwoJ2ltYWdlL3BuZycpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGVtaXRNYW5pZmVzdCgpIHtcbiAgICB0aGlzLm1hbmlmZXN0TW9kaWZpZWQuZW1pdCh7XG4gICAgICB3aWRnZXRJbmRleDogdGhpcy53aWRnZXRJbmRleCxcbiAgICAgIG1hbmlmZXN0OiB7IC4uLnRoaXMubWFuaWZlc3QsIG9wdGlvbnM6IHRoaXMub3B0aW9uc0NvcHkgfVxuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlUGxhY2VEYXRhKCRldmVudDogRXZlbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgZXhwciA9ICRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMub3B0aW9uc0NvcHkucGxhY2VEYXRhID0gZXhwclxuICAgICAgLnNwbGl0KCcuJylcbiAgICAgIC5tYXAoKHZhbDogc3RyaW5nKSA9PiAocGFyc2VJbnQodmFsKSArICcnID09PSBgJHt2YWx9YCA/IHBhcnNlSW50KHZhbCkgOiB2YWwpKTtcbiAgfVxuXG4gIGNoYW5nZVNwZWMoJGV2ZW50OiBFdmVudCkge1xuICAgIHRyeSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLm9wdGlvbnNDb3B5LmJhc2VTcGVjID0gSlNPTi5wYXJzZSgkZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuc25hY2tTZXJ2aWNlLm5vdE1pdGlnYXRlZE9wZW4oe1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS53aWRnZXQudmVnYS5ub3RQYXJzZWFibGVTcGVjJyksXG4gICAgICAgIGFjdGlvbjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0Bwcnkud2lkZ2V0LnZlZ2Euc3BlY1JlaW5pdCcpXG4gICAgICB9KTtcbiAgICAgIG1lc3NhZ2U/LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMgPSB0aGlzLmluaXRpYWxGb3JtYXR0ZWRCYXNlU3BlYztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPHByeS13aWRnZXQtdmVnYS1jc3M+PC9wcnktd2lkZ2V0LXZlZ2EtY3NzPlxuPGRpdiBjbGFzcz1cIm8td2lkZ2V0IG8td2lkZ2V0LS1jaGFydFwiPlxuICA8cHJ5LXdpZGdldC1oZWFkZXJcbiAgICAqbmdJZj1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgW21hbmlmZXN0XT1cIm1hbmlmZXN0XCJcbiAgICAobWFuaWZlc3RNb2RpZmllZCk9XCJtYW5pZmVzdE1vZGlmaWVkLmVtaXQoJGV2ZW50KVwiXG4gICAgI2hlYWRlclxuICAgIFtoZWFkZXJPcHRpb25zXT1cIihkaXNwbGF5SGVhZGVyJCB8IGFzeW5jKSA/PyB7fVwiXG4gICAgW2RhdGFzb3VyY2VJZHNdPVwiKGRhdGFzb3VyY2VJZHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgPlxuICAgIDxwcnktc2V0dGluZ3NcbiAgICAgIChzYXZlVHJpZ2dlcmVkKT1cImVtaXRNYW5pZmVzdCgpXCJcbiAgICAgIChjaGFuZ2VUaXRsZSk9XCJjaGFuZ2VXaWRnZXRUaXRsZSgkZXZlbnQpXCJcbiAgICAgIFtoZWFkZXJQcmVzZW50XT1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcbiAgICAgIFtvcGVuJF09XCJvcGVuJFwiXG4gICAgICBjbGFzcz1cIm8tc2V0dGluZ3NcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXNldHRpbmdzX19maWVsZHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwbGFjZURhdGFfc3JjXCI+e3sgJ0Bwcnkud2lkZ2V0LnZlZ2EucGxhY2VEYXRhJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgaWQ9XCJwbGFjZURhdGFfc3JjXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCIob3B0aW9uc0NvcHkucGxhY2VEYXRhID8/IFtdKS5qb2luKCcuJylcIlxuICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZVBsYWNlRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInNwZWNfc3JjXCI+e3sgJ0Bwcnkud2lkZ2V0LnZlZ2Euc3BlYycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkIGEtdGV4dC1hcmVhXCJcbiAgICAgICAgICAgIGlkPVwic3BlY19zcmNcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1hdHRlZEJhc2VTcGVjXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJjaGFuZ2VTcGVjKCRldmVudClcIlxuICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvcHJ5LXNldHRpbmdzPlxuICA8L3ByeS13aWRnZXQtaGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLWNoYXJ0LS1jaGFydFwiICN2ZWdhPjwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXZlZ2EuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUVMLG1CQUFtQixFQU9uQixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sS0FBNEIsTUFBTSxZQUFZLENBQUM7Ozs7OztBQU10RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBVTFELFlBQ0UsS0FBaUIsRUFDVCxnQkFBZ0MsRUFDeEMsRUFBYyxFQUNZLFFBQWtCLEVBQ3BDLFlBQWdDO1FBRXhDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFMVCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBRWQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFYMUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsZ0JBQVcsR0FBc0IsRUFBRSxRQUFR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Q0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2pELElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDO2dCQUMzRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQzthQUNyRSxDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7OEdBNUlVLG1CQUFtQiwrRkFjcEIsUUFBUTtrR0FkUCxtQkFBbUIsNEtDdkJoQyxtckRBOENBOzsyRkR2QmEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQjs7MEJBaUJ4QixNQUFNOzJCQUFDLFFBQVE7MEVBYkMsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSxcbiAgRGF0YVdpZGdldENvbXBvbmVudCxcbiAgSXRlbSxcbiAgUHJ5STE4blNlcnZpY2UsXG4gIFByeVNuYWNrYmFyU2VydmljZSxcbiAgUmVzdWx0U2V0LFxuICBWYWx1ZVR5cGUsXG4gIFZlZ2FXaWRnZXRPcHRpb25zLFxuICBXSURHRVRfSEVBREVSX0hFSUdIVFxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAndmVnYSc7XG5pbXBvcnQgZW1iZWQsIHsgVmlzdWFsaXphdGlvblNwZWMgfSBmcm9tICd2ZWdhLWVtYmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXdpZGdldC12ZWdhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC12ZWdhLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRWZWdhQ29tcG9uZW50IGV4dGVuZHMgRGF0YVdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCd2ZWdhJykgdmVnYSE6IEVsZW1lbnRSZWY7XG4gIHZpZXc/OiBWaWV3O1xuICB2ZWdhU3BlYyQ6IE9ic2VydmFibGU8VmlzdWFsaXphdGlvblNwZWM+O1xuICB0cmlnZ2VyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wdGlvbnNDb3B5OiBWZWdhV2lkZ2V0T3B0aW9ucyA9IHsgYmFzZVNwZWM6IHt9LCBwbGFjZURhdGE6IFtdIH07XG4gIGZvcm1hdHRlZEJhc2VTcGVjOiBzdHJpbmcgPSAne30nO1xuICBpbml0aWFsRm9ybWF0dGVkQmFzZVNwZWM6IHN0cmluZyA9ICd7fSc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBQcnlJMThuU2VydmljZSxcbiAgICBlbDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHNuYWNrU2VydmljZTogUHJ5U25hY2tiYXJTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKHN0b3JlLCBlbCk7XG5cbiAgICB0aGlzLm9wdGlvbnMkID0gdGhpcy5tYW5pZmVzdCQucGlwZShtYXAoKG1hbmlmZXN0KSA9PiAobWFuaWZlc3Qub3B0aW9ucyA/PyB7fSkgYXMgYW55KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMub3B0aW9ucyQuc3Vic2NyaWJlKChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkgPSBzdHJ1Y3R1cmVkQ2xvbmUob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVkQmFzZVNwZWMgPSBKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnNDb3B5LmJhc2VTcGVjLCB1bmRlZmluZWQsIDQpO1xuICAgICAgICB0aGlzLmluaXRpYWxGb3JtYXR0ZWRCYXNlU3BlYyA9IEpTT04uc3RyaW5naWZ5KHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMsIHVuZGVmaW5lZCwgNCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnZlZ2FTcGVjJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub3B0aW9ucyQsIHRoaXMucmVzdWx0U2V0JCwgdGhpcy53aWRnZXRTaXplJCwgdGhpcy5kaXNwbGF5SGVhZGVyJF0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKFtvcHRpb25zLCBycywgc2l6ZSwgaGVhZGVyXSkgPT4gISFycyksXG4gICAgICBtYXAoKFtvcHRpb25zLCBycywgc2l6ZSwgaGVhZGVyXSkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gV2lkZ2V0VmVnYUNvbXBvbmVudC5nZXRWYWx1ZXMocnMpO1xuXG4gICAgICAgIGNvbnN0IHZlZ2FTcGVjID0gV2lkZ2V0VmVnYUNvbXBvbmVudC5wbGFjZURhdGEob3B0aW9ucywgc3RydWN0dXJlZENsb25lKG9wdGlvbnMuYmFzZVNwZWMpLCBkYXRhKTtcblxuICAgICAgICB2ZWdhU3BlYy53aWR0aCA9IHZlZ2FTcGVjLndpZHRoID8/IHNpemUud2lkdGggLSA1O1xuICAgICAgICB2ZWdhU3BlYy5oZWlnaHQgPSB2ZWdhU3BlYy5oZWlnaHQgPz8gc2l6ZS5oZWlnaHQgLSA1IC0gKGhlYWRlciA/IFdJREdFVF9IRUFERVJfSEVJR0hULnZhbHVlIDogMCk7XG4gICAgICAgIHZlZ2FTcGVjLmF1dG9zaXplID0gdmVnYVNwZWMuYXV0b3NpemUgPz8geyB0eXBlOiAnZml0JywgY29udGFpbnM6ICdwYWRkaW5nJyB9O1xuICAgICAgICB2ZWdhU3BlYy5wYWRkaW5nID0gdmVnYVNwZWMucGFkZGluZyA/PyAxNTtcblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh3aW5kb3cud2lkZ2V0VmVnYUxvZ2dpbmcgPT09IHRydWUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh2ZWdhU3BlYywgdW5kZWZpbmVkLCA0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmVnYVNwZWM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VmFsdWVzKGRhdGE6IFJlc3VsdFNldCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhLml0ZW1zKVxuICAgICAgLm1hcCgoY2xhenopID0+IGRhdGEuaXRlbXNbY2xhenpdLm1hcCgoaXRlbSkgPT4gV2lkZ2V0VmVnYUNvbXBvbmVudC50cmFuc2Zvcm1Qcm92b2x5TW9kZWxUb0NsYXNzaWMoaXRlbSkpKVxuICAgICAgLmZsYXQoKTtcbiAgfVxuXG4gIHN0YXRpYyB0cmFuc2Zvcm1Qcm92b2x5TW9kZWxUb0NsYXNzaWModmFsdWVzOiBJdGVtKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBWYWx1ZVR5cGUgfTtcbiAgICBPYmplY3Qua2V5cyh2YWx1ZXMuYXR0cmlidXRlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICByZXN1bHRba2V5XSA9ICh2YWx1ZXMuYXR0cmlidXRlc1trZXldIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS52YWx1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgcGxhY2VEYXRhKG9wdGlvbnM6IFZlZ2FXaWRnZXRPcHRpb25zLCBiYXNlU3BlYzogYW55LCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IFZhbHVlVHlwZSB9W10pIHtcbiAgICBjb25zdCBjbG9uZSA9IHN0cnVjdHVyZWRDbG9uZShiYXNlU3BlYyk7XG4gICAgbGV0IHJlZiA9IGNsb25lO1xuICAgIChvcHRpb25zLnBsYWNlRGF0YSA/PyBbXSkuZm9yRWFjaCgocHJvcCwgaWR4LCBhcnIpID0+IHtcbiAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgaWYgKGlkeCA8IGFyci5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgcmVmID0gcmVmW3Byb3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlZltwcm9wXSA9IGRhdGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudmVnYVNwZWMkLCB0aGlzLnRyaWdnZXIkLCB0aGlzLndpZGdldFNpemUkXSkuc3Vic2NyaWJlKChbc3BlYywgXywgc2l6ZV0pID0+IHtcbiAgICAgICAgaWYgKHRoaXMudmVnYSkge1xuICAgICAgICAgIHRoaXMudmlldz8uZmluYWxpemUoKTtcblxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBpZiAodGhpcy5kb2N1bWVudC5sb2dWZWdhU3BlYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShzcGVjLCB1bmRlZmluZWQsIDQpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbWJlZCh0aGlzLnZlZ2EubmF0aXZlRWxlbWVudCwgc3RydWN0dXJlZENsb25lKHNwZWMpLCB7XG4gICAgICAgICAgICBhY3Rpb25zOiBmYWxzZSxcbiAgICAgICAgICAgIHJlbmRlcmVyOiAnY2FudmFzJyxcbiAgICAgICAgICAgIGZvcm1hdExvY2FsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnRPYmplY3QoJ0Bwcnkud2lkZ2V0LmNoYXJ0Lm51bWJlckxvY2FsZScpLFxuICAgICAgICAgICAgdGltZUZvcm1hdExvY2FsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnRPYmplY3QoJ0Bwcnkud2lkZ2V0LmNoYXJ0LnRpbWVGb3JtYXRMb2NhbGUnKVxuICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gKHRoaXMudmlldyA9IHJlc3VsdC52aWV3KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRyaWdnZXIkLm5leHQoKSwgMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMudHJpZ2dlciQubmV4dCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9JbWFnZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICByZXNvbHZlKHRoaXMudmVnYS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2NhbnZhcycpWzBdLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJykpO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgZW1pdE1hbmlmZXN0KCkge1xuICAgIHRoaXMubWFuaWZlc3RNb2RpZmllZC5lbWl0KHtcbiAgICAgIHdpZGdldEluZGV4OiB0aGlzLndpZGdldEluZGV4LFxuICAgICAgbWFuaWZlc3Q6IHsgLi4udGhpcy5tYW5pZmVzdCwgb3B0aW9uczogdGhpcy5vcHRpb25zQ29weSB9XG4gICAgfSk7XG4gIH1cblxuICBjaGFuZ2VQbGFjZURhdGEoJGV2ZW50OiBFdmVudCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBleHByID0gJGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gICAgdGhpcy5vcHRpb25zQ29weS5wbGFjZURhdGEgPSBleHByXG4gICAgICAuc3BsaXQoJy4nKVxuICAgICAgLm1hcCgodmFsOiBzdHJpbmcpID0+IChwYXJzZUludCh2YWwpICsgJycgPT09IGAke3ZhbH1gID8gcGFyc2VJbnQodmFsKSA6IHZhbCkpO1xuICB9XG5cbiAgY2hhbmdlU3BlYygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMgPSBKU09OLnBhcnNlKCRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5zbmFja1NlcnZpY2Uubm90TWl0aWdhdGVkT3Blbih7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LndpZGdldC52ZWdhLm5vdFBhcnNlYWJsZVNwZWMnKSxcbiAgICAgICAgYWN0aW9uOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS53aWRnZXQudmVnYS5zcGVjUmVpbml0JylcbiAgICAgIH0pO1xuICAgICAgbWVzc2FnZT8uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zQ29weS5iYXNlU3BlYyA9IHRoaXMuaW5pdGlhbEZvcm1hdHRlZEJhc2VTcGVjO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8cHJ5LXdpZGdldC12ZWdhLWNzcz48L3ByeS13aWRnZXQtdmVnYS1jc3M+XG48ZGl2IGNsYXNzPVwiby13aWRnZXQgby13aWRnZXQtLWNoYXJ0XCI+XG4gIEBpZiAoZGlzcGxheUhlYWRlciQgfCBhc3luYykge1xuICAgIDxwcnktd2lkZ2V0LWhlYWRlclxuICAgICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICAgIFttYW5pZmVzdF09XCJtYW5pZmVzdFwiXG4gICAgICAobWFuaWZlc3RNb2RpZmllZCk9XCJtYW5pZmVzdE1vZGlmaWVkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAjaGVhZGVyXG4gICAgICBbaGVhZGVyT3B0aW9uc109XCIoZGlzcGxheUhlYWRlciQgfCBhc3luYykgPz8ge31cIlxuICAgICAgW2RhdGFzb3VyY2VJZHNdPVwiKGRhdGFzb3VyY2VJZHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgID5cbiAgICAgIDxwcnktc2V0dGluZ3NcbiAgICAgICAgKHNhdmVUcmlnZ2VyZWQpPVwiZW1pdE1hbmlmZXN0KClcIlxuICAgICAgICAoY2hhbmdlVGl0bGUpPVwiY2hhbmdlV2lkZ2V0VGl0bGUoJGV2ZW50KVwiXG4gICAgICAgIFtoZWFkZXJQcmVzZW50XT1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgICAgICBbd2lkZ2V0SW5kZXhdPVwid2lkZ2V0SW5kZXhcIlxuICAgICAgICBbaGVhZGVyXT1cImhlYWRlclwiXG4gICAgICAgIFtvcGVuJF09XCJvcGVuJFwiXG4gICAgICAgIGNsYXNzPVwiby1zZXR0aW5nc1wiXG4gICAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX2ZpZWxkc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwbGFjZURhdGFfc3JjXCI+e3sgJ0Bwcnkud2lkZ2V0LnZlZ2EucGxhY2VEYXRhJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgaWQ9XCJwbGFjZURhdGFfc3JjXCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiKG9wdGlvbnNDb3B5LnBsYWNlRGF0YSA/PyBbXSkuam9pbignLicpXCJcbiAgICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZVBsYWNlRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwic3BlY19zcmNcIj57eyAnQHByeS53aWRnZXQudmVnYS5zcGVjJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkIGEtdGV4dC1hcmVhXCJcbiAgICAgICAgICAgICAgaWQ9XCJzcGVjX3NyY1wiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtYXR0ZWRCYXNlU3BlY1wiXG4gICAgICAgICAgICAgIChpbnB1dCk9XCJjaGFuZ2VTcGVjKCRldmVudClcIlxuICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wcnktc2V0dGluZ3M+XG4gICAgPC9wcnktd2lkZ2V0LWhlYWRlcj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLWNoYXJ0LS1jaGFydFwiICN2ZWdhPjwvZGl2PlxuPC9kaXY+XG4iXX0=
|