@valtimo/process-link 12.5.1 → 12.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) 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 +15 -5
  3. package/esm2022/lib/components/plugin-action-configuration/plugin-action-configuration.component.mjs +7 -5
  4. package/esm2022/lib/components/process-link-modal/process-link-modal.component.mjs +10 -7
  5. package/esm2022/lib/components/select-form/select-form.component.mjs +16 -10
  6. package/esm2022/lib/components/select-form-flow/select-form-flow.component.mjs +14 -9
  7. package/esm2022/lib/components/select-plugin-action/select-plugin-action.component.mjs +7 -8
  8. package/esm2022/lib/components/select-ui-component/select-ui-component.component.mjs +128 -0
  9. package/esm2022/lib/components/select-url/select-url.component.mjs +13 -22
  10. package/esm2022/lib/constants/injection-tokens.mjs +3 -2
  11. package/esm2022/lib/models/form-custom-component.model.mjs +17 -0
  12. package/esm2022/lib/models/index.mjs +2 -1
  13. package/esm2022/lib/models/process-link.model.mjs +1 -1
  14. package/esm2022/lib/process-link.module.mjs +17 -14
  15. package/esm2022/lib/services/process-link-state.service.mjs +2 -2
  16. package/esm2022/lib/services/process-link-step.service.mjs +13 -1
  17. package/esm2022/lib/services/process-link.service.mjs +21 -16
  18. package/esm2022/lib/services/url-resolver.service.mjs +1 -1
  19. package/esm2022/lib/services/url-validator.service.mjs +1 -1
  20. package/fesm2022/valtimo-process-link.mjs +272 -104
  21. package/fesm2022/valtimo-process-link.mjs.map +1 -1
  22. package/lib/components/form-display-configuration/form-display-configuration.component.d.ts +9 -4
  23. package/lib/components/form-display-configuration/form-display-configuration.component.d.ts.map +1 -1
  24. package/lib/components/plugin-action-configuration/plugin-action-configuration.component.d.ts +9 -7
  25. package/lib/components/plugin-action-configuration/plugin-action-configuration.component.d.ts.map +1 -1
  26. package/lib/components/process-link-modal/process-link-modal.component.d.ts +4 -2
  27. package/lib/components/process-link-modal/process-link-modal.component.d.ts.map +1 -1
  28. package/lib/components/select-form/select-form.component.d.ts +5 -3
  29. package/lib/components/select-form/select-form.component.d.ts.map +1 -1
  30. package/lib/components/select-form-flow/select-form-flow.component.d.ts +4 -2
  31. package/lib/components/select-form-flow/select-form-flow.component.d.ts.map +1 -1
  32. package/lib/components/select-plugin-action/select-plugin-action.component.d.ts +1 -2
  33. package/lib/components/select-plugin-action/select-plugin-action.component.d.ts.map +1 -1
  34. package/lib/components/select-ui-component/select-ui-component.component.d.ts +28 -0
  35. package/lib/components/select-ui-component/select-ui-component.component.d.ts.map +1 -0
  36. package/lib/components/select-url/select-url.component.d.ts.map +1 -1
  37. package/lib/constants/injection-tokens.d.ts +3 -2
  38. package/lib/constants/injection-tokens.d.ts.map +1 -1
  39. package/lib/models/form-custom-component.model.d.ts +16 -0
  40. package/lib/models/form-custom-component.model.d.ts.map +1 -0
  41. package/lib/models/index.d.ts +1 -0
  42. package/lib/models/index.d.ts.map +1 -1
  43. package/lib/models/process-link.model.d.ts +38 -1
  44. package/lib/models/process-link.model.d.ts.map +1 -1
  45. package/lib/process-link.module.d.ts +9 -8
  46. package/lib/process-link.module.d.ts.map +1 -1
  47. package/lib/services/process-link-step.service.d.ts +1 -0
  48. package/lib/services/process-link-step.service.d.ts.map +1 -1
  49. package/lib/services/process-link.service.d.ts +6 -4
  50. package/lib/services/process-link.service.d.ts.map +1 -1
  51. package/lib/services/url-resolver.service.d.ts.map +1 -1
  52. package/lib/services/url-validator.service.d.ts.map +1 -1
  53. package/package.json +1 -1
