@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,3 +0,0 @@
|
|
|
1
|
-
export * from './dashboard-item.type';
|
|
2
|
-
export * from './widget.model';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkLWl0ZW0udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC5tb2RlbCc7XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL21vZGVscy93aWRnZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBEYXNoYm9hcmRXaWRnZXQge1xuICB0aXRsZTogc3RyaW5nO1xuICBrZXk/OiBzdHJpbmc7XG4gIGRhdGFTb3VyY2VLZXk6IHN0cmluZztcbiAgZGF0YVNvdXJjZVByb3BlcnRpZXM6IHtba2V5OiBzdHJpbmddOiBhbnl9O1xuICBkaXNwbGF5VHlwZTogc3RyaW5nO1xuICBkaXNwbGF5VHlwZVByb3BlcnRpZXM6IG9iamVjdDtcbiAgb3JkZXI/OiBudW1iZXI7XG59XG5cbnR5cGUgV2lkZ2V0TW9kYWxUeXBlID0gJ2NyZWF0ZScgfCAnZWRpdCcgfCAnZGVsZXRlJztcblxuaW50ZXJmYWNlIFdpZGdldERhdGFTb3VyY2Uge1xuICBrZXk6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGF0YUZlYXR1cmVzOiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQge0Rhc2hib2FyZFdpZGdldCwgV2lkZ2V0TW9kYWxUeXBlLCBXaWRnZXREYXRhU291cmNlfTtcbiJdfQ==
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, catchError, of, switchMap, take, tap } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common/http";
|
|
5
|
-
import * as i2 from "@valtimo/config";
|
|
6
|
-
export class DashboardManagementService {
|
|
7
|
-
constructor(http, configService) {
|
|
8
|
-
this.http = http;
|
|
9
|
-
this.configService = configService;
|
|
10
|
-
this.dashboards$ = new BehaviorSubject({
|
|
11
|
-
items: null,
|
|
12
|
-
loading: true,
|
|
13
|
-
});
|
|
14
|
-
this.valtimoEndpointUri = `${this.configService.config.valtimoApi.endpointUri}management/v1/dashboard`;
|
|
15
|
-
}
|
|
16
|
-
loadData() {
|
|
17
|
-
this.http
|
|
18
|
-
.get(this.valtimoEndpointUri)
|
|
19
|
-
.pipe(take(1), tap(() => {
|
|
20
|
-
this.dashboards$.next({ items: null, loading: true });
|
|
21
|
-
}))
|
|
22
|
-
.subscribe({
|
|
23
|
-
next: (items) => {
|
|
24
|
-
this.dashboards$.next({ items, loading: false });
|
|
25
|
-
},
|
|
26
|
-
error: error => {
|
|
27
|
-
console.error(error);
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
createDashboard(dashboard) {
|
|
32
|
-
return this.http.post(this.valtimoEndpointUri, dashboard);
|
|
33
|
-
}
|
|
34
|
-
updateDashboards(dashboards) {
|
|
35
|
-
return this.http.put(this.valtimoEndpointUri, dashboards);
|
|
36
|
-
}
|
|
37
|
-
updateDashboard(dashboard) {
|
|
38
|
-
return this.http.put(`${this.valtimoEndpointUri}/${dashboard.key}`, dashboard);
|
|
39
|
-
}
|
|
40
|
-
deleteDashboard(dashboardKey) {
|
|
41
|
-
return this.http.delete(`${this.valtimoEndpointUri}/${dashboardKey}`);
|
|
42
|
-
}
|
|
43
|
-
dispatchAction(actionResult) {
|
|
44
|
-
actionResult
|
|
45
|
-
.pipe(switchMap(() => this.getDashboards()), tap(() => {
|
|
46
|
-
this.dashboards$.next({ items: null, loading: true });
|
|
47
|
-
}), take(1), catchError(error => of(error)))
|
|
48
|
-
.subscribe({
|
|
49
|
-
next: (items) => this.dashboards$.next({ items, loading: false }),
|
|
50
|
-
error: error => {
|
|
51
|
-
console.error(error);
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
getDashboard(dashboardKey) {
|
|
56
|
-
return this.http.get(`${this.valtimoEndpointUri}/${dashboardKey}`);
|
|
57
|
-
}
|
|
58
|
-
getDashboardWidgetConfiguration(dashboardKey) {
|
|
59
|
-
return this.http.get(`${this.valtimoEndpointUri}/${dashboardKey}/widget-configuration`);
|
|
60
|
-
}
|
|
61
|
-
createDashboardWidgetConfiguration(dashboardKey, widgetConfiguration) {
|
|
62
|
-
return this.http.post(`${this.valtimoEndpointUri}/${dashboardKey}/widget-configuration`, widgetConfiguration);
|
|
63
|
-
}
|
|
64
|
-
updateDashboardWidgetConfigurations(dashboardKey, widgetConfigurations) {
|
|
65
|
-
return this.http.put(`${this.valtimoEndpointUri}/${dashboardKey}/widget-configuration`, widgetConfigurations);
|
|
66
|
-
}
|
|
67
|
-
updateDashboardWidgetConfiguration(dashboardKey, widgetConfiguration) {
|
|
68
|
-
return this.http.put(`${this.valtimoEndpointUri}/${dashboardKey}/widget-configuration/${widgetConfiguration.key}`, widgetConfiguration);
|
|
69
|
-
}
|
|
70
|
-
deleteDashboardWidgetConfiguration(dashboardKey, widgetKey) {
|
|
71
|
-
return this.http.delete(`${this.valtimoEndpointUri}/${dashboardKey}/widget-configuration/${widgetKey}`);
|
|
72
|
-
}
|
|
73
|
-
getDataSources() {
|
|
74
|
-
return this.http.get(`${this.valtimoEndpointUri}/widget-data-sources`);
|
|
75
|
-
}
|
|
76
|
-
getDashboards() {
|
|
77
|
-
return this.http.get(this.valtimoEndpointUri);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
DashboardManagementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardManagementService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
81
|
-
DashboardManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardManagementService, providedIn: 'root' });
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardManagementService, decorators: [{
|
|
83
|
-
type: Injectable,
|
|
84
|
-
args: [{
|
|
85
|
-
providedIn: 'root',
|
|
86
|
-
}]
|
|
87
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigService }]; } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1hbmFnZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxVQUFVLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7O0FBTXZGLE1BQU0sT0FBTywwQkFBMEI7SUEyQnJDLFlBQTZCLElBQWdCLEVBQW1CLGFBQTRCO1FBQS9ELFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUF4QnJGLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW9EO1lBQzFGLEtBQUssRUFBRSxJQUFJO1lBQ1gsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7UUFzQkQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcseUJBQXlCLENBQUM7SUFDekcsQ0FBQztJQXJCTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLElBQUk7YUFDTixHQUFHLENBQWtCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQzthQUM3QyxJQUFJLENBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUM7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QW9CLENBQ3JCLENBQUM7SUFDSixDQUFDO0lBRU0sa0NBQWtDLENBQ3ZDLFlBQW9CLEVBQ3BCLG1CQUFvQztRQUVwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxZQUFZLHlCQUF5QixtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsRUFDNUYsbUJBQW1CLENBQ3BCLENBQUM7SUFDSixDQUFDO0lBRU0sa0NBQWtDLENBQ3ZDLFlBQW9CLEVBQ3BCLFNBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ3JCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixJQUFJLFlBQVkseUJBQXlCLFNBQVMsRUFBRSxDQUMvRSxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMEIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLHNCQUFzQixDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVPLGFBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakUsQ0FBQzs7dUhBeEhVLDBCQUEwQjsySEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07MkZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtEYXNoYm9hcmRJdGVtLCBEYXNoYm9hcmRXaWRnZXQsIFdpZGdldERhdGFTb3VyY2V9IGZyb20gJy4uL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZSB7XG4gIHByaXZhdGUgdmFsdGltb0VuZHBvaW50VXJpOiBzdHJpbmc7XG5cbiAgcHVibGljIGRhc2hib2FyZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7aXRlbXM6IERhc2hib2FyZEl0ZW1bXSB8IG51bGw7IGxvYWRpbmc6IGJvb2xlYW59Pih7XG4gICAgaXRlbXM6IG51bGwsXG4gICAgbG9hZGluZzogdHJ1ZSxcbiAgfSk7XG5cbiAgcHVibGljIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaHR0cFxuICAgICAgLmdldDxEYXNoYm9hcmRJdGVtW10+KHRoaXMudmFsdGltb0VuZHBvaW50VXJpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmRzJC5uZXh0KHtpdGVtczogbnVsbCwgbG9hZGluZzogdHJ1ZX0pO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChpdGVtczogRGFzaGJvYXJkSXRlbVtdKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmRzJC5uZXh0KHtpdGVtcywgbG9hZGluZzogZmFsc2V9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICB0aGlzLnZhbHRpbW9FbmRwb2ludFVyaSA9IGAke3RoaXMuY29uZmlnU2VydmljZS5jb25maWcudmFsdGltb0FwaS5lbmRwb2ludFVyaX1tYW5hZ2VtZW50L3YxL2Rhc2hib2FyZGA7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRGFzaGJvYXJkKGRhc2hib2FyZDogRGFzaGJvYXJkSXRlbSk6IE9ic2VydmFibGU8RGFzaGJvYXJkSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxEYXNoYm9hcmRJdGVtPih0aGlzLnZhbHRpbW9FbmRwb2ludFVyaSwgZGFzaGJvYXJkKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEYXNoYm9hcmRzKGRhc2hib2FyZHM6IEFycmF5PERhc2hib2FyZEl0ZW0+KTogT2JzZXJ2YWJsZTxBcnJheTxEYXNoYm9hcmRJdGVtPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFycmF5PERhc2hib2FyZEl0ZW0+Pih0aGlzLnZhbHRpbW9FbmRwb2ludFVyaSwgZGFzaGJvYXJkcyk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGFzaGJvYXJkKGRhc2hib2FyZDogRGFzaGJvYXJkSXRlbSk6IE9ic2VydmFibGU8RGFzaGJvYXJkSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PERhc2hib2FyZEl0ZW0+KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfS8ke2Rhc2hib2FyZC5rZXl9YCwgZGFzaGJvYXJkKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVEYXNoYm9hcmQoZGFzaGJvYXJkS2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxudWxsPihgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX0vJHtkYXNoYm9hcmRLZXl9YCk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2hBY3Rpb24oYWN0aW9uUmVzdWx0OiBPYnNlcnZhYmxlPERhc2hib2FyZEl0ZW0gfCBudWxsPik6IHZvaWQge1xuICAgIGFjdGlvblJlc3VsdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdldERhc2hib2FyZHMoKSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmRzJC5uZXh0KHtpdGVtczogbnVsbCwgbG9hZGluZzogdHJ1ZX0pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihlcnJvcikpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGl0ZW1zOiBEYXNoYm9hcmRJdGVtW10pID0+IHRoaXMuZGFzaGJvYXJkcyQubmV4dCh7aXRlbXMsIGxvYWRpbmc6IGZhbHNlfSksXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREYXNoYm9hcmQoZGFzaGJvYXJkS2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPERhc2hib2FyZEl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEYXNoYm9hcmRJdGVtPihgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX0vJHtkYXNoYm9hcmRLZXl9YCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGFzaGJvYXJkV2lkZ2V0Q29uZmlndXJhdGlvbihkYXNoYm9hcmRLZXk6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8RGFzaGJvYXJkV2lkZ2V0Pj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PERhc2hib2FyZFdpZGdldD4+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9LyR7ZGFzaGJvYXJkS2V5fS93aWRnZXQtY29uZmlndXJhdGlvbmBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZURhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb24oXG4gICAgZGFzaGJvYXJkS2V5OiBzdHJpbmcsXG4gICAgd2lkZ2V0Q29uZmlndXJhdGlvbjogRGFzaGJvYXJkV2lkZ2V0XG4gICk6IE9ic2VydmFibGU8RGFzaGJvYXJkV2lkZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PERhc2hib2FyZFdpZGdldD4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX0vJHtkYXNoYm9hcmRLZXl9L3dpZGdldC1jb25maWd1cmF0aW9uYCxcbiAgICAgIHdpZGdldENvbmZpZ3VyYXRpb25cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb25zKFxuICAgIGRhc2hib2FyZEtleTogc3RyaW5nLFxuICAgIHdpZGdldENvbmZpZ3VyYXRpb25zOiBBcnJheTxEYXNoYm9hcmRXaWRnZXQ+XG4gICk6IE9ic2VydmFibGU8QXJyYXk8RGFzaGJvYXJkV2lkZ2V0Pj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFycmF5PERhc2hib2FyZFdpZGdldD4+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9LyR7ZGFzaGJvYXJkS2V5fS93aWRnZXQtY29uZmlndXJhdGlvbmAsXG4gICAgICB3aWRnZXRDb25maWd1cmF0aW9uc1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGFzaGJvYXJkV2lkZ2V0Q29uZmlndXJhdGlvbihcbiAgICBkYXNoYm9hcmRLZXk6IHN0cmluZyxcbiAgICB3aWRnZXRDb25maWd1cmF0aW9uOiBEYXNoYm9hcmRXaWRnZXRcbiAgKTogT2JzZXJ2YWJsZTxEYXNoYm9hcmRXaWRnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxEYXNoYm9hcmRXaWRnZXQ+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9LyR7ZGFzaGJvYXJkS2V5fS93aWRnZXQtY29uZmlndXJhdGlvbi8ke3dpZGdldENvbmZpZ3VyYXRpb24ua2V5fWAsXG4gICAgICB3aWRnZXRDb25maWd1cmF0aW9uXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVEYXNoYm9hcmRXaWRnZXRDb25maWd1cmF0aW9uKFxuICAgIGRhc2hib2FyZEtleTogc3RyaW5nLFxuICAgIHdpZGdldEtleTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8RGFzaGJvYXJkV2lkZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8RGFzaGJvYXJkV2lkZ2V0PihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfS8ke2Rhc2hib2FyZEtleX0vd2lkZ2V0LWNvbmZpZ3VyYXRpb24vJHt3aWRnZXRLZXl9YFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0YVNvdXJjZXMoKTogT2JzZXJ2YWJsZTxBcnJheTxXaWRnZXREYXRhU291cmNlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PFdpZGdldERhdGFTb3VyY2U+PihgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX0vd2lkZ2V0LWRhdGEtc291cmNlc2ApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXNoYm9hcmRzKCk6IE9ic2VydmFibGU8RGFzaGJvYXJkSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGFzaGJvYXJkSXRlbVtdPih0aGlzLnZhbHRpbW9FbmRwb2ludFVyaSk7XG4gIH1cbn1cbiJdfQ==
|