@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,137 +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 { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef, } from '@angular/core';
17
- import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
18
- import { tap } from 'rxjs/operators';
19
- import * as i0 from "@angular/core";
20
- import * as i1 from "@valtimo/dashboard";
21
- export class WidgetConfigurationContainerComponent {
22
- constructor(widgetService) {
23
- this.widgetService = widgetService;
24
- this.configurationEvent = new EventEmitter();
25
- this._subscriptions = new Subscription();
26
- this._componentRef$ = new BehaviorSubject(undefined);
27
- this._dataSourceKey$ = new BehaviorSubject('');
28
- this._displayTypeKey$ = new BehaviorSubject('');
29
- this._disabled$ = new BehaviorSubject(false);
30
- this._prefillConfiguration$ = new BehaviorSubject(null);
31
- }
32
- set dataSourceKey(value) {
33
- this._dataSourceKey$.next(value);
34
- }
35
- set displayTypeKey(value) {
36
- this._displayTypeKey$.next(value);
37
- }
38
- set disabled(disabledValue) {
39
- this._disabled$.next(disabledValue);
40
- }
41
- set prefillConfiguration(prefillConfigurationValue) {
42
- this._prefillConfiguration$.next(prefillConfigurationValue);
43
- }
44
- ngOnInit() {
45
- this.openConfigurationComponentSubscription();
46
- this.openComponentInstanceSubscription();
47
- this.openDisabledSubscription();
48
- this.openPrefillConfigurationSubscription();
49
- }
50
- ngOnDestroy() {
51
- this._subscriptions.unsubscribe();
52
- }
53
- openConfigurationComponentSubscription() {
54
- this._subscriptions.add(combineLatest([
55
- this._displayTypeKey$,
56
- this._dataSourceKey$,
57
- this.widgetService.supportedDisplayTypes$,
58
- this.widgetService.supportedDataSources$,
59
- ])
60
- .pipe(tap(([displayTypeKey, dataSourceKey, supportedDisplayTypes, supportedDataSources]) => {
61
- let configurationComponent;
62
- this._dynamicContainer.clear();
63
- const displayTypeSpecification = displayTypeKey &&
64
- supportedDisplayTypes.find(type => type.displayTypeKey === displayTypeKey);
65
- const dataSourceSpecification = dataSourceKey &&
66
- supportedDataSources.find(source => source.dataSourceKey === dataSourceKey);
67
- if (displayTypeSpecification && displayTypeSpecification.configurationComponent) {
68
- configurationComponent = displayTypeSpecification.configurationComponent;
69
- }
70
- else if (dataSourceSpecification && dataSourceSpecification.configurationComponent) {
71
- configurationComponent = dataSourceSpecification.configurationComponent;
72
- }
73
- if (configurationComponent) {
74
- const componentRef = this._dynamicContainer.createComponent(configurationComponent);
75
- this.configurationEvent.emit({ valid: false, data: {} });
76
- this._componentRef$.next(componentRef);
77
- }
78
- else {
79
- this.configurationEvent.emit({ valid: true, data: {} });
80
- }
81
- }))
82
- .subscribe());
83
- }
84
- openComponentInstanceSubscription() {
85
- this._subscriptions.add(combineLatest([this._componentRef$, this._dataSourceKey$, this._displayTypeKey$]).subscribe(([ref, dataSourceKey, displayTypeKey]) => {
86
- const instance = ref?.instance;
87
- this._configurationSubscription?.unsubscribe();
88
- if (instance) {
89
- if (displayTypeKey) {
90
- instance.displayTypeKey = displayTypeKey;
91
- }
92
- else if (dataSourceKey) {
93
- instance.dataSourceKey = dataSourceKey;
94
- }
95
- this._configurationSubscription = instance.configurationEvent.subscribe(configuration => {
96
- this.configurationEvent.emit(configuration);
97
- });
98
- }
99
- }));
100
- }
101
- openDisabledSubscription() {
102
- this._subscriptions.add(combineLatest([this._componentRef$, this._disabled$]).subscribe(([ref, disabled]) => {
103
- const instance = ref?.instance;
104
- if (instance) {
105
- instance.disabled = disabled;
106
- }
107
- }));
108
- }
109
- openPrefillConfigurationSubscription() {
110
- this._subscriptions.add(combineLatest([this._componentRef$, this._prefillConfiguration$]).subscribe(([ref, prefillConfiguration]) => {
111
- const instance = ref?.instance;
112
- if (instance && prefillConfiguration) {
113
- instance.prefillConfiguration = prefillConfiguration;
114
- }
115
- }));
116
- }
117
- }
118
- WidgetConfigurationContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetConfigurationContainerComponent, deps: [{ token: i1.WidgetService }], target: i0.ɵɵFactoryTarget.Component });
119
- WidgetConfigurationContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: WidgetConfigurationContainerComponent, selector: "valtimo-widget-configuration-container", inputs: { dataSourceKey: "dataSourceKey", displayTypeKey: "displayTypeKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, viewQueries: [{ propertyName: "_dynamicContainer", first: true, predicate: ["widgetConfigurationComponent"], descendants: true, read: ViewContainerRef, static: true }], 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<ng-template #widgetConfigurationComponent></ng-template>\n" });
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetConfigurationContainerComponent, decorators: [{
121
- type: Component,
122
- args: [{ selector: 'valtimo-widget-configuration-container', 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<ng-template #widgetConfigurationComponent></ng-template>\n" }]
123
- }], ctorParameters: function () { return [{ type: i1.WidgetService }]; }, propDecorators: { _dynamicContainer: [{
124
- type: ViewChild,
125
- args: ['widgetConfigurationComponent', { static: true, read: ViewContainerRef }]
126
- }], dataSourceKey: [{
127
- type: Input
128
- }], displayTypeKey: [{
129
- type: Input
130
- }], disabled: [{
131
- type: Input
132
- }], prefillConfiguration: [{
133
- type: Input
134
- }], configurationEvent: [{
135
- type: Output
136
- }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL3dpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lci93aWRnZXQtY29uZmlndXJhdGlvbi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvd2lkZ2V0LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyL3dpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFhbkMsTUFBTSxPQUFPLHFDQUFxQztJQStCaEQsWUFBNkIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFieEMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFHN0QsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBDLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBRW5ELFNBQVMsQ0FBQyxDQUFDO1FBQ0ksb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNsRCxxQkFB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USxDQUFDO1lBRS9CLElBQUksUUFBUSxFQUFFO2dCQUNaLFFBQVEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxvQ0FBb0M7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3pFLENBQUMsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxFQUFFO1lBQzlCLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxRQUFRLENBQUM7WUFFL0IsSUFBSSxRQUFRLElBQUksb0JBQW9CLEVBQUU7Z0JBQ3BDLFFBQVEsQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQzthQUN0RDtRQUNILENBQUMsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDOztrSUF4SVUscUNBQXFDO3NIQUFyQyxxQ0FBcUMscVlBR2dCLGdCQUFnQiwyQ0M3Q2xGLDZzQkFpQkE7MkZEeUJhLHFDQUFxQztrQkFKakQsU0FBUzsrQkFDRSx3Q0FBd0M7b0dBT2pDLGlCQUFpQjtzQkFEakMsU0FBUzt1QkFBQyw4QkFBOEIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFDO2dCQUc3RCxhQUFhO3NCQUFoQyxLQUFLO2dCQUdjLGNBQWM7c0JBQWpDLEtBQUs7Z0JBR2MsUUFBUTtzQkFBM0IsS0FBSztnQkFHYyxvQkFBb0I7c0JBQXZDLEtBQUs7Z0JBR1csa0JBQWtCO3NCQUFsQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICBDb25maWd1cmF0aW9uT3V0cHV0LFxuICBEYXRhU291cmNlQ29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgRGlzcGxheVR5cGVDb25maWd1cmF0aW9uQ29tcG9uZW50LFxuICBXaWRnZXRTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9kYXNoYm9hcmQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXdpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtY29uZmlndXJhdGlvbi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb25maWd1cmF0aW9uQ29udGFpbmVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbmZpZ3VyYXRpb25Db21wb25lbnRcbntcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0Q29uZmlndXJhdGlvbkNvbXBvbmVudCcsIHtzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuICBwcml2YXRlIHJlYWRvbmx5IF9keW5hbWljQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZGF0YVNvdXJjZUtleSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZUtleSQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBkaXNwbGF5VHlwZUtleSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZGlzcGxheVR5cGVLZXkkLm5leHQodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZGlzYWJsZWQoZGlzYWJsZWRWYWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkJC5uZXh0KGRpc2FibGVkVmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgcHJlZmlsbENvbmZpZ3VyYXRpb24ocHJlZmlsbENvbmZpZ3VyYXRpb25WYWx1ZSkge1xuICAgIHRoaXMuX3ByZWZpbGxDb25maWd1cmF0aW9uJC5uZXh0KHByZWZpbGxDb25maWd1cmF0aW9uVmFsdWUpO1xuICB9XG4gIEBPdXRwdXQoKSBwdWJsaWMgY29uZmlndXJhdGlvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDb25maWd1cmF0aW9uT3V0cHV0PigpO1xuXG4gIHByaXZhdGUgX2NvbmZpZ3VyYXRpb25TdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29tcG9uZW50UmVmJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgQ29tcG9uZW50UmVmPERhdGFTb3VyY2VDb25maWd1cmF0aW9uQ29tcG9uZW50IHwgRGlzcGxheVR5cGVDb25maWd1cmF0aW9uQ29tcG9uZW50PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2VLZXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlzcGxheVR5cGVLZXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByZWZpbGxDb25maWd1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8b2JqZWN0IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB3aWRnZXRTZXJ2aWNlOiBXaWRnZXRTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Db25maWd1cmF0aW9uQ29tcG9uZW50U3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5vcGVuQ29tcG9uZW50SW5zdGFuY2VTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLm9wZW5EaXNhYmxlZFN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMub3BlblByZWZpbGxDb25maWd1cmF0aW9uU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQ29uZmlndXJhdGlvbkNvbXBvbmVudFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLl9kaXNwbGF5VHlwZUtleSQsXG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2VLZXkkLFxuICAgICAgICB0aGlzLndpZGdldFNlcnZpY2Uuc3VwcG9ydGVkRGlzcGxheVR5cGVzJCxcbiAgICAgICAgdGhpcy53aWRnZXRTZXJ2aWNlLnN1cHBvcnRlZERhdGFTb3VyY2VzJCxcbiAgICAgIF0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgoW2Rpc3BsYXlUeXBlS2V5LCBkYXRhU291cmNlS2V5LCBzdXBwb3J0ZWREaXNwbGF5VHlwZXMsIHN1cHBvcnRlZERhdGFTb3VyY2VzXSkgPT4ge1xuICAgICAgICAgICAgbGV0IGNvbmZpZ3VyYXRpb25Db21wb25lbnQhOiBUeXBlPFxuICAgICAgICAgICAgICBEaXNwbGF5VHlwZUNvbmZpZ3VyYXRpb25Db21wb25lbnQgfCBEYXRhU291cmNlQ29uZmlndXJhdGlvbkNvbXBvbmVudFxuICAgICAgICAgICAgPjtcblxuICAgICAgICAgICAgdGhpcy5fZHluYW1pY0NvbnRhaW5lci5jbGVhcigpO1xuXG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5VHlwZVNwZWNpZmljYXRpb24gPVxuICAgICAgICAgICAgICBkaXNwbGF5VHlwZUtleSAmJlxuICAgICAgICAgICAgICBzdXBwb3J0ZWREaXNwbGF5VHlwZXMuZmluZCh0eXBlID0+IHR5cGUuZGlzcGxheVR5cGVLZXkgPT09IGRpc3BsYXlUeXBlS2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFTb3VyY2VTcGVjaWZpY2F0aW9uID1cbiAgICAgICAgICAgICAgZGF0YVNvdXJjZUtleSAmJlxuICAgICAgICAgICAgICBzdXBwb3J0ZWREYXRhU291cmNlcy5maW5kKHNvdXJjZSA9PiBzb3VyY2UuZGF0YVNvdXJjZUtleSA9PT0gZGF0YVNvdXJjZUtleSk7XG5cbiAgICAgICAgICAgIGlmIChkaXNwbGF5VHlwZVNwZWNpZmljYXRpb24gJiYgZGlzcGxheVR5cGVTcGVjaWZpY2F0aW9uLmNvbmZpZ3VyYXRpb25Db21wb25lbnQpIHtcbiAgICAgICAgICAgICAgY29uZmlndXJhdGlvbkNvbXBvbmVudCA9IGRpc3BsYXlUeXBlU3BlY2lmaWNhdGlvbi5jb25maWd1cmF0aW9uQ29tcG9uZW50O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhU291cmNlU3BlY2lmaWNhdGlvbiAmJiBkYXRhU291cmNlU3BlY2lmaWNhdGlvbi5jb25maWd1cmF0aW9uQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25Db21wb25lbnQgPSBkYXRhU291cmNlU3BlY2lmaWNhdGlvbi5jb25maWd1cmF0aW9uQ29tcG9uZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY29uZmlndXJhdGlvbkNvbXBvbmVudCkge1xuICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9keW5hbWljQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb25maWd1cmF0aW9uQ29tcG9uZW50KTtcbiAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uRXZlbnQuZW1pdCh7dmFsaWQ6IGZhbHNlLCBkYXRhOiB7fX0pO1xuICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYkLm5leHQoY29tcG9uZW50UmVmKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkV2ZW50LmVtaXQoe3ZhbGlkOiB0cnVlLCBkYXRhOiB7fX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNvbXBvbmVudEluc3RhbmNlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5fY29tcG9uZW50UmVmJCwgdGhpcy5fZGF0YVNvdXJjZUtleSQsIHRoaXMuX2Rpc3BsYXlUeXBlS2V5JF0pLnN1YnNjcmliZShcbiAgICAgICAgKFtyZWYsIGRhdGFTb3VyY2VLZXksIGRpc3BsYXlUeXBlS2V5XSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gcmVmPy5pbnN0YW5jZTtcblxuICAgICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGlmIChkaXNwbGF5VHlwZUtleSkge1xuICAgICAgICAgICAgICAoaW5zdGFuY2UgYXMgRGlzcGxheVR5cGVDb25maWd1cmF0aW9uQ29tcG9uZW50KS5kaXNwbGF5VHlwZUtleSA9IGRpc3BsYXlUeXBlS2V5O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhU291cmNlS2V5KSB7XG4gICAgICAgICAgICAgIChpbnN0YW5jZSBhcyBEYXRhU291cmNlQ29uZmlndXJhdGlvbkNvbXBvbmVudCkuZGF0YVNvdXJjZUtleSA9IGRhdGFTb3VyY2VLZXk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25TdWJzY3JpcHRpb24gPSBpbnN0YW5jZS5jb25maWd1cmF0aW9uRXZlbnQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICBjb25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25FdmVudC5lbWl0KGNvbmZpZ3VyYXRpb24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5EaXNhYmxlZFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2NvbXBvbmVudFJlZiQsIHRoaXMuX2Rpc2FibGVkJF0pLnN1YnNjcmliZSgoW3JlZiwgZGlzYWJsZWRdKSA9PiB7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gcmVmPy5pbnN0YW5jZTtcblxuICAgICAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICBpbnN0YW5jZS5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5QcmVmaWxsQ29uZmlndXJhdGlvblN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2NvbXBvbmVudFJlZiQsIHRoaXMuX3ByZWZpbGxDb25maWd1cmF0aW9uJF0pLnN1YnNjcmliZShcbiAgICAgICAgKFtyZWYsIHByZWZpbGxDb25maWd1cmF0aW9uXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gcmVmPy5pbnN0YW5jZTtcblxuICAgICAgICAgIGlmIChpbnN0YW5jZSAmJiBwcmVmaWxsQ29uZmlndXJhdGlvbikge1xuICAgICAgICAgICAgaW5zdGFuY2UucHJlZmlsbENvbmZpZ3VyYXRpb24gPSBwcmVmaWxsQ29uZmlndXJhdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy10ZW1wbGF0ZSAjd2lkZ2V0Q29uZmlndXJhdGlvbkNvbXBvbmVudD48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,235 +0,0 @@
1
- import { Component, EventEmitter, Inject, Input, Output, ViewEncapsulation, } from '@angular/core';
2
- import { BehaviorSubject, combineLatest, filter, map, switchMap, take, tap, } from 'rxjs';
3
- import { Validators } from '@angular/forms';
4
- import { NotificationService } from 'carbon-components-angular';
5
- import { DOCUMENT } from '@angular/common';
6
- import { CARBON_CONSTANTS } from '@valtimo/components';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- import * as i2 from "@ngx-translate/core";
10
- import * as i3 from "carbon-components-angular";
11
- import * as i4 from "../../services/dashboard-management.service";
12
- import * as i5 from "@valtimo/dashboard";
13
- import * as i6 from "@angular/common";
14
- import * as i7 from "../widget-configuration-container/widget-configuration-container.component";
15
- export class WidgetModalComponent {
16
- constructor(document, fb, translateService, notificationService, dashboardManagementService, widgetService, widgetTranslationService) {
17
- this.document = document;
18
- this.fb = fb;
19
- this.translateService = translateService;
20
- this.notificationService = notificationService;
21
- this.dashboardManagementService = dashboardManagementService;
22
- this.widgetService = widgetService;
23
- this.widgetTranslationService = widgetTranslationService;
24
- this.saveEvent = new EventEmitter();
25
- this.form = this.fb.group({
26
- title: this.fb.control('', [Validators.required]),
27
- dataSource: this.fb.control(null, [Validators.required]),
28
- displayType: this.fb.control(null, [Validators.required]),
29
- });
30
- this.open$ = new BehaviorSubject(false);
31
- this.selectedDataSourceKey$ = new BehaviorSubject('');
32
- this.selectedDisplayTypeKey$ = new BehaviorSubject('');
33
- this.dataSourceItems$ = combineLatest([
34
- this.dashboardManagementService.getDataSources(),
35
- this.selectedDataSourceKey$,
36
- this.widgetService.supportedDataSources$,
37
- this.translateService.stream('key'),
38
- ]).pipe(filter(([dataSources]) => !!dataSources), tap(([dataSources, selectedDataSourceKey]) => {
39
- if (selectedDataSourceKey) {
40
- this.setCompatibleDisplayTypes(dataSources, selectedDataSourceKey);
41
- }
42
- else {
43
- this.resetCompatibleDisplayTypes();
44
- }
45
- }), map(([dataSources, selectedDataSourceKey, supportedDataSources]) => dataSources
46
- .filter(dataSource => supportedDataSources.find(supportedDataSource => supportedDataSource.dataSourceKey === dataSource.key))
47
- .map(dataSource => ({
48
- content: this.widgetTranslationService.instant('title', dataSource.key),
49
- selected: selectedDataSourceKey === dataSource.key,
50
- key: dataSource.key,
51
- }))));
52
- this.dataSourcePrefillConfig$ = new BehaviorSubject(null);
53
- this.displayTypePrefillConfig$ = new BehaviorSubject(null);
54
- this._compatibleDisplayTypes$ = new BehaviorSubject([]);
55
- this.displayTypeItems$ = combineLatest([
56
- this._compatibleDisplayTypes$,
57
- this.selectedDisplayTypeKey$,
58
- this.translateService.stream('key'),
59
- ]).pipe(map(([compatibleDisplayTypes, selectedDisplayTypeKey]) => compatibleDisplayTypes.map(displayType => ({
60
- content: this.widgetTranslationService.instant('title', displayType.displayTypeKey),
61
- selected: displayType.displayTypeKey === selectedDisplayTypeKey,
62
- key: displayType.displayTypeKey,
63
- }))));
64
- this.displayTypeDropdownDisabled$ = combineLatest([
65
- this._compatibleDisplayTypes$,
66
- this.selectedDataSourceKey$,
67
- ]).pipe(map(([compatibleDisplayTypes, selectedDataSourceKey]) => compatibleDisplayTypes?.length === 0 || !selectedDataSourceKey), tap(displayTypeDropdownDisabled => {
68
- if (displayTypeDropdownDisabled) {
69
- this.displayType?.disable();
70
- }
71
- else {
72
- this.displayType?.enable();
73
- }
74
- }));
75
- this.dataSourceConfiguration$ = new BehaviorSubject({
76
- valid: false,
77
- data: {},
78
- });
79
- this.displayTypeConfiguration$ = new BehaviorSubject({
80
- valid: false,
81
- data: {},
82
- });
83
- this.disabled$ = new BehaviorSubject(false);
84
- }
85
- set editWidgetConfiguration(configuration) {
86
- if (configuration) {
87
- this.title.setValue(configuration.title);
88
- this.dataSourceSelected({ item: { key: configuration.dataSourceKey } });
89
- this.displayTypeSelected({ item: { key: configuration.displayType } });
90
- this.dataSourcePrefillConfig$.next(configuration.dataSourceProperties);
91
- this.displayTypePrefillConfig$.next(configuration.displayTypeProperties);
92
- }
93
- else {
94
- this.dataSourcePrefillConfig$.next(null);
95
- this.displayTypePrefillConfig$.next(null);
96
- }
97
- }
98
- get title() {
99
- return this.form.get('title');
100
- }
101
- get key() {
102
- return this.form.get('key');
103
- }
104
- get dataSource() {
105
- return this.form.get('dataSource');
106
- }
107
- get displayType() {
108
- return this.form.get('displayType');
109
- }
110
- ngOnInit() {
111
- this.openOpenSubscription();
112
- }
113
- ngOnDestroy() {
114
- this._openSubscription?.unsubscribe();
115
- }
116
- closeModal() {
117
- this.open$.next(false);
118
- setTimeout(() => {
119
- this.enable();
120
- this.form.reset();
121
- this.selectedDataSourceKey$.next('');
122
- this.selectedDisplayTypeKey$.next('');
123
- }, CARBON_CONSTANTS.modalAnimationMs);
124
- }
125
- save() {
126
- this.disable();
127
- combineLatest([
128
- this.selectedDataSourceKey$,
129
- this.selectedDisplayTypeKey$,
130
- this.displayTypeConfiguration$,
131
- this.dataSourceConfiguration$,
132
- ])
133
- .pipe(take(1), map(([selectedDataSourceKey, selectedDisplayTypeKey, displayTypeConfiguration, dataSourceConfiguration,]) => ({
134
- title: this.title.value,
135
- displayType: selectedDisplayTypeKey,
136
- dataSourceKey: selectedDataSourceKey,
137
- dataSourceProperties: { ...dataSourceConfiguration.data },
138
- displayTypeProperties: { ...displayTypeConfiguration.data },
139
- })), switchMap(widgetUpdateObject => this.type === 'create'
140
- ? this.dashboardManagementService.createDashboardWidgetConfiguration(this.dashboard.key, widgetUpdateObject)
141
- : this.dashboardManagementService.updateDashboardWidgetConfiguration(this.dashboard.key, { ...widgetUpdateObject, key: this.widgetKey })))
142
- .subscribe({
143
- complete: () => {
144
- this.saveEvent.emit();
145
- this.closeModal();
146
- },
147
- error: () => {
148
- this.enable();
149
- },
150
- });
151
- }
152
- delete() {
153
- this.disable();
154
- this.dashboardManagementService
155
- .deleteDashboardWidgetConfiguration(this.dashboard.key, this.widgetKey)
156
- .subscribe({
157
- complete: () => {
158
- this.saveEvent.emit();
159
- this.closeModal();
160
- },
161
- error: () => {
162
- this.enable();
163
- },
164
- });
165
- }
166
- dataSourceSelected(dataSource) {
167
- if (!dataSource) {
168
- return;
169
- }
170
- this.selectedDataSourceKey$.next(dataSource?.item?.key);
171
- this.dataSource.setValue(dataSource?.item?.key);
172
- }
173
- displayTypeSelected(displayType) {
174
- if (!displayType) {
175
- return;
176
- }
177
- this.selectedDisplayTypeKey$.next(displayType?.item?.key);
178
- this.displayType.setValue(displayType?.item?.key);
179
- }
180
- dataSourceConfiguration(configuration) {
181
- this.dataSourceConfiguration$.next(configuration);
182
- }
183
- displayTypeConfiguration(configuration) {
184
- this.displayTypeConfiguration$.next(configuration);
185
- }
186
- openOpenSubscription() {
187
- this._openSubscription = this.showModal$.subscribe(show => {
188
- this.open$.next(show);
189
- });
190
- }
191
- resetCompatibleDisplayTypes() {
192
- this._compatibleDisplayTypes$.next([]);
193
- }
194
- setCompatibleDisplayTypes(dataSources, selectedDataSourceKey) {
195
- this.widgetService.supportedDisplayTypes$.pipe(take(1)).subscribe(supportedDisplayTypes => {
196
- const selectedDataSource = dataSources.find(source => source.key === selectedDataSourceKey);
197
- const availableDataFeatures = selectedDataSource?.dataFeatures;
198
- const compatibleDisplayTypes = supportedDisplayTypes.filter(displayType => {
199
- const supportedDataFeatures = displayType.requiredDataFeatures.filter(feature => availableDataFeatures?.includes(feature));
200
- return supportedDataFeatures.length === displayType.requiredDataFeatures.length;
201
- });
202
- this._compatibleDisplayTypes$.next(compatibleDisplayTypes);
203
- });
204
- }
205
- disable() {
206
- this.disabled$.next(true);
207
- this.form.disable();
208
- }
209
- enable() {
210
- this.disabled$.next(false);
211
- this.form.enable();
212
- }
213
- }
214
- WidgetModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetModalComponent, deps: [{ token: DOCUMENT }, { token: i1.FormBuilder }, { token: i2.TranslateService }, { token: i3.NotificationService }, { token: i4.DashboardManagementService }, { token: i5.WidgetService }, { token: i5.WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Component });
215
- WidgetModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: WidgetModalComponent, selector: "valtimo-widget-modal", inputs: { showModal$: "showModal$", type: "type", dashboard: "dashboard", widgetKey: "widgetKey", editWidgetConfiguration: "editWidgetConfiguration" }, outputs: { saveEvent: "saveEvent" }, providers: [NotificationService], ngImport: i0, template: "<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n isCreate: type === 'create',\n isDelete: type === 'delete',\n isEdit: type === 'edit',\n open: open$ | async\n } as vars\"\n>\n <ng-container\n *ngIf=\"{\n create: vars.isCreate && ('dashboardManagement.widgets.add' | translate),\n delete: vars.isDelete && ('dashboardManagement.widgets.delete' | translate),\n edit: vars.isEdit && ('dashboardManagement.widgets.edit' | translate)\n } as titles\"\n >\n <cds-modal\n *ngIf=\"{\n title: titles.edit || titles.create || titles.delete\n } as translations\"\n valtimoCdsModal\n [open]=\"vars.open\"\n showFooter=\"true\"\n size=\"md\"\n title=\"{{ translations.title }}\"\n class=\"widget-modal\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ translations.title }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngIf=\"vars.isDelete\">\n {{ 'dashboardManagement.widgets.deleteDescription' | translate }}</ng-container\n >\n\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"widgetForm; context: {vars: vars}\"></ng-container>\n </ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"editButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"vars.isDelete\">\n <ng-container *ngTemplateOutlet=\"deleteButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n </cds-modal-footer>\n </cds-modal>\n </ng-container>\n</ng-container>\n\n<ng-template #widgetForm let-vars=\"vars\">\n <form\n *ngIf=\"\n form && {\n dataSourceItems: dataSourceItems$ | async,\n displayTypeDropdownDisabled: displayTypeDropdownDisabled$ | async,\n displayTypeItems: displayTypeItems$ | async,\n selectedDataSourceKey: selectedDataSourceKey$ | async,\n selectedDisplayTypeKey: selectedDisplayTypeKey$ | async\n } as obs\n \"\n [formGroup]=\"form\"\n class=\"dashboard-modal__form\"\n >\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalid]=\"title.dirty && title.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.title' | translate }}\n\n <input\n cdsText\n formControlName=\"title\"\n [invalid]=\"title.dirty && title.invalid\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\" *ngIf=\"obs.dataSourceItems\">\n <cds-dropdown\n formControlName=\"dataSource\"\n [helperText]=\"'dashboardManagement.widgets.form.dataSourceHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.dateSourceHelperText' | translate\"\n [invalid]=\"dataSource.dirty && dataSource.invalid\"\n [label]=\"'dashboardManagement.widgets.form.dataSource' | translate\"\n (selected)=\"dataSourceSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.dataSourceItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDataSourceKey\"\n [dataSourceKey]=\"obs.selectedDataSourceKey\"\n [disabled]=\"vars.disabled\"\n [prefillConfiguration]=\"dataSourcePrefillConfig$ | async\"\n (configurationEvent)=\"dataSourceConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n\n <div class=\"form__element\" *ngIf=\"obs.displayTypeItems\">\n <cds-dropdown\n formControlName=\"displayType\"\n [helperText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [invalid]=\"displayType.dirty && displayType.invalid\"\n [invalidText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [label]=\"'dashboardManagement.widgets.form.displayType' | translate\"\n (selected)=\"displayTypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.displayTypeItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDisplayTypeKey\"\n [disabled]=\"vars.disabled\"\n [displayTypeKey]=\"obs.selectedDisplayTypeKey\"\n [prefillConfiguration]=\"displayTypePrefillConfig$ | async\"\n (configurationEvent)=\"displayTypeConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n </form>\n</ng-template>\n\n<ng-template #editButtons let-vars=\"vars\">\n <ng-container\n *ngIf=\"{\n dataSourceConfiguration: dataSourceConfiguration$ | async,\n displayTypeConfiguration: displayTypeConfiguration$ | async\n } as obs\"\n >\n <button cdsButton=\"ghost\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"\n form.invalid ||\n !obs.dataSourceConfiguration.valid ||\n !obs.displayTypeConfiguration.valid ||\n vars.disabled\n \"\n (click)=\"save()\"\n >\n {{ 'dashboardManagement.widgets.save' | translate }}\n </button>\n </ng-container>\n</ng-template>\n\n<ng-template #deleteButtons let-vars=\"vars\">\n <button cdsButton=\"secondary\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button cdsButton=\"danger\" [disabled]=\"vars.disabled\" (click)=\"delete()\">\n {{ 'dashboardManagement.widgets.delete' | translate }}\n </button>\n</ng-template>\n", styles: [".widget-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.widget-modal .form__spacer{width:32px}.widget-modal .form__element{width:100%;margin-bottom:32px}.widget-modal .form__element.--with-button{display:flex;align-items:flex-end;flex-direction:row}.widget-modal .form__element.--with-button button{margin-left:16px}.widget-modal .form__element.--readonly input{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { 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: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { 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: "component", type: i7.WidgetConfigurationContainerComponent, selector: "valtimo-widget-configuration-container", inputs: ["dataSourceKey", "displayTypeKey", "disabled", "prefillConfiguration"], outputs: ["configurationEvent"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetModalComponent, decorators: [{
217
- type: Component,
218
- args: [{ selector: 'valtimo-widget-modal', encapsulation: ViewEncapsulation.None, providers: [NotificationService], template: "<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n isCreate: type === 'create',\n isDelete: type === 'delete',\n isEdit: type === 'edit',\n open: open$ | async\n } as vars\"\n>\n <ng-container\n *ngIf=\"{\n create: vars.isCreate && ('dashboardManagement.widgets.add' | translate),\n delete: vars.isDelete && ('dashboardManagement.widgets.delete' | translate),\n edit: vars.isEdit && ('dashboardManagement.widgets.edit' | translate)\n } as titles\"\n >\n <cds-modal\n *ngIf=\"{\n title: titles.edit || titles.create || titles.delete\n } as translations\"\n valtimoCdsModal\n [open]=\"vars.open\"\n showFooter=\"true\"\n size=\"md\"\n title=\"{{ translations.title }}\"\n class=\"widget-modal\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ translations.title }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngIf=\"vars.isDelete\">\n {{ 'dashboardManagement.widgets.deleteDescription' | translate }}</ng-container\n >\n\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"widgetForm; context: {vars: vars}\"></ng-container>\n </ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"editButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"vars.isDelete\">\n <ng-container *ngTemplateOutlet=\"deleteButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n </cds-modal-footer>\n </cds-modal>\n </ng-container>\n</ng-container>\n\n<ng-template #widgetForm let-vars=\"vars\">\n <form\n *ngIf=\"\n form && {\n dataSourceItems: dataSourceItems$ | async,\n displayTypeDropdownDisabled: displayTypeDropdownDisabled$ | async,\n displayTypeItems: displayTypeItems$ | async,\n selectedDataSourceKey: selectedDataSourceKey$ | async,\n selectedDisplayTypeKey: selectedDisplayTypeKey$ | async\n } as obs\n \"\n [formGroup]=\"form\"\n class=\"dashboard-modal__form\"\n >\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalid]=\"title.dirty && title.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.title' | translate }}\n\n <input\n cdsText\n formControlName=\"title\"\n [invalid]=\"title.dirty && title.invalid\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\" *ngIf=\"obs.dataSourceItems\">\n <cds-dropdown\n formControlName=\"dataSource\"\n [helperText]=\"'dashboardManagement.widgets.form.dataSourceHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.dateSourceHelperText' | translate\"\n [invalid]=\"dataSource.dirty && dataSource.invalid\"\n [label]=\"'dashboardManagement.widgets.form.dataSource' | translate\"\n (selected)=\"dataSourceSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.dataSourceItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDataSourceKey\"\n [dataSourceKey]=\"obs.selectedDataSourceKey\"\n [disabled]=\"vars.disabled\"\n [prefillConfiguration]=\"dataSourcePrefillConfig$ | async\"\n (configurationEvent)=\"dataSourceConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n\n <div class=\"form__element\" *ngIf=\"obs.displayTypeItems\">\n <cds-dropdown\n formControlName=\"displayType\"\n [helperText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [invalid]=\"displayType.dirty && displayType.invalid\"\n [invalidText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [label]=\"'dashboardManagement.widgets.form.displayType' | translate\"\n (selected)=\"displayTypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.displayTypeItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDisplayTypeKey\"\n [disabled]=\"vars.disabled\"\n [displayTypeKey]=\"obs.selectedDisplayTypeKey\"\n [prefillConfiguration]=\"displayTypePrefillConfig$ | async\"\n (configurationEvent)=\"displayTypeConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n </form>\n</ng-template>\n\n<ng-template #editButtons let-vars=\"vars\">\n <ng-container\n *ngIf=\"{\n dataSourceConfiguration: dataSourceConfiguration$ | async,\n displayTypeConfiguration: displayTypeConfiguration$ | async\n } as obs\"\n >\n <button cdsButton=\"ghost\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"\n form.invalid ||\n !obs.dataSourceConfiguration.valid ||\n !obs.displayTypeConfiguration.valid ||\n vars.disabled\n \"\n (click)=\"save()\"\n >\n {{ 'dashboardManagement.widgets.save' | translate }}\n </button>\n </ng-container>\n</ng-template>\n\n<ng-template #deleteButtons let-vars=\"vars\">\n <button cdsButton=\"secondary\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button cdsButton=\"danger\" [disabled]=\"vars.disabled\" (click)=\"delete()\">\n {{ 'dashboardManagement.widgets.delete' | translate }}\n </button>\n</ng-template>\n", styles: [".widget-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.widget-modal .form__spacer{width:32px}.widget-modal .form__element{width:100%;margin-bottom:32px}.widget-modal .form__element.--with-button{display:flex;align-items:flex-end;flex-direction:row}.widget-modal .form__element.--with-button button{margin-left:16px}.widget-modal .form__element.--readonly input{background-color:transparent}\n"] }]
219
- }], ctorParameters: function () { return [{ type: Document, decorators: [{
220
- type: Inject,
221
- args: [DOCUMENT]
222
- }] }, { type: i1.FormBuilder }, { type: i2.TranslateService }, { type: i3.NotificationService }, { type: i4.DashboardManagementService }, { type: i5.WidgetService }, { type: i5.WidgetTranslationService }]; }, propDecorators: { showModal$: [{
223
- type: Input
224
- }], type: [{
225
- type: Input
226
- }], dashboard: [{
227
- type: Input
228
- }], widgetKey: [{
229
- type: Input
230
- }], editWidgetConfiguration: [{
231
- type: Input
232
- }], saveEvent: [{
233
- type: Output
234
- }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL3dpZGdldC1tb2RhbC93aWRnZXQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvd2lkZ2V0LW1vZGFsL3dpZGdldC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsTUFBTSxFQUNOLEdBQUcsRUFHSCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBYyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQVcsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7OztBQWdCckQsTUFBTSxPQUFPLG9CQUFvQjtJQTJIL0IsWUFDcUMsUUFBa0IsRUFDcEMsRUFBZSxFQUNmLGdCQUFrQyxFQUNsQyxtQkFBd0MsRUFDeEMsMEJBQXNELEVBQ3RELGFBQTRCLEVBQzVCLHdCQUFrRDtRQU5oQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixxQkFBZ0IsR0FB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QUFtQixDQUFDLDBCQ3pDbEMsbS9MQXNLQTsyRkQzSGEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLHNCQUFzQixpQkFHakIsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLG1CQUFtQixDQUFDOzswQkE4SDdCLE1BQU07MkJBQUMsUUFBUTttUEEzSEYsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDYyx1QkFBdUI7c0JBQTFDLEtBQUs7Z0JBWVcsU0FBUztzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGFzaGJvYXJkSXRlbSwgV2lkZ2V0RGF0YVNvdXJjZSwgV2lkZ2V0TW9kYWxUeXBlfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMaXN0SXRlbSwgTm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Rhc2hib2FyZC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtDQVJCT05fQ09OU1RBTlRTfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25PdXRwdXQsXG4gIERhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb24sXG4gIERpc3BsYXlUeXBlU3BlY2lmaWNhdGlvbixcbiAgV2lkZ2V0U2VydmljZSxcbiAgV2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9kYXNoYm9hcmQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXdpZGdldC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbTm90aWZpY2F0aW9uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd01vZGFsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgQElucHV0KCkgcHVibGljIHR5cGU6IFdpZGdldE1vZGFsVHlwZTtcbiAgQElucHV0KCkgcHVibGljIGRhc2hib2FyZDogRGFzaGJvYXJkSXRlbTtcbiAgQElucHV0KCkgcHVibGljIHdpZGdldEtleSE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNldCBlZGl0V2lkZ2V0Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBEYXNoYm9hcmRXaWRnZXRDb25maWd1cmF0aW9uKSB7XG4gICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRoaXMudGl0bGUuc2V0VmFsdWUoY29uZmlndXJhdGlvbi50aXRsZSk7XG4gICAgICB0aGlzLmRhdGFTb3VyY2VTZWxlY3RlZCh7aXRlbToge2tleTogY29uZmlndXJhdGlvbi5kYXRhU291cmNlS2V5fX0gYXMgYW55KTtcbiAgICAgIHRoaXMuZGlzcGxheVR5cGVTZWxlY3RlZCh7aXRlbToge2tleTogY29uZmlndXJhdGlvbi5kaXNwbGF5VHlwZX19IGFzIGFueSk7XG4gICAgICB0aGlzLmRhdGFTb3VyY2VQcmVmaWxsQ29uZmlnJC5uZXh0KGNvbmZpZ3VyYXRpb24uZGF0YVNvdXJjZVByb3BlcnRpZXMpO1xuICAgICAgdGhpcy5kaXNwbGF5VHlwZVByZWZpbGxDb25maWckLm5leHQoY29uZmlndXJhdGlvbi5kaXNwbGF5VHlwZVByb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2VQcmVmaWxsQ29uZmlnJC5uZXh0KG51bGwpO1xuICAgICAgdGhpcy5kaXNwbGF5VHlwZVByZWZpbGxDb25maWckLm5leHQobnVsbCk7XG4gICAgfVxuICB9XG4gIEBPdXRwdXQoKSBwdWJsaWMgc2F2ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDb25maWd1cmF0aW9uT3V0cHV0PigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgdGl0bGU6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICBkYXRhU291cmNlOiB0aGlzLmZiLmNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICBkaXNwbGF5VHlwZTogdGhpcy5mYi5jb250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBvcGVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWREYXRhU291cmNlS2V5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERpc3BsYXlUeXBlS2V5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFTb3VyY2VJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UuZ2V0RGF0YVNvdXJjZXMoKSxcbiAgICB0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUtleSQsXG4gICAgdGhpcy53aWRnZXRTZXJ2aWNlLnN1cHBvcnRlZERhdGFTb3VyY2VzJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtkYXRhU291cmNlc10pID0+ICEhZGF0YVNvdXJjZXMpLFxuICAgIHRhcCgoW2RhdGFTb3VyY2VzLCBzZWxlY3RlZERhdGFTb3VyY2VLZXldKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWREYXRhU291cmNlS2V5KSB7XG4gICAgICAgIHRoaXMuc2V0Q29tcGF0aWJsZURpc3BsYXlUeXBlcyhkYXRhU291cmNlcywgc2VsZWN0ZWREYXRhU291cmNlS2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVzZXRDb21wYXRpYmxlRGlzcGxheVR5cGVzKCk7XG4gICAgICB9XG4gICAgfSksXG4gICAgbWFwKChbZGF0YVNvdXJjZXMsIHNlbGVjdGVkRGF0YVNvdXJjZUtleSwgc3VwcG9ydGVkRGF0YVNvdXJjZXNdKSA9PlxuICAgICAgZGF0YVNvdXJjZXNcbiAgICAgICAgLmZpbHRlcihkYXRhU291cmNlID0+XG4gICAgICAgICAgc3VwcG9ydGVkRGF0YVNvdXJjZXMuZmluZChcbiAgICAgICAgICAgIHN1cHBvcnRlZERhdGFTb3VyY2UgPT4gc3VwcG9ydGVkRGF0YVNvdXJjZS5kYXRhU291cmNlS2V5ID09PSBkYXRhU291cmNlLmtleVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAubWFwKGRhdGFTb3VyY2UgPT4gKHtcbiAgICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KCd0aXRsZScsIGRhdGFTb3VyY2Uua2V5KSxcbiAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWREYXRhU291cmNlS2V5ID09PSBkYXRhU291cmNlLmtleSxcbiAgICAgICAgICBrZXk6IGRhdGFTb3VyY2Uua2V5LFxuICAgICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFTb3VyY2VQcmVmaWxsQ29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8b2JqZWN0IHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VHlwZVByZWZpbGxDb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxvYmplY3QgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb21wYXRpYmxlRGlzcGxheVR5cGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RGlzcGxheVR5cGVTcGVjaWZpY2F0aW9uPj4oXG4gICAgW11cbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVR5cGVJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2NvbXBhdGlibGVEaXNwbGF5VHlwZXMkLFxuICAgIHRoaXMuc2VsZWN0ZWREaXNwbGF5VHlwZUtleSQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29tcGF0aWJsZURpc3BsYXlUeXBlcywgc2VsZWN0ZWREaXNwbGF5VHlwZUtleV0pID0+XG4gICAgICBjb21wYXRpYmxlRGlzcGxheVR5cGVzLm1hcChkaXNwbGF5VHlwZSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KCd0aXRsZScsIGRpc3BsYXlUeXBlLmRpc3BsYXlUeXBlS2V5KSxcbiAgICAgICAgc2VsZWN0ZWQ6IGRpc3BsYXlUeXBlLmRpc3BsYXlUeXBlS2V5ID09PSBzZWxlY3RlZERpc3BsYXlUeXBlS2V5LFxuICAgICAgICBrZXk6IGRpc3BsYXlUeXBlLmRpc3BsYXlUeXBlS2V5LFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VHlwZURyb3Bkb3duRGlzYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fY29tcGF0aWJsZURpc3BsYXlUeXBlcyQsXG4gICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VLZXkkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbY29tcGF0aWJsZURpc3BsYXlUeXBlcywgc2VsZWN0ZWREYXRhU291cmNlS2V5XSkgPT5cbiAgICAgICAgY29tcGF0aWJsZURpc3BsYXlUeXBlcz8ubGVuZ3RoID09PSAwIHx8ICFzZWxlY3RlZERhdGFTb3VyY2VLZXlcbiAgICApLFxuICAgIHRhcChkaXNwbGF5VHlwZURyb3Bkb3duRGlzYWJsZWQgPT4ge1xuICAgICAgaWYgKGRpc3BsYXlUeXBlRHJvcGRvd25EaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlUeXBlPy5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BsYXlUeXBlPy5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBkYXRhU291cmNlQ29uZmlndXJhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbmZpZ3VyYXRpb25PdXRwdXQ+KHtcbiAgICB2YWxpZDogZmFsc2UsXG4gICAgZGF0YToge30sXG4gIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVR5cGVDb25maWd1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29uZmlndXJhdGlvbk91dHB1dD4oe1xuICAgIHZhbGlkOiBmYWxzZSxcbiAgICBkYXRhOiB7fSxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgX29wZW5TdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIGdldCB0aXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgndGl0bGUnKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGtleSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgna2V5Jyk7XG4gIH1cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdkYXRhU291cmNlJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc3BsYXlUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdkaXNwbGF5VHlwZScpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlOiBEYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFNlcnZpY2U6IFdpZGdldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRUcmFuc2xhdGlvblNlcnZpY2U6IFdpZGdldFRyYW5zbGF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3Blbk9wZW5TdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuJC5uZXh0KGZhbHNlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VLZXkkLm5leHQoJycpO1xuICAgICAgdGhpcy5zZWxlY3RlZERpc3BsYXlUeXBlS2V5JC5uZXh0KCcnKTtcbiAgICB9LCBDQVJCT05fQ09OU1RBTlRTLm1vZGFsQW5pbWF0aW9uTXMpO1xuICB9XG5cbiAgcHVibGljIHNhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlKCk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhU291cmNlS2V5JCxcbiAgICAgIHRoaXMuc2VsZWN0ZWREaXNwbGF5VHlwZUtleSQsXG4gICAgICB0aGlzLmRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbiQsXG4gICAgICB0aGlzLmRhdGFTb3VyY2VDb25maWd1cmF0aW9uJCxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoW1xuICAgICAgICAgICAgc2VsZWN0ZWREYXRhU291cmNlS2V5LFxuICAgICAgICAgICAgc2VsZWN0ZWREaXNwbGF5VHlwZUtleSxcbiAgICAgICAgICAgIGRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIGRhdGFTb3VyY2VDb25maWd1cmF0aW9uLFxuICAgICAgICAgIF0pID0+ICh7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy50aXRsZS52YWx1ZSxcbiAgICAgICAgICAgIGRpc3BsYXlUeXBlOiBzZWxlY3RlZERpc3BsYXlUeXBlS2V5LFxuICAgICAgICAgICAgZGF0YVNvdXJjZUtleTogc2VsZWN0ZWREYXRhU291cmNlS2V5LFxuICAgICAgICAgICAgZGF0YVNvdXJjZVByb3BlcnRpZXM6IHsuLi5kYXRhU291cmNlQ29uZmlndXJhdGlvbi5kYXRhfSxcbiAgICAgICAgICAgIGRpc3BsYXlUeXBlUHJvcGVydGllczogey4uLmRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbi5kYXRhfSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICBzd2l0Y2hNYXAod2lkZ2V0VXBkYXRlT2JqZWN0ID0+XG4gICAgICAgICAgdGhpcy50eXBlID09PSAnY3JlYXRlJ1xuICAgICAgICAgICAgPyB0aGlzLmRhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlLmNyZWF0ZURhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb24oXG4gICAgICAgICAgICAgICAgdGhpcy5kYXNoYm9hcmQua2V5LFxuICAgICAgICAgICAgICAgIHdpZGdldFVwZGF0ZU9iamVjdFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UudXBkYXRlRGFzaGJvYXJkV2lkZ2V0Q29uZmlndXJhdGlvbihcbiAgICAgICAgICAgICAgICB0aGlzLmRhc2hib2FyZC5rZXksXG4gICAgICAgICAgICAgICAgey4uLndpZGdldFVwZGF0ZU9iamVjdCwga2V5OiB0aGlzLndpZGdldEtleX1cbiAgICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KCk7XG4gICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgIC5kZWxldGVEYXNoYm9hcmRXaWRnZXRDb25maWd1cmF0aW9uKHRoaXMuZGFzaGJvYXJkLmtleSwgdGhpcy53aWRnZXRLZXkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KCk7XG4gICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRhdGFTb3VyY2VTZWxlY3RlZChkYXRhU291cmNlOiBMaXN0SXRlbSk6IHZvaWQge1xuICAgIGlmICghZGF0YVNvdXJjZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWREYXRhU291cmNlS2V5JC5uZXh0KGRhdGFTb3VyY2U/Lml0ZW0/LmtleSk7XG4gICAgdGhpcy5kYXRhU291cmNlLnNldFZhbHVlKGRhdGFTb3VyY2U/Lml0ZW0/LmtleSk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVR5cGVTZWxlY3RlZChkaXNwbGF5VHlwZTogTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIWRpc3BsYXlUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZERpc3BsYXlUeXBlS2V5JC5uZXh0KGRpc3BsYXlUeXBlPy5pdGVtPy5rZXkpO1xuICAgIHRoaXMuZGlzcGxheVR5cGUuc2V0VmFsdWUoZGlzcGxheVR5cGU/Lml0ZW0/LmtleSk7XG4gIH1cblxuICBwdWJsaWMgZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbk91dHB1dCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24kLm5leHQoY29uZmlndXJhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVR5cGVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb25PdXRwdXQpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbiQubmV4dChjb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgb3Blbk9wZW5TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fb3BlblN1YnNjcmlwdGlvbiA9IHRoaXMuc2hvd01vZGFsJC5zdWJzY3JpYmUoc2hvdyA9PiB7XG4gICAgICB0aGlzLm9wZW4kLm5leHQoc2hvdyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Q29tcGF0aWJsZURpc3BsYXlUeXBlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jb21wYXRpYmxlRGlzcGxheVR5cGVzJC5uZXh0KFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29tcGF0aWJsZURpc3BsYXlUeXBlcyhcbiAgICBkYXRhU291cmNlczogQXJyYXk8V2lkZ2V0RGF0YVNvdXJjZT4sXG4gICAgc2VsZWN0ZWREYXRhU291cmNlS2V5OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRTZXJ2aWNlLnN1cHBvcnRlZERpc3BsYXlUeXBlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc3VwcG9ydGVkRGlzcGxheVR5cGVzID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YVNvdXJjZSA9IGRhdGFTb3VyY2VzLmZpbmQoc291cmNlID0+IHNvdXJjZS5rZXkgPT09IHNlbGVjdGVkRGF0YVNvdXJjZUtleSk7XG4gICAgICBjb25zdCBhdmFpbGFibGVEYXRhRmVhdHVyZXMgPSBzZWxlY3RlZERhdGFTb3VyY2U/LmRhdGFGZWF0dXJlcztcbiAgICAgIGNvbnN0IGNvbXBhdGlibGVEaXNwbGF5VHlwZXMgPSBzdXBwb3J0ZWREaXNwbGF5VHlwZXMuZmlsdGVyKGRpc3BsYXlUeXBlID0+IHtcbiAgICAgICAgY29uc3Qgc3VwcG9ydGVkRGF0YUZlYXR1cmVzID0gZGlzcGxheVR5cGUucmVxdWlyZWREYXRhRmVhdHVyZXMuZmlsdGVyKGZlYXR1cmUgPT5cbiAgICAgICAgICBhdmFpbGFibGVEYXRhRmVhdHVyZXM/LmluY2x1ZGVzKGZlYXR1cmUpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWREYXRhRmVhdHVyZXMubGVuZ3RoID09PSBkaXNwbGF5VHlwZS5yZXF1aXJlZERhdGFGZWF0dXJlcy5sZW5ndGg7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5fY29tcGF0aWJsZURpc3BsYXlUeXBlcyQubmV4dChjb21wYXRpYmxlRGlzcGxheVR5cGVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkJCB8IGFzeW5jLFxuICAgIGlzQ3JlYXRlOiB0eXBlID09PSAnY3JlYXRlJyxcbiAgICBpc0RlbGV0ZTogdHlwZSA9PT0gJ2RlbGV0ZScsXG4gICAgaXNFZGl0OiB0eXBlID09PSAnZWRpdCcsXG4gICAgb3Blbjogb3BlbiQgfCBhc3luY1xuICB9IGFzIHZhcnNcIlxuPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJ7XG4gICAgICBjcmVhdGU6IHZhcnMuaXNDcmVhdGUgJiYgKCdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuYWRkJyB8IHRyYW5zbGF0ZSksXG4gICAgICBkZWxldGU6IHZhcnMuaXNEZWxldGUgJiYgKCdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZGVsZXRlJyB8IHRyYW5zbGF0ZSksXG4gICAgICBlZGl0OiB2YXJzLmlzRWRpdCAmJiAoJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5lZGl0JyB8IHRyYW5zbGF0ZSlcbiAgICB9IGFzIHRpdGxlc1wiXG4gID5cbiAgICA8Y2RzLW1vZGFsXG4gICAgICAqbmdJZj1cIntcbiAgICAgICAgdGl0bGU6IHRpdGxlcy5lZGl0IHx8IHRpdGxlcy5jcmVhdGUgfHwgdGl0bGVzLmRlbGV0ZVxuICAgICAgfSBhcyB0cmFuc2xhdGlvbnNcIlxuICAgICAgdmFsdGltb0Nkc01vZGFsXG4gICAgICBbb3Blbl09XCJ2YXJzLm9wZW5cIlxuICAgICAgc2hvd0Zvb3Rlcj1cInRydWVcIlxuICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgIHRpdGxlPVwie3sgdHJhbnNsYXRpb25zLnRpdGxlIH19XCJcbiAgICAgIGNsYXNzPVwid2lkZ2V0LW1vZGFsXCJcbiAgICA+XG4gICAgICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICAgICAge3sgdHJhbnNsYXRpb25zLnRpdGxlIH19XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG5cbiAgICAgIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhcnMuaXNEZWxldGVcIj5cbiAgICAgICAgICB7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmRlbGV0ZURlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvbmctY29udGFpbmVyXG4gICAgICAgID5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFycy5pc0VkaXQgfHwgdmFycy5pc0NyZWF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ3aWRnZXRGb3JtOyBjb250ZXh0OiB7dmFyczogdmFyc31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFycy5pc0VkaXQgfHwgdmFycy5pc0NyZWF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0QnV0dG9uczsgY29udGV4dDoge3ZhcnM6IHZhcnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YXJzLmlzRGVsZXRlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRlbGV0ZUJ1dHRvbnM7IGNvbnRleHQ6IHt2YXJzOiB2YXJzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvY2RzLW1vZGFsLWZvb3Rlcj5cbiAgICA8L2Nkcy1tb2RhbD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN3aWRnZXRGb3JtIGxldC12YXJzPVwidmFyc1wiPlxuICA8Zm9ybVxuICAgICpuZ0lmPVwiXG4gICAgICBmb3JtICYmIHtcbiAgICAgICAgZGF0YVNvdXJjZUl0ZW1zOiBkYXRhU291cmNlSXRlbXMkIHwgYXN5bmMsXG4gICAgICAgIGRpc3BsYXlUeXBlRHJvcGRvd25EaXNhYmxlZDogZGlzcGxheVR5cGVEcm9wZG93bkRpc2FibGVkJCB8IGFzeW5jLFxuICAgICAgICBkaXNwbGF5VHlwZUl0ZW1zOiBkaXNwbGF5VHlwZUl0ZW1zJCB8IGFzeW5jLFxuICAgICAgICBzZWxlY3RlZERhdGFTb3VyY2VLZXk6IHNlbGVjdGVkRGF0YVNvdXJjZUtleSQgfCBhc3luYyxcbiAgICAgICAgc2VsZWN0ZWREaXNwbGF5VHlwZUtleTogc2VsZWN0ZWREaXNwbGF5VHlwZUtleSQgfCBhc3luY1xuICAgICAgfSBhcyBvYnNcbiAgICBcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgY2xhc3M9XCJkYXNoYm9hcmQtbW9kYWxfX2Zvcm1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIj5cbiAgICAgIDxjZHMtbGFiZWxcbiAgICAgICAgW2hlbHBlclRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLnRpdGxlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLnRpdGxlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaW52YWxpZF09XCJ0aXRsZS5kaXJ0eSAmJiB0aXRsZS5pbnZhbGlkXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiXG4gICAgICAgICAgW2ludmFsaWRdPVwidGl0bGUuZGlydHkgJiYgdGl0bGUuaW52YWxpZFwiXG4gICAgICAgICAgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvY2RzLWxhYmVsPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIiAqbmdJZj1cIm9icy5kYXRhU291cmNlSXRlbXNcIj5cbiAgICAgIDxjZHMtZHJvcGRvd25cbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0YVNvdXJjZVwiXG4gICAgICAgIFtoZWxwZXJUZXh0XT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kYXRhU291cmNlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRhdGVTb3VyY2VIZWxwZXJUZXh0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpbnZhbGlkXT1cImRhdGFTb3VyY2UuZGlydHkgJiYgZGF0YVNvdXJjZS5pbnZhbGlkXCJcbiAgICAgICAgW2xhYmVsXT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kYXRhU291cmNlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJkYXRhU291cmNlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzLmRhdGFTb3VyY2VJdGVtc1wiIHR5cGU9XCJtdWx0aVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgICA8L2Nkcy1kcm9wZG93bj5cbiAgICA8L2Rpdj5cblxuICAgIDx2YWx0aW1vLXdpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJvYnMuc2VsZWN0ZWREYXRhU291cmNlS2V5XCJcbiAgICAgIFtkYXRhU291cmNlS2V5XT1cIm9icy5zZWxlY3RlZERhdGFTb3VyY2VLZXlcIlxuICAgICAgW2Rpc2FibGVkXT1cInZhcnMuZGlzYWJsZWRcIlxuICAgICAgW3ByZWZpbGxDb25maWd1cmF0aW9uXT1cImRhdGFTb3VyY2VQcmVmaWxsQ29uZmlnJCB8IGFzeW5jXCJcbiAgICAgIChjb25maWd1cmF0aW9uRXZlbnQpPVwiZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24oJGV2ZW50KVwiXG4gICAgPjwvdmFsdGltby13aWRnZXQtY29uZmlndXJhdGlvbi1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZWxlbWVudFwiICpuZ0lmPVwib2JzLmRpc3BsYXlUeXBlSXRlbXNcIj5cbiAgICAgIDxjZHMtZHJvcGRvd25cbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheVR5cGVcIlxuICAgICAgICBbaGVscGVyVGV4dF09XCInZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmZvcm0uZGlzcGxheVR5cGVIZWxwZXJUZXh0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpbnZhbGlkXT1cImRpc3BsYXlUeXBlLmRpcnR5ICYmIGRpc3BsYXlUeXBlLmludmFsaWRcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRpc3BsYXlUeXBlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbbGFiZWxdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRpc3BsYXlUeXBlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJkaXNwbGF5VHlwZVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cIm9icy5kaXNwbGF5VHlwZUl0ZW1zXCIgdHlwZT1cIm11bHRpXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICAgIDwvY2RzLWRyb3Bkb3duPlxuICAgIDwvZGl2PlxuXG4gICAgPHZhbHRpbW8td2lkZ2V0LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyXG4gICAgICAqbmdJZj1cIm9icy5zZWxlY3RlZERpc3BsYXlUeXBlS2V5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJ2YXJzLmRpc2FibGVkXCJcbiAgICAgIFtkaXNwbGF5VHlwZUtleV09XCJvYnMuc2VsZWN0ZWREaXNwbGF5VHlwZUtleVwiXG4gICAgICBbcHJlZmlsbENvbmZpZ3VyYXRpb25dPVwiZGlzcGxheVR5cGVQcmVmaWxsQ29uZmlnJCB8IGFzeW5jXCJcbiAgICAgIChjb25maWd1cmF0aW9uRXZlbnQpPVwiZGlzcGxheVR5cGVDb25maWd1cmF0aW9uKCRldmVudClcIlxuICAgID48L3ZhbHRpbW8td2lkZ2V0LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyPlxuICA8L2Zvcm0+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VkaXRCdXR0b25zIGxldC12YXJzPVwidmFyc1wiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJ7XG4gICAgICBkYXRhU291cmNlQ29uZmlndXJhdGlvbjogZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24kIHwgYXN5bmMsXG4gICAgICBkaXNwbGF5VHlwZUNvbmZpZ3VyYXRpb246IGRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbiQgfCBhc3luY1xuICAgIH0gYXMgb2JzXCJcbiAgPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiBbZGlzYWJsZWRdPVwidmFycy5kaXNhYmxlZFwiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj5cbiAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgIGZvcm0uaW52YWxpZCB8fFxuICAgICAgICAhb2JzLmRhdGFTb3VyY2VDb25maWd1cmF0aW9uLnZhbGlkIHx8XG4gICAgICAgICFvYnMuZGlzcGxheVR5cGVDb25maWd1cmF0aW9uLnZhbGlkIHx8XG4gICAgICAgIHZhcnMuZGlzYWJsZWRcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICA+XG4gICAgICB7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLnNhdmUnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWxldGVCdXR0b25zIGxldC12YXJzPVwidmFyc1wiPlxuICA8YnV0dG9uIGNkc0J1dHRvbj1cInNlY29uZGFyeVwiIFtkaXNhYmxlZF09XCJ2YXJzLmRpc2FibGVkXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPlxuICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uIGNkc0J1dHRvbj1cImRhbmdlclwiIFtkaXNhYmxlZF09XCJ2YXJzLmRpc2FibGVkXCIgKGNsaWNrKT1cImRlbGV0ZSgpXCI+XG4gICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5kZWxldGUnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,100 +0,0 @@
1
- /*
2
- * Copyright 2015-2020 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 { CommonModule } from '@angular/common';
17
- import { NgModule } from '@angular/core';
18
- import { ReactiveFormsModule } from '@angular/forms';
19
- import { TranslateModule } from '@ngx-translate/core';
20
- import { CarbonTableModule, ConfirmationModalModule, ListModule, RenderInPageHeaderDirectiveModule, SpinnerModule, } from '@valtimo/components';
21
- import { ButtonModule, DropdownModule, IconModule, InputModule, ModalModule, NotificationModule, } from 'carbon-components-angular';
22
- import { DashboardDetailsComponent } from './components/dashboard-details/dashboard-details.component';
23
- import { DashboardManagementComponent } from './components/dashboard-management/dashboard-management.component';
24
- import { DashboardManagementRoutingModule } from './dashboard-management-routing.module';
25
- import { WidgetModalComponent } from './components/widget-modal/widget-modal.component';
26
- import { EditDashboardModalComponent } from './components/edit-dashboard-modal/edit-dashboard-modal';
27
- import { WidgetTranslatePipeModule } from '@valtimo/dashboard';
28
- import { WidgetConfigurationContainerComponent } from './components/widget-configuration-container/widget-configuration-container.component';
29
- import * as i0 from "@angular/core";
30
- export class DashboardManagementModule {
31
- }
32
- DashboardManagementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
33
- DashboardManagementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: DashboardManagementModule, declarations: [DashboardManagementComponent,
34
- DashboardDetailsComponent,
35
- WidgetModalComponent,
36
- EditDashboardModalComponent,
37
- WidgetConfigurationContainerComponent], imports: [ButtonModule,
38
- CarbonTableModule,
39
- CommonModule,
40
- DashboardManagementRoutingModule,
41
- DropdownModule,
42
- InputModule,
43
- ListModule,
44
- ModalModule,
45
- ReactiveFormsModule,
46
- SpinnerModule,
47
- TranslateModule,
48
- RenderInPageHeaderDirectiveModule,
49
- ConfirmationModalModule,
50
- NotificationModule,
51
- IconModule,
52
- WidgetTranslatePipeModule] });
53
- DashboardManagementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardManagementModule, imports: [ButtonModule,
54
- CarbonTableModule,
55
- CommonModule,
56
- DashboardManagementRoutingModule,
57
- DropdownModule,
58
- InputModule,
59
- ListModule,
60
- ModalModule,
61
- ReactiveFormsModule,
62
- SpinnerModule,
63
- TranslateModule,
64
- RenderInPageHeaderDirectiveModule,
65
- ConfirmationModalModule,
66
- NotificationModule,
67
- IconModule,
68
- WidgetTranslatePipeModule] });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardManagementModule, decorators: [{
70
- type: NgModule,
71
- args: [{
72
- declarations: [
73
- DashboardManagementComponent,
74
- DashboardDetailsComponent,
75
- WidgetModalComponent,
76
- EditDashboardModalComponent,
77
- WidgetConfigurationContainerComponent,
78
- ],
79
- imports: [
80
- ButtonModule,
81
- CarbonTableModule,
82
- CommonModule,
83
- DashboardManagementRoutingModule,
84
- DropdownModule,
85
- InputModule,
86
- ListModule,
87
- ModalModule,
88
- ReactiveFormsModule,
89
- SpinnerModule,
90
- TranslateModule,
91
- RenderInPageHeaderDirectiveModule,
92
- ConfirmationModalModule,
93
- NotificationModule,
94
- IconModule,
95
- WidgetTranslatePipeModule,
96
- ],
97
- exports: [],
98
- }]
99
- }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2Rhc2hib2FyZC1tYW5hZ2VtZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixVQUFVLEVBQ1YsaUNBQWlDLEVBQ2pDLGFBQWEsR0FDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzlHLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ25HLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHNGQUFzRixDQUFDOztBQThCM0ksTUFBTSxPQUFPLHlCQUF5Qjs7c0hBQXpCLHlCQUF5Qjt1SEFBekIseUJBQXlCLGlCQTFCbEMsNEJBQTRCO1FBQzVCLHlCQUF5QjtRQUN6QixvQkFBb0I7UUFDcEIsMkJBQTJCO1FBQzNCLHFDQUFxQyxhQUdyQyxZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLFlBQVk7UUFDWixnQ0FBZ0M7UUFDaEMsY0FBYztRQUNkLFdBQVc7UUFDWCxVQUFVO1FBQ1YsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2IsZUFBZTtRQUNmLGlDQUFpQztRQUNqQyx1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLFVBQVU7UUFDVix5QkFBeUI7dUhBSWhCLHlCQUF5QixZQW5CbEMsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osZ0NBQWdDO1FBQ2hDLGNBQWM7UUFDZCxXQUFXO1FBQ1gsVUFBVTtRQUNWLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLGVBQWU7UUFDZixpQ0FBaUM7UUFDakMsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQixVQUFVO1FBQ1YseUJBQXlCOzJGQUloQix5QkFBeUI7a0JBNUJyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiw0QkFBNEI7d0JBQzVCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQiwyQkFBMkI7d0JBQzNCLHFDQUFxQztxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGdDQUFnQzt3QkFDaEMsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQ0FBaUM7d0JBQ2pDLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixVQUFVO3dCQUNWLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2FyYm9uVGFibGVNb2R1bGUsXG4gIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICBMaXN0TW9kdWxlLFxuICBSZW5kZXJJblBhZ2VIZWFkZXJEaXJlY3RpdmVNb2R1bGUsXG4gIFNwaW5uZXJNb2R1bGUsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQnV0dG9uTW9kdWxlLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIE1vZGFsTW9kdWxlLFxuICBOb3RpZmljYXRpb25Nb2R1bGUsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtEYXNoYm9hcmREZXRhaWxzQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZGFzaGJvYXJkLWRldGFpbHMvZGFzaGJvYXJkLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7RGFzaGJvYXJkTWFuYWdlbWVudENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L2Rhc2hib2FyZC1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge0Rhc2hib2FyZE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlfSBmcm9tICcuL2Rhc2hib2FyZC1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7V2lkZ2V0TW9kYWxDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy93aWRnZXQtbW9kYWwvd2lkZ2V0LW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge0VkaXREYXNoYm9hcmRNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2VkaXQtZGFzaGJvYXJkLW1vZGFsL2VkaXQtZGFzaGJvYXJkLW1vZGFsJztcbmltcG9ydCB7V2lkZ2V0VHJhbnNsYXRlUGlwZU1vZHVsZX0gZnJvbSAnQHZhbHRpbW8vZGFzaGJvYXJkJztcbmltcG9ydCB7V2lkZ2V0Q29uZmlndXJhdGlvbkNvbnRhaW5lckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3dpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lci93aWRnZXQtY29uZmlndXJhdGlvbi1jb250YWluZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRGFzaGJvYXJkTWFuYWdlbWVudENvbXBvbmVudCxcbiAgICBEYXNoYm9hcmREZXRhaWxzQ29tcG9uZW50LFxuICAgIFdpZGdldE1vZGFsQ29tcG9uZW50LFxuICAgIEVkaXREYXNoYm9hcmRNb2RhbENvbXBvbmVudCxcbiAgICBXaWRnZXRDb25maWd1cmF0aW9uQ29udGFpbmVyQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIENhcmJvblRhYmxlTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEYXNoYm9hcmRNYW5hZ2VtZW50Um91dGluZ01vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBMaXN0TW9kdWxlLFxuICAgIE1vZGFsTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3Bpbm5lck1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVuZGVySW5QYWdlSGVhZGVyRGlyZWN0aXZlTW9kdWxlLFxuICAgIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICAgIE5vdGlmaWNhdGlvbk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFdpZGdldFRyYW5zbGF0ZVBpcGVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRNYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWl0ZW0udHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9tb2RlbHMvZGFzaGJvYXJkLWl0ZW0udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRJdGVtIHtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJvbGVzPzogQXJyYXk8c3RyaW5nPjtcbiAgY3JlYXRlZEJ5Pzogc3RyaW5nO1xuICBjcmVhdGVkT24/OiBzdHJpbmc7XG59XG4iXX0=