@valtimo/process-link 12.3.1 → 12.4.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.
Files changed (59) hide show
  1. package/esm2022/lib/components/choose-process-link-type/choose-process-link-type.component.mjs +3 -3
  2. package/esm2022/lib/components/form-display-configuration/form-display-configuration.component.mjs +109 -0
  3. package/esm2022/lib/components/form-flow/form-flow.component.mjs +97 -22
  4. package/esm2022/lib/components/process-link-modal/process-link-modal.component.mjs +5 -4
  5. package/esm2022/lib/components/select-form/select-form.component.mjs +63 -26
  6. package/esm2022/lib/components/select-form-flow/select-form-flow.component.mjs +60 -25
  7. package/esm2022/lib/components/select-url/select-url.component.mjs +134 -0
  8. package/esm2022/lib/constants/index.mjs +2 -1
  9. package/esm2022/lib/constants/process.link.mjs +23 -0
  10. package/esm2022/lib/models/form-link.model.mjs +1 -1
  11. package/esm2022/lib/models/process-link-url.model.mjs +17 -0
  12. package/esm2022/lib/models/process-link.model.mjs +1 -1
  13. package/esm2022/lib/process-link.module.mjs +25 -5
  14. package/esm2022/lib/services/form-flow.service.mjs +7 -1
  15. package/esm2022/lib/services/process-link-state.service.mjs +6 -1
  16. package/esm2022/lib/services/process-link-step.service.mjs +25 -3
  17. package/esm2022/lib/services/process-link.service.mjs +21 -1
  18. package/esm2022/lib/services/url-resolver.service.mjs +18 -0
  19. package/esm2022/lib/services/url-validator.service.mjs +26 -0
  20. package/esm2022/public-api.mjs +4 -1
  21. package/fesm2022/valtimo-process-link.mjs +590 -100
  22. package/fesm2022/valtimo-process-link.mjs.map +1 -1
  23. package/lib/components/form-display-configuration/form-display-configuration.component.d.ts +40 -0
  24. package/lib/components/form-display-configuration/form-display-configuration.component.d.ts.map +1 -0
  25. package/lib/components/form-flow/form-flow.component.d.ts +25 -6
  26. package/lib/components/form-flow/form-flow.component.d.ts.map +1 -1
  27. package/lib/components/select-form/select-form.component.d.ts +10 -2
  28. package/lib/components/select-form/select-form.component.d.ts.map +1 -1
  29. package/lib/components/select-form-flow/select-form-flow.component.d.ts +10 -2
  30. package/lib/components/select-form-flow/select-form-flow.component.d.ts.map +1 -1
  31. package/lib/components/select-url/select-url.component.d.ts +31 -0
  32. package/lib/components/select-url/select-url.component.d.ts.map +1 -0
  33. package/lib/constants/index.d.ts +1 -0
  34. package/lib/constants/index.d.ts.map +1 -1
  35. package/lib/constants/process.link.d.ts +5 -0
  36. package/lib/constants/process.link.d.ts.map +1 -0
  37. package/lib/models/form-link.model.d.ts +11 -1
  38. package/lib/models/form-link.model.d.ts.map +1 -1
  39. package/lib/models/process-link-url.model.d.ts +5 -0
  40. package/lib/models/process-link-url.model.d.ts.map +1 -0
  41. package/lib/models/process-link.model.d.ts +22 -1
  42. package/lib/models/process-link.model.d.ts.map +1 -1
  43. package/lib/process-link.module.d.ts +10 -8
  44. package/lib/process-link.module.d.ts.map +1 -1
  45. package/lib/services/form-flow.service.d.ts +3 -1
  46. package/lib/services/form-flow.service.d.ts.map +1 -1
  47. package/lib/services/process-link-state.service.d.ts +2 -0
  48. package/lib/services/process-link-state.service.d.ts.map +1 -1
  49. package/lib/services/process-link-step.service.d.ts +2 -0
  50. package/lib/services/process-link-step.service.d.ts.map +1 -1
  51. package/lib/services/process-link.service.d.ts +6 -3
  52. package/lib/services/process-link.service.d.ts.map +1 -1
  53. package/lib/services/url-resolver.service.d.ts +7 -0
  54. package/lib/services/url-resolver.service.d.ts.map +1 -0
  55. package/lib/services/url-validator.service.d.ts +11 -0
  56. package/lib/services/url-validator.service.d.ts.map +1 -0
  57. package/package.json +1 -1
  58. package/public-api.d.ts +3 -0
  59. package/public-api.d.ts.map +1 -1
@@ -27,7 +27,8 @@ import * as i8 from "../plugin-action-configuration/plugin-action-configuration.
27
27
  import * as i9 from "../choose-process-link-type/choose-process-link-type.component";
28
28
  import * as i10 from "../select-form/select-form.component";
29
29
  import * as i11 from "../select-form-flow/select-form-flow.component";
