@provoly/dashboard 0.15.2 → 0.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/card/card.module.d.ts +1 -1
- package/dataset/style/_o-pry-dataset-detail.scss +4 -0
- package/esm2022/components/card/card.component.mjs +3 -3
- package/esm2022/components/card/card.module.mjs +5 -5
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
- package/esm2022/dataset/style/css.component.mjs +2 -2
- package/esm2022/lib/core/auth/geoAuth.service.mjs +26 -0
- package/esm2022/lib/core/components/overlay/overlay.module.mjs +4 -5
- package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -5
- package/esm2022/lib/core/core.module.mjs +8 -2
- package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +2 -5
- package/esm2022/lib/core/public-api.mjs +2 -2
- package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +21 -10
- package/esm2022/lib/core/store/search/search.effects.mjs +3 -3
- package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +10 -4
- package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +7 -4
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +24 -12
- package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +4 -5
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +4 -7
- package/esm2022/notification/components/notification/notification.component.mjs +3 -3
- package/esm2022/notification/i18n/en.translations.mjs +2 -1
- package/esm2022/notification/i18n/fr.translations.mjs +2 -1
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +5 -3
- package/esm2022/presentation/components/presentation.component.mjs +5 -4
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/components/restitution/restitution.component.mjs +5 -2
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/search/i18n/en.translations.mjs +9 -3
- package/esm2022/search/i18n/fr.translations.mjs +9 -3
- package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +3 -3
- package/esm2022/search/search-home/search-home.component.mjs +3 -3
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +6 -3
- package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +3 -3
- package/esm2022/search/search-tools/search-tools.component.mjs +3 -3
- package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
- package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
- package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
- package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +3 -3
- package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
- package/esm2022/toolbox/style/css.component.mjs +2 -2
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +22 -7
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +19 -9
- package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +2 -1
- package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +2 -1
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +1 -1
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
- package/esm2022/widgets/widget-graph/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +1 -1
- package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +5 -1
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +34 -32
- package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +8 -12
- package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +1 -1
- package/fesm2022/provoly-dashboard-components-card.mjs +6 -6
- package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +4 -4
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +4 -2
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +10 -7
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +10 -7
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +29 -14
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +20 -20
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +21 -6
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +20 -8
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +4 -4
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +43 -40
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +114 -175
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/auth/geoAuth.service.d.ts +12 -0
- package/lib/core/components/overlay/overlay.module.d.ts +8 -9
- package/lib/core/core.module.d.ts +1 -0
- package/lib/core/public-api.d.ts +1 -1
- package/lib/core/store/aggregation/backend-aggregation.service.d.ts +2 -0
- package/lib/core/store/search/search.effects.d.ts +3 -0
- package/lib/core/toolbox/toolbox-menu.service.d.ts +2 -0
- package/lib/dashboard/components/widgets/data-widget.component.d.ts +3 -2
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +8 -5
- package/notification/i18n/en.translations.d.ts +1 -0
- package/notification/i18n/fr.translations.d.ts +1 -0
- package/package.json +41 -42
- package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +2 -2
- package/presentation/style/_o-pry-presentation.scss +17 -13
- package/restitution/components/restitution/restitution.component.d.ts +7 -0
- package/schematics/migration.json +5 -0
- package/schematics/ng-add/index.js +0 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-update/version-0-15/index.d.ts +2 -0
- package/schematics/ng-update/version-0-15/index.js +19 -0
- package/schematics/ng-update/version-0-15/index.js.map +1 -0
- package/schematics/ng-update/version-0-15/index.spec.d.ts +1 -0
- package/schematics/ng-update/version-0-15/index.spec.js +51 -0
- package/schematics/ng-update/version-0-15/index.spec.js.map +1 -0
- package/search/i18n/en.translations.d.ts +6 -0
- package/search/i18n/fr.translations.d.ts +6 -0
- package/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.d.ts +1 -0
- package/styles/components/_a-tooltip.scss +76 -0
- package/styles/components/_o-dashboard.scss +1 -1
- package/styles/components/_o-pry-card.scss +14 -0
- package/styles/components/_o-widget.scss +1 -0
- package/styles/layout/_o-workspace.scss +0 -1
- package/styles/main.scss +2 -0
- package/styles-theme/components-theme/_a-tooltip.theme.scss +12 -0
- package/styles-theme/main-theme.scss +1 -0
- package/toolbox/style/_o-toolbox.scss +6 -0
- package/tooltips/attribute/attribute-tooltip.component.d.ts +2 -1
- package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +2 -0
- package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +1 -0
- package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +1 -0
- package/widgets/widget-graph/style/_o-widget-graph.scss +15 -1
- package/widgets/widget-map/component/widget-map-layer.service.d.ts +3 -1
- package/widgets/widget-map/component/widget-map.component.d.ts +4 -7
- package/widgets/widget-map/style/_o-widget-map.scss +14 -0
- package/esm2022/lib/core/components/overlay/tooltip.directive.mjs +0 -121
- package/lib/core/components/overlay/tooltip.directive.d.ts +0 -28
|
@@ -28,10 +28,10 @@ export class PrySearchMultiClassComponent {
|
|
|
28
28
|
this.store.dispatch(SearchMultiClassActions.updateMultiType({ multiType }));
|
|
29
29
|
}
|
|
30
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchMultiClassComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchMultiClassComponent, selector: "pry-search-multi-class", ngImport: i0, template: "<div class=\"o-search-multi-class\">\n <div class=\"o-search-multi-class__header\">\n <h3 class=\"a-h3\">{{ '@pry.search.multi.title' | i18n }}</h3>\n <div
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchMultiClassComponent, selector: "pry-search-multi-class", ngImport: i0, template: "<div class=\"o-search-multi-class\">\n <div class=\"o-search-multi-class__header\">\n <h3 class=\"a-h3\">{{ '@pry.search.multi.title' | i18n }}</h3>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"'@pry.search.multi.extraOptions' | i18n\"\n data-tooltip-position=\"bottom\"\n [pryOverlay]=\"optionOverlay\"\n [(overlayOpen)]=\"optionsOpen\"\n (click)=\"optionsOpen = !optionsOpen\"\n >\n <button class=\"a-btn a-btn--icon-text\">\n {{ '@pry.search.multi.options' | i18n }}\n <pry-icon iconSvg=\"tune\" [width]=\"16\" [height]=\"16\" [animation]=\"false\"></pry-icon>\n </button>\n </div>\n <ng-template #optionOverlay>\n <div class=\"o-search-multi-class__options\">\n <pry-toggle\n [ngModel]=\"(multiType$ | async) === 'OR'\"\n [leftword]=\"'@pry.search.type.or' | i18n\"\n [rightword]=\"'@pry.search.type.and' | i18n\"\n [alwaysActive]=\"true\"\n (ngModelChange)=\"onChangeMultiType($event)\"\n >{{ '@pry.search.multi.multiType' | i18n }}</pry-toggle\n >\n </div>\n </ng-template>\n </div>\n\n <div class=\"o-search-multi-class__conditions-wrapper\">\n <div class=\"o-search-multi-class__conditions\">\n <ng-container *ngFor=\"let condition of conditions$ | async\">\n <pry-multi-class-condition [id]=\"condition.id\"></pry-multi-class-condition>\n </ng-container>\n </div>\n <div class=\"o-search-multi-class__add-condition\">\n <button (click)=\"onAddCondition()\" class=\"a-btn a-btn--secondary -size-sm\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"add\"></pry-icon>\n {{ '@pry.search.multi.addCondition' | i18n }}\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "directive", type: i3.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "component", type: i5.MultiClassConditionComponent, selector: "pry-multi-class-condition", inputs: ["id"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
32
32
|
}
|
|
33
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchMultiClassComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
|
-
args: [{ selector: 'pry-search-multi-class', template: "<div class=\"o-search-multi-class\">\n <div class=\"o-search-multi-class__header\">\n <h3 class=\"a-h3\">{{ '@pry.search.multi.title' | i18n }}</h3>\n <div
|
|
35
|
+
args: [{ selector: 'pry-search-multi-class', template: "<div class=\"o-search-multi-class\">\n <div class=\"o-search-multi-class__header\">\n <h3 class=\"a-h3\">{{ '@pry.search.multi.title' | i18n }}</h3>\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"'@pry.search.multi.extraOptions' | i18n\"\n data-tooltip-position=\"bottom\"\n [pryOverlay]=\"optionOverlay\"\n [(overlayOpen)]=\"optionsOpen\"\n (click)=\"optionsOpen = !optionsOpen\"\n >\n <button class=\"a-btn a-btn--icon-text\">\n {{ '@pry.search.multi.options' | i18n }}\n <pry-icon iconSvg=\"tune\" [width]=\"16\" [height]=\"16\" [animation]=\"false\"></pry-icon>\n </button>\n </div>\n <ng-template #optionOverlay>\n <div class=\"o-search-multi-class__options\">\n <pry-toggle\n [ngModel]=\"(multiType$ | async) === 'OR'\"\n [leftword]=\"'@pry.search.type.or' | i18n\"\n [rightword]=\"'@pry.search.type.and' | i18n\"\n [alwaysActive]=\"true\"\n (ngModelChange)=\"onChangeMultiType($event)\"\n >{{ '@pry.search.multi.multiType' | i18n }}</pry-toggle\n >\n </div>\n </ng-template>\n </div>\n\n <div class=\"o-search-multi-class__conditions-wrapper\">\n <div class=\"o-search-multi-class__conditions\">\n <ng-container *ngFor=\"let condition of conditions$ | async\">\n <pry-multi-class-condition [id]=\"condition.id\"></pry-multi-class-condition>\n </ng-container>\n </div>\n <div class=\"o-search-multi-class__add-condition\">\n <button (click)=\"onAddCondition()\" class=\"a-btn a-btn--secondary -size-sm\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"add\"></pry-icon>\n {{ '@pry.search.multi.addCondition' | i18n }}\n </button>\n </div>\n </div>\n</div>\n" }]
|
|
36
36
|
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW11bHRpLWNsYXNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtbXVsdGktY2xhc3MvY29tcG9uZW50cy9zZWFyY2gtbXVsdGktY2xhc3Mvc2VhcmNoLW11bHRpLWNsYXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtbXVsdGktY2xhc3MvY29tcG9uZW50cy9zZWFyY2gtbXVsdGktY2xhc3Mvc2VhcmNoLW11bHRpLWNsYXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7OztBQU1yRixNQUFNLE9BQU8sNEJBQTRCO0lBTXZDLFlBQW9CLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFGckMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFHbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO2FBQ3JFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBUTtRQUN4QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDOzhHQXZCVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qiw4RENYekMsd3ZEQTRDQTs7MkZEakNhLDRCQUE0QjtrQkFKeEMsU0FBUzsrQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgTXVsdGlDbGFzc0NvbmRpdGlvbiB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWFyY2hNdWx0aUNsYXNzQWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL3NlYXJjaC1tdWx0aS1jbGFzcy5hY3Rpb25zJztcbmltcG9ydCB7IFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9zZWFyY2gtbXVsdGktY2xhc3Muc2VsZWN0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXNlYXJjaC1tdWx0aS1jbGFzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtbXVsdGktY2xhc3MuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeVNlYXJjaE11bHRpQ2xhc3NDb21wb25lbnQge1xuICBjb25kaXRpb25zJDogT2JzZXJ2YWJsZTxNdWx0aUNsYXNzQ29uZGl0aW9uW10+O1xuICBtdWx0aVR5cGUkOiBPYnNlcnZhYmxlPCdBTkQnIHwgJ09SJz47XG5cbiAgb3B0aW9uc09wZW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+KSB7XG4gICAgdGhpcy5jb25kaXRpb25zJCA9IHRoaXMuc3RvcmUuc2VsZWN0KFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMuY29uZGl0aW9ucyk7XG4gICAgdGhpcy5tdWx0aVR5cGUkID0gdGhpcy5zdG9yZS5zZWxlY3QoU2VhcmNoTXVsdGlDbGFzc1NlbGVjdG9ycy5tdWx0aVR5cGUpO1xuICAgIHRoaXMuY29uZGl0aW9ucyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGNvbmRpdGlvbnMpID0+IHtcbiAgICAgIGlmICgoY29uZGl0aW9ucz8ubGVuZ3RoID8/IDApID09PSAwKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goU2VhcmNoTXVsdGlDbGFzc0FjdGlvbnMuYWRkTmV3RW1wdHlDb25kaXRpb24oKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvbkFkZENvbmRpdGlvbigpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNlYXJjaE11bHRpQ2xhc3NBY3Rpb25zLmFkZE5ld0VtcHR5Q29uZGl0aW9uKCkpO1xuICB9XG5cbiAgb25DaGFuZ2VNdWx0aVR5cGUoZXZ0OiBhbnkpIHtcbiAgICBjb25zdCBtdWx0aVR5cGUgPSBldnQgPyAnT1InIDogJ0FORCc7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChTZWFyY2hNdWx0aUNsYXNzQWN0aW9ucy51cGRhdGVNdWx0aVR5cGUoeyBtdWx0aVR5cGUgfSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1zZWFyY2gtbXVsdGktY2xhc3NcIj5cbiAgPGRpdiBjbGFzcz1cIm8tc2VhcmNoLW11bHRpLWNsYXNzX19oZWFkZXJcIj5cbiAgICA8aDMgY2xhc3M9XCJhLWgzXCI+e3sgJ0Bwcnkuc2VhcmNoLm11bHRpLnRpdGxlJyB8IGkxOG4gfX08L2gzPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYS10b29sdGlwXCJcbiAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5zZWFyY2gubXVsdGkuZXh0cmFPcHRpb25zJyB8IGkxOG5cIlxuICAgICAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgIFtwcnlPdmVybGF5XT1cIm9wdGlvbk92ZXJsYXlcIlxuICAgICAgWyhvdmVybGF5T3BlbildPVwib3B0aW9uc09wZW5cIlxuICAgICAgKGNsaWNrKT1cIm9wdGlvbnNPcGVuID0gIW9wdGlvbnNPcGVuXCJcbiAgICA+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tdGV4dFwiPlxuICAgICAgICB7eyAnQHByeS5zZWFyY2gubXVsdGkub3B0aW9ucycgfCBpMThuIH19XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwidHVuZVwiIFt3aWR0aF09XCIxNlwiIFtoZWlnaHRdPVwiMTZcIiBbYW5pbWF0aW9uXT1cImZhbHNlXCI+PC9wcnktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjb3B0aW9uT3ZlcmxheT5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXNlYXJjaC1tdWx0aS1jbGFzc19fb3B0aW9uc1wiPlxuICAgICAgICA8cHJ5LXRvZ2dsZVxuICAgICAgICAgIFtuZ01vZGVsXT1cIihtdWx0aVR5cGUkIHwgYXN5bmMpID09PSAnT1InXCJcbiAgICAgICAgICBbbGVmdHdvcmRdPVwiJ0Bwcnkuc2VhcmNoLnR5cGUub3InIHwgaTE4blwiXG4gICAgICAgICAgW3JpZ2h0d29yZF09XCInQHByeS5zZWFyY2gudHlwZS5hbmQnIHwgaTE4blwiXG4gICAgICAgICAgW2Fsd2F5c0FjdGl2ZV09XCJ0cnVlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZU11bHRpVHlwZSgkZXZlbnQpXCJcbiAgICAgICAgICA+e3sgJ0Bwcnkuc2VhcmNoLm11bHRpLm11bHRpVHlwZScgfCBpMThuIH19PC9wcnktdG9nZ2xlXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJvLXNlYXJjaC1tdWx0aS1jbGFzc19fY29uZGl0aW9ucy13cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tc2VhcmNoLW11bHRpLWNsYXNzX19jb25kaXRpb25zXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb25kaXRpb24gb2YgY29uZGl0aW9ucyQgfCBhc3luY1wiPlxuICAgICAgICA8cHJ5LW11bHRpLWNsYXNzLWNvbmRpdGlvbiBbaWRdPVwiY29uZGl0aW9uLmlkXCI+PC9wcnktbXVsdGktY2xhc3MtY29uZGl0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8tc2VhcmNoLW11bHRpLWNsYXNzX19hZGQtY29uZGl0aW9uXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJvbkFkZENvbmRpdGlvbigpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IC1zaXplLXNtXCI+XG4gICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjIwXCIgW3dpZHRoXT1cIjIwXCIgaWNvblN2Zz1cImFkZFwiPjwvcHJ5LWljb24+XG4gICAgICAgIHt7ICdAcHJ5LnNlYXJjaC5tdWx0aS5hZGRDb25kaXRpb24nIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -136,11 +136,11 @@ export class PrySearchToolsComponent {
|
|
|
136
136
|
this.store.dispatch(DataSourceActions.namedQuery.updateCurrentEdit({ currentEdit: { visibility: $event } }));
|
|
137
137
|
}
|
|
138
138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchToolsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchToolsComponent, selector: "pry-search-tools", host: { properties: { "class.o-pry-search-tools-wrapper": "this.class", "class.is-close": "this.searchToolsClose" } }, ngImport: i0, template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n [
|
|
139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchToolsComponent, selector: "pry-search-tools", host: { properties: { "class.o-pry-search-tools-wrapper": "this.class", "class.is-close": "this.searchToolsClose" } }, ngImport: i0, template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back a-tooltip\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n [attr.data-tooltip]=\"'@pry.search.button.backSearch' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"arrow_back\" [width]=\"24\" [height]=\"24\" [animation]=\"false\"></pry-icon>\n <span>{{ '@pry.search.button.backSearch' | i18n }}</span>\n </button>\n <div class=\"o-pry-search-tools__content\" [class.is-close]=\"searchToolsClose\">\n <button\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n class=\"a-btn a-btn--icon-text -link-like u-self-end\"\n (click)=\"reset()\"\n id=\"btn_reset\"\n >\n <pry-icon iconSvg=\"reset\" [width]=\"18\" [height]=\"18\"></pry-icon>\n {{ '@pry.search.button.reset' | i18n }}\n </button>\n <ng-container *ngIf=\"editInProgress$ | async\">\n <pry-share [ngModel]=\"(currentEdit$ | async)?.visibility\" (ngModelChange)=\"updateVisibility($event)\"></pry-share>\n </ng-container>\n <ng-container *ngIf=\"(editInProgress$ | async) && !(isRename$ | async) && !(loading$ | async); else noEdit\">\n <pry-edit-named-query\n (searchFulltextChange)=\"onSearchFulltextChange($event)\"\n (cancelled)=\"onSearchTools()\"\n ></pry-edit-named-query>\n </ng-container>\n <ng-template #noEdit>\n <ng-container *ngIf=\"isSearchCriteria && !(loading$ | async); else noSearch\">\n <pry-toggle\n class=\"o-pry-search-tools__content__toggle\"\n [ngModel]=\"isSearchMono\"\n (ngModelChange)=\"onMonoSearch()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n >\n {{ (isSearchMono ? '@pry.search.button.mono' : '@pry.search.button.multi') | i18n }}\n </pry-toggle>\n <div class=\"o-pry-search-tools__content__full\">\n <ng-container *ngIf=\"isSearchMono; else isMultiSearch\">\n <pry-search-mono-class></pry-search-mono-class>\n </ng-container>\n <ng-template #isMultiSearch>\n <pry-search-multi-class></pry-search-multi-class>\n </ng-template>\n </div>\n\n <div class=\"o-pry-search-tools__content__button-search\">\n <ng-container *ngIf=\"isSearchCriteria\">\n <pry-choose-widget (selected)=\"selectWidget($event)\"></pry-choose-widget>\n </ng-container>\n <button class=\"a-btn a-btn--primary\" (click)=\"onSearchTools()\" *ngIf=\"!isSearchCriteria\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n <button\n [disabled]=\"\n (!(searchMultiClassValid$ | async) && !isSearchMono) || (!(searchMonoClassValid$ | async) && isSearchMono)\n \"\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{ '@pry.search.button.search' | i18n }}\n </button>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #noSearch>\n <div class=\"o-pry-search-tools__content__full\">\n <pry-search-home\n class=\"o-pry-search-home\"\n [isMoreList]=\"isMoreList\"\n [searchFulltextTpl]=\"searchFulltextTpl\"\n (changeListView)=\"onChangeListView($event)\"\n (changeSearchCriteria)=\"onSearchCriteria()\"\n ></pry-search-home>\n <ng-template #searchFulltextTpl>\n <pry-search-fulltext mode=\"vertical\" (searchChange)=\"onSearchFulltextChange($event)\"></pry-search-fulltext>\n </ng-template>\n </div>\n </ng-template>\n </div>\n <div class=\"o-pry-search-tools__footer\" [class.is-close]=\"searchToolsClose\">\n <pry-save-query-button\n [editInProgress]=\"editInProgress$ | async\"\n [currentEdit]=\"currentEdit$ | async\"\n [currentEditType]=\"currentEditType$ | async\"\n [fulltextValid]=\"isSearchFulltextValid\"\n [multiValid]=\"searchMultiClassValid$ | async\"\n [monoValid]=\"searchMonoClassValid$ | async\"\n [isNotFulltext]=\"isSearchCriteria\"\n [isMonoSearch]=\"isSearchMono\"\n [fulltextSearch]=\"searchFulltextTemp\"\n ></pry-save-query-button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryToggleComponent, selector: "pry-toggle", inputs: ["alwaysActive", "disabled", "mode", "size", "dir", "leftword", "rightword"] }, { kind: "component", type: i3.PryShareComponent, selector: "pry-share", inputs: ["value", "labelProperty", "valueProperty", "users$"] }, { kind: "component", type: i5.PrySearchHomeComponent, selector: "pry-search-home", inputs: ["searchFulltextTpl", "isMoreList"], outputs: ["changeListView", "changeSearchCriteria"] }, { kind: "component", type: i6.PrySearchMonoClassComponent, selector: "pry-search-mono-class" }, { kind: "component", type: i7.PrySearchMultiClassComponent, selector: "pry-search-multi-class" }, { kind: "component", type: i8.PrySearchFulltextComponent, selector: "pry-search-fulltext", inputs: ["mode", "launchButton", "currentEdit"], outputs: ["searchChange"] }, { kind: "component", type: i9.PrySaveQueryButtonComponent, selector: "pry-save-query-button", inputs: ["editInProgress", "currentEdit", "currentEditType", "fulltextValid", "multiValid", "monoValid", "isNotFulltext", "isMonoSearch", "fulltextSearch", "saveDisabled"] }, { kind: "component", type: i10.EditNamedQueryComponent, selector: "pry-edit-named-query", inputs: ["fromWidget"], outputs: ["searchFulltextChange", "cancelled", "searched"] }, { kind: "component", type: i11.ChooseWidgetComponent, selector: "pry-choose-widget", inputs: ["panelOpen", "mode", "width"], outputs: ["selected"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
140
140
|
}
|
|
141
141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchToolsComponent, decorators: [{
|
|
142
142
|
type: Component,
|
|
143
|
-
args: [{ selector: 'pry-search-tools', template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n [
|
|
143
|
+
args: [{ selector: 'pry-search-tools', template: "<div\n class=\"o-pry-search-tools\"\n [class.is-close]=\"searchToolsClose\"\n [class.is-mono]=\"isNewMono || (isEditMono$ | async)\"\n>\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -back a-tooltip\"\n (click)=\"onSearchTools()\"\n aria-pressed=\"false\"\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n [attr.data-tooltip]=\"'@pry.search.button.backSearch' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"arrow_back\" [width]=\"24\" [height]=\"24\" [animation]=\"false\"></pry-icon>\n <span>{{ '@pry.search.button.backSearch' | i18n }}</span>\n </button>\n <div class=\"o-pry-search-tools__content\" [class.is-close]=\"searchToolsClose\">\n <button\n *ngIf=\"((editInProgress$ | async) && !(isRename$ | async)) || isSearchCriteria\"\n class=\"a-btn a-btn--icon-text -link-like u-self-end\"\n (click)=\"reset()\"\n id=\"btn_reset\"\n >\n <pry-icon iconSvg=\"reset\" [width]=\"18\" [height]=\"18\"></pry-icon>\n {{ '@pry.search.button.reset' | i18n }}\n </button>\n <ng-container *ngIf=\"editInProgress$ | async\">\n <pry-share [ngModel]=\"(currentEdit$ | async)?.visibility\" (ngModelChange)=\"updateVisibility($event)\"></pry-share>\n </ng-container>\n <ng-container *ngIf=\"(editInProgress$ | async) && !(isRename$ | async) && !(loading$ | async); else noEdit\">\n <pry-edit-named-query\n (searchFulltextChange)=\"onSearchFulltextChange($event)\"\n (cancelled)=\"onSearchTools()\"\n ></pry-edit-named-query>\n </ng-container>\n <ng-template #noEdit>\n <ng-container *ngIf=\"isSearchCriteria && !(loading$ | async); else noSearch\">\n <pry-toggle\n class=\"o-pry-search-tools__content__toggle\"\n [ngModel]=\"isSearchMono\"\n (ngModelChange)=\"onMonoSearch()\"\n [alwaysActive]=\"true\"\n mode=\"action\"\n >\n {{ (isSearchMono ? '@pry.search.button.mono' : '@pry.search.button.multi') | i18n }}\n </pry-toggle>\n <div class=\"o-pry-search-tools__content__full\">\n <ng-container *ngIf=\"isSearchMono; else isMultiSearch\">\n <pry-search-mono-class></pry-search-mono-class>\n </ng-container>\n <ng-template #isMultiSearch>\n <pry-search-multi-class></pry-search-multi-class>\n </ng-template>\n </div>\n\n <div class=\"o-pry-search-tools__content__button-search\">\n <ng-container *ngIf=\"isSearchCriteria\">\n <pry-choose-widget (selected)=\"selectWidget($event)\"></pry-choose-widget>\n </ng-container>\n <button class=\"a-btn a-btn--primary\" (click)=\"onSearchTools()\" *ngIf=\"!isSearchCriteria\">\n {{ '@pry.search.button.cancel' | i18n }}\n </button>\n <button\n [disabled]=\"\n (!(searchMultiClassValid$ | async) && !isSearchMono) || (!(searchMonoClassValid$ | async) && isSearchMono)\n \"\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n >\n <pry-icon iconSvg=\"search-line\"></pry-icon>\n {{ '@pry.search.button.search' | i18n }}\n </button>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #noSearch>\n <div class=\"o-pry-search-tools__content__full\">\n <pry-search-home\n class=\"o-pry-search-home\"\n [isMoreList]=\"isMoreList\"\n [searchFulltextTpl]=\"searchFulltextTpl\"\n (changeListView)=\"onChangeListView($event)\"\n (changeSearchCriteria)=\"onSearchCriteria()\"\n ></pry-search-home>\n <ng-template #searchFulltextTpl>\n <pry-search-fulltext mode=\"vertical\" (searchChange)=\"onSearchFulltextChange($event)\"></pry-search-fulltext>\n </ng-template>\n </div>\n </ng-template>\n </div>\n <div class=\"o-pry-search-tools__footer\" [class.is-close]=\"searchToolsClose\">\n <pry-save-query-button\n [editInProgress]=\"editInProgress$ | async\"\n [currentEdit]=\"currentEdit$ | async\"\n [currentEditType]=\"currentEditType$ | async\"\n [fulltextValid]=\"isSearchFulltextValid\"\n [multiValid]=\"searchMultiClassValid$ | async\"\n [monoValid]=\"searchMonoClassValid$ | async\"\n [isNotFulltext]=\"isSearchCriteria\"\n [isMonoSearch]=\"isSearchMono\"\n [fulltextSearch]=\"searchFulltextTemp\"\n ></pry-save-query-button>\n </div>\n</div>\n" }]
|
|
144
144
|
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { class: [{
|
|
145
145
|
type: HostBinding,
|
|
146
146
|
args: ['class.o-pry-search-tools-wrapper']
|
|
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
148
148
|
type: HostBinding,
|
|
149
149
|
args: ['class.is-close']
|
|
150
150
|
}] } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRvb2xzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtdG9vbHMvc2VhcmNoLXRvb2xzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtdG9vbHMvc2VhcmNoLXRvb2xzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFDTCxZQUFZLEVBRVosZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFFbkIsc0JBQXNCLEVBQ3RCLFlBQVksRUFHWixlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUVqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1yRyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JsQyxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3BELENB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c0I7WUFDMUIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBVztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQzs4R0F0SlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsK0tDN0JwQyw0ckpBaUhBOzsyRkRwRmEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGtCQUFrQjs0RkFJcUIsS0FBSztzQkFBckQsV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBQ2hCLGdCQUFnQjtzQkFBOUMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3NBY3Rpb25zLFxuICBDbGFzc1N0YXRlLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgRGF0YVNvdXJjZVN0YXRlLFxuICBERUZBVUxUX05BTUVEX1FVRVJZX0lELFxuICBGaWVsZEFjdGlvbnMsXG4gIEZpZWxkU3RhdGUsXG4gIE5hbWVkUXVlcnksXG4gIE5hbWVkUXVlcnlUeXBlc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBTZWFyY2hGdWxsdGV4dENoYW5nZSB9IGZyb20gJy4uL3NlYXJjaC1mdWxsdGV4dC9zZWFyY2gtZnVsbHRleHQvc2VhcmNoLWZ1bGx0ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hNb25vQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vc2VhcmNoLW1vbm8tY2xhc3Mvc3RvcmUvc2VhcmNoLW1vbm8tY2xhc3MuYWN0aW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hNb25vQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zZWFyY2gtbW9uby1jbGFzcy9zdG9yZS9zZWFyY2gtbW9uby1jbGFzcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU2VhcmNoTXVsdGlDbGFzc0FjdGlvbnMgfSBmcm9tICcuLi9zZWFyY2gtbXVsdGktY2xhc3Mvc3RvcmUvc2VhcmNoLW11bHRpLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgU2VhcmNoTXVsdGlDbGFzc1N0YXRlIH0gZnJvbSAnLi4vc2VhcmNoLW11bHRpLWNsYXNzL3N0b3JlL3NlYXJjaC1tdWx0aS1jbGFzcy5yZWR1Y2VyJztcbmltcG9ydCB7IFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zZWFyY2gtbXVsdGktY2xhc3Mvc3RvcmUvc2VhcmNoLW11bHRpLWNsYXNzLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1zZWFyY2gtdG9vbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXRvb2xzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlTZWFyY2hUb29sc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3Muby1wcnktc2VhcmNoLXRvb2xzLXdyYXBwZXInKSBjbGFzcyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtY2xvc2UnKSBzZWFyY2hUb29sc0Nsb3NlID0gZmFsc2U7XG5cbiAgc2VhcmNoTXVsdGlDbGFzc1ZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2VhcmNoTW9ub0NsYXNzVmFsaWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNSZW5hbWUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGlzU2VhcmNoQ3JpdGVyaWEgPSBmYWxzZTtcbiAgaXNTZWFyY2hNb25vID0gZmFsc2U7XG4gIGlzU2VhcmNoRnVsbFRleHQgPSBmYWxzZTtcbiAgaXNTZWFyY2hGdWxsdGV4dFZhbGlkID0gZmFsc2U7XG4gIGlzTW9yZUxpc3QgPSBmYWxzZTtcbiAgd2lkZ2V0VHlwZTogc3RyaW5nID0gJ3RhYmxlJztcblxuICBnZXQgaXNOZXdNb25vKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzU2VhcmNoQ3JpdGVyaWEgJiYgdGhpcy5pc1NlYXJjaE1vbm87XG4gIH1cblxuICBnZXQgaXNFZGl0TW9ubyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudEVkaXRUeXBlJCwgdGhpcy5pc1JlbmFtZSRdKS5waXBlKFxuICAgICAgbWFwKChbdHlwZSwgaXNSZW5hbWVdKSA9PiB0eXBlID09PSBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTUyAmJiAhaXNSZW5hbWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldEljb24gPSB7XG4gICAgY2FyYWN0ZXJpc3RpcXVlOiAnZGVmYXVsdCcsXG4gICAgbGlldTogJ2RlZmF1bHQnLFxuICAgIG1ldGVvOiAnZGVmYXVsdCcsXG4gICAgdXNhZ2VyOiAncHJvZmlsJyxcbiAgICB2YWxldXJfZm9uY2llcmU6ICdkZWZhdWx0JyxcbiAgICB2ZWhpY3VsZTogJ2NhcidcbiAgfSBhcyB7IFtjbGF6ejogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgaXRlbXM6IE9ic2VydmFibGU8YW55W10gfCBudWxsPiA9IG9mKFtcbiAgICB7IGlkOiAxLCBuYW1lOiAnMScgfSxcbiAgICB7IGlkOiAyLCBuYW1lOiAnMicgfSxcbiAgICB7IGlkOiAzLCBuYW1lOiAnMycgfSxcbiAgICB7IGlkOiA0LCBuYW1lOiAnNCcgfVxuICBdKTtcbiAgZWRpdEluUHJvZ3Jlc3MkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBjdXJyZW50RWRpdCQ6IE9ic2VydmFibGU8TmFtZWRRdWVyeSB8IHVuZGVmaW5lZD47XG4gIGN1cnJlbnRFZGl0VHlwZSQ6IE9ic2VydmFibGU8TmFtZWRRdWVyeVR5cGVzIHwgdW5kZWZpbmVkPjtcbiAgcmVhZG9ubHkgRlVMTF9URVhUID0gTmFtZWRRdWVyeVR5cGVzLkZVTExfVEVYVDtcbiAgcmVhZG9ubHkgTU9OT19DTEFTUyA9IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTO1xuICByZWFkb25seSBNVUxUSV9DTEFTUyA9IE5hbWVkUXVlcnlUeXBlcy5NVUxUSV9DTEFTUztcbiAgc2VhcmNoRnVsbHRleHRUZW1wPzogU2VhcmNoRnVsbHRleHRDaGFuZ2U7XG5cbiAgcHJpdmF0ZSBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8RGF0YVNvdXJjZVN0YXRlIHwgU2VhcmNoTXVsdGlDbGFzc1N0YXRlIHwgRmllbGRTdGF0ZSB8IENsYXNzU3RhdGU+KSB7XG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuc2VsZWN0RmVhdHVyZSkucGlwZShtYXAoKHN0YXRlKSA9PiBzdGF0ZS5pc0xvYWRpbmcpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChGaWVsZEFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENsYXNzQWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuc2VhcmNoTXVsdGlDbGFzc1ZhbGlkJCA9IHRoaXMuc3RvcmUuc2VsZWN0KFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMuc2VhcmNoTXVsdGlDbGFzc1ZhbGlkKS5waXBlKGRlbGF5KDEwMCkpO1xuICAgIHRoaXMuc2VhcmNoTW9ub0NsYXNzVmFsaWQkID0gdGhpcy5zdG9yZS5zZWxlY3QoU2VhcmNoTW9ub0NsYXNzU2VsZWN0b3JzLnNlYXJjaE1vbm9DbGFzc1ZhbGlkKS5waXBlKGRlbGF5KDEwMCkpO1xuICAgIHRoaXMuZWRpdEluUHJvZ3Jlc3MkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5lZGl0SW5Qcm9ncmVzcyk7XG4gICAgdGhpcy5jdXJyZW50RWRpdFR5cGUkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5jdXJyZW50RWRpdFR5cGUpO1xuICAgIHRoaXMuY3VycmVudEVkaXQkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5jdXJyZW50RWRpdCk7XG4gICAgdGhpcy5pc1JlbmFtZSQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmlzUmVuYW1lKTtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmVkaXRJblByb2dyZXNzJCwgdGhpcy5pc1JlbmFtZSRdKS5zdWJzY3JpYmUoKFtlZGl0SW5Qcm9ncmVzcywgaXNSZW5hbWVdKSA9PiB7XG4gICAgICAgIGlmIChlZGl0SW5Qcm9ncmVzcyAmJiB0aGlzLnNlYXJjaFRvb2xzQ2xvc2UgJiYgIWlzUmVuYW1lKSB7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZVBhbmVsKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvblNlYXJjaENyaXRlcmlhKCkge1xuICAgIHRoaXMuaXNTZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkub3BlbkVkaXQoe1xuICAgICAgICBjdXJyZW50RWRpdDoge1xuICAgICAgICAgIHNvdXJjZVR5cGU6ICduYW1lZFF1ZXJ5JyxcbiAgICAgICAgICBpZDogdjQoKSxcbiAgICAgICAgICByZXF1ZXN0OiB7IHR5cGU6IE5hbWVkUXVlcnlUeXBlcy5NVUxUSV9DTEFTUywgZnVsbFNlYXJjaDogbnVsbCwgZmllbGRzOiBbXSwgbXVsdGlUeXBlOiAnQU5EJyB9LFxuICAgICAgICAgIG5hbWU6ICcnXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uU2VhcmNoVG9vbHMoKSB7XG4gICAgdGhpcy5pc1NlYXJjaENyaXRlcmlhID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnN0b3BFZGl0KCkpO1xuICAgIHRoaXMucmVzaXplU2NyZWVuKCk7XG4gIH1cblxuICBiYWNrKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5zdG9wRWRpdCgpKTtcbiAgICB0aGlzLnJlc2l6ZVNjcmVlbigpO1xuICB9XG5cbiAgb25Nb25vU2VhcmNoKCkge1xuICAgIHRoaXMuaXNTZWFyY2hNb25vID0gIXRoaXMuaXNTZWFyY2hNb25vO1xuICAgIHRoaXMucmVzaXplU2NyZWVuKCk7XG4gIH1cblxuICBvbkNoYW5nZUxpc3RWaWV3KGlzTW9yZUxpc3Q6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzTW9yZUxpc3QgPSAhaXNNb3JlTGlzdDtcbiAgfVxuXG4gIG9uU2VhcmNoRnVsbHRleHRDaGFuZ2UocGF5bG9hZDogU2VhcmNoRnVsbHRleHRDaGFuZ2UpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNTZWFyY2hGdWxsdGV4dFZhbGlkID0gcGF5bG9hZC52YWx1ZSAhPT0gJyc7XG4gICAgICB0aGlzLnNlYXJjaEZ1bGx0ZXh0VGVtcCA9IHBheWxvYWQ7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgb25TZWFyY2goKSB7XG4gICAgaWYgKHRoaXMuaXNTZWFyY2hNb25vKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNlYXJjaE1vbm9DbGFzc0FjdGlvbnMuc2VhcmNoKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNlYXJjaE11bHRpQ2xhc3NBY3Rpb25zLnNlYXJjaCgpKTtcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlV2lkZ2V0SW5QcmVzZW50YXRpb24oe1xuICAgICAgICBpZDogREVGQVVMVF9OQU1FRF9RVUVSWV9JRCxcbiAgICAgICAgd2lkZ2V0VHlwZTogdGhpcy53aWRnZXRUeXBlXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvbkNoYW5nZVBhbmVsKCkge1xuICAgIHRoaXMuc2VhcmNoVG9vbHNDbG9zZSA9ICF0aGlzLnNlYXJjaFRvb2xzQ2xvc2U7XG4gICAgdGhpcy5yZXNpemVTY3JlZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplU2NyZWVuKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93Py5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpLCA0MDApO1xuICB9XG5cbiAgc2VsZWN0V2lkZ2V0KCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy53aWRnZXRUeXBlID0gJGV2ZW50O1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnN0b3BFZGl0KCkpO1xuICAgIHRoaXMuaXNTZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gIH1cblxuICB1cGRhdGVWaXNpYmlsaXR5KCRldmVudDogYW55KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnVwZGF0ZUN1cnJlbnRFZGl0KHsgY3VycmVudEVkaXQ6IHsgdmlzaWJpbGl0eTogJGV2ZW50IH0gfSkpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzXCJcbiAgW2NsYXNzLmlzLWNsb3NlXT1cInNlYXJjaFRvb2xzQ2xvc2VcIlxuICBbY2xhc3MuaXMtbW9ub109XCJpc05ld01vbm8gfHwgKGlzRWRpdE1vbm8kIHwgYXN5bmMpXCJcbj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tdGV4dCAtYmFja1wiXG4gICAgKGNsaWNrKT1cIm9uU2VhcmNoVG9vbHMoKVwiXG4gICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgICpuZ0lmPVwiKChlZGl0SW5Qcm9ncmVzcyQgfCBhc3luYykgJiYgIShpc1JlbmFtZSQgfCBhc3luYykpIHx8IGlzU2VhcmNoQ3JpdGVyaWFcIlxuICAgIFtwcnlUb29sdGlwXT1cImluZm9Ub29sdGlwQmFja1wiXG4gICAgcHJ5VG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiaW5mb1Rvb2x0aXBCYWNrX3NlYXJjaFRvb2xzXCJcbiAgPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYXJyb3dfYmFja1wiIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIiBbYW5pbWF0aW9uXT1cImZhbHNlXCI+PC9wcnktaWNvbj5cbiAgICA8c3Bhbj57eyAnQHByeS5zZWFyY2guYnV0dG9uLmJhY2tTZWFyY2gnIHwgaTE4biB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRcIiBbY2xhc3MuaXMtY2xvc2VdPVwic2VhcmNoVG9vbHNDbG9zZVwiPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiKChlZGl0SW5Qcm9ncmVzcyQgfCBhc3luYykgJiYgIShpc1JlbmFtZSQgfCBhc3luYykpIHx8IGlzU2VhcmNoQ3JpdGVyaWFcIlxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi10ZXh0IC1saW5rLWxpa2UgdS1zZWxmLWVuZFwiXG4gICAgICAoY2xpY2spPVwicmVzZXQoKVwiXG4gICAgICBpZD1cImJ0bl9yZXNldFwiXG4gICAgPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJyZXNldFwiIFt3aWR0aF09XCIxOFwiIFtoZWlnaHRdPVwiMThcIj48L3ByeS1pY29uPlxuICAgICAge3sgJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5yZXNldCcgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRJblByb2dyZXNzJCB8IGFzeW5jXCI+XG4gICAgICA8cHJ5LXNoYXJlIFtuZ01vZGVsXT1cIihjdXJyZW50RWRpdCQgfCBhc3luYyk/LnZpc2liaWxpdHlcIiAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVWaXNpYmlsaXR5KCRldmVudClcIj48L3ByeS1zaGFyZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGVkaXRJblByb2dyZXNzJCB8IGFzeW5jKSAmJiAhKGlzUmVuYW1lJCB8IGFzeW5jKSAmJiAhKGxvYWRpbmckIHwgYXN5bmMpOyBlbHNlIG5vRWRpdFwiPlxuICAgICAgPHByeS1lZGl0LW5hbWVkLXF1ZXJ5XG4gICAgICAgIChzZWFyY2hGdWxsdGV4dENoYW5nZSk9XCJvblNlYXJjaEZ1bGx0ZXh0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAoY2FuY2VsbGVkKT1cIm9uU2VhcmNoVG9vbHMoKVwiXG4gICAgICA+PC9wcnktZWRpdC1uYW1lZC1xdWVyeT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vRWRpdD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlYXJjaENyaXRlcmlhICYmICEobG9hZGluZyQgfCBhc3luYyk7IGVsc2Ugbm9TZWFyY2hcIj5cbiAgICAgICAgPHByeS10b2dnbGVcbiAgICAgICAgICBjbGFzcz1cIm8tcHJ5LXNlYXJjaC10b29sc19fY29udGVudF9fdG9nZ2xlXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJpc1NlYXJjaE1vbm9cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9ub1NlYXJjaCgpXCJcbiAgICAgICAgICBbYWx3YXlzQWN0aXZlXT1cInRydWVcIlxuICAgICAgICAgIG1vZGU9XCJhY3Rpb25cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgKGlzU2VhcmNoTW9ubyA/ICdAcHJ5LnNlYXJjaC5idXR0b24ubW9ubycgOiAnQHByeS5zZWFyY2guYnV0dG9uLm11bHRpJykgfCBpMThuIH19XG4gICAgICAgIDwvcHJ5LXRvZ2dsZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJ5LXNlYXJjaC10b29sc19fY29udGVudF9fZnVsbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlYXJjaE1vbm87IGVsc2UgaXNNdWx0aVNlYXJjaFwiPlxuICAgICAgICAgICAgPHByeS1zZWFyY2gtbW9uby1jbGFzcz48L3ByeS1zZWFyY2gtbW9uby1jbGFzcz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2lzTXVsdGlTZWFyY2g+XG4gICAgICAgICAgICA8cHJ5LXNlYXJjaC1tdWx0aS1jbGFzcz48L3ByeS1zZWFyY2gtbXVsdGktY2xhc3M+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJ5LXNlYXJjaC10b29sc19fY29udGVudF9fYnV0dG9uLXNlYXJjaFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlYXJjaENyaXRlcmlhXCI+XG4gICAgICAgICAgICA8cHJ5LWNob29zZS13aWRnZXQgKHNlbGVjdGVkKT1cInNlbGVjdFdpZGdldCgkZXZlbnQpXCI+PC9wcnktY2hvb3NlLXdpZGdldD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwib25TZWFyY2hUb29scygpXCIgKm5nSWY9XCIhaXNTZWFyY2hDcml0ZXJpYVwiPlxuICAgICAgICAgICAge3sgJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5jYW5jZWwnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgKCEoc2VhcmNoTXVsdGlDbGFzc1ZhbGlkJCB8IGFzeW5jKSAmJiAhaXNTZWFyY2hNb25vKSB8fCAoIShzZWFyY2hNb25vQ2xhc3NWYWxpZCQgfCBhc3luYykgJiYgaXNTZWFyY2hNb25vKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2VhcmNoLWxpbmVcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAge3sgJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5zZWFyY2gnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI25vU2VhcmNoPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tcHJ5LXNlYXJjaC10b29sc19fY29udGVudF9fZnVsbFwiPlxuICAgICAgICA8cHJ5LXNlYXJjaC1ob21lXG4gICAgICAgICAgY2xhc3M9XCJvLXByeS1zZWFyY2gtaG9tZVwiXG4gICAgICAgICAgW2lzTW9yZUxpc3RdPVwiaXNNb3JlTGlzdFwiXG4gICAgICAgICAgW3NlYXJjaEZ1bGx0ZXh0VHBsXT1cInNlYXJjaEZ1bGx0ZXh0VHBsXCJcbiAgICAgICAgICAoY2hhbmdlTGlzdFZpZXcpPVwib25DaGFuZ2VMaXN0VmlldygkZXZlbnQpXCJcbiAgICAgICAgICAoY2hhbmdlU2VhcmNoQ3JpdGVyaWEpPVwib25TZWFyY2hDcml0ZXJpYSgpXCJcbiAgICAgICAgPjwvcHJ5LXNlYXJjaC1ob21lPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3NlYXJjaEZ1bGx0ZXh0VHBsPlxuICAgICAgICAgIDxwcnktc2VhcmNoLWZ1bGx0ZXh0IG1vZGU9XCJ2ZXJ0aWNhbFwiIChzZWFyY2hDaGFuZ2UpPVwib25TZWFyY2hGdWxsdGV4dENoYW5nZSgkZXZlbnQpXCI+PC9wcnktc2VhcmNoLWZ1bGx0ZXh0PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2Zvb3RlclwiIFtjbGFzcy5pcy1jbG9zZV09XCJzZWFyY2hUb29sc0Nsb3NlXCI+XG4gICAgPHByeS1zYXZlLXF1ZXJ5LWJ1dHRvblxuICAgICAgW2VkaXRJblByb2dyZXNzXT1cImVkaXRJblByb2dyZXNzJCB8IGFzeW5jXCJcbiAgICAgIFtjdXJyZW50RWRpdF09XCJjdXJyZW50RWRpdCQgfCBhc3luY1wiXG4gICAgICBbY3VycmVudEVkaXRUeXBlXT1cImN1cnJlbnRFZGl0VHlwZSQgfCBhc3luY1wiXG4gICAgICBbZnVsbHRleHRWYWxpZF09XCJpc1NlYXJjaEZ1bGx0ZXh0VmFsaWRcIlxuICAgICAgW211bHRpVmFsaWRdPVwic2VhcmNoTXVsdGlDbGFzc1ZhbGlkJCB8IGFzeW5jXCJcbiAgICAgIFttb25vVmFsaWRdPVwic2VhcmNoTW9ub0NsYXNzVmFsaWQkIHwgYXN5bmNcIlxuICAgICAgW2lzTm90RnVsbHRleHRdPVwiaXNTZWFyY2hDcml0ZXJpYVwiXG4gICAgICBbaXNNb25vU2VhcmNoXT1cImlzU2VhcmNoTW9ub1wiXG4gICAgICBbZnVsbHRleHRTZWFyY2hdPVwic2VhcmNoRnVsbHRleHRUZW1wXCJcbiAgICA+PC9wcnktc2F2ZS1xdWVyeS1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaW5mb1Rvb2x0aXBCYWNrPlxuICA8ZGl2IGNsYXNzPVwibS10b29sdGlwXCIgcm9sZT1cInRvb2x0aXBcIiBpZD1cImluZm9Ub29sdGlwQmFja19zZWFyY2hUb29sc1wiPlxuICAgIDxzcGFuIGNsYXNzPVwibS10b29sdGlwX190ZXh0XCI+IFJldG91ciDDoCBsYSBsaXN0ZSBkZXMgcmVjaGVyY2hlcyA8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRvb2xzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtdG9vbHMvc2VhcmNoLXRvb2xzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtdG9vbHMvc2VhcmNoLXRvb2xzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFDTCxZQUFZLEVBRVosZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFFbkIsc0JBQXNCLEVBQ3RCLFlBQVksRUFHWixlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUVqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1yRyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JsQyxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLFVBQVUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUM1RSxDQUFDO0lBQ0osQ0FBQztJQTJCRCxZQUFvQixLQUErRTtRQUEvRSxVQUFLLEdBQUwsS0FBSyxDQUEwRTtRQWxEbEQsVUFBSyxHQUFHLElBQUksQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPeEQscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBWTdCLFlBQU8sR0FBRztZQUNSLGVBQWUsRUFBRSxTQUFTO1lBQzFCLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsZUFBZSxFQUFFLFNBQVM7WUFDMUIsUUFBUSxFQUFFLEtBQUs7U0FDZSxDQUFDO1FBRWpDLFVBQUssR0FBNkIsRUFBRSxDQUFDO1lBQ25DLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ3BCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ3BCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1lBQ3BCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1NBQ3JCLENBQUMsQ0FBQztRQUlNLGNBQVMsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3RDLGVBQVUsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUczQyxRQUFHLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ1YsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQzdGLElBQUksY0FBYyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNwQyxXQUFXLEVBQUU7Z0JBQ1gsVUFBVSxFQUFFLFlBQVk7Z0JBQ3hCLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUU7Z0JBQzlGLElBQUksRUFBRSxFQUFFO2FBQ1Q7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQTZCO1FBQ2xELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztRQUNwQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3REO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDO1lBQzFDLEVBQUUsRUFBRSxzQkFBc0I7WUFDMUIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBVztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0csQ0FBQzs4R0F0SlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsK0tDN0JwQyxnOUlBMEdBOzsyRkQ3RWEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLGtCQUFrQjs0RkFJcUIsS0FBSztzQkFBckQsV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBQ2hCLGdCQUFnQjtzQkFBOUMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3NBY3Rpb25zLFxuICBDbGFzc1N0YXRlLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgRGF0YVNvdXJjZVN0YXRlLFxuICBERUZBVUxUX05BTUVEX1FVRVJZX0lELFxuICBGaWVsZEFjdGlvbnMsXG4gIEZpZWxkU3RhdGUsXG4gIE5hbWVkUXVlcnksXG4gIE5hbWVkUXVlcnlUeXBlc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBTZWFyY2hGdWxsdGV4dENoYW5nZSB9IGZyb20gJy4uL3NlYXJjaC1mdWxsdGV4dC9zZWFyY2gtZnVsbHRleHQvc2VhcmNoLWZ1bGx0ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hNb25vQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vc2VhcmNoLW1vbm8tY2xhc3Mvc3RvcmUvc2VhcmNoLW1vbm8tY2xhc3MuYWN0aW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hNb25vQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zZWFyY2gtbW9uby1jbGFzcy9zdG9yZS9zZWFyY2gtbW9uby1jbGFzcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU2VhcmNoTXVsdGlDbGFzc0FjdGlvbnMgfSBmcm9tICcuLi9zZWFyY2gtbXVsdGktY2xhc3Mvc3RvcmUvc2VhcmNoLW11bHRpLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgU2VhcmNoTXVsdGlDbGFzc1N0YXRlIH0gZnJvbSAnLi4vc2VhcmNoLW11bHRpLWNsYXNzL3N0b3JlL3NlYXJjaC1tdWx0aS1jbGFzcy5yZWR1Y2VyJztcbmltcG9ydCB7IFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zZWFyY2gtbXVsdGktY2xhc3Mvc3RvcmUvc2VhcmNoLW11bHRpLWNsYXNzLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1zZWFyY2gtdG9vbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXRvb2xzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlTZWFyY2hUb29sc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3Muby1wcnktc2VhcmNoLXRvb2xzLXdyYXBwZXInKSBjbGFzcyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtY2xvc2UnKSBzZWFyY2hUb29sc0Nsb3NlID0gZmFsc2U7XG5cbiAgc2VhcmNoTXVsdGlDbGFzc1ZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc2VhcmNoTW9ub0NsYXNzVmFsaWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNSZW5hbWUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGlzU2VhcmNoQ3JpdGVyaWEgPSBmYWxzZTtcbiAgaXNTZWFyY2hNb25vID0gZmFsc2U7XG4gIGlzU2VhcmNoRnVsbFRleHQgPSBmYWxzZTtcbiAgaXNTZWFyY2hGdWxsdGV4dFZhbGlkID0gZmFsc2U7XG4gIGlzTW9yZUxpc3QgPSBmYWxzZTtcbiAgd2lkZ2V0VHlwZTogc3RyaW5nID0gJ3RhYmxlJztcblxuICBnZXQgaXNOZXdNb25vKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzU2VhcmNoQ3JpdGVyaWEgJiYgdGhpcy5pc1NlYXJjaE1vbm87XG4gIH1cblxuICBnZXQgaXNFZGl0TW9ubyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudEVkaXRUeXBlJCwgdGhpcy5pc1JlbmFtZSRdKS5waXBlKFxuICAgICAgbWFwKChbdHlwZSwgaXNSZW5hbWVdKSA9PiB0eXBlID09PSBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTUyAmJiAhaXNSZW5hbWUpXG4gICAgKTtcbiAgfVxuXG4gIGdldEljb24gPSB7XG4gICAgY2FyYWN0ZXJpc3RpcXVlOiAnZGVmYXVsdCcsXG4gICAgbGlldTogJ2RlZmF1bHQnLFxuICAgIG1ldGVvOiAnZGVmYXVsdCcsXG4gICAgdXNhZ2VyOiAncHJvZmlsJyxcbiAgICB2YWxldXJfZm9uY2llcmU6ICdkZWZhdWx0JyxcbiAgICB2ZWhpY3VsZTogJ2NhcidcbiAgfSBhcyB7IFtjbGF6ejogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgaXRlbXM6IE9ic2VydmFibGU8YW55W10gfCBudWxsPiA9IG9mKFtcbiAgICB7IGlkOiAxLCBuYW1lOiAnMScgfSxcbiAgICB7IGlkOiAyLCBuYW1lOiAnMicgfSxcbiAgICB7IGlkOiAzLCBuYW1lOiAnMycgfSxcbiAgICB7IGlkOiA0LCBuYW1lOiAnNCcgfVxuICBdKTtcbiAgZWRpdEluUHJvZ3Jlc3MkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBjdXJyZW50RWRpdCQ6IE9ic2VydmFibGU8TmFtZWRRdWVyeSB8IHVuZGVmaW5lZD47XG4gIGN1cnJlbnRFZGl0VHlwZSQ6IE9ic2VydmFibGU8TmFtZWRRdWVyeVR5cGVzIHwgdW5kZWZpbmVkPjtcbiAgcmVhZG9ubHkgRlVMTF9URVhUID0gTmFtZWRRdWVyeVR5cGVzLkZVTExfVEVYVDtcbiAgcmVhZG9ubHkgTU9OT19DTEFTUyA9IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTO1xuICByZWFkb25seSBNVUxUSV9DTEFTUyA9IE5hbWVkUXVlcnlUeXBlcy5NVUxUSV9DTEFTUztcbiAgc2VhcmNoRnVsbHRleHRUZW1wPzogU2VhcmNoRnVsbHRleHRDaGFuZ2U7XG5cbiAgcHJpdmF0ZSBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8RGF0YVNvdXJjZVN0YXRlIHwgU2VhcmNoTXVsdGlDbGFzc1N0YXRlIHwgRmllbGRTdGF0ZSB8IENsYXNzU3RhdGU+KSB7XG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuc2VsZWN0RmVhdHVyZSkucGlwZShtYXAoKHN0YXRlKSA9PiBzdGF0ZS5pc0xvYWRpbmcpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChGaWVsZEFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENsYXNzQWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuc2VhcmNoTXVsdGlDbGFzc1ZhbGlkJCA9IHRoaXMuc3RvcmUuc2VsZWN0KFNlYXJjaE11bHRpQ2xhc3NTZWxlY3RvcnMuc2VhcmNoTXVsdGlDbGFzc1ZhbGlkKS5waXBlKGRlbGF5KDEwMCkpO1xuICAgIHRoaXMuc2VhcmNoTW9ub0NsYXNzVmFsaWQkID0gdGhpcy5zdG9yZS5zZWxlY3QoU2VhcmNoTW9ub0NsYXNzU2VsZWN0b3JzLnNlYXJjaE1vbm9DbGFzc1ZhbGlkKS5waXBlKGRlbGF5KDEwMCkpO1xuICAgIHRoaXMuZWRpdEluUHJvZ3Jlc3MkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5lZGl0SW5Qcm9ncmVzcyk7XG4gICAgdGhpcy5jdXJyZW50RWRpdFR5cGUkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5jdXJyZW50RWRpdFR5cGUpO1xuICAgIHRoaXMuY3VycmVudEVkaXQkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5jdXJyZW50RWRpdCk7XG4gICAgdGhpcy5pc1JlbmFtZSQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmlzUmVuYW1lKTtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmVkaXRJblByb2dyZXNzJCwgdGhpcy5pc1JlbmFtZSRdKS5zdWJzY3JpYmUoKFtlZGl0SW5Qcm9ncmVzcywgaXNSZW5hbWVdKSA9PiB7XG4gICAgICAgIGlmIChlZGl0SW5Qcm9ncmVzcyAmJiB0aGlzLnNlYXJjaFRvb2xzQ2xvc2UgJiYgIWlzUmVuYW1lKSB7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZVBhbmVsKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvblNlYXJjaENyaXRlcmlhKCkge1xuICAgIHRoaXMuaXNTZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkub3BlbkVkaXQoe1xuICAgICAgICBjdXJyZW50RWRpdDoge1xuICAgICAgICAgIHNvdXJjZVR5cGU6ICduYW1lZFF1ZXJ5JyxcbiAgICAgICAgICBpZDogdjQoKSxcbiAgICAgICAgICByZXF1ZXN0OiB7IHR5cGU6IE5hbWVkUXVlcnlUeXBlcy5NVUxUSV9DTEFTUywgZnVsbFNlYXJjaDogbnVsbCwgZmllbGRzOiBbXSwgbXVsdGlUeXBlOiAnQU5EJyB9LFxuICAgICAgICAgIG5hbWU6ICcnXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uU2VhcmNoVG9vbHMoKSB7XG4gICAgdGhpcy5pc1NlYXJjaENyaXRlcmlhID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnN0b3BFZGl0KCkpO1xuICAgIHRoaXMucmVzaXplU2NyZWVuKCk7XG4gIH1cblxuICBiYWNrKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5zdG9wRWRpdCgpKTtcbiAgICB0aGlzLnJlc2l6ZVNjcmVlbigpO1xuICB9XG5cbiAgb25Nb25vU2VhcmNoKCkge1xuICAgIHRoaXMuaXNTZWFyY2hNb25vID0gIXRoaXMuaXNTZWFyY2hNb25vO1xuICAgIHRoaXMucmVzaXplU2NyZWVuKCk7XG4gIH1cblxuICBvbkNoYW5nZUxpc3RWaWV3KGlzTW9yZUxpc3Q6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzTW9yZUxpc3QgPSAhaXNNb3JlTGlzdDtcbiAgfVxuXG4gIG9uU2VhcmNoRnVsbHRleHRDaGFuZ2UocGF5bG9hZDogU2VhcmNoRnVsbHRleHRDaGFuZ2UpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNTZWFyY2hGdWxsdGV4dFZhbGlkID0gcGF5bG9hZC52YWx1ZSAhPT0gJyc7XG4gICAgICB0aGlzLnNlYXJjaEZ1bGx0ZXh0VGVtcCA9IHBheWxvYWQ7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgb25TZWFyY2goKSB7XG4gICAgaWYgKHRoaXMuaXNTZWFyY2hNb25vKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNlYXJjaE1vbm9DbGFzc0FjdGlvbnMuc2VhcmNoKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFNlYXJjaE11bHRpQ2xhc3NBY3Rpb25zLnNlYXJjaCgpKTtcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlV2lkZ2V0SW5QcmVzZW50YXRpb24oe1xuICAgICAgICBpZDogREVGQVVMVF9OQU1FRF9RVUVSWV9JRCxcbiAgICAgICAgd2lkZ2V0VHlwZTogdGhpcy53aWRnZXRUeXBlXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvbkNoYW5nZVBhbmVsKCkge1xuICAgIHRoaXMuc2VhcmNoVG9vbHNDbG9zZSA9ICF0aGlzLnNlYXJjaFRvb2xzQ2xvc2U7XG4gICAgdGhpcy5yZXNpemVTY3JlZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplU2NyZWVuKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93Py5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpLCA0MDApO1xuICB9XG5cbiAgc2VsZWN0V2lkZ2V0KCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy53aWRnZXRUeXBlID0gJGV2ZW50O1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnN0b3BFZGl0KCkpO1xuICAgIHRoaXMuaXNTZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gIH1cblxuICB1cGRhdGVWaXNpYmlsaXR5KCRldmVudDogYW55KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LnVwZGF0ZUN1cnJlbnRFZGl0KHsgY3VycmVudEVkaXQ6IHsgdmlzaWJpbGl0eTogJGV2ZW50IH0gfSkpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzXCJcbiAgW2NsYXNzLmlzLWNsb3NlXT1cInNlYXJjaFRvb2xzQ2xvc2VcIlxuICBbY2xhc3MuaXMtbW9ub109XCJpc05ld01vbm8gfHwgKGlzRWRpdE1vbm8kIHwgYXN5bmMpXCJcbj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tdGV4dCAtYmFjayBhLXRvb2x0aXBcIlxuICAgIChjbGljayk9XCJvblNlYXJjaFRvb2xzKClcIlxuICAgIGFyaWEtcHJlc3NlZD1cImZhbHNlXCJcbiAgICAqbmdJZj1cIigoZWRpdEluUHJvZ3Jlc3MkIHwgYXN5bmMpICYmICEoaXNSZW5hbWUkIHwgYXN5bmMpKSB8fCBpc1NlYXJjaENyaXRlcmlhXCJcbiAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5iYWNrU2VhcmNoJyB8IGkxOG5cIlxuICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cImJvdHRvbVwiXG4gID5cbiAgICA8cHJ5LWljb24gaWNvblN2Zz1cImFycm93X2JhY2tcIiBbd2lkdGhdPVwiMjRcIiBbaGVpZ2h0XT1cIjI0XCIgW2FuaW1hdGlvbl09XCJmYWxzZVwiPjwvcHJ5LWljb24+XG4gICAgPHNwYW4+e3sgJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5iYWNrU2VhcmNoJyB8IGkxOG4gfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzX19jb250ZW50XCIgW2NsYXNzLmlzLWNsb3NlXT1cInNlYXJjaFRvb2xzQ2xvc2VcIj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cIigoZWRpdEluUHJvZ3Jlc3MkIHwgYXN5bmMpICYmICEoaXNSZW5hbWUkIHwgYXN5bmMpKSB8fCBpc1NlYXJjaENyaXRlcmlhXCJcbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tdGV4dCAtbGluay1saWtlIHUtc2VsZi1lbmRcIlxuICAgICAgKGNsaWNrKT1cInJlc2V0KClcIlxuICAgICAgaWQ9XCJidG5fcmVzZXRcIlxuICAgID5cbiAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwicmVzZXRcIiBbd2lkdGhdPVwiMThcIiBbaGVpZ2h0XT1cIjE4XCI+PC9wcnktaWNvbj5cbiAgICAgIHt7ICdAcHJ5LnNlYXJjaC5idXR0b24ucmVzZXQnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0SW5Qcm9ncmVzcyQgfCBhc3luY1wiPlxuICAgICAgPHByeS1zaGFyZSBbbmdNb2RlbF09XCIoY3VycmVudEVkaXQkIHwgYXN5bmMpPy52aXNpYmlsaXR5XCIgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVmlzaWJpbGl0eSgkZXZlbnQpXCI+PC9wcnktc2hhcmU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihlZGl0SW5Qcm9ncmVzcyQgfCBhc3luYykgJiYgIShpc1JlbmFtZSQgfCBhc3luYykgJiYgIShsb2FkaW5nJCB8IGFzeW5jKTsgZWxzZSBub0VkaXRcIj5cbiAgICAgIDxwcnktZWRpdC1uYW1lZC1xdWVyeVxuICAgICAgICAoc2VhcmNoRnVsbHRleHRDaGFuZ2UpPVwib25TZWFyY2hGdWxsdGV4dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNhbmNlbGxlZCk9XCJvblNlYXJjaFRvb2xzKClcIlxuICAgICAgPjwvcHJ5LWVkaXQtbmFtZWQtcXVlcnk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNub0VkaXQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTZWFyY2hDcml0ZXJpYSAmJiAhKGxvYWRpbmckIHwgYXN5bmMpOyBlbHNlIG5vU2VhcmNoXCI+XG4gICAgICAgIDxwcnktdG9nZ2xlXG4gICAgICAgICAgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX3RvZ2dsZVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiaXNTZWFyY2hNb25vXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vbm9TZWFyY2goKVwiXG4gICAgICAgICAgW2Fsd2F5c0FjdGl2ZV09XCJ0cnVlXCJcbiAgICAgICAgICBtb2RlPVwiYWN0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IChpc1NlYXJjaE1vbm8gPyAnQHByeS5zZWFyY2guYnV0dG9uLm1vbm8nIDogJ0Bwcnkuc2VhcmNoLmJ1dHRvbi5tdWx0aScpIHwgaTE4biB9fVxuICAgICAgICA8L3ByeS10b2dnbGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX2Z1bGxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTZWFyY2hNb25vOyBlbHNlIGlzTXVsdGlTZWFyY2hcIj5cbiAgICAgICAgICAgIDxwcnktc2VhcmNoLW1vbm8tY2xhc3M+PC9wcnktc2VhcmNoLW1vbm8tY2xhc3M+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNpc011bHRpU2VhcmNoPlxuICAgICAgICAgICAgPHByeS1zZWFyY2gtbXVsdGktY2xhc3M+PC9wcnktc2VhcmNoLW11bHRpLWNsYXNzPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX2J1dHRvbi1zZWFyY2hcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTZWFyY2hDcml0ZXJpYVwiPlxuICAgICAgICAgICAgPHByeS1jaG9vc2Utd2lkZ2V0IChzZWxlY3RlZCk9XCJzZWxlY3RXaWRnZXQoJGV2ZW50KVwiPjwvcHJ5LWNob29zZS13aWRnZXQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uU2VhcmNoVG9vbHMoKVwiICpuZ0lmPVwiIWlzU2VhcmNoQ3JpdGVyaWFcIj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnNlYXJjaC5idXR0b24uY2FuY2VsJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICghKHNlYXJjaE11bHRpQ2xhc3NWYWxpZCQgfCBhc3luYykgJiYgIWlzU2VhcmNoTW9ubykgfHwgKCEoc2VhcmNoTW9ub0NsYXNzVmFsaWQkIHwgYXN5bmMpICYmIGlzU2VhcmNoTW9ubylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cInNlYXJjaC1saW5lXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnNlYXJjaC5idXR0b24uc2VhcmNoJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNub1NlYXJjaD5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXByeS1zZWFyY2gtdG9vbHNfX2NvbnRlbnRfX2Z1bGxcIj5cbiAgICAgICAgPHByeS1zZWFyY2gtaG9tZVxuICAgICAgICAgIGNsYXNzPVwiby1wcnktc2VhcmNoLWhvbWVcIlxuICAgICAgICAgIFtpc01vcmVMaXN0XT1cImlzTW9yZUxpc3RcIlxuICAgICAgICAgIFtzZWFyY2hGdWxsdGV4dFRwbF09XCJzZWFyY2hGdWxsdGV4dFRwbFwiXG4gICAgICAgICAgKGNoYW5nZUxpc3RWaWV3KT1cIm9uQ2hhbmdlTGlzdFZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgKGNoYW5nZVNlYXJjaENyaXRlcmlhKT1cIm9uU2VhcmNoQ3JpdGVyaWEoKVwiXG4gICAgICAgID48L3ByeS1zZWFyY2gtaG9tZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzZWFyY2hGdWxsdGV4dFRwbD5cbiAgICAgICAgICA8cHJ5LXNlYXJjaC1mdWxsdGV4dCBtb2RlPVwidmVydGljYWxcIiAoc2VhcmNoQ2hhbmdlKT1cIm9uU2VhcmNoRnVsbHRleHRDaGFuZ2UoJGV2ZW50KVwiPjwvcHJ5LXNlYXJjaC1mdWxsdGV4dD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1wcnktc2VhcmNoLXRvb2xzX19mb290ZXJcIiBbY2xhc3MuaXMtY2xvc2VdPVwic2VhcmNoVG9vbHNDbG9zZVwiPlxuICAgIDxwcnktc2F2ZS1xdWVyeS1idXR0b25cbiAgICAgIFtlZGl0SW5Qcm9ncmVzc109XCJlZGl0SW5Qcm9ncmVzcyQgfCBhc3luY1wiXG4gICAgICBbY3VycmVudEVkaXRdPVwiY3VycmVudEVkaXQkIHwgYXN5bmNcIlxuICAgICAgW2N1cnJlbnRFZGl0VHlwZV09XCJjdXJyZW50RWRpdFR5cGUkIHwgYXN5bmNcIlxuICAgICAgW2Z1bGx0ZXh0VmFsaWRdPVwiaXNTZWFyY2hGdWxsdGV4dFZhbGlkXCJcbiAgICAgIFttdWx0aVZhbGlkXT1cInNlYXJjaE11bHRpQ2xhc3NWYWxpZCQgfCBhc3luY1wiXG4gICAgICBbbW9ub1ZhbGlkXT1cInNlYXJjaE1vbm9DbGFzc1ZhbGlkJCB8IGFzeW5jXCJcbiAgICAgIFtpc05vdEZ1bGx0ZXh0XT1cImlzU2VhcmNoQ3JpdGVyaWFcIlxuICAgICAgW2lzTW9ub1NlYXJjaF09XCJpc1NlYXJjaE1vbm9cIlxuICAgICAgW2Z1bGx0ZXh0U2VhcmNoXT1cInNlYXJjaEZ1bGx0ZXh0VGVtcFwiXG4gICAgPjwvcHJ5LXNhdmUtcXVlcnktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -88,11 +88,11 @@ export class AutomateRefreshComponent extends ToolboxActionComponent {
|
|
|
88
88
|
}, 100);
|
|
89
89
|
}
|
|
90
90
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutomateRefreshComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutomateRefreshComponent, selector: "pry-automate-refresh", viewQueries: [{ propertyName: "datasourceList", first: true, predicate: ["datasourceList"], descendants: true, read: TemplateRef }, { propertyName: "refreshRateList", first: true, predicate: ["refreshRateList"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutomateRefreshComponent, selector: "pry-automate-refresh", viewQueries: [{ propertyName: "datasourceList", first: true, predicate: ["datasourceList"], descendants: true, read: TemplateRef }, { propertyName: "refreshRateList", first: true, predicate: ["refreshRateList"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.automateRefresh' | i18n\" data-tooltip-position=\"bottom\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n >\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n </ng-container>\n </button>\n</div>\n\n<ng-template #datasourceList>\n <div *ngIf=\"datasources$ | async as dataSources\">\n <button\n *ngIf=\"dataSources.length > 0\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n Tous\n </button>\n <button\n *ngFor=\"let datasourceId of dataSources; let i = index\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId : { type: 'datasource', output: 'name' } | async }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n <button\n *ngFor=\"let rate of refreshRates\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"toggleRefreshRate(rate)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId] ?? 0) === rate\n \"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
92
92
|
}
|
|
93
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutomateRefreshComponent, decorators: [{
|
|
94
94
|
type: Component,
|
|
95
|
-
args: [{ selector: 'pry-automate-refresh', template: "<pry-toolbox-css></pry-toolbox-css>\n<div
|
|
95
|
+
args: [{ selector: 'pry-automate-refresh', template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.automateRefresh' | i18n\" data-tooltip-position=\"bottom\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md automate-btn\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"toggleDatasourceList()\"\n [disabled]=\"((datasources$ | async)?.length ?? 0) < 1\"\n >\n <ng-container *ngIf=\"displayLabels\">\n {{ '@pry.toolbox.automateRefresh' | i18n }}\n </ng-container>\n </button>\n</div>\n\n<ng-template #datasourceList>\n <div *ngIf=\"datasources$ | async as dataSources\">\n <button\n *ngIf=\"dataSources.length > 0\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-0\"\n (click)=\"toggleRefreshRateList('all', 0)\"\n [class.-selected]=\"selectedDatasourceId === 'all'\"\n >\n Tous\n </button>\n <button\n *ngFor=\"let datasourceId of dataSources; let i = index\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm ds-{{ i + 1 }}\"\n (click)=\"toggleRefreshRateList(datasourceId, i + 1)\"\n [class.-selected]=\"selectedDatasourceId === datasourceId\"\n >\n {{ datasourceId | translateId : { type: 'datasource', output: 'name' } | async }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #refreshRateList>\n <div>\n <button\n *ngFor=\"let rate of refreshRates\"\n class=\"refresh-line a-btn a-btn--icon-text -size-sm\"\n (click)=\"toggleRefreshRate(rate)\"\n >\n <pry-icon\n [width]=\"20\"\n [height]=\"20\"\n iconSvg=\"check\"\n *ngIf=\"\n (selectedDatasourceId === 'all'\n ? (allRefreshRate$ | async)\n : ((refreshRates$ | async) ?? {})[selectedDatasourceId] ?? 0) === rate\n \"\n ></pry-icon>\n {{ '@pry.search.namedQuery.refresh.' + rate | i18n }}\n </button>\n </div>\n</ng-template>\n" }]
|
|
96
96
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { datasourceList: [{
|
|
97
97
|
type: ViewChild,
|
|
98
98
|
args: ['datasourceList', { read: TemplateRef }]
|
|
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
100
100
|
type: ViewChild,
|
|
101
101
|
args: ['refreshRateList', { read: TemplateRef }]
|
|
102
102
|
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21hdGUtcmVmcmVzaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvYXV0b21hdGUtcmVmcmVzaC9hdXRvbWF0ZS1yZWZyZXNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9hdXRvbWF0ZS1yZWZyZXNoL2F1dG9tYXRlLXJlZnJlc2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFNcEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHNCQUFzQjtJQWFsRSxZQUFZLEtBQVksRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUM1RixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFUOUYsaUJBQVksR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRy9CLHlC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R0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOzhHQXZHVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qix5SkFDRSxXQUFXLDZHQUNWLFdBQVcsb0RDZG5ELHduRUErREE7OzJGRG5EYSx3QkFBd0I7a0JBSnBDLFNBQVM7K0JBQ0Usc0JBQXNCO2lKQUlvQixjQUFjO3NCQUFqRSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDRyxlQUFlO3NCQUFuRSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnQWN0aW9ucywgRGFzaGJvYXJkQWN0aW9ucywgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJveEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xib3gtYWN0aW9uL3Rvb2xib3gtYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hdXRvbWF0ZS1yZWZyZXNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9tYXRlLXJlZnJlc2guY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9tYXRlUmVmcmVzaENvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdkYXRhc291cmNlTGlzdCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgZGF0YXNvdXJjZUxpc3QhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdyZWZyZXNoUmF0ZUxpc3QnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHJlZnJlc2hSYXRlTGlzdCE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcmVmcmVzaFJhdGVzID0gWzAsIDEwLCAzMCwgNjBdO1xuICBkYXRhc291cmNlcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICByZWZyZXNoUmF0ZXMkITogT2JzZXJ2YWJsZTx7IFtwOiBzdHJpbmddOiBudW1iZXIgfT47XG4gIHNlbGVjdGVkRGF0YXNvdXJjZUlkOiBzdHJpbmcgPSAnJztcbiAgYWxsUmVmcmVzaFJhdGUkITogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0PzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmUmVmcmVzaExpc3Q/OiBPdmVybGF5UmVmO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcihzdG9yZSk7XG5cbiAgICB0aGlzLmRhdGFzb3VyY2VzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5tYW5pZmVzdERhdGFzb3VyY2VzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVmcmVzaFJhdGVzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yZWZyZXNoUmF0ZXMpO1xuXG4gICAgdGhpcy5hbGxSZWZyZXNoUmF0ZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRhdGFzb3VyY2VzJCwgdGhpcy5yZWZyZXNoUmF0ZXMkXSkucGlwZShcbiAgICAgIG1hcCgoW2RhdGFzb3VyY2VzLCByZWZyZXNoUmF0ZXNdKSA9PlxuICAgICAgICBkYXRhc291cmNlcy5tYXAoKGRzKSA9PiByZWZyZXNoUmF0ZXNbZHNdID8/IDApLnJlZHVjZSgocCwgYykgPT4gKHAgPT09IGMgPyBjIDogLTEpKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICB0b2dnbGVEYXRhc291cmNlTGlzdCgpIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0KSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZEYXRhc291cmNlTGlzdCA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydkYXRhc291cmNlLWJnJywgJ3JlZnJlc2gtcnMnXVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZEYXRhc291cmNlTGlzdC5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZGF0YXNvdXJjZUxpc3QsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmRGF0YXNvdXJjZUxpc3QuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy5oaWRlKHRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0KSlcbiAgICAgICk7XG4gICAgICBjb25zdCByZWZyZXNoRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kYXRhc291cmNlLWJnJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBjb25zdCByZWZyZXNoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmF1dG9tYXRlLWJ0bicpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgaWYgKCEhcmVmcmVzaEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHJlZnJlc2guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHJlZnJlc2hFbGVtZW50LnN0eWxlLmxlZnQgPSByZWN0LmxlZnQgKyByZWN0LndpZHRoICsgMTAgKyAncHgnO1xuICAgICAgICByZWZyZXNoRWxlbWVudC5zdHlsZS50b3AgPSByZWN0LnRvcCArICdweCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGlkZShvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG92ZXJsYXlSZWYpIHtcbiAgICAgIG92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVJlZnJlc2hSYXRlTGlzdChkYXRhc291cmNlSWQ6IHN0cmluZywgdGVtcGxhdGVJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZlJlZnJlc2hMaXN0KSB7XG4gICAgICB0aGlzLmhpZGUodGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdERhdGFzb3VyY2UoZGF0YXNvdXJjZUlkKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdCA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydyZWZyZXNoLWJnJywgJ3JlZnJlc2gtcnMnXVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnJlZnJlc2hSYXRlTGlzdCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMub3ZlcmxheVJlZlJlZnJlc2hMaXN0LmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMuaGlkZSh0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdCkpXG4gICAgKTtcbiAgICBjb25zdCByZWZyZXNoRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5yZWZyZXNoLWJnJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgY29uc3QgcmVmcmVzaCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC5kcy0ke3RlbXBsYXRlSW5kZXh9YCkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCEhcmVmcmVzaEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IHJlY3QgPSByZWZyZXNoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgcmVmcmVzaEVsZW1lbnQuc3R5bGUubGVmdCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggKyA1ICsgJ3B4JztcbiAgICAgIHJlZnJlc2hFbGVtZW50LnN0eWxlLnRvcCA9IHJlY3QudG9wICsgJ3B4JztcbiAgICB9XG4gIH1cblxuICBzZWxlY3REYXRhc291cmNlKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YXNvdXJjZUlkID0gaWQ7XG4gIH1cblxuICB0b2dnbGVSZWZyZXNoUmF0ZShyYXRlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGFzb3VyY2VJZCAhPT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZXRSZWZyZXNoUmF0ZSh7IHJhdGUsIGlkOiB0aGlzLnNlbGVjdGVkRGF0YXNvdXJjZUlkIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhc291cmNlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGRhdGFzb3VyY2VJZHMpID0+IHtcbiAgICAgICAgZGF0YXNvdXJjZUlkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZXRSZWZyZXNoUmF0ZSh7IHJhdGUsIGlkIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmhpZGUodGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QpO1xuICAgICAgdGhpcy5oaWRlKHRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0KTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9LCAxMDApO1xuICB9XG59XG4iLCI8cHJ5LXRvb2xib3gtY3NzPjwvcHJ5LXRvb2xib3gtY3NzPlxuPGRpdiBbcHJ5VG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiIHByeVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJpbmZvVG9vbHRpcF9hdXRvbWF0ZVJlZnJlc2hcIj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZCBhdXRvbWF0ZS1idG5cIlxuICAgIGNka092ZXJsYXlPcmlnaW5cbiAgICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICAgIChjbGljayk9XCJ0b2dnbGVEYXRhc291cmNlTGlzdCgpXCJcbiAgICBbZGlzYWJsZWRdPVwiKChkYXRhc291cmNlcyQgfCBhc3luYyk/Lmxlbmd0aCA/PyAwKSA8IDFcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3guYXV0b21hdGVSZWZyZXNoJyB8IGkxOG4gfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjaW5mb1Rvb2x0aXA+XG4gIDxkaXYgY2xhc3M9XCJtLXRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiIGlkPVwiaW5mb1Rvb2x0aXBfYXV0b21hdGVSZWZyZXNoXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJtLXRvb2x0aXBfX3RleHRcIj57eyAnQHByeS50b29sYm94LmF1dG9tYXRlUmVmcmVzaCcgfCBpMThuIH19PC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGF0YXNvdXJjZUxpc3Q+XG4gIDxkaXYgKm5nSWY9XCJkYXRhc291cmNlcyQgfCBhc3luYyBhcyBkYXRhU291cmNlc1wiPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiZGF0YVNvdXJjZXMubGVuZ3RoID4gMFwiXG4gICAgICBjbGFzcz1cInJlZnJlc2gtbGluZSBhLWJ0biBhLWJ0bi0taWNvbi10ZXh0IC1zaXplLXNtIGRzLTBcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlZnJlc2hSYXRlTGlzdCgnYWxsJywgMClcIlxuICAgICAgW2NsYXNzLi1zZWxlY3RlZF09XCJzZWxlY3RlZERhdGFzb3VyY2VJZCA9PT0gJ2FsbCdcIlxuICAgID5cbiAgICAgIFRvdXNcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgZGF0YXNvdXJjZUlkIG9mIGRhdGFTb3VyY2VzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgIGNsYXNzPVwicmVmcmVzaC1saW5lIGEtYnRuIGEtYnRuLS1pY29uLXRleHQgLXNpemUtc20gZHMte3sgaSArIDEgfX1cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlZnJlc2hSYXRlTGlzdChkYXRhc291cmNlSWQsIGkgKyAxKVwiXG4gICAgICBbY2xhc3MuLXNlbGVjdGVkXT1cInNlbGVjdGVkRGF0YXNvdXJjZUlkID09PSBkYXRhc291cmNlSWRcIlxuICAgID5cbiAgICAgIHt7IGRhdGFzb3VyY2VJZCB8IHRyYW5zbGF0ZUlkIDogeyB0eXBlOiAnZGF0YXNvdXJjZScsIG91dHB1dDogJ25hbWUnIH0gfCBhc3luYyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcmVmcmVzaFJhdGVMaXN0PlxuICA8ZGl2PlxuICAgIDxidXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCByYXRlIG9mIHJlZnJlc2hSYXRlc1wiXG4gICAgICBjbGFzcz1cInJlZnJlc2gtbGluZSBhLWJ0biBhLWJ0bi0taWNvbi10ZXh0IC1zaXplLXNtXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVSZWZyZXNoUmF0ZShyYXRlKVwiXG4gICAgPlxuICAgICAgPHByeS1pY29uXG4gICAgICAgIFt3aWR0aF09XCIyMFwiXG4gICAgICAgIFtoZWlnaHRdPVwiMjBcIlxuICAgICAgICBpY29uU3ZnPVwiY2hlY2tcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIChzZWxlY3RlZERhdGFzb3VyY2VJZCA9PT0gJ2FsbCdcbiAgICAgICAgICAgID8gKGFsbFJlZnJlc2hSYXRlJCB8IGFzeW5jKVxuICAgICAgICAgICAgOiAoKHJlZnJlc2hSYXRlcyQgfCBhc3luYykgPz8ge30pW3NlbGVjdGVkRGF0YXNvdXJjZUlkXSA/PyAwKSA9PT0gcmF0ZVxuICAgICAgICBcIlxuICAgICAgPjwvcHJ5LWljb24+XG4gICAgICB7eyAnQHByeS5zZWFyY2gubmFtZWRRdWVyeS5yZWZyZXNoLicgKyByYXRlIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b21hdGUtcmVmcmVzaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvYXV0b21hdGUtcmVmcmVzaC9hdXRvbWF0ZS1yZWZyZXNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9hdXRvbWF0ZS1yZWZyZXNoL2F1dG9tYXRlLXJlZnJlc2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFNcEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHNCQUFzQjtJQWFsRSxZQUFZLEtBQVksRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUM1RixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFUOUYsaUJBQVksR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRy9CLHlC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R0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOzhHQXZHVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qix5SkFDRSxXQUFXLDZHQUNWLFdBQVcsb0RDZG5ELGc2REEwREE7OzJGRDlDYSx3QkFBd0I7a0JBSnBDLFNBQVM7K0JBQ0Usc0JBQXNCO2lKQUlvQixjQUFjO3NCQUFqRSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDRyxlQUFlO3NCQUFuRSxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnQWN0aW9ucywgRGFzaGJvYXJkQWN0aW9ucywgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJveEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xib3gtYWN0aW9uL3Rvb2xib3gtYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hdXRvbWF0ZS1yZWZyZXNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9tYXRlLXJlZnJlc2guY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9tYXRlUmVmcmVzaENvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdkYXRhc291cmNlTGlzdCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgZGF0YXNvdXJjZUxpc3QhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdyZWZyZXNoUmF0ZUxpc3QnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHJlZnJlc2hSYXRlTGlzdCE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcmVmcmVzaFJhdGVzID0gWzAsIDEwLCAzMCwgNjBdO1xuICBkYXRhc291cmNlcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICByZWZyZXNoUmF0ZXMkITogT2JzZXJ2YWJsZTx7IFtwOiBzdHJpbmddOiBudW1iZXIgfT47XG4gIHNlbGVjdGVkRGF0YXNvdXJjZUlkOiBzdHJpbmcgPSAnJztcbiAgYWxsUmVmcmVzaFJhdGUkITogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0PzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmUmVmcmVzaExpc3Q/OiBPdmVybGF5UmVmO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcihzdG9yZSk7XG5cbiAgICB0aGlzLmRhdGFzb3VyY2VzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5tYW5pZmVzdERhdGFzb3VyY2VzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVmcmVzaFJhdGVzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yZWZyZXNoUmF0ZXMpO1xuXG4gICAgdGhpcy5hbGxSZWZyZXNoUmF0ZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRhdGFzb3VyY2VzJCwgdGhpcy5yZWZyZXNoUmF0ZXMkXSkucGlwZShcbiAgICAgIG1hcCgoW2RhdGFzb3VyY2VzLCByZWZyZXNoUmF0ZXNdKSA9PlxuICAgICAgICBkYXRhc291cmNlcy5tYXAoKGRzKSA9PiByZWZyZXNoUmF0ZXNbZHNdID8/IDApLnJlZHVjZSgocCwgYykgPT4gKHAgPT09IGMgPyBjIDogLTEpKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICB0b2dnbGVEYXRhc291cmNlTGlzdCgpIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0KSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZEYXRhc291cmNlTGlzdCA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydkYXRhc291cmNlLWJnJywgJ3JlZnJlc2gtcnMnXVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZEYXRhc291cmNlTGlzdC5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZGF0YXNvdXJjZUxpc3QsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmRGF0YXNvdXJjZUxpc3QuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy5oaWRlKHRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0KSlcbiAgICAgICk7XG4gICAgICBjb25zdCByZWZyZXNoRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kYXRhc291cmNlLWJnJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBjb25zdCByZWZyZXNoID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmF1dG9tYXRlLWJ0bicpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgaWYgKCEhcmVmcmVzaEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHJlZnJlc2guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHJlZnJlc2hFbGVtZW50LnN0eWxlLmxlZnQgPSByZWN0LmxlZnQgKyByZWN0LndpZHRoICsgMTAgKyAncHgnO1xuICAgICAgICByZWZyZXNoRWxlbWVudC5zdHlsZS50b3AgPSByZWN0LnRvcCArICdweCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGlkZShvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG92ZXJsYXlSZWYpIHtcbiAgICAgIG92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVJlZnJlc2hSYXRlTGlzdChkYXRhc291cmNlSWQ6IHN0cmluZywgdGVtcGxhdGVJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZlJlZnJlc2hMaXN0KSB7XG4gICAgICB0aGlzLmhpZGUodGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdERhdGFzb3VyY2UoZGF0YXNvdXJjZUlkKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdCA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydyZWZyZXNoLWJnJywgJ3JlZnJlc2gtcnMnXVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnJlZnJlc2hSYXRlTGlzdCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMub3ZlcmxheVJlZlJlZnJlc2hMaXN0LmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMuaGlkZSh0aGlzLm92ZXJsYXlSZWZSZWZyZXNoTGlzdCkpXG4gICAgKTtcbiAgICBjb25zdCByZWZyZXNoRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5yZWZyZXNoLWJnJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgY29uc3QgcmVmcmVzaCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC5kcy0ke3RlbXBsYXRlSW5kZXh9YCkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKCEhcmVmcmVzaEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IHJlY3QgPSByZWZyZXNoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgcmVmcmVzaEVsZW1lbnQuc3R5bGUubGVmdCA9IHJlY3QubGVmdCArIHJlY3Qud2lkdGggKyA1ICsgJ3B4JztcbiAgICAgIHJlZnJlc2hFbGVtZW50LnN0eWxlLnRvcCA9IHJlY3QudG9wICsgJ3B4JztcbiAgICB9XG4gIH1cblxuICBzZWxlY3REYXRhc291cmNlKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YXNvdXJjZUlkID0gaWQ7XG4gIH1cblxuICB0b2dnbGVSZWZyZXNoUmF0ZShyYXRlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGFzb3VyY2VJZCAhPT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZXRSZWZyZXNoUmF0ZSh7IHJhdGUsIGlkOiB0aGlzLnNlbGVjdGVkRGF0YXNvdXJjZUlkIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhc291cmNlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGRhdGFzb3VyY2VJZHMpID0+IHtcbiAgICAgICAgZGF0YXNvdXJjZUlkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZXRSZWZyZXNoUmF0ZSh7IHJhdGUsIGlkIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmhpZGUodGhpcy5vdmVybGF5UmVmUmVmcmVzaExpc3QpO1xuICAgICAgdGhpcy5oaWRlKHRoaXMub3ZlcmxheVJlZkRhdGFzb3VyY2VMaXN0KTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9LCAxMDApO1xuICB9XG59XG4iLCI8cHJ5LXRvb2xib3gtY3NzPjwvcHJ5LXRvb2xib3gtY3NzPlxuPGRpdiBjbGFzcz1cImEtdG9vbHRpcFwiIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS50b29sYm94LmF1dG9tYXRlUmVmcmVzaCcgfCBpMThuXCIgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCI+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgLXNpemUtbWQgYXV0b21hdGUtYnRuXCJcbiAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRGF0YXNvdXJjZUxpc3QoKVwiXG4gICAgW2Rpc2FibGVkXT1cIigoZGF0YXNvdXJjZXMkIHwgYXN5bmMpPy5sZW5ndGggPz8gMCkgPCAxXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TGFiZWxzXCI+XG4gICAgICB7eyAnQHByeS50b29sYm94LmF1dG9tYXRlUmVmcmVzaCcgfCBpMThuIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGF0YXNvdXJjZUxpc3Q+XG4gIDxkaXYgKm5nSWY9XCJkYXRhc291cmNlcyQgfCBhc3luYyBhcyBkYXRhU291cmNlc1wiPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiZGF0YVNvdXJjZXMubGVuZ3RoID4gMFwiXG4gICAgICBjbGFzcz1cInJlZnJlc2gtbGluZSBhLWJ0biBhLWJ0bi0taWNvbi10ZXh0IC1zaXplLXNtIGRzLTBcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlZnJlc2hSYXRlTGlzdCgnYWxsJywgMClcIlxuICAgICAgW2NsYXNzLi1zZWxlY3RlZF09XCJzZWxlY3RlZERhdGFzb3VyY2VJZCA9PT0gJ2FsbCdcIlxuICAgID5cbiAgICAgIFRvdXNcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgZGF0YXNvdXJjZUlkIG9mIGRhdGFTb3VyY2VzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgIGNsYXNzPVwicmVmcmVzaC1saW5lIGEtYnRuIGEtYnRuLS1pY29uLXRleHQgLXNpemUtc20gZHMte3sgaSArIDEgfX1cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlZnJlc2hSYXRlTGlzdChkYXRhc291cmNlSWQsIGkgKyAxKVwiXG4gICAgICBbY2xhc3MuLXNlbGVjdGVkXT1cInNlbGVjdGVkRGF0YXNvdXJjZUlkID09PSBkYXRhc291cmNlSWRcIlxuICAgID5cbiAgICAgIHt7IGRhdGFzb3VyY2VJZCB8IHRyYW5zbGF0ZUlkIDogeyB0eXBlOiAnZGF0YXNvdXJjZScsIG91dHB1dDogJ25hbWUnIH0gfCBhc3luYyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcmVmcmVzaFJhdGVMaXN0PlxuICA8ZGl2PlxuICAgIDxidXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCByYXRlIG9mIHJlZnJlc2hSYXRlc1wiXG4gICAgICBjbGFzcz1cInJlZnJlc2gtbGluZSBhLWJ0biBhLWJ0bi0taWNvbi10ZXh0IC1zaXplLXNtXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVSZWZyZXNoUmF0ZShyYXRlKVwiXG4gICAgPlxuICAgICAgPHByeS1pY29uXG4gICAgICAgIFt3aWR0aF09XCIyMFwiXG4gICAgICAgIFtoZWlnaHRdPVwiMjBcIlxuICAgICAgICBpY29uU3ZnPVwiY2hlY2tcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIChzZWxlY3RlZERhdGFzb3VyY2VJZCA9PT0gJ2FsbCdcbiAgICAgICAgICAgID8gKGFsbFJlZnJlc2hSYXRlJCB8IGFzeW5jKVxuICAgICAgICAgICAgOiAoKHJlZnJlc2hSYXRlcyQgfCBhc3luYykgPz8ge30pW3NlbGVjdGVkRGF0YXNvdXJjZUlkXSA/PyAwKSA9PT0gcmF0ZVxuICAgICAgICBcIlxuICAgICAgPjwvcHJ5LWljb24+XG4gICAgICB7eyAnQHByeS5zZWFyY2gubmFtZWRRdWVyeS5yZWZyZXNoLicgKyByYXRlIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -14,10 +14,10 @@ export class ClearViewComponent extends ToolboxActionComponent {
|
|
|
14
14
|
this.close();
|
|
15
15
|
}
|
|
16
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClearViewComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ClearViewComponent, selector: "pry-clear-view", usesInheritance: true, ngImport: i0, template: "<div
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ClearViewComponent, selector: "pry-clear-view", usesInheritance: true, ngImport: i0, template: "<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.clear' | i18n\" data-tooltip-position=\"bottom\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.clear' | i18n }}</ng-container>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClearViewComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector: 'pry-clear-view', template: "<div
|
|
21
|
+
args: [{ selector: 'pry-clear-view', template: "<div class=\"a-tooltip\" [attr.data-tooltip]=\"'@pry.toolbox.clear' | i18n\" data-tooltip-position=\"bottom\">\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-md\" (click)=\"clear()\">\n <ng-container *ngIf=\"displayLabels\">{{ '@pry.toolbox.clear' | i18n }}</ng-container>\n </button>\n</div>\n" }]
|
|
22
22
|
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L2NvbXBvbmVudHMvY2xlYXItdmlldy9jbGVhci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9jbGVhci12aWV3L2NsZWFyLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUFNcEYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHNCQUFzQjtJQUM1RCxZQUFZLEtBQVk7UUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7OEdBUlUsa0JBQWtCO2tHQUFsQixrQkFBa0IsNkVDVC9CLDZUQUtBOzsyRkRJYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgVG9vbGJveEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xib3gtYWN0aW9uL3Rvb2xib3gtYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1jbGVhci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NsZWFyLXZpZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENsZWFyVmlld0NvbXBvbmVudCBleHRlbmRzIFRvb2xib3hBY3Rpb25Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuY2xlYXJNYW5pZmVzdCgpKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhLXRvb2x0aXBcIiBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkudG9vbGJveC5jbGVhcicgfCBpMThuXCIgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCI+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZFwiIChjbGljayk9XCJjbGVhcigpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIj57eyAnQHByeS50b29sYm94LmNsZWFyJyB8IGkxOG4gfX08L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -32,10 +32,10 @@ export class DragWidgetsComponent extends ToolboxActionComponent {
|
|
|
32
32
|
$event.stopPropagation();
|
|
33
33
|
}
|
|
34
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DragWidgetsComponent, deps: [{ token: i1.Store }, { token: i2.ToolboxManifestService }, { token: i2.ToolboxMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DragWidgetsComponent, selector: "pry-drag-widgets", usesInheritance: true, ngImport: i0, template: "<div class=\"toolbox-draggable\">\n <div
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: DragWidgetsComponent, selector: "pry-drag-widgets", usesInheritance: true, ngImport: i0, template: "<div class=\"toolbox-draggable\">\n <div class=\"a-tooltip\" data-tooltip=\"Ins\u00E9rer un widget\" data-tooltip-position=\"bottom\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span\n >{{ '@pry.toolbox.drag' | i18n }}\n </ng-container>\n </button>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Ins\u00E9rer un widget (par glisser/d\u00E9poser)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let menu of menu$ | async\">\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n <ng-container *ngIf=\"displayLabels\">{{ menu.label | i18n }}</ng-container>\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n <ng-container *ngIf=\"displayLabels\">{{ sub.label | i18n }}</ng-container>\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i4.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.GetSecuredImagePipe, name: "getSecuredImage" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
36
36
|
}
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DragWidgetsComponent, decorators: [{
|
|
38
38
|
type: Component,
|
|
39
|
-
args: [{ selector: 'pry-drag-widgets', template: "<div class=\"toolbox-draggable\">\n <div
|
|
39
|
+
args: [{ selector: 'pry-drag-widgets', template: "<div class=\"toolbox-draggable\">\n <div class=\"a-tooltip\" data-tooltip=\"Ins\u00E9rer un widget\" data-tooltip-position=\"bottom\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary -size-md\"\n (click)=\"openMenu($event)\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"widget_insert\"\n aria-haspopup\n aria-controls=\"IDpanel\"\n aria-expanded=\"false\"\n >\n <ng-container *ngIf=\"displayLabels\"\n ><span class=\"u-visually-hidden\">{{ '@pry.toolbox.dragIndication' | i18n }}</span\n >{{ '@pry.toolbox.drag' | i18n }}\n </ng-container>\n </button>\n </div>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"mainOpened\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayPositions]=\"[connectedPosition]\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"mainOpened = false\"\n>\n <div class=\"o-draggable-menu\" aria-label=\"Ins\u00E9rer un widget (par glisser/d\u00E9poser)\" aria-labelledby=\"widget_insert\">\n <ul class=\"o-draggable-menu__list\">\n <ng-container *ngFor=\"let menu of menu$ | async\">\n <li class=\"o-draggable-menu__list__item\">\n <button class=\"a-btn\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <pry-icon [iconSvg]=\"menu.icon\"></pry-icon>\n <ng-container *ngIf=\"displayLabels\">{{ menu.label | i18n }}</ng-container>\n </button>\n\n <ul class=\"o-draggable-menu__list__submenu\">\n <ng-container *ngFor=\"let sub of menu.sub\">\n <li class=\"o-draggable-menu__list__submenu__item\">\n <button class=\"a-btn\" (dragstart)=\"dragStart($event, sub.type)\" draggable=\"true\">\n <img [alt]=\"sub.label\" [height]=\"24\" [width]=\"24\" [src]=\"sub.icon | getSecuredImage | async\" />\n <ng-container *ngIf=\"displayLabels\">{{ sub.label | i18n }}</ng-container>\n </button>\n </li>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n</ng-template>\n" }]
|
|
40
40
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ToolboxManifestService }, { type: i2.ToolboxMenuService }]; } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy13aWRnZXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9kcmFnLXdpZGdldHMvZHJhZy13aWRnZXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9kcmFnLXdpZGdldHMvZHJhZy13aWRnZXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBcUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7O0FBTXBGLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxzQkFBc0I7SUFXOUQsWUFDRSxLQUFZLEVBQ0osc0JBQThDLEVBQy9DLGtCQUFzQztRQUU3QyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQy9DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFiL0MsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVWLHNCQUFpQixHQUFzQjtZQUM5QyxPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBU0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDO0lBQ3RELENBQUM7SUFFRCxTQUFTLENBQUMsTUFBaUIsRUFBRSxJQUFZO1FBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWE7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBaENVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtFQ1hqQyx1c0VBc0RBOzsyRkQzQ2Esb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMsIFRvb2xib3hNYW5pZmVzdFNlcnZpY2UsIFRvb2xib3hNZW51U2VydmljZSwgV2lkZ2V0RGVzY3JpcHRpb25NZW51IH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2xib3hBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi90b29sYm94LWFjdGlvbi90b29sYm94LWFjdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZHJhZy13aWRnZXRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYWctd2lkZ2V0cy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ1dpZGdldHNDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgbWFpbk9wZW5lZCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IGNvbm5lY3RlZFBvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgIG92ZXJsYXlZOiAndG9wJ1xuICB9O1xuICBtZW51JDogT2JzZXJ2YWJsZTxXaWRnZXREZXNjcmlwdGlvbk1lbnVbXT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgdG9vbGJveE1hbmlmZXN0U2VydmljZTogVG9vbGJveE1hbmlmZXN0U2VydmljZSxcbiAgICBwdWJsaWMgdG9vbGJveE1lbnVTZXJ2aWNlOiBUb29sYm94TWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5sb2FkV2lkZ2V0cygpKTtcbiAgICB0aGlzLm1lbnUkID0gdGhpcy50b29sYm94TWVudVNlcnZpY2UubWVudVN0cnVjdHVyZSQ7XG4gIH1cblxuICBkcmFnU3RhcnQoJGV2ZW50OiBEcmFnRXZlbnQsIHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMudG9vbGJveE1hbmlmZXN0U2VydmljZS5kYXRhVHJhbnNmZXIoJGV2ZW50LCB0eXBlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5tYWluT3BlbmVkID0gZmFsc2U7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIG9wZW5NZW51KCRldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLm1haW5PcGVuZWQgPSB0cnVlO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRvb2xib3gtZHJhZ2dhYmxlXCI+XG4gIDxkaXYgY2xhc3M9XCJhLXRvb2x0aXBcIiBkYXRhLXRvb2x0aXA9XCJJbnPDqXJlciB1biB3aWRnZXRcIiBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJib3R0b21cIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZFwiXG4gICAgICAoY2xpY2spPVwib3Blbk1lbnUoJGV2ZW50KVwiXG4gICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICAgICAgaWQ9XCJ3aWRnZXRfaW5zZXJ0XCJcbiAgICAgIGFyaWEtaGFzcG9wdXBcbiAgICAgIGFyaWEtY29udHJvbHM9XCJJRHBhbmVsXCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIlxuICAgICAgICA+PHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guZHJhZ0luZGljYXRpb24nIHwgaTE4biB9fTwvc3BhblxuICAgICAgICA+e3sgJ0BwcnkudG9vbGJveC5kcmFnJyB8IGkxOG4gfX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIm1haW5PcGVuZWRcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cInRydWVcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJbY29ubmVjdGVkUG9zaXRpb25dXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm1haW5PcGVuZWQgPSBmYWxzZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJvLWRyYWdnYWJsZS1tZW51XCIgYXJpYS1sYWJlbD1cIkluc8OpcmVyIHVuIHdpZGdldCAocGFyIGdsaXNzZXIvZMOpcG9zZXIpXCIgYXJpYS1sYWJlbGxlZGJ5PVwid2lkZ2V0X2luc2VydFwiPlxuICAgIDx1bCBjbGFzcz1cIm8tZHJhZ2dhYmxlLW1lbnVfX2xpc3RcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lbnUgb2YgbWVudSQgfCBhc3luY1wiPlxuICAgICAgICA8bGkgY2xhc3M9XCJvLWRyYWdnYWJsZS1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBbaWNvblN2Z109XCJtZW51Lmljb25cIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlMYWJlbHNcIj57eyBtZW51LmxhYmVsIHwgaTE4biB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPHVsIGNsYXNzPVwiby1kcmFnZ2FibGUtbWVudV9fbGlzdF9fc3VibWVudVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3ViIG9mIG1lbnUuc3ViXCI+XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm8tZHJhZ2dhYmxlLW1lbnVfX2xpc3RfX3N1Ym1lbnVfX2l0ZW1cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG5cIiAoZHJhZ3N0YXJ0KT1cImRyYWdTdGFydCgkZXZlbnQsIHN1Yi50eXBlKVwiIGRyYWdnYWJsZT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgW2FsdF09XCJzdWIubGFiZWxcIiBbaGVpZ2h0XT1cIjI0XCIgW3dpZHRoXT1cIjI0XCIgW3NyY109XCJzdWIuaWNvbiB8IGdldFNlY3VyZWRJbWFnZSB8IGFzeW5jXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TGFiZWxzXCI+e3sgc3ViLmxhYmVsIHwgaTE4biB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|