@@ -29,10 +29,10 @@ export class ChooseProcessLinkTypeComponent {
29
29
  this.processLinkStateService.selectProcessLinkType(processLinkTypeId);
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChooseProcessLinkTypeComponent, deps: [{ token: i1.ProcessLinkStateService }], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChooseProcessLinkTypeComponent, selector: "valtimo-choose-process-link-type", 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 availableProcessLinkTypes: availableProcessLinkTypes$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseProcessLinkTypeDescription' | translate }}\n </p>\n <div class=\"process-link-grid\">\n <div\n class=\"process-link-item\"\n *ngFor=\"let availableProcessLinkType of obs.availableProcessLinkTypes\"\n >\n <ng-container *ngIf=\"availableProcessLinkType.processLinkType as processLinkTypeId\">\n <button\n (click)=\"selectProcessLinkType(processLinkTypeId)\"\n cdsButton=\"secondary\"\n size=\"xl\"\n class=\"process-link-type-button\"\n [disabled]=\"!availableProcessLinkType.enabled\"\n [vTooltip]=\"'processLinkTypeDisabledTooltip.' + processLinkTypeId | translate\"\n [onBottom]=\"true\"\n [tooltipDisabled]=\"availableProcessLinkType.enabled\"\n >\n {{ 'processLinkType.' + processLinkTypeId | translate }}\n <svg\n *ngIf=\"processLinkTypeId === 'plugin'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"link\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form-flow'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"flow--data\"\n size=\"16\"\n ></svg>\n </button>\n </ng-container>\n </div>\n </div>\n</ng-container>\n", styles: [".process-link-type-button{width:100%}.process-link-grid{margin-top:24px;display:flex;justify-content:flex-start;width:100%;flex-wrap:wrap;gap:8px}.process-link-item{flex-basis:calc(33.3% - 5.3333333333px)}\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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[vTooltip]", inputs: ["vTooltip", "onBottom", "tooltipDisabled"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChooseProcessLinkTypeComponent, selector: "valtimo-choose-process-link-type", 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 availableProcessLinkTypes: availableProcessLinkTypes$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseProcessLinkTypeDescription' | translate }}\n </p>\n <div class=\"process-link-grid\">\n <div\n class=\"process-link-item\"\n *ngFor=\"let availableProcessLinkType of obs.availableProcessLinkTypes\"\n >\n <ng-container *ngIf=\"availableProcessLinkType.processLinkType as processLinkTypeId\">\n <button\n (click)=\"selectProcessLinkType(processLinkTypeId)\"\n cdsButton=\"secondary\"\n size=\"xl\"\n class=\"process-link-type-button\"\n [disabled]=\"!availableProcessLinkType.enabled\"\n [vTooltip]=\"'processLinkTypeDisabledTooltip.' + processLinkTypeId | translate\"\n [onBottom]=\"true\"\n [tooltipDisabled]=\"availableProcessLinkType.enabled\"\n >\n {{ 'processLinkType.' + processLinkTypeId | translate }}\n <svg\n *ngIf=\"processLinkTypeId === 'plugin'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"link\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form-flow'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"flow--data\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'ui-component'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n </button>\n </ng-container>\n </div>\n </div>\n</ng-container>\n", styles: [".process-link-type-button{width:100%}.process-link-grid{margin-top:24px;display:flex;justify-content:flex-start;width:100%;flex-wrap:wrap;gap:8px}.process-link-item{flex-basis:calc(33.3% - 5.3333333333px)}\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: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[vTooltip]", inputs: ["vTooltip", "onBottom", "tooltipDisabled"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChooseProcessLinkTypeComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'valtimo-choose-process-link-type', 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 availableProcessLinkTypes: availableProcessLinkTypes$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseProcessLinkTypeDescription' | translate }}\n </p>\n <div class=\"process-link-grid\">\n <div\n class=\"process-link-item\"\n *ngFor=\"let availableProcessLinkType of obs.availableProcessLinkTypes\"\n >\n <ng-container *ngIf=\"availableProcessLinkType.processLinkType as processLinkTypeId\">\n <button\n (click)=\"selectProcessLinkType(processLinkTypeId)\"\n cdsButton=\"secondary\"\n size=\"xl\"\n class=\"process-link-type-button\"\n [disabled]=\"!availableProcessLinkType.enabled\"\n [vTooltip]=\"'processLinkTypeDisabledTooltip.' + processLinkTypeId | translate\"\n [onBottom]=\"true\"\n [tooltipDisabled]=\"availableProcessLinkType.enabled\"\n >\n {{ 'processLinkType.' + processLinkTypeId | translate }}\n <svg\n *ngIf=\"processLinkTypeId === 'plugin'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"link\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form-flow'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"flow--data\"\n size=\"16\"\n ></svg>\n </button>\n </ng-container>\n </div>\n </div>\n</ng-container>\n", styles: [".process-link-type-button{width:100%}.process-link-grid{margin-top:24px;display:flex;justify-content:flex-start;width:100%;flex-wrap:wrap;gap:8px}.process-link-item{flex-basis:calc(33.3% - 5.3333333333px)}\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"] }]
36
+ args: [{ selector: 'valtimo-choose-process-link-type', 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 availableProcessLinkTypes: availableProcessLinkTypes$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseProcessLinkTypeDescription' | translate }}\n </p>\n <div class=\"process-link-grid\">\n <div\n class=\"process-link-item\"\n *ngFor=\"let availableProcessLinkType of obs.availableProcessLinkTypes\"\n >\n <ng-container *ngIf=\"availableProcessLinkType.processLinkType as processLinkTypeId\">\n <button\n (click)=\"selectProcessLinkType(processLinkTypeId)\"\n cdsButton=\"secondary\"\n size=\"xl\"\n class=\"process-link-type-button\"\n [disabled]=\"!availableProcessLinkType.enabled\"\n [vTooltip]=\"'processLinkTypeDisabledTooltip.' + processLinkTypeId | translate\"\n [onBottom]=\"true\"\n [tooltipDisabled]=\"availableProcessLinkType.enabled\"\n >\n {{ 'processLinkType.' + processLinkTypeId | translate }}\n <svg\n *ngIf=\"processLinkTypeId === 'plugin'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"link\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form-flow'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"flow--data\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'ui-component'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n </button>\n </ng-container>\n </div>\n </div>\n</ng-container>\n", styles: [".process-link-type-button{width:100%}.process-link-grid{margin-top:24px;display:flex;justify-content:flex-start;width:100%;flex-wrap:wrap;gap:8px}.process-link-item{flex-basis:calc(33.3% - 5.3333333333px)}\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"] }]
37
37
  }], ctorParameters: () => [{ type: i1.ProcessLinkStateService }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUvY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUvY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVF4QyxNQUFNLE9BQU8sOEJBQThCO0lBSXpDLFlBQTZCLHVCQUFnRDtRQUFoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBSDdELCtCQUEwQixHQUN4QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsMEJBQTBCLENBQUM7SUFFc0IsQ0FBQztJQUVqRixxQkFBcUIsQ0FBQyxpQkFBeUI7UUFDN0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEUsQ0FBQzsrR0FSVSw4QkFBOEI7bUdBQTlCLDhCQUE4Qix3RUN4QjNDLHF3RUFnRUE7OzRGRHhDYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0Usa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcm9jZXNzTGlua1N0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWNob29zZS1wcm9jZXNzLWxpbmstdHlwZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hvb3NlUHJvY2Vzc0xpbmtUeXBlQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZXMkID1cbiAgICB0aGlzLnByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLmF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZXMkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlKSB7fVxuXG4gIHNlbGVjdFByb2Nlc3NMaW5rVHlwZShwcm9jZXNzTGlua1R5cGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wcm9jZXNzTGlua1N0YXRlU2VydmljZS5zZWxlY3RQcm9jZXNzTGlua1R5cGUocHJvY2Vzc0xpbmtUeXBlSWQpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlczogYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlcyQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuPlxuICA8cCBjbGFzcz1cInN0ZXAtZGVzY3JpcHRpb25cIj5cbiAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmNob29zZVByb2Nlc3NMaW5rVHlwZURlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICA8L3A+XG4gIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWxpbmstZ3JpZFwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicHJvY2Vzcy1saW5rLWl0ZW1cIlxuICAgICAgKm5nRm9yPVwibGV0IGF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZSBvZiBvYnMuYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlc1wiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZS5wcm9jZXNzTGlua1R5cGUgYXMgcHJvY2Vzc0xpbmtUeXBlSWRcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQcm9jZXNzTGlua1R5cGUocHJvY2Vzc0xpbmtUeXBlSWQpXCJcbiAgICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICAgIHNpemU9XCJ4bFwiXG4gICAgICAgICAgY2xhc3M9XCJwcm9jZXNzLWxpbmstdHlwZS1idXR0b25cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlLmVuYWJsZWRcIlxuICAgICAgICAgIFt2VG9vbHRpcF09XCIncHJvY2Vzc0xpbmtUeXBlRGlzYWJsZWRUb29sdGlwLicgKyBwcm9jZXNzTGlua1R5cGVJZCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW29uQm90dG9tXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwRGlzYWJsZWRdPVwiYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlLmVuYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ3Byb2Nlc3NMaW5rVHlwZS4nICsgcHJvY2Vzc0xpbmtUeXBlSWQgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAqbmdJZj1cInByb2Nlc3NMaW5rVHlwZUlkID09PSAncGx1Z2luJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImNkcy0tYnRuX19pY29uXCJcbiAgICAgICAgICAgIGNkc0ljb249XCJsaW5rXCJcbiAgICAgICAgICAgIHNpemU9XCIxNlwiXG4gICAgICAgICAgPjwvc3ZnPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICpuZ0lmPVwicHJvY2Vzc0xpbmtUeXBlSWQgPT09ICdmb3JtJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImNkcy0tYnRuX19pY29uXCJcbiAgICAgICAgICAgIGNkc0ljb249XCJyZWNlaXB0XCJcbiAgICAgICAgICAgIHNpemU9XCIxNlwiXG4gICAgICAgICAgPjwvc3ZnPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICpuZ0lmPVwicHJvY2Vzc0xpbmtUeXBlSWQgPT09ICdmb3JtLWZsb3cnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIlxuICAgICAgICAgICAgY2RzSWNvbj1cImZsb3ctLWRhdGFcIlxuICAgICAgICAgICAgc2l6ZT1cIjE2XCJcbiAgICAgICAgICA+PC9zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUvY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUvY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVF4QyxNQUFNLE9BQU8sOEJBQThCO0lBSXpDLFlBQTZCLHVCQUFnRDtRQUFoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBSDdELCtCQUEwQixHQUN4QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsMEJBQTBCLENBQUM7SUFFc0IsQ0FBQztJQUVqRixxQkFBcUIsQ0FBQyxpQkFBeUI7UUFDN0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEUsQ0FBQzsrR0FSVSw4QkFBOEI7bUdBQTlCLDhCQUE4Qix3RUN4QjNDLG84RUFzRUE7OzRGRDlDYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0Usa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcm9jZXNzTGlua1N0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWNob29zZS1wcm9jZXNzLWxpbmstdHlwZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hvb3NlUHJvY2Vzc0xpbmtUeXBlQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZXMkID1cbiAgICB0aGlzLnByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLmF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZXMkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlKSB7fVxuXG4gIHNlbGVjdFByb2Nlc3NMaW5rVHlwZShwcm9jZXNzTGlua1R5cGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wcm9jZXNzTGlua1N0YXRlU2VydmljZS5zZWxlY3RQcm9jZXNzTGlua1R5cGUocHJvY2Vzc0xpbmtUeXBlSWQpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlczogYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlcyQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuPlxuICA8cCBjbGFzcz1cInN0ZXAtZGVzY3JpcHRpb25cIj5cbiAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmNob29zZVByb2Nlc3NMaW5rVHlwZURlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICA8L3A+XG4gIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWxpbmstZ3JpZFwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicHJvY2Vzcy1saW5rLWl0ZW1cIlxuICAgICAgKm5nRm9yPVwibGV0IGF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZSBvZiBvYnMuYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlc1wiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZS5wcm9jZXNzTGlua1R5cGUgYXMgcHJvY2Vzc0xpbmtUeXBlSWRcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQcm9jZXNzTGlua1R5cGUocHJvY2Vzc0xpbmtUeXBlSWQpXCJcbiAgICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICAgIHNpemU9XCJ4bFwiXG4gICAgICAgICAgY2xhc3M9XCJwcm9jZXNzLWxpbmstdHlwZS1idXR0b25cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlLmVuYWJsZWRcIlxuICAgICAgICAgIFt2VG9vbHRpcF09XCIncHJvY2Vzc0xpbmtUeXBlRGlzYWJsZWRUb29sdGlwLicgKyBwcm9jZXNzTGlua1R5cGVJZCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW29uQm90dG9tXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwRGlzYWJsZWRdPVwiYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlLmVuYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ3Byb2Nlc3NMaW5rVHlwZS4nICsgcHJvY2Vzc0xpbmtUeXBlSWQgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAqbmdJZj1cInByb2Nlc3NMaW5rVHlwZUlkID09PSAncGx1Z2luJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImNkcy0tYnRuX19pY29uXCJcbiAgICAgICAgICAgIGNkc0ljb249XCJsaW5rXCJcbiAgICAgICAgICAgIHNpemU9XCIxNlwiXG4gICAgICAgICAgPjwvc3ZnPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICpuZ0lmPVwicHJvY2Vzc0xpbmtUeXBlSWQgPT09ICdmb3JtJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImNkcy0tYnRuX19pY29uXCJcbiAgICAgICAgICAgIGNkc0ljb249XCJyZWNlaXB0XCJcbiAgICAgICAgICAgIHNpemU9XCIxNlwiXG4gICAgICAgICAgPjwvc3ZnPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICpuZ0lmPVwicHJvY2Vzc0xpbmtUeXBlSWQgPT09ICdmb3JtLWZsb3cnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIlxuICAgICAgICAgICAgY2RzSWNvbj1cImZsb3ctLWRhdGFcIlxuICAgICAgICAgICAgc2l6ZT1cIjE2XCJcbiAgICAgICAgICA+PC9zdmc+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgKm5nSWY9XCJwcm9jZXNzTGlua1R5cGVJZCA9PT0gJ3VpLWNvbXBvbmVudCdcIlxuICAgICAgICAgICAgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiXG4gICAgICAgICAgICBjZHNJY29uPVwicmVjZWlwdFwiXG4gICAgICAgICAgICBzaXplPVwiMTZcIlxuICAgICAgICAgID48L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -8,6 +8,7 @@ import * as i3 from "@ngx-translate/core";
8
8
  import * as i4 from "@angular/common";
9
9
  import * as i5 from "carbon-components-angular";
10
10
  import * as i6 from "carbon-components-angular/dropdown";
11
+ import * as i7 from "@valtimo/components";
11
12
  export class FormDisplayConfigurationComponent {
12
13
  constructor(buttonService, configService, stateService, translateService) {
13
14
  this.buttonService = buttonService;
@@ -16,8 +17,11 @@ export class FormDisplayConfigurationComponent {
16
17
  this.translateService = translateService;
17
18
  this.formDisplayValue = new EventEmitter();
18
19
  this.formSizeValue = new EventEmitter();
20
+ this.subtitlesValue = new EventEmitter();
19
21
  this.formDisplayValue$ = new BehaviorSubject(null);
20
22
  this.formSizeValue$ = new BehaviorSubject(null);
23
+ this._subtitles$ = new BehaviorSubject([]);
24
+ this.subtitles$ = this._subtitles$.pipe(map(subtitles => subtitles.map(subtitle => ({ value: subtitle }))));
21
25
  this.disableFormSizeInput$ = new BehaviorSubject(true);
22
26
  this.saving$ = this.stateService.saving$;
23
27
  this.taskPanelEnabled$ = new BehaviorSubject(false);
@@ -54,8 +58,9 @@ export class FormDisplayConfigurationComponent {
54
58
  this.disableFormSizeInput$.next(false);
55
59
  if (selectedProcessLink.activityType.includes('bpmn:UserTask'))
56
60
  this.isUserTask$.next(true);
57
- this.formDisplayValue$.next(selectedProcessLink.formDisplayType);
58
- this.formSizeValue$.next(selectedProcessLink.formSize);
61
+ this.formDisplayValue$.next(selectedProcessLink.formDisplayType ?? null);
62
+ this.formSizeValue$.next(selectedProcessLink.formSize ?? null);
63
+ this._subtitles$.next(selectedProcessLink.subtitles ?? []);
59
64
  }
60
65
  }));
61
66
  }
@@ -70,6 +75,9 @@ export class FormDisplayConfigurationComponent {
70
75
  this.updateFormSize(event?.key);
71
76
  this.enableSaveButtonWhenValid();
72
77
  }
78
+ onSubtitlesChange(subtitles) {
79
+ this.subtitlesValue.emit(subtitles);
80
+ }
73
81
  updateFormDisplayType(formDisplayType) {
74
82
  formDisplayType ? this.disableFormSizeInput$.next(false) : this.resetFormSize();
75
83
  this.formDisplayValue$.next(formDisplayType);
@@ -94,16 +102,18 @@ export class FormDisplayConfigurationComponent {
94
102
  }
95
103
  }
96
104
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormDisplayConfigurationComponent, deps: [{ token: i1.ProcessLinkButtonService }, { token: i2.ConfigService }, { token: i1.ProcessLinkStateService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FormDisplayConfigurationComponent, selector: "valtimo-form-display-configuration", inputs: { selectedFormDefinition: "selectedFormDefinition" }, outputs: { formDisplayValue: "formDisplayValue", formSizeValue: "formSizeValue" }, ngImport: i0, template: "<ng-container\n *ngIf=\"{\n formDisplayValue: formDisplayValue$ | async,\n formDisplayTypeListItems: formDisplayTypeListItems$ | async,\n formSizeListItems: formSizeListItems$ | async,\n disableFormSizeInput: disableFormSizeInput$ | async,\n isUserTask: isUserTask$ | async,\n taskPanelEnabled: taskPanelEnabled$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n @if (obs.taskPanelEnabled && obs.isUserTask) {\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.displayType.placeholder' | translate\"\n [label]=\"'processLinkSteps.displayType.label' | translate\"\n [disabled]=\"obs.saving\"\n (selected)=\"selectFormDisplayType($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formDisplayTypeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n <br />\n\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.formSize.placeholder' | translate\"\n [label]=\"'processLinkSteps.formSize.label' | translate\"\n [disabled]=\"obs.disableFormSizeInput || obs.saving\"\n (selected)=\"selectFormSize($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formSizeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n }\n</ng-container>\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: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FormDisplayConfigurationComponent, selector: "valtimo-form-display-configuration", inputs: { selectedFormDefinition: "selectedFormDefinition" }, outputs: { formDisplayValue: "formDisplayValue", formSizeValue: "formSizeValue", subtitlesValue: "subtitlesValue" }, ngImport: i0, template: "<ng-container\n *ngIf=\"{\n formDisplayValue: formDisplayValue$ | async,\n formDisplayTypeListItems: formDisplayTypeListItems$ | async,\n formSizeListItems: formSizeListItems$ | async,\n disableFormSizeInput: disableFormSizeInput$ | async,\n subtitles: subtitles$ | async,\n isUserTask: isUserTask$ | async,\n taskPanelEnabled: taskPanelEnabled$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n @if (obs.taskPanelEnabled && obs.isUserTask) {\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.displayType.placeholder' | translate\"\n [label]=\"'processLinkSteps.displayType.label' | translate\"\n [disabled]=\"obs.saving\"\n (selected)=\"selectFormDisplayType($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formDisplayTypeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n\n <br />\n\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.formSize.placeholder' | translate\"\n [label]=\"'processLinkSteps.formSize.label' | translate\"\n [disabled]=\"obs.disableFormSizeInput || obs.saving\"\n (selected)=\"selectFormSize($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formSizeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n\n <br />\n\n <valtimo-carbon-multi-input\n type=\"value\"\n titleTranslationKey=\"processLinkSteps.subtitles\"\n addRowTranslationKey=\"processLinkSteps.addSubtitle\"\n [disabled]=\"obs.saving\"\n [fullWidth]=\"true\"\n [minimumAmountOfRows]=\"0\"\n [initialAmountOfRows]=\"0\"\n [defaultValues]=\"obs.subtitles\"\n (valueChange)=\"onSubtitlesChange($event)\"\n ></valtimo-carbon-multi-input>\n }\n</ng-container>\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.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["addRowText", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorDocumentDefinitionName", "valuePathSelectorPrefixes", "valuePathSelectorShowDocumentDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
98
106
  }
99
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormDisplayConfigurationComponent, decorators: [{
100
108
  type: Component,
101
- args: [{ selector: 'valtimo-form-display-configuration', template: "<ng-container\n *ngIf=\"{\n formDisplayValue: formDisplayValue$ | async,\n formDisplayTypeListItems: formDisplayTypeListItems$ | async,\n formSizeListItems: formSizeListItems$ | async,\n disableFormSizeInput: disableFormSizeInput$ | async,\n isUserTask: isUserTask$ | async,\n taskPanelEnabled: taskPanelEnabled$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n @if (obs.taskPanelEnabled && obs.isUserTask) {\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.displayType.placeholder' | translate\"\n [label]=\"'processLinkSteps.displayType.label' | translate\"\n [disabled]=\"obs.saving\"\n (selected)=\"selectFormDisplayType($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formDisplayTypeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n <br />\n\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.formSize.placeholder' | translate\"\n [label]=\"'processLinkSteps.formSize.label' | translate\"\n [disabled]=\"obs.disableFormSizeInput || obs.saving\"\n (selected)=\"selectFormSize($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formSizeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n }\n</ng-container>\n" }]
109
+ args: [{ selector: 'valtimo-form-display-configuration', template: "<ng-container\n *ngIf=\"{\n formDisplayValue: formDisplayValue$ | async,\n formDisplayTypeListItems: formDisplayTypeListItems$ | async,\n formSizeListItems: formSizeListItems$ | async,\n disableFormSizeInput: disableFormSizeInput$ | async,\n subtitles: subtitles$ | async,\n isUserTask: isUserTask$ | async,\n taskPanelEnabled: taskPanelEnabled$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n @if (obs.taskPanelEnabled && obs.isUserTask) {\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.displayType.placeholder' | translate\"\n [label]=\"'processLinkSteps.displayType.label' | translate\"\n [disabled]=\"obs.saving\"\n (selected)=\"selectFormDisplayType($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formDisplayTypeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n\n <br />\n\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.formSize.placeholder' | translate\"\n [label]=\"'processLinkSteps.formSize.label' | translate\"\n [disabled]=\"obs.disableFormSizeInput || obs.saving\"\n (selected)=\"selectFormSize($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formSizeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n\n <br />\n\n <valtimo-carbon-multi-input\n type=\"value\"\n titleTranslationKey=\"processLinkSteps.subtitles\"\n addRowTranslationKey=\"processLinkSteps.addSubtitle\"\n [disabled]=\"obs.saving\"\n [fullWidth]=\"true\"\n [minimumAmountOfRows]=\"0\"\n [initialAmountOfRows]=\"0\"\n [defaultValues]=\"obs.subtitles\"\n (valueChange)=\"onSubtitlesChange($event)\"\n ></valtimo-carbon-multi-input>\n }\n</ng-container>\n" }]
102
110
  }], ctorParameters: () => [{ type: i1.ProcessLinkButtonService }, { type: i2.ConfigService }, { type: i1.ProcessLinkStateService }, { type: i3.TranslateService }], propDecorators: { selectedFormDefinition: [{
103
111
  type: Input
104
112
  }], formDisplayValue: [{
105
113
  type: Output
106
114
  }], formSizeValue: [{
107
115
  type: Output
116
+ }], subtitlesValue: [{
117
+ type: Output
108
118
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kaXNwbGF5LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wcm9jZXNzLWxpbmsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZGlzcGxheS1jb25maWd1cmF0aW9uL2Zvcm0tZGlzcGxheS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWRpc3BsYXktY29uZmlndXJhdGlvbi9mb3JtLWRpc3BsYXktY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFLOUUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQU9uQyxNQUFNLE9BQU8saUNBQWlDO0lBMkM1QyxZQUNtQixhQUF1QyxFQUN2QyxhQUE0QixFQUM1QixZQUFxQyxFQUNyQyxnQkFBa0M7UUFIbEMsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQUNyQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBNUNwQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzlDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU1QyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBeUIsSUFBSSxDQUFDLENBQUM7UUFDdEUs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Q0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixJQUNFLElBQUksQ0FBQyxzQkFBc0I7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxFQUM5QixDQUFDO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDOytHQS9HVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQywyTkNiOUMscXRDQWdDQTs7NEZEbkJhLGlDQUFpQztrQkFKN0MsU0FBUzsrQkFDRSxvQ0FBb0M7OExBSTlCLHNCQUFzQjtzQkFBckMsS0FBSztnQkFFVyxnQkFBZ0I7c0JBQWhDLE1BQU07Z0JBQ1UsYUFBYTtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGb3JtRGVmaW5pdGlvbkxpc3RJdGVtLCBGb3JtRGlzcGxheVR5cGUsIEZvcm1TaXplfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7UHJvY2Vzc0xpbmtCdXR0b25TZXJ2aWNlLCBQcm9jZXNzTGlua1N0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtMaXN0SXRlbX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWZvcm0tZGlzcGxheS1jb25maWd1cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZGlzcGxheS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybURpc3BsYXlDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRGb3JtRGVmaW5pdGlvbjogRm9ybURlZmluaXRpb25MaXN0SXRlbTtcblxuICBAT3V0cHV0KCkgcHVibGljIGZvcm1EaXNwbGF5VmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBmb3JtU2l6ZVZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1EaXNwbGF5VmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRGlzcGxheVR5cGUgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1TaXplVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtU2l6ZSB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZUZvcm1TaXplSW5wdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNhdmluZyQgPSB0aGlzLnN0YXRlU2VydmljZS5zYXZpbmckO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFza1BhbmVsRW5hYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGlzVXNlclRhc2skID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfRElTUExBWV9UWVBFX09QVElPTlM6IEZvcm1EaXNwbGF5VHlwZVtdID0gWydtb2RhbCcsICdwYW5lbCddO1xuICBwcml2YXRlIHJlYWRvbmx5IF9GT1JNX1NJWkVfT1BUSU9OUzogRm9ybVNpemVbXSA9IFsnZXh0cmFTbWFsbCcsICdzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybURpc3BsYXlUeXBlTGlzdEl0ZW1zJDogT2JzZXJ2YWJsZTxMaXN0SXRlbVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuZm9ybURpc3BsYXlWYWx1ZSQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbZm9ybURpc3BsYXlWYWx1ZV0pID0+XG4gICAgICB0aGlzLl9ESVNQTEFZX1RZUEVfT1BUSU9OUy5tYXAoKGtleTogc3RyaW5nKSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgcHJvY2Vzc0xpbmtTdGVwcy5kaXNwbGF5VHlwZS5vcHRpb25zLiR7a2V5fWApLFxuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuZm9ybURpc3BsYXlWYWx1ZSQuZ2V0VmFsdWUoKSA9PT0ga2V5LFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtU2l6ZUxpc3RJdGVtcyQ6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmZvcm1TaXplVmFsdWUkLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2Zvcm1TaXplVmFsdWVdKSA9PlxuICAgICAgdGhpcy5fRk9STV9TSVpFX09QVElPTlMubWFwKChrZXk6IHN0cmluZykgPT4gKHtcbiAgICAgICAgY29udGVudDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYHByb2Nlc3NMaW5rU3RlcHMuZm9ybVNpemUub3B0aW9ucy4ke2tleX1gKSxcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIHNlbGVjdGVkOiB0aGlzLmZvcm1TaXplVmFsdWUkLmdldFZhbHVlKCkgPT09IGtleSxcbiAgICAgIH0pKVxuICAgIClcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJ1dHRvblNlcnZpY2U6IFByb2Nlc3NMaW5rQnV0dG9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnRhc2tQYW5lbEVuYWJsZWQkLm5leHQoISF0aGlzLmNvbmZpZ1NlcnZpY2UuZmVhdHVyZVRvZ2dsZXM/LmVuYWJsZVRhc2tQYW5lbCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UubW9kYWxQYXJhbXMkLFxuICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFByb2Nlc3NMaW5rJCxcbiAgICAgIF0pLnN1YnNjcmliZSgoW21vZGFsUGFyYW1zLCBzZWxlY3RlZFByb2Nlc3NMaW5rXSkgPT4ge1xuICAgICAgICB0aGlzLmlzVXNlclRhc2skLm5leHQobW9kYWxQYXJhbXM/LmVsZW1lbnQ/LnR5cGUgPT09ICdicG1uOlVzZXJUYXNrJyk7XG5cbiAgICAgICAgaWYgKHNlbGVjdGVkUHJvY2Vzc0xpbmspIHtcbiAgICAgICAgICBpZiAoc2VsZWN0ZWRQcm9jZXNzTGluay5mb3JtRGlzcGxheVR5cGUpIHRoaXMuZGlzYWJsZUZvcm1TaXplSW5wdXQkLm5leHQoZmFsc2UpO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2Nlc3NMaW5rLmFjdGl2aXR5VHlwZS5pbmNsdWRlcygnYnBtbjpVc2VyVGFzaycpKVxuICAgICAgICAgICAgdGhpcy5pc1VzZXJUYXNrJC5uZXh0KHRydWUpO1xuICAgICAgICAgIHRoaXMuZm9ybURpc3BsYXlWYWx1ZSQubmV4dChzZWxlY3RlZFByb2Nlc3NMaW5rLmZvcm1EaXNwbGF5VHlwZSk7XG4gICAgICAgICAgdGhpcy5mb3JtU2l6ZVZhbHVlJC5uZXh0KHNlbGVjdGVkUHJvY2Vzc0xpbmsuZm9ybVNpemUpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEZvcm1EaXNwbGF5VHlwZShldmVudDogTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZvcm1EaXNwbGF5VHlwZShldmVudD8ua2V5KTtcbiAgICB0aGlzLmVuYWJsZVNhdmVCdXR0b25XaGVuVmFsaWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RGb3JtU2l6ZShldmVudDogTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZvcm1TaXplKGV2ZW50Py5rZXkpO1xuICAgIHRoaXMuZW5hYmxlU2F2ZUJ1dHRvbldoZW5WYWxpZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtRGlzcGxheVR5cGUoZm9ybURpc3BsYXlUeXBlKTogdm9pZCB7XG4gICAgZm9ybURpc3BsYXlUeXBlID8gdGhpcy5kaXNhYmxlRm9ybVNpemVJbnB1dCQubmV4dChmYWxzZSkgOiB0aGlzLnJlc2V0Rm9ybVNpemUoKTtcbiAgICB0aGlzLmZvcm1EaXNwbGF5VmFsdWUkLm5leHQoZm9ybURpc3BsYXlUeXBlKTtcbiAgICB0aGlzLmZvcm1EaXNwbGF5VmFsdWUuZW1pdChmb3JtRGlzcGxheVR5cGUpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtU2l6ZShmb3JtU2l6ZSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVNpemVWYWx1ZSQubmV4dChmb3JtU2l6ZSk7XG4gICAgdGhpcy5mb3JtU2l6ZVZhbHVlLmVtaXQoZm9ybVNpemUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldEZvcm1TaXplKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUZvcm1TaXplSW5wdXQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy51cGRhdGVGb3JtU2l6ZShudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlU2F2ZUJ1dHRvbldoZW5WYWxpZCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlbGVjdGVkRm9ybURlZmluaXRpb24gJiZcbiAgICAgIHRoaXMuZm9ybURpc3BsYXlWYWx1ZSQuZ2V0VmFsdWUoKSAmJlxuICAgICAgdGhpcy5mb3JtU2l6ZVZhbHVlJC5nZXRWYWx1ZSgpXG4gICAgKSB7XG4gICAgICB0aGlzLmJ1dHRvblNlcnZpY2UuZW5hYmxlU2F2ZUJ1dHRvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1dHRvblNlcnZpY2UuZGlzYWJsZVNhdmVCdXR0b24oKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZm9ybURpc3BsYXlWYWx1ZTogZm9ybURpc3BsYXlWYWx1ZSQgfCBhc3luYyxcbiAgICBmb3JtRGlzcGxheVR5cGVMaXN0SXRlbXM6IGZvcm1EaXNwbGF5VHlwZUxpc3RJdGVtcyQgfCBhc3luYyxcbiAgICBmb3JtU2l6ZUxpc3RJdGVtczogZm9ybVNpemVMaXN0SXRlbXMkIHwgYXN5bmMsXG4gICAgZGlzYWJsZUZvcm1TaXplSW5wdXQ6IGRpc2FibGVGb3JtU2l6ZUlucHV0JCB8IGFzeW5jLFxuICAgIGlzVXNlclRhc2s6IGlzVXNlclRhc2skIHwgYXN5bmMsXG4gICAgdGFza1BhbmVsRW5hYmxlZDogdGFza1BhbmVsRW5hYmxlZCQgfCBhc3luYyxcbiAgICBzYXZpbmc6IHNhdmluZyQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuPlxuICBAaWYgKG9icy50YXNrUGFuZWxFbmFibGVkICYmIG9icy5pc1VzZXJUYXNrKSB7XG4gICAgPGNkcy1jb21iby1ib3hcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIncHJvY2Vzc0xpbmtTdGVwcy5kaXNwbGF5VHlwZS5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2xhYmVsXT1cIidwcm9jZXNzTGlua1N0ZXBzLmRpc3BsYXlUeXBlLmxhYmVsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwib2JzLnNhdmluZ1wiXG4gICAgICAoc2VsZWN0ZWQpPVwic2VsZWN0Rm9ybURpc3BsYXlUeXBlKCRldmVudClcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzLmZvcm1EaXNwbGF5VHlwZUxpc3RJdGVtcyB8fCBbXVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtY29tYm8tYm94PlxuICAgIDxiciAvPlxuXG4gICAgPGNkcy1jb21iby1ib3hcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIncHJvY2Vzc0xpbmtTdGVwcy5mb3JtU2l6ZS5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2xhYmVsXT1cIidwcm9jZXNzTGlua1N0ZXBzLmZvcm1TaXplLmxhYmVsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVGb3JtU2l6ZUlucHV0IHx8IG9icy5zYXZpbmdcIlxuICAgICAgKHNlbGVjdGVkKT1cInNlbGVjdEZvcm1TaXplKCRldmVudClcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzLmZvcm1TaXplTGlzdEl0ZW1zIHx8IFtdXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICA8L2Nkcy1jb21iby1ib3g+XG4gIH1cbjwvbmctY29udGFpbmVyPlxuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kaXNwbGF5LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wcm9jZXNzLWxpbmsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZGlzcGxheS1jb25maWd1cmF0aW9uL2Zvcm0tZGlzcGxheS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWRpc3BsYXktY29uZmlndXJhdGlvbi9mb3JtLWRpc3BsYXktY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUl4RixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFTbkMsTUFBTSxPQUFPLGlDQUFpQztJQWdENUMsWUFDbUIsYUFBdUMsRUFDdkMsYUFBNEIsRUFDNUIsWUFBcUMsRUFDckMsZ0JBQWtDO1FBSGxDLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFDckMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWpEcEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDM0MsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRS9DLHNCQUFpQixHQUFH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QixNQUFNO2dCQUNVLGNBQWM7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtMaXN0SXRlbX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0Zvcm1EZWZpbml0aW9uTGlzdEl0ZW0sIEZvcm1EaXNwbGF5VHlwZSwgRm9ybVNpemV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1Byb2Nlc3NMaW5rQnV0dG9uU2VydmljZSwgUHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7TXVsdGlJbnB1dFZhbHVlc30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZm9ybS1kaXNwbGF5LWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1kaXNwbGF5LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRGlzcGxheUNvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZEZvcm1EZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbkxpc3RJdGVtO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgZm9ybURpc3BsYXlWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGZvcm1TaXplVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzdWJ0aXRsZXNWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1EaXNwbGF5VmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRGlzcGxheVR5cGUgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1TaXplVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtU2l6ZSB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJ0aXRsZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuICBwdWJsaWMgc3VidGl0bGVzJDogT2JzZXJ2YWJsZTxNdWx0aUlucHV0VmFsdWVzPiA9IHRoaXMuX3N1YnRpdGxlcyQucGlwZShcbiAgICBtYXAoc3VidGl0bGVzID0+IHN1YnRpdGxlcy5tYXAoc3VidGl0bGUgPT4gKHt2YWx1ZTogc3VidGl0bGV9KSkpXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBkaXNhYmxlRm9ybVNpemVJbnB1dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2F2aW5nJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnNhdmluZyQ7XG4gIHB1YmxpYyByZWFkb25seSB0YXNrUGFuZWxFbmFibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNVc2VyVGFzayQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ESVNQTEFZX1RZUEVfT1BUSU9OUzogRm9ybURpc3BsYXlUeXBlW10gPSBbJ21vZGFsJywgJ3BhbmVsJ107XG4gIHByaXZhdGUgcmVhZG9ubHkgX0ZPUk1fU0laRV9PUFRJT05TOiBGb3JtU2l6ZVtdID0gWydleHRyYVNtYWxsJywgJ3NtYWxsJywgJ21lZGl1bScsICdsYXJnZSddO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtRGlzcGxheVR5cGVMaXN0SXRlbXMkOiBPYnNlcnZhYmxlPExpc3RJdGVtW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5mb3JtRGlzcGxheVZhbHVlJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtmb3JtRGlzcGxheVZhbHVlXSkgPT5cbiAgICAgIHRoaXMuX0RJU1BMQVlfVFlQRV9PUFRJT05TLm1hcCgoa2V5OiBzdHJpbmcpID0+ICh7XG4gICAgICAgIGNvbnRlbnQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBwcm9jZXNzTGlua1N0ZXBzLmRpc3BsYXlUeXBlLm9wdGlvbnMuJHtrZXl9YCksXG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBzZWxlY3RlZDogdGhpcy5mb3JtRGlzcGxheVZhbHVlJC5nZXRWYWx1ZSgpID09PSBrZXksXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1TaXplTGlzdEl0ZW1zJDogT2JzZXJ2YWJsZTxMaXN0SXRlbVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuZm9ybVNpemVWYWx1ZSQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbZm9ybVNpemVWYWx1ZV0pID0+XG4gICAgICB0aGlzLl9GT1JNX1NJWkVfT1BUSU9OUy5tYXAoKGtleTogc3RyaW5nKSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgcHJvY2Vzc0xpbmtTdGVwcy5mb3JtU2l6ZS5vcHRpb25zLiR7a2V5fWApLFxuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuZm9ybVNpemVWYWx1ZSQuZ2V0VmFsdWUoKSA9PT0ga2V5LFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnV0dG9uU2VydmljZTogUHJvY2Vzc0xpbmtCdXR0b25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogUHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudGFza1BhbmVsRW5hYmxlZCQubmV4dCghIXRoaXMuY29uZmlnU2VydmljZS5mZWF0dXJlVG9nZ2xlcz8uZW5hYmxlVGFza1BhbmVsKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5tb2RhbFBhcmFtcyQsXG4gICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUHJvY2Vzc0xpbmskLFxuICAgICAgXSkuc3Vic2NyaWJlKChbbW9kYWxQYXJhbXMsIHNlbGVjdGVkUHJvY2Vzc0xpbmtdKSA9PiB7XG4gICAgICAgIHRoaXMuaXNVc2VyVGFzayQubmV4dChtb2RhbFBhcmFtcz8uZWxlbWVudD8udHlwZSA9PT0gJ2JwbW46VXNlclRhc2snKTtcblxuICAgICAgICBpZiAoc2VsZWN0ZWRQcm9jZXNzTGluaykge1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2Nlc3NMaW5rLmZvcm1EaXNwbGF5VHlwZSkgdGhpcy5kaXNhYmxlRm9ybVNpemVJbnB1dCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkUHJvY2Vzc0xpbmsuYWN0aXZpdHlUeXBlLmluY2x1ZGVzKCdicG1uOlVzZXJUYXNrJykpXG4gICAgICAgICAgICB0aGlzLmlzVXNlclRhc2skLm5leHQodHJ1ZSk7XG4gICAgICAgICAgdGhpcy5mb3JtRGlzcGxheVZhbHVlJC5uZXh0KHNlbGVjdGVkUHJvY2Vzc0xpbmsuZm9ybURpc3BsYXlUeXBlID8/IG51bGwpO1xuICAgICAgICAgIHRoaXMuZm9ybVNpemVWYWx1ZSQubmV4dChzZWxlY3RlZFByb2Nlc3NMaW5rLmZvcm1TaXplID8/IG51bGwpO1xuICAgICAgICAgIHRoaXMuX3N1YnRpdGxlcyQubmV4dChzZWxlY3RlZFByb2Nlc3NMaW5rLnN1YnRpdGxlcyA/PyBbXSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0Rm9ybURpc3BsYXlUeXBlKGV2ZW50OiBMaXN0SXRlbSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRm9ybURpc3BsYXlUeXBlKGV2ZW50Py5rZXkpO1xuICAgIHRoaXMuZW5hYmxlU2F2ZUJ1dHRvbldoZW5WYWxpZCgpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEZvcm1TaXplKGV2ZW50OiBMaXN0SXRlbSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRm9ybVNpemUoZXZlbnQ/LmtleSk7XG4gICAgdGhpcy5lbmFibGVTYXZlQnV0dG9uV2hlblZhbGlkKCk7XG4gIH1cblxuICBwdWJsaWMgb25TdWJ0aXRsZXNDaGFuZ2Uoc3VidGl0bGVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuc3VidGl0bGVzVmFsdWUuZW1pdChzdWJ0aXRsZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtRGlzcGxheVR5cGUoZm9ybURpc3BsYXlUeXBlKTogdm9pZCB7XG4gICAgZm9ybURpc3BsYXlUeXBlID8gdGhpcy5kaXNhYmxlRm9ybVNpemVJbnB1dCQubmV4dChmYWxzZSkgOiB0aGlzLnJlc2V0Rm9ybVNpemUoKTtcbiAgICB0aGlzLmZvcm1EaXNwbGF5VmFsdWUkLm5leHQoZm9ybURpc3BsYXlUeXBlKTtcbiAgICB0aGlzLmZvcm1EaXNwbGF5VmFsdWUuZW1pdChmb3JtRGlzcGxheVR5cGUpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtU2l6ZShmb3JtU2l6ZSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVNpemVWYWx1ZSQubmV4dChmb3JtU2l6ZSk7XG4gICAgdGhpcy5mb3JtU2l6ZVZhbHVlLmVtaXQoZm9ybVNpemUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldEZvcm1TaXplKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUZvcm1TaXplSW5wdXQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy51cGRhdGVGb3JtU2l6ZShudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlU2F2ZUJ1dHRvbldoZW5WYWxpZCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlbGVjdGVkRm9ybURlZmluaXRpb24gJiZcbiAgICAgIHRoaXMuZm9ybURpc3BsYXlWYWx1ZSQuZ2V0VmFsdWUoKSAmJlxuICAgICAgdGhpcy5mb3JtU2l6ZVZhbHVlJC5nZXRWYWx1ZSgpXG4gICAgKSB7XG4gICAgICB0aGlzLmJ1dHRvblNlcnZpY2UuZW5hYmxlU2F2ZUJ1dHRvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1dHRvblNlcnZpY2UuZGlzYWJsZVNhdmVCdXR0b24oKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZm9ybURpc3BsYXlWYWx1ZTogZm9ybURpc3BsYXlWYWx1ZSQgfCBhc3luYyxcbiAgICBmb3JtRGlzcGxheVR5cGVMaXN0SXRlbXM6IGZvcm1EaXNwbGF5VHlwZUxpc3RJdGVtcyQgfCBhc3luYyxcbiAgICBmb3JtU2l6ZUxpc3RJdGVtczogZm9ybVNpemVMaXN0SXRlbXMkIHwgYXN5bmMsXG4gICAgZGlzYWJsZUZvcm1TaXplSW5wdXQ6IGRpc2FibGVGb3JtU2l6ZUlucHV0JCB8IGFzeW5jLFxuICAgIHN1YnRpdGxlczogc3VidGl0bGVzJCB8IGFzeW5jLFxuICAgIGlzVXNlclRhc2s6IGlzVXNlclRhc2skIHwgYXN5bmMsXG4gICAgdGFza1BhbmVsRW5hYmxlZDogdGFza1BhbmVsRW5hYmxlZCQgfCBhc3luYyxcbiAgICBzYXZpbmc6IHNhdmluZyQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuPlxuICBAaWYgKG9icy50YXNrUGFuZWxFbmFibGVkICYmIG9icy5pc1VzZXJUYXNrKSB7XG4gICAgPGNkcy1jb21iby1ib3hcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIncHJvY2Vzc0xpbmtTdGVwcy5kaXNwbGF5VHlwZS5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2xhYmVsXT1cIidwcm9jZXNzTGlua1N0ZXBzLmRpc3BsYXlUeXBlLmxhYmVsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwib2JzLnNhdmluZ1wiXG4gICAgICAoc2VsZWN0ZWQpPVwic2VsZWN0Rm9ybURpc3BsYXlUeXBlKCRldmVudClcIlxuICAgID5cbiAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzLmZvcm1EaXNwbGF5VHlwZUxpc3RJdGVtcyB8fCBbXVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtY29tYm8tYm94PlxuXG4gICAgPGJyIC8+XG5cbiAgICA8Y2RzLWNvbWJvLWJveFxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidwcm9jZXNzTGlua1N0ZXBzLmZvcm1TaXplLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbbGFiZWxdPVwiJ3Byb2Nlc3NMaW5rU3RlcHMuZm9ybVNpemUubGFiZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZUZvcm1TaXplSW5wdXQgfHwgb2JzLnNhdmluZ1wiXG4gICAgICAoc2VsZWN0ZWQpPVwic2VsZWN0Rm9ybVNpemUoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJvYnMuZm9ybVNpemVMaXN0SXRlbXMgfHwgW11cIj48L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgIDwvY2RzLWNvbWJvLWJveD5cblxuICAgIDxiciAvPlxuXG4gICAgPHZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0XG4gICAgICB0eXBlPVwidmFsdWVcIlxuICAgICAgdGl0bGVUcmFuc2xhdGlvbktleT1cInByb2Nlc3NMaW5rU3RlcHMuc3VidGl0bGVzXCJcbiAgICAgIGFkZFJvd1RyYW5zbGF0aW9uS2V5PVwicHJvY2Vzc0xpbmtTdGVwcy5hZGRTdWJ0aXRsZVwiXG4gICAgICBbZGlzYWJsZWRdPVwib2JzLnNhdmluZ1wiXG4gICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW21pbmltdW1BbW91bnRPZlJvd3NdPVwiMFwiXG4gICAgICBbaW5pdGlhbEFtb3VudE9mUm93c109XCIwXCJcbiAgICAgIFtkZWZhdWx0VmFsdWVzXT1cIm9icy5zdWJ0aXRsZXNcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uU3VidGl0bGVzQ2hhbmdlKCRldmVudClcIlxuICAgID48L3ZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0PlxuICB9XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { Component, EventEmitter, Output } from '@angular/core';
16
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
17
17
  import { combineLatest, Subscription } from 'rxjs';
18
18
  import { map, take } from 'rxjs/operators';
19
19
  import * as i0 from "@angular/core";
@@ -113,14 +113,16 @@ export class PluginActionConfigurationComponent {
113
113
  }));
114
114
  }
115
115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginActionConfigurationComponent, deps: [{ token: i1.ProcessLinkStateService }, { token: i1.PluginStateService }, { token: i1.ProcessLinkButtonService }, { token: i1.ProcessLinkStepService }, { token: i1.ProcessLinkService }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginActionConfigurationComponent, selector: "valtimo-plugin-action-configuration", outputs: { valid: "valid", configuration: "configuration" }, 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<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n [functionKey]=\"functionKey$ | async\"\n [save$]=\"save$\"\n [disabled$]=\"saving$\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n type=\"function\"\n></valtimo-plugin-configuration-container>\n", styles: ["/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "component", type: i2.PluginConfigurationContainerComponent, selector: "valtimo-plugin-configuration-container", inputs: ["type", "pluginDefinitionKey", "functionKey", "save$", "disabled$", "prefillConfiguration$"], outputs: ["valid", "configuration"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginActionConfigurationComponent, selector: "valtimo-plugin-action-configuration", inputs: { selectedPluginConfiguration$: "selectedPluginConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, 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<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n [functionKey]=\"functionKey$ | async\"\n [save$]=\"save$\"\n [disabled$]=\"saving$\"\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n type=\"function\"\n></valtimo-plugin-configuration-container>\n", styles: ["/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "component", type: i2.PluginConfigurationContainerComponent, selector: "valtimo-plugin-configuration-container", inputs: ["type", "pluginDefinitionKey", "functionKey", "save$", "disabled$", "selectedPluginConfiguration$", "prefillConfiguration$"], outputs: ["valid", "configuration"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
117
117
  }
118
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginActionConfigurationComponent, decorators: [{
119
119
  type: Component,
120
- args: [{ selector: 'valtimo-plugin-action-configuration', 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<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n [functionKey]=\"functionKey$ | async\"\n [save$]=\"save$\"\n [disabled$]=\"saving$\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n type=\"function\"\n></valtimo-plugin-configuration-container>\n", styles: ["/*!\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"] }]
121
- }], ctorParameters: () => [{ type: i1.ProcessLinkStateService }, { type: i1.PluginStateService }, { type: i1.ProcessLinkButtonService }, { type: i1.ProcessLinkStepService }, { type: i1.ProcessLinkService }], propDecorators: { valid: [{
120
+ args: [{ selector: 'valtimo-plugin-action-configuration', 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<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n [functionKey]=\"functionKey$ | async\"\n [save$]=\"save$\"\n [disabled$]=\"saving$\"\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n type=\"function\"\n></valtimo-plugin-configuration-container>\n", styles: ["/*!\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"] }]
121
+ }], ctorParameters: () => [{ type: i1.ProcessLinkStateService }, { type: i1.PluginStateService }, { type: i1.ProcessLinkButtonService }, { type: i1.ProcessLinkStepService }, { type: i1.ProcessLinkService }], propDecorators: { selectedPluginConfiguration$: [{
122
+ type: Input
123
+ }], valid: [{
122
124
  type: Output
123
125
  }], configuration: [{
124
126
  type: Output
125
127
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wbHVnaW4tYWN0aW9uLWNvbmZpZ3VyYXRpb24vcGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wbHVnaW4tYWN0aW9uLWNvbmZpZ3VyYXRpb24vcGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQVFqRixPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVN6QyxNQUFNLE9BQU8sa0NBQWtDO0lBZTdDLFlBQ21CLFlBQXFDLEVBQ3JDLGtCQUFzQyxFQUN0QyxhQUF1QyxFQUN2QyxXQUFtQyxFQUNuQyxrQkFBc0M7UUFKdEMsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBbkIvQyxVQUFLLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFDM0Qsa0JBQWEsR0FDckIsSUFBSSxZQUFZLEVBQTJC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U0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7K0dBdEhVLGtDQUFrQzttR0FBbEMsa0NBQWtDLHdJQ2xDL0MsbWhDQTBCQTs7NEZEUWEsa0NBQWtDO2tCQUw5QyxTQUFTOytCQUNFLHFDQUFxQzswT0FLckMsS0FBSztzQkFBZCxNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFBsdWdpblN0YXRlU2VydmljZSxcbiAgUHJvY2Vzc0xpbmtCdXR0b25TZXJ2aWNlLFxuICBQcm9jZXNzTGlua1NlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICBQcm9jZXNzTGlua1N0ZXBTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQbHVnaW5Db25maWd1cmF0aW9uRGF0YX0gZnJvbSAnQHZhbHRpbW8vcGx1Z2luJztcbmltcG9ydCB7UGx1Z2luUHJvY2Vzc0xpbmtDcmVhdGVEdG8sIFBsdWdpblByb2Nlc3NMaW5rVXBkYXRlRHRvfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXBsdWdpbi1hY3Rpb24tY29uZmlndXJhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbHVnaW4tYWN0aW9uLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wbHVnaW4tYWN0aW9uLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGx1Z2luQWN0aW9uQ29uZmlndXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpIHZhbGlkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBjb25maWd1cmF0aW9uOiBFdmVudEVtaXR0ZXI8UGx1Z2luQ29uZmlndXJhdGlvbkRhdGE+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPFBsdWdpbkNvbmZpZ3VyYXRpb25EYXRhPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBwbHVnaW5EZWZpbml0aW9uS2V5JCA9IHRoaXMucGx1Z2luU3RhdGVTZXJ2aWNlLnBsdWdpbkRlZmluaXRpb25LZXkkO1xuICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb25LZXkkID0gdGhpcy5wbHVnaW5TdGF0ZVNlcnZpY2UuZnVuY3Rpb25LZXkkO1xuICBwdWJsaWMgcmVhZG9ubHkgc2F2ZSQgPSB0aGlzLnBsdWdpblN0YXRlU2VydmljZS5zYXZlJDtcbiAgcHVibGljIHJlYWRvbmx5IHNhdmluZyQgPSB0aGlzLnN0YXRlU2VydmljZS5zYXZpbmckO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZmlsbENvbmZpZ3VyYXRpb24kID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQcm9jZXNzTGluayQucGlwZShcbiAgICBtYXAocHJvY2Vzc0xpbmsgPT4gKHByb2Nlc3NMaW5rID8gcHJvY2Vzc0xpbms/LmFjdGlvblByb3BlcnRpZXMgOiB1bmRlZmluZWQpKVxuICApO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luU3RhdGVTZXJ2aWNlOiBQbHVnaW5TdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBidXR0b25TZXJ2aWNlOiBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGVwU2VydmljZTogUHJvY2Vzc0xpbmtTdGVwU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3NMaW5rU2VydmljZTogUHJvY2Vzc0xpbmtTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5CYWNrQnV0dG9uU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5vcGVuU2F2ZUJ1dHRvblN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25WYWxpZCh2YWxpZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh2YWxpZCkge1xuICAgICAgdGhpcy5idXR0b25TZXJ2aWNlLmVuYWJsZVNhdmVCdXR0b24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5idXR0b25TZXJ2aWNlLmRpc2FibGVTYXZlQnV0dG9uKCk7XG4gICAgfVxuICB9XG5cbiAgb25Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IFBsdWdpbkNvbmZpZ3VyYXRpb25EYXRhKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhcnRTYXZpbmcoKTtcblxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUHJvY2Vzc0xpbmskLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHNlbGVjdGVkUHJvY2Vzc0xpbmsgPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkUHJvY2Vzc0xpbmspIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9jZXNzTGluayhjb25maWd1cmF0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2F2ZU5ld1Byb2Nlc3NMaW5rKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQcm9jZXNzTGluayhjb25maWd1cmF0aW9uOiBQbHVnaW5Db25maWd1cmF0aW9uRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUHJvY2Vzc0xpbmskLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHNlbGVjdGVkUHJvY2Vzc0xpbmsgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlUHJvY2Vzc0xpbmtSZXF1ZXN0OiBQbHVnaW5Qcm9jZXNzTGlua1VwZGF0ZUR0byA9IHtcbiAgICAgICAgaWQ6IHNlbGVjdGVkUHJvY2Vzc0xpbmsuaWQsXG4gICAgICAgIHBsdWdpbkNvbmZpZ3VyYXRpb25JZDogc2VsZWN0ZWRQcm9jZXNzTGluay5wbHVnaW5Db25maWd1cmF0aW9uSWQsXG4gICAgICAgIHBsdWdpbkFjdGlvbkRlZmluaXRpb25LZXk6IHNlbGVjdGVkUHJvY2Vzc0xpbmsucGx1Z2luQWN0aW9uRGVmaW5pdGlvbktleSxcbiAgICAgICAgYWN0aW9uUHJvcGVydGllczogY29uZmlndXJhdGlvbixcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucHJvY2Vzc0xpbmtTZXJ2aWNlLnVwZGF0ZVByb2Nlc3NMaW5rKHVwZGF0ZVByb2Nlc3NMaW5rUmVxdWVzdCkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuY2xvc2VNb2RhbCgpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc3RvcFNhdmluZygpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlTmV3UHJvY2Vzc0xpbmsoY29uZmlndXJhdGlvbjogUGx1Z2luQ29uZmlndXJhdGlvbkRhdGEpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLm1vZGFsUGFyYW1zJCxcbiAgICAgIHRoaXMucGx1Z2luU3RhdGVTZXJ2aWNlLnNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiQsXG4gICAgICB0aGlzLnBsdWdpblN0YXRlU2VydmljZS5zZWxlY3RlZFBsdWdpbkZ1bmN0aW9uJCxcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUHJvY2Vzc0xpbmtUeXBlSWQkLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKFttb2RhbERhdGEsIHNlbGVjdGVkQ29uZmlndXJhdGlvbiwgc2VsZWN0ZWRGdW5jdGlvbiwgc2VsZWN0ZWRQcm9jZXNzTGlua1R5cGVJZF0pID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9jZXNzTGlua1JlcXVlc3Q6IFBsdWdpblByb2Nlc3NMaW5rQ3JlYXRlRHRvID0ge1xuICAgICAgICAgICAgYWN0aW9uUHJvcGVydGllczogY29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIGFjdGl2aXR5SWQ6IG1vZGFsRGF0YT8uZWxlbWVudD8uaWQsXG4gICAgICAgICAgICBhY3Rpdml0eVR5cGU6IG1vZGFsRGF0YT8uZWxlbWVudD8uYWN0aXZpdHlMaXN0ZW5lclR5cGUsXG4gICAgICAgICAgICBwbHVnaW5Db25maWd1cmF0aW9uSWQ6IHNlbGVjdGVkQ29uZmlndXJhdGlvbi5pZCxcbiAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uSWQ6IG1vZGFsRGF0YT8ucHJvY2Vzc0RlZmluaXRpb25JZCxcbiAgICAgICAgICAgIHBsdWdpbkFjdGlvbkRlZmluaXRpb25LZXk6IHNlbGVjdGVkRnVuY3Rpb24ua2V5LFxuICAgICAgICAgICAgcHJvY2Vzc0xpbmtUeXBlOiBzZWxlY3RlZFByb2Nlc3NMaW5rVHlwZUlkLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICB0aGlzLnByb2Nlc3NMaW5rU2VydmljZS5zYXZlUHJvY2Vzc0xpbmsocHJvY2Vzc0xpbmtSZXF1ZXN0KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmNsb3NlTW9kYWwoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnN0b3BTYXZpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQmFja0J1dHRvblN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuYnV0dG9uU2VydmljZS5iYWNrQnV0dG9uQ2xpY2skLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RlcFNlcnZpY2Uuc2V0Q2hvb3NlUGx1Z2luQWN0aW9uU3RlcHMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblNhdmVCdXR0b25TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmJ1dHRvblNlcnZpY2Uuc2F2ZUJ1dHRvbkNsaWNrJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnBsdWdpblN0YXRlU2VydmljZS5zYXZlKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tcGx1Z2luLWNvbmZpZ3VyYXRpb24tY29udGFpbmVyXG4gIFtwbHVnaW5EZWZpbml0aW9uS2V5XT1cInBsdWdpbkRlZmluaXRpb25LZXkkIHwgYXN5bmNcIlxuICBbZnVuY3Rpb25LZXldPVwiZnVuY3Rpb25LZXkkIHwgYXN5bmNcIlxuICBbc2F2ZSRdPVwic2F2ZSRcIlxuICBbZGlzYWJsZWQkXT1cInNhdmluZyRcIlxuICBbcHJlZmlsbENvbmZpZ3VyYXRpb24kXT1cInByZWZpbGxDb25maWd1cmF0aW9uJFwiXG4gICh2YWxpZCk9XCJvblZhbGlkKCRldmVudClcIlxuICAoY29uZmlndXJhdGlvbik9XCJvbkNvbmZpZ3VyYXRpb24oJGV2ZW50KVwiXG4gIHR5cGU9XCJmdW5jdGlvblwiXG4+PC92YWx0aW1vLXBsdWdpbi1jb25maWd1cmF0aW9uLWNvbnRhaW5lcj5cbiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wbHVnaW4tYWN0aW9uLWNvbmZpZ3VyYXRpb24vcGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wbHVnaW4tYWN0aW9uLWNvbmZpZ3VyYXRpb24vcGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFReEYsT0FBTyxFQUFDLGFBQWEsRUFBYyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0QsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFTekMsTUFBTSxPQUFPLGtDQUFrQztJQWdCN0MsWUFDbUIsWUFBcUMsRUFDckMsa0JBQXNDLEVBQ3RDLGFBQXVDLEVBQ3ZDLFdBQW1DLEVBQ25DLGtCQUFzQztRQUp0QyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFDckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFuQi9DLFVBQUssR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMzRCxrQkFBYSxHQUNyQixJQUFJ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QkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzsrR0F2SFUsa0NBQWtDO21HQUFsQyxrQ0FBa0Msa05DbEMvQyxzbENBMkJBOzs0RkRPYSxrQ0FBa0M7a0JBTDlDLFNBQVM7K0JBQ0UscUNBQXFDOzBPQUt0Qyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBQbHVnaW5TdGF0ZVNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rQnV0dG9uU2VydmljZSxcbiAgUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICBQcm9jZXNzTGlua1N0YXRlU2VydmljZSxcbiAgUHJvY2Vzc0xpbmtTdGVwU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UGx1Z2luQ29uZmlndXJhdGlvbiwgUGx1Z2luQ29uZmlndXJhdGlvbkRhdGF9IGZyb20gJ0B2YWx0aW1vL3BsdWdpbic7XG5pbXBvcnQge1BsdWdpblByb2Nlc3NMaW5rQ3JlYXRlRHRvLCBQbHVnaW5Qcm9jZXNzTGlua1VwZGF0ZUR0b30gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1wbHVnaW4tYWN0aW9uLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGx1Z2luLWFjdGlvbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBsdWdpbkFjdGlvbkNvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiQ6IE9ic2VydmFibGU8UGx1Z2luQ29uZmlndXJhdGlvbj47XG4gIEBPdXRwdXQoKSB2YWxpZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgY29uZmlndXJhdGlvbjogRXZlbnRFbWl0dGVyPFBsdWdpbkNvbmZpZ3VyYXRpb25EYXRhPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxQbHVnaW5Db25maWd1cmF0aW9uRGF0YT4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGx1Z2luRGVmaW5pdGlvbktleSQgPSB0aGlzLnBsdWdpblN0YXRlU2VydmljZS5wbHVnaW5EZWZpbml0aW9uS2V5JDtcbiAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uS2V5JCA9IHRoaXMucGx1Z2luU3RhdGVTZXJ2aWNlLmZ1bmN0aW9uS2V5JDtcbiAgcHVibGljIHJlYWRvbmx5IHNhdmUkID0gdGhpcy5wbHVnaW5TdGF0ZVNlcnZpY2Uuc2F2ZSQ7XG4gIHB1YmxpYyByZWFkb25seSBzYXZpbmckID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc2F2aW5nJDtcbiAgcHVibGljIHJlYWRvbmx5IHByZWZpbGxDb25maWd1cmF0aW9uJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUHJvY2Vzc0xpbmskLnBpcGUoXG4gICAgbWFwKHByb2Nlc3NMaW5rID0+IChwcm9jZXNzTGluayA/IHByb2Nlc3NMaW5rPy5hY3Rpb25Qcm9wZXJ0aWVzIDogdW5kZWZpbmVkKSlcbiAgKTtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTZXJ2aWNlOiBQcm9jZXNzTGlua1N0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpblN0YXRlU2VydmljZTogUGx1Z2luU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnV0dG9uU2VydmljZTogUHJvY2Vzc0xpbmtCdXR0b25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RlcFNlcnZpY2U6IFByb2Nlc3NMaW5rU3RlcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzTGlua1NlcnZpY2U6IFByb2Nlc3NMaW5rU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuQmFja0J1dHRvblN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMub3BlblNhdmVCdXR0b25TdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uVmFsaWQodmFsaWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodmFsaWQpIHtcbiAgICAgIHRoaXMuYnV0dG9uU2VydmljZS5lbmFibGVTYXZlQnV0dG9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnV0dG9uU2VydmljZS5kaXNhYmxlU2F2ZUJ1dHRvbigpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBQbHVnaW5Db25maWd1cmF0aW9uRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXJ0U2F2aW5nKCk7XG5cbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFByb2Nlc3NMaW5rJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShzZWxlY3RlZFByb2Nlc3NMaW5rID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZFByb2Nlc3NMaW5rKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvY2Vzc0xpbmsoY29uZmlndXJhdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNhdmVOZXdQcm9jZXNzTGluayhjb25maWd1cmF0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUHJvY2Vzc0xpbmsoY29uZmlndXJhdGlvbjogUGx1Z2luQ29uZmlndXJhdGlvbkRhdGEpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFByb2Nlc3NMaW5rJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShzZWxlY3RlZFByb2Nlc3NMaW5rID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZVByb2Nlc3NMaW5rUmVxdWVzdDogUGx1Z2luUHJvY2Vzc0xpbmtVcGRhdGVEdG8gPSB7XG4gICAgICAgIGlkOiBzZWxlY3RlZFByb2Nlc3NMaW5rLmlkLFxuICAgICAgICBwbHVnaW5Db25maWd1cmF0aW9uSWQ6IHNlbGVjdGVkUHJvY2Vzc0xpbmsucGx1Z2luQ29uZmlndXJhdGlvbklkLFxuICAgICAgICBwbHVnaW5BY3Rpb25EZWZpbml0aW9uS2V5OiBzZWxlY3RlZFByb2Nlc3NMaW5rLnBsdWdpbkFjdGlvbkRlZmluaXRpb25LZXksXG4gICAgICAgIGFjdGlvblByb3BlcnRpZXM6IGNvbmZpZ3VyYXRpb24sXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnByb2Nlc3NMaW5rU2VydmljZS51cGRhdGVQcm9jZXNzTGluayh1cGRhdGVQcm9jZXNzTGlua1JlcXVlc3QpLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmNsb3NlTW9kYWwoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnN0b3BTYXZpbmcoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZU5ld1Byb2Nlc3NMaW5rKGNvbmZpZ3VyYXRpb246IFBsdWdpbkNvbmZpZ3VyYXRpb25EYXRhKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0YXRlU2VydmljZS5tb2RhbFBhcmFtcyQsXG4gICAgICB0aGlzLnBsdWdpblN0YXRlU2VydmljZS5zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kLFxuICAgICAgdGhpcy5wbHVnaW5TdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQbHVnaW5GdW5jdGlvbiQsXG4gICAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFByb2Nlc3NMaW5rVHlwZUlkJCxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChbbW9kYWxEYXRhLCBzZWxlY3RlZENvbmZpZ3VyYXRpb24sIHNlbGVjdGVkRnVuY3Rpb24sIHNlbGVjdGVkUHJvY2Vzc0xpbmtUeXBlSWRdKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvY2Vzc0xpbmtSZXF1ZXN0OiBQbHVnaW5Qcm9jZXNzTGlua0NyZWF0ZUR0byA9IHtcbiAgICAgICAgICAgIGFjdGlvblByb3BlcnRpZXM6IGNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICBhY3Rpdml0eUlkOiBtb2RhbERhdGE/LmVsZW1lbnQ/LmlkLFxuICAgICAgICAgICAgYWN0aXZpdHlUeXBlOiBtb2RhbERhdGE/LmVsZW1lbnQ/LmFjdGl2aXR5TGlzdGVuZXJUeXBlLFxuICAgICAgICAgICAgcGx1Z2luQ29uZmlndXJhdGlvbklkOiBzZWxlY3RlZENvbmZpZ3VyYXRpb24uaWQsXG4gICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbklkOiBtb2RhbERhdGE/LnByb2Nlc3NEZWZpbml0aW9uSWQsXG4gICAgICAgICAgICBwbHVnaW5BY3Rpb25EZWZpbml0aW9uS2V5OiBzZWxlY3RlZEZ1bmN0aW9uLmtleSxcbiAgICAgICAgICAgIHByb2Nlc3NMaW5rVHlwZTogc2VsZWN0ZWRQcm9jZXNzTGlua1R5cGVJZCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgdGhpcy5wcm9jZXNzTGlua1NlcnZpY2Uuc2F2ZVByb2Nlc3NMaW5rKHByb2Nlc3NMaW5rUmVxdWVzdCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zdG9wU2F2aW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkJhY2tCdXR0b25TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmJ1dHRvblNlcnZpY2UuYmFja0J1dHRvbkNsaWNrJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0ZXBTZXJ2aWNlLnNldENob29zZVBsdWdpbkFjdGlvblN0ZXBzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TYXZlQnV0dG9uU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5idXR0b25TZXJ2aWNlLnNhdmVCdXR0b25DbGljayQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5wbHVnaW5TdGF0ZVNlcnZpY2Uuc2F2ZSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjx2YWx0aW1vLXBsdWdpbi1jb25maWd1cmF0aW9uLWNvbnRhaW5lclxuICBbcGx1Z2luRGVmaW5pdGlvbktleV09XCJwbHVnaW5EZWZpbml0aW9uS2V5JCB8IGFzeW5jXCJcbiAgW2Z1bmN0aW9uS2V5XT1cImZ1bmN0aW9uS2V5JCB8IGFzeW5jXCJcbiAgW3NhdmUkXT1cInNhdmUkXCJcbiAgW2Rpc2FibGVkJF09XCJzYXZpbmckXCJcbiAgW3NlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiRdPVwic2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uJFwiXG4gIFtwcmVmaWxsQ29uZmlndXJhdGlvbiRdPVwicHJlZmlsbENvbmZpZ3VyYXRpb24kXCJcbiAgKHZhbGlkKT1cIm9uVmFsaWQoJGV2ZW50KVwiXG4gIChjb25maWd1cmF0aW9uKT1cIm9uQ29uZmlndXJhdGlvbigkZXZlbnQpXCJcbiAgdHlwZT1cImZ1bmN0aW9uXCJcbj48L3ZhbHRpbW8tcGx1Z2luLWNvbmZpZ3VyYXRpb24tY29udGFpbmVyPlxuIl19
@@ -28,12 +28,14 @@ import * as i9 from "../choose-process-link-type/choose-process-link-type.compon
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
30
  import * as i12 from "../select-url/select-url.component";
31
- import * as i13 from "@ngx-translate/core";
31
+ import * as i13 from "../select-ui-component/select-ui-component.component";
32
+ import * as i14 from "@ngx-translate/core";
32
33
  export class ProcessLinkModalComponent {
33
- constructor(stateService, stepService, buttonService, processLinkService, processLinkStateService, configService) {
34
+ constructor(stateService, stepService, buttonService, pluginStateService, processLinkService, processLinkStateService, configService) {
34
35
  this.stateService = stateService;
35
36
  this.stepService = stepService;
36
37
  this.buttonService = buttonService;
38
+ this.pluginStateService = pluginStateService;
37
39
  this.processLinkService = processLinkService;
38
40
  this.processLinkStateService = processLinkStateService;
39
41
  this.configService = configService;
@@ -51,6 +53,7 @@ export class ProcessLinkModalComponent {
51
53
  this.saving$ = this.stateService.saving$;
52
54
  this.typeOfSelectedProcessLink$ = this.stateService.typeOfSelectedProcessLink$;
53
55
  this.viewModelEnabled$ = this.stateService.viewModelEnabled$;
56
+ this.selectedPluginConfiguration$ = this.pluginStateService.selectedPluginConfiguration$;
54
57
  this.showViewModelToggle = this.configService.config.featureToggles.enableFormViewModel;
55
58
  }
56
59
  closeModal() {
@@ -78,11 +81,11 @@ export class ProcessLinkModalComponent {
78
81
  toggleCheckedChange(value) {
79
82
  this.processLinkStateService.setViewModelEnabled(value);
80
83
  }
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 }); }
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" }] }); }
84
+ 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.PluginStateService }, { token: i1.ProcessLinkService }, { token: i1.ProcessLinkStateService }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
85
+ 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 [cdsLayer]=\"1\">\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\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n ></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 <ng-container\n *ngIf=\"\n obs.currentStepId === 'uiComponent' || obs.typeOfSelectedProgressLink === 'ui-component'\n \"\n >\n <valtimo-select-ui-component></valtimo-select-ui-component>\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: "directive", type: i4.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { 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", inputs: ["selectedPluginConfiguration$"], 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: "component", type: i13.SelectUIComponentComponent, selector: "valtimo-select-ui-component" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] }); }
83
86
  }
84
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProcessLinkModalComponent, decorators: [{
85
88
  type: Component,
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"] }]
87
- }], ctorParameters: () => [{ type: i1.ProcessLinkStateService }, { type: i1.ProcessLinkStepService }, { type: i1.ProcessLinkButtonService }, { type: i1.ProcessLinkService }, { type: i1.ProcessLinkStateService }, { type: i2.ConfigService }] });
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==
89
+ 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 [cdsLayer]=\"1\">\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\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n ></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 <ng-container\n *ngIf=\"\n obs.currentStepId === 'uiComponent' || obs.typeOfSelectedProgressLink === 'ui-component'\n \"\n >\n <valtimo-select-ui-component></valtimo-select-ui-component>\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"] }]
90
+ }], ctorParameters: () => [{ type: i1.ProcessLinkStateService }, { type: i1.ProcessLinkStepService }, { type: i1.ProcessLinkButtonService }, { type: i1.PluginStateService }, { type: i1.ProcessLinkService }, { type: i1.ProcessLinkStateService }, { type: i2.ConfigService }] });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQVF4QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRcEMsTUFBTSxPQUFPLHlCQUF5QjtJQXFCcEMsWUFDbUIsWUFBcUMsRUFDckMsV0FBbUMsRUFDbkMsYUFBdUMsRUFDdkMsa0JBQXNDLEVBQ3RDLGtCQUFzQyxFQUN0Qyx1QkFBZ0QsRUFDaEQsYUFBNEI7UUFONUIsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUEzQi9CLGVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUNsRCxXQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDakMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO1FBQ2pELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7UUFDckQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCxvQkFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDO1FBQ3JELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7UUFDckQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCwyQkFBc0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1FBQ2xFLFlBQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNwQywrQkFBMEIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDO1FBQzFFLHNCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFDeEQsaUNBQTRCLEdBQzFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQztRQUV2Qyx3QkFBbUIsR0FDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDO0lBVTVELENBQUM7SUFFSixVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRTtZQUNuRixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUN6RSxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxDQUFDLEVBQ0QsR0FBRyxFQUFFO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQWhFVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixrRUNoQ3RDLDR6TUFvS0E7OzRGRHBJYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUGx1Z2luU3RhdGVTZXJ2aWNlLFxuICBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU2VydmljZSxcbiAgUHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU3RlcFNlcnZpY2UsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXByb2Nlc3MtbGluay1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLWxpbmstbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzLWxpbmstbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0xpbmtNb2RhbENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBzaG93TW9kYWwkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc2hvd01vZGFsJDtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NTdGVwTmFtZSQgPSB0aGlzLnN0YXRlU2VydmljZS5lbGVtZW50TmFtZSQ7XG4gIHB1YmxpYyByZWFkb25seSBzdGVwcyQgPSB0aGlzLnN0ZXBTZXJ2aWNlLnN0ZXBzJDtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRTdGVwSW5kZXgkID0gdGhpcy5zdGVwU2VydmljZS5jdXJyZW50U3RlcEluZGV4JDtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRTdGVwSWQkID0gdGhpcy5zdGVwU2VydmljZS5jdXJyZW50U3RlcElkJDtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTYXZlQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5zaG93U2F2ZUJ1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBlbmFibGVTYXZlQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5lbmFibGVTYXZlQnV0dG9uJDtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dCYWNrQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5zaG93QmFja0J1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBzaG93TmV4dEJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2Uuc2hvd05leHRCdXR0b24kO1xuICBwdWJsaWMgcmVhZG9ubHkgZW5hYmxlTmV4dEJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2UuZW5hYmxlTmV4dEJ1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBoaWRlUHJvZ3Jlc3NJbmRpY2F0b3IkID0gdGhpcy5zdGF0ZVNlcnZpY2UuaGlkZVByb2dyZXNzSW5kaWNhdG9yJDtcbiAgcHVibGljIHJlYWRvbmx5IHNhdmluZyQgPSB0aGlzLnN0YXRlU2VydmljZS5zYXZpbmckO1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZU9mU2VsZWN0ZWRQcm9jZXNzTGluayQgPSB0aGlzLnN0YXRlU2VydmljZS50eXBlT2ZTZWxlY3RlZFByb2Nlc3NMaW5rJDtcbiAgcHVibGljIHJlYWRvbmx5IHZpZXdNb2RlbEVuYWJsZWQkID0gdGhpcy5zdGF0ZVNlcnZpY2Uudmlld01vZGVsRW5hYmxlZCQ7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kID1cbiAgICB0aGlzLnBsdWdpblN0YXRlU2VydmljZS5zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kO1xuXG4gIHB1YmxpYyByZWFkb25seSBzaG93Vmlld01vZGVsVG9nZ2xlID1cbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLmZlYXR1cmVUb2dnbGVzLmVuYWJsZUZvcm1WaWV3TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RlcFNlcnZpY2U6IFByb2Nlc3NMaW5rU3RlcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBidXR0b25TZXJ2aWNlOiBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5TdGF0ZVNlcnZpY2U6IFBsdWdpblN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3NMaW5rU2VydmljZTogUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHt9XG5cbiAgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gIH1cblxuICBiYWNrQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5idXR0b25TZXJ2aWNlLmNsaWNrQmFja0J1dHRvbigpO1xuICB9XG5cbiAgc2F2ZUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYnV0dG9uU2VydmljZS5jbGlja1NhdmVCdXR0b24oKTtcbiAgfVxuXG4gIG5leHRCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmJ1dHRvblNlcnZpY2UuY2xpY2tOZXh0QnV0dG9uKCk7XG4gIH1cblxuICB1bmxpbmtCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zdGFydFNhdmluZygpO1xuXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQcm9jZXNzTGluayQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc2VsZWN0ZWRQcm9jZXNzTGluayA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NMaW5rU2VydmljZS5kZWxldGVQcm9jZXNzTGluayhzZWxlY3RlZFByb2Nlc3NMaW5rLmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zdG9wU2F2aW5nKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQ2hlY2tlZENoYW5nZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2Uuc2V0Vmlld01vZGVsRW5hYmxlZCh2YWx1ZSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdlxuICBjbGFzcz1cInByb2Nlc3MtbGluay1tb2RhbC1jb250YWluZXJcIlxuICAqbmdJZj1cIntcbiAgICBzaG93TW9kYWw6IHNob3dNb2RhbCQgfCBhc3luYyxcbiAgICBwcm9jZXNzU3RlcE5hbWU6IHByb2Nlc3NTdGVwTmFtZSQgfCBhc3luYyxcbiAgICBzdGVwczogc3RlcHMkIHwgYXN5bmMsXG4gICAgY3VycmVudFN0ZXBJbmRleDogY3VycmVudFN0ZXBJbmRleCQgfCBhc3luYyxcbiAgICBjdXJyZW50U3RlcElkOiBjdXJyZW50U3RlcElkJCB8IGFzeW5jLFxuICAgIHNob3dTYXZlQnV0dG9uOiBzaG93U2F2ZUJ1dHRvbiQgfCBhc3luYyxcbiAgICBlbmFibGVTYXZlQnV0dG9uOiBlbmFibGVTYXZlQnV0dG9uJCB8IGFzeW5jLFxuICAgIHNob3dCYWNrQnV0dG9uOiBzaG93QmFja0J1dHRvbiQgfCBhc3luYyxcbiAgICBzaG93TmV4dEJ1dHRvbjogc2hvd05leHRCdXR0b24kIHwgYXN5bmMsXG4gICAgZW5hYmxlTmV4dEJ1dHRvbjogZW5hYmxlTmV4dEJ1dHRvbiQgfCBhc3luYyxcbiAgICBzYXZpbmc6IHNhdmluZyQgfCBhc3luYyxcbiAgICBoaWRlUHJvZ3Jlc3NJbmRpY2F0b3I6IGhpZGVQcm9ncmVzc0luZGljYXRvciQgfCBhc3luYyxcbiAgICB0eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluazogdHlwZU9mU2VsZWN0ZWRQcm9jZXNzTGluayQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuPlxuICA8Y2RzLW1vZGFsIHZhbHRpbW9DZHNNb2RhbCBbb3Blbl09XCJvYnMuc2hvd01vZGFsXCIgc2l6ZT1cImxnXCI+XG4gICAgPGNkcy1tb2RhbC1oZWFkZXIgKGNsb3NlU2VsZWN0KT1cImNsb3NlTW9kYWwoKVwiPlxuICAgICAgPGgyIGNkc01vZGFsSGVhZGVyTGFiZWw+e3sgJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi5jb25maWd1cmVTdGVwJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICA8aDMgY2RzTW9kYWxIZWFkZXJIZWFkaW5nPlxuICAgICAgICB7e1xuICAgICAgICAgICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24ubW9kYWxUaXRsZSdcbiAgICAgICAgICAgIHwgdHJhbnNsYXRlOiB7cHJvY2Vzc1N0ZXBOYW1lOiBvYnMucHJvY2Vzc1N0ZXBOYW1lIHx8ICctJ31cbiAgICAgICAgfX1cbiAgICAgIDwvaDM+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvY2Vzcy1saW5rLXByb2dyZXNzXCIgKm5nSWY9XCIhb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9ncmVzc0luZGljYXRvcjsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuICAgIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudCBbY2RzTGF5ZXJdPVwiMVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0ZXBDb250ZW50OyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlcjsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvY2RzLW1vZGFsPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcHJvZ3Jlc3NJbmRpY2F0b3IgbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLXByb2dyZXNzLWluZGljYXRvclxuICAgICpuZ0lmPVwib2JzLnN0ZXBzICYmICFvYnMuaGlkZVByb2dyZXNzSW5kaWNhdG9yXCJcbiAgICBbc3RlcHNdPVwib2JzLnN0ZXBzXCJcbiAgICBbY3VycmVudF09XCJvYnMuY3VycmVudFN0ZXBJbmRleFwiXG4gICAgc3BhY2luZz1cImVxdWFsXCJcbiAgPjwvY2RzLXByb2dyZXNzLWluZGljYXRvcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3RlcENvbnRlbnQgbGV0LW9icz1cIm9ic1wiPlxuICA8ZGl2IGNsYXNzPVwiY2RzLWxvYWRpbmctY29udGFpbmVyXCIgKm5nSWY9XCJvYnMuc2F2aW5nXCI+XG4gICAgPGNkcy1sb2FkaW5nPjwvY2RzLWxvYWRpbmc+XG4gIDwvZGl2PlxuICA8ZGl2IFtuZ0NsYXNzXT1cIntoaWRkZW46IG9icy5zYXZpbmd9XCI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ2Nob29zZVByb2Nlc3NMaW5rVHlwZSdcIj5cbiAgICAgICAgPHZhbHRpbW8tY2hvb3NlLXByb2Nlc3MtbGluay10eXBlPjwvdmFsdGltby1jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ3NlbGVjdEZvcm0nIHx8IG9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluayA9PT0gJ2Zvcm0nXCJcbiAgICAgID5cbiAgICAgICAgPHZhbHRpbW8tc2VsZWN0LWZvcm0+PC92YWx0aW1vLXNlbGVjdC1mb3JtPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPGNkcy10b2dnbGVcbiAgICAgICAgICAqbmdJZj1cInNob3dWaWV3TW9kZWxUb2dnbGVcIlxuICAgICAgICAgIFtsYWJlbF09XCIncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLnRvZ2dsZVZpZXdNb2RlbC50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtvblRleHRdPVwiJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi50b2dnbGVWaWV3TW9kZWwuY2hlY2tib3hEZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtvZmZUZXh0XT1cIidwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24udG9nZ2xlVmlld01vZGVsLmNoZWNrYm94RGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJ2aWV3TW9kZWxFbmFibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAoY2hlY2tlZENoYW5nZSk9XCJ0b2dnbGVDaGVja2VkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9jZHMtdG9nZ2xlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgb2JzLmN1cnJlbnRTdGVwSWQgPT09ICdzZWxlY3RGb3JtRmxvdycgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rID09PSAnZm9ybS1mbG93J1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtZm9ybS1mbG93PjwvdmFsdGltby1zZWxlY3QtZm9ybS1mbG93PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JzLmN1cnJlbnRTdGVwSWQgPT09ICdjaG9vc2VQbHVnaW5Db25maWd1cmF0aW9uJ1wiPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtcGx1Z2luLWNvbmZpZ3VyYXRpb24+PC92YWx0aW1vLXNlbGVjdC1wbHVnaW4tY29uZmlndXJhdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9icy5jdXJyZW50U3RlcElkID09PSAnY2hvb3NlUGx1Z2luQWN0aW9uJ1wiPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtcGx1Z2luLWFjdGlvbj48L3ZhbHRpbW8tc2VsZWN0LXBsdWdpbi1hY3Rpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ2NvbmZpZ3VyZVBsdWdpbkFjdGlvbicgfHxcbiAgICAgICAgICBvYnMudHlwZU9mU2VsZWN0ZWRQcm9ncmVzc0xpbmsgPT09ICdwbHVnaW4nXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDx2YWx0aW1vLXBsdWdpbi1hY3Rpb24tY29uZmlndXJhdGlvblxuICAgICAgICAgIFtzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kXT1cInNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiRcIlxuICAgICAgICA+PC92YWx0aW1vLXBsdWdpbi1hY3Rpb24tY29uZmlndXJhdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDx2YWx0aW1vLXNlbGVjdC11cmxcbiAgICAgICpuZ0lmPVwib2JzLmN1cnJlbnRTdGVwSWQgPT09ICdzZWxlY3RVUkwnIHx8IG9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluayA9PT0gJ3VybCdcIlxuICAgID48L3ZhbHRpbW8tc2VsZWN0LXVybD5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgb2JzLmN1cnJlbnRTdGVwSWQgPT09ICd1aUNvbXBvbmVudCcgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rID09PSAndWktY29tcG9uZW50J1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgPHZhbHRpbW8tc2VsZWN0LXVpLWNvbXBvbmVudD48L3ZhbHRpbW8tc2VsZWN0LXVpLWNvbXBvbmVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvb3RlciBsZXQtb2JzPVwib2JzXCI+XG4gIDxjZHMtbW9kYWwtZm9vdGVyICpuZ0lmPVwiIW9icy5zYXZpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPlxuICAgICAgPGJ1dHRvbiBjZHNCdXR0b249XCJnaG9zdFwiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIiBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCI+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm5hdmlnYXRpb24tYnV0dG9uc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIm9icy5zaG93QmFja0J1dHRvbiAmJiAhb2JzLnNhdmluZ1wiXG4gICAgICAgIGNkc0J1dHRvbj1cInNlY29uZGFyeVwiXG4gICAgICAgIChjbGljayk9XCJiYWNrQnV0dG9uQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uYmFjaycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgKm5nSWY9XCJvYnMuc2hvd05leHRCdXR0b24gJiYgIW9icy5zYXZpbmdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmVuYWJsZU5leHRCdXR0b24gPT09IGZhbHNlXCJcbiAgICAgICAgKGNsaWNrKT1cIm5leHRCdXR0b25DbGljaygpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi5uZXh0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNkc0J1dHRvbj1cImRhbmdlci0tcHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwib2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rXCJcbiAgICAgICAgKGNsaWNrKT1cInVubGlua0J1dHRvbkNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLnVubGluaycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgKm5nSWY9XCIob2JzLnNob3dTYXZlQnV0dG9uICYmICFvYnMuc2F2aW5nKSB8fCBvYnMudHlwZU9mU2VsZWN0ZWRQcm9ncmVzc0xpbmtcIlxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmVuYWJsZVNhdmVCdXR0b24gPT09IGZhbHNlXCJcbiAgICAgICAgKGNsaWNrKT1cInNhdmVCdXR0b25DbGljaygpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi5jb21wbGV0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L25nLXRlbXBsYXRlPlxuIl19