@valtimo/dossier 12.14.1 → 12.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.mjs +17 -6
- package/fesm2022/valtimo-dossier.mjs +15 -4
- package/fesm2022/valtimo-dossier.mjs.map +1 -1
- package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts +2 -0
- package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -1
- package/package.json +1 -1
package/esm2022/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.mjs
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Component, EventEmitter, Inject, Optional, Output, ViewChild, ViewContainerRef, ViewEncapsulation, } from '@angular/core';
|
|
16
|
+
import { Component, EventEmitter, Inject, Optional, Output, ViewChild, ViewContainerRef, ViewEncapsulation, signal, } from '@angular/core';
|
|
17
17
|
import { FORM_CUSTOM_COMPONENT_TOKEN, } from '@valtimo/process-link';
|
|
18
18
|
import { FormioOptionsImpl, } from '@valtimo/components';
|
|
19
19
|
import { take } from 'rxjs/operators';
|
|
@@ -54,8 +54,10 @@ export class DossierProcessStartModalComponent {
|
|
|
54
54
|
this.formFlowComplete = new EventEmitter();
|
|
55
55
|
this.noProcessLinked = new EventEmitter();
|
|
56
56
|
this.modalOpen$ = new BehaviorSubject(false);
|
|
57
|
+
this.$loading = signal(true);
|
|
57
58
|
this._subscriptions = new Subscription();
|
|
58
59
|
this._formCustomComponentConfig$ = new BehaviorSubject({});
|
|
60
|
+
this.closeModalEvent = new EventEmitter();
|
|
59
61
|
this._useStartEventNameAsStartFormTitle =
|
|
60
62
|
this.configService.config.featureToggles?.useStartEventNameAsStartFormTitle;
|
|
61
63
|
this._formCustomComponentConfig$.next(formCustomComponentConfig);
|
|
@@ -67,6 +69,7 @@ export class DossierProcessStartModalComponent {
|
|
|
67
69
|
this._subscriptions.unsubscribe();
|
|
68
70
|
}
|
|
69
71
|
loadProcessLink() {
|
|
72
|
+
this.$loading.set(true);
|
|
70
73
|
this.processLinkId = null;
|
|
71
74
|
this.formDefinition = null;
|
|
72
75
|
this.formFlowInstanceId = null;
|
|
@@ -79,17 +82,18 @@ export class DossierProcessStartModalComponent {
|
|
|
79
82
|
.getProcessDefinitionStartProcessLink(this.processDefinitionId, null, this.documentDefinitionName)
|
|
80
83
|
.pipe(take(1))
|
|
81
84
|
.subscribe(startProcessResult => {
|
|
85
|
+
this.$loading.set(false);
|
|
82
86
|
if (startProcessResult) {
|
|
87
|
+
this.isUIComponent = false;
|
|
88
|
+
this.isFormViewModel = false;
|
|
83
89
|
switch (startProcessResult.type) {
|
|
84
90
|
case 'form':
|
|
85
91
|
this.formDefinition = startProcessResult.properties.prefilledForm;
|
|
86
92
|
this.processLinkId = startProcessResult.processLinkId;
|
|
87
|
-
this.isFormViewModel = false;
|
|
88
93
|
this.openCdsModal();
|
|
89
94
|
break;
|
|
90
95
|
case 'form-flow':
|
|
91
96
|
this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;
|
|
92
|
-
this.isFormViewModel = false;
|
|
93
97
|
this.openCdsModal();
|
|
94
98
|
break;
|
|
95
99
|
case 'form-view-model':
|
|
@@ -210,6 +214,9 @@ export class DossierProcessStartModalComponent {
|
|
|
210
214
|
this.listService.forceRefresh();
|
|
211
215
|
this.closeCdsModal();
|
|
212
216
|
}));
|
|
217
|
+
this._subscriptions.add(this.closeModalEvent.subscribe(() => {
|
|
218
|
+
formViewModelComponent.destroy();
|
|
219
|
+
}));
|
|
213
220
|
}
|
|
214
221
|
setFormCustomComponent(formCustomComponentKey) {
|
|
215
222
|
this.formCustomComponentDynamicContainer.clear();
|
|
@@ -223,6 +230,9 @@ export class DossierProcessStartModalComponent {
|
|
|
223
230
|
renderedComponent.instance.submittedEvent.subscribe(() => {
|
|
224
231
|
this.closeCdsModal();
|
|
225
232
|
});
|
|
233
|
+
this._subscriptions.add(this.closeModalEvent.subscribe(() => {
|
|
234
|
+
renderedComponent.destroy();
|
|
235
|
+
}));
|
|
226
236
|
});
|
|
227
237
|
}
|
|
228
238
|
openCdsModal() {
|
|
@@ -230,13 +240,14 @@ export class DossierProcessStartModalComponent {
|
|
|
230
240
|
}
|
|
231
241
|
closeCdsModal() {
|
|
232
242
|
this.modalOpen$.next(false);
|
|
243
|
+
this.closeModalEvent.emit();
|
|
233
244
|
}
|
|
234
245
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierProcessStartModalComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.ProcessService }, { token: i3.DocumentService }, { token: i4.ProcessLinkService }, { token: i4.FormFlowService }, { token: i5.UserProviderService }, { token: i6.PermissionService }, { token: i7.DossierListService }, { token: i7.StartModalService }, { token: i8.ConfigService }, { token: FORM_VIEW_MODEL_TOKEN, optional: true }, { token: FORM_CUSTOM_COMPONENT_TOKEN, optional: true }, { token: i4.UrlResolverService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
235
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal", outputs: { formFlowComplete: "formFlowComplete", noProcessLinked: "noProcessLinked" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"modalOpen$ | async\" size=\"sm\" valtimoCdsModal [enableOverflow]=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" class=\"process-start-modal-content\">\n <ng-template #formViewModelComponent></ng-template>\n\n
|
|
246
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal", outputs: { formFlowComplete: "formFlowComplete", noProcessLinked: "noProcessLinked" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"modalOpen$ | async\" size=\"sm\" valtimoCdsModal [enableOverflow]=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" class=\"process-start-modal-content\">\n @if ($loading()) {\n <cds-loading></cds-loading>\n } @else {\n <ng-template #formViewModelComponent></ng-template>\n\n <ng-template #formCustomComponent></ng-template>\n\n @if (formDefinition && !isFormViewModel && !isUIComponent) {\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n }\n\n @if (formFlowInstanceId) {\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n }\n\n @if (!formFlowInstanceId && !formDefinition && isAdmin && !isUIComponent) {\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n }\n\n @if (!formFlowInstanceId && !formDefinition && !isAdmin && !isUIComponent) {\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n }\n }\n </section>\n</cds-modal>\n", styles: [".process-start-modal-content{padding:16px}cds-loading{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "component", type: i9.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "directive", type: i10.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i11.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i4.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }, { kind: "component", type: i11.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i11.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "directive", type: i11.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i11.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i9.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "directive", type: i11.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "pipe", type: i12.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
236
247
|
}
|
|
237
248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierProcessStartModalComponent, decorators: [{
|
|
238
249
|
type: Component,
|
|
239
|
-
args: [{ selector: 'valtimo-dossier-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"modalOpen$ | async\" size=\"sm\" valtimoCdsModal [enableOverflow]=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" class=\"process-start-modal-content\">\n <ng-template #formViewModelComponent></ng-template>\n\n
|
|
250
|
+
args: [{ selector: 'valtimo-dossier-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"modalOpen$ | async\" size=\"sm\" valtimoCdsModal [enableOverflow]=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" class=\"process-start-modal-content\">\n @if ($loading()) {\n <cds-loading></cds-loading>\n } @else {\n <ng-template #formViewModelComponent></ng-template>\n\n <ng-template #formCustomComponent></ng-template>\n\n @if (formDefinition && !isFormViewModel && !isUIComponent) {\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n }\n\n @if (formFlowInstanceId) {\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n }\n\n @if (!formFlowInstanceId && !formDefinition && isAdmin && !isUIComponent) {\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n }\n\n @if (!formFlowInstanceId && !formDefinition && !isAdmin && !isUIComponent) {\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n }\n }\n </section>\n</cds-modal>\n", styles: [".process-start-modal-content{padding:16px}cds-loading{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
240
251
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.ProcessService }, { type: i3.DocumentService }, { type: i4.ProcessLinkService }, { type: i4.FormFlowService }, { type: i5.UserProviderService }, { type: i6.PermissionService }, { type: i7.DossierListService }, { type: i7.StartModalService }, { type: i8.ConfigService }, { type: undefined, decorators: [{
|
|
241
252
|
type: Optional
|
|
242
253
|
}, {
|
|
@@ -261,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
261
272
|
}], noProcessLinked: [{
|
|
262
273
|
type: Output
|
|
263
274
|
}] } });
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC9kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBR04sUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0wsMkJBQTJCLEdBTzVCLE1BQU0sdUJBQXVCLENBQUM7QUFHL0IsT0FBTyxFQUVMLGlCQUFpQixHQUdsQixNQUFNLHFCQUFxQixDQUFDO0FBSTdCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUUsa0NBQWtDLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUUvRixPQUFPLEVBQWdCLHFCQUFxQixFQUFnQixNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVFuRCxNQUFNLE9BQU8saUNBQWlDO0lBK0I1QyxZQUNVLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxjQUE4QixFQUM5Qixl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c0JBQXpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vYWNjZXNzLWNvbnRyb2wnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2UsIFByb2Nlc3NEb2N1bWVudERlZmluaXRpb259IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7XG4gIEZPUk1fQ1VTVE9NX0NPTVBPTkVOVF9UT0tFTixcbiAgRm9ybUN1c3RvbUNvbXBvbmVudCxcbiAgRm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyxcbiAgRm9ybUZsb3dTZXJ2aWNlLFxuICBGb3JtU3VibWlzc2lvblJlc3VsdCxcbiAgUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICBVcmxSZXNvbHZlclNlcnZpY2UsXG59IGZyb20gJ0B2YWx0aW1vL3Byb2Nlc3MtbGluayc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1Byb2Nlc3NTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9wcm9jZXNzJztcbmltcG9ydCB7XG4gIEZvcm1pb0NvbXBvbmVudCxcbiAgRm9ybWlvT3B0aW9uc0ltcGwsXG4gIEZvcm1pb1N1Ym1pc3Npb24sXG4gIFZhbHRpbW9Gb3JtaW9PcHRpb25zLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7Rm9ybWlvQmVmb3JlU3VibWl0fSBmcm9tICdAZm9ybWlvL2FuZ3VsYXIvZm9ybWlvLmNvbW1vbic7XG5pbXBvcnQge0Zvcm1pb0Zvcm19IGZyb20gJ0Bmb3JtaW8vYW5ndWxhcic7XG5pbXBvcnQge1VzZXJQcm92aWRlclNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDQU5fVklFV19DQVNFX1BFUk1JU1NJT04sIERPU1NJRVJfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0V9IGZyb20gJy4uLy4uL3Blcm1pc3Npb25zJztcbmltcG9ydCB7RG9zc2llckxpc3RTZXJ2aWNlLCBTdGFydE1vZGFsU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlLCBGT1JNX1ZJRVdfTU9ERUxfVE9LRU4sIEZvcm1WaWV3TW9kZWx9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERvc3NpZXJQcm9jZXNzU3RhcnRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uS2V5OiBzdHJpbmc7XG4gIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIHB1YmxpYyBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBwcm9jZXNzTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9zdGFydEV2ZW50TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IF91c2VTdGFydEV2ZW50TmFtZUFzU3RhcnRGb3JtVGl0bGUhOiBib29sZWFuO1xuICBwdWJsaWMgZm9ybURlZmluaXRpb246IEZvcm1pb0Zvcm07XG4gIHB1YmxpYyBmb3JtTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZm9ybUZsb3dJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBmb3JtaW9TdWJtaXNzaW9uOiBGb3JtaW9TdWJtaXNzaW9uO1xuICBwcml2YXRlIHByb2Nlc3NMaW5rSWQ6IHN0cmluZztcbiAgcHVibGljIG9wdGlvbnM6IFZhbHRpbW9Gb3JtaW9PcHRpb25zO1xuICBwdWJsaWMgaXNBZG1pbjogYm9vbGVhbjtcbiAgcHVibGljIGlzRm9ybVZpZXdNb2RlbCA9IGZhbHNlO1xuICBwdWJsaWMgaXNVSUNvbXBvbmVudCA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdmb3JtJywge3N0YXRpYzogZmFsc2V9KSBmb3JtOiBGb3JtaW9Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1WaWV3TW9kZWxDb21wb25lbnQnLCB7c3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgcHVibGljIGZvcm1WaWV3TW9kZWxEeW5hbWljQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkKCdmb3JtQ3VzdG9tQ29tcG9uZW50Jywge3N0YXRpYzogZmFsc2UsIHJlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuICBwdWJsaWMgZm9ybUN1c3RvbUNvbXBvbmVudER5bmFtaWNDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG4gIEBPdXRwdXQoKSBmb3JtRmxvd0NvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbm9Qcm9jZXNzTGlua2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBtb2RhbE9wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIEZvcm1DdXN0b21Db21wb25lbnRDb25maWcgfCB7fVxuICA+KHt9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcHJvY2Vzc1NlcnZpY2U6IFByb2Nlc3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9jZXNzTGlua1NlcnZpY2U6IFByb2Nlc3NMaW5rU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1GbG93U2VydmljZTogRm9ybUZsb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclByb3ZpZGVyU2VydmljZTogVXNlclByb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIGxpc3RTZXJ2aWNlOiBEb3NzaWVyTGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdGFydE1vZGFsU2VydmljZTogU3RhcnRNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRk9STV9WSUVXX01PREVMX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGZvcm1WaWV3TW9kZWw6IEZvcm1WaWV3TW9kZWwsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEZPUk1fQ1VTVE9NX0NPTVBPTkVOVF9UT0tFTilcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1DdXN0b21Db21wb25lbnRDb25maWc6IEZvcm1DdXN0b21Db21wb25lbnRDb25maWcsXG4gICAgcHJpdmF0ZSB1cmxSZXNvbHZlclNlcnZpY2U6IFVybFJlc29sdmVyU2VydmljZVxuICApIHtcbiAgICB0aGlzLl91c2VTdGFydEV2ZW50TmFtZUFzU3RhcnRGb3JtVGl0bGUgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy5mZWF0dXJlVG9nZ2xlcz8udXNlU3RhcnRFdmVudE5hbWVBc1N0YXJ0Rm9ybVRpdGxlO1xuXG4gICAgdGhpcy5fZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyQubmV4dChmb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNVc2VyQWRtaW4oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFByb2Nlc3NMaW5rKCkge1xuICAgIHRoaXMucHJvY2Vzc0xpbmtJZCA9IG51bGw7XG4gICAgdGhpcy5mb3JtRGVmaW5pdGlvbiA9IG51bGw7XG4gICAgdGhpcy5mb3JtRmxvd0luc3RhbmNlSWQgPSBudWxsO1xuICAgIGlmICh0aGlzLl91c2VTdGFydEV2ZW50TmFtZUFzU3RhcnRGb3JtVGl0bGUpIHtcbiAgICAgIHRoaXMucHJvY2Vzc1NlcnZpY2UuZ2V0UHJvY2Vzc0RlZmluaXRpb25YbWwodGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgdGhpcy5fc3RhcnRFdmVudE5hbWUgPSB0aGlzLnN0YXJ0TW9kYWxTZXJ2aWNlLmdldFN0YW5kYXJkU3RhcnRFdmVudFRpdGxlKHJlc3VsdC5icG1uMjBYbWwpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucHJvY2Vzc1NlcnZpY2VcbiAgICAgIC5nZXRQcm9jZXNzRGVmaW5pdGlvblN0YXJ0UHJvY2Vzc0xpbmsoXG4gICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lXG4gICAgICApXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShzdGFydFByb2Nlc3NSZXN1bHQgPT4ge1xuICAgICAgICBpZiAoc3RhcnRQcm9jZXNzUmVzdWx0KSB7XG4gICAgICAgICAgc3dpdGNoIChzdGFydFByb2Nlc3NSZXN1bHQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZm9ybSc6XG4gICAgICAgICAgICAgIHRoaXMuZm9ybURlZmluaXRpb24gPSBzdGFydFByb2Nlc3NSZXN1bHQucHJvcGVydGllcy5wcmVmaWxsZWRGb3JtO1xuICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NMaW5rSWQgPSBzdGFydFByb2Nlc3NSZXN1bHQucHJvY2Vzc0xpbmtJZDtcbiAgICAgICAgICAgICAgdGhpcy5pc0Zvcm1WaWV3TW9kZWwgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5vcGVuQ2RzTW9kYWwoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmb3JtLWZsb3cnOlxuICAgICAgICAgICAgICB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCA9IHN0YXJ0UHJvY2Vzc1Jlc3VsdC5wcm9wZXJ0aWVzLmZvcm1GbG93SW5zdGFuY2VJZDtcbiAgICAgICAgICAgICAgdGhpcy5pc0Zvcm1WaWV3TW9kZWwgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5vcGVuQ2RzTW9kYWwoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmb3JtLXZpZXctbW9kZWwnOlxuICAgICAgICAgICAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb3BlcnRpZXMuZm9ybURlZmluaXRpb247XG4gICAgICAgICAgICAgIHRoaXMuZm9ybU5hbWUgPSBzdGFydFByb2Nlc3NSZXN1bHQucHJvcGVydGllcy5mb3JtTmFtZTtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzTGlua0lkID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb2Nlc3NMaW5rSWQ7XG4gICAgICAgICAgICAgIHRoaXMuaXNGb3JtVmlld01vZGVsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRGb3JtVmlld01vZGVsQ29tcG9uZW50KCk7XG4gICAgICAgICAgICAgIHRoaXMub3BlbkNkc01vZGFsKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndXJsJzpcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzTGlua0lkID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb2Nlc3NMaW5rSWQ7XG4gICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldFZhcmlhYmxlcygpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHZhcmlhYmxlcyA9PiB7XG4gICAgICAgICAgICAgICAgICBsZXQgdXJsID0gdGhpcy51cmxSZXNvbHZlclNlcnZpY2UucmVzb2x2ZVVybFZhcmlhYmxlcyhcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRQcm9jZXNzUmVzdWx0LnByb3BlcnRpZXMudXJsLFxuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXMudmFyaWFibGVzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJykuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5zdWJtaXRVUkxQcm9jZXNzTGluayh0aGlzLnByb2Nlc3NMaW5rSWQpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdENvbXBsZXRlZChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd1aS1jb21wb25lbnQnOlxuICAgICAgICAgICAgICB0aGlzLnNldEZvcm1DdXN0b21Db21wb25lbnQoc3RhcnRQcm9jZXNzUmVzdWx0LnByb3BlcnRpZXMuY29tcG9uZW50S2V5KTtcbiAgICAgICAgICAgICAgdGhpcy5pc1VJQ29tcG9uZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5vcGVuQ2RzTW9kYWwoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubm9Qcm9jZXNzTGlua2VkLmVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ290b1Byb2Nlc3NMaW5rU2NyZWVuKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VDZHNNb2RhbCgpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsncHJvY2Vzcy1saW5rcyddLCB7cXVlcnlQYXJhbXM6IHtwcm9jZXNzOiB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5fX0pO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RhbFRpdGxlKCkge1xuICAgIGNvbnN0IGZhbGxiYWNrVGl0bGUgPSBgU3RhcnQgLSAke3RoaXMucHJvY2Vzc05hbWV9YDtcbiAgICByZXR1cm4gdGhpcy5fdXNlU3RhcnRFdmVudE5hbWVBc1N0YXJ0Rm9ybVRpdGxlXG4gICAgICA/IHRoaXMuX3N0YXJ0RXZlbnROYW1lIHx8IGZhbGxiYWNrVGl0bGVcbiAgICAgIDogZmFsbGJhY2tUaXRsZTtcbiAgfVxuXG4gIG9wZW5Nb2RhbChwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uOiBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uKSB7XG4gICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24uaWQucHJvY2Vzc0RlZmluaXRpb25LZXk7XG4gICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5sYXRlc3RWZXJzaW9uSWQ7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5pZC5kb2N1bWVudERlZmluaXRpb25JZC5uYW1lO1xuICAgIHRoaXMucHJvY2Vzc05hbWUgPSBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLnByb2Nlc3NOYW1lO1xuICAgIHRoaXMub3B0aW9ucyA9IG5ldyBGb3JtaW9PcHRpb25zSW1wbCgpO1xuICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlQWxlcnRzID0gdHJ1ZTtcbiAgICBjb25zdCBmb3JtaW9CZWZvcmVTdWJtaXQ6IEZvcm1pb0JlZm9yZVN1Ym1pdCA9IGZ1bmN0aW9uIChzdWJtaXNzaW9uLCBjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobnVsbCwgc3VibWlzc2lvbik7XG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMuc2V0SG9va3MoZm9ybWlvQmVmb3JlU3VibWl0KTtcbiAgICB0aGlzLmxvYWRQcm9jZXNzTGluaygpO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KHN1Ym1pc3Npb246IEZvcm1pb1N1Ym1pc3Npb24pIHtcbiAgICB0aGlzLmZvcm1pb1N1Ym1pc3Npb24gPSBzdWJtaXNzaW9uO1xuXG4gICAgdGhpcy5wcm9jZXNzTGlua1NlcnZpY2Uuc3VibWl0Rm9ybSh0aGlzLnByb2Nlc3NMaW5rSWQsIHN1Ym1pc3Npb24uZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChmb3JtU3VibWlzc2lvblJlc3VsdDogRm9ybVN1Ym1pc3Npb25SZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5zdWJtaXRDb21wbGV0ZWQoZm9ybVN1Ym1pc3Npb25SZXN1bHQpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlcnJvcnMgPT4ge1xuICAgICAgICB0aGlzLmZvcm0uc2hvd0Vycm9ycyhlcnJvcnMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtRmxvd1N1Ym1pdHRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1GbG93Q29tcGxldGUuZW1pdChudWxsKTtcbiAgICB0aGlzLmNsb3NlQ2RzTW9kYWwoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1VzZXJBZG1pbigpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UuZ2V0VXNlclN1YmplY3QoKS5zdWJzY3JpYmUoXG4gICAgICB1c2VySWRlbnRpdHkgPT4ge1xuICAgICAgICB0aGlzLmlzQWRtaW4gPSB1c2VySWRlbnRpdHkucm9sZXMuaW5jbHVkZXMoJ1JPTEVfQURNSU4nKTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuaXNBZG1pbiA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZVNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlQ2RzTW9kYWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3VibWl0Q29tcGxldGVkKGZvcm1TdWJtaXNzaW9uUmVzdWx0OiBGb3JtU3VibWlzc2lvblJlc3VsdCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VDZHNNb2RhbCgpO1xuICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2VcbiAgICAgIC5yZXF1ZXN0UGVybWlzc2lvbihDQU5fVklFV19DQVNFX1BFUk1JU1NJT04sIHtcbiAgICAgICAgcmVzb3VyY2U6IERPU1NJRVJfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UuanNvblNjaGVtYURvY3VtZW50LFxuICAgICAgICBpZGVudGlmaWVyOiBmb3JtU3VibWlzc2lvblJlc3VsdC5kb2N1bWVudElkLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoY2FuVmlld0Nhc2UgPT4ge1xuICAgICAgICBpZiAoY2FuVmlld0Nhc2UpIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXG4gICAgICAgICAgICAnZG9zc2llcnMnLFxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgJ2RvY3VtZW50JyxcbiAgICAgICAgICAgIGZvcm1TdWJtaXNzaW9uUmVzdWx0LmRvY3VtZW50SWQsXG4gICAgICAgICAgXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5saXN0U2VydmljZS5mb3JjZVJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEZvcm1WaWV3TW9kZWxDb21wb25lbnQoKSB7XG4gICAgaWYgKCF0aGlzLmZvcm1WaWV3TW9kZWwuY29tcG9uZW50KSByZXR1cm47XG4gICAgdGhpcy5mb3JtVmlld01vZGVsRHluYW1pY0NvbnRhaW5lci5jbGVhcigpO1xuICAgIGNvbnN0IGZvcm1WaWV3TW9kZWxDb21wb25lbnQgPSB0aGlzLmZvcm1WaWV3TW9kZWxEeW5hbWljQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIHRoaXMuZm9ybVZpZXdNb2RlbC5jb21wb25lbnRcbiAgICApO1xuICAgIGZvcm1WaWV3TW9kZWxDb21wb25lbnQuaW5zdGFuY2UuZm9ybSA9IHRoaXMuZm9ybURlZmluaXRpb247XG4gICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5mb3JtTmFtZSA9IHRoaXMuZm9ybU5hbWU7XG4gICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5pc1N0YXJ0Rm9ybSA9IHRydWU7XG4gICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5wcm9jZXNzRGVmaW5pdGlvbktleSA9IHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXk7XG4gICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5kb2N1bWVudERlZmluaXRpb25OYW1lID0gdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5mb3JtU3VibWl0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdFNlcnZpY2UuZm9yY2VSZWZyZXNoKCk7XG4gICAgICAgIHRoaXMuY2xvc2VDZHNNb2RhbCgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb3JtQ3VzdG9tQ29tcG9uZW50KGZvcm1DdXN0b21Db21wb25lbnRLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUN1c3RvbUNvbXBvbmVudER5bmFtaWNDb250YWluZXIuY2xlYXIoKTtcbiAgICBpZiAoIXRoaXMuZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZykgcmV0dXJuO1xuICAgIHRoaXMuX2Zvcm1DdXN0b21Db21wb25lbnRDb25maWckLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZvcm1DdXN0b21Db21wb25lbnRDb25maWcgPT4ge1xuICAgICAgY29uc3QgY3VzdG9tQ29tcG9uZW50ID0gZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZ1tmb3JtQ3VzdG9tQ29tcG9uZW50S2V5XTtcbiAgICAgIGNvbnN0IHJlbmRlcmVkQ29tcG9uZW50ID0gdGhpcy5mb3JtQ3VzdG9tQ29tcG9uZW50RHluYW1pY0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgIGN1c3RvbUNvbXBvbmVudFxuICAgICAgKSBhcyBDb21wb25lbnRSZWY8Rm9ybUN1c3RvbUNvbXBvbmVudD47XG5cbiAgICAgIHJlbmRlcmVkQ29tcG9uZW50Lmluc3RhbmNlLnByb2Nlc3NEZWZpbml0aW9uS2V5ID0gdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleTtcbiAgICAgIHJlbmRlcmVkQ29tcG9uZW50Lmluc3RhbmNlLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUgPSB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWU7XG5cbiAgICAgIHJlbmRlcmVkQ29tcG9uZW50Lmluc3RhbmNlLnN1Ym1pdHRlZEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VDZHNNb2RhbCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5DZHNNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsT3BlbiQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VDZHNNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsT3BlbiQubmV4dChmYWxzZSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGNkcy1tb2RhbCBbb3Blbl09XCJtb2RhbE9wZW4kIHwgYXN5bmNcIiBzaXplPVwic21cIiB2YWx0aW1vQ2RzTW9kYWwgW2VuYWJsZU92ZXJmbG93XT1cInRydWVcIj5cbiAgPGNkcy1tb2RhbC1oZWFkZXIgW3Nob3dDbG9zZUJ1dHRvbl09XCJ0cnVlXCIgKGNsb3NlU2VsZWN0KT1cIm9uQ2xvc2VTZWxlY3QoKVwiXG4gICAgPjxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICB7eyBtb2RhbFRpdGxlIH19XG4gICAgPC9oMz5cbiAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuXG4gIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudCBbY2RzTGF5ZXJdPVwiMVwiIGNsYXNzPVwicHJvY2Vzcy1zdGFydC1tb2RhbC1jb250ZW50XCI+XG4gICAgPG5nLXRlbXBsYXRlICNmb3JtVmlld01vZGVsQ29tcG9uZW50PjwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Zvcm1DdXN0b21Db21wb25lbnQ+PC9uZy10ZW1wbGF0ZT5cblxuICAgIEBpZiAoZm9ybURlZmluaXRpb24gJiYgIWlzRm9ybVZpZXdNb2RlbCAmJiAhaXNVSUNvbXBvbmVudCkge1xuICAgICAgPHZhbHRpbW8tZm9ybS1pb1xuICAgICAgICAjZm9ybVxuICAgICAgICBbZm9ybV09XCJmb3JtRGVmaW5pdGlvblwiXG4gICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgICAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC92YWx0aW1vLWZvcm0taW8+XG4gICAgfVxuXG4gICAgQGlmIChmb3JtRmxvd0luc3RhbmNlSWQpIHtcbiAgICAgIDx2YWx0aW1vLWZvcm0tZmxvd1xuICAgICAgICBbZm9ybUZsb3dJbnN0YW5jZUlkXT1cImZvcm1GbG93SW5zdGFuY2VJZFwiXG4gICAgICAgIChmb3JtRmxvd0NvbXBsZXRlKT1cImZvcm1GbG93U3VibWl0dGVkKClcIlxuICAgICAgPjwvdmFsdGltby1mb3JtLWZsb3c+XG4gICAgfVxuXG4gICAgQGlmICghZm9ybUZsb3dJbnN0YW5jZUlkICYmICFmb3JtRGVmaW5pdGlvbiAmJiBpc0FkbWluICYmICFpc1VJQ29tcG9uZW50KSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYmctd2FybmluZyB0ZXh0LWJsYWNrIG1iLTAgcC0zIHRleHQtY2VudGVyXCJcbiAgICAgICAgW3RyYW5zbGF0ZV09XCInZm9ybU1hbmFnZW1lbnQubm9Gb3JtRGVmaW5pdGlvbkZvdW5kQWRtaW4nXCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0wIG10LTQgcC0zIHRleHQtY2VudGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiZ290b1Byb2Nlc3NMaW5rU2NyZWVuKClcIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNwYWNlXCJcbiAgICAgICAgICBpZD1cInByb2Nlc3MtbGluay1idXR0b25cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ2Zvcm1NYW5hZ2VtZW50LmdvdG9Qcm9jZXNzTGlua3NCdXR0b24nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmICghZm9ybUZsb3dJbnN0YW5jZUlkICYmICFmb3JtRGVmaW5pdGlvbiAmJiAhaXNBZG1pbiAmJiAhaXNVSUNvbXBvbmVudCkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImJnLXdhcm5pbmcgdGV4dC1ibGFjayBtYi0wIHAtMyB0ZXh0LWNlbnRlclwiXG4gICAgICAgIFt0cmFuc2xhdGVdPVwiJ2Zvcm1NYW5hZ2VtZW50Lm5vRm9ybURlZmluaXRpb25Gb3VuZFVzZXInXCJcbiAgICAgID48L2Rpdj5cbiAgICB9XG4gIDwvc2VjdGlvbj5cbjwvY2RzLW1vZGFsPlxuIl19
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC9kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBR04sUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLDJCQUEyQixHQU81QixNQUFNLHVCQUF1QixDQUFDO0FBRy9CLE9BQU8sRUFBa0IsaUJBQWlCLEdBQTBDLE1BQU0scUJBQXFCLENBQUM7QUFJaEgsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BDLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxrQ0FBa0MsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRS9GLE9BQU8sRUFBZ0IscUJBQXFCLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDcEYsT0FBTyxFQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUW5ELE1BQU0sT0FBTyxpQ0FBaUM7SUFrQzVDLFlBQ1UsS0FBcUIsRUFDckIsTUFBYyxFQUNkLGNB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K0dBaFJVLGlDQUFpQyx3V0E4Q3RCLHFCQUFxQiw2QkFFakMsMkJBQTJCO21HQWhEMUIsaUNBQWlDLHFXQWlCYyxnQkFBZ0IsbUpBRWxCLGdCQUFnQiw2QkM5RTFFLDZpRkEwRUE7OzRGRGZhLGlDQUFpQztrQkFON0MsU0FBUzsrQkFDRSxxQ0FBcUMsaUJBR2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQWdEbEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7OzBCQUN4QyxRQUFROzswQkFDUixNQUFNOzJCQUFDLDJCQUEyQjswRUFoQ0QsSUFBSTtzQkFBdkMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUUzQiw2QkFBNkI7c0JBRG5DLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQztnQkFHcEUsbUNBQW1DO3NCQUR6QyxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBRS9ELGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGVybWlzc2lvblNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2FjY2Vzcy1jb250cm9sJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlLCBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ufSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge1xuICBGT1JNX0NVU1RPTV9DT01QT05FTlRfVE9LRU4sXG4gIEZvcm1DdXN0b21Db21wb25lbnQsXG4gIEZvcm1DdXN0b21Db21wb25lbnRDb25maWcsXG4gIEZvcm1GbG93U2VydmljZSxcbiAgRm9ybVN1Ym1pc3Npb25SZXN1bHQsXG4gIFByb2Nlc3NMaW5rU2VydmljZSxcbiAgVXJsUmVzb2x2ZXJTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9wcm9jZXNzLWxpbmsnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtQcm9jZXNzU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcyc7XG5pbXBvcnQge0Zvcm1pb0NvbXBvbmVudCwgRm9ybWlvT3B0aW9uc0ltcGwsIEZvcm1pb1N1Ym1pc3Npb24sIFZhbHRpbW9Gb3JtaW9PcHRpb25zLH0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1pb0JlZm9yZVN1Ym1pdH0gZnJvbSAnQGZvcm1pby9hbmd1bGFyL2Zvcm1pby5jb21tb24nO1xuaW1wb3J0IHtGb3JtaW9Gb3JtfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHtVc2VyUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q0FOX1ZJRVdfQ0FTRV9QRVJNSVNTSU9OLCBET1NTSUVSX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFfSBmcm9tICcuLi8uLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQge0Rvc3NpZXJMaXN0U2VydmljZSwgU3RhcnRNb2RhbFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7Q29uZmlnU2VydmljZSwgRk9STV9WSUVXX01PREVMX1RPS0VOLCBGb3JtVmlld01vZGVsfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyUHJvY2Vzc1N0YXJ0TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvbktleTogc3RyaW5nO1xuICBwdWJsaWMgcHJvY2Vzc0RlZmluaXRpb25JZDogc3RyaW5nO1xuICBwdWJsaWMgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcHJvY2Vzc05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfc3RhcnRFdmVudE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfdXNlU3RhcnRFdmVudE5hbWVBc1N0YXJ0Rm9ybVRpdGxlITogYm9vbGVhbjtcbiAgcHVibGljIGZvcm1EZWZpbml0aW9uOiBGb3JtaW9Gb3JtO1xuICBwdWJsaWMgZm9ybU5hbWU6IHN0cmluZztcbiAgcHVibGljIGZvcm1GbG93SW5zdGFuY2VJZDogc3RyaW5nO1xuICBwdWJsaWMgZm9ybWlvU3VibWlzc2lvbjogRm9ybWlvU3VibWlzc2lvbjtcbiAgcHJpdmF0ZSBwcm9jZXNzTGlua0lkOiBzdHJpbmc7XG4gIHB1YmxpYyBvcHRpb25zOiBWYWx0aW1vRm9ybWlvT3B0aW9ucztcbiAgcHVibGljIGlzQWRtaW46IGJvb2xlYW47XG4gIHB1YmxpYyBpc0Zvcm1WaWV3TW9kZWwgPSBmYWxzZTtcbiAgcHVibGljIGlzVUlDb21wb25lbnQgPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgnZm9ybScsIHtzdGF0aWM6IGZhbHNlfSkgZm9ybTogRm9ybWlvQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdmb3JtVmlld01vZGVsQ29tcG9uZW50Jywge3N0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZn0pXG4gIHB1YmxpYyBmb3JtVmlld01vZGVsRHluYW1pY0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcbiAgQFZpZXdDaGlsZCgnZm9ybUN1c3RvbUNvbXBvbmVudCcsIHtzdGF0aWM6IGZhbHNlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcbiAgcHVibGljIGZvcm1DdXN0b21Db21wb25lbnREeW5hbWljQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICBAT3V0cHV0KCkgZm9ybUZsb3dDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG5vUHJvY2Vzc0xpbmtlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbW9kYWxPcGVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgJGxvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIEZvcm1DdXN0b21Db21wb25lbnRDb25maWcgfCB7fVxuICA+KHt9KTtcbiAgcHVibGljIHJlYWRvbmx5IGNsb3NlTW9kYWxFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHByb2Nlc3NMaW5rU2VydmljZTogUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUZsb3dTZXJ2aWNlOiBGb3JtRmxvd1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbGlzdFNlcnZpY2U6IERvc3NpZXJMaXN0U2VydmljZSxcbiAgICBwcml2YXRlIHN0YXJ0TW9kYWxTZXJ2aWNlOiBTdGFydE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGT1JNX1ZJRVdfTU9ERUxfVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgZm9ybVZpZXdNb2RlbDogRm9ybVZpZXdNb2RlbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoRk9STV9DVVNUT01fQ09NUE9ORU5UX1RPS0VOKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZzogRm9ybUN1c3RvbUNvbXBvbmVudENvbmZpZyxcbiAgICBwcml2YXRlIHVybFJlc29sdmVyU2VydmljZTogVXJsUmVzb2x2ZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuX3VzZVN0YXJ0RXZlbnROYW1lQXNTdGFydEZvcm1UaXRsZSA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLmZlYXR1cmVUb2dnbGVzPy51c2VTdGFydEV2ZW50TmFtZUFzU3RhcnRGb3JtVGl0bGU7XG5cbiAgICB0aGlzLl9mb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnJC5uZXh0KGZvcm1DdXN0b21Db21wb25lbnRDb25maWcpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pc1VzZXJBZG1pbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUHJvY2Vzc0xpbmsoKSB7XG4gICAgdGhpcy4kbG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5wcm9jZXNzTGlua0lkID0gbnVsbDtcbiAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gbnVsbDtcbiAgICB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCA9IG51bGw7XG4gICAgaWYgKHRoaXMuX3VzZVN0YXJ0RXZlbnROYW1lQXNTdGFydEZvcm1UaXRsZSkge1xuICAgICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzRGVmaW5pdGlvblhtbCh0aGlzLnByb2Nlc3NEZWZpbml0aW9uSWQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLl9zdGFydEV2ZW50TmFtZSA9IHRoaXMuc3RhcnRNb2RhbFNlcnZpY2UuZ2V0U3RhbmRhcmRTdGFydEV2ZW50VGl0bGUocmVzdWx0LmJwbW4yMFhtbCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZVxuICAgICAgLmdldFByb2Nlc3NEZWZpbml0aW9uU3RhcnRQcm9jZXNzTGluayhcbiAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkLFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLmRvY3VtZW50RGVmaW5pdGlvbk5hbWVcbiAgICAgIClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHN0YXJ0UHJvY2Vzc1Jlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuJGxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgaWYgKHN0YXJ0UHJvY2Vzc1Jlc3VsdCkge1xuICAgICAgICAgIHRoaXMuaXNVSUNvbXBvbmVudCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNGb3JtVmlld01vZGVsID0gZmFsc2U7XG4gICAgICAgICAgc3dpdGNoIChzdGFydFByb2Nlc3NSZXN1bHQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZm9ybSc6XG4gICAgICAgICAgICAgIHRoaXMuZm9ybURlZmluaXRpb24gPSBzdGFydFByb2Nlc3NSZXN1bHQucHJvcGVydGllcy5wcmVmaWxsZWRGb3JtO1xuICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NMaW5rSWQgPSBzdGFydFByb2Nlc3NSZXN1bHQucHJvY2Vzc0xpbmtJZDtcbiAgICAgICAgICAgICAgdGhpcy5vcGVuQ2RzTW9kYWwoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmb3JtLWZsb3cnOlxuICAgICAgICAgICAgICB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCA9IHN0YXJ0UHJvY2Vzc1Jlc3VsdC5wcm9wZXJ0aWVzLmZvcm1GbG93SW5zdGFuY2VJZDtcbiAgICAgICAgICAgICAgdGhpcy5vcGVuQ2RzTW9kYWwoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmb3JtLXZpZXctbW9kZWwnOlxuICAgICAgICAgICAgICB0aGlzLmZvcm1EZWZpbml0aW9uID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb3BlcnRpZXMuZm9ybURlZmluaXRpb247XG4gICAgICAgICAgICAgIHRoaXMuZm9ybU5hbWUgPSBzdGFydFByb2Nlc3NSZXN1bHQucHJvcGVydGllcy5mb3JtTmFtZTtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzTGlua0lkID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb2Nlc3NMaW5rSWQ7XG4gICAgICAgICAgICAgIHRoaXMuaXNGb3JtVmlld01vZGVsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRGb3JtVmlld01vZGVsQ29tcG9uZW50KCk7XG4gICAgICAgICAgICAgIHRoaXMub3BlbkNkc01vZGFsKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndXJsJzpcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzTGlua0lkID0gc3RhcnRQcm9jZXNzUmVzdWx0LnByb2Nlc3NMaW5rSWQ7XG4gICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldFZhcmlhYmxlcygpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHZhcmlhYmxlcyA9PiB7XG4gICAgICAgICAgICAgICAgICBsZXQgdXJsID0gdGhpcy51cmxSZXNvbHZlclNlcnZpY2UucmVzb2x2ZVVybFZhcmlhYmxlcyhcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRQcm9jZXNzUmVzdWx0LnByb3BlcnRpZXMudXJsLFxuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXMudmFyaWFibGVzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJykuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5zdWJtaXRVUkxQcm9jZXNzTGluayh0aGlzLnByb2Nlc3NMaW5rSWQpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdENvbXBsZXRlZChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd1aS1jb21wb25lbnQnOlxuICAgICAgICAgICAgICB0aGlzLnNldEZvcm1DdXN0b21Db21wb25lbnQoc3RhcnRQcm9jZXNzUmVzdWx0LnByb3BlcnRpZXMuY29tcG9uZW50S2V5KTtcbiAgICAgICAgICAgICAgdGhpcy5pc1VJQ29tcG9uZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5vcGVuQ2RzTW9kYWwoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubm9Qcm9jZXNzTGlua2VkLmVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ290b1Byb2Nlc3NMaW5rU2NyZWVuKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VDZHNNb2RhbCgpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsncHJvY2Vzcy1saW5rcyddLCB7cXVlcnlQYXJhbXM6IHtwcm9jZXNzOiB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5fX0pO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RhbFRpdGxlKCkge1xuICAgIGNvbnN0IGZhbGxiYWNrVGl0bGUgPSBgU3RhcnQgLSAke3RoaXMucHJvY2Vzc05hbWV9YDtcbiAgICByZXR1cm4gdGhpcy5fdXNlU3RhcnRFdmVudE5hbWVBc1N0YXJ0Rm9ybVRpdGxlXG4gICAgICA/IHRoaXMuX3N0YXJ0RXZlbnROYW1lIHx8IGZhbGxiYWNrVGl0bGVcbiAgICAgIDogZmFsbGJhY2tUaXRsZTtcbiAgfVxuXG4gIG9wZW5Nb2RhbChwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uOiBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uKSB7XG4gICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24uaWQucHJvY2Vzc0RlZmluaXRpb25LZXk7XG4gICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5sYXRlc3RWZXJzaW9uSWQ7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5pZC5kb2N1bWVudERlZmluaXRpb25JZC5uYW1lO1xuICAgIHRoaXMucHJvY2Vzc05hbWUgPSBwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uLnByb2Nlc3NOYW1lO1xuICAgIHRoaXMub3B0aW9ucyA9IG5ldyBGb3JtaW9PcHRpb25zSW1wbCgpO1xuICAgIHRoaXMub3B0aW9ucy5kaXNhYmxlQWxlcnRzID0gdHJ1ZTtcbiAgICBjb25zdCBmb3JtaW9CZWZvcmVTdWJtaXQ6IEZvcm1pb0JlZm9yZVN1Ym1pdCA9IGZ1bmN0aW9uIChzdWJtaXNzaW9uLCBjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobnVsbCwgc3VibWlzc2lvbik7XG4gICAgfTtcbiAgICB0aGlzLm9wdGlvbnMuc2V0SG9va3MoZm9ybWlvQmVmb3JlU3VibWl0KTtcbiAgICB0aGlzLmxvYWRQcm9jZXNzTGluaygpO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KHN1Ym1pc3Npb246IEZvcm1pb1N1Ym1pc3Npb24pIHtcbiAgICB0aGlzLmZvcm1pb1N1Ym1pc3Npb24gPSBzdWJtaXNzaW9uO1xuXG4gICAgdGhpcy5wcm9jZXNzTGlua1NlcnZpY2Uuc3VibWl0Rm9ybSh0aGlzLnByb2Nlc3NMaW5rSWQsIHN1Ym1pc3Npb24uZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChmb3JtU3VibWlzc2lvblJlc3VsdDogRm9ybVN1Ym1pc3Npb25SZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5zdWJtaXRDb21wbGV0ZWQoZm9ybVN1Ym1pc3Npb25SZXN1bHQpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlcnJvcnMgPT4ge1xuICAgICAgICB0aGlzLmZvcm0uc2hvd0Vycm9ycyhlcnJvcnMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtRmxvd1N1Ym1pdHRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1GbG93Q29tcGxldGUuZW1pdChudWxsKTtcbiAgICB0aGlzLmNsb3NlQ2RzTW9kYWwoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1VzZXJBZG1pbigpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UuZ2V0VXNlclN1YmplY3QoKS5zdWJzY3JpYmUoXG4gICAgICB1c2VySWRlbnRpdHkgPT4ge1xuICAgICAgICB0aGlzLmlzQWRtaW4gPSB1c2VySWRlbnRpdHkucm9sZXMuaW5jbHVkZXMoJ1JPTEVfQURNSU4nKTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuaXNBZG1pbiA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZVNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlQ2RzTW9kYWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3VibWl0Q29tcGxldGVkKGZvcm1TdWJtaXNzaW9uUmVzdWx0OiBGb3JtU3VibWlzc2lvblJlc3VsdCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VDZHNNb2RhbCgpO1xuICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2VcbiAgICAgIC5yZXF1ZXN0UGVybWlzc2lvbihDQU5fVklFV19DQVNFX1BFUk1JU1NJT04sIHtcbiAgICAgICAgcmVzb3VyY2U6IERPU1NJRVJfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UuanNvblNjaGVtYURvY3VtZW50LFxuICAgICAgICBpZGVudGlmaWVyOiBmb3JtU3VibWlzc2lvblJlc3VsdC5kb2N1bWVudElkLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoY2FuVmlld0Nhc2UgPT4ge1xuICAgICAgICBpZiAoY2FuVmlld0Nhc2UpIHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXG4gICAgICAgICAgICAnZG9zc2llcnMnLFxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgJ2RvY3VtZW50JyxcbiAgICAgICAgICAgIGZvcm1TdWJtaXNzaW9uUmVzdWx0LmRvY3VtZW50SWQsXG4gICAgICAgICAgXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5saXN0U2VydmljZS5mb3JjZVJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEZvcm1WaWV3TW9kZWxDb21wb25lbnQoKSB7XG4gICAgaWYgKCF0aGlzLmZvcm1WaWV3TW9kZWwuY29tcG9uZW50KSByZXR1cm47XG4gICAgdGhpcy5mb3JtVmlld01vZGVsRHluYW1pY0NvbnRhaW5lci5jbGVhcigpO1xuICAgIGNvbnN0IGZvcm1WaWV3TW9kZWxDb21wb25lbnQgPSB0aGlzLmZvcm1WaWV3TW9kZWxEeW5hbWljQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIHRoaXMuZm9ybVZpZXdNb2RlbC5jb21wb25lbnRcbiAgICApO1xuICAgIGZvcm1WaWV3TW9kZWxDb21wb25lbnQuaW5zdGFuY2UuZm9ybSA9IHRoaXMuZm9ybURlZmluaXRpb247XG4gICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5mb3JtTmFtZSA9IHRoaXMuZm9ybU5hbWU7XG4gICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5pc1N0YXJ0Rm9ybSA9IHRydWU7XG4gICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5wcm9jZXNzRGVmaW5pdGlvbktleSA9IHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXk7XG4gICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5kb2N1bWVudERlZmluaXRpb25OYW1lID0gdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgZm9ybVZpZXdNb2RlbENvbXBvbmVudC5pbnN0YW5jZS5mb3JtU3VibWl0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdFNlcnZpY2UuZm9yY2VSZWZyZXNoKCk7XG4gICAgICAgIHRoaXMuY2xvc2VDZHNNb2RhbCgpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmNsb3NlTW9kYWxFdmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBmb3JtVmlld01vZGVsQ29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Rm9ybUN1c3RvbUNvbXBvbmVudChmb3JtQ3VzdG9tQ29tcG9uZW50S2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1DdXN0b21Db21wb25lbnREeW5hbWljQ29udGFpbmVyLmNsZWFyKCk7XG4gICAgaWYgKCF0aGlzLmZvcm1DdXN0b21Db21wb25lbnRDb25maWcpIHJldHVybjtcbiAgICB0aGlzLl9mb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShmb3JtQ3VzdG9tQ29tcG9uZW50Q29uZmlnID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbUNvbXBvbmVudCA9IGZvcm1DdXN0b21Db21wb25lbnRDb25maWdbZm9ybUN1c3RvbUNvbXBvbmVudEtleV07XG4gICAgICBjb25zdCByZW5kZXJlZENvbXBvbmVudCA9IHRoaXMuZm9ybUN1c3RvbUNvbXBvbmVudER5bmFtaWNDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgICBjdXN0b21Db21wb25lbnRcbiAgICAgICkgYXMgQ29tcG9uZW50UmVmPEZvcm1DdXN0b21Db21wb25lbnQ+O1xuXG4gICAgICByZW5kZXJlZENvbXBvbmVudC5pbnN0YW5jZS5wcm9jZXNzRGVmaW5pdGlvbktleSA9IHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXk7XG4gICAgICByZW5kZXJlZENvbXBvbmVudC5pbnN0YW5jZS5kb2N1bWVudERlZmluaXRpb25OYW1lID0gdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lO1xuXG4gICAgICByZW5kZXJlZENvbXBvbmVudC5pbnN0YW5jZS5zdWJtaXR0ZWRFdmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlQ2RzTW9kYWwoKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgdGhpcy5jbG9zZU1vZGFsRXZlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICByZW5kZXJlZENvbXBvbmVudC5kZXN0cm95KCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQ2RzTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbE9wZW4kLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlQ2RzTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbE9wZW4kLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuY2xvc2VNb2RhbEV2ZW50LmVtaXQoKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLW1vZGFsIFtvcGVuXT1cIm1vZGFsT3BlbiQgfCBhc3luY1wiIHNpemU9XCJzbVwiIHZhbHRpbW9DZHNNb2RhbCBbZW5hYmxlT3ZlcmZsb3ddPVwidHJ1ZVwiPlxuICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwib25DbG9zZVNlbGVjdCgpXCJcbiAgICA+PGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz5cbiAgICAgIHt7IG1vZGFsVGl0bGUgfX1cbiAgICA8L2gzPlxuICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG5cbiAgPHNlY3Rpb24gY2RzTW9kYWxDb250ZW50IFtjZHNMYXllcl09XCIxXCIgY2xhc3M9XCJwcm9jZXNzLXN0YXJ0LW1vZGFsLWNvbnRlbnRcIj5cbiAgICBAaWYgKCRsb2FkaW5nKCkpIHtcbiAgICAgIDxjZHMtbG9hZGluZz48L2Nkcy1sb2FkaW5nPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPG5nLXRlbXBsYXRlICNmb3JtVmlld01vZGVsQ29tcG9uZW50PjwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZm9ybUN1c3RvbUNvbXBvbmVudD48L25nLXRlbXBsYXRlPlxuXG4gICAgICBAaWYgKGZvcm1EZWZpbml0aW9uICYmICFpc0Zvcm1WaWV3TW9kZWwgJiYgIWlzVUlDb21wb25lbnQpIHtcbiAgICAgICAgPHZhbHRpbW8tZm9ybS1pb1xuICAgICAgICAgICNmb3JtXG4gICAgICAgICAgW2Zvcm1dPVwiZm9ybURlZmluaXRpb25cIlxuICAgICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgICAgIChzdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC92YWx0aW1vLWZvcm0taW8+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoZm9ybUZsb3dJbnN0YW5jZUlkKSB7XG4gICAgICAgIDx2YWx0aW1vLWZvcm0tZmxvd1xuICAgICAgICAgIFtmb3JtRmxvd0luc3RhbmNlSWRdPVwiZm9ybUZsb3dJbnN0YW5jZUlkXCJcbiAgICAgICAgICAoZm9ybUZsb3dDb21wbGV0ZSk9XCJmb3JtRmxvd1N1Ym1pdHRlZCgpXCJcbiAgICAgICAgPjwvdmFsdGltby1mb3JtLWZsb3c+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoIWZvcm1GbG93SW5zdGFuY2VJZCAmJiAhZm9ybURlZmluaXRpb24gJiYgaXNBZG1pbiAmJiAhaXNVSUNvbXBvbmVudCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJiZy13YXJuaW5nIHRleHQtYmxhY2sgbWItMCBwLTMgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgIFt0cmFuc2xhdGVdPVwiJ2Zvcm1NYW5hZ2VtZW50Lm5vRm9ybURlZmluaXRpb25Gb3VuZEFkbWluJ1wiXG4gICAgICAgID48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTAgbXQtNCBwLTMgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwiZ290b1Byb2Nlc3NMaW5rU2NyZWVuKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBidG4tc3BhY2VcIlxuICAgICAgICAgICAgaWQ9XCJwcm9jZXNzLWxpbmstYnV0dG9uXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb3JtTWFuYWdlbWVudC5nb3RvUHJvY2Vzc0xpbmtzQnV0dG9uJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmICghZm9ybUZsb3dJbnN0YW5jZUlkICYmICFmb3JtRGVmaW5pdGlvbiAmJiAhaXNBZG1pbiAmJiAhaXNVSUNvbXBvbmVudCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJiZy13YXJuaW5nIHRleHQtYmxhY2sgbWItMCBwLTMgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgIFt0cmFuc2xhdGVdPVwiJ2Zvcm1NYW5hZ2VtZW50Lm5vRm9ybURlZmluaXRpb25Gb3VuZFVzZXInXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgfVxuICAgIH1cbiAgPC9zZWN0aW9uPlxuPC9jZHMtbW9kYWw+XG4iXX0=
|
|
@@ -4715,8 +4715,10 @@ class DossierProcessStartModalComponent {
|
|
|
4715
4715
|
this.formFlowComplete = new EventEmitter();
|
|
4716
4716
|
this.noProcessLinked = new EventEmitter();
|
|
4717
4717
|
this.modalOpen$ = new BehaviorSubject(false);
|
|
4718
|
+
this.$loading = signal(true);
|
|
4718
4719
|
this._subscriptions = new Subscription();
|
|
4719
4720
|
this._formCustomComponentConfig$ = new BehaviorSubject({});
|
|
4721
|
+
this.closeModalEvent = new EventEmitter();
|
|
4720
4722
|
this._useStartEventNameAsStartFormTitle =
|
|
4721
4723
|
this.configService.config.featureToggles?.useStartEventNameAsStartFormTitle;
|
|
4722
4724
|
this._formCustomComponentConfig$.next(formCustomComponentConfig);
|
|
@@ -4728,6 +4730,7 @@ class DossierProcessStartModalComponent {
|
|
|
4728
4730
|
this._subscriptions.unsubscribe();
|
|
4729
4731
|
}
|
|
4730
4732
|
loadProcessLink() {
|
|
4733
|
+
this.$loading.set(true);
|
|
4731
4734
|
this.processLinkId = null;
|
|
4732
4735
|
this.formDefinition = null;
|
|
4733
4736
|
this.formFlowInstanceId = null;
|
|
@@ -4740,17 +4743,18 @@ class DossierProcessStartModalComponent {
|
|
|
4740
4743
|
.getProcessDefinitionStartProcessLink(this.processDefinitionId, null, this.documentDefinitionName)
|
|
4741
4744
|
.pipe(take$1(1))
|
|
4742
4745
|
.subscribe(startProcessResult => {
|
|
4746
|
+
this.$loading.set(false);
|
|
4743
4747
|
if (startProcessResult) {
|
|
4748
|
+
this.isUIComponent = false;
|
|
4749
|
+
this.isFormViewModel = false;
|
|
4744
4750
|
switch (startProcessResult.type) {
|
|
4745
4751
|
case 'form':
|
|
4746
4752
|
this.formDefinition = startProcessResult.properties.prefilledForm;
|
|
4747
4753
|
this.processLinkId = startProcessResult.processLinkId;
|
|
4748
|
-
this.isFormViewModel = false;
|
|
4749
4754
|
this.openCdsModal();
|
|
4750
4755
|
break;
|
|
4751
4756
|
case 'form-flow':
|
|
4752
4757
|
this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;
|
|
4753
|
-
this.isFormViewModel = false;
|
|
4754
4758
|
this.openCdsModal();
|
|
4755
4759
|
break;
|
|
4756
4760
|
case 'form-view-model':
|
|
@@ -4871,6 +4875,9 @@ class DossierProcessStartModalComponent {
|
|
|
4871
4875
|
this.listService.forceRefresh();
|
|
4872
4876
|
this.closeCdsModal();
|
|
4873
4877
|
}));
|
|
4878
|
+
this._subscriptions.add(this.closeModalEvent.subscribe(() => {
|
|
4879
|
+
formViewModelComponent.destroy();
|
|
4880
|
+
}));
|
|
4874
4881
|
}
|
|
4875
4882
|
setFormCustomComponent(formCustomComponentKey) {
|
|
4876
4883
|
this.formCustomComponentDynamicContainer.clear();
|
|
@@ -4884,6 +4891,9 @@ class DossierProcessStartModalComponent {
|
|
|
4884
4891
|
renderedComponent.instance.submittedEvent.subscribe(() => {
|
|
4885
4892
|
this.closeCdsModal();
|
|
4886
4893
|
});
|
|
4894
|
+
this._subscriptions.add(this.closeModalEvent.subscribe(() => {
|
|
4895
|
+
renderedComponent.destroy();
|
|
4896
|
+
}));
|
|
4887
4897
|
});
|
|
4888
4898
|
}
|
|
4889
4899
|
openCdsModal() {
|
|
@@ -4891,13 +4901,14 @@ class DossierProcessStartModalComponent {
|
|
|
4891
4901
|
}
|
|
4892
4902
|
closeCdsModal() {
|
|
4893
4903
|
this.modalOpen$.next(false);
|
|
4904
|
+
this.closeModalEvent.emit();
|
|
4894
4905
|
}
|
|
4895
4906
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierProcessStartModalComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i2$3.ProcessService }, { token: i2$1.DocumentService }, { token: i4$1.ProcessLinkService }, { token: i4$1.FormFlowService }, { token: i5$1.UserProviderService }, { token: i2$4.PermissionService }, { token: DossierListService }, { token: StartModalService }, { token: i1.ConfigService }, { token: FORM_VIEW_MODEL_TOKEN, optional: true }, { token: FORM_CUSTOM_COMPONENT_TOKEN, optional: true }, { token: i4$1.UrlResolverService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4896
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal", outputs: { formFlowComplete: "formFlowComplete", noProcessLinked: "noProcessLinked" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"modalOpen$ | async\" size=\"sm\" valtimoCdsModal [enableOverflow]=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" class=\"process-start-modal-content\">\n <ng-template #formViewModelComponent></ng-template>\n\n
|
|
4907
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal", outputs: { formFlowComplete: "formFlowComplete", noProcessLinked: "noProcessLinked" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"modalOpen$ | async\" size=\"sm\" valtimoCdsModal [enableOverflow]=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" class=\"process-start-modal-content\">\n @if ($loading()) {\n <cds-loading></cds-loading>\n } @else {\n <ng-template #formViewModelComponent></ng-template>\n\n <ng-template #formCustomComponent></ng-template>\n\n @if (formDefinition && !isFormViewModel && !isUIComponent) {\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n }\n\n @if (formFlowInstanceId) {\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n }\n\n @if (!formFlowInstanceId && !formDefinition && isAdmin && !isUIComponent) {\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n }\n\n @if (!formFlowInstanceId && !formDefinition && !isAdmin && !isUIComponent) {\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n }\n }\n </section>\n</cds-modal>\n", styles: [".process-start-modal-content{padding:16px}cds-loading{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "component", type: i2$2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i4$1.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }, { kind: "component", type: i5.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i5.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "directive", type: i5.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i5.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i2$2.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "directive", type: i5.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "pipe", type: i6$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
4897
4908
|
}
|
|
4898
4909
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierProcessStartModalComponent, decorators: [{
|
|
4899
4910
|
type: Component,
|
|
4900
|
-
args: [{ selector: 'valtimo-dossier-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"modalOpen$ | async\" size=\"sm\" valtimoCdsModal [enableOverflow]=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" class=\"process-start-modal-content\">\n <ng-template #formViewModelComponent></ng-template>\n\n
|
|
4911
|
+
args: [{ selector: 'valtimo-dossier-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal [open]=\"modalOpen$ | async\" size=\"sm\" valtimoCdsModal [enableOverflow]=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" class=\"process-start-modal-content\">\n @if ($loading()) {\n <cds-loading></cds-loading>\n } @else {\n <ng-template #formViewModelComponent></ng-template>\n\n <ng-template #formCustomComponent></ng-template>\n\n @if (formDefinition && !isFormViewModel && !isUIComponent) {\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n }\n\n @if (formFlowInstanceId) {\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n }\n\n @if (!formFlowInstanceId && !formDefinition && isAdmin && !isUIComponent) {\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n }\n\n @if (!formFlowInstanceId && !formDefinition && !isAdmin && !isUIComponent) {\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n }\n }\n </section>\n</cds-modal>\n", styles: [".process-start-modal-content{padding:16px}cds-loading{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
4901
4912
|
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i2$3.ProcessService }, { type: i2$1.DocumentService }, { type: i4$1.ProcessLinkService }, { type: i4$1.FormFlowService }, { type: i5$1.UserProviderService }, { type: i2$4.PermissionService }, { type: DossierListService }, { type: StartModalService }, { type: i1.ConfigService }, { type: undefined, decorators: [{
|
|
4902
4913
|
type: Optional
|
|
4903
4914
|
}, {
|