@valtimo/object 10.5.1 → 10.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/object-detail-container/object-detail-container.component.mjs +4 -4
- package/esm2020/lib/components/object-detail-container/tabs/object-detail/object-detail.component.mjs +39 -13
- package/esm2020/lib/components/object-list/object-list.component.mjs +61 -45
- package/esm2020/lib/object-routing.module.mjs +7 -7
- package/esm2020/lib/object.module.mjs +11 -9
- package/esm2020/lib/services/object-column.service.mjs +4 -4
- package/esm2020/lib/services/object-state.service.mjs +4 -4
- package/esm2020/lib/services/object.service.mjs +4 -4
- package/esm2020/lib/services/tab.service.mjs +4 -4
- package/fesm2015/valtimo-object.mjs +126 -83
- package/fesm2015/valtimo-object.mjs.map +1 -1
- package/fesm2020/valtimo-object.mjs +126 -82
- package/fesm2020/valtimo-object.mjs.map +1 -1
- package/lib/components/object-detail-container/tabs/object-detail/object-detail.component.d.ts +12 -5
- package/lib/components/object-list/object-list.component.d.ts +8 -6
- package/lib/object.module.d.ts +1 -1
- package/package.json +5 -4
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { Component } from '@angular/core';
|
|
17
|
-
import { BehaviorSubject, combineLatest, distinctUntilChanged, map, of, startWith, throwError, } from 'rxjs';
|
|
17
|
+
import { BehaviorSubject, combineLatest, distinctUntilChanged, filter, map, of, startWith, throwError, } from 'rxjs';
|
|
18
18
|
import { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';
|
|
19
19
|
import { ColumnType, FormType } from '../../models/object.model';
|
|
20
20
|
import * as i0 from "@angular/core";
|
|
@@ -24,11 +24,11 @@ import * as i3 from "@valtimo/object-management";
|
|
|
24
24
|
import * as i4 from "@ngx-translate/core";
|
|
25
25
|
import * as i5 from "@angular/router";
|
|
26
26
|
import * as i6 from "ngx-toastr";
|
|
27
|
-
import * as i7 from "@
|
|
28
|
-
import * as i8 from "@
|
|
27
|
+
import * as i7 from "@valtimo/components";
|
|
28
|
+
import * as i8 from "@angular/common";
|
|
29
29
|
import * as i9 from "carbon-components-angular";
|
|
30
30
|
export class ObjectListComponent {
|
|
31
|
-
constructor(objectService, objectColumnService, objectManagementService, translateService, router, route, toastr, translate) {
|
|
31
|
+
constructor(objectService, objectColumnService, objectManagementService, translateService, router, route, toastr, translate, pageTitleService) {
|
|
32
32
|
this.objectService = objectService;
|
|
33
33
|
this.objectColumnService = objectColumnService;
|
|
34
34
|
this.objectManagementService = objectManagementService;
|
|
@@ -37,6 +37,7 @@ export class ObjectListComponent {
|
|
|
37
37
|
this.route = route;
|
|
38
38
|
this.toastr = toastr;
|
|
39
39
|
this.translate = translate;
|
|
40
|
+
this.pageTitleService = pageTitleService;
|
|
40
41
|
this.loading$ = new BehaviorSubject(true);
|
|
41
42
|
this.submission$ = new BehaviorSubject({});
|
|
42
43
|
this.formValid$ = new BehaviorSubject(false);
|
|
@@ -44,7 +45,16 @@ export class ObjectListComponent {
|
|
|
44
45
|
this.disableInput$ = new BehaviorSubject(false);
|
|
45
46
|
this.clearForm$ = new BehaviorSubject(false);
|
|
46
47
|
this.columnType$ = new BehaviorSubject(ColumnType.DEFAULT);
|
|
47
|
-
this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId)
|
|
48
|
+
this.objectManagementId$ = this.route.params.pipe(map(params => params.objectManagementId), tap(objectManagementId => {
|
|
49
|
+
if (!this._settingPageTitle && objectManagementId) {
|
|
50
|
+
this._settingPageTitle = true;
|
|
51
|
+
this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {
|
|
52
|
+
if (objectType.title) {
|
|
53
|
+
this.pageTitleService.setCustomPageTitle(objectType.title);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}));
|
|
48
58
|
this.refreshObjectList$ = new BehaviorSubject(null);
|
|
49
59
|
this.currentPageAndSize$ = new BehaviorSubject({
|
|
50
60
|
page: 0,
|
|
@@ -74,26 +84,34 @@ export class ObjectListComponent {
|
|
|
74
84
|
this.translateService.stream('key'),
|
|
75
85
|
this.refreshObjectList$,
|
|
76
86
|
]).pipe(switchMap(([objectManagementId, currentPage, columnType, searchFieldValues]) => {
|
|
87
|
+
const handleError = () => {
|
|
88
|
+
this.disableInput();
|
|
89
|
+
return of(null);
|
|
90
|
+
};
|
|
77
91
|
if (columnType === ColumnType.CUSTOM) {
|
|
78
|
-
return this.objectService
|
|
92
|
+
return this.objectService
|
|
93
|
+
.postObjectsByObjectManagementId(objectManagementId, {
|
|
79
94
|
page: currentPage.page,
|
|
80
95
|
size: currentPage.size,
|
|
81
96
|
}, Object.keys(searchFieldValues).length > 0
|
|
82
97
|
? { otherFilters: this.mapSearchValuesToFilters(searchFieldValues) }
|
|
83
|
-
: {})
|
|
98
|
+
: {})
|
|
99
|
+
.pipe(catchError(() => handleError()));
|
|
84
100
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
101
|
+
return this.objectService
|
|
102
|
+
.getObjectsByObjectManagementId(objectManagementId, {
|
|
103
|
+
page: currentPage.page,
|
|
104
|
+
size: currentPage.size,
|
|
105
|
+
})
|
|
106
|
+
.pipe(catchError(() => handleError()));
|
|
107
|
+
}), tap(instanceRes => {
|
|
108
|
+
if (instanceRes != null) {
|
|
109
|
+
this.pageSizes$.pipe(take(1)).subscribe(sizes => {
|
|
110
|
+
// @ts-ignore
|
|
111
|
+
this.pageSizes$.next({ ...sizes, collectionSize: instanceRes.totalElements });
|
|
89
112
|
});
|
|
90
113
|
}
|
|
91
|
-
}), tap(
|
|
92
|
-
this.pageSizes$.pipe(take(1)).subscribe(sizes => {
|
|
93
|
-
// @ts-ignore
|
|
94
|
-
this.pageSizes$.next({ ...sizes, collectionSize: instanceRes.totalElements });
|
|
95
|
-
});
|
|
96
|
-
}), map(res => res.content.map(record => record?.items?.reduce((obj, item) => Object.assign(obj, { objectId: record.id }, { [item.key]: item.value }), {}))), tap(() => this.loading$.next(false)));
|
|
114
|
+
}), map(res => res?.content?.map(record => record?.items?.reduce((obj, item) => Object.assign(obj, { objectId: record.id }, { [item.key]: item.value }), {}))), tap(() => this.loading$.next(false)));
|
|
97
115
|
this.formDefinition$ = combineLatest([
|
|
98
116
|
this.objectManagementId$,
|
|
99
117
|
this.clearForm$,
|
|
@@ -127,15 +145,15 @@ export class ObjectListComponent {
|
|
|
127
145
|
sortable: column.sortable,
|
|
128
146
|
...(column.viewType && { viewType: column.viewType }),
|
|
129
147
|
...(column.enum && { enum: column.enum }),
|
|
148
|
+
...(column.format && { format: column.format }),
|
|
130
149
|
};
|
|
131
150
|
}),
|
|
132
151
|
];
|
|
133
152
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
return this.setDefaultFields();
|
|
137
|
-
}
|
|
153
|
+
this.columnType$.next(ColumnType.DEFAULT);
|
|
154
|
+
return this.setDefaultFields();
|
|
138
155
|
}));
|
|
156
|
+
this._settingPageTitle = false;
|
|
139
157
|
}
|
|
140
158
|
paginationClicked(newPageNumber) {
|
|
141
159
|
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
@@ -165,22 +183,21 @@ export class ObjectListComponent {
|
|
|
165
183
|
addObject() {
|
|
166
184
|
this.disableInput();
|
|
167
185
|
combineLatest([this.objectManagementId$, this.submission$, this.formValid$])
|
|
168
|
-
.pipe(take(1))
|
|
169
|
-
.
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
186
|
+
.pipe(take(1), filter(([objectManagementId, submission, formValid]) => formValid), switchMap(([objectManagementId, submission]) => this.objectService
|
|
187
|
+
.createObject({ objectManagementId }, { ...this.objectService.removeEmptyStringValuesFromSubmission(submission) })
|
|
188
|
+
.pipe(take(1), catchError((error) => {
|
|
189
|
+
this.handleCreateObjectError(error);
|
|
190
|
+
return throwError(error);
|
|
191
|
+
}))), finalize(() => {
|
|
192
|
+
this.enableInput();
|
|
193
|
+
}))
|
|
194
|
+
.subscribe({
|
|
195
|
+
next: () => {
|
|
196
|
+
this.closeModal();
|
|
197
|
+
this.refreshObjectList();
|
|
198
|
+
this.clearForm$.next(true);
|
|
199
|
+
this.toastr.success(this.translate.instant('object.messages.objectCreated'));
|
|
200
|
+
},
|
|
184
201
|
});
|
|
185
202
|
}
|
|
186
203
|
redirectToDetails(record) {
|
|
@@ -215,7 +232,6 @@ export class ObjectListComponent {
|
|
|
215
232
|
return throwError(error);
|
|
216
233
|
}
|
|
217
234
|
handleCreateObjectError(error) {
|
|
218
|
-
this.closeModal();
|
|
219
235
|
this.toastr.error(this.translate.instant('object.messages.objectCreationError'));
|
|
220
236
|
return throwError(error);
|
|
221
237
|
}
|
|
@@ -231,16 +247,16 @@ export class ObjectListComponent {
|
|
|
231
247
|
}
|
|
232
248
|
else {
|
|
233
249
|
// @ts-ignore
|
|
234
|
-
filters.push({ key: valueKey, values: [
|
|
250
|
+
filters.push({ key: valueKey, values: [searchValue] });
|
|
235
251
|
}
|
|
236
252
|
});
|
|
237
253
|
return filters;
|
|
238
254
|
}
|
|
239
255
|
}
|
|
240
|
-
ObjectListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
241
|
-
ObjectListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
256
|
+
ObjectListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectListComponent, deps: [{ token: i1.ObjectService }, { token: i2.ObjectColumnService }, { token: i3.ObjectManagementService }, { token: i4.TranslateService }, { token: i5.Router }, { token: i5.ActivatedRoute }, { token: i6.ToastrService }, { token: i4.TranslateService }, { token: i7.PageTitleService }], target: i0.ɵɵFactoryTarget.Component });
|
|
257
|
+
ObjectListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ObjectListComponent, selector: "valtimo-object-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 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<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-0\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [viewMode]=\"true\"\n [header]=\"true\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ 'object.title' | translate }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n obs.objectConfiguration?.length || 0\n }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.loading-icon{display:flex;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i7.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i7.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i9.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["form", "options", "submission", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i7.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "defaultValues"], outputs: ["doSearch"] }, { kind: "directive", type: i7.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectListComponent, decorators: [{
|
|
243
259
|
type: Component,
|
|
244
|
-
args: [{ selector: 'valtimo-object-list', template: "<!--\n ~ Copyright 2015-2020 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<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-0\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n
|
|
245
|
-
}], ctorParameters: function () { return [{ type: i1.ObjectService }, { type: i2.ObjectColumnService }, { type: i3.ObjectManagementService }, { type: i4.TranslateService }, { type: i5.Router }, { type: i5.ActivatedRoute }, { type: i6.ToastrService }, { type: i4.TranslateService }]; } });
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1saXN0L29iamVjdC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vb2JqZWN0L3NyYy9saWIvY29tcG9uZW50cy9vYmplY3QtbGlzdC9vYmplY3QtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFLMUUsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7QUFXL0QsTUFBTSxPQUFPLG1CQUFtQjtJQTJLOUIsWUFDbUIsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLHVCQUFnRCxFQUNoRCxnQkFBa0MsRUFDM0MsTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLE1BQXFCLEVBQ3JCLFNBQTJCO1FBUGxCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQzNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxV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TyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDO2FBQ3ZGO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0wsYUFBYTtnQkFDYixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxXQUFXLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQzthQUMvRDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7aUhBOVJVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLDJEQzNDaEMsMnRKQWlKQTs0RkR0R2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7T2JqZWN0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2JqZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHtMaXN0RmllbGQsIFBhZ2luYXRpb259IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDb2x1bW5UeXBlLCBGb3JtVHlwZX0gZnJvbSAnLi4vLi4vbW9kZWxzL29iamVjdC5tb2RlbCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtPYmplY3RDb2x1bW5TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYmplY3QtY29sdW1uLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50U2VydmljZSwgU2VhcmNoQ29sdW1ufSBmcm9tICdAdmFsdGltby9vYmplY3QtbWFuYWdlbWVudCc7XG5pbXBvcnQge1NlYXJjaEZpZWxkLCBTZWFyY2hGaWVsZFZhbHVlcywgU2VhcmNoRmlsdGVyLCBTZWFyY2hGaWx0ZXJSYW5nZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1vYmplY3QtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdExpc3RDb21wb25lbnQge1xuICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgcmVhZG9ubHkgZm9ybVZhbGlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93TW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGVJbnB1dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY2xlYXJGb3JtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjb2x1bW5UeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sdW1uVHlwZT4oQ29sdW1uVHlwZS5ERUZBVUxUKTtcblxuICByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50SWQkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zLm9iamVjdE1hbmFnZW1lbnRJZClcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hPYmplY3RMaXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFBhZ2VBbmRTaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxQYWdpbmF0aW9uPj4oe1xuICAgIHBhZ2U6IDAsXG4gICAgc2l6ZTogMTAsXG4gIH0pO1xuXG4gIHJlYWRvbmx5IHBhZ2VTaXplcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8UGFnaW5hdGlvbj4+KHtcbiAgICBjb2xsZWN0aW9uU2l6ZTogMCxcbiAgICBtYXhQYWdpbmF0aW9uSXRlbVNpemU6IDUsXG4gIH0pO1xuXG4gIHJlYWRvbmx5IHBhZ2luYXRpb24kOiBPYnNlcnZhYmxlPFBhZ2luYXRpb24+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLFxuICAgIHRoaXMucGFnZVNpemVzJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW2N1cnJlbnRQYWdlLCBzaXplc10pID0+XG4gICAgICAgICh7Li4uY3VycmVudFBhZ2UsIC4uLnNpemVzLCBwYWdlOiBjdXJyZW50UGFnZS5wYWdlICsgMX0gYXMgUGFnaW5hdGlvbilcbiAgICApXG4gICk7XG5cbiAgcGFnaW5hdGlvbkNsaWNrZWQobmV3UGFnZU51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHBhZ2U6IG5ld1BhZ2VOdW1iZXIgLSAxfSk7XG4gICAgfSk7XG4gIH1cblxuICBwYWdpbmF0aW9uU2V0KG5ld1BhZ2VTaXplKTogdm9pZCB7XG4gICAgaWYgKG5ld1BhZ2VTaXplKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoY3VycmVudFBhZ2UgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHNpemU6IG5ld1BhZ2VTaXplfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaEZpZWxkVmFsdWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VhcmNoRmllbGRWYWx1ZXM+KHt9KTtcbiAgcmVhZG9ubHkgb2JqZWN0U2VhcmNoRmllbGRzJDogT2JzZXJ2YWJsZTxBcnJheTxTZWFyY2hGaWVsZD4gfCBudWxsPiA9XG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKG9iamVjdE1hbmFnZW1lbnRJZCA9PlxuICAgICAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlLmdldFNlYXJjaEZpZWxkKG9iamVjdE1hbmFnZW1lbnRJZClcbiAgICAgICksXG4gICAgICBtYXAoc2VhcmNoRmllbGRzID0+XG4gICAgICAgIHNlYXJjaEZpZWxkcy5tYXAoc2VhcmNoRmllbGQgPT4ge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBzZWFyY2hGaWVsZC5kYXRhVHlwZSA9IHNlYXJjaEZpZWxkLmRhdGFUeXBlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHNlYXJjaEZpZWxkLmZpZWxkVHlwZSA9IHNlYXJjaEZpZWxkLmZpZWxkVHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIHJldHVybiBzZWFyY2hGaWVsZDtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuXG4gIHJlYWRvbmx5IG9iamVjdENvbmZpZ3VyYXRpb24kOiBPYnNlcnZhYmxlPEFycmF5PGFueT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLFxuICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJCxcbiAgICB0aGlzLmNvbHVtblR5cGUkLFxuICAgIHRoaXMuc2VhcmNoRmllbGRWYWx1ZXMkLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICAgIHRoaXMucmVmcmVzaE9iamVjdExpc3QkLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW29iamVjdE1hbmFnZW1lbnRJZCwgY3VycmVudFBhZ2UsIGNvbHVtblR5cGUsIHNlYXJjaEZpZWxkVmFsdWVzXSkgPT4ge1xuICAgICAgaWYgKGNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuQ1VTVE9NKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFNlcnZpY2UucG9zdE9iamVjdHNCeU9iamVjdE1hbmFnZW1lbnRJZChcbiAgICAgICAgICBvYmplY3RNYW5hZ2VtZW50SWQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgcGFnZTogY3VycmVudFBhZ2UucGFnZSxcbiAgICAgICAgICAgIHNpemU6IGN1cnJlbnRQYWdlLnNpemUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBPYmplY3Qua2V5cyhzZWFyY2hGaWVsZFZhbHVlcykubGVuZ3RoID4gMFxuICAgICAgICAgICAgPyB7b3RoZXJGaWx0ZXJzOiB0aGlzLm1hcFNlYXJjaFZhbHVlc1RvRmlsdGVycyhzZWFyY2hGaWVsZFZhbHVlcyl9XG4gICAgICAgICAgICA6IHt9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RTZXJ2aWNlLmdldE9iamVjdHNCeU9iamVjdE1hbmFnZW1lbnRJZChvYmplY3RNYW5hZ2VtZW50SWQsIHtcbiAgICAgICAgICBwYWdlOiBjdXJyZW50UGFnZS5wYWdlLFxuICAgICAgICAgIHNpemU6IGN1cnJlbnRQYWdlLnNpemUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHRhcChpbnN0YW5jZVJlcyA9PiB7XG4gICAgICB0aGlzLnBhZ2VTaXplcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc2l6ZXMgPT4ge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMucGFnZVNpemVzJC5uZXh0KHsuLi5zaXplcywgY29sbGVjdGlvblNpemU6IGluc3RhbmNlUmVzLnRvdGFsRWxlbWVudHN9KTtcbiAgICAgIH0pO1xuICAgIH0pLFxuICAgIG1hcChyZXMgPT5cbiAgICAgIHJlcy5jb250ZW50Lm1hcChyZWNvcmQgPT5cbiAgICAgICAgcmVjb3JkPy5pdGVtcz8ucmVkdWNlKFxuICAgICAgICAgIChvYmosIGl0ZW0pID0+IE9iamVjdC5hc3NpZ24ob2JqLCB7b2JqZWN0SWQ6IHJlY29yZC5pZH0sIHtbaXRlbS5rZXldOiBpdGVtLnZhbHVlfSksXG4gICAgICAgICAge31cbiAgICAgICAgKVxuICAgICAgKVxuICAgICksXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSkpXG4gICk7XG5cbiAgcmVhZG9ubHkgZm9ybURlZmluaXRpb24kOiBPYnNlcnZhYmxlPGFueT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQsXG4gICAgdGhpcy5jbGVhckZvcm0kLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW29iamVjdE1hbmFnZW1lbnRJZF0pID0+XG4gICAgICB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgLmdldFByZWZpbGxlZE9iamVjdEZyb21PYmplY3RVcmwoe29iamVjdE1hbmFnZW1lbnRJZCwgZm9ybVR5cGU6IEZvcm1UeXBlLkVESVRGT1JNfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlSW5wdXQoKTtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKS5waXBlKHN0YXJ0V2l0aChudWxsKSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICksXG4gICAgbWFwKHJlcyA9PiB7XG4gICAgICBpZiAocmVzICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5lbmFibGVJbnB1dCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzPy5mb3JtRGVmaW5pdGlvbjtcbiAgICB9KSxcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKSlcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbHVtbnMkOiBPYnNlcnZhYmxlPEFycmF5PFNlYXJjaENvbHVtbj4+ID0gdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKG9iamVjdE1hbmFnZW1lbnRJZCA9PiB0aGlzLm9iamVjdENvbHVtblNlcnZpY2UuZ2V0T2JqZWN0Q29sdW1ucyhvYmplY3RNYW5hZ2VtZW50SWQpKSxcbiAgICBtYXAocmVzID0+IHJlcylcbiAgKTtcblxuICByZWFkb25seSBmaWVsZHMkOiBPYnNlcnZhYmxlPEFycmF5PExpc3RGaWVsZD4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jb2x1bW5zJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtjb2x1bW5zXSkgPT4ge1xuICAgICAgaWYgKGNvbHVtbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5jb2x1bW5UeXBlJC5uZXh0KENvbHVtblR5cGUuQ1VTVE9NKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIC4uLmNvbHVtbnMubWFwKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGBmaWVsZExhYmVscy4ke2NvbHVtbi50cmFuc2xhdGlvbktleX1gO1xuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0cmFuc2xhdGlvbktleSk7XG4gICAgICAgICAgICBjb25zdCB2YWxpZFRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24gIT09IHRyYW5zbGF0aW9uS2V5ICYmIHRyYW5zbGF0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAga2V5OiBjb2x1bW4udHJhbnNsYXRpb25LZXksXG4gICAgICAgICAgICAgIGxhYmVsOiBjb2x1bW4udGl0bGUgfHwgdmFsaWRUcmFuc2xhdGlvbiB8fCBjb2x1bW4udHJhbnNsYXRpb25LZXksXG4gICAgICAgICAgICAgIHNvcnRhYmxlOiBjb2x1bW4uc29ydGFibGUsXG4gICAgICAgICAgICAgIC4uLihjb2x1bW4udmlld1R5cGUgJiYge3ZpZXdUeXBlOiBjb2x1bW4udmlld1R5cGV9KSxcbiAgICAgICAgICAgICAgLi4uKGNvbHVtbi5lbnVtICYmIHtlbnVtOiBjb2x1bW4uZW51bX0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29sdW1uVHlwZSQubmV4dChDb2x1bW5UeXBlLkRFRkFVTFQpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXREZWZhdWx0RmllbGRzKCk7XG4gICAgICB9XG4gICAgfSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdFNlcnZpY2U6IE9iamVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RDb2x1bW5TZXJ2aWNlOiBPYmplY3RDb2x1bW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2JqZWN0TWFuYWdlbWVudFNlcnZpY2U6IE9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBvcGVuTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBjbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd01vZGFsJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmNsZWFyRm9ybSQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG9uRm9ybWlvQ2hhbmdlKGZvcm1pbyk6IHZvaWQge1xuICAgIGlmIChmb3JtaW8uZGF0YSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnN1Ym1pc3Npb24kLm5leHQoZm9ybWlvLmRhdGEpO1xuICAgICAgdGhpcy5mb3JtVmFsaWQkLm5leHQoZm9ybWlvLmlzVmFsaWQpO1xuICAgIH1cbiAgfVxuXG4gIGFkZE9iamVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCgpO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMub2JqZWN0TWFuYWdlbWVudElkJCwgdGhpcy5zdWJtaXNzaW9uJCwgdGhpcy5mb3JtVmFsaWQkXSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChbb2JqZWN0TWFuYWdlbWVudElkLCBzdWJtaXNzaW9uLCBmb3JtVmFsaWRdKSA9PiB7XG4gICAgICAgIGlmIChmb3JtVmFsaWQpIHtcbiAgICAgICAgICBzdWJtaXNzaW9uID0gdGhpcy5vYmplY3RTZXJ2aWNlLnJlbW92ZUVtcHR5U3RyaW5nVmFsdWVzRnJvbVN1Ym1pc3Npb24oc3VibWlzc2lvbik7XG4gICAgICAgICAgdGhpcy5vYmplY3RTZXJ2aWNlXG4gICAgICAgICAgICAuY3JlYXRlT2JqZWN0KHtvYmplY3RNYW5hZ2VtZW50SWR9LCB7Li4uc3VibWlzc2lvbn0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4gdGhpcy5oYW5kbGVDcmVhdGVPYmplY3RFcnJvcihlcnJvcikpLFxuICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbmFibGVJbnB1dCgpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hPYmplY3RMaXN0KCk7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJGb3JtJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RDcmVhdGVkJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcmVkaXJlY3RUb0RldGFpbHMocmVjb3JkKTogdm9pZCB7XG4gICAgY29uc3Qgb2JqZWN0SWQgPSByZWNvcmQub2JqZWN0VXJsID8gcmVjb3JkLm9iamVjdFVybC5zcGxpdCgnLycpLnBvcCgpIDogcmVjb3JkLm9iamVjdElkO1xuICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudElkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjb25maWd1cmF0aW9uSWQgPT4ge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Avb2JqZWN0cy8ke2NvbmZpZ3VyYXRpb25JZH0vJHtvYmplY3RJZH1gXSk7XG4gICAgfSk7XG4gIH1cblxuICBzZWFyY2goc2VhcmNoRmllbGRWYWx1ZXM6IFNlYXJjaEZpZWxkVmFsdWVzKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hGaWVsZFZhbHVlcyQubmV4dChzZWFyY2hGaWVsZFZhbHVlcyB8fCB7fSk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hPYmplY3RMaXN0KCk6IHZvaWQge1xuICAgIHRoaXMucmVmcmVzaE9iamVjdExpc3QkLm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGRpc2FibGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlSW5wdXQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREZWZhdWx0RmllbGRzKCkge1xuICAgIGNvbnN0IGtleXM6IEFycmF5PHN0cmluZz4gPSBbJ3JlY29yZEluZGV4JywgJ29iamVjdFVybCddO1xuICAgIHJldHVybiBrZXlzLm1hcChrZXkgPT4gKHtcbiAgICAgIGxhYmVsOiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgb2JqZWN0LmxhYmVscy4ke2tleX1gKX1gLFxuICAgICAga2V5LFxuICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICB2aWV3VHlwZTogJ3N0cmluZycsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVSZXRyaWV2aW5nRm9ybUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLnRvYXN0ci5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdvYmplY3QubWVzc2FnZXMub2JqZWN0UmV0cmlldmluZ0Zvcm1FcnJvcicpKTtcbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNyZWF0ZU9iamVjdEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICB0aGlzLnRvYXN0ci5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdvYmplY3QubWVzc2FnZXMub2JqZWN0Q3JlYXRpb25FcnJvcicpKTtcbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gIH1cblxuICBwcml2YXRlIG1hcFNlYXJjaFZhbHVlc1RvRmlsdGVycyhcbiAgICB2YWx1ZXM6IFNlYXJjaEZpZWxkVmFsdWVzXG4gICk6IEFycmF5PFNlYXJjaEZpbHRlciB8IFNlYXJjaEZpbHRlclJhbmdlPiB7XG4gICAgY29uc3QgZmlsdGVyczogQXJyYXk8U2VhcmNoRmlsdGVyIHwgU2VhcmNoRmlsdGVyUmFuZ2U+ID0gW107XG5cbiAgICBPYmplY3Qua2V5cyh2YWx1ZXMpLmZvckVhY2godmFsdWVLZXkgPT4ge1xuICAgICAgY29uc3Qgc2VhcmNoVmFsdWUgPSB2YWx1ZXNbdmFsdWVLZXldIGFzIGFueTtcbiAgICAgIGlmIChzZWFyY2hWYWx1ZS5zdGFydCkge1xuICAgICAgICBmaWx0ZXJzLnB1c2goe2tleTogdmFsdWVLZXksIHJhbmdlRnJvbTogc2VhcmNoVmFsdWUuc3RhcnQsIHJhbmdlVG86IHNlYXJjaFZhbHVlLmVuZH0pO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNlYXJjaFZhbHVlKSkge1xuICAgICAgICBmaWx0ZXJzLnB1c2goe2tleTogdmFsdWVLZXksIHZhbHVlczogc2VhcmNoVmFsdWV9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgZmlsdGVycy5wdXNoKHtrZXk6IHZhbHVlS2V5LCB2YWx1ZXM6IFt7dmFsdWU6IHNlYXJjaFZhbHVlfV19KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG48bmctY29udGFpbmVyXG4gICpuZ0lmPVwie1xuICAgIGxvYWRpbmc6IGxvYWRpbmckIHwgYXN5bmMsXG4gICAgcGFnaW5hdGlvbjogcGFnaW5hdGlvbiQgfCBhc3luYyxcbiAgICBkaXNhYmxlSW5wdXQ6IGRpc2FibGVJbnB1dCQgfCBhc3luYyxcbiAgICBmaWVsZHM6IGZpZWxkcyQgfCBhc3luYyxcbiAgICBvYmplY3RDb25maWd1cmF0aW9uOiBvYmplY3RDb25maWd1cmF0aW9uJCB8IGFzeW5jXG4gIH0gYXMgb2JzXCJcbj5cbiAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudCBwdC0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwci0wIHBsLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgbXQtbTNweCBtYi0zIG1yLTBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uczsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9icy5sb2FkaW5nID09PSBmYWxzZTsgZWxzZSBsb2FkaW5nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hGaWVsZHM7IGNvbnRleHQ6IHtvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3Q7IGNvbnRleHQ6IHtvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNyZWF0ZU5ld01vZGFsXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zIGxldC1vYnM9XCJvYnNcIj5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJvcGVuTW9kYWwoKVwiXG4gICAgaWJtQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgc2l6ZT1cIm1kXCJcbiAgICBjbGFzcz1cIm1sLTNcIlxuICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZUlucHV0IHx8IG9icy5sb2FkaW5nXCJcbiAgPlxuICAgIHt7ICdvYmplY3QuY3JlYXRlT2JqZWN0JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGlibUljb249XCJhZGRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlYXJjaEZpZWxkcyBsZXQtb2JzPVwib2JzXCI+XG4gIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgPHZhbHRpbW8tc2VhcmNoLWZpZWxkc1xuICAgICAgW2xvYWRpbmddPVwib2JzLmxvYWRpbmdcIlxuICAgICAgW3NlYXJjaEZpZWxkc109XCJvYmplY3RTZWFyY2hGaWVsZHMkIHwgYXN5bmNcIlxuICAgICAgKGRvU2VhcmNoKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgIFtkb2N1bWVudERlZmluaXRpb25OYW1lXT1cIm9iamVjdE1hbmFnZW1lbnRJZCQgfCBhc3luY1wiXG4gICAgICBbc2V0VmFsdWVzU3ViamVjdCRdPVwibnVsbFwiXG4gICAgPjwvdmFsdGltby1zZWFyY2gtZmllbGRzPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdCBsZXQtb2JzPVwib2JzXCI+XG4gIDx2YWx0aW1vLXdpZGdldD5cbiAgICA8dmFsdGltby1saXN0XG4gICAgICBbaXRlbXNdPVwib2JzLm9iamVjdENvbmZpZ3VyYXRpb25cIlxuICAgICAgW2ZpZWxkc109XCJvYnMuZmllbGRzXCJcbiAgICAgIFt2aWV3TW9kZV09XCJ0cnVlXCJcbiAgICAgIFtoZWFkZXJdPVwidHJ1ZVwiXG4gICAgICBbcGFnaW5hdGlvbl09XCJvYnMucGFnaW5hdGlvblwiXG4gICAgICBwYWdpbmF0aW9uSWRlbnRpZmllcj1cIm9iamVjdENvbmZpZ3VyYXRpb25MaXN0XCJcbiAgICAgIChwYWdpbmF0aW9uQ2xpY2tlZCk9XCJwYWdpbmF0aW9uQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgIChwYWdpbmF0aW9uU2V0KT1cInBhZ2luYXRpb25TZXQoJGV2ZW50KVwiXG4gICAgICAocm93Q2xpY2tlZCk9XCJyZWRpcmVjdFRvRGV0YWlscygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZGl2IGhlYWRlcj5cbiAgICAgICAgPGgzIGNsYXNzPVwibGlzdC1oZWFkZXItdGl0bGVcIj5cbiAgICAgICAgICB7eyAnb2JqZWN0LnRpdGxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDxzdXAgY2xhc3M9XCJtbC0xIGJhZGdlIGJhZGdlLXBpbGwgYmFkZ2UtcHJpbWFyeVwiPnt7XG4gICAgICAgICAgICBvYnMub2JqZWN0Q29uZmlndXJhdGlvbj8ubGVuZ3RoIHx8IDBcbiAgICAgICAgICB9fTwvc3VwPlxuICAgICAgICA8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgPC92YWx0aW1vLWxpc3Q+XG4gIDwvdmFsdGltby13aWRnZXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NyZWF0ZU5ld01vZGFsPlxuICA8aWJtLW1vZGFsXG4gICAgKm5nSWY9XCJ7XG4gICAgICBzaG93OiBzaG93TW9kYWwkIHwgYXN5bmMsXG4gICAgICBmb3JtVmFsaWQ6IGZvcm1WYWxpZCQgfCBhc3luYyxcbiAgICAgIGZvcm1EZWZpbml0aW9uOiBmb3JtRGVmaW5pdGlvbiQgfCBhc3luYyxcbiAgICAgIGRpc2FibGVJbnB1dDogZGlzYWJsZUlucHV0JCB8IGFzeW5jXG4gICAgfSBhcyBtb2RhbE9ic1wiXG4gICAgW29wZW5dPVwibW9kYWxPYnMuc2hvd1wiXG4gID5cbiAgICA8aWJtLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgICA8aDMgaWJtTW9kYWxIZWFkZXJIZWFkaW5nPlxuICAgICAgICB7eyAnb2JqZWN0LmNyZWF0ZU9iamVjdCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvaDM+XG4gICAgPC9pYm0tbW9kYWwtaGVhZGVyPlxuICAgIDxzZWN0aW9uIGlibU1vZGFsQ29udGVudD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbENvbnRlbnQ7IGNvbnRleHQ6IHttb2RhbE9iczogbW9kYWxPYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbEZvb3RlcjsgY29udGV4dDoge21vZGFsT2JzOiBtb2RhbE9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9pYm0tbW9kYWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vZGFsQ29udGVudCBsZXQtbW9kYWxPYnM9XCJtb2RhbE9ic1wiPlxuICA8dmFsdGltby1mb3JtLWlvXG4gICAgW2Zvcm1dPVwibW9kYWxPYnMuZm9ybURlZmluaXRpb25cIlxuICAgIChjaGFuZ2UpPVwib25Gb3JtaW9DaGFuZ2UoJGV2ZW50KVwiXG4gID48L3ZhbHRpbW8tZm9ybS1pbz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxGb290ZXIgbGV0LW1vZGFsT2JzPVwibW9kYWxPYnNcIj5cbiAgPGlibS1tb2RhbC1mb290ZXI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgaWJtQnV0dG9uPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJtb2RhbE9icy5kaXNhYmxlSW5wdXRcIlxuICAgICAgPlxuICAgICAgICB7eyAnb2JqZWN0LmNsb3NlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGlibUJ1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICBbYXR0ci5tb2RhbC1wcmltYXJ5LWZvY3VzXT1cInRydWVcIlxuICAgICAgICAoY2xpY2spPVwiYWRkT2JqZWN0KClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwibW9kYWxPYnMuZGlzYWJsZUlucHV0IHx8IG1vZGFsT2JzLmZvcm1WYWxpZCA9PT0gZmFsc2VcIlxuICAgICAgPlxuICAgICAgICB7eyAnb2JqZWN0LnNhdmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9pYm0tbW9kYWwtZm9vdGVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1pY29uXCI+PGlibS1sb2FkaW5nPjwvaWJtLWxvYWRpbmc+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
260
|
+
args: [{ selector: 'valtimo-object-list', template: "<!--\n ~ Copyright 2015-2020 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<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"text-right\">\n <div class=\"btn-group mt-m3px mb-3 mr-0\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [viewMode]=\"true\"\n [header]=\"true\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n {{ 'object.title' | translate }}\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n obs.objectConfiguration?.length || 0\n }}</sup>\n </h3>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 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 */.loading-icon{display:flex;justify-content:center}\n"] }]
|
|
261
|
+
}], ctorParameters: function () { return [{ type: i1.ObjectService }, { type: i2.ObjectColumnService }, { type: i3.ObjectManagementService }, { type: i4.TranslateService }, { type: i5.Router }, { type: i5.ActivatedRoute }, { type: i6.ToastrService }, { type: i4.TranslateService }, { type: i7.PageTitleService }]; } });
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1saXN0L29iamVjdC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vb2JqZWN0L3NyYy9saWIvY29tcG9uZW50cy9vYmplY3QtbGlzdC9vYmplY3QtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBRUgsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzFFLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7O0FBVy9ELE1BQU0sT0FBTyxtQkFBbUI7SUFtTTlCLFlBQ21CLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4Qyx1QkFBZ0QsRUFDaEQsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixNQUFxQixFQUNyQixTQUEyQixFQUMzQixnQkFBa0M7UUFSbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FB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LEVBQUMsQ0FBQyxDQUFDO2FBQ3ZGO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0wsYUFBYTtnQkFDYixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDdEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7O2dIQTlUVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwyREM1Q2hDLGd2SkFrSkE7MkZEdEdhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7T2JqZWN0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2JqZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHtMaXN0RmllbGQsIFBhZ2VUaXRsZVNlcnZpY2UsIFBhZ2luYXRpb259IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDb2x1bW5UeXBlLCBGb3JtVHlwZX0gZnJvbSAnLi4vLi4vbW9kZWxzL29iamVjdC5tb2RlbCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtPYmplY3RDb2x1bW5TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYmplY3QtY29sdW1uLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50U2VydmljZSwgU2VhcmNoQ29sdW1ufSBmcm9tICdAdmFsdGltby9vYmplY3QtbWFuYWdlbWVudCc7XG5pbXBvcnQge1NlYXJjaEZpZWxkLCBTZWFyY2hGaWVsZFZhbHVlcywgU2VhcmNoRmlsdGVyLCBTZWFyY2hGaWx0ZXJSYW5nZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1vYmplY3QtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdExpc3RDb21wb25lbnQge1xuICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgcmVhZG9ubHkgZm9ybVZhbGlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93TW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGVJbnB1dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY2xlYXJGb3JtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjb2x1bW5UeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sdW1uVHlwZT4oQ29sdW1uVHlwZS5ERUZBVUxUKTtcblxuICByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50SWQkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zLm9iamVjdE1hbmFnZW1lbnRJZCksXG4gICAgdGFwKG9iamVjdE1hbmFnZW1lbnRJZCA9PiB7XG4gICAgICBpZiAoIXRoaXMuX3NldHRpbmdQYWdlVGl0bGUgJiYgb2JqZWN0TWFuYWdlbWVudElkKSB7XG4gICAgICAgIHRoaXMuX3NldHRpbmdQYWdlVGl0bGUgPSB0cnVlO1xuICAgICAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlLmdldE9iamVjdEJ5SWQob2JqZWN0TWFuYWdlbWVudElkKS5zdWJzY3JpYmUob2JqZWN0VHlwZSA9PiB7XG4gICAgICAgICAgaWYgKG9iamVjdFR5cGUudGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5zZXRDdXN0b21QYWdlVGl0bGUob2JqZWN0VHlwZS50aXRsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaE9iamVjdExpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudWxsPihudWxsKTtcblxuICByZWFkb25seSBjdXJyZW50UGFnZUFuZFNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFBhZ2luYXRpb24+Pih7XG4gICAgcGFnZTogMCxcbiAgICBzaXplOiAxMCxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnZVNpemVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxQYWdpbmF0aW9uPj4oe1xuICAgIGNvbGxlY3Rpb25TaXplOiAwLFxuICAgIG1heFBhZ2luYXRpb25JdGVtU2l6ZTogNSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbiQ6IE9ic2VydmFibGU8UGFnaW5hdGlvbj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5wYWdlU2l6ZXMkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbY3VycmVudFBhZ2UsIHNpemVzXSkgPT5cbiAgICAgICAgKHsuLi5jdXJyZW50UGFnZSwgLi4uc2l6ZXMsIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UgKyAxfSBhcyBQYWdpbmF0aW9uKVxuICAgIClcbiAgKTtcblxuICBwYWdpbmF0aW9uQ2xpY2tlZChuZXdQYWdlTnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGN1cnJlbnRQYWdlID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5uZXh0KHsuLi5jdXJyZW50UGFnZSwgcGFnZTogbmV3UGFnZU51bWJlciAtIDF9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhZ2luYXRpb25TZXQobmV3UGFnZVNpemUpOiB2b2lkIHtcbiAgICBpZiAobmV3UGFnZVNpemUpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5uZXh0KHsuLi5jdXJyZW50UGFnZSwgc2l6ZTogbmV3UGFnZVNpemV9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoRmllbGRWYWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hGaWVsZFZhbHVlcz4oe30pO1xuICByZWFkb25seSBvYmplY3RTZWFyY2hGaWVsZHMkOiBPYnNlcnZhYmxlPEFycmF5PFNlYXJjaEZpZWxkPiB8IG51bGw+ID1cbiAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAob2JqZWN0TWFuYWdlbWVudElkID0+XG4gICAgICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudFNlcnZpY2UuZ2V0U2VhcmNoRmllbGQob2JqZWN0TWFuYWdlbWVudElkKVxuICAgICAgKSxcbiAgICAgIG1hcChzZWFyY2hGaWVsZHMgPT5cbiAgICAgICAgc2VhcmNoRmllbGRzLm1hcChzZWFyY2hGaWVsZCA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHNlYXJjaEZpZWxkLmRhdGFUeXBlID0gc2VhcmNoRmllbGQuZGF0YVR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgc2VhcmNoRmllbGQuZmllbGRUeXBlID0gc2VhcmNoRmllbGQuZmllbGRUeXBlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgcmV0dXJuIHNlYXJjaEZpZWxkO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG5cbiAgcmVhZG9ubHkgb2JqZWN0Q29uZmlndXJhdGlvbiQ6IE9ic2VydmFibGU8QXJyYXk8YW55Pj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQsXG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLFxuICAgIHRoaXMuY29sdW1uVHlwZSQsXG4gICAgdGhpcy5zZWFyY2hGaWVsZFZhbHVlcyQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gICAgdGhpcy5yZWZyZXNoT2JqZWN0TGlzdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkLCBjdXJyZW50UGFnZSwgY29sdW1uVHlwZSwgc2VhcmNoRmllbGRWYWx1ZXNdKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5kaXNhYmxlSW5wdXQoKTtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfTtcblxuICAgICAgaWYgKGNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuQ1VTVE9NKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgICAucG9zdE9iamVjdHNCeU9iamVjdE1hbmFnZW1lbnRJZChcbiAgICAgICAgICAgIG9iamVjdE1hbmFnZW1lbnRJZCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGFnZTogY3VycmVudFBhZ2UucGFnZSxcbiAgICAgICAgICAgICAgc2l6ZTogY3VycmVudFBhZ2Uuc2l6ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhzZWFyY2hGaWVsZFZhbHVlcykubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/IHtvdGhlckZpbHRlcnM6IHRoaXMubWFwU2VhcmNoVmFsdWVzVG9GaWx0ZXJzKHNlYXJjaEZpZWxkVmFsdWVzKX1cbiAgICAgICAgICAgICAgOiB7fVxuICAgICAgICAgIClcbiAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IGhhbmRsZUVycm9yKCkpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub2JqZWN0U2VydmljZVxuICAgICAgICAuZ2V0T2JqZWN0c0J5T2JqZWN0TWFuYWdlbWVudElkKG9iamVjdE1hbmFnZW1lbnRJZCwge1xuICAgICAgICAgIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UsXG4gICAgICAgICAgc2l6ZTogY3VycmVudFBhZ2Uuc2l6ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBoYW5kbGVFcnJvcigpKSk7XG4gICAgfSksXG4gICAgdGFwKGluc3RhbmNlUmVzID0+IHtcbiAgICAgIGlmIChpbnN0YW5jZVJlcyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMucGFnZVNpemVzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShzaXplcyA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRoaXMucGFnZVNpemVzJC5uZXh0KHsuLi5zaXplcywgY29sbGVjdGlvblNpemU6IGluc3RhbmNlUmVzLnRvdGFsRWxlbWVudHN9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgbWFwKHJlcyA9PlxuICAgICAgcmVzPy5jb250ZW50Py5tYXAocmVjb3JkID0+XG4gICAgICAgIHJlY29yZD8uaXRlbXM/LnJlZHVjZShcbiAgICAgICAgICAob2JqLCBpdGVtKSA9PiBPYmplY3QuYXNzaWduKG9iaiwge29iamVjdElkOiByZWNvcmQuaWR9LCB7W2l0ZW0ua2V5XTogaXRlbS52YWx1ZX0pLFxuICAgICAgICAgIHt9XG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1EZWZpbml0aW9uJDogT2JzZXJ2YWJsZTxhbnk+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLFxuICAgIHRoaXMuY2xlYXJGb3JtJCxcbiAgXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtvYmplY3RNYW5hZ2VtZW50SWRdKSA9PlxuICAgICAgdGhpcy5vYmplY3RTZXJ2aWNlXG4gICAgICAgIC5nZXRQcmVmaWxsZWRPYmplY3RGcm9tT2JqZWN0VXJsKHtvYmplY3RNYW5hZ2VtZW50SWQsIGZvcm1UeXBlOiBGb3JtVHlwZS5FRElURk9STX0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXRyaWV2aW5nRm9ybUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUlucHV0KCk7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCkucGlwZShzdGFydFdpdGgobnVsbCkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICApLFxuICAgIG1hcChyZXMgPT4ge1xuICAgICAgaWYgKHJlcyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlSW5wdXQoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcz8uZm9ybURlZmluaXRpb247XG4gICAgfSksXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSkpXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb2x1bW5zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWFyY2hDb2x1bW4+PiA9IHRoaXMub2JqZWN0TWFuYWdlbWVudElkJC5waXBlKFxuICAgIHN3aXRjaE1hcChvYmplY3RNYW5hZ2VtZW50SWQgPT4gdGhpcy5vYmplY3RDb2x1bW5TZXJ2aWNlLmdldE9iamVjdENvbHVtbnMob2JqZWN0TWFuYWdlbWVudElkKSksXG4gICAgbWFwKHJlcyA9PiByZXMpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmllbGRzJDogT2JzZXJ2YWJsZTxBcnJheTxMaXN0RmllbGQ+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY29sdW1ucyQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29sdW1uc10pID0+IHtcbiAgICAgIGlmIChjb2x1bW5zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY29sdW1uVHlwZSQubmV4dChDb2x1bW5UeXBlLkNVU1RPTSk7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAuLi5jb2x1bW5zLm1hcChjb2x1bW4gPT4ge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBgZmllbGRMYWJlbHMuJHtjb2x1bW4udHJhbnNsYXRpb25LZXl9YDtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodHJhbnNsYXRpb25LZXkpO1xuICAgICAgICAgICAgY29uc3QgdmFsaWRUcmFuc2xhdGlvbiA9IHRyYW5zbGF0aW9uICE9PSB0cmFuc2xhdGlvbktleSAmJiB0cmFuc2xhdGlvbjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGtleTogY29sdW1uLnRyYW5zbGF0aW9uS2V5LFxuICAgICAgICAgICAgICBsYWJlbDogY29sdW1uLnRpdGxlIHx8IHZhbGlkVHJhbnNsYXRpb24gfHwgY29sdW1uLnRyYW5zbGF0aW9uS2V5LFxuICAgICAgICAgICAgICBzb3J0YWJsZTogY29sdW1uLnNvcnRhYmxlLFxuICAgICAgICAgICAgICAuLi4oY29sdW1uLnZpZXdUeXBlICYmIHt2aWV3VHlwZTogY29sdW1uLnZpZXdUeXBlfSksXG4gICAgICAgICAgICAgIC4uLihjb2x1bW4uZW51bSAmJiB7ZW51bTogY29sdW1uLmVudW19KSxcbiAgICAgICAgICAgICAgLi4uKGNvbHVtbi5mb3JtYXQgJiYge2Zvcm1hdDogY29sdW1uLmZvcm1hdH0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb2x1bW5UeXBlJC5uZXh0KENvbHVtblR5cGUuREVGQVVMVCk7XG4gICAgICByZXR1cm4gdGhpcy5zZXREZWZhdWx0RmllbGRzKCk7XG4gICAgfSlcbiAgKTtcblxuICBwcml2YXRlIF9zZXR0aW5nUGFnZVRpdGxlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RTZXJ2aWNlOiBPYmplY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2JqZWN0Q29sdW1uU2VydmljZTogT2JqZWN0Q29sdW1uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlOiBPYmplY3RNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VUaXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TW9kYWwkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJGb3JtJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgb25Gb3JtaW9DaGFuZ2UoZm9ybWlvKTogdm9pZCB7XG4gICAgaWYgKGZvcm1pby5kYXRhICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc3VibWlzc2lvbiQubmV4dChmb3JtaW8uZGF0YSk7XG4gICAgICB0aGlzLmZvcm1WYWxpZCQubmV4dChmb3JtaW8uaXNWYWxpZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZE9iamVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCgpO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMub2JqZWN0TWFuYWdlbWVudElkJCwgdGhpcy5zdWJtaXNzaW9uJCwgdGhpcy5mb3JtVmFsaWQkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBmaWx0ZXIoKFtvYmplY3RNYW5hZ2VtZW50SWQsIHN1Ym1pc3Npb24sIGZvcm1WYWxpZF0pID0+IGZvcm1WYWxpZCksXG4gICAgICAgIHN3aXRjaE1hcCgoW29iamVjdE1hbmFnZW1lbnRJZCwgc3VibWlzc2lvbl0pID0+XG4gICAgICAgICAgdGhpcy5vYmplY3RTZXJ2aWNlXG4gICAgICAgICAgICAuY3JlYXRlT2JqZWN0KFxuICAgICAgICAgICAgICB7b2JqZWN0TWFuYWdlbWVudElkfSxcbiAgICAgICAgICAgICAgey4uLnRoaXMub2JqZWN0U2VydmljZS5yZW1vdmVFbXB0eVN0cmluZ1ZhbHVlc0Zyb21TdWJtaXNzaW9uKHN1Ym1pc3Npb24pfVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNyZWF0ZU9iamVjdEVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVuYWJsZUlucHV0KCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgICAgICAgIHRoaXMucmVmcmVzaE9iamVjdExpc3QoKTtcbiAgICAgICAgICB0aGlzLmNsZWFyRm9ybSQubmV4dCh0cnVlKTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RDcmVhdGVkJykpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICByZWRpcmVjdFRvRGV0YWlscyhyZWNvcmQpOiB2b2lkIHtcbiAgICBjb25zdCBvYmplY3RJZCA9IHJlY29yZC5vYmplY3RVcmwgPyByZWNvcmQub2JqZWN0VXJsLnNwbGl0KCcvJykucG9wKCkgOiByZWNvcmQub2JqZWN0SWQ7XG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGNvbmZpZ3VyYXRpb25JZCA9PiB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9vYmplY3RzLyR7Y29uZmlndXJhdGlvbklkfS8ke29iamVjdElkfWBdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlYXJjaChzZWFyY2hGaWVsZFZhbHVlczogU2VhcmNoRmllbGRWYWx1ZXMpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkVmFsdWVzJC5uZXh0KHNlYXJjaEZpZWxkVmFsdWVzIHx8IHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaE9iamVjdExpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoT2JqZWN0TGlzdCQubmV4dChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUlucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUlucHV0JC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRGaWVsZHMoKSB7XG4gICAgY29uc3Qga2V5czogQXJyYXk8c3RyaW5nPiA9IFsncmVjb3JkSW5kZXgnLCAnb2JqZWN0VXJsJ107XG4gICAgcmV0dXJuIGtleXMubWFwKGtleSA9PiAoe1xuICAgICAgbGFiZWw6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBvYmplY3QubGFiZWxzLiR7a2V5fWApfWAsXG4gICAgICBrZXksXG4gICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgIHZpZXdUeXBlOiAnc3RyaW5nJyxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoZXJyb3I6IGFueSkge1xuICAgIHRoaXMudG9hc3RyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RSZXRyaWV2aW5nRm9ybUVycm9yJykpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ3JlYXRlT2JqZWN0RXJyb3IoZXJyb3I6IGFueSkge1xuICAgIHRoaXMudG9hc3RyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RDcmVhdGlvbkVycm9yJykpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwU2VhcmNoVmFsdWVzVG9GaWx0ZXJzKFxuICAgIHZhbHVlczogU2VhcmNoRmllbGRWYWx1ZXNcbiAgKTogQXJyYXk8U2VhcmNoRmlsdGVyIHwgU2VhcmNoRmlsdGVyUmFuZ2U+IHtcbiAgICBjb25zdCBmaWx0ZXJzOiBBcnJheTxTZWFyY2hGaWx0ZXIgfCBTZWFyY2hGaWx0ZXJSYW5nZT4gPSBbXTtcblxuICAgIE9iamVjdC5rZXlzKHZhbHVlcykuZm9yRWFjaCh2YWx1ZUtleSA9PiB7XG4gICAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHZhbHVlc1t2YWx1ZUtleV0gYXMgYW55O1xuICAgICAgaWYgKHNlYXJjaFZhbHVlLnN0YXJ0KSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh7a2V5OiB2YWx1ZUtleSwgcmFuZ2VGcm9tOiBzZWFyY2hWYWx1ZS5zdGFydCwgcmFuZ2VUbzogc2VhcmNoVmFsdWUuZW5kfSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoc2VhcmNoVmFsdWUpKSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh7a2V5OiB2YWx1ZUtleSwgdmFsdWVzOiBzZWFyY2hWYWx1ZX0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBmaWx0ZXJzLnB1c2goe2tleTogdmFsdWVLZXksIHZhbHVlczogW3NlYXJjaFZhbHVlXX0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgbG9hZGluZzogbG9hZGluZyQgfCBhc3luYyxcbiAgICBwYWdpbmF0aW9uOiBwYWdpbmF0aW9uJCB8IGFzeW5jLFxuICAgIGRpc2FibGVJbnB1dDogZGlzYWJsZUlucHV0JCB8IGFzeW5jLFxuICAgIGZpZWxkczogZmllbGRzJCB8IGFzeW5jLFxuICAgIG9iamVjdENvbmZpZ3VyYXRpb246IG9iamVjdENvbmZpZ3VyYXRpb24kIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuPlxuICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50IHB0LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIHByLTAgcGwtMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cCBtdC1tM3B4IG1iLTMgbXItMFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zOyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JzLmxvYWRpbmcgPT09IGZhbHNlOyBlbHNlIGxvYWRpbmdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaEZpZWxkczsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGlzdDsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3JlYXRlTmV3TW9kYWxcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnMgbGV0LW9icz1cIm9ic1wiPlxuICA8YnV0dG9uXG4gICAgKGNsaWNrKT1cIm9wZW5Nb2RhbCgpXCJcbiAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICBzaXplPVwibWRcIlxuICAgIGNsYXNzPVwibWwtM1wiXG4gICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlSW5wdXQgfHwgb2JzLmxvYWRpbmdcIlxuICA+XG4gICAge3sgJ29iamVjdC5jcmVhdGVPYmplY3QnIHwgdHJhbnNsYXRlIH19XG4gICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2VhcmNoRmllbGRzIGxldC1vYnM9XCJvYnNcIj5cbiAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICA8dmFsdGltby1zZWFyY2gtZmllbGRzXG4gICAgICBbbG9hZGluZ109XCJvYnMubG9hZGluZ1wiXG4gICAgICBbc2VhcmNoRmllbGRzXT1cIm9iamVjdFNlYXJjaEZpZWxkcyQgfCBhc3luY1wiXG4gICAgICAoZG9TZWFyY2gpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgW2RvY3VtZW50RGVmaW5pdGlvbk5hbWVdPVwib2JqZWN0TWFuYWdlbWVudElkJCB8IGFzeW5jXCJcbiAgICAgIFtzZXRWYWx1ZXNTdWJqZWN0JF09XCJudWxsXCJcbiAgICA+PC92YWx0aW1vLXNlYXJjaC1maWVsZHM+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0IGxldC1vYnM9XCJvYnNcIj5cbiAgPHZhbHRpbW8td2lkZ2V0PlxuICAgIDx2YWx0aW1vLWxpc3RcbiAgICAgIFtpdGVtc109XCJvYnMub2JqZWN0Q29uZmlndXJhdGlvblwiXG4gICAgICBbZmllbGRzXT1cIm9icy5maWVsZHNcIlxuICAgICAgW3ZpZXdNb2RlXT1cInRydWVcIlxuICAgICAgW2hlYWRlcl09XCJ0cnVlXCJcbiAgICAgIFtwYWdpbmF0aW9uXT1cIm9icy5wYWdpbmF0aW9uXCJcbiAgICAgIHBhZ2luYXRpb25JZGVudGlmaWVyPVwib2JqZWN0Q29uZmlndXJhdGlvbkxpc3RcIlxuICAgICAgKHBhZ2luYXRpb25DbGlja2VkKT1cInBhZ2luYXRpb25DbGlja2VkKCRldmVudClcIlxuICAgICAgKHBhZ2luYXRpb25TZXQpPVwicGFnaW5hdGlvblNldCgkZXZlbnQpXCJcbiAgICAgIChyb3dDbGlja2VkKT1cInJlZGlyZWN0VG9EZXRhaWxzKCRldmVudClcIlxuICAgID5cbiAgICAgIDxkaXYgaGVhZGVyPlxuICAgICAgICA8aDMgY2xhc3M9XCJsaXN0LWhlYWRlci10aXRsZVwiPlxuICAgICAgICAgIHt7ICdvYmplY3QudGl0bGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPHN1cCBjbGFzcz1cIm1sLTEgYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1wcmltYXJ5XCI+e3tcbiAgICAgICAgICAgIG9icy5vYmplY3RDb25maWd1cmF0aW9uPy5sZW5ndGggfHwgMFxuICAgICAgICAgIH19PC9zdXA+XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cbiAgICA8L3ZhbHRpbW8tbGlzdD5cbiAgPC92YWx0aW1vLXdpZGdldD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3JlYXRlTmV3TW9kYWw+XG4gIDxjZHMtbW9kYWxcbiAgICB2YWx0aW1vQ2RzTW9kYWxcbiAgICAqbmdJZj1cIntcbiAgICAgIHNob3c6IHNob3dNb2RhbCQgfCBhc3luYyxcbiAgICAgIGZvcm1WYWxpZDogZm9ybVZhbGlkJCB8IGFzeW5jLFxuICAgICAgZm9ybURlZmluaXRpb246IGZvcm1EZWZpbml0aW9uJCB8IGFzeW5jLFxuICAgICAgZGlzYWJsZUlucHV0OiBkaXNhYmxlSW5wdXQkIHwgYXN5bmNcbiAgICB9IGFzIG1vZGFsT2JzXCJcbiAgICBbb3Blbl09XCJtb2RhbE9icy5zaG93XCJcbiAgPlxuICAgIDxjZHMtbW9kYWwtaGVhZGVyIFtzaG93Q2xvc2VCdXR0b25dPVwidHJ1ZVwiIChjbG9zZVNlbGVjdCk9XCJjbG9zZU1vZGFsKClcIj5cbiAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICAgIHt7ICdvYmplY3QuY3JlYXRlT2JqZWN0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9oMz5cbiAgICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG4gICAgPHNlY3Rpb24gY2RzTW9kYWxDb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGFsQ29udGVudDsgY29udGV4dDoge21vZGFsT2JzOiBtb2RhbE9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGFsRm9vdGVyOyBjb250ZXh0OiB7bW9kYWxPYnM6IG1vZGFsT2JzfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Nkcy1tb2RhbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxDb250ZW50IGxldC1tb2RhbE9icz1cIm1vZGFsT2JzXCI+XG4gIDx2YWx0aW1vLWZvcm0taW9cbiAgICBbZm9ybV09XCJtb2RhbE9icy5mb3JtRGVmaW5pdGlvblwiXG4gICAgKGNoYW5nZSk9XCJvbkZvcm1pb0NoYW5nZSgkZXZlbnQpXCJcbiAgPjwvdmFsdGltby1mb3JtLWlvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RhbEZvb3RlciBsZXQtbW9kYWxPYnM9XCJtb2RhbE9ic1wiPlxuICA8Y2RzLW1vZGFsLWZvb3Rlcj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICBbYXR0ci5tb2RhbC1wcmltYXJ5LWZvY3VzXT1cInRydWVcIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGFsT2JzLmRpc2FibGVJbnB1dFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdvYmplY3QuY2xvc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgIChjbGljayk9XCJhZGRPYmplY3QoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJtb2RhbE9icy5kaXNhYmxlSW5wdXQgfHwgbW9kYWxPYnMuZm9ybVZhbGlkID09PSBmYWxzZVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdvYmplY3Quc2F2ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWljb25cIj48Y2RzLWxvYWRpbmc+PC9jZHMtbG9hZGluZz48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -27,21 +27,21 @@ const routes = [
|
|
|
27
27
|
path: 'objects/:objectManagementId',
|
|
28
28
|
canActivate: [AuthGuardService],
|
|
29
29
|
component: ObjectListComponent,
|
|
30
|
-
data: { title: 'Objects', roles: [ROLE_USER] },
|
|
30
|
+
data: { title: 'Objects', roles: [ROLE_USER], customPageTitle: true },
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
path: 'objects/:objectManagementId/:objectId',
|
|
34
34
|
canActivate: [AuthGuardService],
|
|
35
35
|
component: ObjectDetailContainerComponent,
|
|
36
|
-
data: { title: 'Object details', roles: [ROLE_USER] },
|
|
36
|
+
data: { title: 'Object details', roles: [ROLE_USER], customPageTitle: true },
|
|
37
37
|
},
|
|
38
38
|
];
|
|
39
39
|
export class ObjectRoutingModule {
|
|
40
40
|
}
|
|
41
|
-
ObjectRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
42
|
-
ObjectRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
43
|
-
ObjectRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
41
|
+
ObjectRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
42
|
+
ObjectRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, i1.RouterModule], exports: [RouterModule] });
|
|
43
|
+
ObjectRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectRoutingModule, decorators: [{
|
|
45
45
|
type: NgModule,
|
|
46
46
|
args: [{
|
|
47
47
|
imports: [CommonModule, RouterModule.forChild(routes)],
|
|
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
49
49
|
declarations: [],
|
|
50
50
|
}]
|
|
51
51
|
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9vYmplY3Qtcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHdFQUF3RSxDQUFDOzs7QUFFdEgsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLFNBQVMsRUFBRSxtQkFBbUI7UUFDOUIsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFDO0tBQ3BFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsdUNBQXVDO1FBQzdDLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLFNBQVMsRUFBRSw4QkFBOEI7UUFDekMsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUM7S0FDM0U7Q0FDRixDQUFDO0FBT0YsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLFlBSnBCLFlBQVksOEJBQ1osWUFBWTtpSEFHWCxtQkFBbUIsWUFKcEIsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzNDLFlBQVk7MkZBR1gsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxFQUFFO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBdXRoR3VhcmRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge1JPTEVfVVNFUn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7T2JqZWN0TGlzdENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL29iamVjdC1saXN0L29iamVjdC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge09iamVjdERldGFpbENvbnRhaW5lckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL29iamVjdC1kZXRhaWwtY29udGFpbmVyL29iamVjdC1kZXRhaWwtY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJ29iamVjdHMvOm9iamVjdE1hbmFnZW1lbnRJZCcsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRTZXJ2aWNlXSxcbiAgICBjb21wb25lbnQ6IE9iamVjdExpc3RDb21wb25lbnQsXG4gICAgZGF0YToge3RpdGxlOiAnT2JqZWN0cycsIHJvbGVzOiBbUk9MRV9VU0VSXSwgY3VzdG9tUGFnZVRpdGxlOiB0cnVlfSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdvYmplY3RzLzpvYmplY3RNYW5hZ2VtZW50SWQvOm9iamVjdElkJyxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZFNlcnZpY2VdLFxuICAgIGNvbXBvbmVudDogT2JqZWN0RGV0YWlsQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIGRhdGE6IHt0aXRsZTogJ09iamVjdCBkZXRhaWxzJywgcm9sZXM6IFtST0xFX1VTRVJdLCBjdXN0b21QYWdlVGl0bGU6IHRydWV9LFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Um91dGluZ01vZHVsZSB7fVxuIl19
|
|
@@ -18,18 +18,17 @@ import { ObjectRoutingModule } from './object-routing.module';
|
|
|
18
18
|
import { ObjectListComponent } from './components/object-list/object-list.component';
|
|
19
19
|
import { TranslateModule } from '@ngx-translate/core';
|
|
20
20
|
import { AsyncPipe, CommonModule } from '@angular/common';
|
|
21
|
-
import { ConfirmationModalModule, ListModule, SearchFieldsModule, SpinnerModule, WidgetModule, } from '@valtimo/components';
|
|
21
|
+
import { ConfirmationModalModule, FormIoModule, ListModule, SearchFieldsModule, SpinnerModule, ValtimoCdsModalDirectiveModule, WidgetModule, } from '@valtimo/components';
|
|
22
22
|
import { ObjectDetailContainerComponent } from './components/object-detail-container/object-detail-container.component';
|
|
23
23
|
import { ObjectDetailComponent } from './components/object-detail-container/tabs/object-detail/object-detail.component';
|
|
24
24
|
import { ButtonModule, IconModule, InputModule, LoadingModule, ModalModule, } from 'carbon-components-angular';
|
|
25
25
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
26
26
|
import { TooltipIconModule } from '@valtimo/user-interface';
|
|
27
|
-
import { FormIoModule } from '@valtimo/components';
|
|
28
27
|
import * as i0 from "@angular/core";
|
|
29
28
|
export class ObjectModule {
|
|
30
29
|
}
|
|
31
|
-
ObjectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
32
|
-
ObjectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
30
|
+
ObjectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
31
|
+
ObjectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent], imports: [CommonModule,
|
|
33
32
|
ObjectRoutingModule,
|
|
34
33
|
TranslateModule,
|
|
35
34
|
AsyncPipe,
|
|
@@ -45,8 +44,9 @@ ObjectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
|
45
44
|
InputModule,
|
|
46
45
|
TooltipIconModule,
|
|
47
46
|
ConfirmationModalModule,
|
|
48
|
-
SearchFieldsModule
|
|
49
|
-
|
|
47
|
+
SearchFieldsModule,
|
|
48
|
+
ValtimoCdsModalDirectiveModule] });
|
|
49
|
+
ObjectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, imports: [CommonModule,
|
|
50
50
|
ObjectRoutingModule,
|
|
51
51
|
TranslateModule,
|
|
52
52
|
WidgetModule,
|
|
@@ -61,8 +61,9 @@ ObjectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
|
61
61
|
InputModule,
|
|
62
62
|
TooltipIconModule,
|
|
63
63
|
ConfirmationModalModule,
|
|
64
|
-
SearchFieldsModule
|
|
65
|
-
|
|
64
|
+
SearchFieldsModule,
|
|
65
|
+
ValtimoCdsModalDirectiveModule] });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectModule, decorators: [{
|
|
66
67
|
type: NgModule,
|
|
67
68
|
args: [{
|
|
68
69
|
declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],
|
|
@@ -84,8 +85,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
84
85
|
TooltipIconModule,
|
|
85
86
|
ConfirmationModalModule,
|
|
86
87
|
SearchFieldsModule,
|
|
88
|
+
ValtimoCdsModalDirectiveModule,
|
|
87
89
|
],
|
|
88
90
|
exports: [],
|
|
89
91
|
}]
|
|
90
92
|
}] });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vb2JqZWN0L3NyYy9saWIvb2JqZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDbkYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixZQUFZLEVBQ1osVUFBVSxFQUNWLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsOEJBQThCLEVBQzlCLFlBQVksR0FDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3RILE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlGQUFpRixDQUFDO0FBQ3RILE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxhQUFhLEVBQ2IsV0FBVyxHQUNaLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUJBQXlCLENBQUM7O0FBMEIxRCxNQUFNLE9BQU8sWUFBWTs7eUdBQVosWUFBWTswR0FBWixZQUFZLGlCQXZCUixtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsYUFFdkYsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsU0FBUztRQUNULFlBQVk7UUFDWixVQUFVO1FBQ1YsWUFBWTtRQUNaLFVBQVU7UUFDVixhQUFhO1FBQ2IsYUFBYTtRQUNiLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQiw4QkFBOEI7MEdBSXJCLFlBQVksWUFyQnJCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsZUFBZTtRQUVmLFlBQVk7UUFDWixVQUFVO1FBQ1YsWUFBWTtRQUNaLFVBQVU7UUFDVixhQUFhO1FBQ2IsYUFBYTtRQUNiLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQiw4QkFBOEI7MkZBSXJCLFlBQVk7a0JBeEJ4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLDhCQUE4QixFQUFFLHFCQUFxQixDQUFDO29CQUMxRixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLDhCQUE4QjtxQkFDL0I7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JqZWN0Um91dGluZ01vZHVsZX0gZnJvbSAnLi9vYmplY3Qtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHtPYmplY3RMaXN0Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWxpc3Qvb2JqZWN0LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QXN5bmNQaXBlLCBDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb25maXJtYXRpb25Nb2RhbE1vZHVsZSxcbiAgRm9ybUlvTW9kdWxlLFxuICBMaXN0TW9kdWxlLFxuICBTZWFyY2hGaWVsZHNNb2R1bGUsXG4gIFNwaW5uZXJNb2R1bGUsXG4gIFZhbHRpbW9DZHNNb2RhbERpcmVjdGl2ZU1vZHVsZSxcbiAgV2lkZ2V0TW9kdWxlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7T2JqZWN0RGV0YWlsQ29udGFpbmVyQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWRldGFpbC1jb250YWluZXIvb2JqZWN0LWRldGFpbC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0RGV0YWlsQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWRldGFpbC1jb250YWluZXIvdGFicy9vYmplY3QtZGV0YWlsL29iamVjdC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIExvYWRpbmdNb2R1bGUsXG4gIE1vZGFsTW9kdWxlLFxufSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUb29sdGlwSWNvbk1vZHVsZX0gZnJvbSAnQHZhbHRpbW8vdXNlci1pbnRlcmZhY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtPYmplY3RMaXN0Q29tcG9uZW50LCBPYmplY3REZXRhaWxDb250YWluZXJDb21wb25lbnQsIE9iamVjdERldGFpbENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgT2JqZWN0Um91dGluZ01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFdpZGdldE1vZHVsZSxcbiAgICBMaXN0TW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFNwaW5uZXJNb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZSxcbiAgICBGb3JtSW9Nb2R1bGUsXG4gICAgTW9kYWxNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBUb29sdGlwSWNvbk1vZHVsZSxcbiAgICBDb25maXJtYXRpb25Nb2RhbE1vZHVsZSxcbiAgICBTZWFyY2hGaWVsZHNNb2R1bGUsXG4gICAgVmFsdGltb0Nkc01vZGFsRGlyZWN0aXZlTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0TW9kdWxlIHt9XG4iXX0=
|
|
@@ -39,12 +39,12 @@ export class ObjectColumnService {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
ObjectColumnService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
43
|
-
ObjectColumnService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
42
|
+
ObjectColumnService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectColumnService, deps: [{ token: i1.ConfigService }, { token: i2.ObjectManagementService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
43
|
+
ObjectColumnService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectColumnService, providedIn: 'root' });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ObjectColumnService, decorators: [{
|
|
45
45
|
type: Injectable,
|
|
46
46
|
args: [{
|
|
47
47
|
providedIn: 'root',
|
|
48
48
|
}]
|
|
49
49
|
}], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.ObjectManagementService }]; } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNvbHVtbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9zZXJ2aWNlcy9vYmplY3QtY29sdW1uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7O0FBTXJDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDbUIsYUFBNEIsRUFDNUIsdUJBQWdEO1FBRGhELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFDaEUsQ0FBQztJQUVKLGdCQUFnQixDQUFDLGVBQXVCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QjthQUNoQyxhQUFhLENBQUMsZUFBZSxDQUFDO2FBQzlCLElBQUksQ0FDSCxHQUFHLENBQ0QsaUJBQWlCLENBQUMsRUFBRSxDQUNsQixpQkFBaUI7WUFDakIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztZQUNoQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUM1QixJQUFJLENBQUMsbUNBQW1DLENBQUMsaUJBQWlCLENBQUMsQ0FDOUQsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVPLG1DQUFtQyxDQUN6QyxpQkFBMEM7UUFFMUMsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEQsY0FBYyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDcEMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7WUFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNoRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtZQUNuQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBQyxDQUFDO1lBQzlELEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxJQUFJO2dCQUNoRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLElBQVc7YUFDckUsQ0FBQztZQUNGLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxJQUFJO2dCQUNyRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLHFCQUFxQixFQUFFLFVBQVU7YUFDeEUsQ0FBQztTQUNILENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLGNBQWMsQ0FBQywyQkFBbUM7UUFDeEQsUUFBUSwyQkFBMkIsRUFBRTtZQUNuQztnQkFDRSxPQUFPLDJCQUEyQixDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7Z0hBNUNVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbmZpZ1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge21hcCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge09iamVjdE1hbmFnZW1lbnRTZXJ2aWNlLCBTZWFyY2hMaXN0Q29sdW1uLCBTZWFyY2hDb2x1bW59IGZyb20gJ0B2YWx0aW1vL29iamVjdC1tYW5hZ2VtZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENvbHVtblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50U2VydmljZTogT2JqZWN0TWFuYWdlbWVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIGdldE9iamVjdENvbHVtbnMoY29uZmlndXJhdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PFNlYXJjaENvbHVtbj4+IHtcbiAgICByZXR1cm4gdGhpcy5vYmplY3RNYW5hZ2VtZW50U2VydmljZVxuICAgICAgLmdldFNlYXJjaExpc3QoY29uZmlndXJhdGlvbklkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICBvYmplY3RMaXN0Q29sdW1ucyA9PlxuICAgICAgICAgICAgb2JqZWN0TGlzdENvbHVtbnMgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkob2JqZWN0TGlzdENvbHVtbnMpICYmXG4gICAgICAgICAgICBvYmplY3RMaXN0Q29sdW1ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICB0aGlzLm1hcE9iamVjdExpc3RDb2x1bW5zVG9TZWFyY2hDb2x1bW5zKG9iamVjdExpc3RDb2x1bW5zKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBPYmplY3RMaXN0Q29sdW1uc1RvU2VhcmNoQ29sdW1ucyhcbiAgICBzZWFyY2hMaXN0Q29sdW1uczogQXJyYXk8U2VhcmNoTGlzdENvbHVtbj5cbiAgKTogQXJyYXk8U2VhcmNoQ29sdW1uPiB7XG4gICAgcmV0dXJuIHNlYXJjaExpc3RDb2x1bW5zLm1hcChzZWFyY2hMaXN0Q29sdW1uID0+ICh7XG4gICAgICB0cmFuc2xhdGlvbktleTogc2VhcmNoTGlzdENvbHVtbi5rZXksXG4gICAgICBzb3J0YWJsZTogc2VhcmNoTGlzdENvbHVtbi5zb3J0YWJsZSxcbiAgICAgIGRlZmF1bHRTb3J0OiBzZWFyY2hMaXN0Q29sdW1uLmRlZmF1bHRTb3J0LFxuICAgICAgdmlld1R5cGU6IHRoaXMuZ2V0RGlzcGxheVR5cGUoc2VhcmNoTGlzdENvbHVtbi5kaXNwbGF5VHlwZS50eXBlKSxcbiAgICAgIHByb3BlcnR5TmFtZTogc2VhcmNoTGlzdENvbHVtbi5wYXRoLFxuICAgICAgLi4uKHNlYXJjaExpc3RDb2x1bW4udGl0bGUgJiYge3RpdGxlOiBzZWFyY2hMaXN0Q29sdW1uLnRpdGxlfSksXG4gICAgICAuLi4oc2VhcmNoTGlzdENvbHVtbj8uZGlzcGxheVR5cGU/LmRpc3BsYXlUeXBlUGFyYW1ldGVycz8uZW51bSAmJiB7XG4gICAgICAgIGVudW06IHNlYXJjaExpc3RDb2x1bW4uZGlzcGxheVR5cGUuZGlzcGxheVR5cGVQYXJhbWV0ZXJzLmVudW0gYXMgYW55LFxuICAgICAgfSksXG4gICAgICAuLi4oc2VhcmNoTGlzdENvbHVtbi5kaXNwbGF5VHlwZT8uZGlzcGxheVR5cGVQYXJhbWV0ZXJzPy5kYXRlRm9ybWF0ICYmIHtcbiAgICAgICAgZm9ybWF0OiBzZWFyY2hMaXN0Q29sdW1uLmRpc3BsYXlUeXBlPy5kaXNwbGF5VHlwZVBhcmFtZXRlcnM/LmRhdGVGb3JtYXQsXG4gICAgICB9KSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldERpc3BsYXlUeXBlKHNlYXJjaExpc3RDb2x1bW5EaXNwbGF5VHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHNlYXJjaExpc3RDb2x1bW5EaXNwbGF5VHlwZSkge1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHNlYXJjaExpc3RDb2x1bW5EaXNwbGF5VHlwZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|