@valtimo/dashboard-management 10.7.0 → 11.0.0
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/lib/components/dashboard-details/dashboard-details.component.mjs +153 -0
- package/esm2022/lib/components/dashboard-management/dashboard-management.component.mjs +119 -0
- package/esm2022/lib/components/edit-dashboard-modal/edit-dashboard-modal.mjs +99 -0
- package/esm2022/lib/components/widget-configuration-container/widget-configuration-container.component.mjs +137 -0
- package/esm2022/lib/components/widget-modal/widget-modal.component.mjs +250 -0
- package/{esm2020 → esm2022}/lib/dashboard-management-routing.module.mjs +5 -5
- package/esm2022/lib/dashboard-management.module.mjs +100 -0
- package/esm2022/lib/models/dashboard-item.type.mjs +17 -0
- package/esm2022/lib/models/index.mjs +18 -0
- package/esm2022/lib/models/widget.model.mjs +17 -0
- package/esm2022/lib/services/dashboard-management.service.mjs +88 -0
- package/{esm2020 → esm2022}/public-api.mjs +2 -2
- package/fesm2022/valtimo-dashboard-management.mjs +969 -0
- package/fesm2022/valtimo-dashboard-management.mjs.map +1 -0
- package/lib/components/dashboard-details/dashboard-details.component.d.ts +4 -4
- package/lib/components/dashboard-management/dashboard-management.component.d.ts +4 -4
- package/lib/components/edit-dashboard-modal/edit-dashboard-modal.d.ts +1 -1
- package/lib/components/widget-configuration-container/widget-configuration-container.component.d.ts +1 -1
- package/lib/components/widget-modal/widget-modal.component.d.ts +1 -1
- package/lib/dashboard-management.module.d.ts +4 -4
- package/lib/models/widget.model.d.ts +1 -1
- package/package.json +8 -14
- package/esm2020/lib/components/dashboard-details/dashboard-details.component.mjs +0 -155
- package/esm2020/lib/components/dashboard-management/dashboard-management.component.mjs +0 -106
- package/esm2020/lib/components/edit-dashboard-modal/edit-dashboard-modal.mjs +0 -99
- package/esm2020/lib/components/widget-configuration-container/widget-configuration-container.component.mjs +0 -137
- package/esm2020/lib/components/widget-modal/widget-modal.component.mjs +0 -235
- package/esm2020/lib/dashboard-management.module.mjs +0 -100
- package/esm2020/lib/models/dashboard-item.type.mjs +0 -2
- package/esm2020/lib/models/index.mjs +0 -3
- package/esm2020/lib/models/widget.model.mjs +0 -2
- package/esm2020/lib/services/dashboard-management.service.mjs +0 -88
- package/fesm2015/valtimo-dashboard-management.mjs +0 -949
- package/fesm2015/valtimo-dashboard-management.mjs.map +0 -1
- package/fesm2020/valtimo-dashboard-management.mjs +0 -940
- package/fesm2020/valtimo-dashboard-management.mjs.map +0 -1
- /package/{esm2020 → esm2022}/valtimo-dashboard-management.mjs +0 -0
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { ArrowDown16, ArrowUp16, Edit16 } from '@carbon/icons';
|
|
3
|
-
import { ColumnType, createCarbonTableConfig, } from '@valtimo/components';
|
|
4
|
-
import { BehaviorSubject, combineLatest, map, switchMap, tap } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../services/dashboard-management.service";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "carbon-components-angular";
|
|
9
|
-
import * as i4 from "@valtimo/components";
|
|
10
|
-
import * as i5 from "@angular/router";
|
|
11
|
-
import * as i6 from "@ngx-translate/core";
|
|
12
|
-
import * as i7 from "../widget-modal/widget-modal.component";
|
|
13
|
-
import * as i8 from "../edit-dashboard-modal/edit-dashboard-modal";
|
|
14
|
-
export class DashboardDetailsComponent {
|
|
15
|
-
constructor(dashboardManagementService, datePipe, iconService, pageTitleService, route, translateService) {
|
|
16
|
-
this.dashboardManagementService = dashboardManagementService;
|
|
17
|
-
this.datePipe = datePipe;
|
|
18
|
-
this.iconService = iconService;
|
|
19
|
-
this.pageTitleService = pageTitleService;
|
|
20
|
-
this.route = route;
|
|
21
|
-
this.translateService = translateService;
|
|
22
|
-
this.modalType = 'create';
|
|
23
|
-
this._dashboardKey$ = this.route.params.pipe(map(params => params.id));
|
|
24
|
-
this._refreshDashboardSubject$ = new BehaviorSubject(null);
|
|
25
|
-
this.currentDashboard$ = combineLatest([
|
|
26
|
-
this._dashboardKey$,
|
|
27
|
-
this.translateService.stream('key'),
|
|
28
|
-
this._refreshDashboardSubject$,
|
|
29
|
-
]).pipe(switchMap(([dashboardKey]) => this.dashboardManagementService.getDashboard(dashboardKey)), tap((currentDashboard) => {
|
|
30
|
-
if (!currentDashboard) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
this.pageTitleService.setCustomPageTitle(currentDashboard.title);
|
|
34
|
-
this.pageTitleService.setCustomPageSubtitle(this.translateService.instant('dashboardManagement.widgets.metadata', {
|
|
35
|
-
createdBy: currentDashboard.createdBy,
|
|
36
|
-
createdOn: this.datePipe.transform(currentDashboard.createdOn ?? '', 'd/M/yy, H:mm'),
|
|
37
|
-
key: currentDashboard.key,
|
|
38
|
-
}));
|
|
39
|
-
}));
|
|
40
|
-
this.lastItemIndex$ = new BehaviorSubject(0);
|
|
41
|
-
this.loading$ = new BehaviorSubject(true);
|
|
42
|
-
this._refreshWidgetsSubject$ = new BehaviorSubject(null);
|
|
43
|
-
this._widgetData = null;
|
|
44
|
-
this.widgetData$ = combineLatest([
|
|
45
|
-
this._dashboardKey$,
|
|
46
|
-
this._refreshWidgetsSubject$,
|
|
47
|
-
]).pipe(switchMap(([dashboardKey, refreshWidgets]) => {
|
|
48
|
-
this.loading$.next(true);
|
|
49
|
-
if (!this._widgetData || !refreshWidgets) {
|
|
50
|
-
return this.dashboardManagementService.getDashboardWidgetConfiguration(dashboardKey);
|
|
51
|
-
}
|
|
52
|
-
const { direction, index } = refreshWidgets;
|
|
53
|
-
return this.dashboardManagementService.updateDashboardWidgetConfigurations(dashboardKey, direction === 'UP'
|
|
54
|
-
? this.swapWidgets(this._widgetData, index - 1, index)
|
|
55
|
-
: this.swapWidgets(this._widgetData, index, index + 1));
|
|
56
|
-
}), tap((data) => {
|
|
57
|
-
this._widgetData = data;
|
|
58
|
-
this.lastItemIndex$.next(data.length - 1);
|
|
59
|
-
this.loading$.next(false);
|
|
60
|
-
}));
|
|
61
|
-
this.showModal$ = new BehaviorSubject(false);
|
|
62
|
-
this.showEditDashboardModal$ = new BehaviorSubject(false);
|
|
63
|
-
this.editWidgetConfiguration$ = new BehaviorSubject(null);
|
|
64
|
-
}
|
|
65
|
-
ngAfterViewInit() {
|
|
66
|
-
this.iconService.registerAll([ArrowDown16, ArrowUp16, Edit16]);
|
|
67
|
-
this.setTableConfig();
|
|
68
|
-
}
|
|
69
|
-
addWidget() {
|
|
70
|
-
this.editWidgetConfiguration$.next(null);
|
|
71
|
-
this.modalType = 'create';
|
|
72
|
-
this.showModal();
|
|
73
|
-
}
|
|
74
|
-
editDashboard() {
|
|
75
|
-
this.showEditDashboardModal();
|
|
76
|
-
}
|
|
77
|
-
refreshWidgets() {
|
|
78
|
-
this._refreshWidgetsSubject$.next(null);
|
|
79
|
-
}
|
|
80
|
-
refreshDashboard() {
|
|
81
|
-
this._refreshDashboardSubject$.next(null);
|
|
82
|
-
}
|
|
83
|
-
onArrowDownClick(data) {
|
|
84
|
-
this._refreshWidgetsSubject$.next({ direction: 'DOWN', index: data.index });
|
|
85
|
-
}
|
|
86
|
-
onArrowUpClick(data) {
|
|
87
|
-
this._refreshWidgetsSubject$.next({ direction: 'UP', index: data.index });
|
|
88
|
-
}
|
|
89
|
-
setTableConfig() {
|
|
90
|
-
this.tableConfig = createCarbonTableConfig({
|
|
91
|
-
fields: [
|
|
92
|
-
{
|
|
93
|
-
columnType: ColumnType.TEXT,
|
|
94
|
-
fieldName: 'title',
|
|
95
|
-
translationKey: 'Name',
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
columnType: ColumnType.TEMPLATE,
|
|
99
|
-
template: this.moveButtonsTemplate,
|
|
100
|
-
className: 'dashboard-detail-table__actions',
|
|
101
|
-
fieldName: '',
|
|
102
|
-
translationKey: '',
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
columnType: ColumnType.ACTION,
|
|
106
|
-
className: 'dashboard-detail-table__actions',
|
|
107
|
-
fieldName: '',
|
|
108
|
-
translationKey: '',
|
|
109
|
-
actions: [
|
|
110
|
-
{
|
|
111
|
-
actionName: 'Edit',
|
|
112
|
-
callback: this.editWidget.bind(this),
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
actionName: 'Delete',
|
|
116
|
-
callback: this.deleteWidget.bind(this),
|
|
117
|
-
type: 'danger',
|
|
118
|
-
},
|
|
119
|
-
],
|
|
120
|
-
},
|
|
121
|
-
],
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
editWidget(event) {
|
|
125
|
-
this.editWidgetConfiguration$.next({ ...event });
|
|
126
|
-
this.modalType = 'edit';
|
|
127
|
-
this.showModal();
|
|
128
|
-
}
|
|
129
|
-
deleteWidget(event) {
|
|
130
|
-
this.editWidgetConfiguration$.next({ ...event });
|
|
131
|
-
this.modalType = 'delete';
|
|
132
|
-
this.showModal();
|
|
133
|
-
}
|
|
134
|
-
showModal() {
|
|
135
|
-
this.showModal$.next(true);
|
|
136
|
-
}
|
|
137
|
-
showEditDashboardModal() {
|
|
138
|
-
this.showEditDashboardModal$.next(true);
|
|
139
|
-
}
|
|
140
|
-
swapWidgets(dashboardWidgets, index1, index2) {
|
|
141
|
-
const temp = [...dashboardWidgets];
|
|
142
|
-
temp[index1] = temp.splice(index2, 1, temp[index1])[0];
|
|
143
|
-
return temp;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
DashboardDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardDetailsComponent, deps: [{ token: i1.DashboardManagementService }, { token: i2.DatePipe }, { token: i3.IconService }, { token: i4.PageTitleService }, { token: i5.ActivatedRoute }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
147
|
-
DashboardDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DashboardDetailsComponent, selector: "ng-component", viewQueries: [{ propertyName: "moveButtonsTemplate", first: true, predicate: ["moveButtonsTemplate"], descendants: true }], ngImport: i0, template: "<ng-container\n *ngIf=\"\n tableConfig && {\n currentDashboard: currentDashboard$ | async,\n editWidgetConfiguration: editWidgetConfiguration$ | async,\n loading: loading$ | async,\n widgetData: widgetData$ | async\n } as obs\n \"\n>\n <div class=\"dashboard-detail-table\">\n <valtimo-carbon-table\n [data]=\"obs.widgetData\"\n [hideTableHeader]=\"true\"\n [loading]=\"obs.loading\"\n [tableConfig]=\"tableConfig\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addWidgetButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n description=\"{{ 'dashboardManagement.widgets.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.widgets.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-table>\n </div>\n\n <valtimo-widget-modal\n [dashboard]=\"obs.currentDashboard\"\n [editWidgetConfiguration]=\"obs.editWidgetConfiguration\"\n [showModal$]=\"showModal$\"\n [type]=\"modalType\"\n [widgetKey]=\"obs.editWidgetConfiguration?.key\"\n (saveEvent)=\"refreshWidgets()\"\n ></valtimo-widget-modal>\n\n <valtimo-edit-dashboard-modal\n [dashboard]=\"obs.currentDashboard\"\n [showModal$]=\"showEditDashboardModal$\"\n (saveEvent)=\"refreshDashboard()\"\n >\n </valtimo-edit-dashboard-modal>\n</ng-container>\n\n<ng-template #moveButtonsTemplate let-data=\"data\">\n <div class=\"move-buttons-container\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n (click)=\"onArrowUpClick(data)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"(lastItemIndex$ | async) === data.index\"\n [iconOnly]=\"true\"\n (click)=\"onArrowDownClick(data)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <button cdsButton=\"tertiary\" size=\"md\" (click)=\"editDashboard()\">\n {{ 'dashboardManagement.widgets.editButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<ng-template #addWidgetButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"addWidget()\">\n {{ 'dashboardManagement.widgets.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".dashboard-detail-table .move-buttons-container{width:100%;justify-content:flex-end;display:flex;flex-direction:row;right:-1rem;position:relative}.dashboard-detail-table .move-buttons-container button:not(:last-child){margin-right:8px}.dashboard-detail-table__actions{width:1px}.dashboard-detail-table-no-results{display:flex;justify-content:space-around;padding:6.25rem 0;gap:4rem}.dashboard-detail-table-no-results__title{font-size:1.75rem}.dashboard-detail-table-no-results__content{display:flex;flex-direction:column;justify-content:space-around}\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: i4.CarbonTableComponent, selector: "valtimo-carbon-table", inputs: ["tableConfig", "paginationConfig", "hideTableHeader", "data", "loading"], outputs: ["paginationChange", "rowClick", "search"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.RenderInPageHeaderDirective, selector: "[renderInPageHeader]" }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i7.WidgetModalComponent, selector: "valtimo-widget-modal", inputs: ["showModal$", "type", "dashboard", "widgetKey", "editWidgetConfiguration"], outputs: ["saveEvent"] }, { kind: "component", type: i8.EditDashboardModalComponent, selector: "valtimo-edit-dashboard-modal", inputs: ["showModal$", "dashboard"], outputs: ["saveEvent"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardDetailsComponent, decorators: [{
|
|
149
|
-
type: Component,
|
|
150
|
-
args: [{ encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngIf=\"\n tableConfig && {\n currentDashboard: currentDashboard$ | async,\n editWidgetConfiguration: editWidgetConfiguration$ | async,\n loading: loading$ | async,\n widgetData: widgetData$ | async\n } as obs\n \"\n>\n <div class=\"dashboard-detail-table\">\n <valtimo-carbon-table\n [data]=\"obs.widgetData\"\n [hideTableHeader]=\"true\"\n [loading]=\"obs.loading\"\n [tableConfig]=\"tableConfig\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addWidgetButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n description=\"{{ 'dashboardManagement.widgets.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.widgets.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-table>\n </div>\n\n <valtimo-widget-modal\n [dashboard]=\"obs.currentDashboard\"\n [editWidgetConfiguration]=\"obs.editWidgetConfiguration\"\n [showModal$]=\"showModal$\"\n [type]=\"modalType\"\n [widgetKey]=\"obs.editWidgetConfiguration?.key\"\n (saveEvent)=\"refreshWidgets()\"\n ></valtimo-widget-modal>\n\n <valtimo-edit-dashboard-modal\n [dashboard]=\"obs.currentDashboard\"\n [showModal$]=\"showEditDashboardModal$\"\n (saveEvent)=\"refreshDashboard()\"\n >\n </valtimo-edit-dashboard-modal>\n</ng-container>\n\n<ng-template #moveButtonsTemplate let-data=\"data\">\n <div class=\"move-buttons-container\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n (click)=\"onArrowUpClick(data)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"(lastItemIndex$ | async) === data.index\"\n [iconOnly]=\"true\"\n (click)=\"onArrowDownClick(data)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <button cdsButton=\"tertiary\" size=\"md\" (click)=\"editDashboard()\">\n {{ 'dashboardManagement.widgets.editButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<ng-template #addWidgetButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"addWidget()\">\n {{ 'dashboardManagement.widgets.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".dashboard-detail-table .move-buttons-container{width:100%;justify-content:flex-end;display:flex;flex-direction:row;right:-1rem;position:relative}.dashboard-detail-table .move-buttons-container button:not(:last-child){margin-right:8px}.dashboard-detail-table__actions{width:1px}.dashboard-detail-table-no-results{display:flex;justify-content:space-around;padding:6.25rem 0;gap:4rem}.dashboard-detail-table-no-results__title{font-size:1.75rem}.dashboard-detail-table-no-results__content{display:flex;flex-direction:column;justify-content:space-around}\n"] }]
|
|
151
|
-
}], ctorParameters: function () { return [{ type: i1.DashboardManagementService }, { type: i2.DatePipe }, { type: i3.IconService }, { type: i4.PageTitleService }, { type: i5.ActivatedRoute }, { type: i6.TranslateService }]; }, propDecorators: { moveButtonsTemplate: [{
|
|
152
|
-
type: ViewChild,
|
|
153
|
-
args: ['moveButtonsTemplate', { static: false }]
|
|
154
|
-
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvZGFzaGJvYXJkLWRldGFpbHMvZGFzaGJvYXJkLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvZGFzaGJvYXJkLWRldGFpbHMvZGFzaGJvYXJkLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFnQixTQUFTLEVBQWUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBRUwsVUFBVSxFQUNWLHVCQUF1QixHQUV4QixNQUFNLHFCQUFxQixDQUFDO0FBRzdCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBU3JGLE1BQU0sT0FBTyx5QkFBeUI7SUF1RXBDLFlBQ21CLDBCQUFzRCxFQUN0RCxRQUFrQixFQUNsQixXQUF3QixFQUN4QixnQkFBa0MsRUFDbEMsS0FBcUIsRUFDckIsZ0JBQWtDO1FBTGxDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDdEQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHFCQUFnQixHQUFo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O1FBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQW1DO1FBQ3RELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxXQUFXLENBQ2pCLGdCQUFtQyxFQUNuQyxNQUFjLEVBQ2QsTUFBYztRQUVkLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztzSEFoTFUseUJBQXlCOzBHQUF6Qix5QkFBeUIsZ0xDdEJ0QyxncEZBcUZBOzJGRC9EYSx5QkFBeUI7a0JBTHJDLFNBQVM7b0NBR08saUJBQWlCLENBQUMsSUFBSTs2UEFHYyxtQkFBbUI7c0JBQXJFLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBcnJvd0Rvd24xNiwgQXJyb3dVcDE2LCBFZGl0MTZ9IGZyb20gJ0BjYXJib24vaWNvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIENhcmJvblRhYmxlQ29uZmlnLFxuICBDb2x1bW5UeXBlLFxuICBjcmVhdGVDYXJib25UYWJsZUNvbmZpZyxcbiAgUGFnZVRpdGxlU2VydmljZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0Rhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb259IGZyb20gJ0B2YWx0aW1vL2Rhc2hib2FyZCc7XG5pbXBvcnQge0ljb25TZXJ2aWNlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGFzaGJvYXJkSXRlbSwgRGFzaGJvYXJkV2lkZ2V0LCBXaWRnZXRNb2RhbFR5cGV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0Rhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZERldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgnbW92ZUJ1dHRvbnNUZW1wbGF0ZScsIHtzdGF0aWM6IGZhbHNlfSkgbW92ZUJ1dHRvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgbW9kYWxUeXBlOiBXaWRnZXRNb2RhbFR5cGUgPSAnY3JlYXRlJztcbiAgcHVibGljIHRhYmxlQ29uZmlnITogQ2FyYm9uVGFibGVDb25maWc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGFzaGJvYXJkS2V5JCA9IHRoaXMucm91dGUucGFyYW1zLnBpcGUobWFwKHBhcmFtcyA9PiBwYXJhbXMuaWQpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaERhc2hib2FyZFN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnREYXNoYm9hcmQkOiBPYnNlcnZhYmxlPERhc2hib2FyZEl0ZW0gfCB1bmRlZmluZWQ+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fZGFzaGJvYXJkS2V5JCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgICB0aGlzLl9yZWZyZXNoRGFzaGJvYXJkU3ViamVjdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbZGFzaGJvYXJkS2V5XSkgPT4gdGhpcy5kYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZS5nZXREYXNoYm9hcmQoZGFzaGJvYXJkS2V5KSksXG4gICAgdGFwKChjdXJyZW50RGFzaGJvYXJkOiBEYXNoYm9hcmRJdGVtKSA9PiB7XG4gICAgICBpZiAoIWN1cnJlbnREYXNoYm9hcmQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBhZ2VUaXRsZVNlcnZpY2Uuc2V0Q3VzdG9tUGFnZVRpdGxlKGN1cnJlbnREYXNoYm9hcmQudGl0bGUpO1xuICAgICAgdGhpcy5wYWdlVGl0bGVTZXJ2aWNlLnNldEN1c3RvbVBhZ2VTdWJ0aXRsZShcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5tZXRhZGF0YScsIHtcbiAgICAgICAgICBjcmVhdGVkQnk6IGN1cnJlbnREYXNoYm9hcmQuY3JlYXRlZEJ5LFxuICAgICAgICAgIGNyZWF0ZWRPbjogdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oY3VycmVudERhc2hib2FyZC5jcmVhdGVkT24gPz8gJycsICdkL00veXksIEg6bW0nKSxcbiAgICAgICAgICBrZXk6IGN1cnJlbnREYXNoYm9hcmQua2V5LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBsYXN0SXRlbUluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgX3JlZnJlc2hXaWRnZXRzU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcbiAgICBkaXJlY3Rpb246ICdVUCcgfCAnRE9XTic7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgfSB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgX3dpZGdldERhdGE6IERhc2hib2FyZFdpZGdldFtdIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXREYXRhJDogT2JzZXJ2YWJsZTxEYXNoYm9hcmRXaWRnZXRbXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9kYXNoYm9hcmRLZXkkLFxuICAgIHRoaXMuX3JlZnJlc2hXaWRnZXRzU3ViamVjdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbZGFzaGJvYXJkS2V5LCByZWZyZXNoV2lkZ2V0c10pID0+IHtcbiAgICAgIHRoaXMubG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICAgIGlmICghdGhpcy5fd2lkZ2V0RGF0YSB8fCAhcmVmcmVzaFdpZGdldHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UuZ2V0RGFzaGJvYXJkV2lkZ2V0Q29uZmlndXJhdGlvbihkYXNoYm9hcmRLZXkpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7ZGlyZWN0aW9uLCBpbmRleH0gPSByZWZyZXNoV2lkZ2V0cztcblxuICAgICAgcmV0dXJuIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UudXBkYXRlRGFzaGJvYXJkV2lkZ2V0Q29uZmlndXJhdGlvbnMoXG4gICAgICAgIGRhc2hib2FyZEtleSxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnVVAnXG4gICAgICAgICAgPyB0aGlzLnN3YXBXaWRnZXRzKHRoaXMuX3dpZGdldERhdGEsIGluZGV4IC0gMSwgaW5kZXgpXG4gICAgICAgICAgOiB0aGlzLnN3YXBXaWRnZXRzKHRoaXMuX3dpZGdldERhdGEsIGluZGV4LCBpbmRleCArIDEpXG4gICAgICApO1xuICAgIH0pLFxuICAgIHRhcCgoZGF0YTogRGFzaGJvYXJkV2lkZ2V0W10pID0+IHtcbiAgICAgIHRoaXMuX3dpZGdldERhdGEgPSBkYXRhO1xuICAgICAgdGhpcy5sYXN0SXRlbUluZGV4JC5uZXh0KGRhdGEubGVuZ3RoIC0gMSk7XG4gICAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNob3dNb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dFZGl0RGFzaGJvYXJkTW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVkaXRXaWRnZXRDb25maWd1cmF0aW9uJCA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxEYXNoYm9hcmRXaWRnZXRDb25maWd1cmF0aW9uIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZTogRGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRlUGlwZTogRGF0ZVBpcGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlVGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVyQWxsKFtBcnJvd0Rvd24xNiwgQXJyb3dVcDE2LCBFZGl0MTZdKTtcbiAgICB0aGlzLnNldFRhYmxlQ29uZmlnKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkV2lkZ2V0KCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdFdpZGdldENvbmZpZ3VyYXRpb24kLm5leHQobnVsbCk7XG4gICAgdGhpcy5tb2RhbFR5cGUgPSAnY3JlYXRlJztcbiAgICB0aGlzLnNob3dNb2RhbCgpO1xuICB9XG5cbiAgcHVibGljIGVkaXREYXNoYm9hcmQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RWRpdERhc2hib2FyZE1vZGFsKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaFdpZGdldHMoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVmcmVzaFdpZGdldHNTdWJqZWN0JC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2hEYXNoYm9hcmQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVmcmVzaERhc2hib2FyZFN1YmplY3QkLm5leHQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgb25BcnJvd0Rvd25DbGljayhkYXRhOiB7aXRlbTogRGFzaGJvYXJkV2lkZ2V0OyBpbmRleDogbnVtYmVyfSk6IHZvaWQge1xuICAgIHRoaXMuX3JlZnJlc2hXaWRnZXRzU3ViamVjdCQubmV4dCh7ZGlyZWN0aW9uOiAnRE9XTicsIGluZGV4OiBkYXRhLmluZGV4fSk7XG4gIH1cblxuICBwdWJsaWMgb25BcnJvd1VwQ2xpY2soZGF0YToge2l0ZW06IERhc2hib2FyZFdpZGdldDsgaW5kZXg6IG51bWJlcn0pOiB2b2lkIHtcbiAgICB0aGlzLl9yZWZyZXNoV2lkZ2V0c1N1YmplY3QkLm5leHQoe2RpcmVjdGlvbjogJ1VQJywgaW5kZXg6IGRhdGEuaW5kZXh9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFibGVDb25maWcoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZUNvbmZpZyA9IGNyZWF0ZUNhcmJvblRhYmxlQ29uZmlnKHtcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29sdW1uVHlwZTogQ29sdW1uVHlwZS5URVhULFxuICAgICAgICAgIGZpZWxkTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICB0cmFuc2xhdGlvbktleTogJ05hbWUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY29sdW1uVHlwZTogQ29sdW1uVHlwZS5URU1QTEFURSxcbiAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5tb3ZlQnV0dG9uc1RlbXBsYXRlLFxuICAgICAgICAgIGNsYXNzTmFtZTogJ2Rhc2hib2FyZC1kZXRhaWwtdGFibGVfX2FjdGlvbnMnLFxuICAgICAgICAgIGZpZWxkTmFtZTogJycsXG4gICAgICAgICAgdHJhbnNsYXRpb25LZXk6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY29sdW1uVHlwZTogQ29sdW1uVHlwZS5BQ1RJT04sXG4gICAgICAgICAgY2xhc3NOYW1lOiAnZGFzaGJvYXJkLWRldGFpbC10YWJsZV9fYWN0aW9ucycsXG4gICAgICAgICAgZmllbGROYW1lOiAnJyxcbiAgICAgICAgICB0cmFuc2xhdGlvbktleTogJycsXG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhY3Rpb25OYW1lOiAnRWRpdCcsXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLmVkaXRXaWRnZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGFjdGlvbk5hbWU6ICdEZWxldGUnLFxuICAgICAgICAgICAgICBjYWxsYmFjazogdGhpcy5kZWxldGVXaWRnZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlZGl0V2lkZ2V0KGV2ZW50OiBEYXNoYm9hcmRXaWRnZXRDb25maWd1cmF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0V2lkZ2V0Q29uZmlndXJhdGlvbiQubmV4dCh7Li4uZXZlbnR9KTtcbiAgICB0aGlzLm1vZGFsVHlwZSA9ICdlZGl0JztcbiAgICB0aGlzLnNob3dNb2RhbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVXaWRnZXQoZXZlbnQ6IERhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRXaWRnZXRDb25maWd1cmF0aW9uJC5uZXh0KHsuLi5ldmVudH0pO1xuICAgIHRoaXMubW9kYWxUeXBlID0gJ2RlbGV0ZSc7XG4gICAgdGhpcy5zaG93TW9kYWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd01vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd01vZGFsJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93RWRpdERhc2hib2FyZE1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0VkaXREYXNoYm9hcmRNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc3dhcFdpZGdldHMoXG4gICAgZGFzaGJvYXJkV2lkZ2V0czogRGFzaGJvYXJkV2lkZ2V0W10sXG4gICAgaW5kZXgxOiBudW1iZXIsXG4gICAgaW5kZXgyOiBudW1iZXJcbiAgKTogRGFzaGJvYXJkV2lkZ2V0W10ge1xuICAgIGNvbnN0IHRlbXAgPSBbLi4uZGFzaGJvYXJkV2lkZ2V0c107XG4gICAgdGVtcFtpbmRleDFdID0gdGVtcC5zcGxpY2UoaW5kZXgyLCAxLCB0ZW1wW2luZGV4MV0pWzBdO1xuXG4gICAgcmV0dXJuIHRlbXA7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJcbiAgICB0YWJsZUNvbmZpZyAmJiB7XG4gICAgICBjdXJyZW50RGFzaGJvYXJkOiBjdXJyZW50RGFzaGJvYXJkJCB8IGFzeW5jLFxuICAgICAgZWRpdFdpZGdldENvbmZpZ3VyYXRpb246IGVkaXRXaWRnZXRDb25maWd1cmF0aW9uJCB8IGFzeW5jLFxuICAgICAgbG9hZGluZzogbG9hZGluZyQgfCBhc3luYyxcbiAgICAgIHdpZGdldERhdGE6IHdpZGdldERhdGEkIHwgYXN5bmNcbiAgICB9IGFzIG9ic1xuICBcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWRldGFpbC10YWJsZVwiPlxuICAgIDx2YWx0aW1vLWNhcmJvbi10YWJsZVxuICAgICAgW2RhdGFdPVwib2JzLndpZGdldERhdGFcIlxuICAgICAgW2hpZGVUYWJsZUhlYWRlcl09XCJ0cnVlXCJcbiAgICAgIFtsb2FkaW5nXT1cIm9icy5sb2FkaW5nXCJcbiAgICAgIFt0YWJsZUNvbmZpZ109XCJ0YWJsZUNvbmZpZ1wiXG4gICAgPlxuICAgICAgPGRpdiBjYXJib25Ub29sYmFyQ29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGRXaWRnZXRCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICAgIFthY3Rpb25dPVwiYWRkV2lkZ2V0QnV0dG9uXCJcbiAgICAgICAgZGVzY3JpcHRpb249XCJ7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLm5vUmVzdWx0cy5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0aXRsZT1cInt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMubm9SZXN1bHRzLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gICAgPC92YWx0aW1vLWNhcmJvbi10YWJsZT5cbiAgPC9kaXY+XG5cbiAgPHZhbHRpbW8td2lkZ2V0LW1vZGFsXG4gICAgW2Rhc2hib2FyZF09XCJvYnMuY3VycmVudERhc2hib2FyZFwiXG4gICAgW2VkaXRXaWRnZXRDb25maWd1cmF0aW9uXT1cIm9icy5lZGl0V2lkZ2V0Q29uZmlndXJhdGlvblwiXG4gICAgW3Nob3dNb2RhbCRdPVwic2hvd01vZGFsJFwiXG4gICAgW3R5cGVdPVwibW9kYWxUeXBlXCJcbiAgICBbd2lkZ2V0S2V5XT1cIm9icy5lZGl0V2lkZ2V0Q29uZmlndXJhdGlvbj8ua2V5XCJcbiAgICAoc2F2ZUV2ZW50KT1cInJlZnJlc2hXaWRnZXRzKClcIlxuICA+PC92YWx0aW1vLXdpZGdldC1tb2RhbD5cblxuICA8dmFsdGltby1lZGl0LWRhc2hib2FyZC1tb2RhbFxuICAgIFtkYXNoYm9hcmRdPVwib2JzLmN1cnJlbnREYXNoYm9hcmRcIlxuICAgIFtzaG93TW9kYWwkXT1cInNob3dFZGl0RGFzaGJvYXJkTW9kYWwkXCJcbiAgICAoc2F2ZUV2ZW50KT1cInJlZnJlc2hEYXNoYm9hcmQoKVwiXG4gID5cbiAgPC92YWx0aW1vLWVkaXQtZGFzaGJvYXJkLW1vZGFsPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbW92ZUJ1dHRvbnNUZW1wbGF0ZSBsZXQtZGF0YT1cImRhdGFcIj5cbiAgPGRpdiBjbGFzcz1cIm1vdmUtYnV0dG9ucy1jb250YWluZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjZHNCdXR0b249XCJ0ZXJ0aWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGF0YS5pbmRleCA9PT0gMFwiXG4gICAgICBbaWNvbk9ubHldPVwidHJ1ZVwiXG4gICAgICAoY2xpY2spPVwib25BcnJvd1VwQ2xpY2soZGF0YSlcIlxuICAgID5cbiAgICAgIDxzdmcgY2RzSWNvbj1cImFycm93LS11cFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIGNkc0J1dHRvbj1cInRlcnRpYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIobGFzdEl0ZW1JbmRleCQgfCBhc3luYykgPT09IGRhdGEuaW5kZXhcIlxuICAgICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cIm9uQXJyb3dEb3duQ2xpY2soZGF0YSlcIlxuICAgID5cbiAgICAgIDxzdmcgY2RzSWNvbj1cImFycm93LS1kb3duXCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgcmVuZGVySW5QYWdlSGVhZGVyPlxuICA8bmctdGVtcGxhdGU+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJ0ZXJ0aWFyeVwiIHNpemU9XCJtZFwiIChjbGljayk9XCJlZGl0RGFzaGJvYXJkKClcIj5cbiAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZWRpdEJ1dHRvbicgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImVkaXRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2FkZFdpZGdldEJ1dHRvbj5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImxvYWRpbmckIHwgYXN5bmNcIiAoY2xpY2spPVwiYWRkV2lkZ2V0KClcIj5cbiAgICB7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmFkZCcgfCB0cmFuc2xhdGUgfX1cblxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJhZGRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import { ColumnType, createCarbonTableConfig } from '@valtimo/components';
|
|
4
|
-
import { BehaviorSubject, finalize } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../services/dashboard-management.service";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
import * as i3 from "@angular/router";
|
|
9
|
-
import * as i4 from "carbon-components-angular";
|
|
10
|
-
import * as i5 from "@valtimo/components";
|
|
11
|
-
import * as i6 from "@angular/common";
|
|
12
|
-
import * as i7 from "@ngx-translate/core";
|
|
13
|
-
export class DashboardManagementComponent {
|
|
14
|
-
constructor(dashboardManagementService, fb, router) {
|
|
15
|
-
this.dashboardManagementService = dashboardManagementService;
|
|
16
|
-
this.fb = fb;
|
|
17
|
-
this.router = router;
|
|
18
|
-
this.deleteRowKey$ = new BehaviorSubject('');
|
|
19
|
-
this.openModal$ = new BehaviorSubject(false);
|
|
20
|
-
this.showDeleteModal$ = new BehaviorSubject(false);
|
|
21
|
-
this.tableData$ = this.dashboardManagementService.dashboards$;
|
|
22
|
-
this.tableConfig = createCarbonTableConfig({
|
|
23
|
-
fields: [
|
|
24
|
-
{
|
|
25
|
-
columnType: ColumnType.TEXT,
|
|
26
|
-
fieldName: 'title',
|
|
27
|
-
translationKey: 'dashboardManagement.name',
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
columnType: ColumnType.TEXT,
|
|
31
|
-
fieldName: 'description',
|
|
32
|
-
translationKey: 'dashboardManagement.description',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
columnType: ColumnType.TEXT,
|
|
36
|
-
fieldName: 'key',
|
|
37
|
-
translationKey: 'dashboardManagement.key',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
actions: [
|
|
41
|
-
{
|
|
42
|
-
actionName: 'Delete',
|
|
43
|
-
callback: this.deleteDashboard.bind(this),
|
|
44
|
-
type: 'danger',
|
|
45
|
-
},
|
|
46
|
-
],
|
|
47
|
-
className: 'valtimo-dashboard-management__actions',
|
|
48
|
-
columnType: ColumnType.ACTION,
|
|
49
|
-
translationKey: '',
|
|
50
|
-
fieldName: '',
|
|
51
|
-
sortable: false,
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
ngOnInit() {
|
|
57
|
-
this.dashboardManagementService.loadData();
|
|
58
|
-
this.form = this.fb.group({
|
|
59
|
-
description: this.fb.control('', [Validators.required]),
|
|
60
|
-
title: this.fb.control('', [Validators.required]),
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
closeModal() {
|
|
64
|
-
this.openModal$.next(false);
|
|
65
|
-
this.form.reset();
|
|
66
|
-
}
|
|
67
|
-
createDashboard() {
|
|
68
|
-
const control = this.form.get('title');
|
|
69
|
-
if (!control || !control.valid) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const newDashboard = this.form.getRawValue();
|
|
73
|
-
this.dashboardManagementService.dispatchAction(this.dashboardManagementService.createDashboard(newDashboard).pipe(finalize(() => {
|
|
74
|
-
this.closeModal();
|
|
75
|
-
})));
|
|
76
|
-
}
|
|
77
|
-
onConfirmEvent(dashboardKey) {
|
|
78
|
-
this.dashboardManagementService.dispatchAction(this.dashboardManagementService.deleteDashboard(dashboardKey).pipe(finalize(() => {
|
|
79
|
-
this.closeModal();
|
|
80
|
-
})));
|
|
81
|
-
}
|
|
82
|
-
getControlInvalid(controlKey) {
|
|
83
|
-
const control = this.form.get(controlKey);
|
|
84
|
-
if (!control) {
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
return !control.valid && !control.pristine;
|
|
88
|
-
}
|
|
89
|
-
openModal() {
|
|
90
|
-
this.openModal$.next(true);
|
|
91
|
-
}
|
|
92
|
-
onRowClick(item) {
|
|
93
|
-
this.router.navigate([`/dashboard-management/${item.key}`]);
|
|
94
|
-
}
|
|
95
|
-
deleteDashboard(dashboard) {
|
|
96
|
-
this.deleteRowKey$.next(dashboard.key);
|
|
97
|
-
this.showDeleteModal$.next(true);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
DashboardManagementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardManagementComponent, deps: [{ token: i1.DashboardManagementService }, { token: i2.FormBuilder }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
101
|
-
DashboardManagementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DashboardManagementComponent, selector: "ng-component", ngImport: i0, template: "<ng-container *ngIf=\"tableData$ | async as data\">\n <valtimo-carbon-table\n [data]=\"data.items\"\n [loading]=\"data.loading\"\n [tableConfig]=\"tableConfig\"\n (rowClick)=\"onRowClick($event)\"\n class=\"valtimo-dashboard-management__table\"\n >\n <ng-container carbonTableTitle> {{ 'dashboardManagement.title' | translate }} </ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addDashboardButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addDashboardButton\"\n description=\"{{ 'dashboardManagement.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-table>\n</ng-container>\n\n<cds-modal\n valtimoIbmModal\n [open]=\"openModal$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.addDashboard' | translate }}\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'dashboardManagement.addDashboard' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\" class=\"valtimo-dashboard-management__form\">\n <cds-label [invalid]=\"getControlInvalid('title')\">\n {{ 'dashboardManagement.addModal.name' | translate }}\n\n <input\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"getControlInvalid('title')\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'dashboardManagement.addModal.namePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label\n [helperText]=\"'dashboardManagement.addModal.descriptionHelperText' | translate\"\n [invalid]=\"getControlInvalid('description')\"\n >\n {{ 'dashboardManagement.description' | translate }}\n\n <input\n [invalid]=\"getControlInvalid('description')\"\n formControlName=\"description\"\n cdsText\n placeholder=\"{{ 'dashboardManagement.addModal.descriptionPlaceholder' | translate }}\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" cdsButton=\"primary\" (click)=\"createDashboard()\">\n {{ 'dashboardManagement.create' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dashboardManagement.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #addDashboardButton>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'dashboardManagement.addDashboard' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n", styles: [".valtimo-dashboard-management__actions{width:1px}.valtimo-dashboard-management__form>*:not(:last-child){margin-bottom:32px}\n"], dependencies: [{ kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i5.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: i5.CarbonTableComponent, selector: "valtimo-carbon-table", inputs: ["tableConfig", "paginationConfig", "hideTableHeader", "data", "loading"], outputs: ["paginationChange", "rowClick", "search"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i4.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i4.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i4.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i4.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i4.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm"], outputs: ["confirmEvent"] }, { kind: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardManagementComponent, decorators: [{
|
|
103
|
-
type: Component,
|
|
104
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"tableData$ | async as data\">\n <valtimo-carbon-table\n [data]=\"data.items\"\n [loading]=\"data.loading\"\n [tableConfig]=\"tableConfig\"\n (rowClick)=\"onRowClick($event)\"\n class=\"valtimo-dashboard-management__table\"\n >\n <ng-container carbonTableTitle> {{ 'dashboardManagement.title' | translate }} </ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addDashboardButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addDashboardButton\"\n description=\"{{ 'dashboardManagement.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-table>\n</ng-container>\n\n<cds-modal\n valtimoIbmModal\n [open]=\"openModal$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.addDashboard' | translate }}\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'dashboardManagement.addDashboard' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\" class=\"valtimo-dashboard-management__form\">\n <cds-label [invalid]=\"getControlInvalid('title')\">\n {{ 'dashboardManagement.addModal.name' | translate }}\n\n <input\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"getControlInvalid('title')\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'dashboardManagement.addModal.namePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label\n [helperText]=\"'dashboardManagement.addModal.descriptionHelperText' | translate\"\n [invalid]=\"getControlInvalid('description')\"\n >\n {{ 'dashboardManagement.description' | translate }}\n\n <input\n [invalid]=\"getControlInvalid('description')\"\n formControlName=\"description\"\n cdsText\n placeholder=\"{{ 'dashboardManagement.addModal.descriptionPlaceholder' | translate }}\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" cdsButton=\"primary\" (click)=\"createDashboard()\">\n {{ 'dashboardManagement.create' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dashboardManagement.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #addDashboardButton>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'dashboardManagement.addDashboard' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n", styles: [".valtimo-dashboard-management__actions{width:1px}.valtimo-dashboard-management__form>*:not(:last-child){margin-bottom:32px}\n"] }]
|
|
105
|
-
}], ctorParameters: function () { return [{ type: i1.DashboardManagementService }, { type: i2.FormBuilder }, { type: i3.Router }]; } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1hbmFnZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvZGFzaGJvYXJkLW1hbmFnZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvZGFzaGJvYXJkLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQXVELFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hHLE9BQU8sRUFBb0IsVUFBVSxFQUFFLHVCQUF1QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDM0YsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQWEsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVczRCxNQUFNLE9BQU8sNEJBQTRCO0lBMEN2QyxZQUNtQiwwQkFBc0QsRUFDdEQsRUFBZSxFQUNmLE1BQWM7UUFGZCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBNUNqQixrQkFBYSxHQUE0QixJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRSxlQUFVLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLHFCQUFnQixHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4RSxl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LENBQUM7U0FDYjtRQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUM3QyxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBbUI7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sZUFBZSxDQUFDLFNBQXdCO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7O3lIQTVHVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixvRENkekMsNHJHQTRGQTsyRkQ5RWEsNEJBQTRCO2tCQU54QyxTQUFTO3NDQUdTLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0NhcmJvblRhYmxlQ29uZmlnLCBDb2x1bW5UeXBlLCBjcmVhdGVDYXJib25UYWJsZUNvbmZpZ30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZmluYWxpemUsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtEYXNoYm9hcmRJdGVtfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtEYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRNYW5hZ2VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IGRlbGV0ZVJvd0tleSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIHB1YmxpYyByZWFkb25seSBvcGVuTW9kYWwkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dEZWxldGVNb2RhbCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZURhdGEkOiBPYnNlcnZhYmxlPHtpdGVtczogRGFzaGJvYXJkSXRlbVtdIHwgbnVsbDsgbG9hZGluZzogYm9vbGVhbn0+ID1cbiAgICB0aGlzLmRhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlLmRhc2hib2FyZHMkO1xuICBwdWJsaWMgdGFibGVDb25maWc6IENhcmJvblRhYmxlQ29uZmlnID0gY3JlYXRlQ2FyYm9uVGFibGVDb25maWcoe1xuICAgIGZpZWxkczogW1xuICAgICAge1xuICAgICAgICBjb2x1bW5UeXBlOiBDb2x1bW5UeXBlLlRFWFQsXG4gICAgICAgIGZpZWxkTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgdHJhbnNsYXRpb25LZXk6ICdkYXNoYm9hcmRNYW5hZ2VtZW50Lm5hbWUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29sdW1uVHlwZTogQ29sdW1uVHlwZS5URVhULFxuICAgICAgICBmaWVsZE5hbWU6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgIHRyYW5zbGF0aW9uS2V5OiAnZGFzaGJvYXJkTWFuYWdlbWVudC5kZXNjcmlwdGlvbicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2x1bW5UeXBlOiBDb2x1bW5UeXBlLlRFWFQsXG4gICAgICAgIGZpZWxkTmFtZTogJ2tleScsXG4gICAgICAgIHRyYW5zbGF0aW9uS2V5OiAnZGFzaGJvYXJkTWFuYWdlbWVudC5rZXknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbk5hbWU6ICdEZWxldGUnLFxuICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMuZGVsZXRlRGFzaGJvYXJkLmJpbmQodGhpcyksXG4gICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6ICd2YWx0aW1vLWRhc2hib2FyZC1tYW5hZ2VtZW50X19hY3Rpb25zJyxcbiAgICAgICAgY29sdW1uVHlwZTogQ29sdW1uVHlwZS5BQ1RJT04sXG4gICAgICAgIHRyYW5zbGF0aW9uS2V5OiAnJyxcbiAgICAgICAgZmllbGROYW1lOiAnJyxcbiAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlOiBEYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZS5sb2FkRGF0YSgpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIHRpdGxlOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Nb2RhbCQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRGFzaGJvYXJkKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSB0aGlzLmZvcm0uZ2V0KCd0aXRsZScpO1xuICAgIGlmICghY29udHJvbCB8fCAhY29udHJvbC52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0Rhc2hib2FyZDogRGFzaGJvYXJkSXRlbSA9IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpO1xuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UuZGlzcGF0Y2hBY3Rpb24oXG4gICAgICB0aGlzLmRhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlLmNyZWF0ZURhc2hib2FyZChuZXdEYXNoYm9hcmQpLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uQ29uZmlybUV2ZW50KGRhc2hib2FyZEtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZS5kaXNwYXRjaEFjdGlvbihcbiAgICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UuZGVsZXRlRGFzaGJvYXJkKGRhc2hib2FyZEtleSkucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbEludmFsaWQoY29udHJvbEtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IHRoaXMuZm9ybS5nZXQoY29udHJvbEtleSk7XG5cbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiAhY29udHJvbC52YWxpZCAmJiAhY29udHJvbC5wcmlzdGluZTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuTW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25Sb3dDbGljayhpdGVtOiBEYXNoYm9hcmRJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvZGFzaGJvYXJkLW1hbmFnZW1lbnQvJHtpdGVtLmtleX1gXSk7XG4gIH1cblxuICBwcml2YXRlIGRlbGV0ZURhc2hib2FyZChkYXNoYm9hcmQ6IERhc2hib2FyZEl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZVJvd0tleSQubmV4dChkYXNoYm9hcmQua2V5KTtcbiAgICB0aGlzLnNob3dEZWxldGVNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlRGF0YSQgfCBhc3luYyBhcyBkYXRhXCI+XG4gIDx2YWx0aW1vLWNhcmJvbi10YWJsZVxuICAgIFtkYXRhXT1cImRhdGEuaXRlbXNcIlxuICAgIFtsb2FkaW5nXT1cImRhdGEubG9hZGluZ1wiXG4gICAgW3RhYmxlQ29uZmlnXT1cInRhYmxlQ29uZmlnXCJcbiAgICAocm93Q2xpY2spPVwib25Sb3dDbGljaygkZXZlbnQpXCJcbiAgICBjbGFzcz1cInZhbHRpbW8tZGFzaGJvYXJkLW1hbmFnZW1lbnRfX3RhYmxlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgY2FyYm9uVGFibGVUaXRsZT4ge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQudGl0bGUnIHwgdHJhbnNsYXRlIH19IDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjYXJib25Ub29sYmFyQ29udGVudD5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRkRGFzaGJvYXJkQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbYWN0aW9uXT1cImFkZERhc2hib2FyZEJ1dHRvblwiXG4gICAgICBkZXNjcmlwdGlvbj1cInt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50Lm5vUmVzdWx0cy5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdGl0bGU9XCJ7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC5ub1Jlc3VsdHMudGl0bGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gIDwvdmFsdGltby1jYXJib24tdGFibGU+XG48L25nLWNvbnRhaW5lcj5cblxuPGNkcy1tb2RhbFxuICB2YWx0aW1vSWJtTW9kYWxcbiAgW29wZW5dPVwib3Blbk1vZGFsJCB8IGFzeW5jXCJcbiAgc2hvd0Zvb3Rlcj1cInRydWVcIlxuICB0aXRsZT1cInt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LmFkZERhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cIlxuPlxuICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz5cbiAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LmFkZERhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2gzPlxuICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG5cbiAgPHNlY3Rpb24gY2RzTW9kYWxDb250ZW50PlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwidmFsdGltby1kYXNoYm9hcmQtbWFuYWdlbWVudF9fZm9ybVwiPlxuICAgICAgPGNkcy1sYWJlbCBbaW52YWxpZF09XCJnZXRDb250cm9sSW52YWxpZCgndGl0bGUnKVwiPlxuICAgICAgICB7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC5hZGRNb2RhbC5uYW1lJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiZ2V0Q29udHJvbEludmFsaWQoJ3RpdGxlJylcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcbiAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC5hZGRNb2RhbC5uYW1lUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgLz5cbiAgICAgIDwvY2RzLWxhYmVsPlxuXG4gICAgICA8Y2RzLWxhYmVsXG4gICAgICAgIFtoZWxwZXJUZXh0XT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LmFkZE1vZGFsLmRlc2NyaXB0aW9uSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaW52YWxpZF09XCJnZXRDb250cm9sSW52YWxpZCgnZGVzY3JpcHRpb24nKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIFtpbnZhbGlkXT1cImdldENvbnRyb2xJbnZhbGlkKCdkZXNjcmlwdGlvbicpXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQuYWRkTW9kYWwuZGVzY3JpcHRpb25QbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAvPlxuICAgICAgPC9jZHMtbGFiZWw+XG4gICAgPC9mb3JtPlxuICA8L3NlY3Rpb24+XG5cbiAgPGNkcy1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJnaG9zdFwiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj5cbiAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInRoaXMuZm9ybS5pbnZhbGlkXCIgY2RzQnV0dG9uPVwicHJpbWFyeVwiIChjbGljayk9XCJjcmVhdGVEYXNoYm9hcmQoKVwiPlxuICAgICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQuY3JlYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L2Nkcy1tb2RhbD5cblxuPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gIGNvbmZpcm1CdXR0b25UZXh0VHJhbnNsYXRpb25LZXk9XCJkYXNoYm9hcmRNYW5hZ2VtZW50LmRlbGV0ZU1vZGFsLmNvbmZpcm1cIlxuICBjb25maXJtQnV0dG9uVHlwZT1cImRhbmdlclwiXG4gIGNvbnRlbnRUcmFuc2xhdGlvbktleT1cImRhc2hib2FyZE1hbmFnZW1lbnQuZGVsZXRlTW9kYWxDb250ZW50XCJcbiAgW291dHB1dE9uQ29uZmlybV09XCJkZWxldGVSb3dLZXkkIHwgYXN5bmNcIlxuICBbc2hvd01vZGFsU3ViamVjdCRdPVwic2hvd0RlbGV0ZU1vZGFsJFwiXG4gIHRpdGxlVHJhbnNsYXRpb25LZXk9XCJkYXNoYm9hcmRNYW5hZ2VtZW50LmRlbGV0ZVwiXG4gIChjb25maXJtRXZlbnQpPVwib25Db25maXJtRXZlbnQoJGV2ZW50KVwiXG4+PC92YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbD5cblxuPG5nLXRlbXBsYXRlICNhZGREYXNoYm9hcmRCdXR0b24+XG4gIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuTW9kYWwoKVwiPlxuICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LmFkZERhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cblxuICAgIDxzdmcgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
17
|
-
import { NotificationService } from 'carbon-components-angular';
|
|
18
|
-
import { BehaviorSubject } from 'rxjs';
|
|
19
|
-
import { Validators } from '@angular/forms';
|
|
20
|
-
import { CARBON_CONSTANTS } from '@valtimo/components';
|
|
21
|
-
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "@angular/forms";
|
|
23
|
-
import * as i2 from "../../services/dashboard-management.service";
|
|
24
|
-
import * as i3 from "carbon-components-angular";
|
|
25
|
-
import * as i4 from "@angular/common";
|
|
26
|
-
import * as i5 from "@ngx-translate/core";
|
|
27
|
-
export class EditDashboardModalComponent {
|
|
28
|
-
constructor(fb, dashboardManagementService) {
|
|
29
|
-
this.fb = fb;
|
|
30
|
-
this.dashboardManagementService = dashboardManagementService;
|
|
31
|
-
this.saveEvent = new EventEmitter();
|
|
32
|
-
this.open$ = new BehaviorSubject(false);
|
|
33
|
-
this.disabled$ = new BehaviorSubject(false);
|
|
34
|
-
this.editDashboardForm = this.fb.group({
|
|
35
|
-
title: this.fb.control('', [Validators.required]),
|
|
36
|
-
description: this.fb.control('', [Validators.required]),
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
get dashboardTitle() {
|
|
40
|
-
return this.editDashboardForm.get('title');
|
|
41
|
-
}
|
|
42
|
-
get dashboardDescription() {
|
|
43
|
-
return this.editDashboardForm.get('description');
|
|
44
|
-
}
|
|
45
|
-
ngOnInit() {
|
|
46
|
-
this.openOpenSubscription();
|
|
47
|
-
}
|
|
48
|
-
closeModal() {
|
|
49
|
-
this.open$.next(false);
|
|
50
|
-
setTimeout(() => {
|
|
51
|
-
this.editDashboardForm.reset();
|
|
52
|
-
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
53
|
-
}
|
|
54
|
-
saveDashboard() {
|
|
55
|
-
this.disable();
|
|
56
|
-
this.dashboardManagementService
|
|
57
|
-
.updateDashboard({
|
|
58
|
-
description: this.dashboardDescription.value,
|
|
59
|
-
title: this.dashboardTitle.value,
|
|
60
|
-
key: this.dashboard.key,
|
|
61
|
-
})
|
|
62
|
-
.subscribe(() => {
|
|
63
|
-
this.saveEvent.emit();
|
|
64
|
-
this.closeModal();
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
setEditDashboardForm() {
|
|
68
|
-
if (this.dashboard) {
|
|
69
|
-
this.dashboardTitle?.setValue(this.dashboard.title);
|
|
70
|
-
this.dashboardDescription?.setValue(this.dashboard.description);
|
|
71
|
-
}
|
|
72
|
-
this.enable();
|
|
73
|
-
}
|
|
74
|
-
openOpenSubscription() {
|
|
75
|
-
this._openSubscription = this.showModal$.subscribe(show => {
|
|
76
|
-
this.setEditDashboardForm();
|
|
77
|
-
this.open$.next(show);
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
disable() {
|
|
81
|
-
this.disabled$.next(true);
|
|
82
|
-
}
|
|
83
|
-
enable() {
|
|
84
|
-
this.disabled$.next(false);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
EditDashboardModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EditDashboardModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DashboardManagementService }], target: i0.ɵɵFactoryTarget.Component });
|
|
88
|
-
EditDashboardModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EditDashboardModalComponent, selector: "valtimo-edit-dashboard-modal", inputs: { showModal$: "showModal$", dashboard: "dashboard" }, outputs: { saveEvent: "saveEvent" }, providers: [NotificationService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{disabled: disabled$ | async} as obs\"\n valtimoCdsModal\n [open]=\"open$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.widgets.editDashboard' | translate }}\"\n class=\"edit-dashboard-modal\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dashboardManagement.widgets.editDashboard' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"editDashboardFormTemplate;context:{obs: obs}\"></ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"editDashboardButtons;context:{obs: obs}\"></ng-container>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #editDashboardFormTemplate let-obs=\"obs\">\n <form *ngIf=\"editDashboardForm\" [formGroup]=\"editDashboardForm\" class=\"dashboard-modal__form\">\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.dashboardTitle' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n formControlName=\"title\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [helperText]=\"'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n [invalidText]=\"\n 'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\n \"\n >\n {{ 'dashboardManagement.widgets.form.dashboardDescription' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n formControlName=\"description\"\n />\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #editDashboardButtons let-obs=\"obs\">\n <button cdsButton=\"ghost\" [disabled]=\"obs.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"editDashboardForm.invalid || obs.disabled\"\n (click)=\"saveDashboard()\"\n >\n {{ 'dashboardManagement.widgets.complete' | translate }}\n </button>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.edit-dashboard-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end}.edit-dashboard-modal .form__element{width:100%;margin-bottom:32px}\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EditDashboardModalComponent, decorators: [{
|
|
90
|
-
type: Component,
|
|
91
|
-
args: [{ selector: 'valtimo-edit-dashboard-modal', encapsulation: ViewEncapsulation.None, providers: [NotificationService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{disabled: disabled$ | async} as obs\"\n valtimoCdsModal\n [open]=\"open$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.widgets.editDashboard' | translate }}\"\n class=\"edit-dashboard-modal\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dashboardManagement.widgets.editDashboard' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"editDashboardFormTemplate;context:{obs: obs}\"></ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"editDashboardButtons;context:{obs: obs}\"></ng-container>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #editDashboardFormTemplate let-obs=\"obs\">\n <form *ngIf=\"editDashboardForm\" [formGroup]=\"editDashboardForm\" class=\"dashboard-modal__form\">\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.dashboardTitle' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n formControlName=\"title\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [helperText]=\"'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n [invalidText]=\"\n 'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\n \"\n >\n {{ 'dashboardManagement.widgets.form.dashboardDescription' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n formControlName=\"description\"\n />\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #editDashboardButtons let-obs=\"obs\">\n <button cdsButton=\"ghost\" [disabled]=\"obs.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"editDashboardForm.invalid || obs.disabled\"\n (click)=\"saveDashboard()\"\n >\n {{ 'dashboardManagement.widgets.complete' | translate }}\n </button>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.edit-dashboard-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end}.edit-dashboard-modal .form__element{width:100%;margin-bottom:32px}\n"] }]
|
|
92
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.DashboardManagementService }]; }, propDecorators: { showModal$: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], dashboard: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], saveEvent: [{
|
|
97
|
-
type: Output
|
|
98
|
-
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1kYXNoYm9hcmQtbW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9lZGl0LWRhc2hib2FyZC1tb2RhbC9lZGl0LWRhc2hib2FyZC1tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2VkaXQtZGFzaGJvYXJkLW1vZGFsL2VkaXQtZGFzaGJvYXJkLW1vZGFsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFjLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBWXJELE1BQU0sT0FBTywyQkFBMkI7SUFzQnRDLFlBQ21CLEVBQWUsRUFDZiwwQkFBc0Q7UUFEdEQsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFyQnhELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUVyRCxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDNUMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hELHNCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2hELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakQsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4RCxDQUFDLENBQUM7SUFlQSxDQUFDO0lBYkosSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFTTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQywwQkFBMEI7YUFDNUIsZUFBZSxDQUFDO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLO1lBQzVDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUs7WUFDaEMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRztTQUN4QixDQUFDO2FBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDakU7UUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7d0hBNUVVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLDBKQUgzQixDQUFDLG1CQUFtQixDQUFDLDBCQ3RDbEMsNnVHQTJGQTsyRkRsRGEsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNFLDhCQUE4QixpQkFHekIsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLG1CQUFtQixDQUFDLG1CQUNmLHVCQUF1QixDQUFDLE1BQU07MklBRy9CLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVyxTQUFTO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGFzaGJvYXJkSXRlbX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q0FSQk9OX0NPTlNUQU5UU30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0Rhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvbk91dHB1dH0gZnJvbSAnQHZhbHRpbW8vZGFzaGJvYXJkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1lZGl0LWRhc2hib2FyZC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWRhc2hib2FyZC1tb2RhbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC1kYXNoYm9hcmQtbW9kYWwuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtOb3RpZmljYXRpb25TZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVkaXREYXNoYm9hcmRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93TW9kYWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBASW5wdXQoKSBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRJdGVtO1xuICBAT3V0cHV0KCkgcHVibGljIHNhdmVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlndXJhdGlvbk91dHB1dD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZWRpdERhc2hib2FyZEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB0aXRsZTogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIGRlc2NyaXB0aW9uOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgZGFzaGJvYXJkVGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdERhc2hib2FyZEZvcm0uZ2V0KCd0aXRsZScpO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXNoYm9hcmREZXNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0RGFzaGJvYXJkRm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2U6IERhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuT3BlblN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuJC5uZXh0KGZhbHNlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lZGl0RGFzaGJvYXJkRm9ybS5yZXNldCgpO1xuICAgIH0sIENBUkJPTl9DT05TVEFOVFMubW9kYWxBbmltYXRpb25Ncyk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZURhc2hib2FyZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgIC51cGRhdGVEYXNoYm9hcmQoe1xuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvbi52YWx1ZSxcbiAgICAgICAgdGl0bGU6IHRoaXMuZGFzaGJvYXJkVGl0bGUudmFsdWUsXG4gICAgICAgIGtleTogdGhpcy5kYXNoYm9hcmQua2V5LFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KCk7XG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEVkaXREYXNoYm9hcmRGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhc2hib2FyZCkge1xuICAgICAgdGhpcy5kYXNoYm9hcmRUaXRsZT8uc2V0VmFsdWUodGhpcy5kYXNoYm9hcmQudGl0bGUpO1xuICAgICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvbj8uc2V0VmFsdWUodGhpcy5kYXNoYm9hcmQuZGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHRoaXMuZW5hYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5PcGVuU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5TdWJzY3JpcHRpb24gPSB0aGlzLnNob3dNb2RhbCQuc3Vic2NyaWJlKHNob3cgPT4ge1xuICAgICAgdGhpcy5zZXRFZGl0RGFzaGJvYXJkRm9ybSgpO1xuICAgICAgdGhpcy5vcGVuJC5uZXh0KHNob3cpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLW1vZGFsXG4gICpuZ0lmPVwie2Rpc2FibGVkOiBkaXNhYmxlZCQgfCBhc3luY30gYXMgb2JzXCJcbiAgdmFsdGltb0Nkc01vZGFsXG4gIFtvcGVuXT1cIm9wZW4kIHwgYXN5bmNcIlxuICBzaG93Rm9vdGVyPVwidHJ1ZVwiXG4gIHRpdGxlPVwie3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5lZGl0RGFzaGJvYXJkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gIGNsYXNzPVwiZWRpdC1kYXNoYm9hcmQtbW9kYWxcIlxuPlxuICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz57eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmVkaXREYXNoYm9hcmQnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuXG4gIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdERhc2hib2FyZEZvcm1UZW1wbGF0ZTtjb250ZXh0OntvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9zZWN0aW9uPlxuXG4gIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0RGFzaGJvYXJkQnV0dG9ucztjb250ZXh0OntvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9jZHMtbW9kYWw+XG5cbjxuZy10ZW1wbGF0ZSAjZWRpdERhc2hib2FyZEZvcm1UZW1wbGF0ZSBsZXQtb2JzPVwib2JzXCI+XG4gIDxmb3JtICpuZ0lmPVwiZWRpdERhc2hib2FyZEZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXREYXNoYm9hcmRGb3JtXCIgY2xhc3M9XCJkYXNoYm9hcmQtbW9kYWxfX2Zvcm1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZWxlbWVudFwiPlxuICAgICAgPGNkcy1sYWJlbFxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgW2ludmFsaWRdPVwiZGFzaGJvYXJkVGl0bGUuZGlydHkgJiYgZGFzaGJvYXJkVGl0bGUuaW52YWxpZFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kYXNoYm9hcmRUaXRsZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiZGFzaGJvYXJkVGl0bGUuZGlydHkgJiYgZGFzaGJvYXJkVGl0bGUuaW52YWxpZFwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxuICAgICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Nkcy1sYWJlbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50XCI+XG4gICAgICA8Y2RzLWxhYmVsXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICBbaGVscGVyVGV4dF09XCInZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmZvcm0uZGFzaGJvYXJkRGVzY3JpcHRpb25IZWxwZXJUZXh0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpbnZhbGlkXT1cImRhc2hib2FyZERlc2NyaXB0aW9uLmRpcnR5ICYmIGRhc2hib2FyZERlc2NyaXB0aW9uLmludmFsaWRcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiXG4gICAgICAgICAgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRhc2hib2FyZERlc2NyaXB0aW9uSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRhc2hib2FyZERlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICBbaW52YWxpZF09XCJkYXNoYm9hcmREZXNjcmlwdGlvbi5kaXJ0eSAmJiBkYXNoYm9hcmREZXNjcmlwdGlvbi5pbnZhbGlkXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgIC8+XG4gICAgICA8L2Nkcy1sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0RGFzaGJvYXJkQnV0dG9ucyBsZXQtb2JzPVwib2JzXCI+XG4gIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPlxuICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgW2Rpc2FibGVkXT1cImVkaXREYXNoYm9hcmRGb3JtLmludmFsaWQgfHwgb2JzLmRpc2FibGVkXCJcbiAgICAoY2xpY2spPVwic2F2ZURhc2hib2FyZCgpXCJcbiAgPlxuICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuY29tcGxldGUnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|