@provoly/dashboard 1.4.14 → 1.4.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +7 -7
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +7 -7
- package/esm2022/admin/components/admin-abac-rules/components/composed-condition/composed-condition.component.mjs +10 -10
- package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +6 -6
- package/esm2022/admin/components/admin-abac-rules/components/select-attribute/select-attribute.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/components/select-metadata/select-metadata.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +10 -10
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +10 -15
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +8 -8
- package/esm2022/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +6 -6
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +5 -5
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +6 -6
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +5 -5
- package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +6 -6
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +7 -7
- package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-environment/admin-environment-select/admin-environment-select.component.mjs +5 -5
- package/esm2022/admin/components/admin-environment/admin-environment-update/admin-environment-update.component.mjs +5 -5
- package/esm2022/admin/components/admin-environment/admin-environment.component.mjs +5 -5
- package/esm2022/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.mjs +5 -5
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-layout/admin-layout.component.mjs +3 -3
- package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +5 -5
- package/esm2022/admin/components/admin-links/admin-links.component.mjs +5 -5
- package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/admin-edit-metadata/admin-edit-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/admin-select-metadata/admin-select-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +4 -5
- package/esm2022/admin/components/admin-metadata/shared/list-metadata/pry-list-metadata.component.mjs +5 -6
- package/esm2022/admin/components/admin-metadata-rules/admin-metadata-rules.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata-rules/admin-select-metadata-rules/admin-select-metadata-rules.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +4 -5
- package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates-form/admin-predicates-form.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates-update/admin-predicates-update.component.mjs +5 -5
- package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +5 -5
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-modal/admin-relation-types-modal.component.mjs +4 -5
- package/esm2022/admin/components/admin-relation-types/admin-relation-types-select/admin-relation-types-select.component.mjs +5 -5
- package/esm2022/admin/components/admin-relation-types/admin-relation-types.component.mjs +6 -6
- package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +6 -6
- package/esm2022/admin/components/admin-user/admin-user.component.mjs +5 -5
- package/esm2022/admin/components/association/association.component.mjs +4 -5
- package/esm2022/components/card/card.component.mjs +5 -6
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +6 -6
- package/esm2022/components/scheme-picker/scheme-picker.component.mjs +7 -7
- package/esm2022/components/stepper/stepper.component.mjs +3 -4
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +5 -5
- package/esm2022/dataset/components/dataset-version-form/dataset-version-form.component.mjs +6 -7
- package/esm2022/filters/date/date-filter.component.mjs +5 -6
- package/esm2022/filters/list/list-filter.component.mjs +6 -7
- package/esm2022/filters/number/number-filter.component.mjs +5 -6
- package/esm2022/filters/text/text-filter.component.mjs +5 -6
- package/esm2022/lib/core/components/about/about.component.mjs +3 -3
- package/esm2022/lib/core/components/accordion/accordion-item/accordion-item.component.mjs +7 -7
- package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +6 -6
- package/esm2022/lib/core/components/base-toolbox/base-toolbox.component.mjs +6 -6
- package/esm2022/lib/core/components/base-toolbox-action/base-toolbox-action.component.mjs +6 -7
- package/esm2022/lib/core/components/date-picker/date-picker.component.mjs +4 -4
- package/esm2022/lib/core/components/date-picker/time-picker/loop-scroll-column/loop-scroll-column.component.mjs +3 -4
- package/esm2022/lib/core/components/date-picker/time-picker/time-picker.component.mjs +6 -6
- package/esm2022/lib/core/components/edit-input/edit-input.component.mjs +7 -8
- package/esm2022/lib/core/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/core/components/modal/modal.component.mjs +5 -6
- package/esm2022/lib/core/components/nq-color-selector/nq-color-selector.component.mjs +5 -5
- package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +3 -3
- package/esm2022/lib/core/components/range/range.component.mjs +5 -6
- package/esm2022/lib/core/components/select/select.component.mjs +3 -3
- package/esm2022/lib/core/components/select-image/select-image.component.mjs +5 -5
- package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +6 -6
- package/esm2022/lib/core/components/snackbar/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/core/components/status-modal/status-modal.component.mjs +5 -5
- package/esm2022/lib/core/components/tabs/tab-group.component.mjs +3 -3
- package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -4
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +9 -9
- package/esm2022/lib/core/store/search/search.effects.mjs +4 -2
- package/esm2022/lib/core/store/search/search.service.mjs +3 -7
- package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +3 -3
- package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +2 -2
- package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +8 -8
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +12 -12
- package/esm2022/lib/dashboard/components/manifests/manifests.component.mjs +5 -5
- package/esm2022/lib/dashboard/components/metadata/metadata.component.mjs +5 -6
- package/esm2022/lib/dashboard/components/vizualize-raw/vizualize-raw.component.mjs +3 -3
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +6 -6
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +10 -10
- package/esm2022/lib/dashboard/components/widgets/widget-filler/widget-filler.component.mjs +2 -2
- package/esm2022/lib/dashboard/components/widgets/widget-placement/widget-placement.utils.mjs +2 -2
- package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +7 -7
- package/esm2022/lib/dashboard/resultset-utils.mjs +7 -8
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +4 -4
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +13 -24
- package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +3 -3
- package/esm2022/notification/components/notification/content/notification-content.component.mjs +3 -3
- package/esm2022/notification/components/notification/notification.component.mjs +5 -5
- package/esm2022/pipeline/components/pipeline-details/pipeline-details.component.mjs +7 -7
- package/esm2022/pipeline/components/pipeline-editor/graph-serializer.utils.mjs +2 -2
- package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +5 -5
- package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +9 -9
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +6 -6
- package/esm2022/presentation/components/presentation.component.mjs +6 -6
- package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +5 -5
- package/esm2022/restitution/components/restitution/restitution.component.mjs +3 -3
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +9 -9
- package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
- package/esm2022/search/components/choose-widget/choose-widget.component.mjs +5 -5
- package/esm2022/search/components/edit-named-query/edit-named-query.component.mjs +9 -9
- package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +3 -3
- package/esm2022/search/search-home/search-home.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-composed/search-composed.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +3 -3
- package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +8 -8
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +6 -6
- package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +3 -3
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +7 -7
- package/esm2022/search/search-multi-class/components/multi-class-field-selection/multi-class-field-selection.component.mjs +6 -6
- package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +7 -7
- package/esm2022/search/search-tools/search-tools.component.mjs +13 -13
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +5 -5
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +10 -10
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +8 -8
- package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +5 -6
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +3 -3
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +4 -4
- package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +2 -2
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +12 -12
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +13 -7
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +7 -7
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +7 -7
- package/esm2022/widgets/widget-iframe/messaging/iframe-messaging.service.mjs +2 -2
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +10 -10
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +2 -2
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +2 -2
- package/esm2022/widgets/widget-table/expand-value/expand-value.component.mjs +4 -5
- package/esm2022/widgets/widget-template/component/widget-template.component.mjs +7 -7
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +10 -10
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +9 -9
- package/fesm2022/provoly-dashboard-admin.mjs +171 -175
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-card.mjs +4 -5
- package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +4 -4
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +6 -6
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-stepper.mjs +2 -3
- package/fesm2022/provoly-dashboard-components-stepper.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +14 -14
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-date.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-date.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-number.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-text.mjs +4 -5
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +4 -4
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline.mjs +21 -21
- package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +14 -14
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +6 -6
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +35 -35
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +25 -25
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +2 -2
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +3 -3
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +10 -10
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +11 -5
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +5 -5
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +8 -8
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +9 -9
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +6 -6
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs +7 -7
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +11 -11
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +7 -7
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +204 -219
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -8,12 +8,12 @@ import { ExecutionState } from '../pipeline-editor/pipeline.interface';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@ngrx/store";
|
|
10
10
|
import * as i2 from "@angular/cdk/overlay";
|
|
11
|
-
import * as i3 from "@
|
|
12
|
-
import * as i4 from "@
|
|
13
|
-
import * as i5 from "
|
|
14
|
-
import * as i6 from "
|
|
15
|
-
import * as i7 from "
|
|
16
|
-
import * as i8 from "
|
|
11
|
+
import * as i3 from "@provoly/dashboard";
|
|
12
|
+
import * as i4 from "@angular/cdk/a11y";
|
|
13
|
+
import * as i5 from "../pipeline-editor/pipeline-editor.component";
|
|
14
|
+
import * as i6 from "../../style/css.component";
|
|
15
|
+
import * as i7 from "../pipeline-details/pipeline-details.component";
|
|
16
|
+
import * as i8 from "@angular/common";
|
|
17
17
|
export class PryPipelineListComponent {
|
|
18
18
|
constructor(store, overlay, viewContainerRef) {
|
|
19
19
|
this.store = store;
|
|
@@ -146,11 +146,11 @@ export class PryPipelineListComponent {
|
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryPipelineListComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PryPipelineListComponent, selector: "pry-pipeline-list", viewQueries: [{ propertyName: "templateDropdown", first: true, predicate: ["dropdown"], descendants: true, read: TemplateRef }, { propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "actions", first: true, predicate: ["actions"], descendants: true }, { propertyName: "toggleActions", first: true, predicate: ["toggleActions"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }], ngImport: i0, template: "<pry-pipeline-css></pry-pipeline-css>\n<div class=\"o-pipeline-layout\" [ngSwitch]=\"selectedMode\">\n <ng-container *ngSwitchCase=\"ViewMode.CATALOG\">\n <div class=\"o-pipeline-layout__toolbox\">\n <button class=\"a-btn a-btn--primary a-btn--icon-text\" type=\"button\" (click)=\"create()\">\n {{ '@pry.pipeline.create' | i18n }}\n </button>\n </div>\n <h1 class=\"a-h1\">{{ '@pry.pipeline.transformation_catalog' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"date\"\n prySortDirection=\"desc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.pipeline.transformation_catalog' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th prySortHeader=\"state\">{{ '@pry.pipeline.details.state' | i18n }}</th>\n <th prySortHeader=\"title\">{{ '@pry.pipeline.details.title' | i18n }}</th>\n <th prySortHeader=\"date\">{{ '@pry.pipeline.details.last_execution_date' | i18n }}</th>\n <th>\n <div class=\"u-display-flex -align-center -column\">\n {{ '@pry.pipeline.details.execution_status' | i18n }}\n </div>\n </th>\n <th>{{ '@pry.pipeline.action' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let transfo of transformation$ | async | prySortData : sortActive : sortDirection; let index = index\"\n >\n <td>\n <div *ngIf=\"transfo.active; else deactivated\" class=\"container-state\">\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"check\" class=\"check\"></pry-icon>\n <span> {{ '@pry.pipeline.activated' | i18n }}</span>\n </div>\n <ng-template #deactivated>\n <div class=\"container-state\">\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"stop\" class=\"stop\"></pry-icon>\n <span>{{ '@pry.pipeline.deactivated' | i18n }}</span>\n </div>\n </ng-template>\n </td>\n <td>{{ transfo.title }}</td>\n <td>{{ transfo?.lastJobExecution?.executionDate | sinceDate }}</td>\n <td *ngIf=\"transfo.lastJobExecution\" class=\"u-display-flex -align-center -column\">\n <div [ngSwitch]=\"transfo.lastJobExecution.status\">\n <ng-container *ngSwitchCase=\"ExecutionState.TERMINATED\">\n <pry-icon iconSvg=\"check\" [height]=\"25\" [width]=\"25\" class=\"check\"></pry-icon>\n </ng-container>\n <ng-container *ngSwitchCase=\"ExecutionState.STARTED\">\n <pry-icon iconSvg=\"synchro\" [height]=\"25\" [width]=\"25\" class=\"warning\"></pry-icon>\n </ng-container>\n <ng-container *ngSwitchCase=\"ExecutionState.ERROR\">\n <pry-icon iconSvg=\"close\" [height]=\"25\" [width]=\"25\" class=\"danger\"></pry-icon>\n </ng-container>\n </div>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-sm\" (click)=\"consult(transfo)\">\n {{ '@pry.pipeline.consult' | i18n }}\n <span class=\"u-visually-hidden\"> {{ transfo.title }} </span>\n </button>\n </td>\n <td>\n <button\n class=\"a-btn a-btn--more\"\n type=\"button\"\n id=\"actions-{{ index }}\"\n #actions\n aria-controls=\"panelActions\"\n [attr.aria-expanded]=\"!!overlayRef\"\n (click)=\"toggleMoreDropdown($event, index, transfo)\"\n >\n <pry-icon iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngSwitchCase=\"ViewMode.CONSULT\">\n <ng-container *ngIf=\"selectedTransfo\">\n <pry-pipeline-details\n [pipeline]=\"selectedTransfo\"\n (goToList)=\"list()\"\n (goToEditor)=\"savePipeline($event)\"\n (executeConfirm)=\"toggleExecuteConfirm()\"\n ></pry-pipeline-details>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"ViewMode.CREATION\">\n <pry-pipeline-details (goToList)=\"list()\" (goToEditor)=\"savePipeline($event)\"></pry-pipeline-details>\n </ng-container>\n <ng-container *ngSwitchCase=\"ViewMode.EDITOR\">\n <pry-pipeline-editor [pipeline]=\"selectedTransfo\" (goToConsult)=\"consult($event)\"></pry-pipeline-editor>\n </ng-container>\n</div>\n<ng-template #noExecution>\n <div class=\"container-state\">\n <span>{{ '@pry.pipeline.ko' | i18n }}</span>\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"danger\" class=\"danger\"></pry-icon>\n </div>\n</ng-template>\n\n<ng-template #dropdown>\n <div\n class=\"m-context-menu\"\n id=\"panelActions\"\n *ngIf=\"selectedTransfo\"\n (click)=\"$event.stopPropagation()\"\n (keydown.escape)=\"closeDropdown()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog panelActions\"\n >\n <ul class=\"m-context-menu__list\">\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n #toggleActions\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n (click)=\"toggleState(selectedTransfo)\"\n (keydown.arrowDown)=\"navigateContextMenu(activate, execute)\"\n (keydown.arrowUp)=\"navigateContextMenu(activate, execute)\"\n tabindex=\"0\"\n #activate\n >\n <span>{{ (selectedTransfo.active ? '@pry.pipeline.deactivate' : '@pry.pipeline.activate') | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n #execute\n type=\"button\"\n role=\"menuitem\"\n id=\"execute\"\n class=\"a-btn\"\n tabindex=\"-1\"\n (keydown.arrowDown)=\"navigateContextMenu(execute, activate)\"\n (keydown.arrowUp)=\"navigateContextMenu(execute, activate)\"\n [disabled]=\"!selectedTransfo.active\"\n (click)=\"toggleExecuteConfirm()\"\n >\n <span>{{ '@pry.pipeline.execute' | i18n }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n<ng-template #templateModal>\n <div\n class=\"o-modal\"\n *ngIf=\"selectedTransfo\"\n (keydown.escape)=\"toggleExecuteConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n #cross\n (keydown.shift.tab)=\"focusElement(confirm)\"\n (click)=\"cancelRemoveConfirm()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" #cancel (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #confirm\n id=\"confirm\"\n class=\"a-btn a-btn--primary\"\n (click)=\"confirmExecution(selectedTransfo)\"\n (keydown.tab)=\"focusElement(cross)\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\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: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i4.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i4.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i6.PryPipelineEditorComponent, selector: "pry-pipeline-editor", inputs: ["pipeline"], outputs: ["goToConsult"] }, { kind: "component", type: i7.PryPipelineCssComponent, selector: "pry-pipeline-css" }, { kind: "component", type: i8.PryPipelineDetailsComponent, selector: "pry-pipeline-details", inputs: ["pipeline"], outputs: ["goToList", "goToConsult", "goToEditor", "executeConfirm"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }, { kind: "pipe", type: i4.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i4.SinceDatePipe, name: "sinceDate" }] }); }
|
|
149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryPipelineListComponent, selector: "pry-pipeline-list", viewQueries: [{ propertyName: "templateDropdown", first: true, predicate: ["dropdown"], descendants: true, read: TemplateRef }, { propertyName: "templateModal", first: true, predicate: ["templateModal"], descendants: true, read: TemplateRef }, { propertyName: "actions", first: true, predicate: ["actions"], descendants: true }, { propertyName: "toggleActions", first: true, predicate: ["toggleActions"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }], ngImport: i0, template: "<pry-pipeline-css></pry-pipeline-css>\n<div class=\"o-pipeline-layout\">\n @switch (selectedMode) {\n @case (ViewMode.CATALOG) {\n <div class=\"o-pipeline-layout__toolbox\">\n <button class=\"a-btn a-btn--primary a-btn--icon-text\" type=\"button\" (click)=\"create()\">\n {{ '@pry.pipeline.create' | i18n }}\n </button>\n </div>\n <h1 class=\"a-h1\">{{ '@pry.pipeline.transformation_catalog' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"date\"\n prySortDirection=\"desc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.pipeline.transformation_catalog' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th prySortHeader=\"state\">{{ '@pry.pipeline.details.state' | i18n }}</th>\n <th prySortHeader=\"title\">{{ '@pry.pipeline.details.title' | i18n }}</th>\n <th prySortHeader=\"date\">{{ '@pry.pipeline.details.last_execution_date' | i18n }}</th>\n <th>\n <div class=\"u-display-flex -align-center -column\">\n {{ '@pry.pipeline.details.execution_status' | i18n }}\n </div>\n </th>\n <th>{{ '@pry.pipeline.action' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n @for (transfo of transformation$ | async | prySortData : sortActive : sortDirection; track transfo; let index = $index) {\n <tr\n >\n <td>\n @if (transfo.active) {\n <div class=\"container-state\">\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"check\" class=\"check\"></pry-icon>\n <span> {{ '@pry.pipeline.activated' | i18n }}</span>\n </div>\n } @else {\n <div class=\"container-state\">\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"stop\" class=\"stop\"></pry-icon>\n <span>{{ '@pry.pipeline.deactivated' | i18n }}</span>\n </div>\n }\n <ng-template #deactivated>\n <div class=\"container-state\">\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"stop\" class=\"stop\"></pry-icon>\n <span>{{ '@pry.pipeline.deactivated' | i18n }}</span>\n </div>\n </ng-template>\n </td>\n <td>{{ transfo.title }}</td>\n <td>{{ transfo?.lastJobExecution?.executionDate | sinceDate }}</td>\n @if (transfo.lastJobExecution) {\n <td class=\"u-display-flex -align-center -column\">\n <div>\n @switch (transfo.lastJobExecution.status) {\n @case (ExecutionState.TERMINATED) {\n <pry-icon iconSvg=\"check\" [height]=\"25\" [width]=\"25\" class=\"check\"></pry-icon>\n }\n @case (ExecutionState.STARTED) {\n <pry-icon iconSvg=\"synchro\" [height]=\"25\" [width]=\"25\" class=\"warning\"></pry-icon>\n }\n @case (ExecutionState.ERROR) {\n <pry-icon iconSvg=\"close\" [height]=\"25\" [width]=\"25\" class=\"danger\"></pry-icon>\n }\n }\n </div>\n </td>\n }\n <td>\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-sm\" (click)=\"consult(transfo)\">\n {{ '@pry.pipeline.consult' | i18n }}\n <span class=\"u-visually-hidden\"> {{ transfo.title }} </span>\n </button>\n </td>\n <td>\n <button\n class=\"a-btn a-btn--more\"\n type=\"button\"\n id=\"actions-{{ index }}\"\n #actions\n aria-controls=\"panelActions\"\n [attr.aria-expanded]=\"!!overlayRef\"\n (click)=\"toggleMoreDropdown($event, index, transfo)\"\n >\n <pry-icon iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n @case (ViewMode.CONSULT) {\n @if (selectedTransfo) {\n <pry-pipeline-details\n [pipeline]=\"selectedTransfo\"\n (goToList)=\"list()\"\n (goToEditor)=\"savePipeline($event)\"\n (executeConfirm)=\"toggleExecuteConfirm()\"\n ></pry-pipeline-details>\n }\n }\n @case (ViewMode.CREATION) {\n <pry-pipeline-details (goToList)=\"list()\" (goToEditor)=\"savePipeline($event)\"></pry-pipeline-details>\n }\n @case (ViewMode.EDITOR) {\n <pry-pipeline-editor [pipeline]=\"selectedTransfo\" (goToConsult)=\"consult($event)\"></pry-pipeline-editor>\n }\n }\n</div>\n<ng-template #noExecution>\n <div class=\"container-state\">\n <span>{{ '@pry.pipeline.ko' | i18n }}</span>\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"danger\" class=\"danger\"></pry-icon>\n </div>\n</ng-template>\n\n<ng-template #dropdown>\n @if (selectedTransfo) {\n <div\n class=\"m-context-menu\"\n id=\"panelActions\"\n (click)=\"$event.stopPropagation()\"\n (keydown.escape)=\"closeDropdown()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog panelActions\"\n >\n <ul class=\"m-context-menu__list\">\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n #toggleActions\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n (click)=\"toggleState(selectedTransfo)\"\n (keydown.arrowDown)=\"navigateContextMenu(activate, execute)\"\n (keydown.arrowUp)=\"navigateContextMenu(activate, execute)\"\n tabindex=\"0\"\n #activate\n >\n <span>{{ (selectedTransfo.active ? '@pry.pipeline.deactivate' : '@pry.pipeline.activate') | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n #execute\n type=\"button\"\n role=\"menuitem\"\n id=\"execute\"\n class=\"a-btn\"\n tabindex=\"-1\"\n (keydown.arrowDown)=\"navigateContextMenu(execute, activate)\"\n (keydown.arrowUp)=\"navigateContextMenu(execute, activate)\"\n [disabled]=\"!selectedTransfo.active\"\n (click)=\"toggleExecuteConfirm()\"\n >\n <span>{{ '@pry.pipeline.execute' | i18n }}</span>\n </button>\n </li>\n </ul>\n </div>\n }\n</ng-template>\n<ng-template #templateModal>\n @if (selectedTransfo) {\n <div\n class=\"o-modal\"\n (keydown.escape)=\"toggleExecuteConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n #cross\n (keydown.shift.tab)=\"focusElement(confirm)\"\n (click)=\"cancelRemoveConfirm()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" #cancel (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #confirm\n id=\"confirm\"\n class=\"a-btn a-btn--primary\"\n (click)=\"confirmExecution(selectedTransfo)\"\n (keydown.tab)=\"focusElement(cross)\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i3.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i3.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i3.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i5.PryPipelineEditorComponent, selector: "pry-pipeline-editor", inputs: ["pipeline"], outputs: ["goToConsult"] }, { kind: "component", type: i6.PryPipelineCssComponent, selector: "pry-pipeline-css" }, { kind: "component", type: i7.PryPipelineDetailsComponent, selector: "pry-pipeline-details", inputs: ["pipeline"], outputs: ["goToList", "goToConsult", "goToEditor", "executeConfirm"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i3.PrySortDataPipe, name: "prySortData" }, { kind: "pipe", type: i3.SinceDatePipe, name: "sinceDate" }] }); }
|
|
150
150
|
}
|
|
151
151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryPipelineListComponent, decorators: [{
|
|
152
152
|
type: Component,
|
|
153
|
-
args: [{ selector: 'pry-pipeline-list', template: "<pry-pipeline-css></pry-pipeline-css>\n<div class=\"o-pipeline-layout\"
|
|
153
|
+
args: [{ selector: 'pry-pipeline-list', template: "<pry-pipeline-css></pry-pipeline-css>\n<div class=\"o-pipeline-layout\">\n @switch (selectedMode) {\n @case (ViewMode.CATALOG) {\n <div class=\"o-pipeline-layout__toolbox\">\n <button class=\"a-btn a-btn--primary a-btn--icon-text\" type=\"button\" (click)=\"create()\">\n {{ '@pry.pipeline.create' | i18n }}\n </button>\n </div>\n <h1 class=\"a-h1\">{{ '@pry.pipeline.transformation_catalog' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"date\"\n prySortDirection=\"desc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.pipeline.transformation_catalog' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th prySortHeader=\"state\">{{ '@pry.pipeline.details.state' | i18n }}</th>\n <th prySortHeader=\"title\">{{ '@pry.pipeline.details.title' | i18n }}</th>\n <th prySortHeader=\"date\">{{ '@pry.pipeline.details.last_execution_date' | i18n }}</th>\n <th>\n <div class=\"u-display-flex -align-center -column\">\n {{ '@pry.pipeline.details.execution_status' | i18n }}\n </div>\n </th>\n <th>{{ '@pry.pipeline.action' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n @for (transfo of transformation$ | async | prySortData : sortActive : sortDirection; track transfo; let index = $index) {\n <tr\n >\n <td>\n @if (transfo.active) {\n <div class=\"container-state\">\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"check\" class=\"check\"></pry-icon>\n <span> {{ '@pry.pipeline.activated' | i18n }}</span>\n </div>\n } @else {\n <div class=\"container-state\">\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"stop\" class=\"stop\"></pry-icon>\n <span>{{ '@pry.pipeline.deactivated' | i18n }}</span>\n </div>\n }\n <ng-template #deactivated>\n <div class=\"container-state\">\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"stop\" class=\"stop\"></pry-icon>\n <span>{{ '@pry.pipeline.deactivated' | i18n }}</span>\n </div>\n </ng-template>\n </td>\n <td>{{ transfo.title }}</td>\n <td>{{ transfo?.lastJobExecution?.executionDate | sinceDate }}</td>\n @if (transfo.lastJobExecution) {\n <td class=\"u-display-flex -align-center -column\">\n <div>\n @switch (transfo.lastJobExecution.status) {\n @case (ExecutionState.TERMINATED) {\n <pry-icon iconSvg=\"check\" [height]=\"25\" [width]=\"25\" class=\"check\"></pry-icon>\n }\n @case (ExecutionState.STARTED) {\n <pry-icon iconSvg=\"synchro\" [height]=\"25\" [width]=\"25\" class=\"warning\"></pry-icon>\n }\n @case (ExecutionState.ERROR) {\n <pry-icon iconSvg=\"close\" [height]=\"25\" [width]=\"25\" class=\"danger\"></pry-icon>\n }\n }\n </div>\n </td>\n }\n <td>\n <button type=\"button\" class=\"a-btn a-btn--secondary -size-sm\" (click)=\"consult(transfo)\">\n {{ '@pry.pipeline.consult' | i18n }}\n <span class=\"u-visually-hidden\"> {{ transfo.title }} </span>\n </button>\n </td>\n <td>\n <button\n class=\"a-btn a-btn--more\"\n type=\"button\"\n id=\"actions-{{ index }}\"\n #actions\n aria-controls=\"panelActions\"\n [attr.aria-expanded]=\"!!overlayRef\"\n (click)=\"toggleMoreDropdown($event, index, transfo)\"\n >\n <pry-icon iconSvg=\"more_horiz\"></pry-icon>\n </button>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n @case (ViewMode.CONSULT) {\n @if (selectedTransfo) {\n <pry-pipeline-details\n [pipeline]=\"selectedTransfo\"\n (goToList)=\"list()\"\n (goToEditor)=\"savePipeline($event)\"\n (executeConfirm)=\"toggleExecuteConfirm()\"\n ></pry-pipeline-details>\n }\n }\n @case (ViewMode.CREATION) {\n <pry-pipeline-details (goToList)=\"list()\" (goToEditor)=\"savePipeline($event)\"></pry-pipeline-details>\n }\n @case (ViewMode.EDITOR) {\n <pry-pipeline-editor [pipeline]=\"selectedTransfo\" (goToConsult)=\"consult($event)\"></pry-pipeline-editor>\n }\n }\n</div>\n<ng-template #noExecution>\n <div class=\"container-state\">\n <span>{{ '@pry.pipeline.ko' | i18n }}</span>\n <pry-icon [height]=\"15\" [width]=\"15\" iconSvg=\"danger\" class=\"danger\"></pry-icon>\n </div>\n</ng-template>\n\n<ng-template #dropdown>\n @if (selectedTransfo) {\n <div\n class=\"m-context-menu\"\n id=\"panelActions\"\n (click)=\"$event.stopPropagation()\"\n (keydown.escape)=\"closeDropdown()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog panelActions\"\n >\n <ul class=\"m-context-menu__list\">\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n #toggleActions\n type=\"button\"\n class=\"a-btn\"\n role=\"menuitem\"\n (click)=\"toggleState(selectedTransfo)\"\n (keydown.arrowDown)=\"navigateContextMenu(activate, execute)\"\n (keydown.arrowUp)=\"navigateContextMenu(activate, execute)\"\n tabindex=\"0\"\n #activate\n >\n <span>{{ (selectedTransfo.active ? '@pry.pipeline.deactivate' : '@pry.pipeline.activate') | i18n }}</span>\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" role=\"none\">\n <button\n #execute\n type=\"button\"\n role=\"menuitem\"\n id=\"execute\"\n class=\"a-btn\"\n tabindex=\"-1\"\n (keydown.arrowDown)=\"navigateContextMenu(execute, activate)\"\n (keydown.arrowUp)=\"navigateContextMenu(execute, activate)\"\n [disabled]=\"!selectedTransfo.active\"\n (click)=\"toggleExecuteConfirm()\"\n >\n <span>{{ '@pry.pipeline.execute' | i18n }}</span>\n </button>\n </li>\n </ul>\n </div>\n }\n</ng-template>\n<ng-template #templateModal>\n @if (selectedTransfo) {\n <div\n class=\"o-modal\"\n (keydown.escape)=\"toggleExecuteConfirm()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog confirm delete presentation\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.widget.modalTitle' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button\n class=\"a-btn a-btn--icon-only\"\n #cross\n (keydown.shift.tab)=\"focusElement(confirm)\"\n (click)=\"cancelRemoveConfirm()\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"m-btn-group\">\n <button type=\"button\" #cancel (click)=\"cancelRemoveConfirm()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n #confirm\n id=\"confirm\"\n class=\"a-btn a-btn--primary\"\n (click)=\"confirmExecution(selectedTransfo)\"\n (keydown.tab)=\"focusElement(cross)\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </div>\n }\n</ng-template>\n" }]
|
|
154
154
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }], propDecorators: { templateDropdown: [{
|
|
155
155
|
type: ViewChild,
|
|
156
156
|
args: ['dropdown', { read: TemplateRef }]
|
|
@@ -173,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
173
173
|
type: ViewChild,
|
|
174
174
|
args: ['confirm']
|
|
175
175
|
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9waXBlbGluZS9jb21wb25lbnRzL3BpcGVsaW5lLWxpc3QvcGlwZWxpbmUtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9waXBlbGluZS9jb21wb25lbnRzL3BpcGVsaW5lLWxpc3QvcGlwZWxpbmUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBYyxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7O0FBTW5GLE1BQU0sT0FBTyx3QkFBd0I7SUFrQm5DLFlBQW9CLEtBQVksRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUFsRixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFoQnRHLGVBQVUsR0FBSSxjQUFjLENBQUM7UUFDN0Isa0JBQWEsR0FBSSxNQUFNLENBQUM7UUFXeEIsaUJBQVksR0FBYSxRQUFRLENBQUMsT0FBTyxDQUFD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Q3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQTBCO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBeUIsRUFBRSxVQUE2QjtRQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDOzhHQXpKVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixrSkFPSixXQUFXLHlHQUNOLFdBQVcsNGNDdEJqRCxneVBBNE1BOzsyRkQ5TGEsd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLG1CQUFtQjsrSEFVaUIsZ0JBQWdCO3NCQUE3RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ08sYUFBYTtzQkFBL0QsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUMzQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ1EsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNMLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDQyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0ksT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnQWN0aW9ucywgVmlld01vZGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGlwZWxpbmVBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvcGlwZWxpbmUuYWN0aW9ucyc7XG5pbXBvcnQgeyBQaXBlbGluZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL3BpcGVsaW5lLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBFeGVjdXRpb25TdGF0ZSwgUHJ5VHJhbnNmbyB9IGZyb20gJy4uL3BpcGVsaW5lLWVkaXRvci9waXBlbGluZS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktcGlwZWxpbmUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waXBlbGluZS1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlQaXBlbGluZUxpc3RDb21wb25lbnQge1xuICB0cmFuc2Zvcm1hdGlvbiQ6IE9ic2VydmFibGU8UHJ5VHJhbnNmb1tdPjtcbiAgc29ydEFjdGl2ZT8gPSAnY3JlYXRpb25EYXRlJztcbiAgc29ydERpcmVjdGlvbj8gPSAnZGVzYyc7XG4gIHRvZ2dsZUluZGV4PzogbnVtYmVyO1xuICBzZWxlY3RlZFRyYW5zZm8/OiBQcnlUcmFuc2ZvO1xuICBvdmVybGF5UmVmOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZURyb3Bkb3duITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVNb2RhbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVNb2RhbCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2FjdGlvbnMnKSBhY3Rpb25zITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3RvZ2dsZUFjdGlvbnMnKSB0b2dnbGVBY3Rpb25zITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2NhbmNlbCcpIGNhbmNlbCE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjcm9zcycpIGNyb3NzITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm0nKSBjb25maXJtITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIHNlbGVjdGVkTW9kZTogVmlld01vZGUgPSBWaWV3TW9kZS5DQVRBTE9HO1xuICBWaWV3TW9kZSA9IFZpZXdNb2RlO1xuICBwcml2YXRlIGNvbmZpcm1FeGVjdXRpb25SZWY/OiBPdmVybGF5UmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUGlwZWxpbmVBY3Rpb25zLmZldGNoVHJhbnNmb3NMaXN0KCkpO1xuICAgIHRoaXMudHJhbnNmb3JtYXRpb24kID0gdGhpcy5zdG9yZS5zZWxlY3QoUGlwZWxpbmVTZWxlY3RvcnMudHJhbnNmb3MpO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gVmlld01vZGUuQ0FUQUxPRztcbiAgfVxuXG4gIHRvZ2dsZU1vcmVEcm9wZG93bigkZXZlbnQ6IGFueSwgaW5kZXg6IG51bWJlciwgdHJhbnNmbzogUHJ5VHJhbnNmbykge1xuICAgIGlmICh0aGlzLnRvZ2dsZUluZGV4ICE9PSBpbmRleCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zZm8gPSB0cmFuc2ZvO1xuICAgICAgdGhpcy50b2dnbGVJbmRleCA9IGluZGV4O1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnbW9kYWwnXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlTW9yZURyb3Bkb3duKCRldmVudCwgaW5kZXgsIHRyYW5zZm8pKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVEcm9wZG93biwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVBY3Rpb25zLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0sIDEwKTtcbiAgICAgIGNvbnN0IG1vZGFsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm1vZGFsJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBpZiAoISFtb2RhbCkge1xuICAgICAgICBpZiAoJGV2ZW50LnBvaW50ZXJUeXBlID09PSAnbW91c2UnKSB7XG4gICAgICAgICAgbW9kYWwuc3R5bGUubGVmdCA9ICRldmVudC5jbGllbnRYIC0gMTUwICsgJ3B4JztcbiAgICAgICAgICBtb2RhbC5zdHlsZS50b3AgPSAkZXZlbnQuY2xpZW50WSAtIDEwICsgJ3B4JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0b2dnbGVNZW51QnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyAkZXZlbnQudGFyZ2V0LmlkKTtcbiAgICAgICAgICBjb25zdCByZWN0ID0gdG9nZ2xlTWVudUJ1dHRvbj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgbW9kYWwuc3R5bGUubGVmdCA9IChyZWN0Py5sZWZ0ID8/IDApIC0gKG1vZGFsPy5jbGllbnRXaWR0aCA/PyAwKSArICdweCc7XG4gICAgICAgICAgbW9kYWwuc3R5bGUudG9wID0gKHJlY3Q/LnRvcCA/PyAwKSArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMudG9nZ2xlSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuYWN0aW9ucy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICB0b2dnbGVTdGF0ZShzZWxlY3RlZFRyYW5zZm86IFByeVRyYW5zZm8pIHtcbiAgICBpZiAoc2VsZWN0ZWRUcmFuc2ZvKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFBpcGVsaW5lQWN0aW9ucy50b2dnbGVBY3RpdmF0aW9uKHsgdHJhbnNmbzogc2VsZWN0ZWRUcmFuc2ZvIH0pKTtcbiAgICB9XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gIH1cblxuICB0b2dnbGVFeGVjdXRlQ29uZmlybSgpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlybUV4ZWN1dGlvblJlZikge1xuICAgICAgdGhpcy5jb25maXJtRXhlY3V0aW9uUmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLmNvbmZpcm1FeGVjdXRpb25SZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlTW9kYWwsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgdGhpcy5jb25maXJtRXhlY3V0aW9uUmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGVFeGVjdXRlQ29uZmlybSgpKTtcbiAgICAgIGNvbnN0IHBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm8tbW9kYWwtd3JhcHBlcicpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgaWYgKCEhcGFuZWwpIHtcbiAgICAgICAgcGFuZWwuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgICAgICBwYW5lbC5zdHlsZS50b3AgPSAnNTAlJztcbiAgICAgICAgcGFuZWwuc3R5bGUubGVmdCA9ICc1MCUnO1xuICAgICAgICBwYW5lbC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKC01MCUsIC01MCUpJztcbiAgICAgIH1cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNhbmNlbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlybUV4ZWN1dGlvblJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmNvbmZpcm1FeGVjdXRpb25SZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLmFjdGlvbnMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsUmVtb3ZlQ29uZmlybSgpIHtcbiAgICB0aGlzLmNvbmZpcm1FeGVjdXRpb25SZWY/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLmNvbmZpcm1FeGVjdXRpb25SZWYgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICB9XG5cbiAgY29uZmlybUV4ZWN1dGlvbihzZWxlY3RlZFRyYW5zZm8/OiBQcnlUcmFuc2ZvKSB7XG4gICAgaWYgKHNlbGVjdGVkVHJhbnNmbz8uam9iSW5zdGFuY2VJZCkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChQaXBlbGluZUFjdGlvbnMuZXhlY3V0ZVRyYW5zZm8oeyBpZDogc2VsZWN0ZWRUcmFuc2ZvLmpvYkluc3RhbmNlSWQgfSkpO1xuICAgIH1cbiAgICB0aGlzLmNhbmNlbFJlbW92ZUNvbmZpcm0oKTtcbiAgfVxuXG4gIGxpc3QoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChQaXBlbGluZUFjdGlvbnMuZmV0Y2hUcmFuc2Zvc0xpc3QoKSk7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBWaWV3TW9kZS5DQVRBTE9HO1xuICB9XG5cbiAgY3JlYXRlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gVmlld01vZGUuQ1JFQVRJT047XG4gIH1cblxuICBjb25zdWx0KHRyYW5zZm86IFByeVRyYW5zZm8pIHtcbiAgICB0aGlzLnNlbGVjdGVkVHJhbnNmbyA9IHRyYW5zZm87XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBWaWV3TW9kZS5DT05TVUxUO1xuICB9XG5cbiAgc2F2ZVBpcGVsaW5lKHRyYW5zZm86IFByeVRyYW5zZm8pIHtcbiAgICB0aGlzLnNlbGVjdGVkVHJhbnNmbyA9IHRyYW5zZm87XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBWaWV3TW9kZS5FRElUT1I7XG4gIH1cblxuICBkaXNhYmxlU2VsZWN0ZWRUcmFuc28oKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUcmFuc2ZvPy5hY3RpdmUgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c0VsZW1lbnQoZWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBuYXZpZ2F0ZUNvbnRleHRNZW51KGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQsIG5leHRCdXR0b246IEhUTUxCdXR0b25FbGVtZW50KSB7XG4gICAgaWYgKCFuZXh0QnV0dG9uLmRpc2FibGVkKSB7XG4gICAgICBuZXh0QnV0dG9uLnRhYkluZGV4ID0gMDtcbiAgICAgIG5leHRCdXR0b24uZm9jdXMoKTtcbiAgICAgIGJ1dHRvbi50YWJJbmRleCA9IC0xO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBFeGVjdXRpb25TdGF0ZSA9IEV4ZWN1dGlvblN0YXRlO1xufVxuIiwiPHByeS1waXBlbGluZS1jc3M+PC9wcnktcGlwZWxpbmUtY3NzPlxuPGRpdiBjbGFzcz1cIm8tcGlwZWxpbmUtbGF5b3V0XCIgW25nU3dpdGNoXT1cInNlbGVjdGVkTW9kZVwiPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJWaWV3TW9kZS5DQVRBTE9HXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tcGlwZWxpbmUtbGF5b3V0X190b29sYm94XCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnkgYS1idG4tLWljb24tdGV4dFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY3JlYXRlKClcIj5cbiAgICAgICAge3sgJ0BwcnkucGlwZWxpbmUuY3JlYXRlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxoMSBjbGFzcz1cImEtaDFcIj57eyAnQHByeS5waXBlbGluZS50cmFuc2Zvcm1hdGlvbl9jYXRhbG9nJyB8IGkxOG4gfX08L2gxPlxuICAgIDx0YWJsZVxuICAgICAgY2xhc3M9XCJhLXRhYmxlXCJcbiAgICAgIHByeVNvcnRUYWJsZVxuICAgICAgcHJ5U29ydEFjdGl2ZT1cImRhdGVcIlxuICAgICAgcHJ5U29ydERpcmVjdGlvbj1cImRlc2NcIlxuICAgICAgKHByeVNvcnRDaGFuZ2UpPVwic29ydEFjdGl2ZSA9ICRldmVudC5hY3RpdmU7IHNvcnREaXJlY3Rpb24gPSAkZXZlbnQuZGlyZWN0aW9uXCJcbiAgICA+XG4gICAgICA8Y2FwdGlvbj5cbiAgICAgICAge3tcbiAgICAgICAgICAnQHByeS5waXBlbGluZS50cmFuc2Zvcm1hdGlvbl9jYXRhbG9nJyB8IGkxOG5cbiAgICAgICAgfX1cbiAgICAgIDwvY2FwdGlvbj5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCBwcnlTb3J0SGVhZGVyPVwic3RhdGVcIj57eyAnQHByeS5waXBlbGluZS5kZXRhaWxzLnN0YXRlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aCBwcnlTb3J0SGVhZGVyPVwidGl0bGVcIj57eyAnQHByeS5waXBlbGluZS5kZXRhaWxzLnRpdGxlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aCBwcnlTb3J0SGVhZGVyPVwiZGF0ZVwiPnt7ICdAcHJ5LnBpcGVsaW5lLmRldGFpbHMubGFzdF9leGVjdXRpb25fZGF0ZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8dGg+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLWFsaWduLWNlbnRlciAtY29sdW1uXCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LnBpcGVsaW5lLmRldGFpbHMuZXhlY3V0aW9uX3N0YXR1cycgfCBpMThuIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5waXBlbGluZS5hY3Rpb24nIHwgaTE4biB9fTwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdHJhbnNmbyBvZiB0cmFuc2Zvcm1hdGlvbiQgfCBhc3luYyB8IHByeVNvcnREYXRhIDogc29ydEFjdGl2ZSA6IHNvcnREaXJlY3Rpb247IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0cmFuc2ZvLmFjdGl2ZTsgZWxzZSBkZWFjdGl2YXRlZFwiIGNsYXNzPVwiY29udGFpbmVyLXN0YXRlXCI+XG4gICAgICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE1XCIgW3dpZHRoXT1cIjE1XCIgaWNvblN2Zz1cImNoZWNrXCIgY2xhc3M9XCJjaGVja1wiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPiB7eyAnQHByeS5waXBlbGluZS5hY3RpdmF0ZWQnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWFjdGl2YXRlZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1zdGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE1XCIgW3dpZHRoXT1cIjE1XCIgaWNvblN2Zz1cInN0b3BcIiBjbGFzcz1cInN0b3BcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LnBpcGVsaW5lLmRlYWN0aXZhdGVkJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD57eyB0cmFuc2ZvLnRpdGxlIH19PC90ZD5cbiAgICAgICAgICA8dGQ+e3sgdHJhbnNmbz8ubGFzdEpvYkV4ZWN1dGlvbj8uZXhlY3V0aW9uRGF0ZSB8IHNpbmNlRGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkICpuZ0lmPVwidHJhbnNmby5sYXN0Sm9iRXhlY3V0aW9uXCIgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtYWxpZ24tY2VudGVyIC1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgW25nU3dpdGNoXT1cInRyYW5zZm8ubGFzdEpvYkV4ZWN1dGlvbi5zdGF0dXNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiRXhlY3V0aW9uU3RhdGUuVEVSTUlOQVRFRFwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hlY2tcIiBbaGVpZ2h0XT1cIjI1XCIgW3dpZHRoXT1cIjI1XCIgY2xhc3M9XCJjaGVja1wiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJFeGVjdXRpb25TdGF0ZS5TVEFSVEVEXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJzeW5jaHJvXCIgW2hlaWdodF09XCIyNVwiIFt3aWR0aF09XCIyNVwiIGNsYXNzPVwid2FybmluZ1wiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJFeGVjdXRpb25TdGF0ZS5FUlJPUlwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjI1XCIgW3dpZHRoXT1cIjI1XCIgY2xhc3M9XCJkYW5nZXJcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IC1zaXplLXNtXCIgKGNsaWNrKT1cImNvbnN1bHQodHJhbnNmbylcIj5cbiAgICAgICAgICAgICAge3sgJ0BwcnkucGlwZWxpbmUuY29uc3VsdCcgfCBpMThuIH19XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj4ge3sgdHJhbnNmby50aXRsZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tbW9yZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBpZD1cImFjdGlvbnMte3sgaW5kZXggfX1cIlxuICAgICAgICAgICAgICAjYWN0aW9uc1xuICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwicGFuZWxBY3Rpb25zXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhIW92ZXJsYXlSZWZcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTW9yZURyb3Bkb3duKCRldmVudCwgaW5kZXgsIHRyYW5zZm8pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJtb3JlX2hvcml6XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJWaWV3TW9kZS5DT05TVUxUXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVHJhbnNmb1wiPlxuICAgICAgPHByeS1waXBlbGluZS1kZXRhaWxzXG4gICAgICAgIFtwaXBlbGluZV09XCJzZWxlY3RlZFRyYW5zZm9cIlxuICAgICAgICAoZ29Ub0xpc3QpPVwibGlzdCgpXCJcbiAgICAgICAgKGdvVG9FZGl0b3IpPVwic2F2ZVBpcGVsaW5lKCRldmVudClcIlxuICAgICAgICAoZXhlY3V0ZUNvbmZpcm0pPVwidG9nZ2xlRXhlY3V0ZUNvbmZpcm0oKVwiXG4gICAgICA+PC9wcnktcGlwZWxpbmUtZGV0YWlscz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIlZpZXdNb2RlLkNSRUFUSU9OXCI+XG4gICAgPHByeS1waXBlbGluZS1kZXRhaWxzIChnb1RvTGlzdCk9XCJsaXN0KClcIiAoZ29Ub0VkaXRvcik9XCJzYXZlUGlwZWxpbmUoJGV2ZW50KVwiPjwvcHJ5LXBpcGVsaW5lLWRldGFpbHM+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJWaWV3TW9kZS5FRElUT1JcIj5cbiAgICA8cHJ5LXBpcGVsaW5lLWVkaXRvciBbcGlwZWxpbmVdPVwic2VsZWN0ZWRUcmFuc2ZvXCIgKGdvVG9Db25zdWx0KT1cImNvbnN1bHQoJGV2ZW50KVwiPjwvcHJ5LXBpcGVsaW5lLWVkaXRvcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbm9FeGVjdXRpb24+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItc3RhdGVcIj5cbiAgICA8c3Bhbj57eyAnQHByeS5waXBlbGluZS5rbycgfCBpMThuIH19PC9zcGFuPlxuICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE1XCIgW3dpZHRoXT1cIjE1XCIgaWNvblN2Zz1cImRhbmdlclwiIGNsYXNzPVwiZGFuZ2VyXCI+PC9wcnktaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtLWNvbnRleHQtbWVudVwiXG4gICAgaWQ9XCJwYW5lbEFjdGlvbnNcIlxuICAgICpuZ0lmPVwic2VsZWN0ZWRUcmFuc2ZvXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2xvc2VEcm9wZG93bigpXCJcbiAgICBjZGtUcmFwRm9jdXNcbiAgICBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZyBwYW5lbEFjdGlvbnNcIlxuICA+XG4gICAgPHVsIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RcIj5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICN0b2dnbGVBY3Rpb25zXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0blwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU3RhdGUoc2VsZWN0ZWRUcmFuc2ZvKVwiXG4gICAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm5hdmlnYXRlQ29udGV4dE1lbnUoYWN0aXZhdGUsIGV4ZWN1dGUpXCJcbiAgICAgICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cIm5hdmlnYXRlQ29udGV4dE1lbnUoYWN0aXZhdGUsIGV4ZWN1dGUpXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICNhY3RpdmF0ZVxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+e3sgKHNlbGVjdGVkVHJhbnNmby5hY3RpdmUgPyAnQHByeS5waXBlbGluZS5kZWFjdGl2YXRlJyA6ICdAcHJ5LnBpcGVsaW5lLmFjdGl2YXRlJykgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiIHJvbGU9XCJub25lXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAjZXhlY3V0ZVxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgaWQ9XCJleGVjdXRlXCJcbiAgICAgICAgICBjbGFzcz1cImEtYnRuXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwibmF2aWdhdGVDb250ZXh0TWVudShleGVjdXRlLCBhY3RpdmF0ZSlcIlxuICAgICAgICAgIChrZXlkb3duLmFycm93VXApPVwibmF2aWdhdGVDb250ZXh0TWVudShleGVjdXRlLCBhY3RpdmF0ZSlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRUcmFuc2ZvLmFjdGl2ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4ZWN1dGVDb25maXJtKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+e3sgJ0BwcnkucGlwZWxpbmUuZXhlY3V0ZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZU1vZGFsPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJvLW1vZGFsXCJcbiAgICAqbmdJZj1cInNlbGVjdGVkVHJhbnNmb1wiXG4gICAgKGtleWRvd24uZXNjYXBlKT1cInRvZ2dsZUV4ZWN1dGVDb25maXJtKClcIlxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2cgY29uZmlybSBkZWxldGUgcHJlc2VudGF0aW9uXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIiBpZD1cImRpYWxvZ190aXRsZVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LndpZGdldC5tb2RhbFRpdGxlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiXG4gICAgICAgICAgI2Nyb3NzXG4gICAgICAgICAgKGtleWRvd24uc2hpZnQudGFiKT1cImZvY3VzRWxlbWVudChjb25maXJtKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNhbmNlbFJlbW92ZUNvbmZpcm0oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW2hlaWdodF09XCIzNVwiIFt3aWR0aF09XCIzNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNjYW5jZWwgKGNsaWNrKT1cImNhbmNlbFJlbW92ZUNvbmZpcm0oKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LmNsb3NlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgI2NvbmZpcm1cbiAgICAgICAgaWQ9XCJjb25maXJtXCJcbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgIChjbGljayk9XCJjb25maXJtRXhlY3V0aW9uKHNlbGVjdGVkVHJhbnNmbylcIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiZm9jdXNFbGVtZW50KGNyb3NzKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QudmFsaWRhdGUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9waXBlbGluZS9jb21wb25lbnRzL3BpcGVsaW5lLWxpc3QvcGlwZWxpbmUtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9waXBlbGluZS9jb21wb25lbnRzL3BpcGVsaW5lLWxpc3QvcGlwZWxpbmUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBYyxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7O0FBTW5GLE1BQU0sT0FBTyx3QkFBd0I7SUFrQm5DLFlBQW9CLEtBQVksRUFBVSxPQUFnQixFQUFVLGdCQUFrQztRQUFsRixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFoQnRHLGVBQVUsR0FBSSxjQUFjLENBQUM7UUFDN0Isa0JBQWEsR0FBSSxNQUFNLENBQUM7UUFXeEIsaUJBQVksR0FBYSxRQUFRLENBQUMsT0FBTyxDQUFD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Q3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQTBCO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBeUIsRUFBRSxVQUE2QjtRQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDOzhHQXpKVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixrSkFPSixXQUFXLHlHQUNOLFdBQVcsNGNDdEJqRCw0NlFBNE5BOzsyRkQ5TWEsd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLG1CQUFtQjsrSEFVaUIsZ0JBQWdCO3NCQUE3RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ08sYUFBYTtzQkFBL0QsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUMzQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ1EsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNMLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDQyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0ksT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnQWN0aW9ucywgVmlld01vZGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGlwZWxpbmVBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvcGlwZWxpbmUuYWN0aW9ucyc7XG5pbXBvcnQgeyBQaXBlbGluZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL3BpcGVsaW5lLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBFeGVjdXRpb25TdGF0ZSwgUHJ5VHJhbnNmbyB9IGZyb20gJy4uL3BpcGVsaW5lLWVkaXRvci9waXBlbGluZS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktcGlwZWxpbmUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waXBlbGluZS1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlQaXBlbGluZUxpc3RDb21wb25lbnQge1xuICB0cmFuc2Zvcm1hdGlvbiQ6IE9ic2VydmFibGU8UHJ5VHJhbnNmb1tdPjtcbiAgc29ydEFjdGl2ZT8gPSAnY3JlYXRpb25EYXRlJztcbiAgc29ydERpcmVjdGlvbj8gPSAnZGVzYyc7XG4gIHRvZ2dsZUluZGV4PzogbnVtYmVyO1xuICBzZWxlY3RlZFRyYW5zZm8/OiBQcnlUcmFuc2ZvO1xuICBvdmVybGF5UmVmOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZURyb3Bkb3duITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVNb2RhbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVNb2RhbCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2FjdGlvbnMnKSBhY3Rpb25zITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3RvZ2dsZUFjdGlvbnMnKSB0b2dnbGVBY3Rpb25zITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2NhbmNlbCcpIGNhbmNlbCE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjcm9zcycpIGNyb3NzITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm0nKSBjb25maXJtITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIHNlbGVjdGVkTW9kZTogVmlld01vZGUgPSBWaWV3TW9kZS5DQVRBTE9HO1xuICBWaWV3TW9kZSA9IFZpZXdNb2RlO1xuICBwcml2YXRlIGNvbmZpcm1FeGVjdXRpb25SZWY/OiBPdmVybGF5UmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goUGlwZWxpbmVBY3Rpb25zLmZldGNoVHJhbnNmb3NMaXN0KCkpO1xuICAgIHRoaXMudHJhbnNmb3JtYXRpb24kID0gdGhpcy5zdG9yZS5zZWxlY3QoUGlwZWxpbmVTZWxlY3RvcnMudHJhbnNmb3MpO1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gVmlld01vZGUuQ0FUQUxPRztcbiAgfVxuXG4gIHRvZ2dsZU1vcmVEcm9wZG93bigkZXZlbnQ6IGFueSwgaW5kZXg6IG51bWJlciwgdHJhbnNmbzogUHJ5VHJhbnNmbykge1xuICAgIGlmICh0aGlzLnRvZ2dsZUluZGV4ICE9PSBpbmRleCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zZm8gPSB0cmFuc2ZvO1xuICAgICAgdGhpcy50b2dnbGVJbmRleCA9IGluZGV4O1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnbW9kYWwnXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlTW9yZURyb3Bkb3duKCRldmVudCwgaW5kZXgsIHRyYW5zZm8pKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVEcm9wZG93biwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVBY3Rpb25zLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0sIDEwKTtcbiAgICAgIGNvbnN0IG1vZGFsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm1vZGFsJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBpZiAoISFtb2RhbCkge1xuICAgICAgICBpZiAoJGV2ZW50LnBvaW50ZXJUeXBlID09PSAnbW91c2UnKSB7XG4gICAgICAgICAgbW9kYWwuc3R5bGUubGVmdCA9ICRldmVudC5jbGllbnRYIC0gMTUwICsgJ3B4JztcbiAgICAgICAgICBtb2RhbC5zdHlsZS50b3AgPSAkZXZlbnQuY2xpZW50WSAtIDEwICsgJ3B4JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0b2dnbGVNZW51QnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyAkZXZlbnQudGFyZ2V0LmlkKTtcbiAgICAgICAgICBjb25zdCByZWN0ID0gdG9nZ2xlTWVudUJ1dHRvbj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgbW9kYWwuc3R5bGUubGVmdCA9IChyZWN0Py5sZWZ0ID8/IDApIC0gKG1vZGFsPy5jbGllbnRXaWR0aCA/PyAwKSArICdweCc7XG4gICAgICAgICAgbW9kYWwuc3R5bGUudG9wID0gKHJlY3Q/LnRvcCA/PyAwKSArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMudG9nZ2xlSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuYWN0aW9ucy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICB0b2dnbGVTdGF0ZShzZWxlY3RlZFRyYW5zZm86IFByeVRyYW5zZm8pIHtcbiAgICBpZiAoc2VsZWN0ZWRUcmFuc2ZvKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFBpcGVsaW5lQWN0aW9ucy50b2dnbGVBY3RpdmF0aW9uKHsgdHJhbnNmbzogc2VsZWN0ZWRUcmFuc2ZvIH0pKTtcbiAgICB9XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gIH1cblxuICB0b2dnbGVFeGVjdXRlQ29uZmlybSgpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlybUV4ZWN1dGlvblJlZikge1xuICAgICAgdGhpcy5jb25maXJtRXhlY3V0aW9uUmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLmNvbmZpcm1FeGVjdXRpb25SZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlTW9kYWwsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgdGhpcy5jb25maXJtRXhlY3V0aW9uUmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGVFeGVjdXRlQ29uZmlybSgpKTtcbiAgICAgIGNvbnN0IHBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm8tbW9kYWwtd3JhcHBlcicpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgaWYgKCEhcGFuZWwpIHtcbiAgICAgICAgcGFuZWwuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgICAgICBwYW5lbC5zdHlsZS50b3AgPSAnNTAlJztcbiAgICAgICAgcGFuZWwuc3R5bGUubGVmdCA9ICc1MCUnO1xuICAgICAgICBwYW5lbC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKC01MCUsIC01MCUpJztcbiAgICAgIH1cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNhbmNlbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlybUV4ZWN1dGlvblJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmNvbmZpcm1FeGVjdXRpb25SZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLmFjdGlvbnMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsUmVtb3ZlQ29uZmlybSgpIHtcbiAgICB0aGlzLmNvbmZpcm1FeGVjdXRpb25SZWY/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLmNvbmZpcm1FeGVjdXRpb25SZWYgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICB9XG5cbiAgY29uZmlybUV4ZWN1dGlvbihzZWxlY3RlZFRyYW5zZm8/OiBQcnlUcmFuc2ZvKSB7XG4gICAgaWYgKHNlbGVjdGVkVHJhbnNmbz8uam9iSW5zdGFuY2VJZCkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChQaXBlbGluZUFjdGlvbnMuZXhlY3V0ZVRyYW5zZm8oeyBpZDogc2VsZWN0ZWRUcmFuc2ZvLmpvYkluc3RhbmNlSWQgfSkpO1xuICAgIH1cbiAgICB0aGlzLmNhbmNlbFJlbW92ZUNvbmZpcm0oKTtcbiAgfVxuXG4gIGxpc3QoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChQaXBlbGluZUFjdGlvbnMuZmV0Y2hUcmFuc2Zvc0xpc3QoKSk7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBWaWV3TW9kZS5DQVRBTE9HO1xuICB9XG5cbiAgY3JlYXRlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlID0gVmlld01vZGUuQ1JFQVRJT047XG4gIH1cblxuICBjb25zdWx0KHRyYW5zZm86IFByeVRyYW5zZm8pIHtcbiAgICB0aGlzLnNlbGVjdGVkVHJhbnNmbyA9IHRyYW5zZm87XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBWaWV3TW9kZS5DT05TVUxUO1xuICB9XG5cbiAgc2F2ZVBpcGVsaW5lKHRyYW5zZm86IFByeVRyYW5zZm8pIHtcbiAgICB0aGlzLnNlbGVjdGVkVHJhbnNmbyA9IHRyYW5zZm87XG4gICAgdGhpcy5zZWxlY3RlZE1vZGUgPSBWaWV3TW9kZS5FRElUT1I7XG4gIH1cblxuICBkaXNhYmxlU2VsZWN0ZWRUcmFuc28oKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUcmFuc2ZvPy5hY3RpdmUgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c0VsZW1lbnQoZWxlbWVudDogSFRNTEJ1dHRvbkVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBuYXZpZ2F0ZUNvbnRleHRNZW51KGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQsIG5leHRCdXR0b246IEhUTUxCdXR0b25FbGVtZW50KSB7XG4gICAgaWYgKCFuZXh0QnV0dG9uLmRpc2FibGVkKSB7XG4gICAgICBuZXh0QnV0dG9uLnRhYkluZGV4ID0gMDtcbiAgICAgIG5leHRCdXR0b24uZm9jdXMoKTtcbiAgICAgIGJ1dHRvbi50YWJJbmRleCA9IC0xO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBFeGVjdXRpb25TdGF0ZSA9IEV4ZWN1dGlvblN0YXRlO1xufVxuIiwiPHByeS1waXBlbGluZS1jc3M+PC9wcnktcGlwZWxpbmUtY3NzPlxuPGRpdiBjbGFzcz1cIm8tcGlwZWxpbmUtbGF5b3V0XCI+XG4gIEBzd2l0Y2ggKHNlbGVjdGVkTW9kZSkge1xuICAgIEBjYXNlIChWaWV3TW9kZS5DQVRBTE9HKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiby1waXBlbGluZS1sYXlvdXRfX3Rvb2xib3hcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5IGEtYnRuLS1pY29uLXRleHRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNyZWF0ZSgpXCI+XG4gICAgICAgICAge3sgJ0BwcnkucGlwZWxpbmUuY3JlYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxoMSBjbGFzcz1cImEtaDFcIj57eyAnQHByeS5waXBlbGluZS50cmFuc2Zvcm1hdGlvbl9jYXRhbG9nJyB8IGkxOG4gfX08L2gxPlxuICAgICAgPHRhYmxlXG4gICAgICAgIGNsYXNzPVwiYS10YWJsZVwiXG4gICAgICAgIHByeVNvcnRUYWJsZVxuICAgICAgICBwcnlTb3J0QWN0aXZlPVwiZGF0ZVwiXG4gICAgICAgIHByeVNvcnREaXJlY3Rpb249XCJkZXNjXCJcbiAgICAgICAgKHByeVNvcnRDaGFuZ2UpPVwic29ydEFjdGl2ZSA9ICRldmVudC5hY3RpdmU7IHNvcnREaXJlY3Rpb24gPSAkZXZlbnQuZGlyZWN0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICA8Y2FwdGlvbj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICdAcHJ5LnBpcGVsaW5lLnRyYW5zZm9ybWF0aW9uX2NhdGFsb2cnIHwgaTE4blxuICAgICAgICAgIH19XG4gICAgICAgIDwvY2FwdGlvbj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBwcnlTb3J0SGVhZGVyPVwic3RhdGVcIj57eyAnQHByeS5waXBlbGluZS5kZXRhaWxzLnN0YXRlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgICAgPHRoIHByeVNvcnRIZWFkZXI9XCJ0aXRsZVwiPnt7ICdAcHJ5LnBpcGVsaW5lLmRldGFpbHMudGl0bGUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgICA8dGggcHJ5U29ydEhlYWRlcj1cImRhdGVcIj57eyAnQHByeS5waXBlbGluZS5kZXRhaWxzLmxhc3RfZXhlY3V0aW9uX2RhdGUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgICA8dGg+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtYWxpZ24tY2VudGVyIC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICB7eyAnQHByeS5waXBlbGluZS5kZXRhaWxzLmV4ZWN1dGlvbl9zdGF0dXMnIHwgaTE4biB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGg+e3sgJ0BwcnkucGlwZWxpbmUuYWN0aW9uJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICBAZm9yICh0cmFuc2ZvIG9mIHRyYW5zZm9ybWF0aW9uJCB8IGFzeW5jIHwgcHJ5U29ydERhdGEgOiBzb3J0QWN0aXZlIDogc29ydERpcmVjdGlvbjsgdHJhY2sgdHJhbnNmbzsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgQGlmICh0cmFuc2ZvLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1zdGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cHJ5LWljb24gW2hlaWdodF09XCIxNVwiIFt3aWR0aF09XCIxNVwiIGljb25Tdmc9XCJjaGVja1wiIGNsYXNzPVwiY2hlY2tcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgJ0BwcnkucGlwZWxpbmUuYWN0aXZhdGVkJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItc3RhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTVcIiBbd2lkdGhdPVwiMTVcIiBpY29uU3ZnPVwic3RvcFwiIGNsYXNzPVwic3RvcFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LnBpcGVsaW5lLmRlYWN0aXZhdGVkJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWFjdGl2YXRlZD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItc3RhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTVcIiBbd2lkdGhdPVwiMTVcIiBpY29uU3ZnPVwic3RvcFwiIGNsYXNzPVwic3RvcFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LnBpcGVsaW5lLmRlYWN0aXZhdGVkJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQ+e3sgdHJhbnNmby50aXRsZSB9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZD57eyB0cmFuc2ZvPy5sYXN0Sm9iRXhlY3V0aW9uPy5leGVjdXRpb25EYXRlIHwgc2luY2VEYXRlIH19PC90ZD5cbiAgICAgICAgICAgICAgQGlmICh0cmFuc2ZvLmxhc3RKb2JFeGVjdXRpb24pIHtcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtYWxpZ24tY2VudGVyIC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKHRyYW5zZm8ubGFzdEpvYkV4ZWN1dGlvbi5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoRXhlY3V0aW9uU3RhdGUuVEVSTUlOQVRFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjaGVja1wiIFtoZWlnaHRdPVwiMjVcIiBbd2lkdGhdPVwiMjVcIiBjbGFzcz1cImNoZWNrXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEV4ZWN1dGlvblN0YXRlLlNUQVJURUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic3luY2hyb1wiIFtoZWlnaHRdPVwiMjVcIiBbd2lkdGhdPVwiMjVcIiBjbGFzcz1cIndhcm5pbmdcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoRXhlY3V0aW9uU3RhdGUuRVJST1IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjI1XCIgW3dpZHRoXT1cIjI1XCIgY2xhc3M9XCJkYW5nZXJcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IC1zaXplLXNtXCIgKGNsaWNrKT1cImNvbnN1bHQodHJhbnNmbylcIj5cbiAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LnBpcGVsaW5lLmNvbnN1bHQnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPiB7eyB0cmFuc2ZvLnRpdGxlIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLW1vcmVcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBpZD1cImFjdGlvbnMte3sgaW5kZXggfX1cIlxuICAgICAgICAgICAgICAgICAgI2FjdGlvbnNcbiAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJwYW5lbEFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhIW92ZXJsYXlSZWZcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vcmVEcm9wZG93bigkZXZlbnQsIGluZGV4LCB0cmFuc2ZvKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cIm1vcmVfaG9yaXpcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIH1cbiAgICBAY2FzZSAoVmlld01vZGUuQ09OU1VMVCkge1xuICAgICAgQGlmIChzZWxlY3RlZFRyYW5zZm8pIHtcbiAgICAgICAgPHByeS1waXBlbGluZS1kZXRhaWxzXG4gICAgICAgICAgW3BpcGVsaW5lXT1cInNlbGVjdGVkVHJhbnNmb1wiXG4gICAgICAgICAgKGdvVG9MaXN0KT1cImxpc3QoKVwiXG4gICAgICAgICAgKGdvVG9FZGl0b3IpPVwic2F2ZVBpcGVsaW5lKCRldmVudClcIlxuICAgICAgICAgIChleGVjdXRlQ29uZmlybSk9XCJ0b2dnbGVFeGVjdXRlQ29uZmlybSgpXCJcbiAgICAgICAgPjwvcHJ5LXBpcGVsaW5lLWRldGFpbHM+XG4gICAgICB9XG4gICAgfVxuICAgIEBjYXNlIChWaWV3TW9kZS5DUkVBVElPTikge1xuICAgICAgPHByeS1waXBlbGluZS1kZXRhaWxzIChnb1RvTGlzdCk9XCJsaXN0KClcIiAoZ29Ub0VkaXRvcik9XCJzYXZlUGlwZWxpbmUoJGV2ZW50KVwiPjwvcHJ5LXBpcGVsaW5lLWRldGFpbHM+XG4gICAgfVxuICAgIEBjYXNlIChWaWV3TW9kZS5FRElUT1IpIHtcbiAgICAgIDxwcnktcGlwZWxpbmUtZWRpdG9yIFtwaXBlbGluZV09XCJzZWxlY3RlZFRyYW5zZm9cIiAoZ29Ub0NvbnN1bHQpPVwiY29uc3VsdCgkZXZlbnQpXCI+PC9wcnktcGlwZWxpbmUtZWRpdG9yPlxuICAgIH1cbiAgfVxuPC9kaXY+XG48bmctdGVtcGxhdGUgI25vRXhlY3V0aW9uPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXN0YXRlXCI+XG4gICAgPHNwYW4+e3sgJ0BwcnkucGlwZWxpbmUua28nIHwgaTE4biB9fTwvc3Bhbj5cbiAgICA8cHJ5LWljb24gW2hlaWdodF09XCIxNVwiIFt3aWR0aF09XCIxNVwiIGljb25Tdmc9XCJkYW5nZXJcIiBjbGFzcz1cImRhbmdlclwiPjwvcHJ5LWljb24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkcm9wZG93bj5cbiAgQGlmIChzZWxlY3RlZFRyYW5zZm8pIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm0tY29udGV4dC1tZW51XCJcbiAgICAgIGlkPVwicGFuZWxBY3Rpb25zXCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGtleWRvd24uZXNjYXBlKT1cImNsb3NlRHJvcGRvd24oKVwiXG4gICAgICBjZGtUcmFwRm9jdXNcbiAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGlhbG9nIHBhbmVsQWN0aW9uc1wiXG4gICAgICA+XG4gICAgICA8dWwgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdFwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiIHJvbGU9XCJub25lXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgI3RvZ2dsZUFjdGlvbnNcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0blwiXG4gICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVN0YXRlKHNlbGVjdGVkVHJhbnNmbylcIlxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm5hdmlnYXRlQ29udGV4dE1lbnUoYWN0aXZhdGUsIGV4ZWN1dGUpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93VXApPVwibmF2aWdhdGVDb250ZXh0TWVudShhY3RpdmF0ZSwgZXhlY3V0ZSlcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICNhY3RpdmF0ZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgKHNlbGVjdGVkVHJhbnNmby5hY3RpdmUgPyAnQHByeS5waXBlbGluZS5kZWFjdGl2YXRlJyA6ICdAcHJ5LnBpcGVsaW5lLmFjdGl2YXRlJykgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiIHJvbGU9XCJub25lXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgI2V4ZWN1dGVcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAgIGlkPVwiZXhlY3V0ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImEtYnRuXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm5hdmlnYXRlQ29udGV4dE1lbnUoZXhlY3V0ZSwgYWN0aXZhdGUpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmFycm93VXApPVwibmF2aWdhdGVDb250ZXh0TWVudShleGVjdXRlLCBhY3RpdmF0ZSlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZFRyYW5zZm8uYWN0aXZlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVFeGVjdXRlQ29uZmlybSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LnBpcGVsaW5lLmV4ZWN1dGUnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RlbXBsYXRlTW9kYWw+XG4gIEBpZiAoc2VsZWN0ZWRUcmFuc2ZvKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJvLW1vZGFsXCJcbiAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJ0b2dnbGVFeGVjdXRlQ29uZmlybSgpXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGlhbG9nIGNvbmZpcm0gZGVsZXRlIHByZXNlbnRhdGlvblwiXG4gICAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiYS1oMlwiIGlkPVwiZGlhbG9nX3RpdGxlXCI+XG4gICAgICAgICAgICB7eyAnQHByeS53aWRnZXQubW9kYWxUaXRsZScgfCBpMThuIH19XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCJcbiAgICAgICAgICAgICNjcm9zc1xuICAgICAgICAgICAgKGtleWRvd24uc2hpZnQudGFiKT1cImZvY3VzRWxlbWVudChjb25maXJtKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsUmVtb3ZlQ29uZmlybSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS50b29sYm94LmNsb3NlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI2NhbmNlbCAoY2xpY2spPVwiY2FuY2VsUmVtb3ZlQ29uZmlybSgpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCI+XG4gICAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgI2NvbmZpcm1cbiAgICAgICAgICBpZD1cImNvbmZpcm1cIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJjb25maXJtRXhlY3V0aW9uKHNlbGVjdGVkVHJhbnNmbylcIlxuICAgICAgICAgIChrZXlkb3duLnRhYik9XCJmb2N1c0VsZW1lbnQoY3Jvc3MpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs
CHANGED
|
@@ -7,9 +7,9 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "@ngrx/store";
|
|
8
8
|
import * as i2 from "@angular/router";
|
|
9
9
|
import * as i3 from "@provoly/dashboard/toolbox";
|
|
10
|
-
import * as i4 from "@
|
|
11
|
-
import * as i5 from "@provoly/dashboard
|
|
12
|
-
import * as i6 from "@
|
|
10
|
+
import * as i4 from "@provoly/dashboard/components/metadata-editor";
|
|
11
|
+
import * as i5 from "@provoly/dashboard";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
13
|
export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
|
|
14
14
|
set selectedPresentation(presentation) {
|
|
15
15
|
this.selectedPresentation$.next(presentation);
|
|
@@ -133,11 +133,11 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
|
|
|
133
133
|
};
|
|
134
134
|
}
|
|
135
135
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAddEditPresentationComponent, deps: [{ token: i1.Store }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryAddEditPresentationComponent, selector: "pry-add-edit-presentation", inputs: { selectedPresentation: "selectedPresentation", edition: "edition", themePrefix: "themePrefix", editionStartUrl: "editionStartUrl", mode: "mode" }, outputs: { goBack: "goBack" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox -justify-space-between -align-center\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"save()\" [disabled]=\"!isFormValid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h2 class=\"a-h2\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h2>\n <div class=\"o-presentation-form-wrapper\">\n <div class=\"u-display-flex -column\">\n <pry-presentation-form\n mode=\"theme\"\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n [mode]=\"mode\"\n [themePrefix]=\"themePrefix\"\n ></pry-presentation-form>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n @if (!edition) {\n <pry-select-grid-layout></pry-select-grid-layout>\n }\n </div>\n </div>\n @if (mode === 'meta') {\n @if (selectedPresentation$ | async; as selectedPresentation) {\n <div class=\"o-presentation__metadata-editor\">\n <pry-metadata-editor\n [targetId]=\"selectedPresentation.id\"\n [isModification]=\"true\"\n [metadata]=\"selectedPresentation.metadata ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </div>\n }\n }\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"configureDashboard(selectedPresentation$.value!)\"\n [disabled]=\"!isFormValid\"\n >\n {{ '@pry.presentation.configuration' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.SelectGridLayoutComponent, selector: "pry-select-grid-layout" }, { kind: "component", type: i3.PresentationFormComponent, selector: "pry-presentation-form", inputs: ["mode", "themePrefix", "selectedPresentation"], outputs: ["formValue", "isFormValid"] }, { kind: "component", type: i4.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
|
|
137
137
|
}
|
|
138
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAddEditPresentationComponent, decorators: [{
|
|
139
139
|
type: Component,
|
|
140
|
-
args: [{ selector: 'pry-add-edit-presentation', template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox -justify-space-between -align-center\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"save()\" [disabled]=\"!isFormValid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h2 class=\"a-h2\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h2>\n <div class=\"o-presentation-form-wrapper\">\n <div class=\"u-display-flex -column\">\n <pry-presentation-form\n mode=\"theme\"\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n [mode]=\"mode\"\n [themePrefix]=\"themePrefix\"\n ></pry-presentation-form>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n <pry-select-grid-layout
|
|
140
|
+
args: [{ selector: 'pry-add-edit-presentation', template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox -justify-space-between -align-center\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"save()\" [disabled]=\"!isFormValid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h2 class=\"a-h2\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h2>\n <div class=\"o-presentation-form-wrapper\">\n <div class=\"u-display-flex -column\">\n <pry-presentation-form\n mode=\"theme\"\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n [mode]=\"mode\"\n [themePrefix]=\"themePrefix\"\n ></pry-presentation-form>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n @if (!edition) {\n <pry-select-grid-layout></pry-select-grid-layout>\n }\n </div>\n </div>\n @if (mode === 'meta') {\n @if (selectedPresentation$ | async; as selectedPresentation) {\n <div class=\"o-presentation__metadata-editor\">\n <pry-metadata-editor\n [targetId]=\"selectedPresentation.id\"\n [isModification]=\"true\"\n [metadata]=\"selectedPresentation.metadata ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </div>\n }\n }\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"configureDashboard(selectedPresentation$.value!)\"\n [disabled]=\"!isFormValid\"\n >\n {{ '@pry.presentation.configuration' | i18n }}\n </button>\n </div>\n</div>\n" }]
|
|
141
141
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router, decorators: [{
|
|
142
142
|
type: Optional
|
|
143
143
|
}] }], propDecorators: { selectedPresentation: [{
|
|
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
153
153
|
}], goBack: [{
|
|
154
154
|
type: Output
|
|
155
155
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVkaXQtcHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL2FkZC1lZGl0LXByZXNlbnRhdGlvbi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvYWRkLWVkaXQtcHJlc2VudGF0aW9uL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFLbEIsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBb0IsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLCtDQUErQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsd0JBQXdCO0lBVTNFLElBQWEsb0JBQW9CLENBQUMsWUFBNkM7UUFDN0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBUUQsWUFDWSxLQUFZLEVBQ0EsTUFBYztRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUhFLFVBQUss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Q0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxFQUFFO3dCQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTt3QkFDekIsT0FBTyxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTzt3QkFDbkUsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtxQkFDOUQ7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQTdKVSwrQkFBK0I7a0dBQS9CLCtCQUErQixtUkN4QjVDLGtyRUFpREE7OzJGRHpCYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkF5QmxDLFFBQVE7eUNBWkUsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgSU1ldGFkYXRhLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBNZXRhZGF0YVZhbHVlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXRQbGFjZW1lbnRVdGlsc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YVNlbGVjdG9ycywgTWV0YUV2ZW50VHlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkZvcm1WYWx1ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC90b29sYm94JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkZC1lZGl0LXByZXNlbnRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUFkZEVkaXRQcmVzZW50YXRpb25Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBzdGF0aWNNYW5pZmVzdCQ6IE9ic2VydmFibGU8R2xvYmFsTWFuaWZlc3Q+O1xuICBzdGF0aWNNYW5pZmVzdD86IEdsb2JhbE1hbmlmZXN0O1xuICBzZWxlY3RlZFByZXNlbnRhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNob3NlbkxheW91dDogc3RyaW5nID0gRGFzaGJvYXJkR3JpZExheW91dC5GVUxMO1xuICBtZXRhZGF0YURlZnM6IElNZXRhZGF0YVtdIHwgdW5kZWZpbmVkO1xuICBtZXRhZGF0YVRoZW1lSWQ6IHN0cmluZyA9ICcnO1xuICBmb3JtVmFsdWU/OiBQYXJ0aWFsPFByZXNlbnRhdGlvbkZvcm1WYWx1ZT47XG4gIGlzRm9ybVZhbGlkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkUHJlc2VudGF0aW9uKHByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQocHJlc2VudGF0aW9uKTtcbiAgfVxuICBASW5wdXQoKSBlZGl0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRoZW1lUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZWRpdGlvblN0YXJ0VXJsOiBzdHJpbmcgPSAnLyc7XG4gIEBJbnB1dCgpIG1vZGU6ICd0aGVtZScgfCAnbWV0YScgPSAnbWV0YSc7XG5cbiAgQE91dHB1dCgpIGdvQmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlLFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhdGljTWFuaWZlc3QkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnN0YXRpY01hbmlmZXN0KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RhdGljTWFuaWZlc3QkLnN1YnNjcmliZShtYW5pZmVzdCA9PiB0aGlzLnN0YXRpY01hbmlmZXN0ID0gbWFuaWZlc3QpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5zdGF0aWNNYW5pZmVzdCQsIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5ncmlkTGF5b3V0KV0pLnN1YnNjcmliZShcbiAgICAgICAgKFtzdGF0aWNNYW5pZmVzdCwgZ3JpZExheW91dF0pID0+IHtcbiAgICAgICAgICB0aGlzLmNob3NlbkxheW91dCA9XG4gICAgICAgICAgICB0aGlzLmVkaXRpb24gJiYgc3RhdGljTWFuaWZlc3Qud2luZG93c1swXT8uZ3JpZD8ubGF5b3V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyBzdGF0aWNNYW5pZmVzdC53aW5kb3dzWzBdPy5ncmlkPy5sYXlvdXRcbiAgICAgICAgICAgICAgOiBncmlkTGF5b3V0O1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpLnN1YnNjcmliZSgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YURlZnMgPSBtZXRhZGF0YTtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFUaGVtZSA9IG1ldGFkYXRhPy5maW5kKChtZXRhKSA9PiBtZXRhLm5hbWUgPT09ICdfdGhlbWUnKTtcbiAgICAgICAgaWYgKG1ldGFkYXRhVGhlbWUpIHtcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhVGhlbWVJZCA9IG1ldGFkYXRhVGhlbWU/LmlkID8/ICcnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwYXRjaFNhdmUoKTogTWFuaWZlc3REZXNjcmlwdGlvbiB7XG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0ge1xuICAgICAgLi4udGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhLFxuICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCB8fCB1dWlkdjQoKSxcbiAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zYXZlTWFuaWZlc3Qoe1xuICAgICAgICAuLi5wcmVzZW50YXRpb24sXG4gICAgICAgIG1ldGFkYXRhOiBwcmVzZW50YXRpb24ubWV0YWRhdGE/Lm1hcCgobWV0YWRhdGE6IE1ldGFkYXRhVmFsdWUpID0+ICh7XG4gICAgICAgICAgbWV0YWRhdGFEZWZJZDogbWV0YWRhdGEubWV0YWRhdGFEZWYuaWQsXG4gICAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlXG4gICAgICAgIH0pKSxcbiAgICAgICAgbWFuaWZlc3Q6IHRoaXMuZWRpdGlvbiA/IHRoaXMuc3RhdGljTWFuaWZlc3QgOiB0aGlzLmdldE5ld01hbmlmZXN0KClcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcHJlc2VudGF0aW9uO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBjb25zdCBwcmVzZW50YXRpb24gPSB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7XG4gICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkVESVRJT05cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZURhc2hib2FyZChzZWxlY3RlZFByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbikge1xuICAgIGlmICh0aGlzLmlzRm9ybVZhbGlkKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXNlbnRhdGlvbiA9IHtcbiAgICAgIC4uLnRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlISxcbiAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuZWRpdGlvbikge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oe1xuICAgICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgICB2aWV3TW9kZTogVmlld01vZGUuQ1JFQVRJT05cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMubG9hZFByZXNlbnRhdGlvbih7XG4gICAgICAgICAgcHJlc2VudGF0aW9uLFxuICAgICAgICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5FRElUSU9OXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybCh0aGlzLmVkaXRpb25TdGFydFVybCk7XG4gIH1cblxuICBhZGRNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLmFkZE1hbmlmZXN0TWV0YWRhdGEoe1xuICAgICAgICBwcmVzZW50YXRpb25JZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkISxcbiAgICAgICAgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZCxcbiAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlID8/ICcnXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZW1vdmVNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLmRlbGV0ZU1hbmlmZXN0TWV0YWRhdGEoe1xuICAgICAgICBwcmVzZW50YXRpb25JZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkISxcbiAgICAgICAgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5nb0JhY2suZW1pdCgpO1xuICB9XG5cbiAgbWV0YWRhdGEoKTogTWV0YWRhdGFWYWx1ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAndGhlbWUnXG4gICAgICA/ICF0aGlzLmZvcm1WYWx1ZT8udGhlbWUgfHwgdGhpcy5mb3JtVmFsdWU/LnRoZW1lID09PSAnJ1xuICAgICAgICA/IFtdXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXRhZGF0YURlZjogdGhpcy5tZXRhZGF0YURlZnMhLmZpbmQoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5pZCA9PT0gdGhpcy5tZXRhZGF0YVRoZW1lSWQpISxcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZm9ybVZhbHVlLnRoZW1lID8/ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgOiB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8ubWV0YWRhdGEgPz8gW107XG4gIH1cblxuICBnZXROZXdNYW5pZmVzdCgpOiBHbG9iYWxNYW5pZmVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpbmRvd3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHdpZGdldHM6IFtdLFxuICAgICAgICAgIGdyaWQ6IHtcbiAgICAgICAgICAgIGxheW91dDogdGhpcy5jaG9zZW5MYXlvdXQsXG4gICAgICAgICAgICBjb2x1bW5zOiBXaWRnZXRQbGFjZW1lbnRVdGlscy5nZXRMYXlvdXQodGhpcy5jaG9zZW5MYXlvdXQpPy5jb2x1bW5zLFxuICAgICAgICAgICAgcm93czogV2lkZ2V0UGxhY2VtZW50VXRpbHMuZ2V0TGF5b3V0KHRoaXMuY2hvc2VuTGF5b3V0KT8ucm93c1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dFwiPlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3ggLWp1c3RpZnktc3BhY2UtYmV0d2VlbiAtYWxpZ24tY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2xvc2UnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jaGVjaycgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX2NvbnRlbnQtLXByZXNlbnRhdGlvblwiPlxuICAgIDxoMiBjbGFzcz1cImEtaDJcIj57eyAnQHByeS5wcmVzZW50YXRpb24uYWRkJyArICcucGFnZVRpdGxlJyB8IGkxOG4gfX08L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi1mb3JtLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtY29sdW1uXCI+XG4gICAgICAgIDxwcnktcHJlc2VudGF0aW9uLWZvcm1cbiAgICAgICAgICBtb2RlPVwidGhlbWVcIlxuICAgICAgICAgIFtzZWxlY3RlZFByZXNlbnRhdGlvbl09XCIoc2VsZWN0ZWRQcmVzZW50YXRpb24kIHwgYXN5bmMpID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgKGZvcm1WYWx1ZSk9XCJmb3JtVmFsdWUgPSAkZXZlbnRcIlxuICAgICAgICAgIChpc0Zvcm1WYWxpZCk9XCJpc0Zvcm1WYWxpZCA9ICRldmVudFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3RoZW1lUHJlZml4XT1cInRoZW1lUHJlZml4XCJcbiAgICAgICAgPjwvcHJ5LXByZXNlbnRhdGlvbi1mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsIG0tZm9ybS1sYWJlbC1maWVsZC0taW5saW5lXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmdyaWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkudG9vbGJveC5sYXlvdXQuJyArIHRoaXMuY2hvc2VuTGF5b3V0IHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8cHJ5LXNlbGVjdC1ncmlkLWxheW91dCAqbmdJZj1cIiFlZGl0aW9uXCI+PC9wcnktc2VsZWN0LWdyaWQtbGF5b3V0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdtZXRhJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb25fX21ldGFkYXRhLWVkaXRvclwiICpuZ0lmPVwic2VsZWN0ZWRQcmVzZW50YXRpb24kIHwgYXN5bmMgYXMgc2VsZWN0ZWRQcmVzZW50YXRpb25cIj5cbiAgICAgICAgICA8cHJ5LW1ldGFkYXRhLWVkaXRvclxuICAgICAgICAgICAgW3RhcmdldElkXT1cInNlbGVjdGVkUHJlc2VudGF0aW9uLmlkXCJcbiAgICAgICAgICAgIFtpc01vZGlmaWNhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttZXRhZGF0YV09XCJzZWxlY3RlZFByZXNlbnRhdGlvbi5tZXRhZGF0YSA/PyBbXVwiXG4gICAgICAgICAgICAocmVtb3ZlTWV0YSk9XCJyZW1vdmVNZXRhZGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChhZGRNZXRhKT1cImFkZE1ldGFkYXRhKCRldmVudClcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ21ldGEnXCJcbiAgICAgICAgICA+PC9wcnktbWV0YWRhdGEtZWRpdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cImNvbmZpZ3VyZURhc2hib2FyZChzZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVZhbGlkXCJcbiAgICA+XG4gICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24uY29uZmlndXJhdGlvbicgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVkaXQtcHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL2FkZC1lZGl0LXByZXNlbnRhdGlvbi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvYWRkLWVkaXQtcHJlc2VudGF0aW9uL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFLbEIsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBb0IsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLCtDQUErQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsd0JBQXdCO0lBVTNFLElBQWEsb0JBQW9CLENBQUMsWUFBNkM7UUFDN0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBUUQsWUFDWSxLQUFZLEVBQ0EsTUFBYztRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUhFLFVBQUss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Q0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxFQUFFO3dCQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTt3QkFDekIsT0FBTyxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTzt3QkFDbkUsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtxQkFDOUQ7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQTdKVSwrQkFBK0I7a0dBQS9CLCtCQUErQixtUkN4QjVDLG90RUFxREE7OzJGRDdCYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkF5QmxDLFFBQVE7eUNBWkUsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgSU1ldGFkYXRhLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBNZXRhZGF0YVZhbHVlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXRQbGFjZW1lbnRVdGlsc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YVNlbGVjdG9ycywgTWV0YUV2ZW50VHlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkZvcm1WYWx1ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC90b29sYm94JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkZC1lZGl0LXByZXNlbnRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUFkZEVkaXRQcmVzZW50YXRpb25Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBzdGF0aWNNYW5pZmVzdCQ6IE9ic2VydmFibGU8R2xvYmFsTWFuaWZlc3Q+O1xuICBzdGF0aWNNYW5pZmVzdD86IEdsb2JhbE1hbmlmZXN0O1xuICBzZWxlY3RlZFByZXNlbnRhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNob3NlbkxheW91dDogc3RyaW5nID0gRGFzaGJvYXJkR3JpZExheW91dC5GVUxMO1xuICBtZXRhZGF0YURlZnM6IElNZXRhZGF0YVtdIHwgdW5kZWZpbmVkO1xuICBtZXRhZGF0YVRoZW1lSWQ6IHN0cmluZyA9ICcnO1xuICBmb3JtVmFsdWU/OiBQYXJ0aWFsPFByZXNlbnRhdGlvbkZvcm1WYWx1ZT47XG4gIGlzRm9ybVZhbGlkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkUHJlc2VudGF0aW9uKHByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQocHJlc2VudGF0aW9uKTtcbiAgfVxuICBASW5wdXQoKSBlZGl0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRoZW1lUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZWRpdGlvblN0YXJ0VXJsOiBzdHJpbmcgPSAnLyc7XG4gIEBJbnB1dCgpIG1vZGU6ICd0aGVtZScgfCAnbWV0YScgPSAnbWV0YSc7XG5cbiAgQE91dHB1dCgpIGdvQmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlLFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhdGljTWFuaWZlc3QkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnN0YXRpY01hbmlmZXN0KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RhdGljTWFuaWZlc3QkLnN1YnNjcmliZShtYW5pZmVzdCA9PiB0aGlzLnN0YXRpY01hbmlmZXN0ID0gbWFuaWZlc3QpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5zdGF0aWNNYW5pZmVzdCQsIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5ncmlkTGF5b3V0KV0pLnN1YnNjcmliZShcbiAgICAgICAgKFtzdGF0aWNNYW5pZmVzdCwgZ3JpZExheW91dF0pID0+IHtcbiAgICAgICAgICB0aGlzLmNob3NlbkxheW91dCA9XG4gICAgICAgICAgICB0aGlzLmVkaXRpb24gJiYgc3RhdGljTWFuaWZlc3Qud2luZG93c1swXT8uZ3JpZD8ubGF5b3V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyBzdGF0aWNNYW5pZmVzdC53aW5kb3dzWzBdPy5ncmlkPy5sYXlvdXRcbiAgICAgICAgICAgICAgOiBncmlkTGF5b3V0O1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpLnN1YnNjcmliZSgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YURlZnMgPSBtZXRhZGF0YTtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFUaGVtZSA9IG1ldGFkYXRhPy5maW5kKChtZXRhKSA9PiBtZXRhLm5hbWUgPT09ICdfdGhlbWUnKTtcbiAgICAgICAgaWYgKG1ldGFkYXRhVGhlbWUpIHtcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhVGhlbWVJZCA9IG1ldGFkYXRhVGhlbWU/LmlkID8/ICcnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwYXRjaFNhdmUoKTogTWFuaWZlc3REZXNjcmlwdGlvbiB7XG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0ge1xuICAgICAgLi4udGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhLFxuICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCB8fCB1dWlkdjQoKSxcbiAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zYXZlTWFuaWZlc3Qoe1xuICAgICAgICAuLi5wcmVzZW50YXRpb24sXG4gICAgICAgIG1ldGFkYXRhOiBwcmVzZW50YXRpb24ubWV0YWRhdGE/Lm1hcCgobWV0YWRhdGE6IE1ldGFkYXRhVmFsdWUpID0+ICh7XG4gICAgICAgICAgbWV0YWRhdGFEZWZJZDogbWV0YWRhdGEubWV0YWRhdGFEZWYuaWQsXG4gICAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlXG4gICAgICAgIH0pKSxcbiAgICAgICAgbWFuaWZlc3Q6IHRoaXMuZWRpdGlvbiA/IHRoaXMuc3RhdGljTWFuaWZlc3QgOiB0aGlzLmdldE5ld01hbmlmZXN0KClcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcHJlc2VudGF0aW9uO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBjb25zdCBwcmVzZW50YXRpb24gPSB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7XG4gICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkVESVRJT05cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZURhc2hib2FyZChzZWxlY3RlZFByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbikge1xuICAgIGlmICh0aGlzLmlzRm9ybVZhbGlkKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXNlbnRhdGlvbiA9IHtcbiAgICAgIC4uLnRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlISxcbiAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuZWRpdGlvbikge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oe1xuICAgICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgICB2aWV3TW9kZTogVmlld01vZGUuQ1JFQVRJT05cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMubG9hZFByZXNlbnRhdGlvbih7XG4gICAgICAgICAgcHJlc2VudGF0aW9uLFxuICAgICAgICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5FRElUSU9OXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybCh0aGlzLmVkaXRpb25TdGFydFVybCk7XG4gIH1cblxuICBhZGRNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLmFkZE1hbmlmZXN0TWV0YWRhdGEoe1xuICAgICAgICBwcmVzZW50YXRpb25JZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkISxcbiAgICAgICAgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZCxcbiAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlID8/ICcnXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZW1vdmVNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLmRlbGV0ZU1hbmlmZXN0TWV0YWRhdGEoe1xuICAgICAgICBwcmVzZW50YXRpb25JZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkISxcbiAgICAgICAgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5nb0JhY2suZW1pdCgpO1xuICB9XG5cbiAgbWV0YWRhdGEoKTogTWV0YWRhdGFWYWx1ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAndGhlbWUnXG4gICAgICA/ICF0aGlzLmZvcm1WYWx1ZT8udGhlbWUgfHwgdGhpcy5mb3JtVmFsdWU/LnRoZW1lID09PSAnJ1xuICAgICAgICA/IFtdXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXRhZGF0YURlZjogdGhpcy5tZXRhZGF0YURlZnMhLmZpbmQoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5pZCA9PT0gdGhpcy5tZXRhZGF0YVRoZW1lSWQpISxcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZm9ybVZhbHVlLnRoZW1lID8/ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgOiB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8ubWV0YWRhdGEgPz8gW107XG4gIH1cblxuICBnZXROZXdNYW5pZmVzdCgpOiBHbG9iYWxNYW5pZmVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpbmRvd3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHdpZGdldHM6IFtdLFxuICAgICAgICAgIGdyaWQ6IHtcbiAgICAgICAgICAgIGxheW91dDogdGhpcy5jaG9zZW5MYXlvdXQsXG4gICAgICAgICAgICBjb2x1bW5zOiBXaWRnZXRQbGFjZW1lbnRVdGlscy5nZXRMYXlvdXQodGhpcy5jaG9zZW5MYXlvdXQpPy5jb2x1bW5zLFxuICAgICAgICAgICAgcm93czogV2lkZ2V0UGxhY2VtZW50VXRpbHMuZ2V0TGF5b3V0KHRoaXMuY2hvc2VuTGF5b3V0KT8ucm93c1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dFwiPlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3ggLWp1c3RpZnktc3BhY2UtYmV0d2VlbiAtYWxpZ24tY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2xvc2UnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jaGVjaycgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX2NvbnRlbnQtLXByZXNlbnRhdGlvblwiPlxuICAgIDxoMiBjbGFzcz1cImEtaDJcIj57eyAnQHByeS5wcmVzZW50YXRpb24uYWRkJyArICcucGFnZVRpdGxlJyB8IGkxOG4gfX08L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi1mb3JtLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtY29sdW1uXCI+XG4gICAgICAgIDxwcnktcHJlc2VudGF0aW9uLWZvcm1cbiAgICAgICAgICBtb2RlPVwidGhlbWVcIlxuICAgICAgICAgIFtzZWxlY3RlZFByZXNlbnRhdGlvbl09XCIoc2VsZWN0ZWRQcmVzZW50YXRpb24kIHwgYXN5bmMpID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgKGZvcm1WYWx1ZSk9XCJmb3JtVmFsdWUgPSAkZXZlbnRcIlxuICAgICAgICAgIChpc0Zvcm1WYWxpZCk9XCJpc0Zvcm1WYWxpZCA9ICRldmVudFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3RoZW1lUHJlZml4XT1cInRoZW1lUHJlZml4XCJcbiAgICAgICAgPjwvcHJ5LXByZXNlbnRhdGlvbi1mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsIG0tZm9ybS1sYWJlbC1maWVsZC0taW5saW5lXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmdyaWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkudG9vbGJveC5sYXlvdXQuJyArIHRoaXMuY2hvc2VuTGF5b3V0IHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKCFlZGl0aW9uKSB7XG4gICAgICAgICAgICA8cHJ5LXNlbGVjdC1ncmlkLWxheW91dD48L3ByeS1zZWxlY3QtZ3JpZC1sYXlvdXQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmIChtb2RlID09PSAnbWV0YScpIHtcbiAgICAgICAgQGlmIChzZWxlY3RlZFByZXNlbnRhdGlvbiQgfCBhc3luYzsgYXMgc2VsZWN0ZWRQcmVzZW50YXRpb24pIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb25fX21ldGFkYXRhLWVkaXRvclwiPlxuICAgICAgICAgICAgPHByeS1tZXRhZGF0YS1lZGl0b3JcbiAgICAgICAgICAgICAgW3RhcmdldElkXT1cInNlbGVjdGVkUHJlc2VudGF0aW9uLmlkXCJcbiAgICAgICAgICAgICAgW2lzTW9kaWZpY2F0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgICBbbWV0YWRhdGFdPVwic2VsZWN0ZWRQcmVzZW50YXRpb24ubWV0YWRhdGEgPz8gW11cIlxuICAgICAgICAgICAgICAocmVtb3ZlTWV0YSk9XCJyZW1vdmVNZXRhZGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFkZE1ldGEpPVwiYWRkTWV0YWRhdGEoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFt0eXBlXT1cIidtZXRhJ1wiXG4gICAgICAgICAgICA+PC9wcnktbWV0YWRhdGEtZWRpdG9yPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwiY29uZmlndXJlRGFzaGJvYXJkKHNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZSEpXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNGb3JtVmFsaWRcIlxuICAgICAgPlxuICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLmNvbmZpZ3VyYXRpb24nIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|