@valtimo/process-link 12.26.0 → 12.27.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.
@@ -82,10 +82,10 @@ export class ProcessLinkModalComponent {
82
82
  this.processLinkStateService.setViewModelEnabled(value);
83
83
  }
84
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]", inputs: ["enableOverflow"] }, { 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" }] }); }
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 selectedPluginConfiguration: selectedPluginConfiguration$ | 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\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 <h4 cdsModalHeaderLabel *ngIf=\"obs.typeOfSelectedProgressLink === 'plugin'\">\n {{\n 'processLinkConfiguration.pluginConfiguration'\n | translate: {pluginConfigTitle: obs.selectedPluginConfiguration?.title || '-'}\n }}\n </h4>\n <div class=\"process-link-progress\">\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]", inputs: ["enableOverflow"] }, { 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" }] }); }
86
86
  }
87
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProcessLinkModalComponent, decorators: [{
88
88
  type: Component,
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"] }]
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 selectedPluginConfiguration: selectedPluginConfiguration$ | 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\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 <h4 cdsModalHeaderLabel *ngIf=\"obs.typeOfSelectedProgressLink === 'plugin'\">\n {{\n 'processLinkConfiguration.pluginConfiguration'\n | translate: {pluginConfigTitle: obs.selectedPluginConfiguration?.title || '-'}\n }}\n </h4>\n <div class=\"process-link-progress\">\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
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQVF4QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRcEMsTUFBTSxPQUFPLHlCQUF5QjtJQXFCcEMsWUFDbUIsWUFBcUMsRUFDckMsV0FBbUMsRUFDbkMsYUFBdUMsRUFDdkMsa0JBQXNDLEVBQ3RDLGtCQUFzQyxFQUN0Qyx1QkFBZ0QsRUFDaEQsYUFBNEI7UUFONUIsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUEzQi9CLGVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUNsRCxXQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDakMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO1FBQ2pELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7UUFDckQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCxvQkFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDO1FBQ3JELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7UUFDckQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCwyQkFBc0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1FBQ2xFLFlBQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNwQywrQkFBMEIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDO1FBQzFFLHNCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFDeEQsaUNBQTRCLEdBQzFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQztRQUV2Qyx3QkFBbUIsR0FDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDO0lBVTVELENBQUM7SUFFSixVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRTtZQUNuRixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUN6RSxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxDQUFDLEVBQ0QsR0FBRyxFQUFFO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQWhFVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixrRUNoQ3RDLG96TUFvS0E7OzRGRHBJYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUGx1Z2luU3RhdGVTZXJ2aWNlLFxuICBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU2VydmljZSxcbiAgUHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU3RlcFNlcnZpY2UsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXByb2Nlc3MtbGluay1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLWxpbmstbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzLWxpbmstbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0xpbmtNb2RhbENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBzaG93TW9kYWwkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc2hvd01vZGFsJDtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NTdGVwTmFtZSQgPSB0aGlzLnN0YXRlU2VydmljZS5lbGVtZW50TmFtZSQ7XG4gIHB1YmxpYyByZWFkb25seSBzdGVwcyQgPSB0aGlzLnN0ZXBTZXJ2aWNlLnN0ZXBzJDtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRTdGVwSW5kZXgkID0gdGhpcy5zdGVwU2VydmljZS5jdXJyZW50U3RlcEluZGV4JDtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRTdGVwSWQkID0gdGhpcy5zdGVwU2VydmljZS5jdXJyZW50U3RlcElkJDtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTYXZlQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5zaG93U2F2ZUJ1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBlbmFibGVTYXZlQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5lbmFibGVTYXZlQnV0dG9uJDtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dCYWNrQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5zaG93QmFja0J1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBzaG93TmV4dEJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2Uuc2hvd05leHRCdXR0b24kO1xuICBwdWJsaWMgcmVhZG9ubHkgZW5hYmxlTmV4dEJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2UuZW5hYmxlTmV4dEJ1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBoaWRlUHJvZ3Jlc3NJbmRpY2F0b3IkID0gdGhpcy5zdGF0ZVNlcnZpY2UuaGlkZVByb2dyZXNzSW5kaWNhdG9yJDtcbiAgcHVibGljIHJlYWRvbmx5IHNhdmluZyQgPSB0aGlzLnN0YXRlU2VydmljZS5zYXZpbmckO1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZU9mU2VsZWN0ZWRQcm9jZXNzTGluayQgPSB0aGlzLnN0YXRlU2VydmljZS50eXBlT2ZTZWxlY3RlZFByb2Nlc3NMaW5rJDtcbiAgcHVibGljIHJlYWRvbmx5IHZpZXdNb2RlbEVuYWJsZWQkID0gdGhpcy5zdGF0ZVNlcnZpY2Uudmlld01vZGVsRW5hYmxlZCQ7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kID1cbiAgICB0aGlzLnBsdWdpblN0YXRlU2VydmljZS5zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kO1xuXG4gIHB1YmxpYyByZWFkb25seSBzaG93Vmlld01vZGVsVG9nZ2xlID1cbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLmZlYXR1cmVUb2dnbGVzLmVuYWJsZUZvcm1WaWV3TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RlcFNlcnZpY2U6IFByb2Nlc3NMaW5rU3RlcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBidXR0b25TZXJ2aWNlOiBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5TdGF0ZVNlcnZpY2U6IFBsdWdpblN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3NMaW5rU2VydmljZTogUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHt9XG5cbiAgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gIH1cblxuICBiYWNrQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5idXR0b25TZXJ2aWNlLmNsaWNrQmFja0J1dHRvbigpO1xuICB9XG5cbiAgc2F2ZUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYnV0dG9uU2VydmljZS5jbGlja1NhdmVCdXR0b24oKTtcbiAgfVxuXG4gIG5leHRCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmJ1dHRvblNlcnZpY2UuY2xpY2tOZXh0QnV0dG9uKCk7XG4gIH1cblxuICB1bmxpbmtCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zdGFydFNhdmluZygpO1xuXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQcm9jZXNzTGluayQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc2VsZWN0ZWRQcm9jZXNzTGluayA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NMaW5rU2VydmljZS5kZWxldGVQcm9jZXNzTGluayhzZWxlY3RlZFByb2Nlc3NMaW5rLmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+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+PC92YWx0aW1vLXBsdWdpbi1hY3Rpb24tY29uZmlndXJhdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDx2YWx0aW1vLXNlbGVjdC11cmxcbiAgICAgICpuZ0lmPVwib2JzLmN1cnJlbnRTdGVwSWQgPT09ICdzZWxlY3RVUkwnIHx8IG9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluayA9PT0gJ3VybCdcIlxuICAgID48L3ZhbHRpbW8tc2VsZWN0LXVybD5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIlxuICAgICAgICBvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ3VpQ29tcG9uZW50JyB8fCBvYnMudHlwZU9mU2VsZWN0ZWRQcm9ncmVzc0xpbmsgPT09ICd1aS1jb21wb25lbnQnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDx2YWx0aW1vLXNlbGVjdC11aS1jb21wb25lbnQ+PC92YWx0aW1vLXNlbGVjdC11aS1jb21wb25lbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXIgbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLW1vZGFsLWZvb3RlciAqbmdJZj1cIiFvYnMuc2F2aW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj5cbiAgICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCIgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiPlxuICAgICAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJuYXZpZ2F0aW9uLWJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJvYnMuc2hvd0JhY2tCdXR0b24gJiYgIW9icy5zYXZpbmdcIlxuICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICAoY2xpY2spPVwiYmFja0J1dHRvbkNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmJhY2snIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwib2JzLnNob3dOZXh0QnV0dG9uICYmICFvYnMuc2F2aW5nXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5lbmFibGVOZXh0QnV0dG9uID09PSBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJuZXh0QnV0dG9uQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24ubmV4dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJkYW5nZXItLXByaW1hcnlcIlxuICAgICAgICAqbmdJZj1cIm9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGlua1wiXG4gICAgICAgIChjbGljayk9XCJ1bmxpbmtCdXR0b25DbGljaygpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi51bmxpbmsnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwiKG9icy5zaG93U2F2ZUJ1dHRvbiAmJiAhb2JzLnNhdmluZykgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5lbmFibGVTYXZlQnV0dG9uID09PSBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJzYXZlQnV0dG9uQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uY29tcGxldGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcHJvY2Vzcy1saW5rL3NyYy9saWIvY29tcG9uZW50cy9wcm9jZXNzLWxpbmstbW9kYWwvcHJvY2Vzcy1saW5rLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQVF4QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRcEMsTUFBTSxPQUFPLHlCQUF5QjtJQXFCcEMsWUFDbUIsWUFBcUMsRUFDckMsV0FBbUMsRUFDbkMsYUFBdUMsRUFDdkMsa0JBQXNDLEVBQ3RDLGtCQUFzQyxFQUN0Qyx1QkFBZ0QsRUFDaEQsYUFBNEI7UUFONUIsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUEzQi9CLGVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUNsRCxXQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDakMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO1FBQ2pELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7UUFDckQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCxvQkFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDO1FBQ3JELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7UUFDckQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCwyQkFBc0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1FBQ2xFLFlBQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNwQywrQkFBMEIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDO1FBQzFFLHNCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFDeEQsaUNBQTRCLEdBQzFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQztRQUV2Qyx3QkFBbUIsR0FDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDO0lBVTVELENBQUM7SUFFSixVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVoQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRTtZQUNuRixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUN6RSxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxDQUFDLEVBQ0QsR0FBRyxFQUFFO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakMsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQWhFVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixrRUNoQ3RDLGtuTkE0S0E7OzRGRDVJYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUGx1Z2luU3RhdGVTZXJ2aWNlLFxuICBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU2VydmljZSxcbiAgUHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2UsXG4gIFByb2Nlc3NMaW5rU3RlcFNlcnZpY2UsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXByb2Nlc3MtbGluay1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLWxpbmstbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzLWxpbmstbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0xpbmtNb2RhbENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBzaG93TW9kYWwkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc2hvd01vZGFsJDtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NTdGVwTmFtZSQgPSB0aGlzLnN0YXRlU2VydmljZS5lbGVtZW50TmFtZSQ7XG4gIHB1YmxpYyByZWFkb25seSBzdGVwcyQgPSB0aGlzLnN0ZXBTZXJ2aWNlLnN0ZXBzJDtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRTdGVwSW5kZXgkID0gdGhpcy5zdGVwU2VydmljZS5jdXJyZW50U3RlcEluZGV4JDtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRTdGVwSWQkID0gdGhpcy5zdGVwU2VydmljZS5jdXJyZW50U3RlcElkJDtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dTYXZlQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5zaG93U2F2ZUJ1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBlbmFibGVTYXZlQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5lbmFibGVTYXZlQnV0dG9uJDtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dCYWNrQnV0dG9uJCA9IHRoaXMuYnV0dG9uU2VydmljZS5zaG93QmFja0J1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBzaG93TmV4dEJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2Uuc2hvd05leHRCdXR0b24kO1xuICBwdWJsaWMgcmVhZG9ubHkgZW5hYmxlTmV4dEJ1dHRvbiQgPSB0aGlzLmJ1dHRvblNlcnZpY2UuZW5hYmxlTmV4dEJ1dHRvbiQ7XG4gIHB1YmxpYyByZWFkb25seSBoaWRlUHJvZ3Jlc3NJbmRpY2F0b3IkID0gdGhpcy5zdGF0ZVNlcnZpY2UuaGlkZVByb2dyZXNzSW5kaWNhdG9yJDtcbiAgcHVibGljIHJlYWRvbmx5IHNhdmluZyQgPSB0aGlzLnN0YXRlU2VydmljZS5zYXZpbmckO1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZU9mU2VsZWN0ZWRQcm9jZXNzTGluayQgPSB0aGlzLnN0YXRlU2VydmljZS50eXBlT2ZTZWxlY3RlZFByb2Nlc3NMaW5rJDtcbiAgcHVibGljIHJlYWRvbmx5IHZpZXdNb2RlbEVuYWJsZWQkID0gdGhpcy5zdGF0ZVNlcnZpY2Uudmlld01vZGVsRW5hYmxlZCQ7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kID1cbiAgICB0aGlzLnBsdWdpblN0YXRlU2VydmljZS5zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kO1xuXG4gIHB1YmxpYyByZWFkb25seSBzaG93Vmlld01vZGVsVG9nZ2xlID1cbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLmZlYXR1cmVUb2dnbGVzLmVuYWJsZUZvcm1WaWV3TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RlcFNlcnZpY2U6IFByb2Nlc3NMaW5rU3RlcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBidXR0b25TZXJ2aWNlOiBQcm9jZXNzTGlua0J1dHRvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5TdGF0ZVNlcnZpY2U6IFBsdWdpblN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2Nlc3NMaW5rU2VydmljZTogUHJvY2Vzc0xpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2U6IFByb2Nlc3NMaW5rU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHt9XG5cbiAgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gIH1cblxuICBiYWNrQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5idXR0b25TZXJ2aWNlLmNsaWNrQmFja0J1dHRvbigpO1xuICB9XG5cbiAgc2F2ZUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYnV0dG9uU2VydmljZS5jbGlja1NhdmVCdXR0b24oKTtcbiAgfVxuXG4gIG5leHRCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmJ1dHRvblNlcnZpY2UuY2xpY2tOZXh0QnV0dG9uKCk7XG4gIH1cblxuICB1bmxpbmtCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zdGFydFNhdmluZygpO1xuXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQcm9jZXNzTGluayQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc2VsZWN0ZWRQcm9jZXNzTGluayA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NMaW5rU2VydmljZS5kZWxldGVQcm9jZXNzTGluayhzZWxlY3RlZFByb2Nlc3NMaW5rLmlkKS5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zdG9wU2F2aW5nKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQ2hlY2tlZENoYW5nZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzc0xpbmtTdGF0ZVNlcnZpY2Uuc2V0Vmlld01vZGVsRW5hYmxlZCh2YWx1ZSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdlxuICBjbGFzcz1cInByb2Nlc3MtbGluay1tb2RhbC1jb250YWluZXJcIlxuICAqbmdJZj1cIntcbiAgICBzaG93TW9kYWw6IHNob3dNb2RhbCQgfCBhc3luYyxcbiAgICBwcm9jZXNzU3RlcE5hbWU6IHByb2Nlc3NTdGVwTmFtZSQgfCBhc3luYyxcbiAgICBzdGVwczogc3RlcHMkIHwgYXN5bmMsXG4gICAgc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uOiBzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kIHwgYXN5bmMsXG4gICAgY3VycmVudFN0ZXBJbmRleDogY3VycmVudFN0ZXBJbmRleCQgfCBhc3luYyxcbiAgICBjdXJyZW50U3RlcElkOiBjdXJyZW50U3RlcElkJCB8IGFzeW5jLFxuICAgIHNob3dTYXZlQnV0dG9uOiBzaG93U2F2ZUJ1dHRvbiQgfCBhc3luYyxcbiAgICBlbmFibGVTYXZlQnV0dG9uOiBlbmFibGVTYXZlQnV0dG9uJCB8IGFzeW5jLFxuICAgIHNob3dCYWNrQnV0dG9uOiBzaG93QmFja0J1dHRvbiQgfCBhc3luYyxcbiAgICBzaG93TmV4dEJ1dHRvbjogc2hvd05leHRCdXR0b24kIHwgYXN5bmMsXG4gICAgZW5hYmxlTmV4dEJ1dHRvbjogZW5hYmxlTmV4dEJ1dHRvbiQgfCBhc3luYyxcbiAgICBzYXZpbmc6IHNhdmluZyQgfCBhc3luYyxcbiAgICBoaWRlUHJvZ3Jlc3NJbmRpY2F0b3I6IGhpZGVQcm9ncmVzc0luZGljYXRvciQgfCBhc3luYyxcbiAgICB0eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluazogdHlwZU9mU2VsZWN0ZWRQcm9jZXNzTGluayQgfCBhc3luYyxcblxuICB9IGFzIG9ic1wiXG4+XG4gIDxjZHMtbW9kYWwgdmFsdGltb0Nkc01vZGFsIFtvcGVuXT1cIm9icy5zaG93TW9kYWxcIiBzaXplPVwibGdcIj5cbiAgICA8Y2RzLW1vZGFsLWhlYWRlciAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgICA8aDIgY2RzTW9kYWxIZWFkZXJMYWJlbD57eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmNvbmZpZ3VyZVN0ZXAnIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICAgIHt7XG4gICAgICAgICAgJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi5tb2RhbFRpdGxlJ1xuICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGU6IHtwcm9jZXNzU3RlcE5hbWU6IG9icy5wcm9jZXNzU3RlcE5hbWUgfHwgJy0nfVxuICAgICAgICB9fVxuICAgICAgPC9oMz5cbiAgICAgIDxoNCBjZHNNb2RhbEhlYWRlckxhYmVsICpuZ0lmPVwib2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rID09PSAncGx1Z2luJ1wiPlxuICAgICAgICB7e1xuICAgICAgICAgICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24ucGx1Z2luQ29uZmlndXJhdGlvbidcbiAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlOiB7cGx1Z2luQ29uZmlnVGl0bGU6IG9icy5zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24/LnRpdGxlIHx8ICctJ31cbiAgICAgICAgfX1cbiAgICAgIDwvaDQ+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvY2Vzcy1saW5rLXByb2dyZXNzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9ncmVzc0luZGljYXRvcjsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuICAgIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudCBbY2RzTGF5ZXJdPVwiMVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0ZXBDb250ZW50OyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlcjsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvY2RzLW1vZGFsPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcHJvZ3Jlc3NJbmRpY2F0b3IgbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLXByb2dyZXNzLWluZGljYXRvclxuICAgICpuZ0lmPVwib2JzLnN0ZXBzICYmICFvYnMuaGlkZVByb2dyZXNzSW5kaWNhdG9yXCJcbiAgICBbc3RlcHNdPVwib2JzLnN0ZXBzXCJcbiAgICBbY3VycmVudF09XCJvYnMuY3VycmVudFN0ZXBJbmRleFwiXG4gICAgc3BhY2luZz1cImVxdWFsXCJcbiAgPjwvY2RzLXByb2dyZXNzLWluZGljYXRvcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3RlcENvbnRlbnQgbGV0LW9icz1cIm9ic1wiPlxuICA8ZGl2IGNsYXNzPVwiY2RzLWxvYWRpbmctY29udGFpbmVyXCIgKm5nSWY9XCJvYnMuc2F2aW5nXCI+XG4gICAgPGNkcy1sb2FkaW5nPjwvY2RzLWxvYWRpbmc+XG4gIDwvZGl2PlxuICA8ZGl2IFtuZ0NsYXNzXT1cIntoaWRkZW46IG9icy5zYXZpbmd9XCI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ2Nob29zZVByb2Nlc3NMaW5rVHlwZSdcIj5cbiAgICAgICAgPHZhbHRpbW8tY2hvb3NlLXByb2Nlc3MtbGluay10eXBlPjwvdmFsdGltby1jaG9vc2UtcHJvY2Vzcy1saW5rLXR5cGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ3NlbGVjdEZvcm0nIHx8IG9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluayA9PT0gJ2Zvcm0nXCJcbiAgICAgID5cbiAgICAgICAgPHZhbHRpbW8tc2VsZWN0LWZvcm0+PC92YWx0aW1vLXNlbGVjdC1mb3JtPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPGNkcy10b2dnbGVcbiAgICAgICAgICAqbmdJZj1cInNob3dWaWV3TW9kZWxUb2dnbGVcIlxuICAgICAgICAgIFtsYWJlbF09XCIncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLnRvZ2dsZVZpZXdNb2RlbC50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtvblRleHRdPVwiJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi50b2dnbGVWaWV3TW9kZWwuY2hlY2tib3hEZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtvZmZUZXh0XT1cIidwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24udG9nZ2xlVmlld01vZGVsLmNoZWNrYm94RGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJ2aWV3TW9kZWxFbmFibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgICAoY2hlY2tlZENoYW5nZSk9XCJ0b2dnbGVDaGVja2VkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9jZHMtdG9nZ2xlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgb2JzLmN1cnJlbnRTdGVwSWQgPT09ICdzZWxlY3RGb3JtRmxvdycgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rID09PSAnZm9ybS1mbG93J1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtZm9ybS1mbG93PjwvdmFsdGltby1zZWxlY3QtZm9ybS1mbG93PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JzLmN1cnJlbnRTdGVwSWQgPT09ICdjaG9vc2VQbHVnaW5Db25maWd1cmF0aW9uJ1wiPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtcGx1Z2luLWNvbmZpZ3VyYXRpb24+PC92YWx0aW1vLXNlbGVjdC1wbHVnaW4tY29uZmlndXJhdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9icy5jdXJyZW50U3RlcElkID09PSAnY2hvb3NlUGx1Z2luQWN0aW9uJ1wiPlxuICAgICAgICA8dmFsdGltby1zZWxlY3QtcGx1Z2luLWFjdGlvbj48L3ZhbHRpbW8tc2VsZWN0LXBsdWdpbi1hY3Rpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ2NvbmZpZ3VyZVBsdWdpbkFjdGlvbicgfHxcbiAgICAgICAgICBvYnMudHlwZU9mU2VsZWN0ZWRQcm9ncmVzc0xpbmsgPT09ICdwbHVnaW4nXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDx2YWx0aW1vLXBsdWdpbi1hY3Rpb24tY29uZmlndXJhdGlvblxuICAgICAgICAgIFtzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kXT1cInNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiRcIlxuICAgICAgICA+PC92YWx0aW1vLXBsdWdpbi1hY3Rpb24tY29uZmlndXJhdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDx2YWx0aW1vLXNlbGVjdC11cmxcbiAgICAgICpuZ0lmPVwib2JzLmN1cnJlbnRTdGVwSWQgPT09ICdzZWxlY3RVUkwnIHx8IG9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGluayA9PT0gJ3VybCdcIlxuICAgID48L3ZhbHRpbW8tc2VsZWN0LXVybD5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIlxuICAgICAgICBvYnMuY3VycmVudFN0ZXBJZCA9PT0gJ3VpQ29tcG9uZW50JyB8fCBvYnMudHlwZU9mU2VsZWN0ZWRQcm9ncmVzc0xpbmsgPT09ICd1aS1jb21wb25lbnQnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDx2YWx0aW1vLXNlbGVjdC11aS1jb21wb25lbnQ+PC92YWx0aW1vLXNlbGVjdC11aS1jb21wb25lbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXIgbGV0LW9icz1cIm9ic1wiPlxuICA8Y2RzLW1vZGFsLWZvb3RlciAqbmdJZj1cIiFvYnMuc2F2aW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj5cbiAgICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCIgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiPlxuICAgICAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJuYXZpZ2F0aW9uLWJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJvYnMuc2hvd0JhY2tCdXR0b24gJiYgIW9icy5zYXZpbmdcIlxuICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICAoY2xpY2spPVwiYmFja0J1dHRvbkNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICB7eyAncHJvY2Vzc0xpbmtDb25maWd1cmF0aW9uLmJhY2snIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwib2JzLnNob3dOZXh0QnV0dG9uICYmICFvYnMuc2F2aW5nXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5lbmFibGVOZXh0QnV0dG9uID09PSBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJuZXh0QnV0dG9uQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24ubmV4dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJkYW5nZXItLXByaW1hcnlcIlxuICAgICAgICAqbmdJZj1cIm9icy50eXBlT2ZTZWxlY3RlZFByb2dyZXNzTGlua1wiXG4gICAgICAgIChjbGljayk9XCJ1bmxpbmtCdXR0b25DbGljaygpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ3Byb2Nlc3NMaW5rQ29uZmlndXJhdGlvbi51bmxpbmsnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwiKG9icy5zaG93U2F2ZUJ1dHRvbiAmJiAhb2JzLnNhdmluZykgfHwgb2JzLnR5cGVPZlNlbGVjdGVkUHJvZ3Jlc3NMaW5rXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5lbmFibGVTYXZlQnV0dG9uID09PSBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJzYXZlQnV0dG9uQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdwcm9jZXNzTGlua0NvbmZpZ3VyYXRpb24uY29tcGxldGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { Injectable } from '@angular/core';
17
17
  import { BehaviorSubject, combineLatest, of, Subject, switchMap } from 'rxjs';
18
- import { map } from 'rxjs/operators';
18
+ import { map, take } from 'rxjs/operators';
19
19
  import * as i0 from "@angular/core";
20
20
  import * as i1 from "@valtimo/plugin";
21
21
  export class PluginStateService {
@@ -71,6 +71,55 @@ export class PluginStateService {
71
71
  }
72
72
  selectProcessLink(processLink) {
73
73
  this._selectedProcessLink$.next(processLink);
74
+ // When editing a plugin process link, populate the plugin definition
75
+ if (processLink?.processLinkType === 'plugin') {
76
+ this.loadPluginDefinitionForProcessLink(processLink);
77
+ }
78
+ }
79
+ loadPluginDefinitionForProcessLink(processLink) {
80
+ // Get the plugin definition key - either directly or from plugin specifications
81
+ this.getPluginDefinitionKeyForProcessLink(processLink)
82
+ .pipe(take(1))
83
+ .subscribe(pluginDefinitionKey => {
84
+ if (pluginDefinitionKey) {
85
+ // Fetch all plugin definitions and find the one matching the key
86
+ this.pluginManagementService
87
+ .getPluginDefinitions()
88
+ .pipe(take(1), map(definitions => definitions.find(d => d.key === pluginDefinitionKey)))
89
+ .subscribe(definition => {
90
+ if (definition) {
91
+ this._selectedPluginDefinition$.next(definition);
92
+ // Also set the selected function if available
93
+ if (processLink.pluginActionDefinitionKey) {
94
+ this._selectedPluginFunction$.next({
95
+ key: processLink.pluginActionDefinitionKey,
96
+ });
97
+ }
98
+ }
99
+ });
100
+ }
101
+ });
102
+ // Load and set the plugin configuration if available
103
+ if (processLink.pluginConfigurationId) {
104
+ this.pluginManagementService
105
+ .getAllPluginConfigurations()
106
+ .pipe(take(1), map(configs => configs.find(c => c.id === processLink.pluginConfigurationId)))
107
+ .subscribe(configuration => {
108
+ if (configuration) {
109
+ this._selectedPluginConfiguration$.next(configuration);
110
+ }
111
+ });
112
+ }
113
+ }
114
+ getPluginDefinitionKeyForProcessLink(processLink) {
115
+ return this.pluginService.pluginSpecifications$.pipe(map(pluginSpecifications => {
116
+ const pluginSpecification = pluginSpecifications.find(specification => {
117
+ const functionKeys = specification?.functionConfigurationComponents &&
118
+ Object.keys(specification.functionConfigurationComponents);
119
+ return functionKeys?.includes(processLink.pluginActionDefinitionKey);
120
+ });
121
+ return pluginSpecification?.pluginId;
122
+ }));
74
123
  }
75
124
  deselectProcessLink() {
76
125
  this._selectedProcessLink$.next(undefined);
@@ -87,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
87
136
  providedIn: 'root',
88
137
  }]
89
138
  }], ctorParameters: () => [{ type: i1.PluginManagementService }, { type: i1.PluginService }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3MtbGluay9zcmMvbGliL3NlcnZpY2VzL3BsdWdpbi1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4RixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQWFuQyxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLFlBQ21CLHVCQUFnRCxFQUNoRCxhQUE0QjtRQUQ1Qiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBVjlCLCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFtQixTQUFTLENBQUMsQ0FBQztRQUM5RSxrQ0FBNkIsR0FBRyxJQUFJLGVBQWUsQ0FDbEUsU0FBUyxDQUNWLENBQUM7UUFDZSw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FBaUIsU0FBUyxDQUFDLENBQUM7UUFDMUUsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDN0IsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQWMsU0FBUyxDQUFDLENBQUM7SUFLbEYsQ0FBQztJQUVKLElBQUkseUJBQXlCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLDRCQUE0QjtRQUM5QixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUNwQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FDdEIsQ0FBQyxXQUFXO1lBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hGLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLHlCQUF5QixDQUFDLENBQy9DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQ3BDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQzdCLENBQUMsa0JBQWtCO1lBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUNyQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQzFEO1lBQ0gsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDWixJQUFJLENBQUMscUJBQXFCO2dCQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQjthQUN6QyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFDLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQ3BFLE1BQU0sWUFBWSxHQUNoQixhQUFhLEVBQUUsK0JBQStCO3dCQUM5QyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO29CQUM3RCxPQUFPLFlBQVksRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFLHlCQUF5QixDQUFDLENBQUM7Z0JBQ3hFLENBQUMsQ0FBQyxDQUFDO2dCQUVILE9BQU8sbUJBQW1CLEVBQUUsUUFBUSxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUNILENBQ04sQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUFDLFVBQTRCO1FBQ2pELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELHlCQUF5QixDQUFDLGFBQWtDO1FBQzFELElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELG9CQUFvQixDQUFDLGNBQThCO1FBQ2pELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGlCQUFpQixDQUFDLFdBQXdCO1FBQ3hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzsrR0F4RlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgUGx1Z2luQ29uZmlndXJhdGlvbixcbiAgUGx1Z2luRGVmaW5pdGlvbixcbiAgUGx1Z2luRnVuY3Rpb24sXG4gIFBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlLFxuICBQbHVnaW5TZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9wbHVnaW4nO1xuaW1wb3J0IHtQcm9jZXNzTGlua30gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBsdWdpblN0YXRlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkUGx1Z2luRGVmaW5pdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBsdWdpbkRlZmluaXRpb24+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBsdWdpbkNvbmZpZ3VyYXRpb24+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RlZFBsdWdpbkZ1bmN0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGx1Z2luRnVuY3Rpb24+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NhdmUkID0gbmV3IFN1YmplY3Q8bnVsbD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRQcm9jZXNzTGluayQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFByb2Nlc3NMaW5rPih1bmRlZmluZWQpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luTWFuYWdlbWVudFNlcnZpY2U6IFBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luU2VydmljZTogUGx1Z2luU2VydmljZVxuICApIHt9XG5cbiAgZ2V0IHNlbGVjdGVkUGx1Z2luRGVmaW5pdGlvbiQoKTogT2JzZXJ2YWJsZTxQbHVnaW5EZWZpbml0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUGx1Z2luRGVmaW5pdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uJCgpOiBPYnNlcnZhYmxlPFBsdWdpbkNvbmZpZ3VyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZFBsdWdpbkZ1bmN0aW9uJCgpOiBPYnNlcnZhYmxlPFBsdWdpbkZ1bmN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUGx1Z2luRnVuY3Rpb24kLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNhdmUkKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NhdmUkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGZ1bmN0aW9uS2V5JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFByb2Nlc3NMaW5rJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHByb2Nlc3NMaW5rID0+XG4gICAgICAgICFwcm9jZXNzTGlua1xuICAgICAgICAgID8gdGhpcy5fc2VsZWN0ZWRQbHVnaW5GdW5jdGlvbiQucGlwZShtYXAocGx1Z2luRnVuY3Rpb24gPT4gcGx1Z2luRnVuY3Rpb24/LmtleSkpXG4gICAgICAgICAgOiBvZihwcm9jZXNzTGluaz8ucGx1Z2luQWN0aW9uRGVmaW5pdGlvbktleSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0IHBsdWdpbkRlZmluaXRpb25LZXkkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUHJvY2Vzc0xpbmskLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoc2VsZWN0ZWRQcm9jZXNMaW5rID0+XG4gICAgICAgICFzZWxlY3RlZFByb2Nlc0xpbmtcbiAgICAgICAgICA/IHRoaXMuX3NlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiQucGlwZShcbiAgICAgICAgICAgICAgbWFwKGNvbmZpZ3VyYXRpb24gPT4gY29uZmlndXJhdGlvbj8ucGx1Z2luRGVmaW5pdGlvbi5rZXkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRQcm9jZXNzTGluayQsXG4gICAgICAgICAgICAgIHRoaXMucGx1Z2luU2VydmljZS5wbHVnaW5TcGVjaWZpY2F0aW9ucyQsXG4gICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKFtwcm9jZXNzTGluaywgcGx1Z2luU3BlY2lmaWNhdGlvbnNdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGx1Z2luU3BlY2lmaWNhdGlvbiA9IHBsdWdpblNwZWNpZmljYXRpb25zLmZpbmQoc3BlY2lmaWNhdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBmdW5jdGlvbktleXMgPVxuICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY2F0aW9uPy5mdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21wb25lbnRzICYmXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHNwZWNpZmljYXRpb24uZnVuY3Rpb25Db25maWd1cmF0aW9uQ29tcG9uZW50cyk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25LZXlzPy5pbmNsdWRlcyhwcm9jZXNzTGluaz8ucGx1Z2luQWN0aW9uRGVmaW5pdGlvbktleSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcGx1Z2luU3BlY2lmaWNhdGlvbj8ucGx1Z2luSWQ7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHNlbGVjdFBsdWdpbkRlZmluaXRpb24oZGVmaW5pdGlvbjogUGx1Z2luRGVmaW5pdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGVkUGx1Z2luRGVmaW5pdGlvbiQubmV4dChkZWZpbml0aW9uKTtcbiAgfVxuXG4gIHNlbGVjdFBsdWdpbkNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogUGx1Z2luQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiQubmV4dChjb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHNlbGVjdFBsdWdpbkZ1bmN0aW9uKHBsdWdpbkZ1bmN0aW9uOiBQbHVnaW5GdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGVkUGx1Z2luRnVuY3Rpb24kLm5leHQocGx1Z2luRnVuY3Rpb24pO1xuICB9XG5cbiAgc2VsZWN0UHJvY2Vzc0xpbmsocHJvY2Vzc0xpbms6IFByb2Nlc3NMaW5rKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0ZWRQcm9jZXNzTGluayQubmV4dChwcm9jZXNzTGluayk7XG4gIH1cblxuICBkZXNlbGVjdFByb2Nlc3NMaW5rKCk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGVkUHJvY2Vzc0xpbmskLm5leHQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHNhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc2F2ZSQubmV4dChudWxsKTtcbiAgfVxufVxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Byb2Nlc3MtbGluay9zcmMvbGliL3NlcnZpY2VzL3BsdWdpbi1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4RixPQUFPLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFhekMsTUFBTSxPQUFPLGtCQUFrQjtJQVM3QixZQUNtQix1QkFBZ0QsRUFDaEQsYUFBNEI7UUFENUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVY5QiwrQkFBMEIsR0FBRyxJQUFJLGVBQWUsQ0FBbUIsU0FBUyxDQUFDLENBQUM7UUFDOUUsa0NBQTZCLEdBQUcsSUFBSSxlQUFlLENBQ2xFLFNBQVMsQ0FDVixDQUFDO1FBQ2UsNkJBQXdCLEdBQUcsSUFBSSxlQUFlLENBQWlCLFNBQVMsQ0FBQyxDQUFDO1FBQzFFLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzdCLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUFjLFNBQVMsQ0FBQyxDQUFDO0lBS2xGLENBQUM7SUFFSixJQUFJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSw0QkFBNEI7UUFDOUIsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FDcEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQ3RCLENBQUMsV0FBVztZQUNWLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNoRixDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQyxDQUMvQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUNwQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUM3QixDQUFDLGtCQUFrQjtZQUNqQixDQUFDLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUMxRDtZQUNILENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ1osSUFBSSxDQUFDLHFCQUFxQjtnQkFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUI7YUFDekMsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUNwRSxNQUFNLFlBQVksR0FDaEIsYUFBYSxFQUFFLCtCQUErQjt3QkFDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUMsQ0FBQztvQkFDN0QsT0FBTyxZQUFZLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO2dCQUN4RSxDQUFDLENBQUMsQ0FBQztnQkFFSCxPQUFPLG1CQUFtQixFQUFFLFFBQVEsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUNOLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxVQUE0QjtRQUNqRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxhQUFrQztRQUMxRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxjQUE4QjtRQUNqRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUF3QjtRQUN4QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTdDLHFFQUFxRTtRQUNyRSxJQUFJLFdBQVcsRUFBRSxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRU8sa0NBQWtDLENBQUMsV0FBd0I7UUFDakUsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxXQUFXLENBQUM7YUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQy9CLElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQkFDeEIsaUVBQWlFO2dCQUNqRSxJQUFJLENBQUMsdUJBQXVCO3FCQUN6QixvQkFBb0IsRUFBRTtxQkFDdEIsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxtQkFBbUIsQ0FBQyxDQUFDLENBQ3pFO3FCQUNBLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDdEIsSUFBSSxVQUFVLEVBQUUsQ0FBQzt3QkFDZixJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUVqRCw4Q0FBOEM7d0JBQzlDLElBQUksV0FBVyxDQUFDLHlCQUF5QixFQUFFLENBQUM7NEJBQzFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUM7Z0NBQ2pDLEdBQUcsRUFBRSxXQUFXLENBQUMseUJBQXlCOzZCQUN6QixDQUFDLENBQUM7d0JBQ3ZCLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLHFEQUFxRDtRQUNyRCxJQUFJLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyx1QkFBdUI7aUJBQ3pCLDBCQUEwQixFQUFFO2lCQUM1QixJQUFJLENBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQ2pFO2lCQUNBLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDekIsSUFBSSxhQUFhLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDekQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFTyxvQ0FBb0MsQ0FBQyxXQUF3QjtRQUNuRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRTtZQUN6QixNQUFNLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDcEUsTUFBTSxZQUFZLEdBQ2hCLGFBQWEsRUFBRSwrQkFBK0I7b0JBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLCtCQUErQixDQUFDLENBQUM7Z0JBQzdELE9BQU8sWUFBWSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUN2RSxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sbUJBQW1CLEVBQUUsUUFBUSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOytHQXhKVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBQbHVnaW5Db25maWd1cmF0aW9uLFxuICBQbHVnaW5EZWZpbml0aW9uLFxuICBQbHVnaW5GdW5jdGlvbixcbiAgUGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsXG4gIFBsdWdpblNlcnZpY2UsXG59IGZyb20gJ0B2YWx0aW1vL3BsdWdpbic7XG5pbXBvcnQge1Byb2Nlc3NMaW5rfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGx1Z2luU3RhdGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRQbHVnaW5EZWZpbml0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGx1Z2luRGVmaW5pdGlvbj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGx1Z2luQ29uZmlndXJhdGlvbj4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkUGx1Z2luRnVuY3Rpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQbHVnaW5GdW5jdGlvbj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2F2ZSQgPSBuZXcgU3ViamVjdDxudWxsPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RlZFByb2Nlc3NMaW5rJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJvY2Vzc0xpbms+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5NYW5hZ2VtZW50U2VydmljZTogUGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5TZXJ2aWNlOiBQbHVnaW5TZXJ2aWNlXG4gICkge31cblxuICBnZXQgc2VsZWN0ZWRQbHVnaW5EZWZpbml0aW9uJCgpOiBPYnNlcnZhYmxlPFBsdWdpbkRlZmluaXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRQbHVnaW5EZWZpbml0aW9uJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kKCk6IE9ic2VydmFibGU8UGx1Z2luQ29uZmlndXJhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkUGx1Z2luRnVuY3Rpb24kKCk6IE9ic2VydmFibGU8UGx1Z2luRnVuY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRQbHVnaW5GdW5jdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc2F2ZSQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fc2F2ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZnVuY3Rpb25LZXkkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUHJvY2Vzc0xpbmskLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocHJvY2Vzc0xpbmsgPT5cbiAgICAgICAgIXByb2Nlc3NMaW5rXG4gICAgICAgICAgPyB0aGlzLl9zZWxlY3RlZFBsdWdpbkZ1bmN0aW9uJC5waXBlKG1hcChwbHVnaW5GdW5jdGlvbiA9PiBwbHVnaW5GdW5jdGlvbj8ua2V5KSlcbiAgICAgICAgICA6IG9mKHByb2Nlc3NMaW5rPy5wbHVnaW5BY3Rpb25EZWZpbml0aW9uS2V5KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBnZXQgcGx1Z2luRGVmaW5pdGlvbktleSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRQcm9jZXNzTGluayQucGlwZShcbiAgICAgIHN3aXRjaE1hcChzZWxlY3RlZFByb2Nlc0xpbmsgPT5cbiAgICAgICAgIXNlbGVjdGVkUHJvY2VzTGlua1xuICAgICAgICAgID8gdGhpcy5fc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uJC5waXBlKFxuICAgICAgICAgICAgICBtYXAoY29uZmlndXJhdGlvbiA9PiBjb25maWd1cmF0aW9uPy5wbHVnaW5EZWZpbml0aW9uLmtleSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFByb2Nlc3NMaW5rJCxcbiAgICAgICAgICAgICAgdGhpcy5wbHVnaW5TZXJ2aWNlLnBsdWdpblNwZWNpZmljYXRpb25zJCxcbiAgICAgICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgoW3Byb2Nlc3NMaW5rLCBwbHVnaW5TcGVjaWZpY2F0aW9uc10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwbHVnaW5TcGVjaWZpY2F0aW9uID0gcGx1Z2luU3BlY2lmaWNhdGlvbnMuZmluZChzcGVjaWZpY2F0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uS2V5cyA9XG4gICAgICAgICAgICAgICAgICAgIHNwZWNpZmljYXRpb24/LmZ1bmN0aW9uQ29uZmlndXJhdGlvbkNvbXBvbmVudHMgJiZcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc3BlY2lmaWNhdGlvbi5mdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21wb25lbnRzKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbktleXM/LmluY2x1ZGVzKHByb2Nlc3NMaW5rPy5wbHVnaW5BY3Rpb25EZWZpbml0aW9uS2V5KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBwbHVnaW5TcGVjaWZpY2F0aW9uPy5wbHVnaW5JZDtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgc2VsZWN0UGx1Z2luRGVmaW5pdGlvbihkZWZpbml0aW9uOiBQbHVnaW5EZWZpbml0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0ZWRQbHVnaW5EZWZpbml0aW9uJC5uZXh0KGRlZmluaXRpb24pO1xuICB9XG5cbiAgc2VsZWN0UGx1Z2luQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBQbHVnaW5Db25maWd1cmF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uJC5uZXh0KGNvbmZpZ3VyYXRpb24pO1xuICB9XG5cbiAgc2VsZWN0UGx1Z2luRnVuY3Rpb24ocGx1Z2luRnVuY3Rpb246IFBsdWdpbkZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0ZWRQbHVnaW5GdW5jdGlvbiQubmV4dChwbHVnaW5GdW5jdGlvbik7XG4gIH1cblxuICBzZWxlY3RQcm9jZXNzTGluayhwcm9jZXNzTGluazogUHJvY2Vzc0xpbmspOiB2b2lkIHtcbiAgICB0aGlzLl9zZWxlY3RlZFByb2Nlc3NMaW5rJC5uZXh0KHByb2Nlc3NMaW5rKTtcblxuICAgIC8vIFdoZW4gZWRpdGluZyBhIHBsdWdpbiBwcm9jZXNzIGxpbmssIHBvcHVsYXRlIHRoZSBwbHVnaW4gZGVmaW5pdGlvblxuICAgIGlmIChwcm9jZXNzTGluaz8ucHJvY2Vzc0xpbmtUeXBlID09PSAncGx1Z2luJykge1xuICAgICAgdGhpcy5sb2FkUGx1Z2luRGVmaW5pdGlvbkZvclByb2Nlc3NMaW5rKHByb2Nlc3NMaW5rKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRQbHVnaW5EZWZpbml0aW9uRm9yUHJvY2Vzc0xpbmsocHJvY2Vzc0xpbms6IFByb2Nlc3NMaW5rKTogdm9pZCB7XG4gICAgLy8gR2V0IHRoZSBwbHVnaW4gZGVmaW5pdGlvbiBrZXkgLSBlaXRoZXIgZGlyZWN0bHkgb3IgZnJvbSBwbHVnaW4gc3BlY2lmaWNhdGlvbnNcbiAgICB0aGlzLmdldFBsdWdpbkRlZmluaXRpb25LZXlGb3JQcm9jZXNzTGluayhwcm9jZXNzTGluaylcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHBsdWdpbkRlZmluaXRpb25LZXkgPT4ge1xuICAgICAgICBpZiAocGx1Z2luRGVmaW5pdGlvbktleSkge1xuICAgICAgICAgIC8vIEZldGNoIGFsbCBwbHVnaW4gZGVmaW5pdGlvbnMgYW5kIGZpbmQgdGhlIG9uZSBtYXRjaGluZyB0aGUga2V5XG4gICAgICAgICAgdGhpcy5wbHVnaW5NYW5hZ2VtZW50U2VydmljZVxuICAgICAgICAgICAgLmdldFBsdWdpbkRlZmluaXRpb25zKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICBtYXAoZGVmaW5pdGlvbnMgPT4gZGVmaW5pdGlvbnMuZmluZChkID0+IGQua2V5ID09PSBwbHVnaW5EZWZpbml0aW9uS2V5KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZGVmaW5pdGlvbiA9PiB7XG4gICAgICAgICAgICAgIGlmIChkZWZpbml0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRQbHVnaW5EZWZpbml0aW9uJC5uZXh0KGRlZmluaXRpb24pO1xuXG4gICAgICAgICAgICAgICAgLy8gQWxzbyBzZXQgdGhlIHNlbGVjdGVkIGZ1bmN0aW9uIGlmIGF2YWlsYWJsZVxuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzTGluay5wbHVnaW5BY3Rpb25EZWZpbml0aW9uS2V5KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFBsdWdpbkZ1bmN0aW9uJC5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBwcm9jZXNzTGluay5wbHVnaW5BY3Rpb25EZWZpbml0aW9uS2V5LFxuICAgICAgICAgICAgICAgICAgfSBhcyBQbHVnaW5GdW5jdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAvLyBMb2FkIGFuZCBzZXQgdGhlIHBsdWdpbiBjb25maWd1cmF0aW9uIGlmIGF2YWlsYWJsZVxuICAgIGlmIChwcm9jZXNzTGluay5wbHVnaW5Db25maWd1cmF0aW9uSWQpIHtcbiAgICAgIHRoaXMucGx1Z2luTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgICAgLmdldEFsbFBsdWdpbkNvbmZpZ3VyYXRpb25zKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBtYXAoY29uZmlncyA9PlxuICAgICAgICAgICAgY29uZmlncy5maW5kKGMgPT4gYy5pZCA9PT0gcHJvY2Vzc0xpbmsucGx1Z2luQ29uZmlndXJhdGlvbklkKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKGNvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kLm5leHQoY29uZmlndXJhdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBsdWdpbkRlZmluaXRpb25LZXlGb3JQcm9jZXNzTGluayhwcm9jZXNzTGluazogUHJvY2Vzc0xpbmspOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnBsdWdpblNlcnZpY2UucGx1Z2luU3BlY2lmaWNhdGlvbnMkLnBpcGUoXG4gICAgICBtYXAocGx1Z2luU3BlY2lmaWNhdGlvbnMgPT4ge1xuICAgICAgICBjb25zdCBwbHVnaW5TcGVjaWZpY2F0aW9uID0gcGx1Z2luU3BlY2lmaWNhdGlvbnMuZmluZChzcGVjaWZpY2F0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBmdW5jdGlvbktleXMgPVxuICAgICAgICAgICAgc3BlY2lmaWNhdGlvbj8uZnVuY3Rpb25Db25maWd1cmF0aW9uQ29tcG9uZW50cyAmJlxuICAgICAgICAgICAgT2JqZWN0LmtleXMoc3BlY2lmaWNhdGlvbi5mdW5jdGlvbkNvbmZpZ3VyYXRpb25Db21wb25lbnRzKTtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb25LZXlzPy5pbmNsdWRlcyhwcm9jZXNzTGluay5wbHVnaW5BY3Rpb25EZWZpbml0aW9uS2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwbHVnaW5TcGVjaWZpY2F0aW9uPy5wbHVnaW5JZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGRlc2VsZWN0UHJvY2Vzc0xpbmsoKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0ZWRQcm9jZXNzTGluayQubmV4dCh1bmRlZmluZWQpO1xuICB9XG5cbiAgc2F2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zYXZlJC5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=
@@ -300,6 +300,55 @@ class PluginStateService {
300
300
  }
301
301
  selectProcessLink(processLink) {
302
302
  this._selectedProcessLink$.next(processLink);
303
+ // When editing a plugin process link, populate the plugin definition
304
+ if (processLink?.processLinkType === 'plugin') {
305
+ this.loadPluginDefinitionForProcessLink(processLink);
306
+ }
307
+ }
308
+ loadPluginDefinitionForProcessLink(processLink) {
309
+ // Get the plugin definition key - either directly or from plugin specifications
310
+ this.getPluginDefinitionKeyForProcessLink(processLink)
311
+ .pipe(take(1))
312
+ .subscribe(pluginDefinitionKey => {
313
+ if (pluginDefinitionKey) {
314
+ // Fetch all plugin definitions and find the one matching the key
315
+ this.pluginManagementService
316
+ .getPluginDefinitions()
317
+ .pipe(take(1), map$1(definitions => definitions.find(d => d.key === pluginDefinitionKey)))
318
+ .subscribe(definition => {
319
+ if (definition) {
320
+ this._selectedPluginDefinition$.next(definition);
321
+ // Also set the selected function if available
322
+ if (processLink.pluginActionDefinitionKey) {
323
+ this._selectedPluginFunction$.next({
324
+ key: processLink.pluginActionDefinitionKey,
325
+ });
326
+ }
327
+ }
328
+ });
329
+ }
330
+ });
331
+ // Load and set the plugin configuration if available
332
+ if (processLink.pluginConfigurationId) {
333
+ this.pluginManagementService
334
+ .getAllPluginConfigurations()
335
+ .pipe(take(1), map$1(configs => configs.find(c => c.id === processLink.pluginConfigurationId)))
336
+ .subscribe(configuration => {
337
+ if (configuration) {
338
+ this._selectedPluginConfiguration$.next(configuration);
339
+ }
340
+ });
341
+ }
342
+ }
343
+ getPluginDefinitionKeyForProcessLink(processLink) {
344
+ return this.pluginService.pluginSpecifications$.pipe(map$1(pluginSpecifications => {
345
+ const pluginSpecification = pluginSpecifications.find(specification => {
346
+ const functionKeys = specification?.functionConfigurationComponents &&
347
+ Object.keys(specification.functionConfigurationComponents);
348
+ return functionKeys?.includes(processLink.pluginActionDefinitionKey);
349
+ });
350
+ return pluginSpecification?.pluginId;
351
+ }));
303
352
  }
304
353
  deselectProcessLink() {
305
354
  this._selectedProcessLink$.next(undefined);
@@ -2224,11 +2273,11 @@ class ProcessLinkModalComponent {
2224
2273
  this.processLinkStateService.setViewModelEnabled(value);
2225
2274
  }
2226
2275
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProcessLinkModalComponent, deps: [{ token: ProcessLinkStateService }, { token: ProcessLinkStepService }, { token: ProcessLinkButtonService }, { token: PluginStateService }, { token: ProcessLinkService }, { token: ProcessLinkStateService }, { token: i1$1.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
2227
- 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$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.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: i4$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { 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: SelectPluginConfigurationComponent, selector: "valtimo-select-plugin-configuration" }, { kind: "component", type: SelectPluginActionComponent, selector: "valtimo-select-plugin-action" }, { kind: "component", type: PluginActionConfigurationComponent, selector: "valtimo-plugin-action-configuration", inputs: ["selectedPluginConfiguration$"], outputs: ["valid", "configuration"] }, { kind: "component", type: ChooseProcessLinkTypeComponent, selector: "valtimo-choose-process-link-type" }, { kind: "component", type: SelectFormComponent, selector: "valtimo-select-form" }, { kind: "component", type: SelectFormFlowComponent, selector: "valtimo-select-form-flow" }, { kind: "component", type: SelectUrlComponent, selector: "valtimo-select-url" }, { kind: "component", type: SelectUIComponentComponent, selector: "valtimo-select-ui-component" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
2276
+ 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 selectedPluginConfiguration: selectedPluginConfiguration$ | 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\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 <h4 cdsModalHeaderLabel *ngIf=\"obs.typeOfSelectedProgressLink === 'plugin'\">\n {{\n 'processLinkConfiguration.pluginConfiguration'\n | translate: {pluginConfigTitle: obs.selectedPluginConfiguration?.title || '-'}\n }}\n </h4>\n <div class=\"process-link-progress\">\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$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.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: i4$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { 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: SelectPluginConfigurationComponent, selector: "valtimo-select-plugin-configuration" }, { kind: "component", type: SelectPluginActionComponent, selector: "valtimo-select-plugin-action" }, { kind: "component", type: PluginActionConfigurationComponent, selector: "valtimo-plugin-action-configuration", inputs: ["selectedPluginConfiguration$"], outputs: ["valid", "configuration"] }, { kind: "component", type: ChooseProcessLinkTypeComponent, selector: "valtimo-choose-process-link-type" }, { kind: "component", type: SelectFormComponent, selector: "valtimo-select-form" }, { kind: "component", type: SelectFormFlowComponent, selector: "valtimo-select-form-flow" }, { kind: "component", type: SelectUrlComponent, selector: "valtimo-select-url" }, { kind: "component", type: SelectUIComponentComponent, selector: "valtimo-select-ui-component" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
2228
2277
  }
2229
2278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProcessLinkModalComponent, decorators: [{
2230
2279
  type: Component,
2231
- 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"] }]
2280
+ 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 selectedPluginConfiguration: selectedPluginConfiguration$ | 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\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 <h4 cdsModalHeaderLabel *ngIf=\"obs.typeOfSelectedProgressLink === 'plugin'\">\n {{\n 'processLinkConfiguration.pluginConfiguration'\n | translate: {pluginConfigTitle: obs.selectedPluginConfiguration?.title || '-'}\n }}\n </h4>\n <div class=\"process-link-progress\">\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"] }]
2232
2281
  }], ctorParameters: () => [{ type: ProcessLinkStateService }, { type: ProcessLinkStepService }, { type: ProcessLinkButtonService }, { type: PluginStateService }, { type: ProcessLinkService }, { type: ProcessLinkStateService }, { type: i1$1.ConfigService }] });
2233
2282
 
2234
2283
  /*