30
- import * as i12 from "@ngx-translate/core";
30
+ import * as i12 from "../select-url/select-url.component";
31
+ import * as i13 from "@ngx-translate/core";
31
32
  export class ProcessLinkModalComponent {
32
33
  constructor(stateService, stepService, buttonService, processLinkService, processLinkStateService, configService) {
33
34
  this.stateService = stateService;
@@ -78,10 +79,10 @@ export class ProcessLinkModalComponent {
78
79
  this.processLinkStateService.setViewModelEnabled(value);
79
80
  }
80
81
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProcessLinkModalComponent, deps: [{ token: i1.ProcessLinkStateService }, { token: i1.ProcessLinkStepService }, { token: i1.ProcessLinkButtonService }, { token: i1.ProcessLinkService }, { token: i1.ProcessLinkStateService }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ProcessLinkModalComponent, selector: "valtimo-process-link-modal", 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<div\n class=\"process-link-modal-container\"\n *ngIf=\"{\n showModal: showModal$ | async,\n processStepName: processStepName$ | async,\n steps: steps$ | async,\n currentStepIndex: currentStepIndex$ | async,\n currentStepId: currentStepId$ | async,\n showSaveButton: showSaveButton$ | async,\n enableSaveButton: enableSaveButton$ | async,\n showBackButton: showBackButton$ | async,\n showNextButton: showNextButton$ | async,\n enableNextButton: enableNextButton$ | async,\n saving: saving$ | async,\n hideProgressIndicator: hideProgressIndicator$ | async,\n typeOfSelectedProgressLink: typeOfSelectedProcessLink$ | async\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </h3>\n <div class=\"process-link-progress\" *ngIf=\"!obs.typeOfSelectedProgressLink\">\n <ng-container *ngTemplateOutlet=\"progressIndicator; context: {obs: obs}\"></ng-container>\n </div>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"stepContent; context: {obs: obs}\"></ng-container>\n </section>\n <ng-template *ngTemplateOutlet=\"footer; context: {obs: obs}\"></ng-template>\n </cds-modal>\n</div>\n\n<ng-template #progressIndicator let-obs=\"obs\">\n <cds-progress-indicator\n *ngIf=\"obs.steps && !obs.hideProgressIndicator\"\n [steps]=\"obs.steps\"\n [current]=\"obs.currentStepIndex\"\n spacing=\"equal\"\n ></cds-progress-indicator>\n</ng-template>\n\n<ng-template #stepContent let-obs=\"obs\">\n <div class=\"cds-loading-container\" *ngIf=\"obs.saving\">\n <cds-loading></cds-loading>\n </div>\n <div [ngClass]=\"{hidden: obs.saving}\">\n <ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'chooseProcessLinkType'\">\n <valtimo-choose-process-link-type></valtimo-choose-process-link-type>\n </ng-container>\n <ng-container\n *ngIf=\"obs.currentStepId === 'selectForm' || obs.typeOfSelectedProgressLink === 'form'\"\n >\n <valtimo-select-form></valtimo-select-form>\n <br />\n <cds-toggle\n *ngIf=\"showViewModelToggle\"\n [label]=\"'processLinkConfiguration.toggleViewModel.title' | translate\"\n [onText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [offText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [checked]=\"viewModelEnabled$ | async\"\n (checkedChange)=\"toggleCheckedChange($event)\"\n ></cds-toggle>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'selectFormFlow' || obs.typeOfSelectedProgressLink === 'form-flow'\n \"\n >\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginConfiguration'\">\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'configurePluginAction' ||\n obs.typeOfSelectedProgressLink === 'plugin'\n \"\n >\n <valtimo-plugin-action-configuration></valtimo-plugin-action-configuration>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #footer let-obs=\"obs\">\n <cds-modal-footer *ngIf=\"!obs.saving\">\n <div class=\"cancel-button\">\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n </div>\n <div class=\"navigation-buttons\">\n <button\n *ngIf=\"obs.showBackButton && !obs.saving\"\n cdsButton=\"secondary\"\n (click)=\"backButtonClick()\"\n >\n {{ 'processLinkConfiguration.back' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showNextButton && !obs.saving\"\n [disabled]=\"obs.enableNextButton === false\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.typeOfSelectedProgressLink\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"(obs.showSaveButton && !obs.saving) || obs.typeOfSelectedProgressLink\"\n [disabled]=\"obs.enableSaveButton === false\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</ng-template>\n", styles: ["::ng-deep .process-link-modal-container .cds--modal-container{max-width:960px;min-height:70%}::ng-deep .process-link-modal-container .cds--modal-footer{justify-content:space-between}.cds-loading-container{position:absolute;top:50px;padding-bottom:50px;left:0;width:100%;height:calc(100% - 50px);display:flex;justify-content:center;align-items:center;background:var(--cds-layer);z-index:99;box-sizing:border-box}.navigation-buttons{justify-content:flex-end}.navigation-buttons,.cancel-button{max-width:50%;display:flex;flex-direction:row;flex-grow:1}.navigation-buttons button,.cancel-button button{min-width:50%}.cancel-button{max-width:25%}.cancel-button button{min-width:100%}.process-link-progress{width:100%;margin-top:32px;margin-bottom:40px}.hidden{visibility:hidden}\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: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i4.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i4.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i4.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i4.ModalHeaderLabel, selector: "[cdsModalHeaderLabel], [ibmModalHeaderLabel]" }, { kind: "component", type: i4.ProgressIndicator, selector: "cds-progress-indicator, ibm-progress-indicator", inputs: ["current", "steps", "translations", "orientation", "skeleton", "spacing"], outputs: ["stepSelected"] }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i5.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "component", type: i4.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "skeleton"] }, { kind: "component", type: i6.SelectPluginConfigurationComponent, selector: "valtimo-select-plugin-configuration" }, { kind: "component", type: i7.SelectPluginActionComponent, selector: "valtimo-select-plugin-action" }, { kind: "component", type: i8.PluginActionConfigurationComponent, selector: "valtimo-plugin-action-configuration", outputs: ["valid", "configuration"] }, { kind: "component", type: i9.ChooseProcessLinkTypeComponent, selector: "valtimo-choose-process-link-type" }, { kind: "component", type: i10.SelectFormComponent, selector: "valtimo-select-form" }, { kind: "component", type: i11.SelectFormFlowComponent, selector: "valtimo-select-form-flow" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ProcessLinkModalComponent, selector: "valtimo-process-link-modal", 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<div\n class=\"process-link-modal-container\"\n *ngIf=\"{\n showModal: showModal$ | async,\n processStepName: processStepName$ | async,\n steps: steps$ | async,\n currentStepIndex: currentStepIndex$ | async,\n currentStepId: currentStepId$ | async,\n showSaveButton: showSaveButton$ | async,\n enableSaveButton: enableSaveButton$ | async,\n showBackButton: showBackButton$ | async,\n showNextButton: showNextButton$ | async,\n enableNextButton: enableNextButton$ | async,\n saving: saving$ | async,\n hideProgressIndicator: hideProgressIndicator$ | async,\n typeOfSelectedProgressLink: typeOfSelectedProcessLink$ | async,\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </h3>\n <div class=\"process-link-progress\" *ngIf=\"!obs.typeOfSelectedProgressLink\">\n <ng-container *ngTemplateOutlet=\"progressIndicator; context: {obs: obs}\"></ng-container>\n </div>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"stepContent; context: {obs: obs}\"></ng-container>\n </section>\n <ng-template *ngTemplateOutlet=\"footer; context: {obs: obs}\"></ng-template>\n </cds-modal>\n</div>\n\n<ng-template #progressIndicator let-obs=\"obs\">\n <cds-progress-indicator\n *ngIf=\"obs.steps && !obs.hideProgressIndicator\"\n [steps]=\"obs.steps\"\n [current]=\"obs.currentStepIndex\"\n spacing=\"equal\"\n ></cds-progress-indicator>\n</ng-template>\n\n<ng-template #stepContent let-obs=\"obs\">\n <div class=\"cds-loading-container\" *ngIf=\"obs.saving\">\n <cds-loading></cds-loading>\n </div>\n <div [ngClass]=\"{hidden: obs.saving}\">\n <ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'chooseProcessLinkType'\">\n <valtimo-choose-process-link-type></valtimo-choose-process-link-type>\n </ng-container>\n <ng-container\n *ngIf=\"obs.currentStepId === 'selectForm' || obs.typeOfSelectedProgressLink === 'form'\"\n >\n <valtimo-select-form></valtimo-select-form>\n <br />\n <cds-toggle\n *ngIf=\"showViewModelToggle\"\n [label]=\"'processLinkConfiguration.toggleViewModel.title' | translate\"\n [onText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [offText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [checked]=\"viewModelEnabled$ | async\"\n (checkedChange)=\"toggleCheckedChange($event)\"\n ></cds-toggle>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'selectFormFlow' || obs.typeOfSelectedProgressLink === 'form-flow'\n \"\n >\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginConfiguration'\">\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'configurePluginAction' ||\n obs.typeOfSelectedProgressLink === 'plugin'\n \"\n >\n <valtimo-plugin-action-configuration></valtimo-plugin-action-configuration>\n </ng-container>\n </ng-container>\n <valtimo-select-url\n *ngIf=\"obs.currentStepId === 'selectURL' || obs.typeOfSelectedProgressLink === 'url'\"\n ></valtimo-select-url>\n </div>\n</ng-template>\n\n<ng-template #footer let-obs=\"obs\">\n <cds-modal-footer *ngIf=\"!obs.saving\">\n <div class=\"cancel-button\">\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n </div>\n <div class=\"navigation-buttons\">\n <button\n *ngIf=\"obs.showBackButton && !obs.saving\"\n cdsButton=\"secondary\"\n (click)=\"backButtonClick()\"\n >\n {{ 'processLinkConfiguration.back' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showNextButton && !obs.saving\"\n [disabled]=\"obs.enableNextButton === false\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.typeOfSelectedProgressLink\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"(obs.showSaveButton && !obs.saving) || obs.typeOfSelectedProgressLink\"\n [disabled]=\"obs.enableSaveButton === false\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</ng-template>\n", styles: ["::ng-deep .process-link-modal-container .cds--modal-container{max-width:960px;min-height:70%}::ng-deep .process-link-modal-container .cds--modal-footer{justify-content:space-between}.cds-loading-container{position:absolute;top:50px;padding-bottom:50px;left:0;width:100%;height:calc(100% - 50px);display:flex;justify-content:center;align-items:center;background:var(--cds-layer);z-index:99;box-sizing:border-box}.navigation-buttons{justify-content:flex-end}.navigation-buttons,.cancel-button{max-width:50%;display:flex;flex-direction:row;flex-grow:1}.navigation-buttons button,.cancel-button button{min-width:50%}.cancel-button{max-width:25%}.cancel-button button{min-width:100%}.process-link-progress{width:100%;margin-top:32px;margin-bottom:40px}.hidden{visibility:hidden}\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: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i4.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i4.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i4.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i4.ModalHeaderLabel, selector: "[cdsModalHeaderLabel], [ibmModalHeaderLabel]" }, { kind: "component", type: i4.ProgressIndicator, selector: "cds-progress-indicator, ibm-progress-indicator", inputs: ["current", "steps", "translations", "orientation", "skeleton", "spacing"], outputs: ["stepSelected"] }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i5.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "component", type: i4.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "skeleton"] }, { kind: "component", type: i6.SelectPluginConfigurationComponent, selector: "valtimo-select-plugin-configuration" }, { kind: "component", type: i7.SelectPluginActionComponent, selector: "valtimo-select-plugin-action" }, { kind: "component", type: i8.PluginActionConfigurationComponent, selector: "valtimo-plugin-action-configuration", outputs: ["valid", "configuration"] }, { kind: "component", type: i9.ChooseProcessLinkTypeComponent, selector: "valtimo-choose-process-link-type" }, { kind: "component", type: i10.SelectFormComponent, selector: "valtimo-select-form" }, { kind: "component", type: i11.SelectFormFlowComponent, selector: "valtimo-select-form-flow" }, { kind: "component", type: i12.SelectUrlComponent, selector: "valtimo-select-url" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
82
83
  }
83
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProcessLinkModalComponent, decorators: [{
84
85
  type: Component,
85
- args: [{ selector: 'valtimo-process-link-modal', 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<div\n class=\"process-link-modal-container\"\n *ngIf=\"{\n showModal: showModal$ | async,\n processStepName: processStepName$ | async,\n steps: steps$ | async,\n currentStepIndex: currentStepIndex$ | async,\n currentStepId: currentStepId$ | async,\n showSaveButton: showSaveButton$ | async,\n enableSaveButton: enableSaveButton$ | async,\n showBackButton: showBackButton$ | async,\n showNextButton: showNextButton$ | async,\n enableNextButton: enableNextButton$ | async,\n saving: saving$ | async,\n hideProgressIndicator: hideProgressIndicator$ | async,\n typeOfSelectedProgressLink: typeOfSelectedProcessLink$ | async\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </h3>\n <div class=\"process-link-progress\" *ngIf=\"!obs.typeOfSelectedProgressLink\">\n <ng-container *ngTemplateOutlet=\"progressIndicator; context: {obs: obs}\"></ng-container>\n </div>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"stepContent; context: {obs: obs}\"></ng-container>\n </section>\n <ng-template *ngTemplateOutlet=\"footer; context: {obs: obs}\"></ng-template>\n </cds-modal>\n</div>\n\n<ng-template #progressIndicator let-obs=\"obs\">\n <cds-progress-indicator\n *ngIf=\"obs.steps && !obs.hideProgressIndicator\"\n [steps]=\"obs.steps\"\n [current]=\"obs.currentStepIndex\"\n spacing=\"equal\"\n ></cds-progress-indicator>\n</ng-template>\n\n<ng-template #stepContent let-obs=\"obs\">\n <div class=\"cds-loading-container\" *ngIf=\"obs.saving\">\n <cds-loading></cds-loading>\n </div>\n <div [ngClass]=\"{hidden: obs.saving}\">\n <ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'chooseProcessLinkType'\">\n <valtimo-choose-process-link-type></valtimo-choose-process-link-type>\n </ng-container>\n <ng-container\n *ngIf=\"obs.currentStepId === 'selectForm' || obs.typeOfSelectedProgressLink === 'form'\"\n >\n <valtimo-select-form></valtimo-select-form>\n <br />\n <cds-toggle\n *ngIf=\"showViewModelToggle\"\n [label]=\"'processLinkConfiguration.toggleViewModel.title' | translate\"\n [onText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [offText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [checked]=\"viewModelEnabled$ | async\"\n (checkedChange)=\"toggleCheckedChange($event)\"\n ></cds-toggle>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'selectFormFlow' || obs.typeOfSelectedProgressLink === 'form-flow'\n \"\n >\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginConfiguration'\">\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'configurePluginAction' ||\n obs.typeOfSelectedProgressLink === 'plugin'\n \"\n >\n <valtimo-plugin-action-configuration></valtimo-plugin-action-configuration>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #footer let-obs=\"obs\">\n <cds-modal-footer *ngIf=\"!obs.saving\">\n <div class=\"cancel-button\">\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n </div>\n <div class=\"navigation-buttons\">\n <button\n *ngIf=\"obs.showBackButton && !obs.saving\"\n cdsButton=\"secondary\"\n (click)=\"backButtonClick()\"\n >\n {{ 'processLinkConfiguration.back' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showNextButton && !obs.saving\"\n [disabled]=\"obs.enableNextButton === false\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.typeOfSelectedProgressLink\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"(obs.showSaveButton && !obs.saving) || obs.typeOfSelectedProgressLink\"\n [disabled]=\"obs.enableSaveButton === false\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</ng-template>\n", styles: ["::ng-deep .process-link-modal-container .cds--modal-container{max-width:960px;min-height:70%}::ng-deep .process-link-modal-container .cds--modal-footer{justify-content:space-between}.cds-loading-container{position:absolute;top:50px;padding-bottom:50px;left:0;width:100%;height:calc(100% - 50px);display:flex;justify-content:center;align-items:center;background:var(--cds-layer);z-index:99;box-sizing:border-box}.navigation-buttons{justify-content:flex-end}.navigation-buttons,.cancel-button{max-width:50%;display:flex;flex-direction:row;flex-grow:1}.navigation-buttons button,.cancel-button button{min-width:50%}.cancel-button{max-width:25%}.cancel-button button{min-width:100%}.process-link-progress{width:100%;margin-top:32px;margin-bottom:40px}.hidden{visibility:hidden}\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"] }]
86
+ args: [{ selector: 'valtimo-process-link-modal', 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<div\n class=\"process-link-modal-container\"\n *ngIf=\"{\n showModal: showModal$ | async,\n processStepName: processStepName$ | async,\n steps: steps$ | async,\n currentStepIndex: currentStepIndex$ | async,\n currentStepId: currentStepId$ | async,\n showSaveButton: showSaveButton$ | async,\n enableSaveButton: enableSaveButton$ | async,\n showBackButton: showBackButton$ | async,\n showNextButton: showNextButton$ | async,\n enableNextButton: enableNextButton$ | async,\n saving: saving$ | async,\n hideProgressIndicator: hideProgressIndicator$ | async,\n typeOfSelectedProgressLink: typeOfSelectedProcessLink$ | async,\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </h3>\n <div class=\"process-link-progress\" *ngIf=\"!obs.typeOfSelectedProgressLink\">\n <ng-container *ngTemplateOutlet=\"progressIndicator; context: {obs: obs}\"></ng-container>\n </div>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"stepContent; context: {obs: obs}\"></ng-container>\n </section>\n <ng-template *ngTemplateOutlet=\"footer; context: {obs: obs}\"></ng-template>\n </cds-modal>\n</div>\n\n<ng-template #progressIndicator let-obs=\"obs\">\n <cds-progress-indicator\n *ngIf=\"obs.steps && !obs.hideProgressIndicator\"\n [steps]=\"obs.steps\"\n [current]=\"obs.currentStepIndex\"\n spacing=\"equal\"\n ></cds-progress-indicator>\n</ng-template>\n\n<ng-template #stepContent let-obs=\"obs\">\n <div class=\"cds-loading-container\" *ngIf=\"obs.saving\">\n <cds-loading></cds-loading>\n </div>\n <div [ngClass]=\"{hidden: obs.saving}\">\n <ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'chooseProcessLinkType'\">\n <valtimo-choose-process-link-type></valtimo-choose-process-link-type>\n </ng-container>\n <ng-container\n *ngIf=\"obs.currentStepId === 'selectForm' || obs.typeOfSelectedProgressLink === 'form'\"\n >\n <valtimo-select-form></valtimo-select-form>\n <br />\n <cds-toggle\n *ngIf=\"showViewModelToggle\"\n [label]=\"'processLinkConfiguration.toggleViewModel.title' | translate\"\n [onText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [offText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [checked]=\"viewModelEnabled$ | async\"\n (checkedChange)=\"toggleCheckedChange($event)\"\n ></cds-toggle>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'selectFormFlow' || obs.typeOfSelectedProgressLink === 'form-flow'\n \"\n >\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginConfiguration'\">\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'configurePluginAction' ||\n obs.typeOfSelectedProgressLink === 'plugin'\n \"\n >\n <valtimo-plugin-action-configuration></valtimo-plugin-action-configuration>\n </ng-container>\n </ng-container>\n <valtimo-select-url\n *ngIf=\"obs.currentStepId === 'selectURL' || obs.typeOfSelectedProgressLink === 'url'\"\n ></valtimo-select-url>\n </div>\n</ng-template>\n\n<ng-template #footer let-obs=\"obs\">\n <cds-modal-footer *ngIf=\"!obs.saving\">\n <div class=\"cancel-button\">\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n </div>\n <div class=\"navigation-buttons\">\n <button\n *ngIf=\"obs.showBackButton && !obs.saving\"\n cdsButton=\"secondary\"\n (click)=\"backButtonClick()\"\n >\n {{ 'processLinkConfiguration.back' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showNextButton && !obs.saving\"\n [disabled]=\"obs.enableNextButton === false\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.typeOfSelectedProgressLink\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"(obs.showSaveButton && !obs.saving) || obs.typeOfSelectedProgressLink\"\n [disabled]=\"obs.enableSaveButton === false\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</ng-template>\n", styles: ["::ng-deep .process-link-modal-container .cds--modal-container{max-width:960px;min-height:70%}::ng-deep .process-link-modal-container .cds--modal-footer{justify-content:space-between}.cds-loading-container{position:absolute;top:50px;padding-bottom:50px;left:0;width:100%;height:calc(100% - 50px);display:flex;justify-content:center;align-items:center;background:var(--cds-layer);z-index:99;box-sizing:border-box}.navigation-buttons{justify-content:flex-end}.navigation-buttons,.cancel-button{max-width:50%;display:flex;flex-direction:row;flex-grow:1}.navigation-buttons button,.cancel-button button{min-width:50%}.cancel-button{max-width:25%}.cancel-button button{min-width:100%}.process-link-progress{width:100%;margin-top:32px;margin-bottom:40px}.hidden{visibility:hidden}\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"] }]
86
87
  }], ctorParameters: () => [{ type: i1.ProcessLinkStateService }, { type: i1.ProcessLinkStepService }, { type: i1.ProcessLinkButtonService }, { type: i1.ProcessLinkService }, { type: i1.ProcessLinkStateService }, { type: i2.ConfigService }] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU94QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUXBDLE1BQU0sT0FBTyx5QkFBeUI7SUFtQnBDLFlBQ21CLFlBQXFDLEVBQ3JDLFdBQW1DLEVBQ25DLGFBQXVDLEVBQ3ZDLGtCQUFzQyxFQUN0Qyx1QkFBZ0QsRUFDaEQsYUFBNEI7UUFMNUIsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBeEIvQixlQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDMUMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7UUFDbEQsV0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ2pDLHNCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7UUFDdkQsbUJBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztRQUNqRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDO1FBQ3JELHNCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDekQsb0JBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztRQUNyRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDO1FBQ3JELHNCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDekQsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztRQUNsRSxZQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDcEMsK0JBQTBCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQywwQkFBMEIsQ0FBQztRQUMxRSxzQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDO1FBRXhELHdCQUFtQixHQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUM7SUFTNUQsQ0FBQztJQUVKLFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQ25GLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQ3pFLEdBQUcsRUFBRTtnQkFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2pDLENBQUMsRUFDRCxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQWM7UUFDdkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBN0RVLHlCQUF5QjttR0FBekIseUJBQXlCLGtFQy9CdEMsMjBMQXdKQTs7NEZEekhhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU2VydmljZSxcbiAgUHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU3RlcFNlcnZpY2UsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXByb2Nlc3MtbGluay1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLWxpbmstbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzLWxpbmstbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0xpbmtNb2RhbENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBzaG93TW9kYWwkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc2hvd01vZGFsJDtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NTdGVwTmFtZSQgPSB0aGlzLnN0YXRlU2VydmljZS5lbGVtZW50TmFtZSQ7XG4gIHB1YmxpYyByZWFkb25seSBzdGVwcyQgPSB0aGlzLnN0ZXBTZXJ2aWNlLnN0ZXBzJDtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRTdGVwSW5kZXgkID0gdGhpcy5zdGVwU2VydmljZS5jdXJyZW50U3RlcEluZGV4JDtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRTdGVwSWQkID0gdGhpcy5zdGVwU2VydmljZS5jdXJyZW50U3RlcElkJDtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTYXZlQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5zaG93U2F2ZUJ1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBlbmFibGVTYXZlQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5lbmFibGVTYXZlQnV0dG9uJDtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dCYWNrQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5zaG93QmFja0J1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBzaG93TmV4dEJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2Uuc2hvd05leHRCdXR0b24kO1xuICBwdWJsaWMgcmVhZG9ubHkgZW5hYmxlTmV4dEJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2UuZW5hYmxlTmV4dEJ1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBoaWRlUHJvZ3Jlc3NJbmRpY2F0b3IkID0gdGhpcy5zdGF0ZVNlcnZpY2UuaGlkZVByb2dyZXNzSW5kaWNhdG9yJDtcbiAgcHVibGljIHJlYWRvbmx5IHNhdmluZyQgPSB0aGlzLnN0YXRlU2VydmljZS5zYXZpbmckO1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZU9mU2VsZWN0ZWRQcm9jZXNzTGluayQgPSB0aGlzLnN0YXRlU2VydmljZS50eXBlT2ZTZWxlY3RlZFByb2Nlc3NMaW5rJDtcbiAgcHVibGljIHJlYWRvbmx5IHZpZXdNb2RlbEVuYWJsZWQkID0gdGhpcy5zdGF0ZVNlcnZpY2Uudmlld01vZGVsRW5hYmxlZCQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNob3dWaWV3TW9kZWxUb2dnbGUgPVxuICAgIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcuZmVhdHVyZVRvZ2dsZXMuZW5hYmxlRm9ybVZpZXdNb2RlbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogUHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGVwU2VydmljZTogUHJvY2Vzc0xpbmtTdGVwU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJ1dHRvblNlcnZpY2U6IFByb2Nlc3NMaW5rQnV0dG9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3NMaW5rU2VydmljZTogUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHt9XG5cbiAgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gIH1cblxuICBiYWNrQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5idXR0b25TZXJ2aWNlLmNsaWNrQmFja0J1dHRvbigpO1xuICB9XG5cbiAgc2F2ZUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYnV0dG9uU2VydmljZS5jbGlja1NhdmVCdXR0b24oKTtcbiAgfVxuXG4gIG5leHRCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmJ1dHRvblNlcnZpY2UuY2xpY2tOZXh0QnV0dG9uKCk7XG4gIH1cblxuICB1bmxpbmtCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zdGFydFNhdmluZygpO1xuXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQcm9jZXNzTGluayQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc2VsZWN0ZWRQcm9jZXNzTGluayA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NMaW5rU2VydmljZS5kZWxldGVQcm9jZXNzTGluayhzZWxlY3RlZFByb2Nlc3NMaW5rLmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zdG9wU2F2aW5nKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQ2hlY2tlZENoYW5nZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2Uuc2V0Vmlld01vZGVsRW5hYmxlZCh2YWx1ZSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdlxuICBjbGFzcz1cInByb2Nlc3MtbGluay1tb2RhbC1jb250YWluZXJcIlxuICAqbmdJZj1cIntcbiAgICBzaG93TW9kYWw6IHNob3dNb2RhbCQgfCBhc3luYyxcbiAgICBwcm9jZXNzU3RlcE5hbWU6IHByb2Nlc3NTdGVwTmFtZSQgfCBhc3luYyxcbiAgICBzdGVwczogc3RlcHMkIHwgYXN5bmMsXG4gICAgY3VycmVudFN0ZXBJbmRleDogY3VycmVudFN0ZXBJbmRleCQgfCBhc3luYyxcbiAgICBjdXJyZW50U3RlcElkOiBjdXJyZW50U3RlcElkJCB8IGFzeW5jLFxuICAgIHNob3dTYXZlQnV0dG9uOiBzaG93U2F2ZUJ1dHRvbiQgfCBhc3luYyxcbiAgICBlbmFibGVTYXZlQnV0dG9uOiBlbmFibGVTYXZlQnV0dG9uJCB8IGFzeW5jLFxuICAgIHNob3dCYWNrQnV0dG9uOiBzaG93QmFja0J1dHRvbiQgfCBhc3luYyxcbiAgICBzaG93TmV4dEJ1dHRvbjogc2hvd05leHRCdXR0b24kIHwgYXN5bmMsXG4gICAgZW5hYmxlTmV4dEJ1dHRvbjogZW5hYmxlTmV4dEJ1dHRvbiQgfCBhc3luYyxcbiAgICBzYXZpbmc6IHNhdmluZyQgfCBhc3luYyxcbiAgICBoaWRlUHJvZ3Jlc3NJbmRpY2F0b3I6IGhpZGVQcm9ncmVzc0luZGljYXRvciQgfCBhc3luYyxcbiAgICB0eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluazogdHlwZU9mU2VsZWN0ZWRQcm9jZXNzTGluayQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4+XG4gIDxjZHMtbW9kYWwgdmFsdGltb0Nkc01vZGFsIFtvcGVuXT1cIm9icy5zaG93TW9kYWxcIiBzaXplPVwibGdcIj5cbiAgICA8Y2RzLW1vZGFsLWhlYWRlciAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgICA8aDIgY2RzTW9kYWxIZWFkZXJMYWJlbD57eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmNvbmZpZ3VyZVN0ZXAnIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICAgIHt7XG4gICAgICAgICAgJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi5tb2RhbFRpdGxlJ1xuICAgICAgICAgICAgfCB0cmFuc2xhdGU6IHtwcm9jZXNzU3RlcE5hbWU6IG9icy5wcm9jZXNzU3RlcE5hbWUgfHwgJy0nfVxuICAgICAgICB9fVxuICAgICAgPC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWxpbmstcHJvZ3Jlc3NcIiAqbmdJZj1cIiFvYnMudHlwZU9mU2VsZWN0ZWRQcm9ncmVzc0xpbmtcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByb2dyZXNzSW5kaWNhdG9yOyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG4gICAgPHNlY3Rpb24gY2RzTW9kYWxDb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0ZXBDb250ZW50OyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlcjsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvY2RzLW1vZGFsPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcHJvZ3Jlc3NJbmRpY2F0b3IgbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLXByb2dyZXNzLWluZGljYXRvclxuICAgICpuZ0lmPVwib2JzLnN0ZXBzICYmICFvYnMuaGlkZVByb2dyZXNzSW5kaWNhdG9yXCJcbiAgICBbc3RlcHNdPVwib2JzLnN0ZXBzXCJcbiAgICBbY3VycmVudF09XCJvYnMuY3VycmVudFN0ZXBJbmRleFwiXG4gICAgc3BhY2luZz1cImVxdWFsXCJcbiAgPjwvY2RzLXByb2dyZXNzLWluZGljYXRvcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3RlcENvbnRlbnQgbGV0LW9icz1cIm9ic1wiPlxuICA8ZGl2IGNsYXNzPVwiY2RzLWxvYWRpbmctY29udGFpbmVyXCIgKm5nSWY9XCJvYnMuc2F2aW5nXCI+XG4gICAgPGNkcy1sb2FkaW5nPjwvY2RzLWxvYWRpbmc+XG4gIDwvZGl2PlxuICA8ZGl2IFtuZ0NsYXNzXT1cIntoaWRkZW46IG9icy5zYXZpbmd9XCI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ2Nob29zZVByb2Nlc3NMaW5rVHlwZSdcIj5cbiAgICAgICAgPHZhbHRpbW8tY2hvb3NlLXByb2Nlc3MtbGluay10eXBlPjwvdmFsdGltby1jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ3NlbGVjdEZvcm0nIHx8IG9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluayA9PT0gJ2Zvcm0nXCJcbiAgICAgID5cbiAgICAgICAgPHZhbHRpbW8tc2VsZWN0LWZvcm0+PC92YWx0aW1vLXNlbGVjdC1mb3JtPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPGNkcy10b2dnbGVcbiAgICAgICAgICAqbmdJZj1cInNob3dWaWV3TW9kZWxUb2dnbGVcIlxuICAgICAgICAgIFtsYWJlbF09XCIncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLnRvZ2dsZVZpZXdNb2RlbC50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtvblRleHRdPVwiJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi50b2dnbGVWaWV3TW9kZWwuY2hlY2tib3hEZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtvZmZUZXh0XT1cIidwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24udG9nZ2xlVmlld01vZGVsLmNoZWNrYm94RGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJ2aWV3TW9kZWxFbmFibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAoY2hlY2tlZENoYW5nZSk9XCJ0b2dnbGVDaGVja2VkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9jZHMtdG9nZ2xlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgb2JzLmN1cnJlbnRTdGVwSWQgPT09ICdzZWxlY3RGb3JtRmxvdycgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rID09PSAnZm9ybS1mbG93J1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtZm9ybS1mbG93PjwvdmFsdGltby1zZWxlY3QtZm9ybS1mbG93PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JzLmN1cnJlbnRTdGVwSWQgPT09ICdjaG9vc2VQbHVnaW5Db25maWd1cmF0aW9uJ1wiPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtcGx1Z2luLWNvbmZpZ3VyYXRpb24+PC92YWx0aW1vLXNlbGVjdC1wbHVnaW4tY29uZmlndXJhdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9icy5jdXJyZW50U3RlcElkID09PSAnY2hvb3NlUGx1Z2luQWN0aW9uJ1wiPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtcGx1Z2luLWFjdGlvbj48L3ZhbHRpbW8tc2VsZWN0LXBsdWdpbi1hY3Rpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ2NvbmZpZ3VyZVBsdWdpbkFjdGlvbicgfHxcbiAgICAgICAgICBvYnMudHlwZU9mU2VsZWN0ZWRQcm9ncmVzc0xpbmsgPT09ICdwbHVnaW4nXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDx2YWx0aW1vLXBsdWdpbi1hY3Rpb24tY29uZmlndXJhdGlvbj48L3ZhbHRpbW8tcGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXIgbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLW1vZGFsLWZvb3RlciAqbmdJZj1cIiFvYnMuc2F2aW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj5cbiAgICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCIgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiPlxuICAgICAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJuYXZpZ2F0aW9uLWJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJvYnMuc2hvd0JhY2tCdXR0b24gJiYgIW9icy5zYXZpbmdcIlxuICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICAoY2xpY2spPVwiYmFja0J1dHRvbkNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmJhY2snIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwib2JzLnNob3dOZXh0QnV0dG9uICYmICFvYnMuc2F2aW5nXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5lbmFibGVOZXh0QnV0dG9uID09PSBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJuZXh0QnV0dG9uQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24ubmV4dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJkYW5nZXItLXByaW1hcnlcIlxuICAgICAgICAqbmdJZj1cIm9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGlua1wiXG4gICAgICAgIChjbGljayk9XCJ1bmxpbmtCdXR0b25DbGljaygpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi51bmxpbmsnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwiKG9icy5zaG93U2F2ZUJ1dHRvbiAmJiAhb2JzLnNhdmluZykgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5lbmFibGVTYXZlQnV0dG9uID09PSBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJzYXZlQnV0dG9uQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uY29tcGxldGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU94QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVFwQyxNQUFNLE9BQU8seUJBQXlCO0lBbUJwQyxZQUNtQixZQUFxQyxFQUNyQyxXQUFtQyxFQUNuQyxhQUF1QyxFQUN2QyxrQkFBc0MsRUFDdEMsdUJBQWdELEVBQ2hELGFBQTRCO1FBTDVCLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7UUFDbkMsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXhCL0IsZUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1FBQ2xELFdBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxzQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZELG1CQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7UUFDakQsb0JBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztRQUNyRCxzQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3pELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7UUFDckQsb0JBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztRQUNyRCxzQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3pELDJCQUFzQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUM7UUFDbEUsWUFBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3BDLCtCQUEwQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQUM7UUFDMUUsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztRQUV4RCx3QkFBbUIsR0FDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDO0lBUzVELENBQUM7SUFFSixVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRTtZQUNuRixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUN6RSxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxDQUFDLEVBQ0QsR0FBRyxFQUFFO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQTdEVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixrRUMvQnRDLDQrTEEySkE7OzRGRDVIYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUHJvY2Vzc0xpbmtCdXR0b25TZXJ2aWNlLFxuICBQcm9jZXNzTGlua1NlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICBQcm9jZXNzTGlua1N0ZXBTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1wcm9jZXNzLWxpbmstbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NMaW5rTW9kYWxDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd01vZGFsJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnNob3dNb2RhbCQ7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzU3RlcE5hbWUkID0gdGhpcy5zdGF0ZVNlcnZpY2UuZWxlbWVudE5hbWUkO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RlcHMkID0gdGhpcy5zdGVwU2VydmljZS5zdGVwcyQ7XG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50U3RlcEluZGV4JCA9IHRoaXMuc3RlcFNlcnZpY2UuY3VycmVudFN0ZXBJbmRleCQ7XG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50U3RlcElkJCA9IHRoaXMuc3RlcFNlcnZpY2UuY3VycmVudFN0ZXBJZCQ7XG4gIHB1YmxpYyByZWFkb25seSBzaG93U2F2ZUJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2Uuc2hvd1NhdmVCdXR0b24kO1xuICBwdWJsaWMgcmVhZG9ubHkgZW5hYmxlU2F2ZUJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2UuZW5hYmxlU2F2ZUJ1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBzaG93QmFja0J1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2Uuc2hvd0JhY2tCdXR0b24kO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd05leHRCdXR0b24kID0gdGhpcy5idXR0b25TZXJ2aWNlLnNob3dOZXh0QnV0dG9uJDtcbiAgcHVibGljIHJlYWRvbmx5IGVuYWJsZU5leHRCdXR0b24kID0gdGhpcy5idXR0b25TZXJ2aWNlLmVuYWJsZU5leHRCdXR0b24kO1xuICBwdWJsaWMgcmVhZG9ubHkgaGlkZVByb2dyZXNzSW5kaWNhdG9yJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLmhpZGVQcm9ncmVzc0luZGljYXRvciQ7XG4gIHB1YmxpYyByZWFkb25seSBzYXZpbmckID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc2F2aW5nJDtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGVPZlNlbGVjdGVkUHJvY2Vzc0xpbmskID0gdGhpcy5zdGF0ZVNlcnZpY2UudHlwZU9mU2VsZWN0ZWRQcm9jZXNzTGluayQ7XG4gIHB1YmxpYyByZWFkb25seSB2aWV3TW9kZWxFbmFibGVkJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnZpZXdNb2RlbEVuYWJsZWQkO1xuXG4gIHB1YmxpYyByZWFkb25seSBzaG93Vmlld01vZGVsVG9nZ2xlID1cbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLmZlYXR1cmVUb2dnbGVzLmVuYWJsZUZvcm1WaWV3TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RlcFNlcnZpY2U6IFByb2Nlc3NMaW5rU3RlcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBidXR0b25TZXJ2aWNlOiBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzTGlua1NlcnZpY2U6IFByb2Nlc3NMaW5rU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlOiBQcm9jZXNzTGlua1N0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgYmFja0J1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYnV0dG9uU2VydmljZS5jbGlja0JhY2tCdXR0b24oKTtcbiAgfVxuXG4gIHNhdmVCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmJ1dHRvblNlcnZpY2UuY2xpY2tTYXZlQnV0dG9uKCk7XG4gIH1cblxuICBuZXh0QnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5idXR0b25TZXJ2aWNlLmNsaWNrTmV4dEJ1dHRvbigpO1xuICB9XG5cbiAgdW5saW5rQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhcnRTYXZpbmcoKTtcblxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUHJvY2Vzc0xpbmskLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHNlbGVjdGVkUHJvY2Vzc0xpbmsgPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzTGlua1NlcnZpY2UuZGVsZXRlUHJvY2Vzc0xpbmsoc2VsZWN0ZWRQcm9jZXNzTGluay5pZCkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuY2xvc2VNb2RhbCgpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc3RvcFNhdmluZygpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNoZWNrZWRDaGFuZ2UodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLnNldFZpZXdNb2RlbEVuYWJsZWQodmFsdWUpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXZcbiAgY2xhc3M9XCJwcm9jZXNzLWxpbmstbW9kYWwtY29udGFpbmVyXCJcbiAgKm5nSWY9XCJ7XG4gICAgc2hvd01vZGFsOiBzaG93TW9kYWwkIHwgYXN5bmMsXG4gICAgcHJvY2Vzc1N0ZXBOYW1lOiBwcm9jZXNzU3RlcE5hbWUkIHwgYXN5bmMsXG4gICAgc3RlcHM6IHN0ZXBzJCB8IGFzeW5jLFxuICAgIGN1cnJlbnRTdGVwSW5kZXg6IGN1cnJlbnRTdGVwSW5kZXgkIHwgYXN5bmMsXG4gICAgY3VycmVudFN0ZXBJZDogY3VycmVudFN0ZXBJZCQgfCBhc3luYyxcbiAgICBzaG93U2F2ZUJ1dHRvbjogc2hvd1NhdmVCdXR0b24kIHwgYXN5bmMsXG4gICAgZW5hYmxlU2F2ZUJ1dHRvbjogZW5hYmxlU2F2ZUJ1dHRvbiQgfCBhc3luYyxcbiAgICBzaG93QmFja0J1dHRvbjogc2hvd0JhY2tCdXR0b24kIHwgYXN5bmMsXG4gICAgc2hvd05leHRCdXR0b246IHNob3dOZXh0QnV0dG9uJCB8IGFzeW5jLFxuICAgIGVuYWJsZU5leHRCdXR0b246IGVuYWJsZU5leHRCdXR0b24kIHwgYXN5bmMsXG4gICAgc2F2aW5nOiBzYXZpbmckIHwgYXN5bmMsXG4gICAgaGlkZVByb2dyZXNzSW5kaWNhdG9yOiBoaWRlUHJvZ3Jlc3NJbmRpY2F0b3IkIHwgYXN5bmMsXG4gICAgdHlwZU9mU2VsZWN0ZWRQcm9ncmVzc0xpbms6IHR5cGVPZlNlbGVjdGVkUHJvY2Vzc0xpbmskIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPGNkcy1tb2RhbCB2YWx0aW1vQ2RzTW9kYWwgW29wZW5dPVwib2JzLnNob3dNb2RhbFwiIHNpemU9XCJsZ1wiPlxuICAgIDxjZHMtbW9kYWwtaGVhZGVyIChjbG9zZVNlbGVjdCk9XCJjbG9zZU1vZGFsKClcIj5cbiAgICAgIDxoMiBjZHNNb2RhbEhlYWRlckxhYmVsPnt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uY29uZmlndXJlU3RlcCcgfCB0cmFuc2xhdGUgfX08L2gyPlxuICAgICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz5cbiAgICAgICAge3tcbiAgICAgICAgICAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLm1vZGFsVGl0bGUnXG4gICAgICAgICAgICB8IHRyYW5zbGF0ZToge3Byb2Nlc3NTdGVwTmFtZTogb2JzLnByb2Nlc3NTdGVwTmFtZSB8fCAnLSd9XG4gICAgICAgIH19XG4gICAgICA8L2gzPlxuICAgICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtbGluay1wcm9ncmVzc1wiICpuZ0lmPVwiIW9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGlua1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvZ3Jlc3NJbmRpY2F0b3I7IGNvbnRleHQ6IHtvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvY2RzLW1vZGFsLWhlYWRlcj5cbiAgICA8c2VjdGlvbiBjZHNNb2RhbENvbnRlbnQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RlcENvbnRlbnQ7IGNvbnRleHQ6IHtvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyOyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9jZHMtbW9kYWw+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwcm9ncmVzc0luZGljYXRvciBsZXQtb2JzPVwib2JzXCI+XG4gIDxjZHMtcHJvZ3Jlc3MtaW5kaWNhdG9yXG4gICAgKm5nSWY9XCJvYnMuc3RlcHMgJiYgIW9icy5oaWRlUHJvZ3Jlc3NJbmRpY2F0b3JcIlxuICAgIFtzdGVwc109XCJvYnMuc3RlcHNcIlxuICAgIFtjdXJyZW50XT1cIm9icy5jdXJyZW50U3RlcEluZGV4XCJcbiAgICBzcGFjaW5nPVwiZXF1YWxcIlxuICA+PC9jZHMtcHJvZ3Jlc3MtaW5kaWNhdG9yPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzdGVwQ29udGVudCBsZXQtb2JzPVwib2JzXCI+XG4gIDxkaXYgY2xhc3M9XCJjZHMtbG9hZGluZy1jb250YWluZXJcIiAqbmdJZj1cIm9icy5zYXZpbmdcIj5cbiAgICA8Y2RzLWxvYWRpbmc+PC9jZHMtbG9hZGluZz5cbiAgPC9kaXY+XG4gIDxkaXYgW25nQ2xhc3NdPVwie2hpZGRlbjogb2JzLnNhdmluZ31cIj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9icy5jdXJyZW50U3RlcElkID09PSAnY2hvb3NlUHJvY2Vzc0xpbmtUeXBlJ1wiPlxuICAgICAgICA8dmFsdGltby1jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGU+PC92YWx0aW1vLWNob29zZS1wcm9jZXNzLWxpbmstdHlwZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIm9icy5jdXJyZW50U3RlcElkID09PSAnc2VsZWN0Rm9ybScgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rID09PSAnZm9ybSdcIlxuICAgICAgPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtZm9ybT48L3ZhbHRpbW8tc2VsZWN0LWZvcm0+XG4gICAgICAgIDxiciAvPlxuICAgICAgICA8Y2RzLXRvZ2dsZVxuICAgICAgICAgICpuZ0lmPVwic2hvd1ZpZXdNb2RlbFRvZ2dsZVwiXG4gICAgICAgICAgW2xhYmVsXT1cIidwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24udG9nZ2xlVmlld01vZGVsLnRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW29uVGV4dF09XCIncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLnRvZ2dsZVZpZXdNb2RlbC5jaGVja2JveERlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW29mZlRleHRdPVwiJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi50b2dnbGVWaWV3TW9kZWwuY2hlY2tib3hEZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtjaGVja2VkXT1cInZpZXdNb2RlbEVuYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgICAgIChjaGVja2VkQ2hhbmdlKT1cInRvZ2dsZUNoZWNrZWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L2Nkcy10b2dnbGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ3NlbGVjdEZvcm1GbG93JyB8fCBvYnMudHlwZU9mU2VsZWN0ZWRQcm9ncmVzc0xpbmsgPT09ICdmb3JtLWZsb3cnXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDx2YWx0aW1vLXNlbGVjdC1mb3JtLWZsb3c+PC92YWx0aW1vLXNlbGVjdC1mb3JtLWZsb3c+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ2Nob29zZVBsdWdpbkNvbmZpZ3VyYXRpb24nXCI+XG4gICAgICAgIDx2YWx0aW1vLXNlbGVjdC1wbHVnaW4tY29uZmlndXJhdGlvbj48L3ZhbHRpbW8tc2VsZWN0LXBsdWdpbi1jb25maWd1cmF0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JzLmN1cnJlbnRTdGVwSWQgPT09ICdjaG9vc2VQbHVnaW5BY3Rpb24nXCI+XG4gICAgICAgIDx2YWx0aW1vLXNlbGVjdC1wbHVnaW4tYWN0aW9uPjwvdmFsdGltby1zZWxlY3QtcGx1Z2luLWFjdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIG9icy5jdXJyZW50U3RlcElkID09PSAnY29uZmlndXJlUGx1Z2luQWN0aW9uJyB8fFxuICAgICAgICAgIG9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluayA9PT0gJ3BsdWdpbidcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPHZhbHRpbW8tcGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uPjwvdmFsdGltby1wbHVnaW4tYWN0aW9uLWNvbmZpZ3VyYXRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2YWx0aW1vLXNlbGVjdC11cmxcbiAgICAgICAgICAgICAgKm5nSWY9XCJvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ3NlbGVjdFVSTCcgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rID09PSAndXJsJ1wiXG4gICAgICA+PC92YWx0aW1vLXNlbGVjdC11cmw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXIgbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLW1vZGFsLWZvb3RlciAqbmdJZj1cIiFvYnMuc2F2aW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj5cbiAgICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCIgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiPlxuICAgICAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJuYXZpZ2F0aW9uLWJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJvYnMuc2hvd0JhY2tCdXR0b24gJiYgIW9icy5zYXZpbmdcIlxuICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICAoY2xpY2spPVwiYmFja0J1dHRvbkNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmJhY2snIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwib2JzLnNob3dOZXh0QnV0dG9uICYmICFvYnMuc2F2aW5nXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5lbmFibGVOZXh0QnV0dG9uID09PSBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJuZXh0QnV0dG9uQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24ubmV4dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJkYW5nZXItLXByaW1hcnlcIlxuICAgICAgICAqbmdJZj1cIm9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGlua1wiXG4gICAgICAgIChjbGljayk9XCJ1bmxpbmtCdXR0b25DbGljaygpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi51bmxpbmsnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwiKG9icy5zaG93U2F2ZUJ1dHRvbiAmJiAhb2JzLnNhdmluZykgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5lbmFibGVTYXZlQnV0dG9uID09PSBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJzYXZlQnV0dG9uQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uY29tcGxldGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -14,21 +14,26 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { Component } from '@angular/core';
17
- import { combineLatest, map, Subscription, switchMap, tap } from 'rxjs';
17
+ import { BehaviorSubject, combineLatest, map, Subscription, switchMap, tap } from 'rxjs';
18
18
  import { take } from 'rxjs/operators';
19
19
  import * as i0 from "@angular/core";
20
- import * as i1 from "@valtimo/form";
21
- import * as i2 from "../../services";
22
- import * as i3 from "@angular/common";
23
- import * as i4 from "carbon-components-angular";
24
- import * as i5 from "carbon-components-angular/dropdown";
25
- import * as i6 from "@ngx-translate/core";
20
+ import * as i1 from "@valtimo/config";
21
+ import * as i2 from "@valtimo/form";
22
+ import * as i3 from "../../services";
23
+ import * as i4 from "@angular/common";
24
+ import * as i5 from "carbon-components-angular";
25
+ import * as i6 from "carbon-components-angular/dropdown";
26
+ import * as i7 from "../form-display-configuration/form-display-configuration.component";
27
+ import * as i8 from "@ngx-translate/core";
26
28
  export class SelectFormComponent {
27
- constructor(formService, stateService, processLinkService, buttonService) {
29
+ constructor(configService, formService, stateService, processLinkService, buttonService) {
30
+ this.configService = configService;
28
31
  this.formService = formService;
29
32
  this.stateService = stateService;
30
33
  this.processLinkService = processLinkService;
31
34
  this.buttonService = buttonService;
35
+ this.formDisplayValue = '';
36
+ this.formSizeValue = '';
32
37
  this.saving$ = this.stateService.saving$;
33
38
  this.formDefinitions$ = this.formService.getAllFormDefinitions();
34
39
  this.formDefinitionListItems$ = combineLatest([this.stateService.selectedProcessLink$, this.formDefinitions$]).pipe(map(([selectedProcessLink, formDefinitions]) => formDefinitions.map(definition => ({
@@ -44,23 +49,37 @@ export class SelectFormComponent {
44
49
  }
45
50
  }));
46
51
  this._subscriptions = new Subscription();
52
+ this.isUserTask$ = new BehaviorSubject(false);
53
+ this.taskPanelToggle = this.configService.featureToggles?.enableTaskPanel;
47
54
  }
48
55
  ngOnInit() {
49
56
  this.openBackButtonSubscription();
50
57
  this.openSaveButtonSubscription();
58
+ this._subscriptions.add(combineLatest([
59
+ this.stateService.selectedProcessLink$,
60
+ this.stateService.modalParams$,
61
+ ]).subscribe(([selectedProcessLink, modalParams]) => {
62
+ if (selectedProcessLink) {
63
+ this.formDisplayValue = selectedProcessLink.formDisplayType;
64
+ this.formSizeValue = selectedProcessLink.formSize;
65
+ }
66
+ this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');
67
+ }));
51
68
  }
52
69
  ngOnDestroy() {
53
70
  this._subscriptions.unsubscribe();
54
71
  }
55
72
  selectFormDefinition(formDefinition) {
56
- if (typeof formDefinition === 'object' && formDefinition.id) {
57
- this._selectedFormDefinition = formDefinition;
58
- this.buttonService.enableSaveButton();
59
- }
60
- else {
61
- this._selectedFormDefinition = null;
62
- this.buttonService.disableSaveButton();
63
- }
73
+ this.selectedFormDefinition = formDefinition?.id ? formDefinition : null;
74
+ this.selectedFormDefinition
75
+ ? this.buttonService.enableSaveButton()
76
+ : this.buttonService.disableSaveButton();
77
+ }
78
+ selectedFormDisplayValue(formDisplay) {
79
+ this.formDisplayValue = formDisplay;
80
+ }
81
+ selectedFormSizeValue(formSize) {
82
+ this.formSizeValue = formSize;
64
83
  }
65
84
  openBackButtonSubscription() {
66
85
  this._subscriptions.add(this.buttonService.backButtonClick$.subscribe(() => {
@@ -84,13 +103,22 @@ export class SelectFormComponent {
84
103
  });
85
104
  }
86
105
  updateProcessLink() {
87
- combineLatest([this.stateService.selectedProcessLink$, this.stateService.viewModelEnabled$])
106
+ combineLatest([
107
+ this.stateService.selectedProcessLink$,
108
+ this.stateService.viewModelEnabled$,
109
+ this.isUserTask$,
110
+ ])
88
111
  .pipe(take(1))
89
- .subscribe(([selectedProcessLink, viewModelEnabled]) => {
112
+ .subscribe(([selectedProcessLink, viewModelEnabled, isUserTask]) => {
90
113
  const updateProcessLinkRequest = {
91
114
  id: selectedProcessLink.id,
92
- formDefinitionId: this._selectedFormDefinition.id,
115
+ formDefinitionId: this.selectedFormDefinition.id,
93
116
  viewModelEnabled,
117
+ ...(this.taskPanelToggle &&
118
+ isUserTask && {
119
+ formDisplayType: this.formDisplayValue,
120
+ }),
121
+ ...(this.taskPanelToggle && isUserTask && { formSize: this.formSizeValue }),
94
122
  };
95
123
  this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(() => {
96
124
  this.stateService.closeModal();
@@ -104,14 +132,23 @@ export class SelectFormComponent {
104
132
  this.stateService.modalParams$,
105
133
  this.stateService.selectedProcessLinkTypeId$,
106
134
  this.stateService.viewModelEnabled$,
135
+ this.isUserTask$,
107
136
  ])
108
- .pipe(take(1), switchMap(([modalParams, processLinkTypeId, viewModelEnabled]) => this.processLinkService.saveProcessLink({
109
- formDefinitionId: this._selectedFormDefinition.id,
137
+ .pipe(take(1), switchMap(([modalParams, processLinkTypeId, viewModelEnabled, isUserTask]) => this.processLinkService.saveProcessLink({
138
+ formDefinitionId: this.selectedFormDefinition.id,
110
139
  activityType: modalParams.element.activityListenerType,
111
140
  processDefinitionId: modalParams.processDefinitionId,
112
141
  processLinkType: processLinkTypeId,
113
142
  activityId: modalParams.element.id,
114
143
  viewModelEnabled,
144
+ ...(this.taskPanelToggle &&
145
+ isUserTask && {
146
+ formDisplayType: this.formDisplayValue,
147
+ }),
148
+ ...(this.taskPanelToggle &&
149
+ isUserTask && {
150
+ formSize: this.formSizeValue,
151
+ }),
115
152
  })))
116
153
  .subscribe(() => {
117
154
  this.stateService.closeModal();
@@ -119,11 +156,11 @@ export class SelectFormComponent {
119
156
  this.stateService.stopSaving();
120
157
  });
121
158
  }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectFormComponent, deps: [{ token: i1.FormService }, { token: i2.ProcessLinkStateService }, { token: i2.ProcessLinkService }, { token: i2.ProcessLinkButtonService }], target: i0.ɵɵFactoryTarget.Component }); }
123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SelectFormComponent, selector: "valtimo-select-form", 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<ng-container\n *ngIf=\"{\n formDefinitions: formDefinitionListItems$ | async,\n saving: saving$ | async\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormDescription' | translate }}\n </p>\n <div class=\"select-form\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formDefinitions || obs.saving\"\n [items]=\"obs.formDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormDefinition($event)\"\n [label]=\"'processLinkSteps.selectForm' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n </div>\n</ng-container>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-form{display:flex;flex-direction:column;width:100%;margin-top:24px}\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: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "labelId", "items", "type", "size", "itemValueKey", "label", "hideLabel", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectFormComponent, deps: [{ token: i1.ConfigService }, { token: i2.FormService }, { token: i3.ProcessLinkStateService }, { token: i3.ProcessLinkService }, { token: i3.ProcessLinkButtonService }], target: i0.ɵɵFactoryTarget.Component }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SelectFormComponent, selector: "valtimo-select-form", 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<ng-container\n *ngIf=\"{\n formDefinitions: formDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormDescription' | translate }}\n </p>\n <div class=\"select-form\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formDefinitions || obs.saving\"\n [items]=\"obs.formDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormDefinition($event)\"\n [label]=\"'processLinkSteps.selectForm' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormDefinition\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-form{display:flex;flex-direction:column;width:100%;margin-top:24px}\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: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "labelId", "items", "type", "size", "itemValueKey", "label", "hideLabel", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i6.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i7.FormDisplayConfigurationComponent, selector: "valtimo-form-display-configuration", inputs: ["selectedFormDefinition"], outputs: ["formDisplayValue", "formSizeValue"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
124
161
  }
125
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectFormComponent, decorators: [{
126
163
  type: Component,
127
- args: [{ selector: 'valtimo-select-form', 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<ng-container\n *ngIf=\"{\n formDefinitions: formDefinitionListItems$ | async,\n saving: saving$ | async\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormDescription' | translate }}\n </p>\n <div class=\"select-form\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formDefinitions || obs.saving\"\n [items]=\"obs.formDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormDefinition($event)\"\n [label]=\"'processLinkSteps.selectForm' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n </div>\n</ng-container>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-form{display:flex;flex-direction:column;width:100%;margin-top:24px}\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"] }]
128
- }], ctorParameters: () => [{ type: i1.FormService }, { type: i2.ProcessLinkStateService }, { type: i2.ProcessLinkService }, { type: i2.ProcessLinkButtonService }] });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wcm9jZXNzLWxpbmsvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1mb3JtL3NlbGVjdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QtZm9ybS9zZWxlY3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFjLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBT2xGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFPcEMsTUFBTSxPQUFPLG1CQUFtQjtJQTBCOUIsWUFDbUIsV0FBd0IsRUFDeEIsWUFBcUMsRUFDckMsa0JBQXNDLEVBQ3RDLGFBQXVDO1FBSHZDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQUNyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQTdCMUMsWUFBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ25DLHFCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3RCw2QkFBd0IsR0FDdEMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FB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RTtZQUNsQyxnQkFBZ0I7U0FDakIsQ0FBQyxDQUNILENBQ0Y7YUFDQSxTQUFTLENBQ1IsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxDQUFDLEVBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQ0YsQ0FBQztJQUNOLENBQUM7K0dBL0hVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDJEQ2hDaEMsNjBDQXFDQTs7NEZETGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9mb3JtJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFByb2Nlc3NMaW5rQnV0dG9uU2VydmljZSxcbiAgUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICBQcm9jZXNzTGlua1N0YXRlU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtGb3JtRGVmaW5pdGlvbkxpc3RJdGVtLCBGb3JtUHJvY2Vzc0xpbmtVcGRhdGVSZXF1ZXN0RHRvfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHt0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tc2VsZWN0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgcmVhZG9ubHkgc2F2aW5nJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnNhdmluZyQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybURlZmluaXRpb25zJCA9IHRoaXMuZm9ybVNlcnZpY2UuZ2V0QWxsRm9ybURlZmluaXRpb25zKCk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtRGVmaW5pdGlvbkxpc3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8Rm9ybURlZmluaXRpb25MaXN0SXRlbT4+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFByb2Nlc3NMaW5rJCwgdGhpcy5mb3JtRGVmaW5pdGlvbnMkXSkucGlwZShcbiAgICAgIG1hcCgoW3NlbGVjdGVkUHJvY2Vzc0xpbmssIGZvcm1EZWZpbml0aW9uc10pID0+XG4gICAgICAgIGZvcm1EZWZpbml0aW9ucy5tYXAoZGVmaW5pdGlvbiA9PiAoe1xuICAgICAgICAgIGNvbnRlbnQ6IGRlZmluaXRpb24ubmFtZSxcbiAgICAgICAgICBpZDogZGVmaW5pdGlvbi5pZCxcbiAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWRQcm9jZXNzTGlua1xuICAgICAgICAgICAgPyBzZWxlY3RlZFByb2Nlc3NMaW5rLmZvcm1EZWZpbml0aW9uSWQgPT09IGRlZmluaXRpb24uaWRcbiAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgIH0pKVxuICAgICAgKSxcbiAgICAgIHRhcChmb3JtRGVmaW5pdGlvbkxpc3RJdGVtcyA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGZvcm1EZWZpbml0aW9uTGlzdEl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcblxuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RGb3JtRGVmaW5pdGlvbihzZWxlY3RlZEl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRGb3JtRGVmaW5pdGlvbiE6IEZvcm1EZWZpbml0aW9uTGlzdEl0ZW07XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0xpbmtTZXJ2aWNlOiBQcm9jZXNzTGlua1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBidXR0b25TZXJ2aWNlOiBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkJhY2tCdXR0b25TdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLm9wZW5TYXZlQnV0dG9uU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzZWxlY3RGb3JtRGVmaW5pdGlvbihmb3JtRGVmaW5pdGlvbjogRm9ybURlZmluaXRpb25MaXN0SXRlbSk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgZm9ybURlZmluaXRpb24gPT09ICdvYmplY3QnICYmIGZvcm1EZWZpbml0aW9uLmlkKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZEZvcm1EZWZpbml0aW9uID0gZm9ybURlZmluaXRpb247XG4gICAgICB0aGlzLmJ1dHRvblNlcnZpY2UuZW5hYmxlU2F2ZUJ1dHRvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZEZvcm1EZWZpbml0aW9uID0gbnVsbDtcbiAgICAgIHRoaXMuYnV0dG9uU2VydmljZS5kaXNhYmxlU2F2ZUJ1dHRvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlbkJhY2tCdXR0b25TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmJ1dHRvblNlcnZpY2UuYmFja0J1dHRvbkNsaWNrJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zZXRJbml0aWFsKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TYXZlQnV0dG9uU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5idXR0b25TZXJ2aWNlLnNhdmVCdXR0b25DbGljayQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhcnRTYXZpbmcoKTtcbiAgICAgICAgdGhpcy5zYXZlUHJvY2Vzc0xpbmsoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVByb2Nlc3NMaW5rKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUHJvY2Vzc0xpbmskLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHNlbGVjdGVkUHJvY2Vzc0xpbmsgPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkUHJvY2Vzc0xpbmspIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9jZXNzTGluaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zYXZlTmV3UHJvY2Vzc0xpbmsoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUHJvY2Vzc0xpbmsoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQcm9jZXNzTGluayQsIHRoaXMuc3RhdGVTZXJ2aWNlLnZpZXdNb2RlbEVuYWJsZWQkXSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChbc2VsZWN0ZWRQcm9jZXNzTGluaywgdmlld01vZGVsRW5hYmxlZF0pID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlUHJvY2Vzc0xpbmtSZXF1ZXN0OiBGb3JtUHJvY2Vzc0xpbmtVcGRhdGVSZXF1ZXN0RHRvID0ge1xuICAgICAgICAgIGlkOiBzZWxlY3RlZFByb2Nlc3NMaW5rLmlkLFxuICAgICAgICAgIGZvcm1EZWZpbml0aW9uSWQ6IHRoaXMuX3NlbGVjdGVkRm9ybURlZmluaXRpb24uaWQsXG4gICAgICAgICAgdmlld01vZGVsRW5hYmxlZCxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnByb2Nlc3NMaW5rU2VydmljZS51cGRhdGVQcm9jZXNzTGluayh1cGRhdGVQcm9jZXNzTGlua1JlcXVlc3QpLnN1YnNjcmliZShcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zdG9wU2F2aW5nKCk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVOZXdQcm9jZXNzTGluaygpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLm1vZGFsUGFyYW1zJCxcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUHJvY2Vzc0xpbmtUeXBlSWQkLFxuICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uudmlld01vZGVsRW5hYmxlZCQsXG4gICAgXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBzd2l0Y2hNYXAoKFttb2RhbFBhcmFtcywgcHJvY2Vzc0xpbmtUeXBlSWQsIHZpZXdNb2RlbEVuYWJsZWRdKSA9PlxuICAgICAgICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlLnNhdmVQcm9jZXNzTGluayh7XG4gICAgICAgICAgICBmb3JtRGVmaW5pdGlvbklkOiB0aGlzLl9zZWxlY3RlZEZvcm1EZWZpbml0aW9uLmlkLFxuICAgICAgICAgICAgYWN0aXZpdHlUeXBlOiBtb2RhbFBhcmFtcy5lbGVtZW50LmFjdGl2aXR5TGlzdGVuZXJUeXBlLFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25JZDogbW9kYWxQYXJhbXMucHJvY2Vzc0RlZmluaXRpb25JZCxcbiAgICAgICAgICAgIHByb2Nlc3NMaW5rVHlwZTogcHJvY2Vzc0xpbmtUeXBlSWQsXG4gICAgICAgICAgICBhY3Rpdml0eUlkOiBtb2RhbFBhcmFtcy5lbGVtZW50LmlkLFxuICAgICAgICAgICAgdmlld01vZGVsRW5hYmxlZCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuY2xvc2VNb2RhbCgpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc3RvcFNhdmluZygpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZm9ybURlZmluaXRpb25zOiBmb3JtRGVmaW5pdGlvbkxpc3RJdGVtcyQgfCBhc3luYyxcbiAgICBzYXZpbmc6IHNhdmluZyQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4+XG4gIDxwIGNsYXNzPVwic3RlcC1kZXNjcmlwdGlvblwiPlxuICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uY2hvb3NlRm9ybURlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICA8L3A+XG4gIDxkaXYgY2xhc3M9XCJzZWxlY3QtZm9ybVwiPlxuICAgIDxjZHMtY29tYm8tYm94XG4gICAgICBbYXBwZW5kSW5saW5lXT1cInRydWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFvYnMuZm9ybURlZmluaXRpb25zIHx8IG9icy5zYXZpbmdcIlxuICAgICAgW2l0ZW1zXT1cIm9icy5mb3JtRGVmaW5pdGlvbnMgfHwgW11cIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidpbnRlcmZhY2UudHlwZVRvU2VhcmNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAoc2VsZWN0ZWQpPVwic2VsZWN0Rm9ybURlZmluaXRpb24oJGV2ZW50KVwiXG4gICAgICBbbGFiZWxdPVwiJ3Byb2Nlc3NMaW5rU3RlcHMuc2VsZWN0Rm9ybScgfCB0cmFuc2xhdGVcIlxuICAgICAgPjxjZHMtZHJvcGRvd24tbGlzdD48L2Nkcy1kcm9wZG93bi1saXN0XG4gICAgPjwvY2RzLWNvbWJvLWJveD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
164
+ args: [{ selector: 'valtimo-select-form', 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<ng-container\n *ngIf=\"{\n formDefinitions: formDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormDescription' | translate }}\n </p>\n <div class=\"select-form\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formDefinitions || obs.saving\"\n [items]=\"obs.formDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormDefinition($event)\"\n [label]=\"'processLinkSteps.selectForm' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormDefinition\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n", styles: [".label-with-tooltip{display:flex;align-items:center}.select-form{display:flex;flex-direction:column;width:100%;margin-top:24px}\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"] }]
165
+ }], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.FormService }, { type: i3.ProcessLinkStateService }, { type: i3.ProcessLinkService }, { type: i3.ProcessLinkButtonService }] });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wcm9jZXNzLWxpbmsvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1mb3JtL3NlbGVjdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QtZm9ybS9zZWxlY3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxZQUFZLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQU9uRyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFRcEMsTUFBTSxPQUFPLG1CQUFtQjtJQStCOUIsWUFDbUIsYUFBNEIsRUFDNUIsV0FBd0IsRUFDeEIsWUFBcUMsRUFDckMsa0JBQXNDLEVBQ3RDLGFBQXVDO1FBSnZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQUNyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQW5DbkQscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBQzlCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBR2xCLFlBQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNuQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHFC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QVcsQ0FBQyxtQkFBbUI7WUFDcEQsZUFBZSxFQUFFLGlCQUFpQjtZQUNsQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLGdCQUFnQjtZQUNoQixHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWU7Z0JBQ3RCLFVBQVUsSUFBSTtnQkFDWixlQUFlLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjthQUN2QyxDQUFDO1lBQ0osR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlO2dCQUN0QixVQUFVLElBQUk7Z0JBQ1osUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQzdCLENBQUM7U0FDTCxDQUFDLENBQ0gsQ0FDRjthQUNBLFNBQVMsQ0FDUixHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQzsrR0ExS1UsbUJBQW1CO21HQUFuQixtQkFBbUIsMkRDakNoQyxvbURBNENBOzs0RkRYYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybVNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2Zvcm0nO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU2VydmljZSxcbiAgUHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2UsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7Rm9ybURlZmluaXRpb25MaXN0SXRlbSwgRm9ybVByb2Nlc3NMaW5rVXBkYXRlUmVxdWVzdER0b30gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXNlbGVjdC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGZvcm1EaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgZm9ybVNpemVWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBzZWxlY3RlZEZvcm1EZWZpbml0aW9uITogRm9ybURlZmluaXRpb25MaXN0SXRlbTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2F2aW5nJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnNhdmluZyQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybURlZmluaXRpb25zJCA9IHRoaXMuZm9ybVNlcnZpY2UuZ2V0QWxsRm9ybURlZmluaXRpb25zKCk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtRGVmaW5pdGlvbkxpc3RJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8Rm9ybURlZmluaXRpb25MaXN0SXRlbT4+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFByb2Nlc3NMaW5rJCwgdGhpcy5mb3JtRGVmaW5pdGlvbnMkXSkucGlwZShcbiAgICAgIG1hcCgoW3NlbGVjdGVkUHJvY2Vzc0xpbmssIGZvcm1EZWZpbml0aW9uc10pID0+XG4gICAgICAgIGZvcm1EZWZpbml0aW9ucy5tYXAoZGVmaW5pdGlvbiA9PiAoe1xuICAgICAgICAgIGNvbnRlbnQ6IGRlZmluaXRpb24ubmFtZSxcbiAgICAgICAgICBpZDogZGVmaW5pdGlvbi5pZCxcbiAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWRQcm9jZXNzTGlua1xuICAgICAgICAgICAgPyBzZWxlY3RlZFByb2Nlc3NMaW5rLmZvcm1EZWZpbml0aW9uSWQgPT09IGRlZmluaXRpb24uaWRcbiAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgIH0pKVxuICAgICAgKSxcbiAgICAgIHRhcChmb3JtRGVmaW5pdGlvbkxpc3RJdGVtcyA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGZvcm1EZWZpbml0aW9uTGlzdEl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcblxuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RGb3JtRGVmaW5pdGlvbihzZWxlY3RlZEl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBpc1VzZXJUYXNrJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRhc2tQYW5lbFRvZ2dsZSA9IHRoaXMuY29uZmlnU2VydmljZS5mZWF0dXJlVG9nZ2xlcz8uZW5hYmxlVGFza1BhbmVsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogUHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzTGlua1NlcnZpY2U6IFByb2Nlc3NMaW5rU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJ1dHRvblNlcnZpY2U6IFByb2Nlc3NMaW5rQnV0dG9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkJhY2tCdXR0b25TdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLm9wZW5TYXZlQnV0dG9uU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQcm9jZXNzTGluayQsXG4gICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLm1vZGFsUGFyYW1zJCxcbiAgICAgIF0pLnN1YnNjcmliZSgoW3NlbGVjdGVkUHJvY2Vzc0xpbmssIG1vZGFsUGFyYW1zXSkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRQcm9jZXNzTGluaykge1xuICAgICAgICAgIHRoaXMuZm9ybURpc3BsYXlWYWx1ZSA9IHNlbGVjdGVkUHJvY2Vzc0xpbmsuZm9ybURpc3BsYXlUeXBlO1xuICAgICAgICAgIHRoaXMuZm9ybVNpemVWYWx1ZSA9IHNlbGVjdGVkUHJvY2Vzc0xpbmsuZm9ybVNpemU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzVXNlclRhc2skLm5leHQobW9kYWxQYXJhbXM/LmVsZW1lbnQ/LnR5cGUgPT09ICdicG1uOlVzZXJUYXNrJyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEZvcm1EZWZpbml0aW9uKGZvcm1EZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbkxpc3RJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEZvcm1EZWZpbml0aW9uID0gZm9ybURlZmluaXRpb24/LmlkID8gZm9ybURlZmluaXRpb24gOiBudWxsO1xuXG4gICAgdGhpcy5zZWxlY3RlZEZvcm1EZWZpbml0aW9uXG4gICAgICA/IHRoaXMuYnV0dG9uU2VydmljZS5lbmFibGVTYXZlQnV0dG9uKClcbiAgICAgIDogdGhpcy5idXR0b25TZXJ2aWNlLmRpc2FibGVTYXZlQnV0dG9uKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRGb3JtRGlzcGxheVZhbHVlKGZvcm1EaXNwbGF5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1EaXNwbGF5VmFsdWUgPSBmb3JtRGlzcGxheTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RlZEZvcm1TaXplVmFsdWUoZm9ybVNpemU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVNpemVWYWx1ZSA9IGZvcm1TaXplO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQmFja0J1dHRvblN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuYnV0dG9uU2VydmljZS5iYWNrQnV0dG9uQ2xpY2skLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldEluaXRpYWwoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblNhdmVCdXR0b25TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmJ1dHRvblNlcnZpY2Uuc2F2ZUJ1dHRvbkNsaWNrJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zdGFydFNhdmluZygpO1xuICAgICAgICB0aGlzLnNhdmVQcm9jZXNzTGluaygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlUHJvY2Vzc0xpbmsoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQcm9jZXNzTGluayQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc2VsZWN0ZWRQcm9jZXNzTGluayA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRQcm9jZXNzTGluaykge1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2Nlc3NMaW5rKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNhdmVOZXdQcm9jZXNzTGluaygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQcm9jZXNzTGluaygpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUHJvY2Vzc0xpbmskLFxuICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uudmlld01vZGVsRW5hYmxlZCQsXG4gICAgICB0aGlzLmlzVXNlclRhc2skLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoW3NlbGVjdGVkUHJvY2Vzc0xpbmssIHZpZXdNb2RlbEVuYWJsZWQsIGlzVXNlclRhc2tdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZVByb2Nlc3NMaW5rUmVxdWVzdDogRm9ybVByb2Nlc3NMaW5rVXBkYXRlUmVxdWVzdER0byA9IHtcbiAgICAgICAgICBpZDogc2VsZWN0ZWRQcm9jZXNzTGluay5pZCxcbiAgICAgICAgICBmb3JtRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkRm9ybURlZmluaXRpb24uaWQsXG4gICAgICAgICAgdmlld01vZGVsRW5hYmxlZCxcbiAgICAgICAgICAuLi4odGhpcy50YXNrUGFuZWxUb2dnbGUgJiZcbiAgICAgICAgICAgIGlzVXNlclRhc2sgJiYge1xuICAgICAgICAgICAgICBmb3JtRGlzcGxheVR5cGU6IHRoaXMuZm9ybURpc3BsYXlWYWx1ZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIC4uLih0aGlzLnRhc2tQYW5lbFRvZ2dsZSAmJiBpc1VzZXJUYXNrICYmIHtmb3JtU2l6ZTogdGhpcy5mb3JtU2l6ZVZhbHVlfSksXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzTGlua1NlcnZpY2UudXBkYXRlUHJvY2Vzc0xpbmsodXBkYXRlUHJvY2Vzc0xpbmtSZXF1ZXN0KS5zdWJzY3JpYmUoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuY2xvc2VNb2RhbCgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc3RvcFNhdmluZygpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlTmV3UHJvY2Vzc0xpbmsoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0YXRlU2VydmljZS5tb2RhbFBhcmFtcyQsXG4gICAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFByb2Nlc3NMaW5rVHlwZUlkJCxcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnZpZXdNb2RlbEVuYWJsZWQkLFxuICAgICAgdGhpcy5pc1VzZXJUYXNrJCxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgoW21vZGFsUGFyYW1zLCBwcm9jZXNzTGlua1R5cGVJZCwgdmlld01vZGVsRW5hYmxlZCwgaXNVc2VyVGFza10pID0+XG4gICAgICAgICAgdGhpcy5wcm9jZXNzTGlua1NlcnZpY2Uuc2F2ZVByb2Nlc3NMaW5rKHtcbiAgICAgICAgICAgIGZvcm1EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRGb3JtRGVmaW5pdGlvbi5pZCxcbiAgICAgICAgICAgIGFjdGl2aXR5VHlwZTogbW9kYWxQYXJhbXMuZWxlbWVudC5hY3Rpdml0eUxpc3RlbmVyVHlwZSxcbiAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uSWQ6IG1vZGFsUGFyYW1zLnByb2Nlc3NEZWZpbml0aW9uSWQsXG4gICAgICAgICAgICBwcm9jZXNzTGlua1R5cGU6IHByb2Nlc3NMaW5rVHlwZUlkLFxuICAgICAgICAgICAgYWN0aXZpdHlJZDogbW9kYWxQYXJhbXMuZWxlbWVudC5pZCxcbiAgICAgICAgICAgIHZpZXdNb2RlbEVuYWJsZWQsXG4gICAgICAgICAgICAuLi4odGhpcy50YXNrUGFuZWxUb2dnbGUgJiZcbiAgICAgICAgICAgICAgaXNVc2VyVGFzayAmJiB7XG4gICAgICAgICAgICAgICAgZm9ybURpc3BsYXlUeXBlOiB0aGlzLmZvcm1EaXNwbGF5VmFsdWUsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgLi4uKHRoaXMudGFza1BhbmVsVG9nZ2xlICYmXG4gICAgICAgICAgICAgIGlzVXNlclRhc2sgJiYge1xuICAgICAgICAgICAgICAgIGZvcm1TaXplOiB0aGlzLmZvcm1TaXplVmFsdWUsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zdG9wU2F2aW5nKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBmb3JtRGVmaW5pdGlvbnM6IGZvcm1EZWZpbml0aW9uTGlzdEl0ZW1zJCB8IGFzeW5jLFxuICAgIHNhdmluZzogc2F2aW5nJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxwIGNsYXNzPVwic3RlcC1kZXNjcmlwdGlvblwiPlxuICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uY2hvb3NlRm9ybURlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICA8L3A+XG4gIDxkaXYgY2xhc3M9XCJzZWxlY3QtZm9ybVwiPlxuICAgIDxjZHMtY29tYm8tYm94XG4gICAgICBbYXBwZW5kSW5saW5lXT1cInRydWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFvYnMuZm9ybURlZmluaXRpb25zIHx8IG9icy5zYXZpbmdcIlxuICAgICAgW2l0ZW1zXT1cIm9icy5mb3JtRGVmaW5pdGlvbnMgfHwgW11cIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidpbnRlcmZhY2UudHlwZVRvU2VhcmNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAoc2VsZWN0ZWQpPVwic2VsZWN0Rm9ybURlZmluaXRpb24oJGV2ZW50KVwiXG4gICAgICBbbGFiZWxdPVwiJ3Byb2Nlc3NMaW5rU3RlcHMuc2VsZWN0Rm9ybScgfCB0cmFuc2xhdGVcIlxuICAgICAgPjxjZHMtZHJvcGRvd24tbGlzdD48L2Nkcy1kcm9wZG93bi1saXN0XG4gICAgPjwvY2RzLWNvbWJvLWJveD5cbiAgICA8YnIgLz5cblxuICAgIDx2YWx0aW1vLWZvcm0tZGlzcGxheS1jb25maWd1cmF0aW9uXG4gICAgICBbc2VsZWN0ZWRGb3JtRGVmaW5pdGlvbl09XCJzZWxlY3RlZEZvcm1EZWZpbml0aW9uXCJcbiAgICAgIChmb3JtRGlzcGxheVZhbHVlKT1cInNlbGVjdGVkRm9ybURpc3BsYXlWYWx1ZSgkZXZlbnQpXCJcbiAgICAgIChmb3JtU2l6ZVZhbHVlKT1cInNlbGVjdGVkRm9ybVNpemVWYWx1ZSgkZXZlbnQpXCJcbiAgICA+PC92YWx0aW1vLWZvcm0tZGlzcGxheS1jb25maWd1cmF0aW9uPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19