@valtimo/zgw 12.0.0 → 12.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dossier-management-zgw/dossier-management-zgw.component.mjs +61 -13
- package/esm2022/lib/models/dossier-management-zgw.model.mjs +5 -3
- package/esm2022/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.mjs +115 -242
- package/esm2022/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.mjs +57 -85
- package/esm2022/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.mjs +171 -100
- package/esm2022/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.mjs +174 -0
- package/esm2022/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +244 -106
- package/esm2022/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.mjs +115 -0
- package/esm2022/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.mjs +164 -0
- package/esm2022/lib/modules/documenten-api/components/index.mjs +5 -2
- package/esm2022/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.mjs +3 -3
- package/esm2022/lib/modules/documenten-api/models/configured-column.model.mjs +12 -2
- package/esm2022/lib/modules/documenten-api/models/documenten-api-filter.model.mjs +17 -0
- package/esm2022/lib/modules/documenten-api/models/documenten-api-metadata.model.mjs +1 -1
- package/esm2022/lib/modules/documenten-api/models/documenten-api-tag.model.mjs +17 -0
- package/esm2022/lib/modules/documenten-api/models/documenten-api-version.model.mjs +1 -1
- package/esm2022/lib/modules/documenten-api/models/documenten-api.model.mjs +22 -2
- package/esm2022/lib/modules/documenten-api/models/index.mjs +2 -1
- package/esm2022/lib/modules/documenten-api/services/documenten-api-column.service.mjs +10 -9
- package/esm2022/lib/modules/documenten-api/services/documenten-api-document.service.mjs +10 -3
- package/esm2022/lib/modules/documenten-api/services/documenten-api-link-process.service.mjs +1 -16
- package/esm2022/lib/modules/documenten-api/services/documenten-api-tag.service.mjs +36 -0
- package/esm2022/lib/modules/documenten-api/services/documenten-api-version.service.mjs +4 -1
- package/esm2022/lib/modules/documenten-api/services/index.mjs +3 -2
- package/esm2022/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.mjs +2 -2
- package/esm2022/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.mjs +1 -1
- package/esm2022/lib/services/dossier-management-zgw.service.mjs +8 -4
- package/esm2022/lib/zgw.module.mjs +22 -5
- package/fesm2022/valtimo-zgw.mjs +1378 -781
- package/fesm2022/valtimo-zgw.mjs.map +1 -1
- package/lib/components/dossier-management-zgw/dossier-management-zgw.component.d.ts +16 -5
- package/lib/components/dossier-management-zgw/dossier-management-zgw.component.d.ts.map +1 -1
- package/lib/models/dossier-management-zgw.model.d.ts +12 -2
- package/lib/models/dossier-management-zgw.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.d.ts +33 -63
- package/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.d.ts +18 -20
- package/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts +38 -20
- package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.d.ts +47 -0
- package/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.d.ts.map +1 -0
- package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts +76 -39
- package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.d.ts +33 -0
- package/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.d.ts.map +1 -0
- package/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.d.ts +46 -0
- package/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.d.ts.map +1 -0
- package/lib/modules/documenten-api/components/index.d.ts +4 -1
- package/lib/modules/documenten-api/components/index.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/configured-column.model.d.ts +8 -2
- package/lib/modules/documenten-api/models/configured-column.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/documenten-api-filter.model.d.ts +10 -0
- package/lib/modules/documenten-api/models/documenten-api-filter.model.d.ts.map +1 -0
- package/lib/modules/documenten-api/models/documenten-api-metadata.model.d.ts +10 -9
- package/lib/modules/documenten-api/models/documenten-api-metadata.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/documenten-api-tag.model.d.ts +5 -0
- package/lib/modules/documenten-api/models/documenten-api-tag.model.d.ts.map +1 -0
- package/lib/modules/documenten-api/models/documenten-api-version.model.d.ts +7 -1
- package/lib/modules/documenten-api/models/documenten-api-version.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/documenten-api.model.d.ts +37 -12
- package/lib/modules/documenten-api/models/documenten-api.model.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/index.d.ts +1 -0
- package/lib/modules/documenten-api/models/index.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/documenten-api-column.service.d.ts +3 -2
- package/lib/modules/documenten-api/services/documenten-api-column.service.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/documenten-api-document.service.d.ts +3 -2
- package/lib/modules/documenten-api/services/documenten-api-document.service.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/documenten-api-link-process.service.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/documenten-api-tag.service.d.ts +17 -0
- package/lib/modules/documenten-api/services/documenten-api-tag.service.d.ts.map +1 -0
- package/lib/modules/documenten-api/services/documenten-api-version.service.d.ts +2 -1
- package/lib/modules/documenten-api/services/documenten-api-version.service.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/index.d.ts +2 -1
- package/lib/modules/documenten-api/services/index.d.ts.map +1 -1
- package/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.d.ts.map +1 -1
- package/lib/services/dossier-management-zgw.service.d.ts +2 -0
- package/lib/services/dossier-management-zgw.service.d.ts.map +1 -1
- package/lib/zgw.module.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -13,289 +13,162 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { CommonModule } from '@angular/common';
|
|
16
17
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
17
|
-
import {
|
|
18
|
-
import { CARBON_CONSTANTS } from '@valtimo/components';
|
|
19
|
-
import { ReactiveFormsModule, Validators, } from '@angular/forms';
|
|
20
|
-
import { InternalCaseStatusColor, InternalCaseStatusUtils, } from '@valtimo/document';
|
|
21
|
-
import { ButtonModule, DropdownModule, InputModule, ModalModule, TagModule, ToggleModule, } from 'carbon-components-angular';
|
|
22
|
-
import { Edit16 } from '@carbon/icons';
|
|
18
|
+
import { ReactiveFormsModule, Validators } from '@angular/forms';
|
|
23
19
|
import { TranslateModule } from '@ngx-translate/core';
|
|
24
|
-
import {
|
|
20
|
+
import { ButtonModule, DropdownModule, InputModule, ModalModule, NotificationModule, RadioModule, } from 'carbon-components-angular';
|
|
21
|
+
import { BehaviorSubject, combineLatest, map, Subscription, switchMap } from 'rxjs';
|
|
22
|
+
import { CARBON_CONSTANTS } from '@valtimo/components';
|
|
25
23
|
import * as i0 from "@angular/core";
|
|
26
24
|
import * as i1 from "@angular/forms";
|
|
27
|
-
import * as i2 from "
|
|
28
|
-
import * as i3 from "
|
|
29
|
-
import * as i4 from "@
|
|
30
|
-
import * as i5 from "
|
|
25
|
+
import * as i2 from "@ngx-translate/core";
|
|
26
|
+
import * as i3 from "../../services";
|
|
27
|
+
import * as i4 from "@angular/common";
|
|
28
|
+
import * as i5 from "carbon-components-angular";
|
|
31
29
|
export class DocumentenApiColumnModalComponent {
|
|
30
|
+
set prefillColumn(value) {
|
|
31
|
+
if (!value)
|
|
32
|
+
return;
|
|
33
|
+
const column = { content: value.key, selected: true, column: value };
|
|
34
|
+
const defaultSort = value.defaultSort ?? 'noDefault';
|
|
35
|
+
this.formGroup.patchValue({ column, defaultSort });
|
|
36
|
+
this.formGroup.get('column')?.disable();
|
|
37
|
+
this._prefillColumn = [column];
|
|
38
|
+
}
|
|
39
|
+
get prefillColumn() {
|
|
40
|
+
return this._prefillColumn;
|
|
41
|
+
}
|
|
32
42
|
set type(value) {
|
|
33
|
-
this._type
|
|
34
|
-
if (value === '
|
|
35
|
-
|
|
36
|
-
this._typeAnimationDelay$.next(value);
|
|
37
|
-
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
this._typeAnimationDelay$.next(value);
|
|
43
|
+
this._type = value;
|
|
44
|
+
if (value === 'edit') {
|
|
45
|
+
this.formGroup.get('column')?.disable;
|
|
41
46
|
}
|
|
42
47
|
}
|
|
43
|
-
|
|
44
|
-
this.
|
|
48
|
+
get type() {
|
|
49
|
+
return this._type;
|
|
45
50
|
}
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
set availableColumns(value) {
|
|
52
|
+
if (!value)
|
|
53
|
+
return;
|
|
54
|
+
this._availableColumns$.next(value);
|
|
48
55
|
}
|
|
49
|
-
|
|
50
|
-
|
|
56
|
+
set configuredColumns(value) {
|
|
57
|
+
if (!value)
|
|
58
|
+
return;
|
|
59
|
+
this._defaultSortedColumn = value.find((column) => !!column.defaultSort);
|
|
51
60
|
}
|
|
52
|
-
|
|
53
|
-
return this.statusFormGroup?.get('title');
|
|
54
|
-
}
|
|
55
|
-
get color() {
|
|
56
|
-
return this.statusFormGroup?.get('color');
|
|
57
|
-
}
|
|
58
|
-
get invalid() {
|
|
59
|
-
return !!this.statusFormGroup?.invalid;
|
|
60
|
-
}
|
|
61
|
-
get pristine() {
|
|
62
|
-
return !!this.statusFormGroup?.pristine;
|
|
63
|
-
}
|
|
64
|
-
constructor(fb, iconService, caseStatusService, translateService) {
|
|
61
|
+
constructor(fb, translateService, zgwDocumentenApiColumnService) {
|
|
65
62
|
this.fb = fb;
|
|
66
|
-
this.iconService = iconService;
|
|
67
|
-
this.caseStatusService = caseStatusService;
|
|
68
63
|
this.translateService = translateService;
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
71
|
-
this.
|
|
72
|
-
|
|
73
|
-
this.isClosed$ = this._type.pipe(map(type => type === 'closed'));
|
|
74
|
-
this.statusFormGroup = this.fb.group({
|
|
75
|
-
title: this.fb.control('', Validators.required),
|
|
76
|
-
key: this.fb.control('', [Validators.required, this.uniqueKeyValidator()]),
|
|
77
|
-
visibleInCaseListByDefault: this.fb.control(true, Validators.required),
|
|
78
|
-
color: this.fb.control('', Validators.required),
|
|
79
|
-
});
|
|
80
|
-
this.isEdit$ = combineLatest([this._typeAnimationDelay$, this._prefillStatus]).pipe(tap(([type, prefillStatus]) => {
|
|
81
|
-
if (type === 'edit' && prefillStatus)
|
|
82
|
-
this.prefillForm(prefillStatus);
|
|
83
|
-
}), map(([type]) => type === 'edit'));
|
|
84
|
-
this.isAdd$ = this._typeAnimationDelay$.pipe(map(type => type === 'add'), tap(isAdd => {
|
|
85
|
-
if (isAdd)
|
|
86
|
-
this.resetForm();
|
|
87
|
-
}));
|
|
88
|
-
this.disabled$ = new BehaviorSubject(false);
|
|
89
|
-
this.COLORS = [
|
|
90
|
-
InternalCaseStatusColor.Red,
|
|
91
|
-
InternalCaseStatusColor.Magenta,
|
|
92
|
-
InternalCaseStatusColor.Purple,
|
|
93
|
-
InternalCaseStatusColor.Blue,
|
|
94
|
-
InternalCaseStatusColor.Teal,
|
|
95
|
-
InternalCaseStatusColor.Green,
|
|
96
|
-
InternalCaseStatusColor.Cyan,
|
|
97
|
-
InternalCaseStatusColor.Gray,
|
|
98
|
-
InternalCaseStatusColor.CoolGray,
|
|
99
|
-
InternalCaseStatusColor.WarmGray,
|
|
100
|
-
InternalCaseStatusColor.HighContrast,
|
|
101
|
-
InternalCaseStatusColor.Outline,
|
|
102
|
-
];
|
|
103
|
-
this._selectedColor$ = new BehaviorSubject(undefined);
|
|
104
|
-
this.colorListItems$ = combineLatest([
|
|
105
|
-
this._selectedColor$,
|
|
64
|
+
this.zgwDocumentenApiColumnService = zgwDocumentenApiColumnService;
|
|
65
|
+
this._availableColumns$ = new BehaviorSubject([]);
|
|
66
|
+
this.availableColumns$ = combineLatest([
|
|
67
|
+
this._availableColumns$,
|
|
106
68
|
this.translateService.stream('key'),
|
|
107
|
-
]).pipe(map(([
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
color,
|
|
112
|
-
tagType: InternalCaseStatusUtils.getTagTypeFromInternalCaseStatusColor(color),
|
|
69
|
+
]).pipe(map(([columns]) => columns.map((column) => ({
|
|
70
|
+
content: this.translateService.instant(`zgw.documentColumns.${column.key}`),
|
|
71
|
+
selected: false,
|
|
72
|
+
column,
|
|
113
73
|
}))));
|
|
114
|
-
this.
|
|
115
|
-
this.
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
74
|
+
this.closeModal = new EventEmitter();
|
|
75
|
+
this.formGroup = this.fb.group({
|
|
76
|
+
column: this.fb.control({ content: '', selected: false, column: {} }, Validators.required),
|
|
77
|
+
defaultSort: this.fb.control('noDefault'),
|
|
78
|
+
});
|
|
79
|
+
this._notificationMessage$ = new BehaviorSubject('zgw.columns.defaultWarning');
|
|
80
|
+
this.notificationObj$ = combineLatest([
|
|
81
|
+
this._notificationMessage$,
|
|
82
|
+
this.translateService.stream('key'),
|
|
83
|
+
]).pipe(map(([message]) => ({
|
|
84
|
+
type: 'warning',
|
|
85
|
+
lowContrast: true,
|
|
86
|
+
title: this.translateService.instant('interface.warning'),
|
|
87
|
+
message: this.translateService.instant(message),
|
|
88
|
+
showClose: false,
|
|
89
|
+
})));
|
|
90
|
+
this.showRadioButtons = true;
|
|
124
91
|
this._subscriptions = new Subscription();
|
|
125
|
-
this.iconService.registerAll([Edit16]);
|
|
126
92
|
}
|
|
127
93
|
ngOnInit() {
|
|
128
|
-
this.
|
|
94
|
+
this.openDisableRadioSubscription();
|
|
129
95
|
}
|
|
130
96
|
ngOnDestroy() {
|
|
131
97
|
this._subscriptions.unsubscribe();
|
|
132
98
|
}
|
|
133
|
-
onClose() {
|
|
134
|
-
this.close
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
this.
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
next: () => {
|
|
148
|
-
this.enable();
|
|
149
|
-
this.closeAndRefresh();
|
|
150
|
-
},
|
|
151
|
-
error: () => {
|
|
152
|
-
this.enable(false);
|
|
153
|
-
},
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
editStatus() {
|
|
157
|
-
this.disable();
|
|
158
|
-
this._originalStatusKey$
|
|
159
|
-
.pipe(take(1), switchMap(originalStatusKey => this.caseStatusService.updateInternalCaseStatus(this.documentDefinitionName, originalStatusKey, this.getFormValue())))
|
|
160
|
-
.subscribe({
|
|
161
|
-
next: () => {
|
|
162
|
-
this.enable();
|
|
163
|
-
this.closeAndRefresh();
|
|
164
|
-
},
|
|
165
|
-
error: () => {
|
|
166
|
-
this.enable(false);
|
|
167
|
-
},
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
editKeyButtonClick() {
|
|
171
|
-
this._editingKey$.next(true);
|
|
172
|
-
}
|
|
173
|
-
colorDropdownChange(event) {
|
|
174
|
-
const newColor = event?.item?.color;
|
|
175
|
-
if (newColor) {
|
|
176
|
-
this._selectedColor$.next(newColor);
|
|
177
|
-
this.statusFormGroup.patchValue({ color: newColor });
|
|
178
|
-
this.statusFormGroup.markAsDirty();
|
|
99
|
+
onClose(refresh = false) {
|
|
100
|
+
this.closeModal.emit(refresh ? 'closeAndRefresh' : 'close');
|
|
101
|
+
setTimeout(() => {
|
|
102
|
+
this.formGroup.reset();
|
|
103
|
+
this.formGroup.enable();
|
|
104
|
+
this.showRadioButtons = true;
|
|
105
|
+
this._notificationMessage$.next('zgw.columns.defaultWarning');
|
|
106
|
+
this._prefillColumn = null;
|
|
107
|
+
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
108
|
+
}
|
|
109
|
+
updateColumn() {
|
|
110
|
+
const columnValue = this.formGroup.get('column')?.value;
|
|
111
|
+
if (!columnValue || !this.definitionName) {
|
|
112
|
+
return;
|
|
179
113
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
114
|
+
const defaultSortValue = this.formGroup.get('defaultSort')?.value;
|
|
115
|
+
const defaultSort = !defaultSortValue
|
|
116
|
+
? null
|
|
117
|
+
: defaultSortValue === 'noDefault'
|
|
118
|
+
? null
|
|
119
|
+
: defaultSortValue;
|
|
120
|
+
const column = { ...columnValue.column, defaultSort };
|
|
121
|
+
if (!!this._defaultSortedColumn &&
|
|
122
|
+
this._defaultSortedColumn.key !== column.key &&
|
|
123
|
+
!!column.defaultSort) {
|
|
124
|
+
this.zgwDocumentenApiColumnService
|
|
125
|
+
.updateColumn(this.definitionName, {
|
|
126
|
+
...this._defaultSortedColumn,
|
|
127
|
+
defaultSort: null,
|
|
128
|
+
})
|
|
129
|
+
.pipe(switchMap(() => this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column)))
|
|
130
|
+
.subscribe(() => {
|
|
131
|
+
this.onClose(true);
|
|
132
|
+
});
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column).subscribe(() => {
|
|
136
|
+
this.onClose(true);
|
|
199
137
|
});
|
|
200
|
-
this._selectedColor$.next(InternalCaseStatusColor.Blue);
|
|
201
|
-
this.statusFormGroup.markAsPristine();
|
|
202
|
-
this.resetEditingKey();
|
|
203
|
-
}
|
|
204
|
-
resetEditingKey() {
|
|
205
|
-
this._editingKey$.next(false);
|
|
206
138
|
}
|
|
207
|
-
|
|
208
|
-
this._subscriptions.add(
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
this.statusFormGroup.patchValue({ key: this.getUniqueKey(titleValue) });
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
this.clearKey();
|
|
215
|
-
}
|
|
216
|
-
}
|
|
139
|
+
openDisableRadioSubscription() {
|
|
140
|
+
this._subscriptions.add(this.formGroup.get('column')?.valueChanges.subscribe(columnValue => {
|
|
141
|
+
this.showRadioButtons = !!columnValue?.column.sortable;
|
|
142
|
+
this._notificationMessage$.next(this.showRadioButtons ? 'zgw.columns.defaultWarning' : 'zgw.columns.notSortable');
|
|
217
143
|
}));
|
|
218
144
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
.toLowerCase()
|
|
222
|
-
.replace(/[^a-z0-9-_]+|-[^a-z0-9]+/g, '-')
|
|
223
|
-
.replace(/_[-_]+/g, '_')
|
|
224
|
-
.replace(/^[^a-z]+/g, '');
|
|
225
|
-
const usedKeys = this.usedKeys;
|
|
226
|
-
if (!usedKeys.includes(dashCaseKey)) {
|
|
227
|
-
return dashCaseKey;
|
|
228
|
-
}
|
|
229
|
-
return this.getUniqueKeyWithNumber(dashCaseKey, usedKeys);
|
|
230
|
-
}
|
|
231
|
-
getUniqueKeyWithNumber(dashCaseKey, usedKeys) {
|
|
232
|
-
const numbersFromCurrentKey = (dashCaseKey.match(/^\d+|\d+\b|\d+(?=\w)/g) || []).map((numberValue) => +numberValue);
|
|
233
|
-
const lastNumberFromCurrentKey = numbersFromCurrentKey.length > 0 && numbersFromCurrentKey[numbersFromCurrentKey.length - 1];
|
|
234
|
-
const newKey = lastNumberFromCurrentKey
|
|
235
|
-
? `${dashCaseKey.replace(`${lastNumberFromCurrentKey}`, `${lastNumberFromCurrentKey + 1}`)}`
|
|
236
|
-
: `${dashCaseKey}-1`;
|
|
237
|
-
if (usedKeys.includes(newKey)) {
|
|
238
|
-
return this.getUniqueKeyWithNumber(newKey, usedKeys);
|
|
239
|
-
}
|
|
240
|
-
return newKey;
|
|
241
|
-
}
|
|
242
|
-
clearKey() {
|
|
243
|
-
this.statusFormGroup.patchValue({ key: '' });
|
|
244
|
-
}
|
|
245
|
-
uniqueKeyValidator() {
|
|
246
|
-
return (control) => this.usedKeys?.every((key) => key !== control.value)
|
|
247
|
-
? null
|
|
248
|
-
: { uniqueKey: { value: control.value } };
|
|
249
|
-
}
|
|
250
|
-
disable() {
|
|
251
|
-
this.disabled$.next(true);
|
|
252
|
-
this.statusFormGroup.disable();
|
|
253
|
-
}
|
|
254
|
-
enable(delay = true) {
|
|
255
|
-
setTimeout(() => {
|
|
256
|
-
this.disabled$.next(false);
|
|
257
|
-
this.statusFormGroup.enable();
|
|
258
|
-
}, delay ? CARBON_CONSTANTS.modalAnimationMs : 0);
|
|
259
|
-
}
|
|
260
|
-
close() {
|
|
261
|
-
this.closeModalEvent.emit('close');
|
|
262
|
-
}
|
|
263
|
-
closeAndRefresh() {
|
|
264
|
-
this.closeModalEvent.emit('closeAndRefresh');
|
|
265
|
-
}
|
|
266
|
-
getFormValue() {
|
|
267
|
-
return {
|
|
268
|
-
key: this.key.value,
|
|
269
|
-
title: this.title.value,
|
|
270
|
-
visibleInCaseListByDefault: this.visibleInCaseListByDefault.value,
|
|
271
|
-
color: this.color.value,
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.IconService }, { token: i3.CaseStatusService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
275
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiColumnModalComponent, isStandalone: true, selector: "valtimo-documenten-api-column-modal", inputs: { type: "type", prefill: "prefill", usedKeys: "usedKeys", documentDefinitionName: "documentDefinitionName" }, outputs: { closeModalEvent: "closeModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n isAdd: isAdd$ | async,\n isEdit: isEdit$ | async,\n isClosed: isClosed$ | async,\n editingKey: editingKey$ | async,\n disabled: disabled$ | async\n } as obs\"\n [open]=\"!obs.isClosed\"\n size=\"sm\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ obs.isAdd ? ('dossierManagement.statuses.add' | translate) : '' }}\n {{ obs.isEdit ? ('dossierManagement.statuses.edit' | translate) : '' }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"statusForm; context: {obs: obs}\"></ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #colorDropdownItemTemplate let-item=\"item\">\n <div class=\"dropdown-color-tag\">\n <cds-tag *ngIf=\"item && item.content\" class=\"cds-tag--no-margin\" [type]=\"item?.tagType\">\n {{ 'interface.tagType.' + item?.tagType | translate }}\n </cds-tag>\n </div>\n</ng-template>\n\n<ng-template #statusForm let-obs=\"obs\">\n <form [formGroup]=\"statusFormGroup\" class=\"status-form\">\n <cds-label>\n {{ 'dossierManagement.statuses.columns.title' | translate }}\n\n <input cdsText formControlName=\"title\" [attr.modal-primary-focus]=\"true\" />\n </cds-label>\n\n <cds-label>\n {{ 'dossierManagement.statuses.columns.key' | translate }}\n\n <div class=\"edit-key-input\">\n <input\n cdsText\n formControlName=\"key\"\n [disabled]=\"!obs.editingKey\"\n [placeholder]=\"\n obs.isAdd && !obs.editingKey\n ? ('dossierManagement.statuses.keyAutoGenerated' | translate)\n : ''\n \"\n />\n\n <cds-icon-button\n *ngIf=\"!obs.editingKey && obs.isAdd\"\n [disabled]=\"obs.disabled\"\n (click)=\"editKeyButtonClick()\"\n kind=\"secondary\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-label>\n\n <div class=\"horizontal-inputs\">\n <cds-label>\n {{ 'dossierManagement.statuses.columns.color' | translate }}\n\n <cds-dropdown\n [appendInline]=\"false\"\n [placeholder]=\"'dossierManagement.statuses.colorPlaceholder' | translate\"\n (selected)=\"colorDropdownChange($event)\"\n >\n <cds-dropdown-list [items]=\"colorListItems$\" [listTpl]=\"colorDropdownItemTemplate\">\n </cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n\n <cds-toggle\n [label]=\"'dossierManagement.statuses.visibleTitle' | translate\"\n [onText]=\"'dossierManagement.statuses.visible' | translate\"\n [offText]=\"'dossierManagement.statuses.invisible' | translate\"\n [disabled]=\"obs.disabled\"\n [checked]=\"visibleInCaseListByDefault?.value\"\n (checkedChange)=\"toggleCheckedChange($event)\"\n ></cds-toggle>\n </div>\n </form>\n</ng-template>\n\n<ng-template #buttons let-obs=\"obs\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\" [disabled]=\"obs.disabled\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n *ngIf=\"obs.isAdd\"\n cdsButton=\"primary\"\n [disabled]=\"invalid || pristine || obs.disabled\"\n (click)=\"addStatus()\"\n >\n {{ 'interface.add' | translate }}\n </button>\n\n <button\n *ngIf=\"obs.isEdit\"\n cdsButton=\"primary\"\n [disabled]=\"invalid || pristine || obs.disabled\"\n (click)=\"editStatus()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n</ng-template>\n", styles: [".status-form{display:flex;flex-direction:column;gap:16px}.edit-key-input{height:40px;display:flex;width:100%;flex-direction:row;gap:16px;align-items:flex-end}::ng-deep .horizontal-inputs{display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}::ng-deep .horizontal-inputs .cds--label{width:100%;display:flex;flex-direction:column;gap:8px}::ng-deep .dropdown-color-tag .cds--tag{margin-top:-4px;margin-left:2px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i2.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i2.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i2.IconButton, selector: "cds-icon-button, ibm-icon-button", inputs: ["buttonNgClass", "buttonAttributes", "buttonId", "kind", "size", "type", "isExpressive", "disabled", "description"], outputs: ["click", "focus", "blur", "tooltipClick"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2.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: i2.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i2.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "skeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
145
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.TranslateService }, { token: i3.DocumentenApiColumnService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DocumentenApiColumnModalComponent, isStandalone: true, selector: "valtimo-documenten-api-column-modal", inputs: { definitionName: "definitionName", prefillColumn: "prefillColumn", type: "type", availableColumns: "availableColumns", configuredColumns: "configuredColumns" }, outputs: { closeModal: "closeModal" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-documenten-api-column-modal__content{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i5.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i5.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i5.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i5.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i5.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i5.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: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: RadioModule }, { kind: "component", type: i5.Radio, selector: "cds-radio, ibm-radio", inputs: ["checked", "name", "disabled", "labelPlacement", "ariaLabelledby", "ariaLabel", "required", "value", "skeleton", "id"], outputs: ["change"] }, { kind: "component", type: i5.RadioGroup, selector: "cds-radio-group, ibm-radio-group", inputs: ["selected", "value", "name", "disabled", "skeleton", "orientation", "labelPlacement", "legend", "ariaLabel", "ariaLabelledby", "helperText", "invalid", "invalidText", "warn", "warnText"], outputs: ["change"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i5.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
276
147
|
}
|
|
277
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DocumentenApiColumnModalComponent, decorators: [{
|
|
278
149
|
type: Component,
|
|
279
150
|
args: [{ selector: 'valtimo-documenten-api-column-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
280
151
|
CommonModule,
|
|
281
152
|
ModalModule,
|
|
282
|
-
TagModule,
|
|
283
153
|
TranslateModule,
|
|
284
154
|
InputModule,
|
|
285
155
|
ReactiveFormsModule,
|
|
286
156
|
ButtonModule,
|
|
287
157
|
DropdownModule,
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
158
|
+
RadioModule,
|
|
159
|
+
NotificationModule,
|
|
160
|
+
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-documenten-api-column-modal__content{display:flex;flex-direction:column;gap:16px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
161
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.TranslateService }, { type: i3.DocumentenApiColumnService }], propDecorators: { definitionName: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], prefillColumn: [{
|
|
291
164
|
type: Input
|
|
292
|
-
}],
|
|
165
|
+
}], type: [{
|
|
293
166
|
type: Input
|
|
294
|
-
}],
|
|
167
|
+
}], availableColumns: [{
|
|
295
168
|
type: Input
|
|
296
|
-
}],
|
|
169
|
+
}], configuredColumns: [{
|
|
297
170
|
type: Input
|
|
298
|
-
}],
|
|
171
|
+
}], closeModal: [{
|
|
299
172
|
type: Output
|
|
300
173
|
}] } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vemd3L3NyYy9saWIvbW9kdWxlcy9kb2N1bWVudGVuLWFwaS9jb21wb25lbnRzL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC9kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby96Z3cvc3JjL2xpYi9tb2R1bGVzL2RvY3VtZW50ZW4tYXBpL2NvbXBvbmVudHMvZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEdBQUcsRUFFSCxZQUFZLEVBQ1osU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBR0wsbUJBQW1CLEVBR25CLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsdUJBQXVCLEdBQ3hCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBRWQsV0FBVyxFQUVYLFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQW9CN0MsTUFBTSxPQUFPLGlDQUFpQztJQUM1QyxJQUFvQixJQUFJLENBQUMsS0FBbUM7UUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsSUFBSSxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQW9CLE9BQU8sQ0FBQyxLQUF5QjtRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBd0VELElBQVcsMEJBQTBCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQWtCRCxZQUNtQixFQUFlLEVBQ2YsV0FBd0IsRUFDeEIsaUJBQW9DLEVBQ3BDLGdCQUFrQztRQUhsQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBL0dwQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUEwQyxDQUFDO1FBRTdFLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBK0IsU0FBUyxDQUFDLENBQUM7UUFDckUseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQ3pELFNBQVMsQ0FDVixDQUFDO1FBQ2UsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFFckUsY0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTVELG9CQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDOUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQy9DLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7WUFDMUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ2hELENBQUMsQ0FBQztRQUVhLFlBQU8sR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RixHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxLQUFLLE1BQU0sSUFBSSxhQUFhO2dCQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUNqQyxDQUFDO1FBRWMsV0FBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQ3JELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFDM0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxLQUFLO2dCQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRWMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRS9DLFdBQU0sR0FBOEI7WUFDbkQsdUJBQXVCLENBQUMsR0FBRztZQUMzQix1QkFBdUIsQ0FBQyxPQUFPO1lBQy9CLHVCQUF1QixDQUFDLE1BQU07WUFDOUIsdUJBQXVCLENBQUMsSUFBSTtZQUM1Qix1QkFBdUIsQ0FBQyxJQUFJO1lBQzVCLHVCQUF1QixDQUFDLEtBQUs7WUFDN0IsdUJBQXVCLENBQUMsSUFBSTtZQUM1Qix1QkFBdUIsQ0FBQyxJQUFJO1lBQzVCLHVCQUF1QixDQUFDLFFBQVE7WUFDaEMsdUJBQXVCLENBQUMsUUFBUTtZQUNoQyx1QkFBdUIsQ0FBQyxZQUFZO1lBQ3BDLHVCQUF1QixDQUFDLE9BQU87U0FDaEMsQ0FBQztRQUVlLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQTBCLFNBQVMsQ0FBQyxDQUFDO1FBRTNFLG9CQUFlLEdBQTJCLGFBQWEsQ0FBQztZQUN0RSxJQUFJLENBQUMsZUFBZTtZQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNwQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEIsUUFBUSxFQUFFLEtBQUssS0FBSyxhQUFhO1lBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUNwQyxvQkFBb0I7Z0JBQ2xCLHVCQUF1QixDQUFDLHFDQUFxQyxDQUFDLEtBQUssQ0FBQyxDQUN2RTtZQUNELEtBQUs7WUFDTCxPQUFPLEVBQUUsdUJBQXVCLENBQUMscUNBQXFDLENBQUMsS0FBSyxDQUFDO1NBQzlFLENBQUMsQ0FBQyxDQUNKLENBQ0YsQ0FBQztRQTBCZSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXBELGdCQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNaLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVlLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXRELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVFuRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE9BQWdCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO1lBQzlCLDBCQUEwQixFQUFFLE9BQU87U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyxpQkFBaUI7YUFDbkIsc0JBQXNCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUN4RSxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLElBQUksQ0FDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUM3QyxJQUFJLENBQUMsc0JBQXNCLEVBQzNCLGlCQUFpQixFQUNqQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQ3BCLENBQ0YsQ0FDRjthQUNBLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUcxQjtRQUNDLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBZ0MsQ0FBQztRQUUvRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLGFBQWlDO1FBQ25ELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO1lBQzlCLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRztZQUN0QixLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUs7WUFDMUIsMEJBQTBCLEVBQUUsYUFBYSxDQUFDLDBCQUEwQjtZQUNwRSxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUs7U0FDM0IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUM7WUFDOUIsR0FBRyxFQUFFLEVBQUU7WUFDUCxLQUFLLEVBQUUsRUFBRTtZQUNULDBCQUEwQixFQUFFLElBQUk7WUFDaEMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLElBQUk7U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDckIsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQy9FLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7WUFDbEMsSUFBSSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDZixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQztnQkFDeEUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFhO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLEdBQUcsS0FBSyxFQUFFO2FBQzNCLFdBQVcsRUFBRTthQUNiLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxHQUFHLENBQUM7YUFDekMsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7YUFDdkIsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRS9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsV0FBbUIsRUFBRSxRQUFrQjtRQUNwRSxNQUFNLHFCQUFxQixHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDbEYsQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FDdEMsQ0FBQztRQUNGLE1BQU0sd0JBQXdCLEdBQzVCLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUkscUJBQXFCLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE1BQU0sTUFBTSxHQUFHLHdCQUF3QjtZQUNyQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsd0JBQXdCLEVBQUUsRUFBRSxHQUFHLHdCQUF3QixHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDNUYsQ0FBQyxDQUFDLEdBQUcsV0FBVyxJQUFJLENBQUM7UUFFdkIsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sUUFBUTtRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRSxDQUMzRCxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDMUQsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsRUFBQyxTQUFTLEVBQUUsRUFBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBQyxFQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUk7UUFDekIsVUFBVSxDQUNSLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxFQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sWUFBWTtRQUNsQixPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSztZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQ3ZCLDBCQUEwQixFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLO1lBQ2pFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQWdDO1NBQ25ELENBQUM7SUFDSixDQUFDOzhHQTNVVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyxzUUNuRjlDLGkzSUF1SUEscWxDRC9ESSxZQUFZLDhWQUNaLFdBQVcsK3NCQUNYLFNBQVMsb0lBQ1QsZUFBZSwyRkFDZixXQUFXLHlXQUNYLG1CQUFtQiw0OEJBQ25CLFlBQVksNmNBQ1osY0FBYyxtckJBQ2QsWUFBWTs7MkZBR0gsaUNBQWlDO2tCQWxCN0MsU0FBUzsrQkFDRSxxQ0FBcUMsbUJBRzlCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxTQUFTO3dCQUNULGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxZQUFZO3FCQUNiO3lLQUdtQixJQUFJO3NCQUF2QixLQUFLO2dCQVljLE9BQU87c0JBQTFCLEtBQUs7Z0JBSVUsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBRVcsZUFBZTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEb2N1bWVudGVuQXBpQ29sdW1uTW9kYWxUeXBlLCBEb2N1bWVudGVuQXBpQ29sdW1uTW9kYWxUeXBlQ2xvc2VFdmVudH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q0FSQk9OX0NPTlNUQU5UU30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1CdWlsZGVyLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JGbixcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ2FzZVN0YXR1c1NlcnZpY2UsXG4gIEludGVybmFsQ2FzZVN0YXR1cyxcbiAgSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IsXG4gIEludGVybmFsQ2FzZVN0YXR1c1V0aWxzLFxufSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge1xuICBCdXR0b25Nb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxuICBJY29uU2VydmljZSxcbiAgSW5wdXRNb2R1bGUsXG4gIExpc3RJdGVtLFxuICBNb2RhbE1vZHVsZSxcbiAgVGFnTW9kdWxlLFxuICBUb2dnbGVNb2R1bGUsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtFZGl0MTZ9IGZyb20gJ0BjYXJib24vaWNvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNb2RhbE1vZHVsZSxcbiAgICBUYWdNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIFRvZ2dsZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHR5cGUodmFsdWU6IERvY3VtZW50ZW5BcGlDb2x1bW5Nb2RhbFR5cGUpIHtcbiAgICB0aGlzLl90eXBlLm5leHQodmFsdWUpO1xuXG4gICAgaWYgKHZhbHVlID09PSAnY2xvc2VkJykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3R5cGVBbmltYXRpb25EZWxheSQubmV4dCh2YWx1ZSk7XG4gICAgICB9LCBDQVJCT05fQ09OU1RBTlRTLm1vZGFsQW5pbWF0aW9uTXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl90eXBlQW5pbWF0aW9uRGVsYXkkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgcHJlZmlsbCh2YWx1ZTogSW50ZXJuYWxDYXNlU3RhdHVzKSB7XG4gICAgdGhpcy5fcHJlZmlsbFN0YXR1cy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VkS2V5cyE6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBwdWJsaWMgZG9jdW1lbnREZWZpbml0aW9uTmFtZSE6IHN0cmluZztcblxuICBAT3V0cHV0KCkgcHVibGljIGNsb3NlTW9kYWxFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZUNsb3NlRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdHlwZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZT4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHlwZUFuaW1hdGlvbkRlbGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZT4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByZWZpbGxTdGF0dXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEludGVybmFsQ2FzZVN0YXR1cz4odW5kZWZpbmVkKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaXNDbG9zZWQkID0gdGhpcy5fdHlwZS5waXBlKG1hcCh0eXBlID0+IHR5cGUgPT09ICdjbG9zZWQnKSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1c0Zvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIHRpdGxlOiB0aGlzLmZiLmNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIGtleTogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy51bmlxdWVLZXlWYWxpZGF0b3IoKV0pLFxuICAgIHZpc2libGVJbkNhc2VMaXN0QnlEZWZhdWx0OiB0aGlzLmZiLmNvbnRyb2wodHJ1ZSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgY29sb3I6IHRoaXMuZmIuY29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBpc0VkaXQkID0gY29tYmluZUxhdGVzdChbdGhpcy5fdHlwZUFuaW1hdGlvbkRlbGF5JCwgdGhpcy5fcHJlZmlsbFN0YXR1c10pLnBpcGUoXG4gICAgdGFwKChbdHlwZSwgcHJlZmlsbFN0YXR1c10pID0+IHtcbiAgICAgIGlmICh0eXBlID09PSAnZWRpdCcgJiYgcHJlZmlsbFN0YXR1cykgdGhpcy5wcmVmaWxsRm9ybShwcmVmaWxsU3RhdHVzKTtcbiAgICB9KSxcbiAgICBtYXAoKFt0eXBlXSkgPT4gdHlwZSA9PT0gJ2VkaXQnKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBpc0FkZCQgPSB0aGlzLl90eXBlQW5pbWF0aW9uRGVsYXkkLnBpcGUoXG4gICAgbWFwKHR5cGUgPT4gdHlwZSA9PT0gJ2FkZCcpLFxuICAgIHRhcChpc0FkZCA9PiB7XG4gICAgICBpZiAoaXNBZGQpIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBDT0xPUlM6IEludGVybmFsQ2FzZVN0YXR1c0NvbG9yW10gPSBbXG4gICAgSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IuUmVkLFxuICAgIEludGVybmFsQ2FzZVN0YXR1c0NvbG9yLk1hZ2VudGEsXG4gICAgSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IuUHVycGxlLFxuICAgIEludGVybmFsQ2FzZVN0YXR1c0NvbG9yLkJsdWUsXG4gICAgSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IuVGVhbCxcbiAgICBJbnRlcm5hbENhc2VTdGF0dXNDb2xvci5HcmVlbixcbiAgICBJbnRlcm5hbENhc2VTdGF0dXNDb2xvci5DeWFuLFxuICAgIEludGVybmFsQ2FzZVN0YXR1c0NvbG9yLkdyYXksXG4gICAgSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IuQ29vbEdyYXksXG4gICAgSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IuV2FybUdyYXksXG4gICAgSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IuSGlnaENvbnRyYXN0LFxuICAgIEludGVybmFsQ2FzZVN0YXR1c0NvbG9yLk91dGxpbmUsXG4gIF07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRDb2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEludGVybmFsQ2FzZVN0YXR1c0NvbG9yPih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb2xvckxpc3RJdGVtcyQ6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9zZWxlY3RlZENvbG9yJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtzZWxlY3RlZENvbG9yXSkgPT5cbiAgICAgIHRoaXMuQ09MT1JTLm1hcChjb2xvciA9PiAoe1xuICAgICAgICBzZWxlY3RlZDogY29sb3IgPT09IHNlbGVjdGVkQ29sb3IsXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdpbnRlcmZhY2UudGFnVHlwZS4nICtcbiAgICAgICAgICAgIEludGVybmFsQ2FzZVN0YXR1c1V0aWxzLmdldFRhZ1R5cGVGcm9tSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IoY29sb3IpXG4gICAgICAgICksXG4gICAgICAgIGNvbG9yLFxuICAgICAgICB0YWdUeXBlOiBJbnRlcm5hbENhc2VTdGF0dXNVdGlscy5nZXRUYWdUeXBlRnJvbUludGVybmFsQ2FzZVN0YXR1c0NvbG9yKGNvbG9yKSxcbiAgICAgIH0pKVxuICAgIClcbiAgKTtcblxuICBwdWJsaWMgZ2V0IHZpc2libGVJbkNhc2VMaXN0QnlEZWZhdWx0KCk6IEFic3RyYWN0Q29udHJvbDxib29sZWFuLCBib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzRm9ybUdyb3VwPy5nZXQoJ3Zpc2libGVJbkNhc2VMaXN0QnlEZWZhdWx0Jyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGtleSgpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXNGb3JtR3JvdXA/LmdldCgna2V5Jyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRpdGxlKCk6IEFic3RyYWN0Q29udHJvbDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1c0Zvcm1Hcm91cD8uZ2V0KCd0aXRsZScpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb2xvcigpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXNGb3JtR3JvdXA/LmdldCgnY29sb3InKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnN0YXR1c0Zvcm1Hcm91cD8uaW52YWxpZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJpc3RpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zdGF0dXNGb3JtR3JvdXA/LnByaXN0aW5lO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZWRpdGluZ0tleSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWRpdGluZ0tleSQgPSB0aGlzLl9lZGl0aW5nS2V5JC5waXBlKFxuICAgIHRhcChlZGl0aW5nID0+IHtcbiAgICAgIGlmIChlZGl0aW5nKSB7XG4gICAgICAgIHRoaXMua2V5Py5lbmFibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMua2V5Py5kaXNhYmxlKCk7XG4gICAgICB9XG4gICAgfSlcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9vcmlnaW5hbFN0YXR1c0tleSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlU3RhdHVzU2VydmljZTogQ2FzZVN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaWNvblNlcnZpY2UucmVnaXN0ZXJBbGwoW0VkaXQxNl0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkF1dG9LZXlTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQ2hlY2tlZENoYW5nZShjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0dXNGb3JtR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICB2aXNpYmxlSW5DYXNlTGlzdEJ5RGVmYXVsdDogY2hlY2tlZCxcbiAgICB9KTtcbiAgICB0aGlzLnN0YXR1c0Zvcm1Hcm91cC5tYXJrQXNEaXJ0eSgpO1xuICB9XG5cbiAgcHVibGljIGFkZFN0YXR1cygpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMuY2FzZVN0YXR1c1NlcnZpY2VcbiAgICAgIC5zYXZlSW50ZXJuYWxDYXNlU3RhdHVzKHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSwgdGhpcy5nZXRGb3JtVmFsdWUoKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgICB0aGlzLmNsb3NlQW5kUmVmcmVzaCgpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZW5hYmxlKGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVkaXRTdGF0dXMoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlKCk7XG5cbiAgICB0aGlzLl9vcmlnaW5hbFN0YXR1c0tleSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAob3JpZ2luYWxTdGF0dXNLZXkgPT5cbiAgICAgICAgICB0aGlzLmNhc2VTdGF0dXNTZXJ2aWNlLnVwZGF0ZUludGVybmFsQ2FzZVN0YXR1cyhcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgIG9yaWdpbmFsU3RhdHVzS2V5LFxuICAgICAgICAgICAgdGhpcy5nZXRGb3JtVmFsdWUoKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmVuYWJsZSgpO1xuICAgICAgICAgIHRoaXMuY2xvc2VBbmRSZWZyZXNoKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGUoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZWRpdEtleUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuX2VkaXRpbmdLZXkkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgY29sb3JEcm9wZG93bkNoYW5nZShldmVudDoge1xuICAgIGl0ZW06IHtjb2xvcjogc3RyaW5nOyBjb250ZW50OiBzdHJpbmc7IHNlbGVjdGVkOiBib29sZWFufTtcbiAgICBpc1VwZGF0ZTogYm9vbGVhbjtcbiAgfSk6IHZvaWQge1xuICAgIGNvbnN0IG5ld0NvbG9yID0gZXZlbnQ/Lml0ZW0/LmNvbG9yIGFzIEludGVybmFsQ2FzZVN0YXR1c0NvbG9yO1xuXG4gICAgaWYgKG5ld0NvbG9yKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZENvbG9yJC5uZXh0KG5ld0NvbG9yKTtcbiAgICAgIHRoaXMuc3RhdHVzRm9ybUdyb3VwLnBhdGNoVmFsdWUoe2NvbG9yOiBuZXdDb2xvcn0pO1xuICAgICAgdGhpcy5zdGF0dXNGb3JtR3JvdXAubWFya0FzRGlydHkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByZWZpbGxGb3JtKHByZWZpbGxTdGF0dXM6IEludGVybmFsQ2FzZVN0YXR1cyk6IHZvaWQge1xuICAgIHRoaXMuX29yaWdpbmFsU3RhdHVzS2V5JC5uZXh0KHByZWZpbGxTdGF0dXMua2V5KTtcbiAgICB0aGlzLnN0YXR1c0Zvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgIGtleTogcHJlZmlsbFN0YXR1cy5rZXksXG4gICAgICB0aXRsZTogcHJlZmlsbFN0YXR1cy50aXRsZSxcbiAgICAgIHZpc2libGVJbkNhc2VMaXN0QnlEZWZhdWx0OiBwcmVmaWxsU3RhdHVzLnZpc2libGVJbkNhc2VMaXN0QnlEZWZhdWx0LFxuICAgICAgY29sb3I6IHByZWZpbGxTdGF0dXMuY29sb3IsXG4gICAgfSk7XG4gICAgdGhpcy5fc2VsZWN0ZWRDb2xvciQubmV4dChwcmVmaWxsU3RhdHVzLmNvbG9yKTtcbiAgICB0aGlzLnN0YXR1c0Zvcm1Hcm91cC5tYXJrQXNQcmlzdGluZSgpO1xuICAgIHRoaXMucmVzZXRFZGl0aW5nS2V5KCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c0Zvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgIGtleTogJycsXG4gICAgICB0aXRsZTogJycsXG4gICAgICB2aXNpYmxlSW5DYXNlTGlzdEJ5RGVmYXVsdDogdHJ1ZSxcbiAgICAgIGNvbG9yOiBJbnRlcm5hbENhc2VTdGF0dXNDb2xvci5CbHVlLFxuICAgIH0pO1xuICAgIHRoaXMuX3NlbGVjdGVkQ29sb3IkLm5leHQoSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IuQmx1ZSk7XG4gICAgdGhpcy5zdGF0dXNGb3JtR3JvdXAubWFya0FzUHJpc3RpbmUoKTtcbiAgICB0aGlzLnJlc2V0RWRpdGluZ0tleSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldEVkaXRpbmdLZXkoKTogdm9pZCB7XG4gICAgdGhpcy5fZWRpdGluZ0tleSQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5BdXRvS2V5U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5pc0FkZCQsIHRoaXMudGl0bGUudmFsdWVDaGFuZ2VzLCB0aGlzLmVkaXRpbmdLZXkkXSkuc3Vic2NyaWJlKFxuICAgICAgICAoW2lzQWRkLCB0aXRsZVZhbHVlLCBlZGl0aW5nS2V5XSkgPT4ge1xuICAgICAgICAgIGlmIChpc0FkZCAmJiAhZWRpdGluZ0tleSkge1xuICAgICAgICAgICAgaWYgKHRpdGxlVmFsdWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5zdGF0dXNGb3JtR3JvdXAucGF0Y2hWYWx1ZSh7a2V5OiB0aGlzLmdldFVuaXF1ZUtleSh0aXRsZVZhbHVlKX0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jbGVhcktleSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFVuaXF1ZUtleSh0aXRsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXNoQ2FzZUtleSA9IGAke3RpdGxlfWBcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvW15hLXowLTktX10rfC1bXmEtejAtOV0rL2csICctJylcbiAgICAgIC5yZXBsYWNlKC9fWy1fXSsvZywgJ18nKVxuICAgICAgLnJlcGxhY2UoL15bXmEtel0rL2csICcnKTtcbiAgICBjb25zdCB1c2VkS2V5cyA9IHRoaXMudXNlZEtleXM7XG5cbiAgICBpZiAoIXVzZWRLZXlzLmluY2x1ZGVzKGRhc2hDYXNlS2V5KSkge1xuICAgICAgcmV0dXJuIGRhc2hDYXNlS2V5O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldFVuaXF1ZUtleVdpdGhOdW1iZXIoZGFzaENhc2VLZXksIHVzZWRLZXlzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VW5pcXVlS2V5V2l0aE51bWJlcihkYXNoQ2FzZUtleTogc3RyaW5nLCB1c2VkS2V5czogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IG51bWJlcnNGcm9tQ3VycmVudEtleSA9IChkYXNoQ2FzZUtleS5tYXRjaCgvXlxcZCt8XFxkK1xcYnxcXGQrKD89XFx3KS9nKSB8fCBbXSkubWFwKFxuICAgICAgKG51bWJlclZhbHVlOiBzdHJpbmcpID0+ICtudW1iZXJWYWx1ZVxuICAgICk7XG4gICAgY29uc3QgbGFzdE51bWJlckZyb21DdXJyZW50S2V5ID1cbiAgICAgIG51bWJlcnNGcm9tQ3VycmVudEtleS5sZW5ndGggPiAwICYmIG51bWJlcnNGcm9tQ3VycmVudEtleVtudW1iZXJzRnJvbUN1cnJlbnRLZXkubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgbmV3S2V5ID0gbGFzdE51bWJlckZyb21DdXJyZW50S2V5XG4gICAgICA/IGAke2Rhc2hDYXNlS2V5LnJlcGxhY2UoYCR7bGFzdE51bWJlckZyb21DdXJyZW50S2V5fWAsIGAke2xhc3ROdW1iZXJGcm9tQ3VycmVudEtleSArIDF9YCl9YFxuICAgICAgOiBgJHtkYXNoQ2FzZUtleX0tMWA7XG5cbiAgICBpZiAodXNlZEtleXMuaW5jbHVkZXMobmV3S2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VW5pcXVlS2V5V2l0aE51bWJlcihuZXdLZXksIHVzZWRLZXlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3S2V5O1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhcktleSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c0Zvcm1Hcm91cC5wYXRjaFZhbHVlKHtrZXk6ICcnfSk7XG4gIH1cblxuICBwcml2YXRlIHVuaXF1ZUtleVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxuICAgICAgdGhpcy51c2VkS2V5cz8uZXZlcnkoKGtleTogc3RyaW5nKSA9PiBrZXkgIT09IGNvbnRyb2wudmFsdWUpXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHt1bmlxdWVLZXk6IHt2YWx1ZTogY29udHJvbC52YWx1ZX19O1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5zdGF0dXNGb3JtR3JvdXAuZGlzYWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGUoZGVsYXkgPSB0cnVlKTogdm9pZCB7XG4gICAgc2V0VGltZW91dChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuc3RhdHVzRm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgICAgfSxcbiAgICAgIGRlbGF5ID8gQ0FSQk9OX0NPTlNUQU5UUy5tb2RhbEFuaW1hdGlvbk1zIDogMFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQoJ2Nsb3NlJyk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlQW5kUmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlTW9kYWxFdmVudC5lbWl0KCdjbG9zZUFuZFJlZnJlc2gnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybVZhbHVlKCk6IEludGVybmFsQ2FzZVN0YXR1cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogdGhpcy5rZXkudmFsdWUsXG4gICAgICB0aXRsZTogdGhpcy50aXRsZS52YWx1ZSxcbiAgICAgIHZpc2libGVJbkNhc2VMaXN0QnlEZWZhdWx0OiB0aGlzLnZpc2libGVJbkNhc2VMaXN0QnlEZWZhdWx0LnZhbHVlLFxuICAgICAgY29sb3I6IHRoaXMuY29sb3IudmFsdWUgYXMgSW50ZXJuYWxDYXNlU3RhdHVzQ29sb3IsXG4gICAgfTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLW1vZGFsXG4gIHZhbHRpbW9DZHNNb2RhbFxuICAqbmdJZj1cIntcbiAgICBpc0FkZDogaXNBZGQkIHwgYXN5bmMsXG4gICAgaXNFZGl0OiBpc0VkaXQkIHwgYXN5bmMsXG4gICAgaXNDbG9zZWQ6IGlzQ2xvc2VkJCB8IGFzeW5jLFxuICAgIGVkaXRpbmdLZXk6IGVkaXRpbmdLZXkkIHwgYXN5bmMsXG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkJCB8IGFzeW5jXG4gIH0gYXMgb2JzXCJcbiAgW29wZW5dPVwiIW9icy5pc0Nsb3NlZFwiXG4gIHNpemU9XCJzbVwiXG4+XG4gIDxjZHMtbW9kYWwtaGVhZGVyIHNob3dDbG9zZUJ1dHRvbj1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwib25DbG9zZSgpXCI+XG4gICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz5cbiAgICAgIHt7IG9icy5pc0FkZCA/ICgnZG9zc2llck1hbmFnZW1lbnQuc3RhdHVzZXMuYWRkJyB8IHRyYW5zbGF0ZSkgOiAnJyB9fVxuICAgICAge3sgb2JzLmlzRWRpdCA/ICgnZG9zc2llck1hbmFnZW1lbnQuc3RhdHVzZXMuZWRpdCcgfCB0cmFuc2xhdGUpIDogJycgfX1cbiAgICA8L2gzPlxuICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG5cbiAgPHNlY3Rpb24gY2RzTW9kYWxDb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0dXNGb3JtOyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvc2VjdGlvbj5cblxuICA8Y2RzLW1vZGFsLWZvb3Rlcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uczsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L2Nkcy1tb2RhbD5cblxuPG5nLXRlbXBsYXRlICNjb2xvckRyb3Bkb3duSXRlbVRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY29sb3ItdGFnXCI+XG4gICAgPGNkcy10YWcgKm5nSWY9XCJpdGVtICYmIGl0ZW0uY29udGVudFwiIGNsYXNzPVwiY2RzLXRhZy0tbm8tbWFyZ2luXCIgW3R5cGVdPVwiaXRlbT8udGFnVHlwZVwiPlxuICAgICAge3sgJ2ludGVyZmFjZS50YWdUeXBlLicgKyBpdGVtPy50YWdUeXBlIHwgdHJhbnNsYXRlIH19XG4gICAgPC9jZHMtdGFnPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3RhdHVzRm9ybSBsZXQtb2JzPVwib2JzXCI+XG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwic3RhdHVzRm9ybUdyb3VwXCIgY2xhc3M9XCJzdGF0dXMtZm9ybVwiPlxuICAgIDxjZHMtbGFiZWw+XG4gICAgICB7eyAnZG9zc2llck1hbmFnZW1lbnQuc3RhdHVzZXMuY29sdW1ucy50aXRsZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPGlucHV0IGNkc1RleHQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiBbYXR0ci5tb2RhbC1wcmltYXJ5LWZvY3VzXT1cInRydWVcIiAvPlxuICAgIDwvY2RzLWxhYmVsPlxuXG4gICAgPGNkcy1sYWJlbD5cbiAgICAgIHt7ICdkb3NzaWVyTWFuYWdlbWVudC5zdGF0dXNlcy5jb2x1bW5zLmtleScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgPGRpdiBjbGFzcz1cImVkaXQta2V5LWlucHV0XCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJrZXlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhb2JzLmVkaXRpbmdLZXlcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgIG9icy5pc0FkZCAmJiAhb2JzLmVkaXRpbmdLZXlcbiAgICAgICAgICAgICAgPyAoJ2Rvc3NpZXJNYW5hZ2VtZW50LnN0YXR1c2VzLmtleUF1dG9HZW5lcmF0ZWQnIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8Y2RzLWljb24tYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCIhb2JzLmVkaXRpbmdLZXkgJiYgb2JzLmlzQWRkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdEtleUJ1dHRvbkNsaWNrKClcIlxuICAgICAgICAgIGtpbmQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImVkaXRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgICAgPC9jZHMtaWNvbi1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nkcy1sYWJlbD5cblxuICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWlucHV0c1wiPlxuICAgICAgPGNkcy1sYWJlbD5cbiAgICAgICAge3sgJ2Rvc3NpZXJNYW5hZ2VtZW50LnN0YXR1c2VzLmNvbHVtbnMuY29sb3InIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgPGNkcy1kcm9wZG93blxuICAgICAgICAgIFthcHBlbmRJbmxpbmVdPVwiZmFsc2VcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZG9zc2llck1hbmFnZW1lbnQuc3RhdHVzZXMuY29sb3JQbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIChzZWxlY3RlZCk9XCJjb2xvckRyb3Bkb3duQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJjb2xvckxpc3RJdGVtcyRcIiBbbGlzdFRwbF09XCJjb2xvckRyb3Bkb3duSXRlbVRlbXBsYXRlXCI+XG4gICAgICAgICAgPC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICAgICAgPC9jZHMtZHJvcGRvd24+XG4gICAgICA8L2Nkcy1sYWJlbD5cblxuICAgICAgPGNkcy10b2dnbGVcbiAgICAgICAgW2xhYmVsXT1cIidkb3NzaWVyTWFuYWdlbWVudC5zdGF0dXNlcy52aXNpYmxlVGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW29uVGV4dF09XCInZG9zc2llck1hbmFnZW1lbnQuc3RhdHVzZXMudmlzaWJsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbb2ZmVGV4dF09XCInZG9zc2llck1hbmFnZW1lbnQuc3RhdHVzZXMuaW52aXNpYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICBbY2hlY2tlZF09XCJ2aXNpYmxlSW5DYXNlTGlzdEJ5RGVmYXVsdD8udmFsdWVcIlxuICAgICAgICAoY2hlY2tlZENoYW5nZSk9XCJ0b2dnbGVDaGVja2VkQ2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvY2RzLXRvZ2dsZT5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zIGxldC1vYnM9XCJvYnNcIj5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwib25DbG9zZSgpXCIgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiPlxuICAgIHt7ICdpbnRlcmZhY2UuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJvYnMuaXNBZGRcIlxuICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgIFtkaXNhYmxlZF09XCJpbnZhbGlkIHx8IHByaXN0aW5lIHx8IG9icy5kaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cImFkZFN0YXR1cygpXCJcbiAgPlxuICAgIHt7ICdpbnRlcmZhY2UuYWRkJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJvYnMuaXNFZGl0XCJcbiAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiaW52YWxpZCB8fCBwcmlzdGluZSB8fCBvYnMuZGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJlZGl0U3RhdHVzKClcIlxuICA+XG4gICAge3sgJ2ludGVyZmFjZS5zYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vemd3L3NyYy9saWIvbW9kdWxlcy9kb2N1bWVudGVuLWFwaS9jb21wb25lbnRzL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC9kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby96Z3cvc3JjL2xpYi9tb2R1bGVzL2RvY3VtZW50ZW4tYXBpL2NvbXBvbmVudHMvZG9jdW1lbnRlbi1hcGktY29sdW1uLW1vZGFsL2RvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsbUJBQW1CLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxXQUFXLEVBRVgsV0FBVyxFQUVYLGtCQUFrQixFQUNsQixXQUFXLEdBQ1osTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU85RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFB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R1QsaUNBQWlDO2tCQWxCN0MsU0FBUzsrQkFDRSxxQ0FBcUMsbUJBRzlCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxrQkFBa0I7cUJBQ25CO3dKQUdlLGNBQWM7c0JBQTdCLEtBQUs7Z0JBR2MsYUFBYTtzQkFBaEMsS0FBSztnQkFjYyxJQUFJO3NCQUF2QixLQUFLO2dCQVdjLGdCQUFnQjtzQkFBbkMsS0FBSztnQkFvQmMsaUJBQWlCO3NCQUFwQyxLQUFLO2dCQU1JLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRHJvcGRvd25Nb2R1bGUsXG4gIElucHV0TW9kdWxlLFxuICBMaXN0SXRlbSxcbiAgTW9kYWxNb2R1bGUsXG4gIE5vdGlmaWNhdGlvbkNvbnRlbnQsXG4gIE5vdGlmaWNhdGlvbk1vZHVsZSxcbiAgUmFkaW9Nb2R1bGUsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJlZENvbHVtbixcbiAgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZSxcbiAgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZUNsb3NlRXZlbnQsXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0RvY3VtZW50ZW5BcGlDb2x1bW5TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0NBUkJPTl9DT05TVEFOVFN9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvY3VtZW50ZW4tYXBpLWNvbHVtbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTW9kYWxNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIFJhZGlvTW9kdWxlLFxuICAgIE5vdGlmaWNhdGlvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgZGVmaW5pdGlvbk5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIF9wcmVmaWxsQ29sdW1uITogTGlzdEl0ZW1bXSB8IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgcHJlZmlsbENvbHVtbih2YWx1ZTogQ29uZmlndXJlZENvbHVtbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbHVtbiA9IHtjb250ZW50OiB2YWx1ZS5rZXksIHNlbGVjdGVkOiB0cnVlLCBjb2x1bW46IHZhbHVlfTtcbiAgICBjb25zdCBkZWZhdWx0U29ydCA9IHZhbHVlLmRlZmF1bHRTb3J0ID8/ICdub0RlZmF1bHQnO1xuICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoe2NvbHVtbiwgZGVmYXVsdFNvcnR9KTtcbiAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvbHVtbicpPy5kaXNhYmxlKCk7XG4gICAgdGhpcy5fcHJlZmlsbENvbHVtbiA9IFtjb2x1bW5dO1xuICB9XG4gIHB1YmxpYyBnZXQgcHJlZmlsbENvbHVtbigpOiBMaXN0SXRlbVtdIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZWZpbGxDb2x1bW47XG4gIH1cblxuICBwcml2YXRlIF90eXBlITogRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZTtcbiAgQElucHV0KCkgcHVibGljIHNldCB0eXBlKHZhbHVlOiBEb2N1bWVudGVuQXBpQ29sdW1uTW9kYWxUeXBlKSB7XG4gICAgdGhpcy5fdHlwZSA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSA9PT0gJ2VkaXQnKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvbHVtbicpPy5kaXNhYmxlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHR5cGUoKTogRG9jdW1lbnRlbkFwaUNvbHVtbk1vZGFsVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9hdmFpbGFibGVDb2x1bW5zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29uZmlndXJlZENvbHVtbltdPihbXSk7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgYXZhaWxhYmxlQ29sdW1ucyh2YWx1ZTogQ29uZmlndXJlZENvbHVtbltdKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fYXZhaWxhYmxlQ29sdW1ucyQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgYXZhaWxhYmxlQ29sdW1ucyQ6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9hdmFpbGFibGVDb2x1bW5zJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtjb2x1bW5zXSkgPT5cbiAgICAgIGNvbHVtbnMubWFwKChjb2x1bW46IENvbmZpZ3VyZWRDb2x1bW4pID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGB6Z3cuZG9jdW1lbnRDb2x1bW5zLiR7Y29sdW1uLmtleX1gKSxcbiAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBjb2x1bW4sXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSBfZGVmYXVsdFNvcnRlZENvbHVtbiE6IENvbmZpZ3VyZWRDb2x1bW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgY29uZmlndXJlZENvbHVtbnModmFsdWU6IENvbmZpZ3VyZWRDb2x1bW5bXSkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuX2RlZmF1bHRTb3J0ZWRDb2x1bW4gPSB2YWx1ZS5maW5kKChjb2x1bW46IENvbmZpZ3VyZWRDb2x1bW4pID0+ICEhY29sdW1uLmRlZmF1bHRTb3J0KTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxEb2N1bWVudGVuQXBpQ29sdW1uTW9kYWxUeXBlQ2xvc2VFdmVudD4oKTtcblxuICBwdWJsaWMgZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgY29sdW1uOiB0aGlzLmZiLmNvbnRyb2woXG4gICAgICB7Y29udGVudDogJycsIHNlbGVjdGVkOiBmYWxzZSwgY29sdW1uOiB7fSBhcyBDb25maWd1cmVkQ29sdW1ufSxcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICApLFxuICAgIGRlZmF1bHRTb3J0OiB0aGlzLmZiLmNvbnRyb2w8J0FTQycgfCAnREVTQycgfCAnbm9EZWZhdWx0Jz4oJ25vRGVmYXVsdCcpLFxuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ub3RpZmljYXRpb25NZXNzYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihcbiAgICAnemd3LmNvbHVtbnMuZGVmYXVsdFdhcm5pbmcnXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBub3RpZmljYXRpb25PYmokOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbkNvbnRlbnQ+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fbm90aWZpY2F0aW9uTWVzc2FnZSQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbbWVzc2FnZV0pID0+ICh7XG4gICAgICB0eXBlOiAnd2FybmluZycsXG4gICAgICBsb3dDb250cmFzdDogdHJ1ZSxcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnaW50ZXJmYWNlLndhcm5pbmcnKSxcbiAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG1lc3NhZ2UpLFxuICAgICAgc2hvd0Nsb3NlOiBmYWxzZSxcbiAgICB9KSlcbiAgKTtcblxuICBwdWJsaWMgc2hvd1JhZGlvQnV0dG9ucyA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB6Z3dEb2N1bWVudGVuQXBpQ29sdW1uU2VydmljZTogRG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5EaXNhYmxlUmFkaW9TdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZShyZWZyZXNoID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwuZW1pdChyZWZyZXNoID8gJ2Nsb3NlQW5kUmVmcmVzaCcgOiAnY2xvc2UnKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgICAgdGhpcy5zaG93UmFkaW9CdXR0b25zID0gdHJ1ZTtcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbk1lc3NhZ2UkLm5leHQoJ3pndy5jb2x1bW5zLmRlZmF1bHRXYXJuaW5nJyk7XG4gICAgICB0aGlzLl9wcmVmaWxsQ29sdW1uID0gbnVsbDtcbiAgICB9LCBDQVJCT05fQ09OU1RBTlRTLm1vZGFsQW5pbWF0aW9uTXMpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNvbHVtbigpOiB2b2lkIHtcbiAgICBjb25zdCBjb2x1bW5WYWx1ZTogTGlzdEl0ZW0gfCBudWxsIHwgdW5kZWZpbmVkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdjb2x1bW4nKT8udmFsdWU7XG4gICAgaWYgKCFjb2x1bW5WYWx1ZSB8fCAhdGhpcy5kZWZpbml0aW9uTmFtZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0U29ydFZhbHVlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdkZWZhdWx0U29ydCcpPy52YWx1ZTtcbiAgICBjb25zdCBkZWZhdWx0U29ydCA9ICFkZWZhdWx0U29ydFZhbHVlXG4gICAgICA/IG51bGxcbiAgICAgIDogZGVmYXVsdFNvcnRWYWx1ZSA9PT0gJ25vRGVmYXVsdCdcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogZGVmYXVsdFNvcnRWYWx1ZTtcbiAgICBjb25zdCBjb2x1bW4gPSB7Li4uY29sdW1uVmFsdWUuY29sdW1uLCBkZWZhdWx0U29ydH07XG5cbiAgICBpZiAoXG4gICAgICAhIXRoaXMuX2RlZmF1bHRTb3J0ZWRDb2x1bW4gJiZcbiAgICAgIHRoaXMuX2RlZmF1bHRTb3J0ZWRDb2x1bW4ua2V5ICE9PSBjb2x1bW4ua2V5ICYmXG4gICAgICAhIWNvbHVtbi5kZWZhdWx0U29ydFxuICAgICkge1xuICAgICAgdGhpcy56Z3dEb2N1bWVudGVuQXBpQ29sdW1uU2VydmljZVxuICAgICAgICAudXBkYXRlQ29sdW1uKHRoaXMuZGVmaW5pdGlvbk5hbWUsIHtcbiAgICAgICAgICAuLi50aGlzLl9kZWZhdWx0U29ydGVkQ29sdW1uLFxuICAgICAgICAgIGRlZmF1bHRTb3J0OiBudWxsLFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuemd3RG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2UudXBkYXRlQ29sdW1uKHRoaXMuZGVmaW5pdGlvbk5hbWUsIGNvbHVtbilcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkNsb3NlKHRydWUpO1xuICAgICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuemd3RG9jdW1lbnRlbkFwaUNvbHVtblNlcnZpY2UudXBkYXRlQ29sdW1uKHRoaXMuZGVmaW5pdGlvbk5hbWUsIGNvbHVtbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25DbG9zZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkRpc2FibGVSYWRpb1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY29sdW1uJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoY29sdW1uVmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnNob3dSYWRpb0J1dHRvbnMgPSAhIWNvbHVtblZhbHVlPy5jb2x1bW4uc29ydGFibGU7XG5cbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uTWVzc2FnZSQubmV4dChcbiAgICAgICAgICB0aGlzLnNob3dSYWRpb0J1dHRvbnMgPyAnemd3LmNvbHVtbnMuZGVmYXVsdFdhcm5pbmcnIDogJ3pndy5jb2x1bW5zLm5vdFNvcnRhYmxlJ1xuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxjZHMtbW9kYWwgdmFsdGltb0Nkc01vZGFsIFtvcGVuXT1cInR5cGUgIT09ICdjbG9zZWQnXCIgc2l6ZT1cInNtXCI+XG4gIDxjZHMtbW9kYWwtaGVhZGVyIHNob3dDbG9zZUJ1dHRvbj1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwib25DbG9zZSgpXCI+XG4gICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz5cbiAgICAgIHt7ICh0eXBlID09PSAnYWRkJyA/ICd6Z3cuY29sdW1ucy5hZGQnIDogJ3pndy5jb2x1bW5zLmVkaXQnKSB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvaDM+XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cblxuICA8Zm9ybVxuICAgIGNsYXNzPVwidmFsdGltby1kb2N1bWVudGVuLWFwaS1jb2x1bW4tbW9kYWxfX2NvbnRlbnRcIlxuICAgIGNkc01vZGFsQ29udGVudFxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgPlxuICAgIDxjZHMtZHJvcGRvd25cbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbHVtblwiXG4gICAgICBbbGFiZWxdPVwiJ3pndy5jb2x1bW5zLmNvbHVtbicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Ryb3BVcF09XCJmYWxzZVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0XG4gICAgICAgIFtpdGVtc109XCIhcHJlZmlsbENvbHVtbiA/IChhdmFpbGFibGVDb2x1bW5zJCB8IGFzeW5jKSA6IHByZWZpbGxDb2x1bW5cIlxuICAgICAgPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtZHJvcGRvd24+XG5cbiAgICA8Y2RzLXJhZGlvLWdyb3VwICpuZ0lmPVwic2hvd1JhZGlvQnV0dG9uc1wiIGxlZ2VuZD1cIkRlZmF1bHQgc29ydFwiIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRTb3J0XCI+XG4gICAgICA8Y2RzLXJhZGlvIHZhbHVlPVwibm9EZWZhdWx0XCI+IHt7ICdpbnRlcmZhY2Uuc29ydGluZy5ub0RlZmF1bHQnIHwgdHJhbnNsYXRlIH19IDwvY2RzLXJhZGlvPlxuXG4gICAgICA8Y2RzLXJhZGlvIHZhbHVlPVwiREVTQ1wiPiB7eyAnaW50ZXJmYWNlLnNvcnRpbmcuZGVzY2VuZGluZycgfCB0cmFuc2xhdGUgfX0gPC9jZHMtcmFkaW8+XG5cbiAgICAgIDxjZHMtcmFkaW8gdmFsdWU9XCJBU0NcIj4ge3sgJ2ludGVyZmFjZS5zb3J0aW5nLmFzY2VuZGluZycgfCB0cmFuc2xhdGUgfX0gPC9jZHMtcmFkaW8+XG4gICAgPC9jZHMtcmFkaW8tZ3JvdXA+XG5cbiAgICA8Y2RzLWlubGluZS1ub3RpZmljYXRpb24gW25vdGlmaWNhdGlvbk9ial09XCJub3RpZmljYXRpb25PYmokIHwgYXN5bmNcIj48L2Nkcy1pbmxpbmUtbm90aWZpY2F0aW9uPlxuICA8L2Zvcm0+XG5cbiAgPGNkcy1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtR3JvdXAuaW52YWxpZFwiIChjbGljayk9XCJ1cGRhdGVDb2x1bW4oKVwiPlxuICAgICAge3sgKHR5cGUgPT09ICdhZGQnID8gJ2ludGVyZmFjZS5hZGQnIDogJ2ludGVyZmFjZS5zYXZlJykgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9jZHMtbW9kYWw+XG4iXX0=
|