@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.
Files changed (37) hide show
  1. package/esm2022/lib/components/dashboard-details/dashboard-details.component.mjs +153 -0
  2. package/esm2022/lib/components/dashboard-management/dashboard-management.component.mjs +119 -0
  3. package/esm2022/lib/components/edit-dashboard-modal/edit-dashboard-modal.mjs +99 -0
  4. package/esm2022/lib/components/widget-configuration-container/widget-configuration-container.component.mjs +137 -0
  5. package/esm2022/lib/components/widget-modal/widget-modal.component.mjs +250 -0
  6. package/{esm2020 → esm2022}/lib/dashboard-management-routing.module.mjs +5 -5
  7. package/esm2022/lib/dashboard-management.module.mjs +100 -0
  8. package/esm2022/lib/models/dashboard-item.type.mjs +17 -0
  9. package/esm2022/lib/models/index.mjs +18 -0
  10. package/esm2022/lib/models/widget.model.mjs +17 -0
  11. package/esm2022/lib/services/dashboard-management.service.mjs +88 -0
  12. package/{esm2020 → esm2022}/public-api.mjs +2 -2
  13. package/fesm2022/valtimo-dashboard-management.mjs +969 -0
  14. package/fesm2022/valtimo-dashboard-management.mjs.map +1 -0
  15. package/lib/components/dashboard-details/dashboard-details.component.d.ts +4 -4
  16. package/lib/components/dashboard-management/dashboard-management.component.d.ts +4 -4
  17. package/lib/components/edit-dashboard-modal/edit-dashboard-modal.d.ts +1 -1
  18. package/lib/components/widget-configuration-container/widget-configuration-container.component.d.ts +1 -1
  19. package/lib/components/widget-modal/widget-modal.component.d.ts +1 -1
  20. package/lib/dashboard-management.module.d.ts +4 -4
  21. package/lib/models/widget.model.d.ts +1 -1
  22. package/package.json +8 -14
  23. package/esm2020/lib/components/dashboard-details/dashboard-details.component.mjs +0 -155
  24. package/esm2020/lib/components/dashboard-management/dashboard-management.component.mjs +0 -106
  25. package/esm2020/lib/components/edit-dashboard-modal/edit-dashboard-modal.mjs +0 -99
  26. package/esm2020/lib/components/widget-configuration-container/widget-configuration-container.component.mjs +0 -137
  27. package/esm2020/lib/components/widget-modal/widget-modal.component.mjs +0 -235
  28. package/esm2020/lib/dashboard-management.module.mjs +0 -100
  29. package/esm2020/lib/models/dashboard-item.type.mjs +0 -2
  30. package/esm2020/lib/models/index.mjs +0 -3
  31. package/esm2020/lib/models/widget.model.mjs +0 -2
  32. package/esm2020/lib/services/dashboard-management.service.mjs +0 -88
  33. package/fesm2015/valtimo-dashboard-management.mjs +0 -949
  34. package/fesm2015/valtimo-dashboard-management.mjs.map +0 -1
  35. package/fesm2020/valtimo-dashboard-management.mjs +0 -940
  36. package/fesm2020/valtimo-dashboard-management.mjs.map +0 -1
  37. /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==