@valtimo/process-link 13.26.0 → 13.28.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.
@@ -20,7 +20,7 @@ import { Upload16 } from '@carbon/icons';
20
20
  import * as i2$1 from '@valtimo/components';
21
21
  import { ValuePathSelectorPrefix, ValuePathSelectorComponent, InputLabelModule, SelectModule, FormioOptionsImpl, ModalModule, StepperModule, VModalModule, ParagraphModule, TooltipModule, TooltipIconModule, FormIoModule, ValtimoCdsModalDirective, RenderInPageHeaderDirective, CarbonMultiInputModule, RemoveClassnamesDirective } from '@valtimo/components';
22
22
  import * as i5 from 'carbon-components-angular/dropdown';
23
- import BpmnViewer from 'bpmn-js';
23
+ import NavigatedViewer from 'bpmn-js/lib/NavigatedViewer';
24
24
  import * as i1$3 from '@valtimo/process';
25
25
  import * as i3$2 from '@angular/router';
26
26
  import { RouterModule } from '@angular/router';
@@ -597,42 +597,75 @@ class ProcessLinkService {
597
597
  getProcessLinkCandidates(activityType) {
598
598
  return this.http.get(`${this.VALTIMO_ENDPOINT_URI}v1/process-link/types?activityType=${activityType}`);
599
599
  }
600
+ createProcessDefinition(processLinks = [], processXml) {
601
+ return this.http.post(`${this.VALTIMO_ENDPOINT_URI}management/v1/process-definition`, this.buildProcessDefinitionFormData(processLinks, processXml, null), { headers: new HttpHeaders().set(InterceptorSkip, '409') });
602
+ }
603
+ updateProcessDefinition(processLinks = [], processDefinitionId, processXml) {
604
+ return this.http.put(`${this.VALTIMO_ENDPOINT_URI}management/v1/process-definition`, this.buildProcessDefinitionFormData(processLinks, processXml, processDefinitionId));
605
+ }
606
+ createProcessDefinitionForCase(processLinks = [], processXml, caseDefinitionKey, caseDefinitionVersionTag, canInitializeDocument = false, startableByUser = false) {
607
+ return this.http.post(`${this.VALTIMO_ENDPOINT_URI}management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/process-definition`, this.buildCaseProcessDefinitionFormData(processLinks, processXml, null, canInitializeDocument, startableByUser), { headers: new HttpHeaders().set(InterceptorSkip, '409') });
608
+ }
609
+ updateProcessDefinitionForCase(processLinks = [], processDefinitionId, processXml, caseDefinitionKey, caseDefinitionVersionTag, canInitializeDocument = false, startableByUser = false) {
610
+ return this.http.put(`${this.VALTIMO_ENDPOINT_URI}management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/process-definition`, this.buildCaseProcessDefinitionFormData(processLinks, processXml, processDefinitionId, canInitializeDocument, startableByUser));
611
+ }
612
+ createProcessDefinitionForBuildingBlock(processLinks = [], processXml, buildingBlockKey, buildingBlockVersionTag) {
613
+ return this.http.post(`${this.VALTIMO_ENDPOINT_URI}management/v1/building-block/${buildingBlockKey}/version/${buildingBlockVersionTag}/process-definition`, this.buildBuildingBlockFormData(processLinks, processXml, buildingBlockKey, buildingBlockVersionTag), { headers: new HttpHeaders().set(InterceptorSkip, '409') });
614
+ }
615
+ updateProcessDefinitionForBuildingBlock(processLinks = [], processDefinitionId, processXml, buildingBlockKey, buildingBlockVersionTag, replace = false) {
616
+ return this.http.put(`${this.VALTIMO_ENDPOINT_URI}management/v1/building-block/${buildingBlockKey}/version/${buildingBlockVersionTag}/process-definition/${processDefinitionId}`, this.buildBuildingBlockFormData(processLinks, processXml, buildingBlockKey, buildingBlockVersionTag), { params: replace ? new HttpParams().set('replace', 'true') : undefined });
617
+ }
618
+ /** @deprecated Use createProcessDefinition() or updateProcessDefinition() */
600
619
  deployProcessWithProcessLinks(processLinks = [], processDefinitionId, processXml) {
620
+ if (processDefinitionId) {
621
+ return this.updateProcessDefinition(processLinks, processDefinitionId, processXml);
622
+ }
623
+ return this.createProcessDefinition(processLinks, processXml);
624
+ }
625
+ /** @deprecated Use createProcessDefinitionForCase() or updateProcessDefinitionForCase() */
626
+ deployProcessWithProcessLinksForCase(processLinks = [], processDefinitionId, processXml, caseDefinitionKey, caseDefinitionVersionTag, canInitializeDocument = false, startableByUser = false) {
627
+ if (processDefinitionId) {
628
+ return this.updateProcessDefinitionForCase(processLinks, processDefinitionId, processXml, caseDefinitionKey, caseDefinitionVersionTag, canInitializeDocument, startableByUser);
629
+ }
630
+ return this.createProcessDefinitionForCase(processLinks, processXml, caseDefinitionKey, caseDefinitionVersionTag, canInitializeDocument, startableByUser);
631
+ }
632
+ /** @deprecated Use createProcessDefinitionForBuildingBlock() or updateProcessDefinitionForBuildingBlock() */
633
+ deployProcessWithProcessLinksForBuildingBlock(processLinks = [], processDefinitionId, processXml, buildingBlockKey, buildingBlockVersionTag, replace = false) {
634
+ if (processDefinitionId) {
635
+ return this.updateProcessDefinitionForBuildingBlock(processLinks, processDefinitionId, processXml, buildingBlockKey, buildingBlockVersionTag, replace);
636
+ }
637
+ return this.createProcessDefinitionForBuildingBlock(processLinks, processXml, buildingBlockKey, buildingBlockVersionTag);
638
+ }
639
+ buildProcessDefinitionFormData(processLinks, processXml, processDefinitionId) {
601
640
  const formData = new FormData();
602
- const processLinksBlob = new Blob([JSON.stringify(processLinks.map(processLink => this.emptyStringToNull(processLink)))], { type: 'application/json' });
603
641
  if (processXml)
604
642
  formData.append('file', new File([processXml], 'process.bpmn'));
605
643
  if (processDefinitionId)
606
644
  formData.append('processDefinitionId', processDefinitionId);
607
- formData.append('processLinks', processLinksBlob);
608
- return this.http.post(`${this.VALTIMO_ENDPOINT_URI}management/v1/process-definition`, formData);
645
+ formData.append('processLinks', this.toProcessLinksBlob(processLinks));
646
+ return formData;
609
647
  }
610
- deployProcessWithProcessLinksForCase(processLinks = [], processDefinitionId, processXml, caseDefinitionKey, caseDefinitionVersionTag, canInitializeDocument = false, startableByUser = false) {
648
+ buildCaseProcessDefinitionFormData(processLinks, processXml, processDefinitionId, canInitializeDocument, startableByUser) {
611
649
  const formData = new FormData();
612
- const processLinksBlob = new Blob([JSON.stringify(processLinks.map(processLink => this.emptyStringToNull(processLink)))], { type: 'application/json' });
613
650
  if (processXml)
614
651
  formData.append('file', new File([processXml], 'process.bpmn'));
615
652
  if (processDefinitionId)
616
653
  formData.append('processDefinitionId', processDefinitionId);
617
- formData.append('processLinks', processLinksBlob);
654
+ formData.append('processLinks', this.toProcessLinksBlob(processLinks));
618
655
  formData.append('canInitializeDocument', String(canInitializeDocument));
619
656
  formData.append('startableByUser', String(startableByUser));
620
- return this.http.post(`${this.VALTIMO_ENDPOINT_URI}management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/process-definition`, formData);
657
+ return formData;
621
658
  }
622
- deployProcessWithProcessLinksForBuildingBlock(processLinks = [], processDefinitionId, processXml, buildingBlockKey, buildingBlockVersionTag, replace = false) {
659
+ buildBuildingBlockFormData(processLinks, processXml, buildingBlockKey, buildingBlockVersionTag) {
623
660
  const formData = new FormData();
624
- const processLinksBlob = new Blob([JSON.stringify(processLinks.map(processLink => this.emptyStringToNull(processLink)))], { type: 'application/json' });
625
661
  if (processXml) {
626
662
  formData.append('file', new File([processXml], `${buildingBlockKey}-${buildingBlockVersionTag}.bpmn`));
627
663
  }
628
- if (processDefinitionId) {
629
- formData.append('processDefinitionId', processDefinitionId);
630
- }
631
- formData.append('processLinks', processLinksBlob);
632
- return this.http.post(`${this.VALTIMO_ENDPOINT_URI}management/v1/building-block/${buildingBlockKey}/version/${buildingBlockVersionTag}/process-definition/${processDefinitionId}`, formData, {
633
- headers: new HttpHeaders().set(InterceptorSkip, '409'),
634
- params: replace ? new HttpParams().set('replace', 'true') : undefined,
635
- });
664
+ formData.append('processLinks', this.toProcessLinksBlob(processLinks));
665
+ return formData;
666
+ }
667
+ toProcessLinksBlob(processLinks) {
668
+ return new Blob([JSON.stringify(processLinks.map(processLink => this.emptyStringToNull(processLink)))], { type: 'application/json' });
636
669
  }
637
670
  submitForm(processLinkId, formData, documentId, taskInstanceId, documentDefinitionName) {
638
671
  let params = new HttpParams();
@@ -2311,7 +2344,7 @@ class FormLinkProcessDiagramComponent {
2311
2344
  this.loadProcessDefinitionFromKey(this.processDefinitionKey);
2312
2345
  }
2313
2346
  });
2314
- this.bpmnViewer = new BpmnViewer({});
2347
+ this.bpmnViewer = new NavigatedViewer({});
2315
2348
  this.bpmnViewer.on('import.done', ({ error }) => {
2316
2349
  if (!error) {
2317
2350
  const canvas = this.bpmnViewer.get('canvas');
@@ -3964,7 +3997,7 @@ class ProcessLinkModalComponent {
3964
3997
  this.isEditing$ = this.stateService.isEditing$;
3965
3998
  this.isAdHocBuildingBlock$ = this.stepService.skipBuildingBlockSelectionStep$;
3966
3999
  this.selectedPluginConfiguration$ = this.pluginStateService.selectedPluginConfiguration$;
3967
- this.showViewModelToggle = this.configService.config.featureToggles.enableFormViewModel;
4000
+ this.showViewModelToggle$ = this.configService.getFeatureToggleObservable('enableFormViewModel');
3968
4001
  }
3969
4002
  closeModal() {
3970
4003
  this.stateService.closeModal();
@@ -3989,11 +4022,11 @@ class ProcessLinkModalComponent {
3989
4022
  this.processLinkStateService.setViewModelEnabled(value);
3990
4023
  }
3991
4024
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProcessLinkModalComponent, deps: [{ token: ProcessLinkStateService }, { token: ProcessLinkStepService }, { token: ProcessLinkButtonService }, { token: PluginStateService }, { token: ProcessLinkStateService }, { token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
3992
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: ProcessLinkModalComponent, isStandalone: false, selector: "valtimo-process-link-modal", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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 isEditing: isEditing$ | async,\n isAdHocBuildingBlock: isAdHocBuildingBlock$ | async,\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\" (close)=\"closeModal()\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 *ngIf=\"!obs.isAdHocBuildingBlock\" cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n <ng-container *ngIf=\"obs.isAdHocBuildingBlock; else defaultModalTitle\">\n {{ 'processLinkConfiguration.buildingBlockActionTitle' | translate: {buildingBlockName: obs.processStepName || '-'} }}\n </ng-container>\n <ng-template #defaultModalTitle>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </ng-template>\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 *ngIf=\"obs.currentStepId === 'selectForm'\">\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 *ngIf=\"obs.currentStepId === 'selectFormFlow'\">\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'choosePluginConfiguration' ||\n obs.currentStepId === 'choosePluginDefinition'\n \"\n >\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'selectBuildingBlock'\">\n <valtimo-select-building-block></valtimo-select-building-block>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configurePluginAction'\">\n <valtimo-plugin-action-configuration\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n ></valtimo-plugin-action-configuration>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configureBuildingBlockPlugins'\">\n <valtimo-configure-building-block-plugins></valtimo-configure-building-block-plugins>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configureBuildingBlockMappings'\">\n <valtimo-configure-building-block-mappings></valtimo-configure-building-block-mappings>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'uiComponent'\">\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 <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n <div class=\"footer-spacer\"></div>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.isEditing\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\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\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showSaveButton && !obs.saving\"\n [disabled]=\"!obs.enableSaveButton\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\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 .footer-spacer{flex:0 1 50%}.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}.process-link-progress{width:100%;margin-top:32px;margin-bottom:16px}.hidden{visibility:hidden}\n/*!\n * Copyright 2015-2026 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: i2$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "component", type: i4.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "ariaLabel", "skeleton"] }, { kind: "directive", type: i4.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "component", type: ConfigureBuildingBlockMappingsComponent, selector: "valtimo-configure-building-block-mappings" }, { 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: SelectUIComponentComponent, selector: "valtimo-select-ui-component" }, { kind: "component", type: SelectBuildingBlockComponent, selector: "valtimo-select-building-block" }, { kind: "component", type: ConfigureBuildingBlockPluginsComponent, selector: "valtimo-configure-building-block-plugins" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
4025
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: ProcessLinkModalComponent, isStandalone: false, selector: "valtimo-process-link-modal", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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 isEditing: isEditing$ | async,\n isAdHocBuildingBlock: isAdHocBuildingBlock$ | async,\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\" (close)=\"closeModal()\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 *ngIf=\"!obs.isAdHocBuildingBlock\" cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n <ng-container *ngIf=\"obs.isAdHocBuildingBlock; else defaultModalTitle\">\n {{ 'processLinkConfiguration.buildingBlockActionTitle' | translate: {buildingBlockName: obs.processStepName || '-'} }}\n </ng-container>\n <ng-template #defaultModalTitle>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </ng-template>\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 *ngIf=\"obs.currentStepId === 'selectForm'\">\n <valtimo-select-form></valtimo-select-form>\n <br />\n <cds-toggle\n *ngIf=\"showViewModelToggle$ | async\"\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 *ngIf=\"obs.currentStepId === 'selectFormFlow'\">\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'choosePluginConfiguration' ||\n obs.currentStepId === 'choosePluginDefinition'\n \"\n >\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'selectBuildingBlock'\">\n <valtimo-select-building-block></valtimo-select-building-block>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configurePluginAction'\">\n <valtimo-plugin-action-configuration\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n ></valtimo-plugin-action-configuration>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configureBuildingBlockPlugins'\">\n <valtimo-configure-building-block-plugins></valtimo-configure-building-block-plugins>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configureBuildingBlockMappings'\">\n <valtimo-configure-building-block-mappings></valtimo-configure-building-block-mappings>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'uiComponent'\">\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 <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n <div class=\"footer-spacer\"></div>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.isEditing\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\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\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showSaveButton && !obs.saving\"\n [disabled]=\"!obs.enableSaveButton\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\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 .footer-spacer{flex:0 1 50%}.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}.process-link-progress{width:100%;margin-top:32px;margin-bottom:16px}.hidden{visibility:hidden}\n/*!\n * Copyright 2015-2026 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: i2$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "component", type: i4.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "ariaLabel", "skeleton"] }, { kind: "directive", type: i4.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "component", type: ConfigureBuildingBlockMappingsComponent, selector: "valtimo-configure-building-block-mappings" }, { 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: SelectUIComponentComponent, selector: "valtimo-select-ui-component" }, { kind: "component", type: SelectBuildingBlockComponent, selector: "valtimo-select-building-block" }, { kind: "component", type: ConfigureBuildingBlockPluginsComponent, selector: "valtimo-configure-building-block-plugins" }, { kind: "pipe", type: i3$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
3993
4026
  }
3994
4027
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProcessLinkModalComponent, decorators: [{
3995
4028
  type: Component,
3996
- args: [{ standalone: false, selector: 'valtimo-process-link-modal', template: "<!--\n ~ Copyright 2015-2025 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 isEditing: isEditing$ | async,\n isAdHocBuildingBlock: isAdHocBuildingBlock$ | async,\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\" (close)=\"closeModal()\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 *ngIf=\"!obs.isAdHocBuildingBlock\" cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n <ng-container *ngIf=\"obs.isAdHocBuildingBlock; else defaultModalTitle\">\n {{ 'processLinkConfiguration.buildingBlockActionTitle' | translate: {buildingBlockName: obs.processStepName || '-'} }}\n </ng-container>\n <ng-template #defaultModalTitle>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </ng-template>\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 *ngIf=\"obs.currentStepId === 'selectForm'\">\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 *ngIf=\"obs.currentStepId === 'selectFormFlow'\">\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'choosePluginConfiguration' ||\n obs.currentStepId === 'choosePluginDefinition'\n \"\n >\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'selectBuildingBlock'\">\n <valtimo-select-building-block></valtimo-select-building-block>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configurePluginAction'\">\n <valtimo-plugin-action-configuration\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n ></valtimo-plugin-action-configuration>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configureBuildingBlockPlugins'\">\n <valtimo-configure-building-block-plugins></valtimo-configure-building-block-plugins>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configureBuildingBlockMappings'\">\n <valtimo-configure-building-block-mappings></valtimo-configure-building-block-mappings>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'uiComponent'\">\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 <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n <div class=\"footer-spacer\"></div>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.isEditing\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\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\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showSaveButton && !obs.saving\"\n [disabled]=\"!obs.enableSaveButton\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\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 .footer-spacer{flex:0 1 50%}.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}.process-link-progress{width:100%;margin-top:32px;margin-bottom:16px}.hidden{visibility:hidden}\n/*!\n * Copyright 2015-2026 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"] }]
4029
+ args: [{ standalone: false, selector: 'valtimo-process-link-modal', template: "<!--\n ~ Copyright 2015-2025 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 isEditing: isEditing$ | async,\n isAdHocBuildingBlock: isAdHocBuildingBlock$ | async,\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\" (close)=\"closeModal()\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 *ngIf=\"!obs.isAdHocBuildingBlock\" cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n <ng-container *ngIf=\"obs.isAdHocBuildingBlock; else defaultModalTitle\">\n {{ 'processLinkConfiguration.buildingBlockActionTitle' | translate: {buildingBlockName: obs.processStepName || '-'} }}\n </ng-container>\n <ng-template #defaultModalTitle>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </ng-template>\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 *ngIf=\"obs.currentStepId === 'selectForm'\">\n <valtimo-select-form></valtimo-select-form>\n <br />\n <cds-toggle\n *ngIf=\"showViewModelToggle$ | async\"\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 *ngIf=\"obs.currentStepId === 'selectFormFlow'\">\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'choosePluginConfiguration' ||\n obs.currentStepId === 'choosePluginDefinition'\n \"\n >\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'selectBuildingBlock'\">\n <valtimo-select-building-block></valtimo-select-building-block>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configurePluginAction'\">\n <valtimo-plugin-action-configuration\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n ></valtimo-plugin-action-configuration>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configureBuildingBlockPlugins'\">\n <valtimo-configure-building-block-plugins></valtimo-configure-building-block-plugins>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'configureBuildingBlockMappings'\">\n <valtimo-configure-building-block-mappings></valtimo-configure-building-block-mappings>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"obs.currentStepId === 'uiComponent'\">\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 <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n <div class=\"footer-spacer\"></div>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.isEditing\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\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\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showSaveButton && !obs.saving\"\n [disabled]=\"!obs.enableSaveButton\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\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 .footer-spacer{flex:0 1 50%}.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}.process-link-progress{width:100%;margin-top:32px;margin-bottom:16px}.hidden{visibility:hidden}\n/*!\n * Copyright 2015-2026 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"] }]
3997
4030
  }], ctorParameters: () => [{ type: ProcessLinkStateService }, { type: ProcessLinkStepService }, { type: ProcessLinkButtonService }, { type: PluginStateService }, { type: ProcessLinkStateService }, { type: i1.ConfigService }] });
3998
4031
 
3999
4032
  /*