@valtimo/process-link 12.0.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 (103) hide show
  1. package/README.md +32 -0
  2. package/esm2022/lib/components/choose-process-link-type/choose-process-link-type.component.mjs +38 -0
  3. package/esm2022/lib/components/choose-process-link-type/index.mjs +17 -0
  4. package/esm2022/lib/components/form-flow/form-flow.component.mjs +117 -0
  5. package/esm2022/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.mjs +107 -0
  6. package/esm2022/lib/components/form-flow-configuration-container/index.mjs +17 -0
  7. package/esm2022/lib/components/form-link-process-diagram/form-link-process-diagram.component.mjs +150 -0
  8. package/esm2022/lib/components/plugin-action-configuration/plugin-action-configuration.component.mjs +126 -0
  9. package/esm2022/lib/components/process-link/process-link.component.mjs +69 -0
  10. package/esm2022/lib/components/process-link-modal/process-link-modal.component.mjs +79 -0
  11. package/esm2022/lib/components/select-form/index.mjs +17 -0
  12. package/esm2022/lib/components/select-form/select-form.component.mjs +121 -0
  13. package/esm2022/lib/components/select-form-flow/index.mjs +17 -0
  14. package/esm2022/lib/components/select-form-flow/select-form-flow.component.mjs +120 -0
  15. package/esm2022/lib/components/select-plugin-action/select-plugin-action.component.mjs +75 -0
  16. package/esm2022/lib/components/select-plugin-configuration/select-plugin-configuration.component.mjs +75 -0
  17. package/esm2022/lib/constants/index.mjs +17 -0
  18. package/esm2022/lib/constants/injection-tokens.mjs +19 -0
  19. package/esm2022/lib/models/form-flow.model.mjs +17 -0
  20. package/esm2022/lib/models/form-link.model.mjs +17 -0
  21. package/esm2022/lib/models/index.mjs +19 -0
  22. package/esm2022/lib/models/process-link.model.mjs +17 -0
  23. package/esm2022/lib/process-link-routing.module.mjs +44 -0
  24. package/esm2022/lib/process-link.module.mjs +169 -0
  25. package/esm2022/lib/services/form-flow-component.service.mjs +44 -0
  26. package/esm2022/lib/services/form-flow.service.mjs +53 -0
  27. package/esm2022/lib/services/index.mjs +23 -0
  28. package/esm2022/lib/services/plugin-state.service.mjs +90 -0
  29. package/esm2022/lib/services/process-link-button.service.mjs +106 -0
  30. package/esm2022/lib/services/process-link-state.service.mjs +143 -0
  31. package/esm2022/lib/services/process-link-step.service.mjs +235 -0
  32. package/esm2022/lib/services/process-link.service.mjs +89 -0
  33. package/esm2022/public-api.mjs +31 -0
  34. package/esm2022/valtimo-process-link.mjs +5 -0
  35. package/fesm2022/valtimo-process-link.mjs +2119 -0
  36. package/fesm2022/valtimo-process-link.mjs.map +1 -0
  37. package/index.d.ts +6 -0
  38. package/lib/components/choose-process-link-type/choose-process-link-type.component.d.ts +11 -0
  39. package/lib/components/choose-process-link-type/choose-process-link-type.component.d.ts.map +1 -0
  40. package/lib/components/choose-process-link-type/index.d.ts +2 -0
  41. package/lib/components/choose-process-link-type/index.d.ts.map +1 -0
  42. package/lib/components/form-flow/form-flow.component.d.ts +33 -0
  43. package/lib/components/form-flow/form-flow.component.d.ts.map +1 -0
  44. package/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.d.ts +30 -0
  45. package/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.d.ts.map +1 -0
  46. package/lib/components/form-flow-configuration-container/index.d.ts +2 -0
  47. package/lib/components/form-flow-configuration-container/index.d.ts.map +1 -0
  48. package/lib/components/form-link-process-diagram/form-link-process-diagram.component.d.ts +34 -0
  49. package/lib/components/form-link-process-diagram/form-link-process-diagram.component.d.ts.map +1 -0
  50. package/lib/components/plugin-action-configuration/plugin-action-configuration.component.d.ts +33 -0
  51. package/lib/components/plugin-action-configuration/plugin-action-configuration.component.d.ts.map +1 -0
  52. package/lib/components/process-link/process-link.component.d.ts +14 -0
  53. package/lib/components/process-link/process-link.component.d.ts.map +1 -0
  54. package/lib/components/process-link-modal/process-link-modal.component.d.ts +30 -0
  55. package/lib/components/process-link-modal/process-link-modal.component.d.ts.map +1 -0
  56. package/lib/components/select-form/index.d.ts +2 -0
  57. package/lib/components/select-form/index.d.ts.map +1 -0
  58. package/lib/components/select-form/select-form.component.d.ts +29 -0
  59. package/lib/components/select-form/select-form.component.d.ts.map +1 -0
  60. package/lib/components/select-form-flow/index.d.ts +2 -0
  61. package/lib/components/select-form-flow/index.d.ts.map +1 -0
  62. package/lib/components/select-form-flow/select-form-flow.component.d.ts +28 -0
  63. package/lib/components/select-form-flow/select-form-flow.component.d.ts.map +1 -0
  64. package/lib/components/select-plugin-action/select-plugin-action.component.d.ts +29 -0
  65. package/lib/components/select-plugin-action/select-plugin-action.component.d.ts.map +1 -0
  66. package/lib/components/select-plugin-configuration/select-plugin-configuration.component.d.ts +29 -0
  67. package/lib/components/select-plugin-configuration/select-plugin-configuration.component.d.ts.map +1 -0
  68. package/lib/constants/index.d.ts +2 -0
  69. package/lib/constants/index.d.ts.map +1 -0
  70. package/lib/constants/injection-tokens.d.ts +5 -0
  71. package/lib/constants/injection-tokens.d.ts.map +1 -0
  72. package/lib/models/form-flow.model.d.ts +18 -0
  73. package/lib/models/form-flow.model.d.ts.map +1 -0
  74. package/lib/models/form-link.model.d.ts +46 -0
  75. package/lib/models/form-link.model.d.ts.map +1 -0
  76. package/lib/models/index.d.ts +4 -0
  77. package/lib/models/index.d.ts.map +1 -0
  78. package/lib/models/process-link.model.d.ts +65 -0
  79. package/lib/models/process-link.model.d.ts.map +1 -0
  80. package/lib/process-link-routing.module.d.ts +8 -0
  81. package/lib/process-link-routing.module.d.ts.map +1 -0
  82. package/lib/process-link.module.d.ts +25 -0
  83. package/lib/process-link.module.d.ts.map +1 -0
  84. package/lib/services/form-flow-component.service.d.ts +13 -0
  85. package/lib/services/form-flow-component.service.d.ts.map +1 -0
  86. package/lib/services/form-flow.service.d.ts +20 -0
  87. package/lib/services/form-flow.service.d.ts.map +1 -0
  88. package/lib/services/index.d.ts +8 -0
  89. package/lib/services/index.d.ts.map +1 -0
  90. package/lib/services/plugin-state.service.d.ts +29 -0
  91. package/lib/services/plugin-state.service.d.ts.map +1 -0
  92. package/lib/services/process-link-button.service.d.ts +37 -0
  93. package/lib/services/process-link-button.service.d.ts.map +1 -0
  94. package/lib/services/process-link-state.service.d.ts +48 -0
  95. package/lib/services/process-link-state.service.d.ts.map +1 -0
  96. package/lib/services/process-link-step.service.d.ts +41 -0
  97. package/lib/services/process-link-step.service.d.ts.map +1 -0
  98. package/lib/services/process-link.service.d.ts +20 -0
  99. package/lib/services/process-link.service.d.ts.map +1 -0
  100. package/package.json +26 -0
  101. package/public-api.d.ts +13 -0
  102. package/public-api.d.ts.map +1 -0
  103. package/valtimo-process-link.d.ts.map +1 -0
