@valtimo/dossier-management 11.1.2 → 11.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dossier-management-assignee/dossier-management-assignee.component.mjs +5 -5
- package/esm2022/lib/components/dossier-management-connect-modal/dossier-management-connect-modal.component.mjs +56 -27
- package/esm2022/lib/components/dossier-management-detail/dossier-management-detail.component.mjs +13 -74
- package/esm2022/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.mjs +17 -13
- package/esm2022/lib/components/dossier-management-detail-container-actions/dossier-management-detail-container-actions.mjs +152 -0
- package/esm2022/lib/components/dossier-management-document-definition/dossier-management-document-definition.mjs +48 -0
- package/esm2022/lib/components/dossier-management-link-process/dossier-management-link-process.component.mjs +3 -3
- package/esm2022/lib/components/dossier-management-list/dossier-management-list.component.mjs +47 -30
- package/esm2022/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.mjs +45 -43
- package/esm2022/lib/components/dossier-management-processes/dossier-management-processes.component.mjs +110 -0
- package/esm2022/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.mjs +67 -58
- package/esm2022/lib/components/dossier-management-tabs/dossier-management-edit-tab-modal/dossier-management-edit-tab-modal.component.mjs +1 -1
- package/esm2022/lib/components/dossier-management-tabs/dossier-management-tabs.component.mjs +14 -27
- package/esm2022/lib/components/dossier-management-upload/dossier-management-upload.component.mjs +167 -111
- package/esm2022/lib/components/dossier-management-upload/dossier-management-upload.constants.mjs +23 -0
- package/esm2022/lib/components/dossier-management-upload/step/dossier-management-upload-step.component.mjs +17 -0
- package/esm2022/lib/dossier-management.module.mjs +48 -9
- package/esm2022/lib/models/tab.enum.mjs +3 -1
- package/esm2022/lib/services/dossier-detail.service.mjs +84 -0
- package/esm2022/lib/services/dossier-export.service.mjs +39 -0
- package/esm2022/lib/services/dossier-import.service.mjs +38 -0
- package/esm2022/lib/services/index.mjs +3 -1
- package/esm2022/lib/services/tab.service.mjs +2 -2
- package/fesm2022/valtimo-dossier-management.mjs +1174 -654
- package/fesm2022/valtimo-dossier-management.mjs.map +1 -1
- package/lib/components/dossier-management-assignee/dossier-management-assignee.component.d.ts +1 -1
- package/lib/components/dossier-management-assignee/dossier-management-assignee.component.d.ts.map +1 -1
- package/lib/components/dossier-management-connect-modal/dossier-management-connect-modal.component.d.ts +13 -10
- package/lib/components/dossier-management-connect-modal/dossier-management-connect-modal.component.d.ts.map +1 -1
- package/lib/components/dossier-management-detail/dossier-management-detail.component.d.ts +7 -22
- package/lib/components/dossier-management-detail/dossier-management-detail.component.d.ts.map +1 -1
- package/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.d.ts +3 -1
- package/lib/components/dossier-management-detail-container/dossier-management-detail-container.component.d.ts.map +1 -1
- package/lib/components/dossier-management-detail-container-actions/dossier-management-detail-container-actions.d.ts +40 -0
- package/lib/components/dossier-management-detail-container-actions/dossier-management-detail-container-actions.d.ts.map +1 -0
- package/lib/components/dossier-management-document-definition/dossier-management-document-definition.d.ts +15 -0
- package/lib/components/dossier-management-document-definition/dossier-management-document-definition.d.ts.map +1 -0
- package/lib/components/dossier-management-list/dossier-management-list.component.d.ts +16 -19
- package/lib/components/dossier-management-list/dossier-management-list.component.d.ts.map +1 -1
- package/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.d.ts +14 -11
- package/lib/components/dossier-management-list-columns/dossier-management-list-columns.component.d.ts.map +1 -1
- package/lib/components/dossier-management-processes/dossier-management-processes.component.d.ts +29 -0
- package/lib/components/dossier-management-processes/dossier-management-processes.component.d.ts.map +1 -0
- package/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.d.ts +14 -13
- package/lib/components/dossier-management-search-fields/dossier-management-search-fields.component.d.ts.map +1 -1
- package/lib/components/dossier-management-tabs/dossier-management-tabs.component.d.ts +3 -2
- package/lib/components/dossier-management-tabs/dossier-management-tabs.component.d.ts.map +1 -1
- package/lib/components/dossier-management-upload/dossier-management-upload.component.d.ts +42 -30
- package/lib/components/dossier-management-upload/dossier-management-upload.component.d.ts.map +1 -1
- package/lib/components/dossier-management-upload/dossier-management-upload.constants.d.ts +15 -0
- package/lib/components/dossier-management-upload/dossier-management-upload.constants.d.ts.map +1 -0
- package/lib/components/dossier-management-upload/step/dossier-management-upload-step.component.d.ts +9 -0
- package/lib/components/dossier-management-upload/step/dossier-management-upload-step.component.d.ts.map +1 -0
- package/lib/dossier-management.module.d.ts +13 -9
- package/lib/dossier-management.module.d.ts.map +1 -1
- package/lib/models/tab.enum.d.ts +2 -0
- package/lib/models/tab.enum.d.ts.map +1 -1
- package/lib/services/dossier-detail.service.d.ts +30 -0
- package/lib/services/dossier-detail.service.d.ts.map +1 -0
- package/lib/services/dossier-export.service.d.ts +14 -0
- package/lib/services/dossier-export.service.d.ts.map +1 -0
- package/lib/services/dossier-import.service.d.ts +14 -0
- package/lib/services/dossier-import.service.d.ts.map +1 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/tab.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component, ViewChild } from '@angular/core';
|
|
17
|
+
import { Link16 } from '@carbon/icons';
|
|
18
|
+
import { ViewType } from '@valtimo/components';
|
|
19
|
+
import { NotificationService } from 'carbon-components-angular';
|
|
20
|
+
import { BehaviorSubject, combineLatest, switchMap } from 'rxjs';
|
|
21
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
import * as i1 from "@valtimo/document";
|
|
23
|
+
import * as i2 from "carbon-components-angular";
|
|
24
|
+
import * as i3 from "../../services";
|
|
25
|
+
import * as i4 from "@angular/router";
|
|
26
|
+
import * as i5 from "@ngx-translate/core";
|
|
27
|
+
import * as i6 from "@angular/common";
|
|
28
|
+
import * as i7 from "@valtimo/components";
|
|
29
|
+
import * as i8 from "../dossier-management-connect-modal/dossier-management-connect-modal.component";
|
|
30
|
+
export class DossierManagementProcessesComponent {
|
|
31
|
+
constructor(documentService, iconService, dossierDetailService, route, notificationService, translateService) {
|
|
32
|
+
this.documentService = documentService;
|
|
33
|
+
this.iconService = iconService;
|
|
34
|
+
this.dossierDetailService = dossierDetailService;
|
|
35
|
+
this.route = route;
|
|
36
|
+
this.notificationService = notificationService;
|
|
37
|
+
this.translateService = translateService;
|
|
38
|
+
this._refresh$ = new BehaviorSubject(null);
|
|
39
|
+
this.processDocumentDefinitions$ = this._refresh$.pipe(switchMap(() => combineLatest([this.route.paramMap, this.dossierDetailService.selectedVersionNumber$])), switchMap(([params, version]) => this.documentService.findProcessDocumentDefinitionsByVersion(params.get('name') ?? '', version)));
|
|
40
|
+
this.documentDefinition$ = this.route.paramMap.pipe(switchMap((params) => this.documentService.getDocumentDefinitionForManagement(params.get('name') ?? '')));
|
|
41
|
+
this.actionItems = [
|
|
42
|
+
{
|
|
43
|
+
label: 'dossierManagement.unlinkProcess',
|
|
44
|
+
callback: this.deleteProcessDocumentDefinition.bind(this),
|
|
45
|
+
type: 'danger',
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
this.fields = [
|
|
49
|
+
{
|
|
50
|
+
key: 'processName',
|
|
51
|
+
label: 'interface.name',
|
|
52
|
+
viewType: ViewType.TEXT,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
key: 'canInitializeDocument',
|
|
56
|
+
label: 'processCaseConnection.processCreatesCase',
|
|
57
|
+
viewType: ViewType.BOOLEAN,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
key: 'startableByUser',
|
|
61
|
+
label: 'processCaseConnection.startableWithinCase',
|
|
62
|
+
viewType: ViewType.BOOLEAN,
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
this.iconService.register(Link16);
|
|
66
|
+
}
|
|
67
|
+
deleteProcessDocumentDefinition(processDocumentDefinition) {
|
|
68
|
+
this.documentService
|
|
69
|
+
.deleteProcessDocumentDefinition({
|
|
70
|
+
documentDefinitionName: processDocumentDefinition.id.documentDefinitionId.name,
|
|
71
|
+
processDefinitionKey: processDocumentDefinition.id.processDefinitionKey,
|
|
72
|
+
documentDefinitionVersion: processDocumentDefinition.id.documentDefinitionId.version,
|
|
73
|
+
canInitializeDocument: processDocumentDefinition.canInitializeDocument,
|
|
74
|
+
startableByUser: processDocumentDefinition.startableByUser,
|
|
75
|
+
})
|
|
76
|
+
.subscribe({
|
|
77
|
+
next: () => {
|
|
78
|
+
this.notificationService.showNotification({
|
|
79
|
+
type: 'success',
|
|
80
|
+
title: this.translateService.instant('dossierManagement.processLinkNotification.unlinkSuccess'),
|
|
81
|
+
duration: 5000,
|
|
82
|
+
});
|
|
83
|
+
this.loadProcessDocumentDefinitions();
|
|
84
|
+
},
|
|
85
|
+
error: () => {
|
|
86
|
+
this.notificationService.showNotification({
|
|
87
|
+
type: 'error',
|
|
88
|
+
title: this.translateService.instant('dossierManagement.processLinkNotification.unlinkFailure'),
|
|
89
|
+
duration: 5000,
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
loadProcessDocumentDefinitions() {
|
|
95
|
+
this._refresh$.next(null);
|
|
96
|
+
}
|
|
97
|
+
openDossierConnectModal(documentDefinition) {
|
|
98
|
+
this._dossierConnectModal.openModal(documentDefinition);
|
|
99
|
+
}
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementProcessesComponent, deps: [{ token: i1.DocumentService }, { token: i2.IconService }, { token: i3.DossierDetailService }, { token: i4.ActivatedRoute }, { token: i2.NotificationService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DossierManagementProcessesComponent, selector: "valtimo-dossier-management-processes", providers: [NotificationService], viewQueries: [{ propertyName: "_dossierConnectModal", first: true, predicate: ["dossierConnectModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n documentDefinition: documentDefinition$ | async,\n processDocumentDefinitions: processDocumentDefinitions$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.processDocumentDefinitions\"\n [loading]=\"!obs.processDocumentDefinitions\"\n [fields]=\"fields\"\n [header]=\"false\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"connectProcessButton\"></ng-container>\n\n <valtimo-no-results\n [title]=\"'processCaseConnection.noProcesses' | translate\"\n [action]=\"connectProcessButton\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <ng-template #connectProcessButton>\n <button\n cdsButton=\"primary\"\n [disabled]=\"!obs.processDocumentDefinitions\"\n (click)=\"openDossierConnectModal(obs.documentDefinition)\"\n >\n {{ 'dossierManagement.processLink' | translate }}\n\n <svg cdsIcon=\"link\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<valtimo-dossier-management-connect-modal\n #dossierConnectModal\n (reloadProcessDocumentDefinitions)=\"loadProcessDocumentDefinitions()\"\n></valtimo-dossier-management-connect-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */::ng-deep .cds--tab-content{padding:0!important}::ng-deep .dossier-management-processes_actions{width:1px}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i7.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow"] }, { kind: "component", type: i7.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: i8.DossierManagementConnectModalComponent, selector: "valtimo-dossier-management-connect-modal", outputs: ["reloadProcessDocumentDefinitions"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
|
|
102
|
+
}
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DossierManagementProcessesComponent, decorators: [{
|
|
104
|
+
type: Component,
|
|
105
|
+
args: [{ selector: 'valtimo-dossier-management-processes', providers: [NotificationService], template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n documentDefinition: documentDefinition$ | async,\n processDocumentDefinitions: processDocumentDefinitions$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.processDocumentDefinitions\"\n [loading]=\"!obs.processDocumentDefinitions\"\n [fields]=\"fields\"\n [header]=\"false\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"connectProcessButton\"></ng-container>\n\n <valtimo-no-results\n [title]=\"'processCaseConnection.noProcesses' | translate\"\n [action]=\"connectProcessButton\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <ng-template #connectProcessButton>\n <button\n cdsButton=\"primary\"\n [disabled]=\"!obs.processDocumentDefinitions\"\n (click)=\"openDossierConnectModal(obs.documentDefinition)\"\n >\n {{ 'dossierManagement.processLink' | translate }}\n\n <svg cdsIcon=\"link\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<valtimo-dossier-management-connect-modal\n #dossierConnectModal\n (reloadProcessDocumentDefinitions)=\"loadProcessDocumentDefinitions()\"\n></valtimo-dossier-management-connect-modal>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */::ng-deep .cds--tab-content{padding:0!important}::ng-deep .dossier-management-processes_actions{width:1px}\n"] }]
|
|
106
|
+
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.IconService }, { type: i3.DossierDetailService }, { type: i4.ActivatedRoute }, { type: i2.NotificationService }, { type: i5.TranslateService }]; }, propDecorators: { _dossierConnectModal: [{
|
|
107
|
+
type: ViewChild,
|
|
108
|
+
args: ['dossierConnectModal']
|
|
109
|
+
}] } });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1tYW5hZ2VtZW50LXByb2Nlc3Nlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXItbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1tYW5hZ2VtZW50LXByb2Nlc3Nlcy9kb3NzaWVyLW1hbmFnZW1lbnQtcHJvY2Vzc2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLW1hbmFnZW1lbnQtcHJvY2Vzc2VzL2Rvc3NpZXItbWFuYWdlbWVudC1wcm9jZXNzZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBMkIsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdkUsT0FBTyxFQUFjLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQWMsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBVTNFLE1BQU0sT0FBTyxtQ0FBbUM7SUFpRDlDLFlBQ21CLGVBQWdDLEVBQ2hDLFdBQXdCLEVBQ3hCLG9CQUEwQyxFQUMxQyxLQUFxQixFQUNyQixtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBTGxDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLFVBQUssR0FBTCxLQUFL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QUFnQixDQUFDLE9BQU8sQ0FDbEMseURBQXlELENBQzFEO29CQUNELFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sOEJBQThCO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxrQkFBc0M7UUFDbkUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBcEdVLG1DQUFtQzttR0FBbkMsbUNBQW1DLCtEQUZuQyxDQUFDLG1CQUFtQixDQUFDLHVKQzlCbEMsczNEQXNEQTs7NEZEdEJhLG1DQUFtQztrQkFOL0MsU0FBUzsrQkFDRSxzQ0FBc0MsYUFHckMsQ0FBQyxtQkFBbUIsQ0FBQztpUUFJZixvQkFBb0I7c0JBRHBDLFNBQVM7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tcG9uZW50LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1NYXB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0xpbmsxNn0gZnJvbSAnQGNhcmJvbi9pY29ucyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25JdGVtLCBDb2x1bW5Db25maWcsIFZpZXdUeXBlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7RG9jdW1lbnREZWZpbml0aW9uLCBEb2N1bWVudFNlcnZpY2UsIFByb2Nlc3NEb2N1bWVudERlZmluaXRpb259IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7SWNvblNlcnZpY2UsIE5vdGlmaWNhdGlvblNlcnZpY2V9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Rvc3NpZXJEZXRhaWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Rvc3NpZXJNYW5hZ2VtZW50Q29ubmVjdE1vZGFsQ29tcG9uZW50fSBmcm9tICcuLi9kb3NzaWVyLW1hbmFnZW1lbnQtY29ubmVjdC1tb2RhbC9kb3NzaWVyLW1hbmFnZW1lbnQtY29ubmVjdC1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1wcm9jZXNzZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1tYW5hZ2VtZW50LXByb2Nlc3Nlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvc3NpZXItbWFuYWdlbWVudC1wcm9jZXNzZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbTm90aWZpY2F0aW9uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJNYW5hZ2VtZW50UHJvY2Vzc2VzQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnZG9zc2llckNvbm5lY3RNb2RhbCcpXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rvc3NpZXJDb25uZWN0TW9kYWw6IERvc3NpZXJNYW5hZ2VtZW50Q29ubmVjdE1vZGFsQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zJDogT2JzZXJ2YWJsZTxQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uW10+ID1cbiAgICB0aGlzLl9yZWZyZXNoJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucm91dGUucGFyYW1NYXAsIHRoaXMuZG9zc2llckRldGFpbFNlcnZpY2Uuc2VsZWN0ZWRWZXJzaW9uTnVtYmVyJF0pXG4gICAgICApLFxuICAgICAgc3dpdGNoTWFwKChbcGFyYW1zLCB2ZXJzaW9uXSkgPT5cbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZmluZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zQnlWZXJzaW9uKFxuICAgICAgICAgIHBhcmFtcy5nZXQoJ25hbWUnKSA/PyAnJyxcbiAgICAgICAgICB2ZXJzaW9uXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudERlZmluaXRpb24kID0gdGhpcy5yb3V0ZS5wYXJhbU1hcC5waXBlKFxuICAgIHN3aXRjaE1hcCgocGFyYW1zOiBQYXJhbU1hcCkgPT5cbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50RGVmaW5pdGlvbkZvck1hbmFnZW1lbnQocGFyYW1zLmdldCgnbmFtZScpID8/ICcnKVxuICAgIClcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uSXRlbXM6IEFjdGlvbkl0ZW1bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogJ2Rvc3NpZXJNYW5hZ2VtZW50LnVubGlua1Byb2Nlc3MnLFxuICAgICAgY2FsbGJhY2s6IHRoaXMuZGVsZXRlUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5iaW5kKHRoaXMpLFxuICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgfSxcbiAgXTtcbiAgcHVibGljIHJlYWRvbmx5IGZpZWxkczogQ29sdW1uQ29uZmlnW10gPSBbXG4gICAge1xuICAgICAga2V5OiAncHJvY2Vzc05hbWUnLFxuICAgICAgbGFiZWw6ICdpbnRlcmZhY2UubmFtZScsXG4gICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2NhbkluaXRpYWxpemVEb2N1bWVudCcsXG4gICAgICBsYWJlbDogJ3Byb2Nlc3NDYXNlQ29ubmVjdGlvbi5wcm9jZXNzQ3JlYXRlc0Nhc2UnLFxuICAgICAgdmlld1R5cGU6IFZpZXdUeXBlLkJPT0xFQU4sXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdzdGFydGFibGVCeVVzZXInLFxuICAgICAgbGFiZWw6ICdwcm9jZXNzQ2FzZUNvbm5lY3Rpb24uc3RhcnRhYmxlV2l0aGluQ2FzZScsXG4gICAgICB2aWV3VHlwZTogVmlld1R5cGUuQk9PTEVBTixcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyRGV0YWlsU2VydmljZTogRG9zc2llckRldGFpbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVyKExpbmsxNik7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbihcbiAgICBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uOiBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uXG4gICk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAuZGVsZXRlUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbih7XG4gICAgICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24uaWQuZG9jdW1lbnREZWZpbml0aW9uSWQubmFtZSxcbiAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXk6IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24uaWQucHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgIGRvY3VtZW50RGVmaW5pdGlvblZlcnNpb246IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24uaWQuZG9jdW1lbnREZWZpbml0aW9uSWQudmVyc2lvbixcbiAgICAgICAgY2FuSW5pdGlhbGl6ZURvY3VtZW50OiBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLmNhbkluaXRpYWxpemVEb2N1bWVudCxcbiAgICAgICAgc3RhcnRhYmxlQnlVc2VyOiBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLnN0YXJ0YWJsZUJ5VXNlcixcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgJ2Rvc3NpZXJNYW5hZ2VtZW50LnByb2Nlc3NMaW5rTm90aWZpY2F0aW9uLnVubGlua1N1Y2Nlc3MnXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZHVyYXRpb246IDUwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAnZG9zc2llck1hbmFnZW1lbnQucHJvY2Vzc0xpbmtOb3RpZmljYXRpb24udW5saW5rRmFpbHVyZSdcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBkdXJhdGlvbjogNTAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxvYWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWZyZXNoJC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Eb3NzaWVyQ29ubmVjdE1vZGFsKGRvY3VtZW50RGVmaW5pdGlvbjogRG9jdW1lbnREZWZpbml0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fZG9zc2llckNvbm5lY3RNb2RhbC5vcGVuTW9kYWwoZG9jdW1lbnREZWZpbml0aW9uKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyXG4gICpuZ0lmPVwie1xuICAgIGRvY3VtZW50RGVmaW5pdGlvbjogZG9jdW1lbnREZWZpbml0aW9uJCB8IGFzeW5jLFxuICAgIHByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zOiBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4+XG4gIDx2YWx0aW1vLWNhcmJvbi1saXN0XG4gICAgW2FjdGlvbkl0ZW1zXT1cImFjdGlvbkl0ZW1zXCJcbiAgICBbaXRlbXNdPVwib2JzLnByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zXCJcbiAgICBbbG9hZGluZ109XCIhb2JzLnByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zXCJcbiAgICBbZmllbGRzXT1cImZpZWxkc1wiXG4gICAgW2hlYWRlcl09XCJmYWxzZVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyIGNhcmJvblRvb2xiYXJDb250ZW50IFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbm5lY3RQcm9jZXNzQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbdGl0bGVdPVwiJ3Byb2Nlc3NDYXNlQ29ubmVjdGlvbi5ub1Byb2Nlc3NlcycgfCB0cmFuc2xhdGVcIlxuICAgICAgW2FjdGlvbl09XCJjb25uZWN0UHJvY2Vzc0J1dHRvblwiXG4gICAgPjwvdmFsdGltby1uby1yZXN1bHRzPlxuICA8L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG5cbiAgPG5nLXRlbXBsYXRlICNjb25uZWN0UHJvY2Vzc0J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhb2JzLnByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zXCJcbiAgICAgIChjbGljayk9XCJvcGVuRG9zc2llckNvbm5lY3RNb2RhbChvYnMuZG9jdW1lbnREZWZpbml0aW9uKVwiXG4gICAgPlxuICAgICAge3sgJ2Rvc3NpZXJNYW5hZ2VtZW50LnByb2Nlc3NMaW5rJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICA8c3ZnIGNkc0ljb249XCJsaW5rXCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiPjwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjx2YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1jb25uZWN0LW1vZGFsXG4gICNkb3NzaWVyQ29ubmVjdE1vZGFsXG4gIChyZWxvYWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyk9XCJsb2FkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnMoKVwiXG4+PC92YWx0aW1vLWRvc3NpZXItbWFuYWdlbWVudC1jb25uZWN0LW1vZGFsPlxuIl19
|