package/README.md ADDED
@@ -0,0 +1,32 @@
1
+ # ProcessLink
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version
4
+ 8.2.14.
5
+
6
+ ## Code scaffolding
7
+
8
+ Run `ng generate component component-name --project process-link` to generate a new component. You
9
+ can also use
10
+ `ng generate directive|pipe|service|class|guard|interface|enum|module --project process-link`.
11
+
12
+ > Note: Don't forget to add `--project process-link` or else it will be added to the default project
13
+ > in your `angular.json` file.
14
+
15
+ ## Build
16
+
17
+ Run `ng build process-link` to build the project. The build artifacts will be stored in the `dist/`
18
+ directory.
19
+
20
+ ## Publishing
21
+
22
+ After building your library with `ng build process-link`, go to the dist folder
23
+ `cd dist/process-link` and run `npm publish`.
24
+
25
+ ## Running unit tests
26
+
27
+ Run `ng test process-link` to execute the unit tests via [Karma](https://karma-runner.github.io).
28
+
29
+ ## Further help
30
+
31
+ To get more help on the Angular CLI use `ng help` or go check out the
32
+ [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component } from '@angular/core';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "../../services";
19
+ import * as i2 from "@angular/common";
20
+ import * as i3 from "carbon-components-angular";
21
+ import * as i4 from "@valtimo/components";
22
+ import * as i5 from "@ngx-translate/core";
23
+ export class ChooseProcessLinkTypeComponent {
24
+ constructor(processLinkStateService) {
25
+ this.processLinkStateService = processLinkStateService;
26
+ this.availableProcessLinkTypes$ = this.processLinkStateService.availableProcessLinkTypes$;
27
+ }
28
+ selectProcessLinkType(processLinkTypeId) {
29
+ this.processLinkStateService.selectProcessLinkType(processLinkTypeId);
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", 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.3", 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" }] }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ChooseProcessLinkTypeComponent, decorators: [{
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"] }]
37
+ }], ctorParameters: () => [{ type: i1.ProcessLinkStateService }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUvY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUvY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVF4QyxNQUFNLE9BQU8sOEJBQThCO0lBSXpDLFlBQTZCLHVCQUFnRDtRQUFoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBSDdELCtCQUEwQixHQUN4QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsMEJBQTBCLENBQUM7SUFFc0IsQ0FBQztJQUVqRixxQkFBcUIsQ0FBQyxpQkFBeUI7UUFDN0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEUsQ0FBQzs4R0FSVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qix3RUN4QjNDLG93RUFnRUE7OzJGRHhDYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0Usa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQcm9jZXNzTGlua1N0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWNob29zZS1wcm9jZXNzLWxpbmstdHlwZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hvb3NlUHJvY2Vzc0xpbmtUeXBlQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZXMkID1cbiAgICB0aGlzLnByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLmF2YWlsYWJsZVByb2Nlc3NMaW5rVHlwZXMkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlKSB7fVxuXG4gIHNlbGVjdFByb2Nlc3NMaW5rVHlwZShwcm9jZXNzTGlua1R5cGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wcm9jZXNzTGlua1N0YXRlU2VydmljZS5zZWxlY3RQcm9jZXNzTGlua1R5cGUocHJvY2Vzc0xpbmtUeXBlSWQpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlczogYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlcyQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4+XG4gIDxwIGNsYXNzPVwic3RlcC1kZXNjcmlwdGlvblwiPlxuICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uY2hvb3NlUHJvY2Vzc0xpbmtUeXBlRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19XG4gIDwvcD5cbiAgPGRpdiBjbGFzcz1cInByb2Nlc3MtbGluay1ncmlkXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJwcm9jZXNzLWxpbmstaXRlbVwiXG4gICAgICAqbmdGb3I9XCJsZXQgYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlIG9mIG9icy5hdmFpbGFibGVQcm9jZXNzTGlua1R5cGVzXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXZhaWxhYmxlUHJvY2Vzc0xpbmtUeXBlLnByb2Nlc3NMaW5rVHlwZSBhcyBwcm9jZXNzTGlua1R5cGVJZFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFByb2Nlc3NMaW5rVHlwZShwcm9jZXNzTGlua1R5cGVJZClcIlxuICAgICAgICAgIGNkc0J1dHRvbj1cInNlY29uZGFyeVwiXG4gICAgICAgICAgc2l6ZT1cInhsXCJcbiAgICAgICAgICBjbGFzcz1cInByb2Nlc3MtbGluay10eXBlLWJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFhdmFpbGFibGVQcm9jZXNzTGlua1R5cGUuZW5hYmxlZFwiXG4gICAgICAgICAgW3ZUb29sdGlwXT1cIidwcm9jZXNzTGlua1R5cGVEaXNhYmxlZFRvb2x0aXAuJyArIHByb2Nlc3NMaW5rVHlwZUlkIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbb25Cb3R0b21dPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBEaXNhYmxlZF09XCJhdmFpbGFibGVQcm9jZXNzTGlua1R5cGUuZW5hYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAncHJvY2Vzc0xpbmtUeXBlLicgKyBwcm9jZXNzTGlua1R5cGVJZCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICpuZ0lmPVwicHJvY2Vzc0xpbmtUeXBlSWQgPT09ICdwbHVnaW4nXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIlxuICAgICAgICAgICAgY2RzSWNvbj1cImxpbmtcIlxuICAgICAgICAgICAgc2l6ZT1cIjE2XCJcbiAgICAgICAgICA+PC9zdmc+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgKm5nSWY9XCJwcm9jZXNzTGlua1R5cGVJZCA9PT0gJ2Zvcm0nXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIlxuICAgICAgICAgICAgY2RzSWNvbj1cInJlY2VpcHRcIlxuICAgICAgICAgICAgc2l6ZT1cIjE2XCJcbiAgICAgICAgICA+PC9zdmc+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgKm5nSWY9XCJwcm9jZXNzTGlua1R5cGVJZCA9PT0gJ2Zvcm0tZmxvdydcIlxuICAgICAgICAgICAgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiXG4gICAgICAgICAgICBjZHNJY29uPVwiZmxvdy0tZGF0YVwiXG4gICAgICAgICAgICBzaXplPVwiMTZcIlxuICAgICAgICAgID48L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './choose-process-link-type.component';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3MtbGluay9zcmMvbGliL2NvbXBvbmVudHMvY2hvb3NlLXByb2Nlc3MtbGluay10eXBlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY2hvb3NlLXByb2Nlc3MtbGluay10eXBlLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,117 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
17
+ import { BehaviorSubject } from 'rxjs';
18
+ import { FormioOptionsImpl, } from '@valtimo/components';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "../../services";
21
+ import * as i2 from "@valtimo/components";
22
+ import * as i3 from "@angular/common";
23
+ import * as i4 from "../form-flow-configuration-container/form-flow-configuration-container.component";
24
+ export class FormFlowComponent {
25
+ constructor(formFlowService, modalService) {
26
+ this.formFlowService = formFlowService;
27
+ this.modalService = modalService;
28
+ this.formIoFormData = new BehaviorSubject(null);
29
+ this.formFlowComplete = new EventEmitter();
30
+ this.disabled$ = new BehaviorSubject(false);
31
+ this.formFlowStepType$ = new BehaviorSubject(null);
32
+ this.FormFlowCustomComponentId$ = new BehaviorSubject('');
33
+ this.formioOptions = new FormioOptionsImpl();
34
+ this.formioOptions.disableAlerts = true;
35
+ }
36
+ ngOnInit() {
37
+ this.getFormFlowStep();
38
+ }
39
+ onChange(event) {
40
+ if (event?.data) {
41
+ this.formIoFormData.next(event.data);
42
+ }
43
+ }
44
+ onSubmit(submission) {
45
+ this.disable();
46
+ if (submission.data) {
47
+ this.formIoFormData.next(submission.data);
48
+ }
49
+ if (submission.data.submit) {
50
+ this.formFlowService
51
+ .submitStep(this.formFlowInstanceId, this.formFlowStepInstanceId, this.formIoFormData.getValue())
52
+ .subscribe((result) => this.handleFormFlowStep(result), errors => {
53
+ this.form?.showErrors(errors);
54
+ this.enable();
55
+ });
56
+ }
57
+ else if (submission.data['back']) {
58
+ this.formFlowService.back(this.formFlowInstanceId, submission.data).subscribe((result) => this.handleFormFlowStep(result), errors => {
59
+ this.form?.showErrors(errors);
60
+ this.enable();
61
+ });
62
+ }
63
+ }
64
+ saveData() {
65
+ const formIoFormDataValue = this.formIoFormData.getValue();
66
+ if (formIoFormDataValue && this.formFlowInstanceId) {
67
+ this.formFlowService.save(this.formFlowInstanceId, formIoFormDataValue).subscribe(() => null, errors => this.form.showErrors(errors));
68
+ }
69
+ }
70
+ getFormFlowStep() {
71
+ this.formFlowService
72
+ .getFormFlowStep(this.formFlowInstanceId)
73
+ .subscribe((result) => {
74
+ this.handleFormFlowStep(result);
75
+ });
76
+ }
77
+ handleFormFlowStep(formFlowInstance) {
78
+ if (formFlowInstance.step === null) {
79
+ this.formFlowStepType$.next(null);
80
+ this.FormFlowCustomComponentId$.next('');
81
+ this.formFlowInstanceId = null;
82
+ this.formFlowStepInstanceId = null;
83
+ this.formFlowComplete.emit(null);
84
+ }
85
+ else {
86
+ this.modalService.scrollToTop();
87
+ this.formFlowStepType$.next(formFlowInstance.step.type);
88
+ this.FormFlowCustomComponentId$.next(formFlowInstance?.step?.typeProperties?.id || '');
89
+ this.formFlowInstanceId = formFlowInstance.id;
90
+ this.formFlowStepInstanceId = formFlowInstance.step.id;
91
+ this.formDefinition = formFlowInstance.step.typeProperties.definition;
92
+ }
93
+ this.enable();
94
+ }
95
+ disable() {
96
+ this.disabled$.next(true);
97
+ }
98
+ enable() {
99
+ this.disabled$.next(false);
100
+ }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFlowComponent, deps: [{ token: i1.FormFlowService }, { token: i2.ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormFlowComponent, selector: "valtimo-form-flow", inputs: { formIoFormData: "formIoFormData", formFlowInstanceId: "formFlowInstanceId" }, outputs: { formFlowComplete: "formFlowComplete" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }], 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 <div body *ngIf=\"formDefinition && (formFlowStepType$ | async) === 'form'\">\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n <div body *ngIf=\"(formFlowStepType$ | async) === 'custom-component'\">\n <valtimo-form-flow-configuration-container\n [componentId]=\"FormFlowCustomComponentId$ | async\"\n [formFlowInstanceId]=\"formFlowInstanceId\"\n [disabled]=\"disabled$ | async\"\n (submitEvent)=\"onSubmit($event)\"\n (changeEvent)=\"onChange($event)\"\n >\n </valtimo-form-flow-configuration-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i4.FormFlowConfigurationContainerComponent, selector: "valtimo-form-flow-configuration-container", inputs: ["disabled", "componentId", "formFlowInstanceId"], outputs: ["changeEvent", "submitEvent"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFlowComponent, decorators: [{
105
+ type: Component,
106
+ args: [{ selector: 'valtimo-form-flow', 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 <div body *ngIf=\"formDefinition && (formFlowStepType$ | async) === 'form'\">\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n <div body *ngIf=\"(formFlowStepType$ | async) === 'custom-component'\">\n <valtimo-form-flow-configuration-container\n [componentId]=\"FormFlowCustomComponentId$ | async\"\n [formFlowInstanceId]=\"formFlowInstanceId\"\n [disabled]=\"disabled$ | async\"\n (submitEvent)=\"onSubmit($event)\"\n (changeEvent)=\"onChange($event)\"\n >\n </valtimo-form-flow-configuration-container>\n </div>\n</div>\n" }]
107
+ }], ctorParameters: () => [{ type: i1.FormFlowService }, { type: i2.ValtimoModalService }], propDecorators: { form: [{
108
+ type: ViewChild,
109
+ args: ['form']
110
+ }], formIoFormData: [{
111
+ type: Input
112
+ }], formFlowInstanceId: [{
113
+ type: Input
114
+ }], formFlowComplete: [{
115
+ type: Output
116
+ }] } });
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWZsb3cvZm9ybS1mbG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWZsb3cvZm9ybS1mbG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBRUwsaUJBQWlCLEdBSWxCLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQVM3QixNQUFNLE9BQU8saUJBQWlCO0lBZTVCLFlBQ21CLGVBQWdDLEVBQ2hDLFlBQWlDO1FBRGpDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFmM0MsbUJBQWMsR0FBZ0MsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFFNUUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEQsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQTBCLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBVzNFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLFVBQTRCO1FBQzFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVmLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxlQUFlO2lCQUNqQixVQUFVLENBQ1QsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQUMsc0JBQXNCLEVBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQy9CO2lCQUNBLFNBQVMsQ0FDUixDQUFDLE1BQXdCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFDN0QsTUFBTSxDQUFDLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixDQUFDLENBQ0YsQ0FBQztRQUNOLENBQUM7YUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FDM0UsQ0FBQyxNQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQzdELE1BQU0sQ0FBQyxFQUFFO2dCQUNQLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0QsSUFBSSxtQkFBbUIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLENBQy9FLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDVixNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUN2QyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxlQUFlO2FBQ2pCLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7YUFDeEMsU0FBUyxDQUFDLENBQUMsTUFBd0IsRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxnQkFBa0M7UUFDM0QsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDL0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxPQUFPO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQTNHVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrU0NsQzlCLCsyQ0FxQ0E7OzJGREhhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxtQkFBbUI7c0hBS1YsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUNSLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7Rm9ybWlvRm9ybX0gZnJvbSAnQGZvcm1pby9hbmd1bGFyJztcbmltcG9ydCB7XG4gIEZvcm1pb0NvbXBvbmVudCxcbiAgRm9ybWlvT3B0aW9uc0ltcGwsXG4gIEZvcm1pb1N1Ym1pc3Npb24sXG4gIFZhbHRpbW9Gb3JtaW9PcHRpb25zLFxuICBWYWx0aW1vTW9kYWxTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7Rm9ybUZsb3dTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Zvcm1GbG93SW5zdGFuY2UsIEZvcm1GbG93U3RlcFR5cGV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZm9ybS1mbG93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmxvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmxvdy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GbG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnZm9ybScpIGZvcm06IEZvcm1pb0NvbXBvbmVudDtcbiAgQElucHV0KCkgZm9ybUlvRm9ybURhdGE6IEJlaGF2aW9yU3ViamVjdDxhbnk+IHwgbnVsbCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgQElucHV0KCkgZm9ybUZsb3dJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBmb3JtRmxvd0NvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1GbG93U3RlcFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRmxvd1N0ZXBUeXBlIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBGb3JtRmxvd0N1c3RvbUNvbXBvbmVudElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgZm9ybURlZmluaXRpb246IEZvcm1pb0Zvcm07XG4gIGZvcm1pb09wdGlvbnM6IFZhbHRpbW9Gb3JtaW9PcHRpb25zO1xuXG4gIHByaXZhdGUgZm9ybUZsb3dTdGVwSW5zdGFuY2VJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUZsb3dTZXJ2aWNlOiBGb3JtRmxvd1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RhbFNlcnZpY2U6IFZhbHRpbW9Nb2RhbFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5mb3JtaW9PcHRpb25zID0gbmV3IEZvcm1pb09wdGlvbnNJbXBsKCk7XG4gICAgdGhpcy5mb3JtaW9PcHRpb25zLmRpc2FibGVBbGVydHMgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0Rm9ybUZsb3dTdGVwKCk7XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudD8uZGF0YSkge1xuICAgICAgdGhpcy5mb3JtSW9Gb3JtRGF0YS5uZXh0KGV2ZW50LmRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblN1Ym1pdChzdWJtaXNzaW9uOiBGb3JtaW9TdWJtaXNzaW9uKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlKCk7XG5cbiAgICBpZiAoc3VibWlzc2lvbi5kYXRhKSB7XG4gICAgICB0aGlzLmZvcm1Jb0Zvcm1EYXRhLm5leHQoc3VibWlzc2lvbi5kYXRhKTtcbiAgICB9XG4gICAgaWYgKHN1Ym1pc3Npb24uZGF0YS5zdWJtaXQpIHtcbiAgICAgIHRoaXMuZm9ybUZsb3dTZXJ2aWNlXG4gICAgICAgIC5zdWJtaXRTdGVwKFxuICAgICAgICAgIHRoaXMuZm9ybUZsb3dJbnN0YW5jZUlkLFxuICAgICAgICAgIHRoaXMuZm9ybUZsb3dTdGVwSW5zdGFuY2VJZCxcbiAgICAgICAgICB0aGlzLmZvcm1Jb0Zvcm1EYXRhLmdldFZhbHVlKClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXN1bHQ6IEZvcm1GbG93SW5zdGFuY2UpID0+IHRoaXMuaGFuZGxlRm9ybUZsb3dTdGVwKHJlc3VsdCksXG4gICAgICAgICAgZXJyb3JzID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybT8uc2hvd0Vycm9ycyhlcnJvcnMpO1xuICAgICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmIChzdWJtaXNzaW9uLmRhdGFbJ2JhY2snXSkge1xuICAgICAgdGhpcy5mb3JtRmxvd1NlcnZpY2UuYmFjayh0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCwgc3VibWlzc2lvbi5kYXRhKS5zdWJzY3JpYmUoXG4gICAgICAgIChyZXN1bHQ6IEZvcm1GbG93SW5zdGFuY2UpID0+IHRoaXMuaGFuZGxlRm9ybUZsb3dTdGVwKHJlc3VsdCksXG4gICAgICAgIGVycm9ycyA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtPy5zaG93RXJyb3JzKGVycm9ycyk7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZURhdGEoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUlvRm9ybURhdGFWYWx1ZSA9IHRoaXMuZm9ybUlvRm9ybURhdGEuZ2V0VmFsdWUoKTtcbiAgICBpZiAoZm9ybUlvRm9ybURhdGFWYWx1ZSAmJiB0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCkge1xuICAgICAgdGhpcy5mb3JtRmxvd1NlcnZpY2Uuc2F2ZSh0aGlzLmZvcm1GbG93SW5zdGFuY2VJZCwgZm9ybUlvRm9ybURhdGFWYWx1ZSkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiBudWxsLFxuICAgICAgICBlcnJvcnMgPT4gdGhpcy5mb3JtLnNob3dFcnJvcnMoZXJyb3JzKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1GbG93U3RlcCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1GbG93U2VydmljZVxuICAgICAgLmdldEZvcm1GbG93U3RlcCh0aGlzLmZvcm1GbG93SW5zdGFuY2VJZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogRm9ybUZsb3dJbnN0YW5jZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUZvcm1GbG93U3RlcChyZXN1bHQpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUZvcm1GbG93U3RlcChmb3JtRmxvd0luc3RhbmNlOiBGb3JtRmxvd0luc3RhbmNlKSB7XG4gICAgaWYgKGZvcm1GbG93SW5zdGFuY2Uuc3RlcCA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5mb3JtRmxvd1N0ZXBUeXBlJC5uZXh0KG51bGwpO1xuICAgICAgdGhpcy5Gb3JtRmxvd0N1c3RvbUNvbXBvbmVudElkJC5uZXh0KCcnKTtcbiAgICAgIHRoaXMuZm9ybUZsb3dJbnN0YW5jZUlkID0gbnVsbDtcbiAgICAgIHRoaXMuZm9ybUZsb3dTdGVwSW5zdGFuY2VJZCA9IG51bGw7XG4gICAgICB0aGlzLmZvcm1GbG93Q29tcGxldGUuZW1pdChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uuc2Nyb2xsVG9Ub3AoKTtcbiAgICAgIHRoaXMuZm9ybUZsb3dTdGVwVHlwZSQubmV4dChmb3JtRmxvd0luc3RhbmNlLnN0ZXAudHlwZSk7XG4gICAgICB0aGlzLkZvcm1GbG93Q3VzdG9tQ29tcG9uZW50SWQkLm5leHQoZm9ybUZsb3dJbnN0YW5jZT8uc3RlcD8udHlwZVByb3BlcnRpZXM/LmlkIHx8ICcnKTtcbiAgICAgIHRoaXMuZm9ybUZsb3dJbnN0YW5jZUlkID0gZm9ybUZsb3dJbnN0YW5jZS5pZDtcbiAgICAgIHRoaXMuZm9ybUZsb3dTdGVwSW5zdGFuY2VJZCA9IGZvcm1GbG93SW5zdGFuY2Uuc3RlcC5pZDtcbiAgICAgIHRoaXMuZm9ybURlZmluaXRpb24gPSBmb3JtRmxvd0luc3RhbmNlLnN0ZXAudHlwZVByb3BlcnRpZXMuZGVmaW5pdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLmVuYWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2PlxuICA8ZGl2IGJvZHkgKm5nSWY9XCJmb3JtRGVmaW5pdGlvbiAmJiAoZm9ybUZsb3dTdGVwVHlwZSQgfCBhc3luYykgPT09ICdmb3JtJ1wiPlxuICAgIDx2YWx0aW1vLWZvcm0taW9cbiAgICAgICNmb3JtXG4gICAgICBbZm9ybV09XCJmb3JtRGVmaW5pdGlvblwiXG4gICAgICAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIlxuICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtvcHRpb25zXT1cImZvcm1pb09wdGlvbnNcIlxuICAgID48L3ZhbHRpbW8tZm9ybS1pbz5cbiAgPC9kaXY+XG4gIDxkaXYgYm9keSAqbmdJZj1cIihmb3JtRmxvd1N0ZXBUeXBlJCB8IGFzeW5jKSA9PT0gJ2N1c3RvbS1jb21wb25lbnQnXCI+XG4gICAgPHZhbHRpbW8tZm9ybS1mbG93LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyXG4gICAgICBbY29tcG9uZW50SWRdPVwiRm9ybUZsb3dDdXN0b21Db21wb25lbnRJZCQgfCBhc3luY1wiXG4gICAgICBbZm9ybUZsb3dJbnN0YW5jZUlkXT1cImZvcm1GbG93SW5zdGFuY2VJZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgICAgKHN1Ym1pdEV2ZW50KT1cIm9uU3VibWl0KCRldmVudClcIlxuICAgICAgKGNoYW5nZUV2ZW50KT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICA8L3ZhbHRpbW8tZm9ybS1mbG93LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,107 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef, } from '@angular/core';
17
+ import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
18
+ import { tap } from 'rxjs/operators';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "../../services";
21
+ export class FormFlowConfigurationContainerComponent {
22
+ set disabled(disabledValue) {
23
+ this._disabled$.next(disabledValue);
24
+ }
25
+ set componentId(value) {
26
+ this._componentId$.next(value);
27
+ }
28
+ set formFlowInstanceId(value) {
29
+ this._formFlowInstanceId$.next(value);
30
+ }
31
+ constructor(formFlowComponentService) {
32
+ this.formFlowComponentService = formFlowComponentService;
33
+ this.changeEvent = new EventEmitter();
34
+ this.submitEvent = new EventEmitter();
35
+ this._subscriptions = new Subscription();
36
+ this._componentRef$ = new BehaviorSubject(undefined);
37
+ this._disabled$ = new BehaviorSubject(false);
38
+ this._componentId$ = new BehaviorSubject('');
39
+ this._formFlowInstanceId$ = new BehaviorSubject('');
40
+ }
41
+ ngOnInit() {
42
+ this.openConfigurationComponentSubscription();
43
+ this.openComponentInstanceSubscription();
44
+ this.openDisabledSubscription();
45
+ }
46
+ ngOnDestroy() {
47
+ this._subscriptions.unsubscribe();
48
+ }
49
+ openConfigurationComponentSubscription() {
50
+ this._subscriptions.add(combineLatest([this.formFlowComponentService.supportedComponents$, this._componentId$])
51
+ .pipe(tap(([supportedComponents, componentId]) => {
52
+ const configurationComponent = supportedComponents.find(component => component.id === componentId);
53
+ this._dynamicContainer.clear();
54
+ if (configurationComponent) {
55
+ const componentRef = this._dynamicContainer.createComponent(configurationComponent.component);
56
+ this._componentRef$.next(componentRef);
57
+ }
58
+ }))
59
+ .subscribe());
60
+ }
61
+ openComponentInstanceSubscription() {
62
+ this._subscriptions.add(combineLatest([this._componentRef$, this._formFlowInstanceId$]).subscribe(([ref, formFlowInstanceId]) => {
63
+ const instance = ref?.instance;
64
+ this._submitSubscription?.unsubscribe();
65
+ this._changeSubscription?.unsubscribe();
66
+ if (instance) {
67
+ if (formFlowInstanceId) {
68
+ instance.formFlowInstanceId = formFlowInstanceId;
69
+ }
70
+ this._changeSubscription = instance.changeEvent.subscribe(change => {
71
+ this.changeEvent.emit(change);
72
+ });
73
+ this._submitSubscription = instance.submitEvent.subscribe(submit => {
74
+ this.submitEvent.emit(submit);
75
+ });
76
+ }
77
+ }));
78
+ }
79
+ openDisabledSubscription() {
80
+ this._subscriptions.add(combineLatest([this._componentRef$, this._disabled$]).subscribe(([ref, disabled]) => {
81
+ const instance = ref?.instance;
82
+ if (instance) {
83
+ instance.disabled = disabled;
84
+ }
85
+ }));
86
+ }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFlowConfigurationContainerComponent, deps: [{ token: i1.FormFlowComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormFlowConfigurationContainerComponent, selector: "valtimo-form-flow-configuration-container", inputs: { disabled: "disabled", componentId: "componentId", formFlowInstanceId: "formFlowInstanceId" }, outputs: { changeEvent: "changeEvent", submitEvent: "submitEvent" }, viewQueries: [{ propertyName: "_dynamicContainer", first: true, predicate: ["formFlowConfigurationComponent"], descendants: true, read: ViewContainerRef, static: true }], 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-template #formFlowConfigurationComponent></ng-template>\n" }); }
89
+ }
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFlowConfigurationContainerComponent, decorators: [{
91
+ type: Component,
92
+ args: [{ selector: 'valtimo-form-flow-configuration-container', 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-template #formFlowConfigurationComponent></ng-template>\n" }]
93
+ }], ctorParameters: () => [{ type: i1.FormFlowComponentService }], propDecorators: { _dynamicContainer: [{
94
+ type: ViewChild,
95
+ args: ['formFlowConfigurationComponent', { static: true, read: ViewContainerRef }]
96
+ }], disabled: [{
97
+ type: Input
98
+ }], componentId: [{
99
+ type: Input
100
+ }], formFlowInstanceId: [{
101
+ type: Input
102
+ }], changeEvent: [{
103
+ type: Output
104
+ }], submitEvent: [{
105
+ type: Output
106
+ }] } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1mbG93LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWZsb3ctY29uZmlndXJhdGlvbi1jb250YWluZXIvZm9ybS1mbG93LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWZsb3ctY29uZmlndXJhdGlvbi1jb250YWluZXIvZm9ybS1mbG93LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQVNuQyxNQUFNLE9BQU8sdUNBQXVDO0lBS2xELElBQW9CLFFBQVEsQ0FBQyxhQUFzQjtRQUNqRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBb0IsV0FBVyxDQUFDLEtBQWE7UUFDM0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQW9CLGtCQUFrQixDQUFDLEtBQWE7UUFDbEQsSUFBSSxDQUFDLG9CQUFv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QUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNsRixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsUUFBUSxDQUFDO1lBRS9CLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsUUFBUSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzhHQXBHVSx1Q0FBdUM7a0dBQXZDLHVDQUF1Qyw4V0FHZ0IsZ0JBQWdCLDJDQ3hDcEYsK3NCQWlCQTs7MkZEb0JhLHVDQUF1QztrQkFKbkQsU0FBUzsrQkFDRSwyQ0FBMkM7NkZBT3BDLGlCQUFpQjtzQkFEakMsU0FBUzt1QkFBQyxnQ0FBZ0MsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFDO2dCQUUvRCxRQUFRO3NCQUEzQixLQUFLO2dCQUdjLFdBQVc7c0JBQTlCLEtBQUs7Z0JBR2Msa0JBQWtCO3NCQUFyQyxLQUFLO2dCQUdXLFdBQVc7c0JBQTNCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3RhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDaGFuZ2VFdmVudCwgRm9ybUZsb3dDdXN0b21Db21wb25lbnR9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0Zvcm1GbG93Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtGb3JtaW9TdWJtaXNzaW9ufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1mb3JtLWZsb3ctY29uZmlndXJhdGlvbi1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1mbG93LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZsb3dDb25maWd1cmF0aW9uQ29udGFpbmVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEZvcm1GbG93Q3VzdG9tQ29tcG9uZW50XG57XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1GbG93Q29uZmlndXJhdGlvbkNvbXBvbmVudCcsIHtzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuICBwcml2YXRlIHJlYWRvbmx5IF9keW5hbWljQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRpc2FibGVkKGRpc2FibGVkVmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCQubmV4dChkaXNhYmxlZFZhbHVlKTtcbiAgfVxuICBASW5wdXQoKSBwdWJsaWMgc2V0IGNvbXBvbmVudElkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb21wb25lbnRJZCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCBmb3JtRmxvd0luc3RhbmNlSWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1GbG93SW5zdGFuY2VJZCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hhbmdlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc3VibWl0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1pb1N1Ym1pc3Npb24+KCk7XG5cbiAgcHJpdmF0ZSBfY2hhbmdlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9zdWJtaXRTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tcG9uZW50UmVmJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgQ29tcG9uZW50UmVmPEZvcm1GbG93Q3VzdG9tQ29tcG9uZW50PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb21wb25lbnRJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtRmxvd0luc3RhbmNlSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZvcm1GbG93Q29tcG9uZW50U2VydmljZTogRm9ybUZsb3dDb21wb25lbnRTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Db25maWd1cmF0aW9uQ29tcG9uZW50U3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5vcGVuQ29tcG9uZW50SW5zdGFuY2VTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLm9wZW5EaXNhYmxlZFN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNvbmZpZ3VyYXRpb25Db21wb25lbnRTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmZvcm1GbG93Q29tcG9uZW50U2VydmljZS5zdXBwb3J0ZWRDb21wb25lbnRzJCwgdGhpcy5fY29tcG9uZW50SWQkXSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKChbc3VwcG9ydGVkQ29tcG9uZW50cywgY29tcG9uZW50SWRdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uQ29tcG9uZW50ID0gc3VwcG9ydGVkQ29tcG9uZW50cy5maW5kKFxuICAgICAgICAgICAgICBjb21wb25lbnQgPT4gY29tcG9uZW50LmlkID09PSBjb21wb25lbnRJZFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5fZHluYW1pY0NvbnRhaW5lci5jbGVhcigpO1xuXG4gICAgICAgICAgICBpZiAoY29uZmlndXJhdGlvbkNvbXBvbmVudCkge1xuICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9keW5hbWljQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uQ29tcG9uZW50LmNvbXBvbmVudFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYkLm5leHQoY29tcG9uZW50UmVmKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5Db21wb25lbnRJbnN0YW5jZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2NvbXBvbmVudFJlZiQsIHRoaXMuX2Zvcm1GbG93SW5zdGFuY2VJZCRdKS5zdWJzY3JpYmUoXG4gICAgICAgIChbcmVmLCBmb3JtRmxvd0luc3RhbmNlSWRdKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSByZWY/Lmluc3RhbmNlO1xuXG4gICAgICAgICAgdGhpcy5fc3VibWl0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIHRoaXMuX2NoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgaWYgKGZvcm1GbG93SW5zdGFuY2VJZCkge1xuICAgICAgICAgICAgICBpbnN0YW5jZS5mb3JtRmxvd0luc3RhbmNlSWQgPSBmb3JtRmxvd0luc3RhbmNlSWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZVN1YnNjcmlwdGlvbiA9IGluc3RhbmNlLmNoYW5nZUV2ZW50LnN1YnNjcmliZShjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQoY2hhbmdlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLl9zdWJtaXRTdWJzY3JpcHRpb24gPSBpbnN0YW5jZS5zdWJtaXRFdmVudC5zdWJzY3JpYmUoc3VibWl0ID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zdWJtaXRFdmVudC5lbWl0KHN1Ym1pdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRGlzYWJsZWRTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl9jb21wb25lbnRSZWYkLCB0aGlzLl9kaXNhYmxlZCRdKS5zdWJzY3JpYmUoKFtyZWYsIGRpc2FibGVkXSkgPT4ge1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHJlZj8uaW5zdGFuY2U7XG5cbiAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgaW5zdGFuY2UuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy10ZW1wbGF0ZSAjZm9ybUZsb3dDb25maWd1cmF0aW9uQ29tcG9uZW50PjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export * from './form-flow-configuration-container.component';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3MtbGluay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1mbG93LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYywrQ0FBK0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1mbG93LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,150 @@
1
+ /*
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component, EventEmitter, Output, ViewChild, } from '@angular/core';
17
+ import BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';
18
+ import { combineLatest } from 'rxjs';
19
+ import { map } from 'rxjs/operators';
20
+ import * as i0 from "@angular/core";
21
+ import * as i1 from "@valtimo/process";
22
+ import * as i2 from "@angular/router";
23
+ import * as i3 from "@valtimo/components";
24
+ import * as i4 from "@angular/common";
25
+ import * as i5 from "@angular/forms";
26
+ import * as i6 from "carbon-components-angular";
27
+ export class FormLinkProcessDiagramComponent {
28
+ constructor(processService, route, pageTitleService) {
29
+ this.processService = processService;
30
+ this.route = route;
31
+ this.pageTitleService = pageTitleService;
32
+ this.bpmnElementModalOpen = new EventEmitter();
33
+ this.bpmnElementModalClose = new EventEmitter();
34
+ this.callbacksAdded = false;
35
+ }
36
+ ngOnInit() {
37
+ this.pageTitleService.disableReset();
38
+ combineLatest([this.route.queryParams, this.processService.getProcessDefinitions()])
39
+ .pipe(map(([queryParams, processDefinitions]) => ({ queryParams, processDefinitions })))
40
+ .subscribe(response => {
41
+ this.processDefinitions = response.processDefinitions;
42
+ if (response.queryParams.process) {
43
+ this.processDefinitionKey = response.queryParams.process;
44
+ this.loadProcessDefinitionFromKey(this.processDefinitionKey);
45
+ this.bpmnElementModalOpen.emit({
46
+ element: {
47
+ id: 'start-event',
48
+ type: 'bpmn:StartEvent',
49
+ },
50
+ processDefinitionKey: this.processDefinitionKey,
51
+ processDefinitionId: this.processDefinitionId,
52
+ });
53
+ }
54
+ if (!this.processDefinitionKey && response.processDefinitions.length !== 0) {
55
+ this.processDefinitionKey = response.processDefinitions[0].key;
56
+ this.loadProcessDefinitionFromKey(this.processDefinitionKey);
57
+ }
58
+ });
59
+ this.bpmnJS = new BpmnJS();
60
+ this.bpmnJS.on('import.done', ({ error }) => {
61
+ if (!error) {
62
+ const canvas = this.bpmnJS.get('canvas');
63
+ const eventBus = this.bpmnJS.get('eventBus');
64
+ canvas.zoom('fit-viewport', 'auto');
65
+ if (this.processDefinitionVersions && !this.callbacksAdded) {
66
+ eventBus.on('element.click', e => {
67
+ let activityListenerType = e.element.businessObject.$type;
68
+ if (activityListenerType === 'bpmn:UserTask') {
69
+ activityListenerType += ':create';
70
+ }
71
+ else {
72
+ activityListenerType += ':start';
73
+ }
74
+ this.bpmnElementModalOpen.emit({
75
+ element: {
76
+ id: e.element.businessObject.id,
77
+ type: e.element.businessObject.$type,
78
+ activityListenerType,
79
+ name: e.element?.businessObject?.name,
80
+ },
81
+ processDefinitionKey: this.processDefinitionKey,
82
+ processDefinitionId: this.processDefinitionId,
83
+ });
84
+ });
85
+ this.callbacksAdded = true;
86
+ }
87
+ }
88
+ });
89
+ }
90
+ ngOnDestroy() {
91
+ this.bpmnElementModalClose.emit();
92
+ if (this.bpmnJS) {
93
+ this.bpmnJS.destroy();
94
+ }
95
+ this.pageTitleService.enableReset();
96
+ }
97
+ loadProcessDefinition(processDefinitionKey) {
98
+ this.processService
99
+ .getProcessDefinition(processDefinitionKey)
100
+ .subscribe((processDefinition) => {
101
+ this.processDefinitionId = processDefinition.id;
102
+ this.version = processDefinition.version;
103
+ this.loadProcessDefinitionXml(processDefinition.id);
104
+ });
105
+ }
106
+ loadProcessDefinitionVersions(processDefinitionKey) {
107
+ this.processService
108
+ .getProcessDefinitionVersions(processDefinitionKey)
109
+ .subscribe((processDefinitionVersions) => {
110
+ this.processDefinitionVersions = processDefinitionVersions;
111
+ });
112
+ }
113
+ loadProcessDefinitionFromKey(processDefinitionKey) {
114
+ this.loadProcessDefinitionVersions(processDefinitionKey);
115
+ this.loadProcessDefinition(processDefinitionKey);
116
+ }
117
+ loadProcessDefinitionXml(processDefinitionId) {
118
+ this.processService.getProcessDefinitionXml(processDefinitionId).subscribe(response => {
119
+ this.processDiagram = response;
120
+ this.bpmnJS.importXML(this.processDiagram.bpmn20Xml);
121
+ this.bpmnJS.attachTo(this.el.nativeElement);
122
+ });
123
+ }
124
+ setProcessDefinitionKey(processDefinitionKey) {
125
+ this.processDefinitionKey = processDefinitionKey;
126
+ this.loadProcessDefinitionFromKey(this.processDefinitionKey);
127
+ }
128
+ setProcessDefinitionVersion(version) {
129
+ const processDefinitionId = this.processDefinitionVersions.find(definition => definition.version === +version)?.id;
130
+ if (processDefinitionId) {
131
+ this.processDefinitionId = processDefinitionId;
132
+ this.loadProcessDefinitionXml(this.processDefinitionId);
133
+ }
134
+ this.version = +version;
135
+ }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormLinkProcessDiagramComponent, deps: [{ token: i1.ProcessService }, { token: i2.ActivatedRoute }, { token: i3.PageTitleService }], target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormLinkProcessDiagramComponent, selector: "valtimo-form-link-process-diagram", outputs: { bpmnElementModalOpen: "bpmnElementModalOpen", bpmnElementModalClose: "bpmnElementModalClose" }, viewQueries: [{ propertyName: "el", first: true, predicate: ["ref"], descendants: true }], 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 class=\"container-fluid\">\n <div class=\"row p-4 bg-white\">\n <div class=\"col\">\n <div #ref class=\"diagram-container\"></div>\n </div>\n </div>\n</div>\n<div class=\"p-4 text-center legenda-holder\">\n <span>Click on a User Task to specify a form definition for that User Task.</span>\n</div>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"form-link-dossier-actions\">\n <cds-select [label]=\"'Process'\" (change)=\"setProcessDefinitionKey($event.target.value)\"\n ><option\n *ngFor=\"let processDefinition of processDefinitions\"\n [value]=\"processDefinition.key\"\n [selected]=\"processDefinitionKey === processDefinition.key\"\n >\n {{ processDefinition.name }}\n </option>\n </cds-select>\n <cds-select [label]=\"'Version'\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option\n *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\"\n >\n {{ processDefinitionVersion.version }}\n </option>\n </cds-select>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".diagram-container-switch-holder{width:100%;z-index:1000}.diagram-container{height:58vh}.container-fluid{border:1px solid #dee2e6}.options{border-bottom:1px solid #dee2e6}.form-link-dossier-actions{display:flex;flex-direction:row;gap:8px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i6.Select, selector: "cds-select, ibm-select", inputs: ["display", "label", "helperText", "invalidText", "warn", "warnText", "id", "size", "disabled", "skeleton", "invalid", "theme", "ariaLabel", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i6.Option, selector: "option" }] }); }
138
+ }
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormLinkProcessDiagramComponent, decorators: [{
140
+ type: Component,
141
+ args: [{ selector: 'valtimo-form-link-process-diagram', 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 class=\"container-fluid\">\n <div class=\"row p-4 bg-white\">\n <div class=\"col\">\n <div #ref class=\"diagram-container\"></div>\n </div>\n </div>\n</div>\n<div class=\"p-4 text-center legenda-holder\">\n <span>Click on a User Task to specify a form definition for that User Task.</span>\n</div>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"form-link-dossier-actions\">\n <cds-select [label]=\"'Process'\" (change)=\"setProcessDefinitionKey($event.target.value)\"\n ><option\n *ngFor=\"let processDefinition of processDefinitions\"\n [value]=\"processDefinition.key\"\n [selected]=\"processDefinitionKey === processDefinition.key\"\n >\n {{ processDefinition.name }}\n </option>\n </cds-select>\n <cds-select [label]=\"'Version'\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option\n *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\"\n >\n {{ processDefinitionVersion.version }}\n </option>\n </cds-select>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".diagram-container-switch-holder{width:100%;z-index:1000}.diagram-container{height:58vh}.container-fluid{border:1px solid #dee2e6}.options{border-bottom:1px solid #dee2e6}.form-link-dossier-actions{display:flex;flex-direction:row;gap:8px}\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"] }]
142
+ }], ctorParameters: () => [{ type: i1.ProcessService }, { type: i2.ActivatedRoute }, { type: i3.PageTitleService }], propDecorators: { el: [{
143
+ type: ViewChild,
144
+ args: ['ref']
145
+ }], bpmnElementModalOpen: [{
146
+ type: Output
147
+ }], bpmnElementModalClose: [{
148
+ type: Output
149
+ }] } });
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1saW5rLXByb2Nlc3MtZGlhZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3MtbGluay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1saW5rLXByb2Nlc3MtZGlhZ3JhbS9mb3JtLWxpbmstcHJvY2Vzcy1kaWFncmFtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWxpbmstcHJvY2Vzcy1kaWFncmFtL2Zvcm0tbGluay1wcm9jZXNzLWRpYWdyYW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFHWixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sTUFBTSxNQUFNLHNEQUFzRCxDQUFDO0FBRTFFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVFuQyxNQUFNLE9BQU8sK0JBQStCO0lBZ0IxQyxZQUNtQixjQUE4QixFQUM5QixLQUFxQixFQUNyQixnQkFBa0M7UUFGbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFmcEMseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0QsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFRdkUsbUJBQWMsR0FBRyxLQUFLLENBQUM7SUFPNUIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMs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a0dBQS9CLCtCQUErQiwrUUN0QzVDLDg2REFtREE7OzJGRGJhLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSxtQ0FBbUM7K0lBT3BCLEVBQUU7c0JBQTFCLFNBQVM7dUJBQUMsS0FBSztnQkFDQyxvQkFBb0I7c0JBQXBDLE1BQU07Z0JBQ1UscUJBQXFCO3NCQUFyQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Byb2Nlc3NEZWZpbml0aW9uLCBQcm9jZXNzU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vcHJvY2Vzcyc7XG5cbmltcG9ydCBCcG1uSlMgZnJvbSAnYnBtbi1qcy9kaXN0L2JwbW4tbmF2aWdhdGVkLXZpZXdlci5wcm9kdWN0aW9uLm1pbi5qcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWZvcm0tbGluay1wcm9jZXNzLWRpYWdyYW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1saW5rLXByb2Nlc3MtZGlhZ3JhbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tbGluay1wcm9jZXNzLWRpYWdyYW0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUxpbmtQcm9jZXNzRGlhZ3JhbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBicG1uSlM6IEJwbW5KUztcblxuICBAVmlld0NoaWxkKCdyZWYnKSBwdWJsaWMgZWw6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBwdWJsaWMgYnBtbkVsZW1lbnRNb2RhbE9wZW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIGJwbW5FbGVtZW50TW9kYWxDbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHByb2Nlc3NEZWZpbml0aW9uS2V5OiBzdHJpbmc7XG4gIHB1YmxpYyBwcm9jZXNzRGVmaW5pdGlvbnM6IFByb2Nlc3NEZWZpbml0aW9uW107XG4gIHB1YmxpYyBwcm9jZXNzRGlhZ3JhbTogYW55O1xuICBwdWJsaWMgcHJvY2Vzc0RlZmluaXRpb246IFByb2Nlc3NEZWZpbml0aW9uO1xuICBwdWJsaWMgcHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uczogUHJvY2Vzc0RlZmluaXRpb25bXTtcbiAgcHVibGljIHZlcnNpb246IG51bWJlcjtcbiAgcHJpdmF0ZSBjYWxsYmFja3NBZGRlZCA9IGZhbHNlO1xuICBwcml2YXRlIHByb2Nlc3NEZWZpbml0aW9uSWQhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9jZXNzU2VydmljZTogUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlVGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBhZ2VUaXRsZVNlcnZpY2UuZGlzYWJsZVJlc2V0KCk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcywgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzRGVmaW5pdGlvbnMoKV0pXG4gICAgICAucGlwZShtYXAoKFtxdWVyeVBhcmFtcywgcHJvY2Vzc0RlZmluaXRpb25zXSkgPT4gKHtxdWVyeVBhcmFtcywgcHJvY2Vzc0RlZmluaXRpb25zfSkpKVxuICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25zID0gcmVzcG9uc2UucHJvY2Vzc0RlZmluaXRpb25zO1xuICAgICAgICBpZiAocmVzcG9uc2UucXVlcnlQYXJhbXMucHJvY2Vzcykge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkgPSByZXNwb25zZS5xdWVyeVBhcmFtcy5wcm9jZXNzO1xuICAgICAgICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uRnJvbUtleSh0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5KTtcbiAgICAgICAgICB0aGlzLmJwbW5FbGVtZW50TW9kYWxPcGVuLmVtaXQoe1xuICAgICAgICAgICAgZWxlbWVudDoge1xuICAgICAgICAgICAgICBpZDogJ3N0YXJ0LWV2ZW50JyxcbiAgICAgICAgICAgICAgdHlwZTogJ2JwbW46U3RhcnRFdmVudCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXk6IHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbklkOiB0aGlzLnByb2Nlc3NEZWZpbml0aW9uSWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5ICYmIHJlc3BvbnNlLnByb2Nlc3NEZWZpbml0aW9ucy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uS2V5ID0gcmVzcG9uc2UucHJvY2Vzc0RlZmluaXRpb25zWzBdLmtleTtcbiAgICAgICAgICB0aGlzLmxvYWRQcm9jZXNzRGVmaW5pdGlvbkZyb21LZXkodGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuYnBtbkpTID0gbmV3IEJwbW5KUygpO1xuICAgIHRoaXMuYnBtbkpTLm9uKCdpbXBvcnQuZG9uZScsICh7ZXJyb3J9OiBhbnkpID0+IHtcbiAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgY29uc3QgY2FudmFzID0gdGhpcy5icG1uSlMuZ2V0KCdjYW52YXMnKTtcbiAgICAgICAgY29uc3QgZXZlbnRCdXMgPSB0aGlzLmJwbW5KUy5nZXQoJ2V2ZW50QnVzJyk7XG4gICAgICAgIGNhbnZhcy56b29tKCdmaXQtdmlld3BvcnQnLCAnYXV0bycpO1xuXG4gICAgICAgIGlmICh0aGlzLnByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMgJiYgIXRoaXMuY2FsbGJhY2tzQWRkZWQpIHtcbiAgICAgICAgICBldmVudEJ1cy5vbignZWxlbWVudC5jbGljaycsIGUgPT4ge1xuICAgICAgICAgICAgbGV0IGFjdGl2aXR5TGlzdGVuZXJUeXBlID0gZS5lbGVtZW50LmJ1c2luZXNzT2JqZWN0LiR0eXBlO1xuICAgICAgICAgICAgaWYgKGFjdGl2aXR5TGlzdGVuZXJUeXBlID09PSAnYnBtbjpVc2VyVGFzaycpIHtcbiAgICAgICAgICAgICAgYWN0aXZpdHlMaXN0ZW5lclR5cGUgKz0gJzpjcmVhdGUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYWN0aXZpdHlMaXN0ZW5lclR5cGUgKz0gJzpzdGFydCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuYnBtbkVsZW1lbnRNb2RhbE9wZW4uZW1pdCh7XG4gICAgICAgICAgICAgIGVsZW1lbnQ6IHtcbiAgICAgICAgICAgICAgICBpZDogZS5lbGVtZW50LmJ1c2luZXNzT2JqZWN0LmlkLFxuICAgICAgICAgICAgICAgIHR5cGU6IGUuZWxlbWVudC5idXNpbmVzc09iamVjdC4kdHlwZSxcbiAgICAgICAgICAgICAgICBhY3Rpdml0eUxpc3RlbmVyVHlwZSxcbiAgICAgICAgICAgICAgICBuYW1lOiBlLmVsZW1lbnQ/LmJ1c2luZXNzT2JqZWN0Py5uYW1lLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbktleTogdGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSxcbiAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25JZDogdGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5jYWxsYmFja3NBZGRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuYnBtbkVsZW1lbnRNb2RhbENsb3NlLmVtaXQoKTtcbiAgICBpZiAodGhpcy5icG1uSlMpIHtcbiAgICAgIHRoaXMuYnBtbkpTLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy5wYWdlVGl0bGVTZXJ2aWNlLmVuYWJsZVJlc2V0KCk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFByb2Nlc3NEZWZpbml0aW9uKHByb2Nlc3NEZWZpbml0aW9uS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlXG4gICAgICAuZ2V0UHJvY2Vzc0RlZmluaXRpb24ocHJvY2Vzc0RlZmluaXRpb25LZXkpXG4gICAgICAuc3Vic2NyaWJlKChwcm9jZXNzRGVmaW5pdGlvbjogUHJvY2Vzc0RlZmluaXRpb24pID0+IHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkID0gcHJvY2Vzc0RlZmluaXRpb24uaWQ7XG4gICAgICAgIHRoaXMudmVyc2lvbiA9IHByb2Nlc3NEZWZpbml0aW9uLnZlcnNpb247XG4gICAgICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uWG1sKHByb2Nlc3NEZWZpbml0aW9uLmlkKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxvYWRQcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zKHByb2Nlc3NEZWZpbml0aW9uS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnByb2Nlc3NTZXJ2aWNlXG4gICAgICAuZ2V0UHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucyhwcm9jZXNzRGVmaW5pdGlvbktleSlcbiAgICAgIC5zdWJzY3JpYmUoKHByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnM6IFByb2Nlc3NEZWZpbml0aW9uW10pID0+IHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvblZlcnNpb25zID0gcHJvY2Vzc0RlZmluaXRpb25WZXJzaW9ucztcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGxvYWRQcm9jZXNzRGVmaW5pdGlvbkZyb21LZXkocHJvY2Vzc0RlZmluaXRpb25LZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMocHJvY2Vzc0RlZmluaXRpb25LZXkpO1xuICAgIHRoaXMubG9hZFByb2Nlc3NEZWZpbml0aW9uKHByb2Nlc3NEZWZpbml0aW9uS2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkUHJvY2Vzc0RlZmluaXRpb25YbWwocHJvY2Vzc0RlZmluaXRpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wcm9jZXNzU2VydmljZS5nZXRQcm9jZXNzRGVmaW5pdGlvblhtbChwcm9jZXNzRGVmaW5pdGlvbklkKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzRGlhZ3JhbSA9IHJlc3BvbnNlO1xuICAgICAgdGhpcy5icG1uSlMuaW1wb3J0WE1MKHRoaXMucHJvY2Vzc0RpYWdyYW0uYnBtbjIwWG1sKTtcbiAgICAgIHRoaXMuYnBtbkpTLmF0dGFjaFRvKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0UHJvY2Vzc0RlZmluaXRpb25LZXkocHJvY2Vzc0RlZmluaXRpb25LZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25LZXkgPSBwcm9jZXNzRGVmaW5pdGlvbktleTtcbiAgICB0aGlzLmxvYWRQcm9jZXNzRGVmaW5pdGlvbkZyb21LZXkodGhpcy5wcm9jZXNzRGVmaW5pdGlvbktleSk7XG4gIH1cblxuICBwdWJsaWMgc2V0UHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uKHZlcnNpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHByb2Nlc3NEZWZpbml0aW9uSWQgPSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbnMuZmluZChcbiAgICAgIGRlZmluaXRpb24gPT4gZGVmaW5pdGlvbi52ZXJzaW9uID09PSArdmVyc2lvblxuICAgICk/LmlkO1xuXG4gICAgaWYgKHByb2Nlc3NEZWZpbml0aW9uSWQpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25JZCA9IHByb2Nlc3NEZWZpbml0aW9uSWQ7XG4gICAgICB0aGlzLmxvYWRQcm9jZXNzRGVmaW5pdGlvblhtbCh0aGlzLnByb2Nlc3NEZWZpbml0aW9uSWQpO1xuICAgIH1cblxuICAgIHRoaXMudmVyc2lvbiA9ICt2ZXJzaW9uO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cbiAgPGRpdiBjbGFzcz1cInJvdyBwLTQgYmctd2hpdGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICA8ZGl2ICNyZWYgY2xhc3M9XCJkaWFncmFtLWNvbnRhaW5lclwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInAtNCB0ZXh0LWNlbnRlciBsZWdlbmRhLWhvbGRlclwiPlxuICA8c3Bhbj5DbGljayBvbiBhIFVzZXIgVGFzayB0byBzcGVjaWZ5IGEgZm9ybSBkZWZpbml0aW9uIGZvciB0aGF0IFVzZXIgVGFzay48L3NwYW4+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciByZW5kZXJJblBhZ2VIZWFkZXIgW2Z1bGxXaWR0aF09XCJ0cnVlXCI+XG4gIDxuZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1saW5rLWRvc3NpZXItYWN0aW9uc1wiPlxuICAgICAgPGNkcy1zZWxlY3QgW2xhYmVsXT1cIidQcm9jZXNzJ1wiIChjaGFuZ2UpPVwic2V0UHJvY2Vzc0RlZmluaXRpb25LZXkoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICA+PG9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9jZXNzRGVmaW5pdGlvbiBvZiBwcm9jZXNzRGVmaW5pdGlvbnNcIlxuICAgICAgICAgIFt2YWx1ZV09XCJwcm9jZXNzRGVmaW5pdGlvbi5rZXlcIlxuICAgICAgICAgIFtzZWxlY3RlZF09XCJwcm9jZXNzRGVmaW5pdGlvbktleSA9PT0gcHJvY2Vzc0RlZmluaXRpb24ua2V5XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHByb2Nlc3NEZWZpbml0aW9uLm5hbWUgfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L2Nkcy1zZWxlY3Q+XG4gICAgICA8Y2RzLXNlbGVjdCBbbGFiZWxdPVwiJ1ZlcnNpb24nXCIgKGNoYW5nZSk9XCJzZXRQcm9jZXNzRGVmaW5pdGlvblZlcnNpb24oJGV2ZW50LnRhcmdldC52YWx1ZSlcIj5cbiAgICAgICAgPG9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9jZXNzRGVmaW5pdGlvblZlcnNpb24gb2YgcHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uc1wiXG4gICAgICAgICAgW3ZhbHVlXT1cInByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbi52ZXJzaW9uXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwicHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uLnZlcnNpb24gPT09IHZlcnNpb25cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uLnZlcnNpb24gfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L2Nkcy1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==