@valtimo/process-link 13.2.1 → 13.3.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-process-link.mjs","sources":["../../../../projects/valtimo/process-link/src/lib/services/form-flow.service.ts","../../../../projects/valtimo/process-link/src/lib/services/plugin-state.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link.service.ts","../../../../projects/valtimo/process-link/src/lib/models/form-link.model.ts","../../../../projects/valtimo/process-link/src/lib/models/process-link.model.ts","../../../../projects/valtimo/process-link/src/lib/models/form-flow.model.ts","../../../../projects/valtimo/process-link/src/lib/models/form-custom-component.model.ts","../../../../projects/valtimo/process-link/src/lib/models/index.ts","../../../../projects/valtimo/process-link/src/lib/constants/injection-tokens.ts","../../../../projects/valtimo/process-link/src/lib/constants/process.link.ts","../../../../projects/valtimo/process-link/src/lib/constants/index.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-button.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-step.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-state.service.ts","../../../../projects/valtimo/process-link/src/lib/services/form-flow-component.service.ts","../../../../projects/valtimo/process-link/src/lib/services/url-resolver.service.ts","../../../../projects/valtimo/process-link/src/lib/services/url-validator.service.ts","../../../../projects/valtimo/process-link/src/lib/services/index.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-configuration/select-plugin-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-configuration/select-plugin-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-action/select-plugin-action.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-action/select-plugin-action.component.html","../../../../projects/valtimo/process-link/src/lib/components/import-plugin-configuration/import-plugin-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/import-plugin-configuration/import-plugin-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/plugin-action-configuration/plugin-action-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/plugin-action-configuration/plugin-action-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-link-process-diagram/form-link-process-diagram.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-link-process-diagram/form-link-process-diagram.component.html","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/choose-process-link-type.component.ts","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/choose-process-link-type.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-display-configuration/form-display-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-display-configuration/form-display-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form/select-form.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form/select-form.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/select-form-flow.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/select-form-flow.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-ui-component/select-ui-component.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-ui-component/select-ui-component.component.html","../../../../projects/valtimo/process-link/src/lib/components/process-link-modal/process-link-modal.component.ts","../../../../projects/valtimo/process-link/src/lib/components/process-link-modal/process-link-modal.component.html","../../../../projects/valtimo/process-link/src/lib/components/process-link/process-link.component.ts","../../../../projects/valtimo/process-link/src/lib/components/process-link/process-link.component.html","../../../../projects/valtimo/process-link/src/lib/process-link-routing.module.ts","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/index.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form/index.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-flow/form-flow.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow/form-flow.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/index.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/index.ts","../../../../projects/valtimo/process-link/src/lib/process-link.module.ts","../../../../projects/valtimo/process-link/src/public-api.ts","../../../../projects/valtimo/process-link/src/valtimo-process-link.ts"],"sourcesContent":["/*\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\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {\n FormFlowBreadcrumbs,\n FormFlowCreateRequest,\n FormFlowCreateResult,\n FormFlowDefinition,\n FormFlowInstance,\n} from '../models';\nimport {ConfigService, BaseApiService} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public createInstanceForNewProcess(\n processDefinitionKey: string,\n request: FormFlowCreateRequest\n ): Observable<FormFlowCreateResult> {\n return this.httpClient.post<FormFlowCreateResult>(\n this.getApiUrl(`v1/process-definition/${processDefinitionKey}/form-flow`),\n request\n );\n }\n\n public getFormFlowStep(formFlowInstanceId: string): Observable<FormFlowInstance> {\n return this.httpClient.get<FormFlowInstance>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}`)\n );\n }\n\n public submitStep(\n formFlowInstanceId: string,\n stepInstanceId: string,\n submissionData: any\n ): Observable<FormFlowInstance> {\n return this.httpClient.post<FormFlowInstance>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}/step/instance/${stepInstanceId}`),\n submissionData\n );\n }\n\n public back(formFlowInstanceId: string, submissionData: any): Observable<FormFlowInstance> {\n return this.httpClient.post<FormFlowInstance>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}/back`),\n submissionData\n );\n }\n\n public save(formFlowInstanceId: string, submissionData: any): Observable<null> {\n return this.httpClient.post<null>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}/save`),\n submissionData\n );\n }\n\n public getBreadcrumbs(formFlowInstanceId: string): Observable<FormFlowBreadcrumbs> {\n return this.httpClient.get<FormFlowBreadcrumbs>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}/breadcrumbs`)\n );\n }\n\n public navigateToStep(\n instanceId: string,\n currentStepInstanceId: string,\n targetStepInstanceId,\n submissionData: any\n ): Observable<FormFlowInstance> {\n return this.httpClient.post<FormFlowInstance>(\n this.getApiUrl(\n `v1/form-flow/instance/${instanceId}/step/instance/${currentStepInstanceId}/to/step/instance/${targetStepInstanceId}`\n ),\n submissionData\n );\n }\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, of, Subject, switchMap} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {\n PluginConfiguration,\n PluginDefinition,\n PluginFunction,\n PluginManagementService,\n PluginService,\n} from '@valtimo/plugin';\nimport {ProcessLink} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PluginStateService {\n private readonly _selectedPluginDefinition$ = new BehaviorSubject<PluginDefinition>(undefined);\n private readonly _selectedPluginConfiguration$ = new BehaviorSubject<PluginConfiguration>(\n undefined\n );\n private readonly _selectedPluginFunction$ = new BehaviorSubject<PluginFunction>(undefined);\n private readonly _save$ = new Subject<null>();\n private readonly _selectedProcessLink$ = new BehaviorSubject<ProcessLink>(undefined);\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginService: PluginService\n ) {}\n\n get selectedPluginDefinition$(): Observable<PluginDefinition> {\n return this._selectedPluginDefinition$.asObservable();\n }\n\n get selectedPluginConfiguration$(): Observable<PluginConfiguration> {\n return this._selectedPluginConfiguration$.asObservable();\n }\n\n get selectedPluginFunction$(): Observable<PluginFunction> {\n return this._selectedPluginFunction$.asObservable();\n }\n\n get save$(): Observable<any> {\n return this._save$.asObservable();\n }\n\n get functionKey$(): Observable<string> {\n return this._selectedProcessLink$.pipe(\n switchMap(processLink =>\n !processLink\n ? this._selectedPluginFunction$.pipe(map(pluginFunction => pluginFunction?.key))\n : of(processLink?.pluginActionDefinitionKey)\n )\n );\n }\n\n get pluginDefinitionKey$(): Observable<string> {\n return this._selectedProcessLink$.pipe(\n switchMap(selectedProcesLink =>\n !selectedProcesLink\n ? this._selectedPluginConfiguration$.pipe(\n map(configuration => configuration?.pluginDefinition.key)\n )\n : combineLatest([\n this._selectedProcessLink$,\n this.pluginService.pluginSpecifications$,\n ]).pipe(\n map(([processLink, pluginSpecifications]) => {\n const pluginSpecification = pluginSpecifications.find(specification => {\n const functionKeys =\n specification?.functionConfigurationComponents &&\n Object.keys(specification.functionConfigurationComponents);\n return functionKeys?.includes(processLink?.pluginActionDefinitionKey);\n });\n\n return pluginSpecification?.pluginId;\n })\n )\n )\n );\n }\n\n selectPluginDefinition(definition: PluginDefinition): void {\n this._selectedPluginDefinition$.next(definition);\n }\n\n selectPluginConfiguration(configuration: PluginConfiguration): void {\n this._selectedPluginConfiguration$.next(configuration);\n }\n\n selectPluginFunction(pluginFunction: PluginFunction): void {\n this._selectedPluginFunction$.next(pluginFunction);\n }\n\n selectProcessLink(processLink: ProcessLink): void {\n this._selectedProcessLink$.next(processLink);\n }\n\n deselectProcessLink(): void {\n this._selectedProcessLink$.next(undefined);\n }\n\n save(): void {\n this._save$.next(null);\n }\n}\n","/*\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 */\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/shared';\nimport {map, Observable} from 'rxjs';\n\nimport {\n CompatiblePluginProcessLinks,\n FormFlowProcessLinkUpdateRequestDto,\n FormProcessLinkUpdateRequestDto,\n FormSubmissionResult,\n GetProcessLinkRequest,\n GetProcessLinkResponse,\n PluginProcessLinkUpdateDto,\n ProcessLinkCreateEvent,\n ProcessLinkType,\n TaskWithProcessLink,\n UIComponentProcessLinkUpdateRequestDto,\n URLProcessLinkUpdateRequestDto,\n} from '../models';\nimport {URLVariables} from '../models/process-link-url.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkService {\n private readonly VALTIMO_ENDPOINT_URI!: string;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {\n this.VALTIMO_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n }\n\n public getTasksWithProcessLinks(processInstanceId: string): Observable<TaskWithProcessLink[]> {\n return this.http\n .get<\n TaskWithProcessLink[]\n >(`${this.VALTIMO_ENDPOINT_URI}v1/process/${processInstanceId}/tasks/process-link`, {})\n .pipe(map(res => res || []));\n }\n\n public getProcessLink(\n getProcessLinkRequest: GetProcessLinkRequest\n ): Observable<GetProcessLinkResponse> {\n var params = new HttpParams().set(\n 'processDefinitionId',\n getProcessLinkRequest.processDefinitionId\n );\n if (getProcessLinkRequest.activityId !== undefined)\n params = params.set('activityId', getProcessLinkRequest.activityId);\n\n return this.http.get<GetProcessLinkResponse>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link`, {\n params,\n });\n }\n\n public updateProcessLink(\n updateProcessLinkRequest:\n | PluginProcessLinkUpdateDto\n | FormFlowProcessLinkUpdateRequestDto\n | FormProcessLinkUpdateRequestDto\n | URLProcessLinkUpdateRequestDto\n | UIComponentProcessLinkUpdateRequestDto\n ): Observable<null> {\n return this.http.put<null>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link`,\n this.emptyStringToNull(updateProcessLinkRequest)\n );\n }\n\n public saveProcessLink(saveProcessLinkRequest: ProcessLinkCreateEvent): Observable<null> {\n return this.http.post<null>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link`,\n this.emptyStringToNull(saveProcessLinkRequest)\n );\n }\n\n public deleteProcessLink(id: string): Observable<null> {\n return this.http.delete<null>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link/${id}`);\n }\n\n public getProcessLinkCandidates(activityType: string): Observable<Array<ProcessLinkType>> {\n return this.http.get<Array<ProcessLinkType>>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/types?activityType=${activityType}`\n );\n }\n\n public deployProcessWithProcessLinks(\n processLinks: ProcessLinkCreateEvent[] = [],\n processDefinitionId: string | null,\n processXml: string | null\n ) {\n const formData = new FormData();\n const processLinksBlob = new Blob(\n [JSON.stringify(processLinks.map(processLink => this.emptyStringToNull(processLink)))],\n {type: 'application/json'}\n );\n\n if (processXml) formData.append('file', new File([processXml], 'process.bpmn'));\n if (processDefinitionId) formData.append('processDefinitionId', processDefinitionId);\n formData.append('processLinks', processLinksBlob);\n\n return this.http.post(`${this.VALTIMO_ENDPOINT_URI}management/v1/process-definition`, formData);\n }\n\n public deployProcessWithProcessLinksForCase(\n processLinks: ProcessLinkCreateEvent[] = [],\n processDefinitionId: string | null,\n processXml: string | null,\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n canInitializeDocument: boolean = false,\n startableByUser: boolean = false\n ) {\n const formData = new FormData();\n const processLinksBlob = new Blob(\n [JSON.stringify(processLinks.map(processLink => this.emptyStringToNull(processLink)))],\n {type: 'application/json'}\n );\n\n if (processXml) formData.append('file', new File([processXml], 'process.bpmn'));\n\n if (processDefinitionId) formData.append('processDefinitionId', processDefinitionId);\n\n formData.append('processLinks', processLinksBlob);\n formData.append('canInitializeDocument', String(canInitializeDocument));\n formData.append('startableByUser', String(startableByUser));\n\n return this.http.post(\n `${this.VALTIMO_ENDPOINT_URI}management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/process-definition`,\n formData\n );\n }\n\n public submitForm(\n processLinkId: string,\n formData: object,\n documentId?: string,\n taskInstanceId?: string,\n documentDefinitionName?: string\n ): Observable<FormSubmissionResult> {\n let params = new HttpParams();\n\n if (documentId) {\n params = params.set('documentId', documentId);\n }\n if (taskInstanceId) {\n params = params.set('taskInstanceId', taskInstanceId);\n }\n if (documentDefinitionName) {\n params = params.set('documentDefinitionName', documentDefinitionName);\n }\n\n const httpOptions = {\n headers: new HttpHeaders().set('Content-Type', 'application/json'),\n params,\n };\n return this.http.post<FormSubmissionResult>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/${processLinkId}/form/submission`,\n formData,\n httpOptions\n );\n }\n\n public submitURLProcessLink(\n processLinkId: string,\n documentId?: string,\n taskInstanceId?: string,\n documentDefinitionName?: string\n ): Observable<FormSubmissionResult> {\n let params = new HttpParams();\n\n if (documentId) {\n params = params.set('documentId', documentId);\n }\n if (taskInstanceId) {\n params = params.set('taskInstanceId', taskInstanceId);\n }\n if (documentDefinitionName) {\n params = params.set('documentDefinitionName', documentDefinitionName);\n }\n\n const httpOptions = {\n headers: new HttpHeaders().set('Content-Type', 'application/json'),\n params,\n };\n return this.http.post<FormSubmissionResult>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/url/${processLinkId}`,\n {},\n httpOptions\n );\n }\n\n public getVariables(): Observable<URLVariables> {\n return this.http.get<URLVariables>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link/url/variables`);\n }\n\n public getCompatiblePluginProcessLinks(\n pluginActionDefinitionKey: string\n ): Observable<CompatiblePluginProcessLinks[]> {\n return this.http.get<CompatiblePluginProcessLinks[]>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/plugin?pluginActionDefinitionKey=${pluginActionDefinitionKey}`\n );\n }\n\n private emptyStringToNull<T extends Record<string, any>>(object: T): T {\n if (object && typeof object === 'object') {\n Object.keys(object).forEach(key => {\n const typedKey = key as keyof T;\n const value = object[typedKey];\n if (typeof value === 'object' && value !== null) {\n this.emptyStringToNull(value);\n } else if (value === '') {\n object[typedKey] = null as any;\n }\n });\n }\n return object;\n }\n}\n","/*\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\nimport {ListItem} from 'carbon-components-angular';\n\ninterface FormSubmissionResult {\n errors: string[];\n documentId?: string;\n}\n\ninterface BpmnElement {\n id: string;\n type: string;\n activityListenerType?: string;\n activityType?: string;\n name?: string;\n}\n\ninterface FormFlowDefinition {\n id: string;\n name: string;\n}\n\ninterface FormFlowInstance {\n id: string;\n step?: FormFlowStep;\n}\n\ninterface FormFlowCreateRequest {\n documentId: string | null;\n documentDefinitionName: string | null;\n}\n\ninterface FormFlowCreateResult {\n formFlowInstanceId: string;\n}\n\ntype FormFlowStepType = 'form' | 'custom-component';\n\ninterface FormFlowStep {\n id: string;\n type: FormFlowStepType;\n typeProperties: FormTypeProperties;\n}\n\ninterface FormTypeProperties {\n definition?: any;\n id?: string;\n}\n\ninterface ModalParams {\n element: BpmnElement;\n processDefinitionKey: string;\n processDefinitionId: string;\n}\n\ninterface FormDefinitionListItem extends ListItem {\n id: string;\n}\n\ninterface FormFlowBreadcrumbs extends ListItem {\n currentStepIndex: number;\n breadcrumbs: Array<FormFlowBreadcrumb>;\n}\n\ninterface FormFlowBreadcrumb extends ListItem {\n title: string;\n key: string;\n stepInstanceId: string;\n completed: boolean;\n}\n\nexport {\n FormSubmissionResult,\n BpmnElement,\n FormFlowDefinition,\n FormFlowInstance,\n FormFlowStepType,\n FormFlowStep,\n FormTypeProperties,\n FormFlowCreateResult,\n FormFlowCreateRequest,\n ModalParams,\n FormDefinitionListItem,\n FormFlowBreadcrumbs,\n FormFlowBreadcrumb,\n};\n","/*\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 */\nimport {ProcessInstanceTask} from '@valtimo/process';\n\ninterface ProcessLink {\n id: string;\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n pluginConfigurationId?: string;\n pluginActionDefinitionKey?: string;\n actionProperties?: {\n [key: string]: any;\n };\n formDefinitionId?: string;\n formFlowDefinitionKey?: string;\n viewModelEnabled?: boolean;\n url?: string;\n formDisplayType?: FormDisplayType;\n formSize?: FormSize;\n subtitles?: string[];\n componentKey?: string;\n}\n\ntype GetProcessLinkResponse = Array<ProcessLink>;\n\ninterface GetProcessLinkRequest {\n activityId?: string;\n processDefinitionId: string;\n}\n\ninterface ProcessLinkType {\n enabled: boolean;\n processLinkType: string;\n}\n\ntype ProcessLinkConfigurationStep =\n | 'chooseProcessLinkType'\n | 'choosePluginConfiguration'\n | 'choosePluginAction'\n | 'configurePluginAction'\n | 'selectForm'\n | 'selectFormFlow'\n | 'empty';\n\ninterface FormProcessLinkCreateRequestDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n formDefinitionId: string;\n viewModelEnabled: boolean;\n formDisplayType?: string;\n formSize?: string;\n subtitles?: string[];\n}\n\ninterface FormFlowProcessLinkCreateRequestDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n formFlowDefinitionKey: string;\n subtitles: string[];\n}\n\ninterface PluginProcessLinkCreateDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n pluginConfigurationId: string;\n pluginActionDefinitionKey: string;\n actionProperties: object;\n}\n\ninterface PluginProcessLinkUpdateDto {\n id: string;\n activityId: string;\n pluginConfigurationId: string;\n pluginActionDefinitionKey: string;\n actionProperties: {\n [key: string]: any;\n };\n}\n\ninterface FormFlowProcessLinkUpdateRequestDto {\n id: string;\n activityId: string;\n formFlowDefinitionId: string;\n formDisplayType?: string;\n formSize?: string;\n}\n\ninterface FormProcessLinkUpdateRequestDto {\n id: string;\n activityId: string;\n formDefinitionId: string;\n viewModelEnabled: boolean;\n formDisplayType?: string;\n formSize?: string;\n subtitles?: string[];\n}\n\ntype FormDisplayType = 'modal' | 'panel';\n\ntype FormSize = 'extraSmall' | 'small' | 'medium' | 'large';\n\ninterface UIComponentProcessLinkCreateRequestDto {\n componentKey: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n processDefinitionId: string;\n}\n\ninterface UIComponentProcessLinkUpdateRequestDto {\n id: string;\n componentKey: string;\n activityId: string;\n}\n\ninterface URLProcessLinkCreateDto {\n url: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n}\n\ninterface URLProcessLinkUpdateRequestDto {\n url: string;\n id: string;\n activityId: string;\n}\n\ninterface UIComponentProcessLinkCreateRequestDto {\n componentKey: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n processDefinitionId: string;\n}\n\ninterface UIComponentProcessLinkUpdateRequestDto {\n id: string;\n componentKey: string;\n}\n\ntype TaskProcessLinkType = 'form' | 'form-flow' | 'form-view-model' | 'url' | 'ui-component';\n\ninterface TaskProcessLinkResult {\n processLinkId: string;\n type: TaskProcessLinkType;\n properties: {\n formFlowInstanceId?: string;\n formDefinitionId?: string;\n prefilledForm?: any;\n formDefinition?: any;\n formName?: string;\n url?: string;\n formDisplayType?: FormDisplayType;\n formSize?: FormSize;\n componentKey?: string;\n };\n}\n\ninterface TaskWithProcessLink {\n task: ProcessInstanceTask;\n processLinkActivityResult: TaskProcessLinkResult;\n}\n\ntype ProcessLinkUpdateEvent =\n | PluginProcessLinkUpdateDto\n | FormFlowProcessLinkUpdateRequestDto\n | FormProcessLinkUpdateRequestDto\n | URLProcessLinkUpdateRequestDto\n | UIComponentProcessLinkUpdateRequestDto;\n\ninterface ProcessLinkDeleteEvent {\n activityId: string;\n}\n\ninterface CompatibleProcessVersion {\n version: string;\n processLinks: ProcessLink[];\n}\n\ninterface CompatiblePluginProcessLinks {\n processDefinitionKey: string;\n versions: CompatibleProcessVersion[];\n}\n\ntype ProcessLinkCreateEvent =\n | FormProcessLinkCreateRequestDto\n | FormFlowProcessLinkCreateRequestDto\n | PluginProcessLinkCreateDto\n | URLProcessLinkCreateDto\n | UIComponentProcessLinkCreateRequestDto;\n\ninterface ProcessLinkDeleteEvent {\n activityId: string;\n}\n\nenum ProcessLinkEditMode {\n SAVE_TO_BACKEND,\n EMIT_EVENTS,\n}\n\ninterface CompatibleProcessVersion {\n version: string;\n processLinks: ProcessLink[];\n}\n\ninterface CompatiblePluginProcessLinks {\n processDefinitionKey: string;\n versions: CompatibleProcessVersion[];\n}\n\ninterface CompatibleProcessVersion {\n version: string;\n processLinks: ProcessLink[];\n}\n\ninterface CompatiblePluginProcessLinks {\n processDefinitionKey: string;\n versions: CompatibleProcessVersion[];\n}\n\nexport {\n CompatiblePluginProcessLinks,\n CompatibleProcessVersion,\n FormDisplayType,\n FormFlowProcessLinkCreateRequestDto,\n FormFlowProcessLinkUpdateRequestDto,\n FormProcessLinkCreateRequestDto,\n FormProcessLinkUpdateRequestDto,\n FormSize,\n GetProcessLinkRequest,\n GetProcessLinkResponse,\n PluginProcessLinkCreateDto,\n PluginProcessLinkUpdateDto,\n ProcessLink,\n ProcessLinkConfigurationStep,\n ProcessLinkCreateEvent,\n ProcessLinkDeleteEvent,\n ProcessLinkEditMode,\n ProcessLinkType,\n ProcessLinkUpdateEvent,\n TaskProcessLinkResult,\n TaskProcessLinkType,\n TaskWithProcessLink,\n UIComponentProcessLinkCreateRequestDto,\n UIComponentProcessLinkUpdateRequestDto,\n URLProcessLinkCreateDto,\n URLProcessLinkUpdateRequestDto,\n};\n","/*\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\nimport {EventEmitter, Type} from '@angular/core';\nimport {FormioSubmission} from '@valtimo/components';\n\ninterface ChangeEvent {\n data: object;\n}\n\ninterface FormFlowCustomComponent {\n formFlowInstanceId: string;\n componentId?: string;\n disabled: boolean;\n changeEvent: EventEmitter<ChangeEvent>;\n submitEvent: EventEmitter<FormioSubmission>;\n}\n\ninterface FormFlowCustomComponentDefinition {\n id: string;\n component: Type<FormFlowCustomComponent>;\n}\n\nexport {FormFlowCustomComponentDefinition, FormFlowCustomComponent, ChangeEvent};\n","/*\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\nimport {EventEmitter, Type} from '@angular/core';\n\ninterface FormCustomComponent {\n taskInstanceId: string | null;\n processDefinitionKey: string | null;\n documentDefinitionName: string | null;\n submittedEvent: EventEmitter<any>;\n}\n\ninterface FormCustomComponentDefinition {\n id: string;\n component: FormCustomComponent;\n}\n\ninterface FormCustomComponentConfig {\n [id: string]: Type<FormCustomComponentDefinition>;\n}\n\nexport {FormCustomComponent, FormCustomComponentDefinition, FormCustomComponentConfig};\n","/*\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\nexport * from './form-link.model';\nexport * from './process-link.model';\nexport * from './form-flow.model';\nexport * from './form-custom-component.model';\n","/*\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\nimport {InjectionToken} from '@angular/core';\nimport {FormCustomComponentConfig, FormFlowCustomComponentDefinition} from '../models';\n\nconst FORM_FLOW_COMPONENT_TOKEN = new InjectionToken<Array<FormFlowCustomComponentDefinition>>(\n 'Supported form-flow Angular components',\n {factory: () => []}\n);\n\nconst FORM_CUSTOM_COMPONENT_TOKEN = new InjectionToken<FormCustomComponentConfig>(\n 'Custom component that can be used instead of FormIO or form-flow'\n);\n\nexport {FORM_FLOW_COMPONENT_TOKEN, FORM_CUSTOM_COMPONENT_TOKEN};\n","/*\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\nimport {FormSize} from '../models';\nimport {CarbonModalSize} from '@valtimo/components';\n\nconst formSizeToCarbonModalSizeMap: Record<FormSize, CarbonModalSize> = {\n extraSmall: 'xs',\n small: 'sm',\n medium: 'md',\n large: 'lg',\n};\n\nexport {formSizeToCarbonModalSizeMap};\n","/*\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\nexport * from './injection-tokens';\nexport * from './process.link';\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkButtonService {\n private readonly _showSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _enableSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _enableNextButton$ = new BehaviorSubject<boolean>(false);\n private readonly _showBackButton$ = new BehaviorSubject<boolean>(false);\n private readonly _showNextButton$ = new BehaviorSubject<boolean>(false);\n private readonly _backButtonClick$ = new Subject<null>();\n private readonly _saveButtonClick$ = new Subject<null>();\n private readonly _nextButtonClick$ = new Subject<null>();\n\n get showSaveButton$(): Observable<boolean> {\n return this._showSaveButton$.asObservable();\n }\n get enableSaveButton$(): Observable<boolean> {\n return this._enableSaveButton$.asObservable();\n }\n get showNextButton$(): Observable<boolean> {\n return this._showNextButton$.asObservable();\n }\n get enableNextButton$(): Observable<boolean> {\n return this._enableNextButton$.asObservable();\n }\n get showBackButton$(): Observable<boolean> {\n return this._showBackButton$.asObservable();\n }\n get backButtonClick$(): Observable<null> {\n return this._backButtonClick$.asObservable();\n }\n get saveButtonClick$(): Observable<null> {\n return this._saveButtonClick$.asObservable();\n }\n get nextButtonClick$(): Observable<null> {\n return this._nextButtonClick$.asObservable();\n }\n\n showSaveButton(): void {\n this._showSaveButton$.next(true);\n }\n\n hideSaveButton(): void {\n this._showSaveButton$.next(false);\n }\n\n showNextButton(): void {\n this._showNextButton$.next(true);\n }\n\n hideNextButton(): void {\n this._showNextButton$.next(false);\n }\n\n enableNextButton(): void {\n this._enableNextButton$.next(true);\n }\n\n disableNextButton(): void {\n this._enableNextButton$.next(false);\n }\n\n enableSaveButton(): void {\n this._enableSaveButton$.next(true);\n }\n\n disableSaveButton(): void {\n this._enableSaveButton$.next(false);\n }\n\n showBackButton(): void {\n this._showBackButton$.next(true);\n }\n\n hideBackButton(): void {\n this._showBackButton$.next(false);\n }\n\n clickBackButton(): void {\n this._backButtonClick$.next(null);\n }\n\n clickSaveButton(): void {\n this._saveButtonClick$.next(null);\n }\n\n clickNextButton(): void {\n this._nextButtonClick$.next(null);\n }\n\n resetButtons(): void {\n this.disableSaveButton();\n this.hideBackButton();\n this.hideSaveButton();\n this.hideNextButton();\n this.disableNextButton();\n }\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {Step} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, filter, map, Observable} from 'rxjs';\nimport {ProcessLinkConfigurationStep, ProcessLinkType} from '../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ProcessLinkButtonService} from './process-link-button.service';\nimport {take} from 'rxjs/operators';\nimport {PluginStateService} from './plugin-state.service';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkStepService {\n private readonly _steps$ = new BehaviorSubject<Array<Step>>(undefined);\n private readonly _currentStepIndex$ = new BehaviorSubject<number>(0);\n private readonly _disableSteps$ = new BehaviorSubject<boolean>(false);\n private readonly _hasOneProcessLinkType$ = new BehaviorSubject<boolean>(false);\n\n get steps$(): Observable<Array<Step>> {\n return combineLatest([\n this._steps$,\n this._disableSteps$,\n this.translateService.stream('key'),\n ]).pipe(\n filter(([steps]) => !!steps),\n map(([steps, disableSteps]) =>\n steps.map(step => ({\n ...step,\n disabled: disableSteps,\n label: this.translateService.instant(`processLinkSteps.${step.label}`),\n ...(step.secondaryLabel && {\n secondaryLabel: this.translateService.instant(step.secondaryLabel),\n }),\n }))\n )\n );\n }\n\n get currentStepIndex$(): Observable<number> {\n return this._currentStepIndex$.asObservable();\n }\n\n get currentStepId$(): Observable<ProcessLinkConfigurationStep | ''> {\n return combineLatest([this._steps$, this.currentStepIndex$]).pipe(\n filter(([steps, currentStepIndex]) => !!steps && typeof currentStepIndex === 'number'),\n map(([steps, currentStepIndex]) =>\n steps.length > 0 ? (steps[currentStepIndex]?.label as ProcessLinkConfigurationStep) : ''\n )\n );\n }\n\n get hasOneProcessLinkType$(): Observable<boolean> {\n return this._hasOneProcessLinkType$.asObservable();\n }\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService,\n private readonly pluginTranslateService: PluginTranslationService\n ) {}\n\n reset(): void {\n this._currentStepIndex$.next(0);\n this._steps$.next([]);\n }\n\n setInitialSteps(availableProcessLinkTypes: Array<ProcessLinkType>): void {\n if (availableProcessLinkTypes.length > 1) {\n this.setChoiceSteps();\n }\n }\n\n setFormSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.form'},\n {label: 'selectForm'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleFormStep(): void {\n this._steps$.next([{label: 'selectForm'}]);\n this._currentStepIndex$.next(0);\n }\n\n setUIComponentStep(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.ui-component'},\n {label: 'uiComponent'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setFormFlowSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.form-flow'},\n {label: 'selectFormFlow'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleFormFlowStep(): void {\n this._steps$.next([{label: 'selectFormFlow'}]);\n this._currentStepIndex$.next(0);\n }\n\n setChoosePluginConfigurationSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration'},\n {label: 'choosePluginAction', disabled: true},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleChoosePluginConfigurationSteps(): void {\n this._steps$.next([\n {label: 'choosePluginConfiguration'},\n {label: 'choosePluginAction', disabled: true},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(0);\n }\n\n setChoosePluginActionSteps(): void {\n combineLatest([\n this._hasOneProcessLinkType$,\n this.pluginStateService.selectedPluginConfiguration$,\n ])\n .pipe(take(1))\n .subscribe(([hasOneType, selectedConfiguration]) => {\n if (hasOneType) {\n this._steps$.next([\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction'},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(1);\n this.buttonService.showNextButton();\n this.buttonService.showBackButton();\n this.buttonService.hideSaveButton();\n this.buttonService.disableNextButton();\n } else {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction'},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(2);\n this.buttonService.showNextButton();\n this.buttonService.showBackButton();\n\n this.buttonService.hideSaveButton();\n this.buttonService.disableNextButton();\n }\n });\n }\n\n setConfigurePluginActionSteps(): void {\n combineLatest([\n this._hasOneProcessLinkType$,\n this.pluginStateService.selectedPluginConfiguration$,\n this.pluginStateService.selectedPluginFunction$,\n ])\n .pipe(take(1))\n .subscribe(([hasOneType, selectedConfiguration, selectedFunction]) => {\n const selectedFunctionTranslation = this.pluginTranslateService.instant(\n selectedFunction.key,\n selectedConfiguration.pluginDefinition.key\n );\n\n if (hasOneType) {\n this._steps$.next([\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction', secondaryLabel: selectedFunctionTranslation},\n {label: 'configurePluginAction'},\n ]);\n this._currentStepIndex$.next(2);\n this.buttonService.hideNextButton();\n this.buttonService.showSaveButton();\n } else {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction', secondaryLabel: selectedFunctionTranslation},\n {label: 'configurePluginAction'},\n ]);\n this._currentStepIndex$.next(3);\n this.buttonService.hideNextButton();\n this.buttonService.showSaveButton();\n }\n });\n }\n\n public setURLSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.url'},\n {label: 'selectURL'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n public setSingleURLStep(): void {\n this._steps$.next([{label: 'selectURL'}]);\n this._currentStepIndex$.next(0);\n }\n\n disableSteps(): void {\n this._disableSteps$.next(true);\n }\n\n enableSteps(): void {\n this._disableSteps$.next(false);\n }\n\n setHasOneProcessLinkType(hasOne: boolean): void {\n this._hasOneProcessLinkType$.next(hasOne);\n }\n\n setProcessLinkTypeSteps(processLinkTypeId: string, hasOneOption?: boolean): void {\n switch (processLinkTypeId) {\n case 'form':\n if (hasOneOption) {\n this.setSingleFormStep();\n this.buttonService.hideBackButton();\n } else {\n this.setFormSteps();\n this.buttonService.showBackButton();\n }\n this.buttonService.showSaveButton();\n break;\n case 'form-flow':\n if (hasOneOption) {\n this.setSingleFormFlowStep();\n this.buttonService.hideSaveButton();\n this.buttonService.hideBackButton();\n } else {\n this.setFormFlowSteps();\n this.buttonService.showSaveButton();\n this.buttonService.showBackButton();\n }\n break;\n case 'plugin':\n if (hasOneOption) {\n this.setSingleChoosePluginConfigurationSteps();\n this.buttonService.hideBackButton();\n this.buttonService.showNextButton();\n } else {\n this.setChoosePluginConfigurationSteps();\n this.buttonService.showBackButton();\n this.buttonService.showNextButton();\n }\n break;\n case 'url':\n if (hasOneOption) {\n this.setSingleURLStep();\n this.buttonService.hideBackButton();\n this.buttonService.showSaveButton();\n } else {\n this.setURLSteps();\n this.buttonService.showBackButton();\n this.buttonService.showSaveButton();\n }\n break;\n case 'ui-component':\n this.setUIComponentStep();\n this.buttonService.showBackButton();\n this.buttonService.showSaveButton();\n break;\n }\n }\n\n private setChoiceSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType'},\n {label: 'empty', disabled: true},\n {label: 'empty', disabled: true},\n ]);\n this._currentStepIndex$.next(0);\n }\n}\n","/*\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 */\nimport {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {BehaviorSubject, map, Observable, Subject, Subscription} from 'rxjs';\nimport {\n FormCustomComponentConfig,\n ModalParams,\n ProcessLink,\n ProcessLinkCreateEvent,\n ProcessLinkDeleteEvent,\n ProcessLinkEditMode,\n ProcessLinkType,\n ProcessLinkUpdateEvent,\n} from '../models';\nimport {PluginStateService} from './plugin-state.service';\nimport {ProcessLinkButtonService} from './process-link-button.service';\nimport {ProcessLinkStepService} from './process-link-step.service';\nimport {FORM_CUSTOM_COMPONENT_TOKEN} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkStateService implements OnDestroy {\n private readonly _showModal$ = new BehaviorSubject<boolean>(false);\n private readonly _availableProcessLinkTypes$ = new BehaviorSubject<Array<ProcessLinkType>>([]);\n private readonly _elementName$ = new BehaviorSubject<string>('');\n private readonly _selectedProcessLinkTypeId$ = new BehaviorSubject<string>('');\n private readonly _viewModelEnabled$ = new BehaviorSubject<boolean>(false);\n private readonly _url$ = new BehaviorSubject<string>('');\n private readonly _saving$ = new BehaviorSubject<boolean>(false);\n private readonly _modalParams$ = new BehaviorSubject<ModalParams>(undefined);\n private readonly _selectedProcessLink$ = new BehaviorSubject<ProcessLink>(undefined);\n private readonly _processLinkEditMode$ = new BehaviorSubject<ProcessLinkEditMode>(\n ProcessLinkEditMode.SAVE_TO_BACKEND\n );\n private readonly _processLinkUpdateEvents$ = new Subject<ProcessLinkUpdateEvent>();\n private readonly _processLinkCreateEvents$ = new Subject<ProcessLinkCreateEvent>();\n private readonly _processLinkDeleteEvents$ = new Subject<ProcessLinkDeleteEvent>();\n\n public get processLinkUpdateEvents$(): Observable<ProcessLinkUpdateEvent> {\n return this._processLinkUpdateEvents$.asObservable();\n }\n public get processLinkCreateEvents$(): Observable<ProcessLinkCreateEvent> {\n return this._processLinkCreateEvents$.asObservable();\n }\n public get processLinkDeleteEvents$(): Observable<ProcessLinkDeleteEvent> {\n return this._processLinkDeleteEvents$.asObservable();\n }\n public get showModal$(): Observable<boolean> {\n return this._showModal$.asObservable();\n }\n public get elementName$(): Observable<string> {\n return this._elementName$.asObservable();\n }\n\n public get availableProcessLinkTypes$(): Observable<ProcessLinkType[]> {\n return this._availableProcessLinkTypes$.pipe(\n map(types =>\n (!this.formCustomComponentConfig\n ? types.map(type => ({\n ...type,\n enabled: type.processLinkType === 'ui-component' ? false : type.enabled,\n }))\n : types\n ).filter(type => type.processLinkType !== 'url')\n )\n );\n }\n\n public get hideProgressIndicator$(): Observable<boolean> {\n return this._availableProcessLinkTypes$\n .asObservable()\n .pipe(\n map(\n availableTypes =>\n Array.isArray(availableTypes) &&\n availableTypes.length === 1 &&\n (availableTypes[0]?.processLinkType === 'form' ||\n availableTypes[0]?.processLinkType === 'form-flow')\n )\n );\n }\n public get selectedProcessLinkTypeId$(): Observable<string> {\n return this._selectedProcessLinkTypeId$.asObservable();\n }\n public get saving$(): Observable<boolean> {\n return this._saving$.asObservable();\n }\n public get modalParams$(): Observable<ModalParams> {\n return this._modalParams$.asObservable();\n }\n public get selectedProcessLink$(): Observable<ProcessLink> {\n return this._selectedProcessLink$.asObservable();\n }\n public get typeOfSelectedProcessLink$(): Observable<string> {\n return this.selectedProcessLink$.pipe(map(processLink => processLink?.processLinkType || ''));\n }\n public get processLinkEditMode(): ProcessLinkEditMode {\n return this._processLinkEditMode$.getValue();\n }\n public get viewModelEnabled$(): Observable<boolean> {\n return this._viewModelEnabled$.asObservable();\n }\n public get url$(): Observable<string> {\n return this._url$.asObservable();\n }\n\n private _availableProcessLinkTypesSubscription!: Subscription;\n\n constructor(\n private readonly processLinkStepService: ProcessLinkStepService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService,\n @Optional()\n @Inject(FORM_CUSTOM_COMPONENT_TOKEN)\n private readonly formCustomComponentConfig: FormCustomComponentConfig\n ) {\n this.openAvailableProcessLinkTypesSubscription();\n }\n\n public ngOnDestroy(): void {\n this._availableProcessLinkTypesSubscription?.unsubscribe();\n }\n\n public setAvailableProcessLinkTypes(processLinkTypes: Array<ProcessLinkType>): void {\n const hasOneOption = processLinkTypes.length === 1;\n this._availableProcessLinkTypes$.next(processLinkTypes);\n this.processLinkStepService.setHasOneProcessLinkType(hasOneOption);\n\n if (hasOneOption) {\n this.selectProcessLinkType(processLinkTypes[0].processLinkType, hasOneOption);\n }\n }\n\n public setElementName(name: string): void {\n this._elementName$.next(name);\n }\n\n public showModal(): void {\n this._showModal$.next(true);\n }\n\n public closeModal(): void {\n this._showModal$.next(false);\n\n setTimeout(() => {\n this.reset();\n }, 240);\n }\n\n public selectProcessLinkType(processLinkTypeId: string, hasOneOption?: boolean): void {\n this._selectedProcessLinkTypeId$.next(processLinkTypeId);\n this.processLinkStepService.setProcessLinkTypeSteps(processLinkTypeId, hasOneOption);\n }\n\n public setViewModelEnabled(viewModelEnabled: boolean): void {\n this._viewModelEnabled$.next(viewModelEnabled);\n }\n\n public clearSelectedProcessLinkType(): void {\n this._selectedProcessLinkTypeId$.next('');\n }\n\n public startSaving(): void {\n this._saving$.next(true);\n this.processLinkStepService.disableSteps();\n }\n\n public stopSaving(): void {\n this._saving$.next(false);\n this.processLinkStepService.enableSteps();\n }\n\n public setInitial(): void {\n const availableTypes = this._availableProcessLinkTypes$.getValue();\n this.buttonService.resetButtons();\n this.processLinkStepService.setInitialSteps(availableTypes);\n }\n\n public setModalParams(params: ModalParams): void {\n this._modalParams$.next(params);\n }\n\n public selectProcessLink(processLink: ProcessLink | undefined): void {\n if (!processLink) return;\n this._selectedProcessLink$.next(processLink);\n this.pluginStateService.selectProcessLink(processLink);\n this.setViewModelEnabled(processLink.viewModelEnabled ?? false);\n this._url$.next(processLink.url ?? '');\n }\n\n public deselectProcessLink(): void {\n this._selectedProcessLink$.next(undefined);\n this.pluginStateService.deselectProcessLink();\n }\n\n public setEditMode(editMode: ProcessLinkEditMode): void {\n this._processLinkEditMode$.next(editMode);\n }\n\n public sendProcessLinkUpdateEvent(event: ProcessLinkUpdateEvent): void {\n this._processLinkUpdateEvents$.next(event);\n }\n\n public sendProcessLinkCreateEvent(event: ProcessLinkCreateEvent): void {\n this._processLinkCreateEvents$.next(event);\n }\n\n public sendProcessLinkDeleteEvent(event: ProcessLinkDeleteEvent): void {\n this._processLinkDeleteEvents$.next(event);\n }\n\n private openAvailableProcessLinkTypesSubscription(): void {\n this._availableProcessLinkTypesSubscription = this._availableProcessLinkTypes$.subscribe(\n availableProcessLinkTypes => {\n if (availableProcessLinkTypes.length > 1) {\n this.setInitial();\n }\n }\n );\n }\n\n private reset(): void {\n this.setAvailableProcessLinkTypes([]);\n this.processLinkStepService.reset();\n this.stopSaving();\n this.buttonService.resetButtons();\n this.clearSelectedProcessLinkType();\n this.deselectProcessLink();\n }\n}\n","/*\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\nimport {Inject, Injectable} from '@angular/core';\nimport {BehaviorSubject, filter, Observable} from 'rxjs';\nimport {FormFlowCustomComponentDefinition} from '../models';\nimport {FORM_FLOW_COMPONENT_TOKEN} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowComponentService {\n private readonly _supportedComponents$ =\n new BehaviorSubject<Array<FormFlowCustomComponentDefinition> | null>(null);\n\n public get supportedComponents$(): Observable<Array<FormFlowCustomComponentDefinition>> {\n return this._supportedComponents$.pipe(filter(components => !!components));\n }\n\n constructor(\n @Inject(FORM_FLOW_COMPONENT_TOKEN)\n private readonly supportedCustomComponents: Array<FormFlowCustomComponentDefinition>\n ) {\n this.setSupportedComponents(supportedCustomComponents);\n }\n\n private setSupportedComponents(\n supportedComponents: Array<FormFlowCustomComponentDefinition>\n ): void {\n this._supportedComponents$.next(supportedComponents);\n }\n}\n","/*\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\nimport {Injectable} from '@angular/core';\n\n@Injectable()\nexport class UrlResolverService {\n public resolveUrlVariables(url: string, variables: Map<string, string>): string {\n let resolvingUrl = url;\n Object.keys(variables).forEach(key => {\n let value = variables[key];\n resolvingUrl = resolvingUrl.replace('<' + key + '>', value);\n });\n return resolvingUrl;\n }\n}\n","/*\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\nimport {AbstractControl, ValidationErrors, ValidatorFn} from '@angular/forms';\nimport {Injectable} from '@angular/core';\nimport {UrlResolverService} from './url-resolver.service';\n\n@Injectable()\nexport class UrlValidatorService {\n constructor(private readonly urlResolverService: UrlResolverService) {}\n\n public urlValidator(variables: Map<string, string>): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const url = this.urlResolverService.resolveUrlVariables(control.value, variables);\n try {\n new URL(url);\n return null;\n } catch (_) {\n return {invalidUrl: url};\n }\n };\n }\n}\n","/*\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\nexport * from './form-flow.service';\nexport * from './plugin-state.service';\nexport * from './process-link.service';\nexport * from './process-link-state.service';\nexport * from './process-link-step.service';\nexport * from './process-link-button.service';\nexport * from './form-flow-component.service';\nexport * from './url-resolver.service';\nexport * from './url-validator.service';\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginStateService} from '../../services/plugin-state.service';\nimport {combineLatest, Observable, of, Subscription} from 'rxjs';\nimport {\n PluginConfiguration,\n PluginConfigurationWithLogo,\n PluginManagementService,\n PluginService,\n} from '@valtimo/plugin';\nimport {\n ProcessLinkButtonService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-plugin-configuration',\n templateUrl: './select-plugin-configuration.component.html',\n styleUrls: ['./select-plugin-configuration.component.scss'],\n})\nexport class SelectPluginConfigurationComponent implements OnInit, OnDestroy {\n readonly pluginConfigurations$: Observable<Array<PluginConfigurationWithLogo>> =\n this.stateService.modalParams$.pipe(\n switchMap(modalData =>\n combineLatest([\n modalData?.element?.type\n ? this.pluginManagementService.getAllPluginConfigurationsWithLogos(\n modalData?.element?.activityListenerType\n )\n : of(undefined),\n this.pluginService.availablePluginIds$,\n ]).pipe(\n map(([pluginConfigurations, availablePluginIds]) =>\n pluginConfigurations?.filter(configuration =>\n availablePluginIds.includes(configuration.pluginDefinition.key)\n )\n )\n )\n )\n );\n\n readonly selectedPluginConfiguration$ = this.pluginStateService.selectedPluginConfiguration$;\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginStateService: PluginStateService,\n private readonly pluginService: PluginService,\n private readonly stateService: ProcessLinkStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stepService: ProcessLinkStepService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openNextButtonSubscription();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n selected(event: {value: PluginConfiguration}): void {\n this.selectConfiguration(event.value);\n this.buttonService.enableNextButton();\n }\n\n private selectConfiguration(configuration: PluginConfiguration): void {\n this.pluginStateService.selectPluginDefinition({key: configuration.pluginDefinition.key});\n this.pluginStateService.selectPluginConfiguration(configuration);\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openNextButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.nextButtonClick$.subscribe(() => {\n this.stepService.setChoosePluginActionSteps();\n })\n );\n }\n}\n","<!--\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<ng-container *ngIf=\"pluginConfigurations$ | async as pluginConfigurations; else loading\">\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.choosePluginConfigurationDescription' | translate }}\n </p>\n <div class=\"list-container\">\n <cds-structured-list (selected)=\"selected($event)\" selection=\"true\">\n <cds-list-header>\n <cds-list-column nowrap=\"true\"></cds-list-column>\n <cds-list-column nowrap=\"true\">{{\n 'pluginManagement.labels.configurationName' | translate\n }}</cds-list-column>\n <cds-list-column>{{\n 'processLinkConfiguration.pluginDescription' | translate\n }}</cds-list-column>\n </cds-list-header>\n <cds-list-row\n *ngFor=\"let pluginConfiguration of pluginConfigurations\"\n [value]=\"pluginConfiguration\"\n >\n <cds-list-column>\n <div *ngIf=\"pluginConfiguration.pluginLogoBase64\">\n <img\n [src]=\"pluginConfiguration.pluginLogoBase64\"\n [title]=\"'title' | pluginTranslate: pluginConfiguration.pluginDefinition.key | async\"\n class=\"plugin-configuration-logo\"\n /></div\n ></cds-list-column>\n <cds-list-column>{{ pluginConfiguration.title }}</cds-list-column>\n <cds-list-column>\n {{ 'description' | pluginTranslate: pluginConfiguration.pluginDefinition.key | async }}\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n","/*\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 */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {PluginDefinition, PluginFunction, PluginManagementService} from '@valtimo/plugin';\nimport {combineLatest, Observable, of, Subscription} from 'rxjs';\nimport {switchMap, take} from 'rxjs/operators';\n\nimport {\n PluginStateService,\n ProcessLinkButtonService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-plugin-action',\n templateUrl: './select-plugin-action.component.html',\n styleUrls: ['./select-plugin-action.component.scss'],\n})\nexport class SelectPluginActionComponent implements OnInit, OnDestroy {\n public readonly pluginFunctions$: Observable<Array<PluginFunction> | undefined> = combineLatest([\n this.stateService.selectedPluginDefinition$,\n this.processLinkStateService.modalParams$,\n ]).pipe(\n switchMap(([selectedDefinition, modalParams]) =>\n selectedDefinition\n ? this.pluginManagementService.getPluginFunctions(\n selectedDefinition.key,\n modalParams.element.activityListenerType\n )\n : of(undefined)\n )\n );\n public readonly selectedPluginDefinition$: Observable<PluginDefinition> =\n this.stateService.selectedPluginDefinition$;\n public readonly selectedPluginFunction$: Observable<PluginFunction> =\n this.stateService.selectedPluginFunction$;\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginManagementService: PluginManagementService,\n private readonly stateService: PluginStateService,\n private readonly stepService: ProcessLinkStepService,\n private readonly processLinkStateService: ProcessLinkStateService\n ) {}\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openNextButtonSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFunction(pluginFunction: PluginFunction): void {\n this.stateService.selectPluginFunction(pluginFunction);\n }\n\n public selected(event: {value: string}): void {\n this.selectFunction(JSON.parse(event.value));\n this.buttonService.enableNextButton();\n }\n\n public stringify(object: object): string {\n return JSON.stringify(object);\n }\n\n private openBackButtonSubscription(): void {\n this.buttonService.backButtonClick$\n .pipe(\n switchMap(() => this.stepService.hasOneProcessLinkType$),\n take(1)\n )\n .subscribe((hasOneOption: boolean) => {\n this.stepService.setProcessLinkTypeSteps('plugin', hasOneOption);\n });\n }\n\n private openNextButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.nextButtonClick$.subscribe(() => {\n this.stepService.setConfigurePluginActionSteps();\n })\n );\n }\n}\n","<!--\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<ng-container *ngIf=\"pluginFunctions$ | async as pluginFunctions; else loading\">\n <div class=\"choose-plugin-action\" *ngIf=\"pluginFunctions?.length > 0\">\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.choosePluginActionDescription' | translate }}\n </p>\n <div class=\"action-tiles\">\n <cds-tile-group\n [multiple]=\"false\"\n *ngIf=\"{selectedPluginDefinition: selectedPluginDefinition$ | async} as obs\"\n (selected)=\"selected($event)\"\n >\n <cds-selection-tile\n *ngFor=\"let pluginFunction of pluginFunctions\"\n [value]=\"stringify(pluginFunction)\"\n [selected]=\"false\"\n >{{\n pluginFunction.key | pluginTranslate: obs.selectedPluginDefinition.key | async\n }}</cds-selection-tile\n >\n </cds-tile-group>\n </div>\n </div>\n <ng-container *ngIf=\"!pluginFunctions || pluginFunctions?.length === 0\">\n <ng-container *ngTemplateOutlet=\"noPluginFunctionsTemplate\"> </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #noPluginFunctionsTemplate>\n <p class=\"step-description\">\n {{ 'processLink.noPluginFunctions' | translate }}\n </p>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {AbstractControl, FormBuilder, FormControl, Validators} from '@angular/forms';\nimport {BehaviorSubject, combineLatest, map, Observable, startWith, Subject} from 'rxjs';\nimport {CompatiblePluginProcessLinks, ProcessLink} from '../../models';\nimport {ProcessLinkService} from '../../services';\nimport {IconService, ListItem} from 'carbon-components-angular';\nimport {Upload16} from '@carbon/icons';\nimport {CdsThemeService} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-import-plugin-configuration',\n templateUrl: './import-plugin-configuration.component.html',\n styleUrls: ['./import-plugin-configuration.component.scss'],\n})\nexport class ImportPluginConfigurationComponent {\n @Input() public set pluginActionKey(value: string) {\n this.importPluginForm.reset();\n this.fetchCompatiblePluginProcessLinks(value);\n }\n\n @Output() public readonly configurationEvent = new EventEmitter<\n ProcessLink['actionProperties']\n >();\n\n public readonly open$ = new Subject<boolean>();\n\n private readonly _compatiblePluginProcessLinksSubject$ = new BehaviorSubject<\n CompatiblePluginProcessLinks[]\n >([]);\n\n public readonly compatiblePluginProcessLinks$ =\n this._compatiblePluginProcessLinksSubject$.asObservable();\n\n public readonly importPluginForm = this.formBuilder.group({\n process: new FormControl('', Validators.required),\n version: new FormControl('', Validators.required),\n activity: new FormControl('', Validators.required),\n });\n\n public get process(): AbstractControl<string> {\n return this.importPluginForm.get('process');\n }\n\n public readonly processListItems$: Observable<ListItem[]> = combineLatest([\n this._compatiblePluginProcessLinksSubject$,\n this.process.valueChanges.pipe(startWith('')),\n ]).pipe(\n map(\n ([compatibleProcessLinks, processValue]) =>\n compatibleProcessLinks?.map(compatibleProcessLink => ({\n content: compatibleProcessLink.processDefinitionKey,\n selected: processValue === compatibleProcessLink.processDefinitionKey,\n })) || []\n )\n );\n\n public get version(): AbstractControl<string> {\n return this.importPluginForm.get('version');\n }\n\n public readonly versionListItems$: Observable<ListItem[]> = combineLatest([\n this._compatiblePluginProcessLinksSubject$,\n this.process.valueChanges.pipe(startWith('')),\n this.version.valueChanges.pipe(startWith('')),\n ]).pipe(\n map(([compatibleProcessLinks, processValue, versionValue]) =>\n !processValue\n ? []\n : compatibleProcessLinks\n .find(compatibleLinks => compatibleLinks.processDefinitionKey === processValue)\n ?.versions.sort((a, b) => Number(b.version) - Number(a.version))\n .map(versionItem => ({\n content: versionItem.version,\n selected: versionItem.version === versionValue,\n })) || []\n )\n );\n\n public get activity(): AbstractControl<string> {\n return this.importPluginForm.get('activity');\n }\n\n public readonly activityListItems$: Observable<ListItem[]> = combineLatest([\n this._compatiblePluginProcessLinksSubject$,\n this.process.valueChanges.pipe(startWith('')),\n this.version.valueChanges.pipe(startWith('')),\n this.activity.valueChanges.pipe(startWith('')),\n ]).pipe(\n map(([compatibleProcessLinks, processValue, versionValue, activityValue]) =>\n !processValue || !versionValue\n ? []\n : compatibleProcessLinks\n .find(compatibleLinks => compatibleLinks.processDefinitionKey === processValue)\n .versions.find(versionItem => versionItem.version === versionValue)\n .processLinks.map(processLinkItem => ({\n content: processLinkItem.activityId,\n selected: processLinkItem.activityId === activityValue,\n }))\n )\n );\n\n public readonly toggletipTheme$ = this.cdsThemeService.toggletipTheme$;\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly processLinkService: ProcessLinkService,\n private readonly iconService: IconService,\n private readonly cdsThemeService: CdsThemeService\n ) {\n this.iconService.register(Upload16);\n }\n\n public onSubmit(): void {\n this.configurationEvent.emit(\n this._compatiblePluginProcessLinksSubject$\n .getValue()\n .find(\n compatiblePluginProcessLinks =>\n compatiblePluginProcessLinks.processDefinitionKey === this.process.value\n )\n .versions.find(versionItem => versionItem.version === this.version.value)\n .processLinks.find(processLinkItem => processLinkItem.activityId === this.activity.value)\n .actionProperties\n );\n\n // needed to reliably trigger toggle tip closure\n this.open$.next(true);\n setTimeout(() => this.open$.next(false));\n\n this.importPluginForm.reset();\n }\n\n private fetchCompatiblePluginProcessLinks(pluginActionKey: string): void {\n this.processLinkService\n .getCompatiblePluginProcessLinks(pluginActionKey)\n .subscribe(res => this._compatiblePluginProcessLinksSubject$.next(res));\n }\n\n public processSelected(event: {item: ListItem}): void {\n this.process.setValue(event?.item?.content);\n this.version.setValue('');\n this.activity.setValue('');\n }\n\n public versionSelected(event: {item: ListItem}): void {\n this.version.setValue(event?.item?.content);\n this.activity.setValue('');\n }\n\n public activitySelected(event: {item: ListItem}): void {\n this.activity.setValue(event?.item?.content);\n }\n}\n","<!--\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<cds-toggletip align=\"right-bottom\" [autoAlign]=\"true\" [isOpen]=\"open$ | async\">\n <button\n class=\"process-link-configuration-import-button\"\n [disabled]=\"((compatiblePluginProcessLinks$ | async) || []).length === 0\"\n cdsToggletipButton\n [removeClassnames]=\"['cds--toggletip-button']\"\n cdsButton=\"ghost\"\n >\n {{ 'processLinkConfiguration.importConfiguration' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n\n <div\n cdsToggletipContent\n [attr.data-carbon-theme]=\"toggletipTheme$ | async\"\n class=\"process-link-configuration-select\"\n >\n <cds-dropdown\n [label]=\"'processLinkConfiguration.process' | translate\"\n [placeholder]=\"'processLinkConfiguration.selectProcess' | translate\"\n (selected)=\"processSelected($event)\"\n [appendInline]=\"true\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown-list\n [items]=\"processListItems$ | async\"\n onclick=\"event.stopPropagation()\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-dropdown\n [label]=\"'processLinkConfiguration.version' | translate\"\n [placeholder]=\"'processLinkConfiguration.selectVersion' | translate\"\n [disabled]=\"!process.value\"\n (selected)=\"versionSelected($event)\"\n [appendInline]=\"true\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown-list\n [items]=\"versionListItems$ | async\"\n onclick=\"event.stopPropagation()\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-dropdown\n [label]=\"'processLinkConfiguration.activity' | translate\"\n [placeholder]=\"'processLinkConfiguration.selectActivity' | translate\"\n [disabled]=\"!process.value || !version.value\"\n (selected)=\"activitySelected($event)\"\n [appendInline]=\"true\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown-list\n [items]=\"activityListItems$ | async\"\n onclick=\"event.stopPropagation()\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <button cdsButton [disabled]=\"!importPluginForm.valid\" (click)=\"onSubmit()\" [cdsLayer]=\"1\">\n {{ 'processLinkConfiguration.importConfiguration' | translate }}\n </button>\n </div>\n</cds-toggletip>\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {\n PluginStateService,\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {PluginConfiguration, PluginConfigurationData} from '@valtimo/plugin';\nimport {\n PluginProcessLinkCreateDto,\n PluginProcessLinkUpdateDto,\n ProcessLinkEditMode,\n ProcessLink,\n} from '../../models';\n\n@Component({\n standalone: false,\n selector: 'valtimo-plugin-action-configuration',\n templateUrl: './plugin-action-configuration.component.html',\n styleUrls: ['./plugin-action-configuration.component.scss'],\n})\nexport class PluginActionConfigurationComponent implements OnInit, OnDestroy {\n @Input() selectedPluginConfiguration$: Observable<PluginConfiguration>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> =\n new EventEmitter<PluginConfigurationData>();\n\n public readonly pluginDefinitionKey$ = this.pluginStateService.pluginDefinitionKey$;\n public readonly functionKey$ = this.pluginStateService.functionKey$;\n public readonly save$ = this.pluginStateService.save$;\n public readonly saving$ = this.stateService.saving$;\n\n private readonly _prefillConfigurationSubject$ = new BehaviorSubject<\n ProcessLink['actionProperties'] | null\n >(null);\n private readonly _prefillConfiguration$ = this.stateService.selectedProcessLink$.pipe(\n map(processLink => (processLink ? processLink?.actionProperties : undefined))\n );\n public readonly prefillConfiguration$ = combineLatest([\n this._prefillConfigurationSubject$,\n this._prefillConfiguration$,\n ]).pipe(\n map(\n ([prefillConfigurationSubjectValue, prefillConfiguration]) =>\n prefillConfigurationSubjectValue || prefillConfiguration\n )\n );\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly pluginStateService: PluginStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stepService: ProcessLinkStepService,\n private readonly processLinkService: ProcessLinkService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n onValid(valid: boolean): void {\n if (valid) this.buttonService.enableSaveButton();\n else this.buttonService.disableSaveButton();\n }\n\n onConfiguration(configuration: PluginConfigurationData): void {\n this.stateService.startSaving();\n\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink(configuration);\n } else {\n this.saveNewProcessLink(configuration);\n }\n });\n }\n\n public onImportConfiguration(configuration: ProcessLink['actionProperties']): void {\n this._prefillConfigurationSubject$.next(configuration);\n }\n\n private updateProcessLink(configuration: PluginConfigurationData): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n const updateProcessLinkRequest: PluginProcessLinkUpdateDto = {\n id: selectedProcessLink.id,\n pluginConfigurationId: selectedProcessLink.pluginConfigurationId ?? '',\n pluginActionDefinitionKey: selectedProcessLink.pluginActionDefinitionKey ?? '',\n actionProperties: configuration,\n activityId: selectedProcessLink.activityId,\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkUpdateEvent(updateProcessLinkRequest);\n return;\n }\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(configuration: PluginConfigurationData): void {\n combineLatest([\n this.stateService.modalParams$,\n this.pluginStateService.selectedPluginConfiguration$,\n this.pluginStateService.selectedPluginFunction$,\n this.stateService.selectedProcessLinkTypeId$,\n ])\n .pipe(take(1))\n .subscribe(\n ([modalData, selectedConfiguration, selectedFunction, selectedProcessLinkTypeId]) => {\n const processLinkRequest: PluginProcessLinkCreateDto = {\n actionProperties: configuration,\n activityId: modalData?.element?.id,\n activityType: modalData?.element?.activityListenerType ?? '',\n pluginConfigurationId: selectedConfiguration.id,\n processDefinitionId: modalData?.processDefinitionId,\n pluginActionDefinitionKey: selectedFunction.key,\n processLinkType: selectedProcessLinkTypeId,\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkCreateEvent(processLinkRequest);\n return;\n }\n\n this.processLinkService.saveProcessLink(processLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n }\n );\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stepService.setChoosePluginActionSteps();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.pluginStateService.save();\n })\n );\n }\n}\n","<!--\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<valtimo-import-plugin-configuration\n [pluginActionKey]=\"functionKey$ | async\"\n (configurationEvent)=\"onImportConfiguration($event)\"\n></valtimo-import-plugin-configuration>\n\n<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n [functionKey]=\"functionKey$ | async\"\n [save$]=\"save$\"\n [disabled$]=\"saving$\"\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n type=\"function\"\n></valtimo-plugin-configuration-container>\n","/*\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\nimport {\n Component,\n ElementRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\n\nimport BpmnViewer from 'bpmn-js';\nimport {ActivatedRoute} from '@angular/router';\nimport {combineLatest} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {PageTitleService} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-form-link-process-diagram',\n templateUrl: './form-link-process-diagram.component.html',\n styleUrls: ['./form-link-process-diagram.component.scss'],\n})\nexport class FormLinkProcessDiagramComponent implements OnInit, OnDestroy {\n private bpmnViewer: BpmnViewer;\n\n @ViewChild('ref') public el: ElementRef;\n @Output() public bpmnElementModalOpen: EventEmitter<any> = new EventEmitter();\n @Output() public bpmnElementModalClose: EventEmitter<any> = new EventEmitter();\n\n public processDefinitionKey: string;\n public processDefinitions: ProcessDefinition[];\n public processDiagram: any;\n public processDefinition: ProcessDefinition;\n public processDefinitionVersions: ProcessDefinition[];\n public version: number;\n private callbacksAdded = false;\n private processDefinitionId!: string;\n\n constructor(\n private readonly processService: ProcessService,\n private readonly route: ActivatedRoute,\n private readonly pageTitleService: PageTitleService\n ) {}\n\n ngOnInit() {\n this.pageTitleService.disableReset();\n combineLatest([this.route.queryParams, this.processService.getProcessDefinitions()])\n .pipe(map(([queryParams, processDefinitions]) => ({queryParams, processDefinitions})))\n .subscribe(response => {\n this.processDefinitions = response.processDefinitions;\n if (response.queryParams.process) {\n this.processDefinitionKey = response.queryParams.process;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n this.bpmnElementModalOpen.emit({\n element: {\n id: 'start-event',\n type: 'bpmn:StartEvent',\n },\n processDefinitionKey: this.processDefinitionKey,\n processDefinitionId: this.processDefinitionId,\n });\n }\n if (!this.processDefinitionKey && response.processDefinitions.length !== 0) {\n this.processDefinitionKey = response.processDefinitions[0].key;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n }\n });\n this.bpmnViewer = new BpmnViewer({});\n this.bpmnViewer.on('import.done', ({error}: any) => {\n if (!error) {\n const canvas = this.bpmnViewer.get('canvas') as any;\n const eventBus = this.bpmnViewer.get('eventBus') as any;\n canvas.zoom('fit-viewport', 'auto');\n\n if (this.processDefinitionVersions && !this.callbacksAdded) {\n eventBus.on('element.click', e => {\n let activityListenerType = e.element.businessObject.$type;\n if (activityListenerType === 'bpmn:UserTask') {\n activityListenerType += ':create';\n } else {\n activityListenerType += ':start';\n }\n\n this.bpmnElementModalOpen.emit({\n element: {\n id: e.element.businessObject.id,\n type: e.element.businessObject.$type,\n activityListenerType,\n name: e.element?.businessObject?.name,\n },\n processDefinitionKey: this.processDefinitionKey,\n processDefinitionId: this.processDefinitionId,\n });\n });\n this.callbacksAdded = true;\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.bpmnElementModalClose.emit();\n if (this.bpmnViewer) {\n this.bpmnViewer.destroy();\n }\n this.pageTitleService.enableReset();\n }\n\n public loadProcessDefinition(processDefinitionKey: string): void {\n this.processService\n .getProcessDefinition(processDefinitionKey)\n .subscribe((processDefinition: ProcessDefinition) => {\n this.processDefinitionId = processDefinition.id;\n this.version = processDefinition.version;\n this.loadProcessDefinitionXml(processDefinition.id);\n });\n }\n\n public loadProcessDefinitionVersions(processDefinitionKey: string): void {\n this.processService\n .getProcessDefinitionVersions(processDefinitionKey)\n .subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.processDefinitionVersions = processDefinitionVersions;\n });\n }\n\n public loadProcessDefinitionFromKey(processDefinitionKey: string): void {\n this.loadProcessDefinitionVersions(processDefinitionKey);\n this.loadProcessDefinition(processDefinitionKey);\n }\n\n public loadProcessDefinitionXml(processDefinitionId: string): void {\n this.processService.getProcessDefinitionXml(processDefinitionId).subscribe(response => {\n this.processDiagram = response;\n this.bpmnViewer.importXML(this.processDiagram.bpmn20Xml);\n this.bpmnViewer.attachTo(this.el.nativeElement);\n });\n }\n\n public setProcessDefinitionKey(processDefinitionKey: string): void {\n this.processDefinitionKey = processDefinitionKey;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n }\n\n public setProcessDefinitionVersion(version: string): void {\n const processDefinitionId = this.processDefinitionVersions.find(\n definition => definition.version === +version\n )?.id;\n\n if (processDefinitionId) {\n this.processDefinitionId = processDefinitionId;\n this.loadProcessDefinitionXml(this.processDefinitionId);\n }\n\n this.version = +version;\n }\n}\n","<!--\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 class=\"container-fluid\">\n <div class=\"row p-4 bg-white\">\n <div class=\"col\">\n <div #ref class=\"diagram-container\"></div>\n </div>\n </div>\n</div>\n<div class=\"p-4 text-center legenda-holder\">\n <span>Click on a User Task to specify a form definition for that User Task.</span>\n</div>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"form-link-dossier-actions\">\n <cds-select [label]=\"'Process'\" (change)=\"setProcessDefinitionKey($event.target.value)\"\n ><option\n *ngFor=\"let processDefinition of processDefinitions\"\n [value]=\"processDefinition.key\"\n [selected]=\"processDefinitionKey === processDefinition.key\"\n >\n {{ processDefinition.name }}\n </option>\n </cds-select>\n <cds-select [label]=\"'Version'\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option\n *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\"\n >\n {{ processDefinitionVersion.version }}\n </option>\n </cds-select>\n </div>\n </ng-template>\n</ng-container>\n","/*\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\nimport {Component, Inject, OnDestroy, Optional} from '@angular/core';\nimport {ProcessLinkStateService} from '../../services';\nimport {FormCustomComponentConfig, ProcessLinkType} from '../../models';\nimport {FORM_CUSTOM_COMPONENT_TOKEN} from '../../constants';\nimport {map, Subscription} from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'valtimo-choose-process-link-type',\n templateUrl: './choose-process-link-type.component.html',\n styleUrls: ['./choose-process-link-type.component.scss'],\n})\nexport class ChooseProcessLinkTypeComponent {\n public readonly availableProcessLinkTypes$ =\n this.processLinkStateService.availableProcessLinkTypes$;\n\n constructor(private readonly processLinkStateService: ProcessLinkStateService) {}\n\n selectProcessLinkType(processLinkTypeId: string): void {\n this.processLinkStateService.selectProcessLinkType(processLinkTypeId);\n }\n}\n","<!--\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<ng-container\n *ngIf=\"{\n availableProcessLinkTypes: availableProcessLinkTypes$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseProcessLinkTypeDescription' | translate }}\n </p>\n <div class=\"process-link-grid\">\n <div\n class=\"process-link-item\"\n *ngFor=\"let availableProcessLinkType of obs.availableProcessLinkTypes\"\n >\n <ng-container *ngIf=\"availableProcessLinkType.processLinkType as processLinkTypeId\">\n <button\n (click)=\"selectProcessLinkType(processLinkTypeId)\"\n cdsButton=\"secondary\"\n size=\"xl\"\n class=\"process-link-type-button\"\n [disabled]=\"!availableProcessLinkType.enabled\"\n [vTooltip]=\"'processLinkTypeDisabledTooltip.' + processLinkTypeId | translate\"\n [onBottom]=\"true\"\n [tooltipDisabled]=\"availableProcessLinkType.enabled\"\n >\n {{ 'processLinkType.' + processLinkTypeId | translate }}\n <svg\n *ngIf=\"processLinkTypeId === 'plugin'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"link\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form-flow'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"flow--data\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'ui-component'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n </button>\n </ng-container>\n </div>\n </div>\n</ng-container>\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ListItem} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {FormDefinitionListItem, FormDisplayType, FormSize} from '../../models';\nimport {ProcessLinkButtonService, ProcessLinkStateService} from '../../services';\nimport {MultiInputValues} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-form-display-configuration',\n templateUrl: './form-display-configuration.component.html',\n})\nexport class FormDisplayConfigurationComponent implements OnInit, OnDestroy {\n @Input() public selectedFormDefinition: FormDefinitionListItem;\n\n @Output() public formDisplayValue = new EventEmitter<string>();\n @Output() public formSizeValue = new EventEmitter<string>();\n @Output() public subtitlesValue = new EventEmitter<string[]>();\n\n public readonly formDisplayValue$ = new BehaviorSubject<FormDisplayType | null>(null);\n public readonly formSizeValue$ = new BehaviorSubject<FormSize | null>(null);\n private readonly _subtitles$ = new BehaviorSubject<string[]>([]);\n public subtitles$: Observable<MultiInputValues> = this._subtitles$.pipe(\n map(subtitles => subtitles.map(subtitle => ({value: subtitle})))\n );\n public readonly disableFormSizeInput$ = new BehaviorSubject<boolean>(true);\n public readonly saving$ = this.stateService.saving$;\n public readonly isUserTask$ = new BehaviorSubject<boolean>(false);\n\n private readonly _DISPLAY_TYPE_OPTIONS: FormDisplayType[] = ['modal', 'panel'];\n private readonly _FORM_SIZE_OPTIONS: FormSize[] = ['extraSmall', 'small', 'medium', 'large'];\n private readonly _subscriptions = new Subscription();\n\n public readonly formDisplayTypeListItems$: Observable<ListItem[]> = combineLatest([\n this.formDisplayValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([formDisplayValue]) =>\n this._DISPLAY_TYPE_OPTIONS.map((key: string) => ({\n content: this.translateService.instant(`processLinkSteps.displayType.options.${key}`),\n key: key,\n selected: this.formDisplayValue$.getValue() === key,\n }))\n )\n );\n\n public readonly formSizeListItems$: Observable<ListItem[]> = combineLatest([\n this.formSizeValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([formSizeValue]) =>\n this._FORM_SIZE_OPTIONS.map((key: string) => ({\n content: this.translateService.instant(`processLinkSteps.formSize.options.${key}`),\n key: key,\n selected: this.formSizeValue$.getValue() === key,\n }))\n )\n );\n\n constructor(\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stateService: ProcessLinkStateService,\n private readonly translateService: TranslateService\n ) {}\n\n public ngOnInit(): void {\n this._subscriptions.add(\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLink$,\n ]).subscribe(([modalParams, selectedProcessLink]) => {\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n\n if (selectedProcessLink) {\n if (selectedProcessLink.formDisplayType) this.disableFormSizeInput$.next(false);\n if (selectedProcessLink.activityType.includes('bpmn:UserTask'))\n this.isUserTask$.next(true);\n this.formDisplayValue$.next(selectedProcessLink.formDisplayType ?? null);\n this.formSizeValue$.next(selectedProcessLink.formSize ?? null);\n this._subtitles$.next(selectedProcessLink.subtitles ?? []);\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFormDisplayType(event: ListItem): void {\n this.updateFormDisplayType(event?.key);\n this.enableSaveButtonWhenValid();\n }\n\n public selectFormSize(event: ListItem): void {\n this.updateFormSize(event?.key);\n this.enableSaveButtonWhenValid();\n }\n\n public onSubtitlesChange(subtitles: string[]): void {\n this.subtitlesValue.emit(subtitles);\n }\n\n private updateFormDisplayType(formDisplayType): void {\n formDisplayType ? this.disableFormSizeInput$.next(false) : this.resetFormSize();\n this.formDisplayValue$.next(formDisplayType);\n this.formDisplayValue.emit(formDisplayType);\n }\n\n private updateFormSize(formSize): void {\n this.formSizeValue$.next(formSize);\n this.formSizeValue.emit(formSize);\n }\n\n private resetFormSize(): void {\n this.disableFormSizeInput$.next(true);\n this.updateFormSize(null);\n }\n\n private enableSaveButtonWhenValid(): void {\n if (\n this.selectedFormDefinition &&\n this.formDisplayValue$.getValue() &&\n this.formSizeValue$.getValue()\n )\n this.buttonService.enableSaveButton();\n else this.buttonService.disableSaveButton();\n }\n}\n","<!--\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<ng-container\n *ngIf=\"{\n formDisplayValue: formDisplayValue$ | async,\n formDisplayTypeListItems: formDisplayTypeListItems$ | async,\n formSizeListItems: formSizeListItems$ | async,\n disableFormSizeInput: disableFormSizeInput$ | async,\n subtitles: subtitles$ | async,\n isUserTask: isUserTask$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n @if (obs.isUserTask) {\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.displayType.placeholder' | translate\"\n [label]=\"'processLinkSteps.displayType.label' | translate\"\n [disabled]=\"obs.saving\"\n (selected)=\"selectFormDisplayType($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formDisplayTypeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n\n <br />\n\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.formSize.placeholder' | translate\"\n [label]=\"'processLinkSteps.formSize.label' | translate\"\n [disabled]=\"obs.disableFormSizeInput || obs.saving\"\n (selected)=\"selectFormSize($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formSizeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n\n <br />\n\n <valtimo-carbon-multi-input\n type=\"value\"\n titleTranslationKey=\"processLinkSteps.subtitles\"\n addRowTranslationKey=\"processLinkSteps.addSubtitle\"\n [disabled]=\"obs.saving\"\n [fullWidth]=\"true\"\n [minimumAmountOfRows]=\"0\"\n [initialAmountOfRows]=\"0\"\n [defaultValues]=\"obs.subtitles\"\n (valueChange)=\"onSubtitlesChange($event)\"\n ></valtimo-carbon-multi-input>\n }\n</ng-container>\n","/*\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 */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {CaseManagementParams, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {FormDefinitionOption, FormService} from '@valtimo/form';\nimport {BehaviorSubject, combineLatest, map, mergeMap, Observable, Subscription, tap} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {\n FormDefinitionListItem,\n FormDisplayType,\n FormProcessLinkUpdateRequestDto,\n FormSize,\n ProcessLinkEditMode,\n} from '../../models';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-form',\n templateUrl: './select-form.component.html',\n styleUrls: ['./select-form.component.scss'],\n})\nexport class SelectFormComponent implements OnInit, OnDestroy {\n public formDisplayValue!: FormDisplayType;\n public formSizeValue!: FormSize;\n public subtitlesValue: string[] = [];\n public selectedFormDefinition!: FormDefinitionListItem;\n\n public readonly saving$ = this.stateService.saving$;\n public readonly caseDefinitionId$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n\n private readonly formDefinitions$: Observable<Array<FormDefinitionOption>> =\n this.caseDefinitionId$.pipe(\n mergeMap(caseDefinitionId => {\n if (!!caseDefinitionId) {\n return this.formService.getAllFormDefinitionsForCaseDefinition(\n caseDefinitionId?.caseDefinitionKey ?? '',\n caseDefinitionId?.caseDefinitionVersionTag ?? ''\n );\n }\n return this.formService.getAllUnlinkedFormDefinitions();\n })\n );\n\n public readonly formDefinitionListItems$: Observable<Array<FormDefinitionListItem>> =\n combineLatest([this.stateService.selectedProcessLink$, this.formDefinitions$]).pipe(\n map(([selectedProcessLink, formDefinitions]) =>\n formDefinitions.map(definition => ({\n content: definition.name,\n id: definition.id,\n selected: selectedProcessLink\n ? selectedProcessLink.formDefinitionId === definition.id\n : false,\n }))\n ),\n tap(formDefinitionListItems => {\n const selectedItem = formDefinitionListItems.find(item => item.selected);\n\n if (selectedItem) {\n this.selectFormDefinition(selectedItem);\n }\n })\n );\n\n private _subscriptions = new Subscription();\n private isUserTask$ = new BehaviorSubject<boolean>(false);\n\n private readonly _DEFAULT_FORM_DISPLAY_TYPE: FormDisplayType = 'panel';\n private readonly _DEFAULT_FORM_DISPLAY_SIZE: FormSize = 'medium';\n\n constructor(\n private readonly formService: FormService,\n private readonly stateService: ProcessLinkStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n this._subscriptions.add(\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.modalParams$,\n ]).subscribe(([selectedProcessLink, modalParams]) => {\n if (selectedProcessLink) {\n this.formDisplayValue = selectedProcessLink.formDisplayType;\n this.formSizeValue = selectedProcessLink.formSize;\n }\n\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFormDefinition(formDefinition: FormDefinitionListItem): void {\n this.selectedFormDefinition = formDefinition?.id ? formDefinition : null;\n\n if (this.selectedFormDefinition) this.buttonService.enableSaveButton();\n else this.buttonService.disableSaveButton();\n }\n\n public selectedFormDisplayValue(formDisplay: FormDisplayType): void {\n this.formDisplayValue = formDisplay;\n }\n\n public selectedFormSizeValue(formSize: FormSize): void {\n this.formSizeValue = formSize;\n }\n\n public selectedSubtitlesValue(subtitles: string[]): void {\n this.subtitlesValue = subtitles;\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveProcessLink();\n })\n );\n }\n\n private saveProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink();\n } else {\n this.saveNewProcessLink();\n }\n });\n }\n\n private updateProcessLink(): void {\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.viewModelEnabled$,\n this.isUserTask$,\n ])\n .pipe(take(1))\n .subscribe(([selectedProcessLink, viewModelEnabled, isUserTask]) => {\n const updateProcessLinkRequest: FormProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n formDefinitionId: this.selectedFormDefinition.id,\n activityId: selectedProcessLink.activityId,\n viewModelEnabled,\n ...(isUserTask && {\n formDisplayType: this.formDisplayValue || this._DEFAULT_FORM_DISPLAY_TYPE,\n }),\n ...(isUserTask && {formSize: this.formSizeValue || this._DEFAULT_FORM_DISPLAY_TYPE}),\n ...(isUserTask && {subtitles: this.subtitlesValue}),\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkUpdateEvent(updateProcessLinkRequest);\n return;\n }\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe({\n next: () => {\n this.stateService.closeModal();\n },\n error: () => {\n this.stateService.stopSaving();\n },\n });\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$,\n this.stateService.viewModelEnabled$,\n this.isUserTask$,\n ])\n .pipe(take(1))\n .subscribe(([modalParams, processLinkTypeId, viewModelEnabled, isUserTask]) => {\n const createRequest = {\n formDefinitionId: this.selectedFormDefinition.id,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n viewModelEnabled,\n ...(isUserTask && {\n formDisplayType: this.formDisplayValue || this._DEFAULT_FORM_DISPLAY_TYPE,\n }),\n ...(isUserTask && {\n formSize: this.formSizeValue || this._DEFAULT_FORM_DISPLAY_SIZE,\n }),\n ...(isUserTask && {\n subtitles: this.subtitlesValue,\n }),\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkCreateEvent(createRequest);\n return;\n }\n\n this.processLinkService.saveProcessLink(createRequest).subscribe({\n next: () => {\n this.stateService.closeModal();\n },\n error: () => {\n this.stateService.stopSaving();\n },\n });\n });\n }\n}\n","<!--\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<ng-container\n *ngIf=\"{\n formDefinitions: formDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormDescription' | translate }}\n </p>\n <div class=\"select-form\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formDefinitions || obs.saving\"\n [items]=\"obs.formDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormDefinition($event)\"\n [label]=\"'processLinkSteps.selectForm' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormDefinition\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n (subtitlesValue)=\"selectedSubtitlesValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n","/*\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 */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {CaseManagementParams, getCaseManagementRouteParams, Page} from '@valtimo/shared';\nimport {FormFlowService, ListFormFlowDefinition} from '@valtimo/form-flow-management';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, tap} from 'rxjs';\nimport {switchMap, take} from 'rxjs/operators';\n\nimport {\n FormDefinitionListItem,\n FormDisplayType,\n FormFlowProcessLinkCreateRequestDto,\n FormFlowProcessLinkUpdateRequestDto,\n FormSize,\n ProcessLinkEditMode,\n} from '../../models';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-form-flow',\n templateUrl: './select-form-flow.component.html',\n styleUrls: ['./select-form-flow.component.scss'],\n})\nexport class SelectFormFlowComponent implements OnInit, OnDestroy {\n public formDisplayValue!: FormDisplayType;\n public formSizeValue!: FormSize;\n public selectedFormFlowDefinitionId: string;\n public subtitlesValue: string[] = [];\n public readonly saving$ = this.stateService.saving$;\n private readonly formFlowDefinitions$: Observable<ListFormFlowDefinition[]> =\n getCaseManagementRouteParams(this.route).pipe(\n switchMap((params: CaseManagementParams | undefined) =>\n this.formFlowService.getFormFlowDefinitions(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? ''\n )\n ),\n map((formFlowDefinitions: Page<ListFormFlowDefinition>) => formFlowDefinitions.content)\n );\n\n public readonly formFlowDefinitionListItems$: Observable<Array<FormDefinitionListItem>> =\n combineLatest([this.stateService.selectedProcessLink$, this.formFlowDefinitions$]).pipe(\n map(([selectedProcessLink, formFlowDefinitions]) =>\n formFlowDefinitions.map(definition => ({\n content: definition.key,\n id: definition.key,\n selected: selectedProcessLink\n ? selectedProcessLink.formFlowDefinitionKey === definition.key\n : false,\n }))\n ),\n tap(formFlowDefinitionListItems => {\n const selectedItem = formFlowDefinitionListItems.find(item => item.selected);\n\n if (selectedItem) {\n this.selectFormFlowDefinition(selectedItem);\n }\n })\n );\n\n private _subscriptions = new Subscription();\n private isUserTask$ = new BehaviorSubject<boolean>(false);\n\n private readonly _DEFAULT_FORM_DISPLAY_TYPE: FormDisplayType = 'panel';\n private readonly _DEFAULT_FORM_DISPLAY_SIZE: FormSize = 'medium';\n\n constructor(\n private readonly formFlowService: FormFlowService,\n private readonly stateService: ProcessLinkStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n this._subscriptions.add(\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.modalParams$,\n ]).subscribe(([selectedProcessLink, modalParams]) => {\n if (selectedProcessLink) {\n this.formDisplayValue = selectedProcessLink.formDisplayType;\n this.formSizeValue = selectedProcessLink.formSize;\n }\n\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n })\n );\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectedFormDisplayValue(formDisplay: FormDisplayType): void {\n this.formDisplayValue = formDisplay;\n }\n\n public selectedFormSizeValue(formSize: FormSize): void {\n this.formSizeValue = formSize;\n }\n\n public selectFormFlowDefinition(formFlowDefinition: any): void {\n if (!formFlowDefinition) return;\n this.selectedFormFlowDefinitionId = formFlowDefinition.id;\n\n if (this.selectedFormFlowDefinitionId) this.buttonService.enableSaveButton();\n else this.buttonService.disableSaveButton();\n }\n\n public selectedSubtitlesValue(subtitles: string[]): void {\n this.subtitlesValue = subtitles;\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveFormFlowLink();\n })\n );\n }\n\n private saveFormFlowLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) this.updateProcessLink();\n else this.saveNewProcessLink();\n });\n }\n\n private updateProcessLink(): void {\n combineLatest([this.stateService.selectedProcessLink$, this.isUserTask$])\n .pipe(take(1))\n .subscribe(([selectedProcessLink, isUserTask]) => {\n const updateProcessLinkRequest: FormFlowProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n formFlowDefinitionId: this.selectedFormFlowDefinitionId,\n activityId: selectedProcessLink.activityId,\n ...(isUserTask && {\n formDisplayType: this.formDisplayValue || this._DEFAULT_FORM_DISPLAY_TYPE,\n }),\n ...(isUserTask && {formSize: this.formSizeValue || this._DEFAULT_FORM_DISPLAY_SIZE}),\n ...(isUserTask && {subtitles: this.subtitlesValue}),\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkUpdateEvent(updateProcessLinkRequest);\n return;\n }\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe({\n next: () => {\n this.stateService.closeModal();\n },\n error: () => {\n this.stateService.stopSaving();\n },\n });\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$,\n this.isUserTask$,\n ])\n .pipe(take(1))\n .subscribe(([modalParams, processLinkTypeId, isUserTask]) => {\n const createRequest = {\n formFlowDefinitionKey: this.selectedFormFlowDefinitionId,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n ...(isUserTask && {\n formDisplayType: this.formDisplayValue || this._DEFAULT_FORM_DISPLAY_TYPE,\n }),\n ...(isUserTask && {formSize: this.formSizeValue || this._DEFAULT_FORM_DISPLAY_SIZE}),\n ...(isUserTask && {subtitles: this.subtitlesValue}),\n } as FormFlowProcessLinkCreateRequestDto;\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkCreateEvent(createRequest);\n return;\n }\n\n this.processLinkService.saveProcessLink(createRequest).subscribe({\n next: () => {\n this.stateService.closeModal();\n },\n error: () => {\n this.stateService.stopSaving();\n },\n });\n });\n }\n}\n","<!--\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<ng-container\n *ngIf=\"{\n formFlowDefinitions: formFlowDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormFlowDescription' | translate }}\n </p>\n\n <div class=\"select-form-flow\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formFlowDefinitions || obs.saving\"\n [items]=\"obs.formFlowDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormFlowDefinition($event)\"\n [label]=\"'processLinkSteps.selectFormFlow' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormFlowDefinitionId\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n (subtitlesValue)=\"selectedSubtitlesValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n","/*\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\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n FormCustomComponentConfig,\n ProcessLinkEditMode,\n UIComponentProcessLinkUpdateRequestDto,\n} from '../../models';\nimport {ListItem} from 'carbon-components-angular';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\nimport {FORM_CUSTOM_COMPONENT_TOKEN} from '../../constants';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-ui-component',\n templateUrl: './select-ui-component.component.html',\n styleUrls: ['./select-ui-component.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectUIComponentComponent implements OnInit, OnDestroy {\n private readonly _formCustomComponentConfig$ = new BehaviorSubject<\n FormCustomComponentConfig | {}\n >({});\n\n public readonly formCustomComponentListItems$: Observable<Array<ListItem>> = combineLatest([\n this.stateService.selectedProcessLink$,\n this._formCustomComponentConfig$,\n ]).pipe(\n map(([selectedProcessLink, formCustomComponentConfigs]) =>\n Object.keys(formCustomComponentConfigs).map(key => ({\n content: key,\n selected: selectedProcessLink ? selectedProcessLink?.componentKey === key : false,\n }))\n ),\n tap(formCustomComponentListItems => {\n const selectedItem = formCustomComponentListItems.find(item => item.selected);\n if (selectedItem) {\n this.selectCustomComponent(selectedItem);\n }\n })\n );\n\n private readonly _subscriptions = new Subscription();\n\n private _selectedCustomComponent: ListItem;\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly processLinkService: ProcessLinkService,\n @Optional()\n @Inject(FORM_CUSTOM_COMPONENT_TOKEN)\n private readonly formCustomComponentConfig: FormCustomComponentConfig\n ) {\n this._formCustomComponentConfig$.next(this.formCustomComponentConfig);\n }\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectCustomComponent(selectedCustomComponent: ListItem): void {\n this._selectedCustomComponent = selectedCustomComponent;\n this._selectedCustomComponent?.content\n ? this.buttonService.enableSaveButton()\n : this.buttonService.disableSaveButton();\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveProcessLink();\n })\n );\n }\n\n private saveProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n selectedProcessLink ? this.updateProcessLink() : this.saveNewProcessLink();\n });\n }\n\n private updateProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n const updateRequest: UIComponentProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n componentKey: this._selectedCustomComponent.content,\n activityId: selectedProcessLink.activityId,\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkUpdateEvent(updateRequest);\n return;\n }\n\n this.processLinkService.updateProcessLink(updateRequest).subscribe({\n next: () => this.stateService.closeModal(),\n error: () => this.stateService.stopSaving(),\n });\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([this.stateService.modalParams$, this.stateService.selectedProcessLinkTypeId$])\n .pipe(\n take(1),\n switchMap(([modalParams, processLinkTypeId]) => {\n const createRequest = {\n componentKey: this._selectedCustomComponent.content,\n activityType: modalParams.element.activityListenerType || '',\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkCreateEvent(createRequest);\n return [];\n }\n\n return this.processLinkService.saveProcessLink(createRequest);\n })\n )\n .subscribe({\n next: () => this.stateService.closeModal(),\n error: () => this.stateService.stopSaving(),\n });\n }\n}\n","<!--\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<cds-combo-box\n [dropUp]=\"false\"\n formControlName=\"contentKey\"\n [items]=\"formCustomComponentListItems$ | async\"\n itemValueKey=\"contentKey\"\n [label]=\"'processLinkSteps.uiComponent' | translate\"\n (selected)=\"selectCustomComponent($event)\"\n>\n <cds-dropdown-list></cds-dropdown-list>\n</cds-combo-box>\n","/*\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\nimport {Component} from '@angular/core';\nimport {\n PluginStateService,\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/shared';\nimport {ProcessLinkEditMode} from '../../models';\n\n@Component({\n standalone: false,\n selector: 'valtimo-process-link-modal',\n templateUrl: './process-link-modal.component.html',\n styleUrls: ['./process-link-modal.component.scss'],\n})\nexport class ProcessLinkModalComponent {\n public readonly showModal$ = this.stateService.showModal$;\n public readonly processStepName$ = this.stateService.elementName$;\n public readonly steps$ = this.stepService.steps$;\n public readonly currentStepIndex$ = this.stepService.currentStepIndex$;\n public readonly currentStepId$ = this.stepService.currentStepId$;\n public readonly showSaveButton$ = this.buttonService.showSaveButton$;\n public readonly enableSaveButton$ = this.buttonService.enableSaveButton$;\n public readonly showBackButton$ = this.buttonService.showBackButton$;\n public readonly showNextButton$ = this.buttonService.showNextButton$;\n public readonly enableNextButton$ = this.buttonService.enableNextButton$;\n public readonly hideProgressIndicator$ = this.stateService.hideProgressIndicator$;\n public readonly saving$ = this.stateService.saving$;\n public readonly typeOfSelectedProcessLink$ = this.stateService.typeOfSelectedProcessLink$;\n public readonly viewModelEnabled$ = this.stateService.viewModelEnabled$;\n public readonly selectedPluginConfiguration$ =\n this.pluginStateService.selectedPluginConfiguration$;\n\n public readonly showViewModelToggle =\n this.configService.config.featureToggles.enableFormViewModel;\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly stepService: ProcessLinkStepService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly processLinkStateService: ProcessLinkStateService,\n private readonly configService: ConfigService\n ) {}\n\n closeModal(): void {\n this.stateService.closeModal();\n }\n\n backButtonClick(): void {\n this.buttonService.clickBackButton();\n }\n\n saveButtonClick(): void {\n this.buttonService.clickSaveButton();\n }\n\n nextButtonClick(): void {\n this.buttonService.clickNextButton();\n }\n\n unlinkButtonClick(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (this.processLinkStateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.processLinkStateService.sendProcessLinkDeleteEvent({\n activityId: selectedProcessLink.activityId,\n });\n\n return;\n }\n\n this.stateService.startSaving();\n\n this.processLinkService.deleteProcessLink(selectedProcessLink.id).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n public toggleCheckedChange(value: boolean): void {\n this.processLinkStateService.setViewModelEnabled(value);\n }\n}\n","<!--\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 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\" (close)=\"closeModal()\">\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\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginConfiguration'\">\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\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\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\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\"\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\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</ng-template>\n","/*\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\nimport {Component} from '@angular/core';\nimport {ModalParams} from '../../models';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {of, switchMap, tap} from 'rxjs';\nimport {ModalService} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-process-link',\n templateUrl: './process-link.component.html',\n styleUrls: ['./process-link.component.scss'],\n providers: [ProcessLinkStateService, ProcessLinkStepService, ProcessLinkButtonService],\n})\nexport class ProcessLinkComponent {\n constructor(\n private readonly processLinkService: ProcessLinkService,\n private readonly stateService: ProcessLinkStateService,\n private readonly modalService: ModalService\n ) {}\n\n openModal(params: ModalParams): void {\n const activityType = params?.element?.activityListenerType;\n\n this.modalService.setModalData(params);\n\n if (activityType) {\n this.processLinkService\n .getProcessLink({\n activityId: params.element.id,\n processDefinitionId: params.processDefinitionId,\n })\n .pipe(\n switchMap(processLinks => {\n if (processLinks.length > 0) {\n return of({processLink: processLinks[0]});\n }\n\n return this.processLinkService.getProcessLinkCandidates(activityType);\n }),\n tap(res => {\n const result = res as any;\n const processLink = result.processLink;\n\n this.stateService.setModalParams(params);\n this.stateService.setElementName(params?.element?.name);\n\n if (processLink) {\n this.stateService.selectProcessLink(processLink);\n } else {\n this.stateService.setAvailableProcessLinkTypes(result);\n }\n\n if (result?.length > 0 || processLink) {\n this.stateService.showModal();\n }\n })\n )\n .subscribe();\n }\n }\n}\n","<!--\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 class=\"main-content\">\n <div class=\"container-fluid\">\n <valtimo-form-link-process-diagram\n (bpmnElementModalOpen)=\"openModal($event)\"\n ></valtimo-form-link-process-diagram>\n </div>\n</div>\n\n<valtimo-process-link-modal></valtimo-process-link-modal>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {ProcessLinkComponent} from './components/process-link/process-link.component';\n\nconst routes: Routes = [\n {\n path: 'process-links',\n component: ProcessLinkComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process links', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class ProcessLinkRoutingModule {}\n","/*\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\nexport * from './choose-process-link-type.component';\n","/*\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\nexport * from './select-form.component';\n","/*\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\nimport {\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {tap} from 'rxjs/operators';\nimport {ChangeEvent, FormFlowCustomComponent} from '../../models';\nimport {FormFlowComponentService} from '../../services';\nimport {FormioSubmission} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-form-flow-configuration-container',\n templateUrl: './form-flow-configuration-container.component.html',\n})\nexport class FormFlowConfigurationContainerComponent\n implements OnInit, OnDestroy, FormFlowCustomComponent\n{\n @ViewChild('formFlowConfigurationComponent', {static: true, read: ViewContainerRef})\n private readonly _dynamicContainer: ViewContainerRef;\n @Input() public set disabled(disabledValue: boolean) {\n this._disabled$.next(disabledValue);\n }\n @Input() public set componentId(value: string) {\n this._componentId$.next(value);\n }\n @Input() public set formFlowInstanceId(value: string) {\n this._formFlowInstanceId$.next(value);\n }\n @Output() public changeEvent = new EventEmitter<ChangeEvent>();\n @Output() public submitEvent = new EventEmitter<FormioSubmission>();\n\n private _changeSubscription!: Subscription;\n private _submitSubscription!: Subscription;\n\n private readonly _subscriptions = new Subscription();\n private readonly _componentRef$ = new BehaviorSubject<\n ComponentRef<FormFlowCustomComponent> | undefined\n >(undefined);\n private readonly _disabled$ = new BehaviorSubject<boolean>(false);\n private readonly _componentId$ = new BehaviorSubject<string>('');\n private readonly _formFlowInstanceId$ = new BehaviorSubject<string>('');\n\n constructor(private readonly formFlowComponentService: FormFlowComponentService) {}\n\n public ngOnInit(): void {\n this.openConfigurationComponentSubscription();\n this.openComponentInstanceSubscription();\n this.openDisabledSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openConfigurationComponentSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.formFlowComponentService.supportedComponents$, this._componentId$])\n .pipe(\n tap(([supportedComponents, componentId]) => {\n const configurationComponent = supportedComponents.find(\n component => component.id === componentId\n );\n\n this._dynamicContainer.clear();\n\n if (configurationComponent) {\n const componentRef = this._dynamicContainer.createComponent(\n configurationComponent.component\n );\n this._componentRef$.next(componentRef);\n }\n })\n )\n .subscribe()\n );\n }\n\n private openComponentInstanceSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._componentRef$, this._formFlowInstanceId$]).subscribe(\n ([ref, formFlowInstanceId]) => {\n const instance = ref?.instance;\n\n this._submitSubscription?.unsubscribe();\n this._changeSubscription?.unsubscribe();\n\n if (instance) {\n if (formFlowInstanceId) {\n instance.formFlowInstanceId = formFlowInstanceId;\n }\n\n this._changeSubscription = instance.changeEvent.subscribe(change => {\n this.changeEvent.emit(change);\n });\n\n this._submitSubscription = instance.submitEvent.subscribe(submit => {\n this.submitEvent.emit(submit);\n });\n }\n }\n )\n );\n }\n\n private openDisabledSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._componentRef$, this._disabled$]).subscribe(([ref, disabled]) => {\n const instance = ref?.instance;\n\n if (instance) {\n instance.disabled = disabled;\n }\n })\n );\n }\n}\n","<!--\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<ng-template #formFlowConfigurationComponent></ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {FormioForm} from '@formio/angular';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ValtimoFormioOptions,\n ValtimoModalService,\n} from '@valtimo/components';\nimport {FormFlowService} from '../../services';\nimport {FormFlowInstance, FormFlowStepType} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Step} from 'carbon-components-angular';\nimport {ConfigService} from '@valtimo/shared';\nimport {map} from 'rxjs/operators';\n\n@Component({\n standalone: false,\n selector: 'valtimo-form-flow',\n templateUrl: './form-flow.component.html',\n styleUrls: ['./form-flow.component.scss'],\n})\nexport class FormFlowComponent implements OnInit, OnDestroy {\n @ViewChild('form') public readonly form: FormioComponent;\n\n @Input() public readonly formIoFormData: BehaviorSubject<any | null> = new BehaviorSubject<any>(\n null\n );\n @Input() public set formFlowInstanceId(value: string | null) {\n this.formFlowInstanceId$.next(value);\n\n if (value) this.getBreadcrumbs();\n }\n\n @Output() public readonly formFlowComplete = new EventEmitter();\n @Output() public readonly formFlowChange = new EventEmitter();\n\n public formDefinition: FormioForm;\n public formioOptions: ValtimoFormioOptions;\n\n public readonly breadcrumbs$ = new BehaviorSubject<Step[]>([]);\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n public readonly formFlowStepType$ = new BehaviorSubject<FormFlowStepType | null>(null);\n public readonly FormFlowCustomComponentId$ = new BehaviorSubject<string>('');\n public readonly currentStepIndex$ = new BehaviorSubject<number>(0);\n public readonly enableFormFlowBreadcrumbs$ = this.configService.getFeatureToggleObservable(\n 'enableFormFlowBreadcrumbs'\n );\n public readonly formFlowInstanceId$ = new BehaviorSubject<string | null>('');\n\n private formFlowStepInstanceId: string | null = null;\n\n private _breadcrumbsSubscription!: Subscription;\n\n constructor(\n private readonly formFlowService: FormFlowService,\n private readonly modalService: ValtimoModalService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService\n ) {\n this.formioOptions = new FormioOptionsImpl();\n this.formioOptions.disableAlerts = true;\n }\n\n public ngOnInit() {\n this.getFormFlowStep();\n }\n\n public ngOnDestroy(): void {\n this._breadcrumbsSubscription?.unsubscribe();\n }\n\n public onChange(event: any): void {\n if (!event?.data) return;\n\n this.formIoFormData.next(event.data);\n this.formFlowChange.emit();\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.disable();\n\n if (submission.data) {\n this.formIoFormData.next(submission.data);\n }\n\n if (\n submission.data.submit &&\n this.formFlowInstanceId$.getValue() &&\n this.formFlowStepInstanceId\n ) {\n this.formFlowService\n .submitStep(\n this.formFlowInstanceId$.getValue(),\n this.formFlowStepInstanceId,\n this.formIoFormData.getValue()\n )\n .subscribe({\n next: (result: FormFlowInstance) => {\n this.handleFormFlowStep(result);\n },\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n } else if (submission.data['back']) {\n this.back(submission.data);\n }\n }\n\n public onEvent(submission: any): void {\n if (submission.data['back'] || submission.type == 'back') {\n this.back(submission.data);\n }\n }\n\n public saveData(): void {\n const formIoFormDataValue = this.formIoFormData.getValue();\n\n if (formIoFormDataValue && this.formFlowInstanceId$.getValue()) {\n this.formFlowService.save(this.formFlowInstanceId$.getValue(), formIoFormDataValue).subscribe(\n () => null,\n errors => this.form.showErrors(errors)\n );\n }\n }\n\n public onStepSelected(event: {step: {stepInstanceId: string}; index: number}): void {\n const submissionData = this.formIoFormData.getValue().data;\n\n this.disable();\n\n this.currentStepIndex$.next(event.index);\n\n if (!this.formFlowInstanceId$.getValue() || !this.formFlowStepInstanceId) return;\n\n this.formFlowService\n .navigateToStep(\n this.formFlowInstanceId$.getValue(),\n this.formFlowStepInstanceId,\n event.step.stepInstanceId,\n submissionData\n )\n .subscribe({\n next: (result: FormFlowInstance) => this.handleFormFlowStep(result),\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n }\n\n private getBreadcrumbs(): void {\n if (\n !this.formFlowInstanceId$.getValue() ||\n !this.configService.getFeatureToggle('enableFormFlowBreadcrumbs')\n ) {\n return;\n }\n\n this._breadcrumbsSubscription?.unsubscribe();\n\n this._breadcrumbsSubscription = combineLatest([\n this.formFlowService.getBreadcrumbs(this.formFlowInstanceId$.getValue()),\n this.translateService.stream('key'),\n ])\n .pipe(map(([breadcrumbs]) => breadcrumbs))\n .subscribe(breadcrumbs => {\n const classElement = document.getElementsByClassName('cds--progress-step--current');\n\n this.currentStepIndex$.next(breadcrumbs.currentStepIndex);\n\n this.breadcrumbs$.next(\n breadcrumbs.breadcrumbs.map(breadcrumb => ({\n label:\n breadcrumb.title ??\n this.translateService.instant(`formFlow.step.${breadcrumb.key}.title`) ??\n breadcrumb.key,\n disabled: breadcrumb.stepInstanceId === null,\n complete: breadcrumb.completed,\n stepInstanceId: breadcrumb.stepInstanceId,\n }))\n );\n\n if (classElement.length > 0) {\n classElement[0].scrollIntoView({behavior: 'smooth', inline: 'center'});\n }\n });\n }\n\n private getFormFlowStep(): void {\n if (!this.formFlowInstanceId$.getValue()) return;\n\n this.formFlowService\n .getFormFlowStep(this.formFlowInstanceId$.getValue())\n .subscribe((result: FormFlowInstance) => {\n this.handleFormFlowStep(result);\n });\n }\n\n private back(submissionData: any): void {\n if (!this.formFlowInstanceId$.getValue()) return;\n\n this.formFlowService.back(this.formFlowInstanceId$.getValue(), submissionData).subscribe({\n next: (result: FormFlowInstance) => this.handleFormFlowStep(result),\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n }\n\n private handleFormFlowStep(formFlowInstance: FormFlowInstance): void {\n if (formFlowInstance.step === null) {\n this.formFlowStepType$.next(null);\n this.FormFlowCustomComponentId$.next('');\n this.formFlowInstanceId$.next(null);\n this.formFlowStepInstanceId = null;\n this.formFlowComplete.emit(null);\n } else {\n this.getBreadcrumbs();\n this.modalService.scrollToTop();\n this.formFlowStepType$.next(formFlowInstance.step?.type ?? null);\n this.FormFlowCustomComponentId$.next(formFlowInstance?.step?.typeProperties?.id || '');\n this.formFlowInstanceId$.next(formFlowInstance.id);\n this.formFlowStepInstanceId = formFlowInstance.step?.id ?? null;\n this.formDefinition = formFlowInstance.step?.typeProperties.definition;\n }\n\n this.enable();\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n}\n","<!--\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 *ngIf=\"{\n breadcrumbs: breadcrumbs$ | async,\n currentStepIndex: currentStepIndex$ | async,\n enableFormFlowBreadcrumbs: enableFormFlowBreadcrumbs$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n } as obs\"\n>\n <div *ngIf=\"formDefinition && (formFlowStepType$ | async) === 'form'\">\n <div *ngIf=\"obs.enableFormFlowBreadcrumbs\" class=\"form-flow__progress-bar-indicator\">\n <cds-progress-indicator\n [spacing]=\"'equal'\"\n [skeleton]=\"obs.breadcrumbs.length === 0\"\n [current]=\"obs.currentStepIndex\"\n [steps]=\"obs.breadcrumbs\"\n (stepSelected)=\"onStepSelected($event)\"\n >\n </cds-progress-indicator>\n </div>\n\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (event)=\"onEvent($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n\n <div *ngIf=\"(formFlowStepType$ | async) === 'custom-component'\">\n <valtimo-form-flow-configuration-container\n [componentId]=\"FormFlowCustomComponentId$ | async\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n [disabled]=\"disabled$ | async\"\n (submitEvent)=\"onSubmit($event)\"\n (changeEvent)=\"onChange($event)\"\n >\n </valtimo-form-flow-configuration-container>\n </div>\n</div>\n","/*\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\nexport * from './select-form-flow.component';\n","/*\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\nexport * from './form-flow-configuration-container.component';\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {FormLinkProcessDiagramComponent} from './components/form-link-process-diagram/form-link-process-diagram.component';\nimport {CommonModule} from '@angular/common';\nimport {ProcessLinkRoutingModule} from './process-link-routing.module';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n CarbonMultiInputModule,\n FormIoModule,\n ModalModule,\n ParagraphModule,\n RemoveClassnamesDirective,\n RenderInPageHeaderDirective,\n SearchableDropdownSelectModule,\n StepperModule,\n TooltipIconModule,\n TooltipModule,\n ValtimoCdsModalDirective,\n VModalModule,\n} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {SelectPluginConfigurationComponent} from './components/select-plugin-configuration/select-plugin-configuration.component';\nimport {SelectPluginActionComponent} from './components/select-plugin-action/select-plugin-action.component';\nimport {PluginConfigurationContainerModule, PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {PluginActionConfigurationComponent} from './components/plugin-action-configuration/plugin-action-configuration.component';\nimport {ProcessLinkComponent} from './components/process-link/process-link.component';\nimport {ProcessLinkModalComponent} from './components/process-link-modal/process-link-modal.component';\nimport {\n ButtonModule as CarbonButtonModule,\n ComboBoxModule,\n IconModule,\n InputModule,\n LayerModule,\n LoadingModule,\n ModalModule as CarbonModalModule,\n ProgressIndicatorModule,\n SelectModule,\n StructuredListModule,\n TilesModule,\n ToggleModule,\n ToggletipModule,\n} from 'carbon-components-angular';\nimport {ChooseProcessLinkTypeComponent} from './components/choose-process-link-type';\nimport {SelectFormComponent} from './components/select-form';\nimport {FormFlowComponent} from './components/form-flow/form-flow.component';\nimport {SelectFormFlowComponent} from './components/select-form-flow';\nimport {FormFlowConfigurationContainerComponent} from './components/form-flow-configuration-container';\nimport {UrlValidatorService} from './services/url-validator.service';\nimport {UrlResolverService} from './services/url-resolver.service';\nimport {FormDisplayConfigurationComponent} from './components/form-display-configuration/form-display-configuration.component';\nimport {ImportPluginConfigurationComponent} from './components/import-plugin-configuration/import-plugin-configuration.component';\nimport {SelectUIComponentComponent} from './components/select-ui-component/select-ui-component.component';\n\n@NgModule({\n declarations: [\n ProcessLinkComponent,\n FormLinkProcessDiagramComponent,\n SelectPluginConfigurationComponent,\n SelectPluginActionComponent,\n PluginActionConfigurationComponent,\n ProcessLinkModalComponent,\n ChooseProcessLinkTypeComponent,\n SelectFormComponent,\n FormFlowComponent,\n SelectFormFlowComponent,\n FormFlowConfigurationContainerComponent,\n FormDisplayConfigurationComponent,\n SelectUIComponentComponent,\n ImportPluginConfigurationComponent,\n ],\n imports: [\n CommonModule,\n ProcessLinkRoutingModule,\n FormsModule,\n ReactiveFormsModule,\n ModalModule,\n SearchableDropdownSelectModule,\n TranslateModule,\n StepperModule,\n VModalModule,\n PluginTranslatePipeModule,\n ParagraphModule,\n PluginConfigurationContainerModule,\n CarbonModalModule,\n ProgressIndicatorModule,\n CarbonButtonModule,\n IconModule,\n TooltipModule,\n ComboBoxModule,\n InputModule,\n TooltipIconModule,\n LoadingModule,\n FormIoModule,\n ValtimoCdsModalDirective,\n StructuredListModule,\n TilesModule,\n RenderInPageHeaderDirective,\n SelectModule,\n ToggleModule,\n CarbonMultiInputModule,\n LayerModule,\n ToggletipModule,\n ComboBoxModule,\n TranslateModule,\n LayerModule,\n ToggletipModule,\n RemoveClassnamesDirective,\n ReactiveFormsModule,\n ],\n exports: [\n ProcessLinkComponent,\n SelectPluginConfigurationComponent,\n SelectPluginActionComponent,\n PluginActionConfigurationComponent,\n ProcessLinkModalComponent,\n FormFlowComponent,\n ],\n providers: [UrlValidatorService, UrlResolverService],\n})\nexport class ProcessLinkModule {}\n","/*\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/*\n * Public API Surface of process-link\n */\n\nexport * from './lib/services';\nexport * from './lib/components/select-plugin-configuration/select-plugin-configuration.component';\nexport * from './lib/components/select-plugin-action/select-plugin-action.component';\nexport * from './lib/components/plugin-action-configuration/plugin-action-configuration.component';\nexport * from './lib/process-link.module';\nexport * from './lib/models';\nexport * from './lib/components/process-link/process-link.component';\nexport * from './lib/components/process-link-modal/process-link-modal.component';\nexport * from './lib/components/choose-process-link-type/choose-process-link-type.component';\nexport * from './lib/components/form-flow/form-flow.component';\nexport * from './lib/constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","map","i2","i2.ProcessLinkButtonService","i3.PluginStateService","i4","i1.UrlResolverService","switchMap","i2.PluginStateService","i3.ProcessLinkStateService","i3.ProcessLinkButtonService","i3.ProcessLinkStepService","i5","i6","i1.ProcessLinkButtonService","i1.PluginStateService","i1.ProcessLinkStepService","i1.ProcessLinkStateService","i2.ProcessLinkService","i3","i7","i1.ProcessLinkService","i3.ImportPluginConfigurationComponent","i2.ProcessLinkStateService","i7.FormDisplayConfigurationComponent","i8","take","i6.SelectPluginConfigurationComponent","i7.SelectPluginActionComponent","i8.PluginActionConfigurationComponent","i9.ChooseProcessLinkTypeComponent","i10.SelectFormComponent","i11.SelectFormFlowComponent","i12.SelectUIComponentComponent","i13","i3.FormLinkProcessDiagramComponent","i4.ProcessLinkModalComponent","tap","i1.FormFlowComponentService","i1.FormFlowService","i7.FormFlowConfigurationContainerComponent","CarbonModalModule","CarbonButtonModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-process-link.mjs","sources":["../../../../projects/valtimo/process-link/src/lib/services/form-flow.service.ts","../../../../projects/valtimo/process-link/src/lib/services/plugin-state.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link.service.ts","../../../../projects/valtimo/process-link/src/lib/models/form-link.model.ts","../../../../projects/valtimo/process-link/src/lib/models/process-link.model.ts","../../../../projects/valtimo/process-link/src/lib/models/form-flow.model.ts","../../../../projects/valtimo/process-link/src/lib/models/form-custom-component.model.ts","../../../../projects/valtimo/process-link/src/lib/models/index.ts","../../../../projects/valtimo/process-link/src/lib/constants/injection-tokens.ts","../../../../projects/valtimo/process-link/src/lib/constants/process.link.ts","../../../../projects/valtimo/process-link/src/lib/constants/index.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-button.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-step.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-state.service.ts","../../../../projects/valtimo/process-link/src/lib/services/form-flow-component.service.ts","../../../../projects/valtimo/process-link/src/lib/services/url-resolver.service.ts","../../../../projects/valtimo/process-link/src/lib/services/url-validator.service.ts","../../../../projects/valtimo/process-link/src/lib/services/index.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-configuration/select-plugin-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-configuration/select-plugin-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-action/select-plugin-action.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-action/select-plugin-action.component.html","../../../../projects/valtimo/process-link/src/lib/components/import-plugin-configuration/import-plugin-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/import-plugin-configuration/import-plugin-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/plugin-action-configuration/plugin-action-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/plugin-action-configuration/plugin-action-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-link-process-diagram/form-link-process-diagram.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-link-process-diagram/form-link-process-diagram.component.html","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/choose-process-link-type.component.ts","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/choose-process-link-type.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-display-configuration/form-display-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-display-configuration/form-display-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form/select-form.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form/select-form.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/select-form-flow.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/select-form-flow.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-ui-component/select-ui-component.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-ui-component/select-ui-component.component.html","../../../../projects/valtimo/process-link/src/lib/components/process-link-modal/process-link-modal.component.ts","../../../../projects/valtimo/process-link/src/lib/components/process-link-modal/process-link-modal.component.html","../../../../projects/valtimo/process-link/src/lib/components/process-link/process-link.component.ts","../../../../projects/valtimo/process-link/src/lib/components/process-link/process-link.component.html","../../../../projects/valtimo/process-link/src/lib/process-link-routing.module.ts","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/index.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form/index.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-flow/form-flow.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow/form-flow.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/index.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/index.ts","../../../../projects/valtimo/process-link/src/lib/process-link.module.ts","../../../../projects/valtimo/process-link/src/public-api.ts","../../../../projects/valtimo/process-link/src/valtimo-process-link.ts"],"sourcesContent":["/*\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\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {\n FormFlowBreadcrumbs,\n FormFlowCreateRequest,\n FormFlowCreateResult,\n FormFlowDefinition,\n FormFlowInstance,\n} from '../models';\nimport {ConfigService, BaseApiService} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public createInstanceForNewProcess(\n processDefinitionKey: string,\n request: FormFlowCreateRequest\n ): Observable<FormFlowCreateResult> {\n return this.httpClient.post<FormFlowCreateResult>(\n this.getApiUrl(`v1/process-definition/${processDefinitionKey}/form-flow`),\n request\n );\n }\n\n public getFormFlowStep(formFlowInstanceId: string): Observable<FormFlowInstance> {\n return this.httpClient.get<FormFlowInstance>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}`)\n );\n }\n\n public submitStep(\n formFlowInstanceId: string,\n stepInstanceId: string,\n submissionData: any\n ): Observable<FormFlowInstance> {\n return this.httpClient.post<FormFlowInstance>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}/step/instance/${stepInstanceId}`),\n submissionData\n );\n }\n\n public back(formFlowInstanceId: string, submissionData: any): Observable<FormFlowInstance> {\n return this.httpClient.post<FormFlowInstance>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}/back`),\n submissionData\n );\n }\n\n public save(formFlowInstanceId: string, submissionData: any): Observable<null> {\n return this.httpClient.post<null>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}/save`),\n submissionData\n );\n }\n\n public getBreadcrumbs(formFlowInstanceId: string): Observable<FormFlowBreadcrumbs> {\n return this.httpClient.get<FormFlowBreadcrumbs>(\n this.getApiUrl(`v1/form-flow/instance/${formFlowInstanceId}/breadcrumbs`)\n );\n }\n\n public navigateToStep(\n instanceId: string,\n currentStepInstanceId: string,\n targetStepInstanceId,\n submissionData: any\n ): Observable<FormFlowInstance> {\n return this.httpClient.post<FormFlowInstance>(\n this.getApiUrl(\n `v1/form-flow/instance/${instanceId}/step/instance/${currentStepInstanceId}/to/step/instance/${targetStepInstanceId}`\n ),\n submissionData\n );\n }\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, of, Subject, switchMap} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {\n PluginConfiguration,\n PluginDefinition,\n PluginFunction,\n PluginManagementService,\n PluginService,\n} from '@valtimo/plugin';\nimport {ProcessLink} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PluginStateService {\n private readonly _selectedPluginDefinition$ = new BehaviorSubject<PluginDefinition>(undefined);\n private readonly _selectedPluginConfiguration$ = new BehaviorSubject<PluginConfiguration>(\n undefined\n );\n private readonly _selectedPluginFunction$ = new BehaviorSubject<PluginFunction>(undefined);\n private readonly _save$ = new Subject<null>();\n private readonly _selectedProcessLink$ = new BehaviorSubject<ProcessLink>(undefined);\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginService: PluginService\n ) {}\n\n get selectedPluginDefinition$(): Observable<PluginDefinition> {\n return this._selectedPluginDefinition$.asObservable();\n }\n\n get selectedPluginConfiguration$(): Observable<PluginConfiguration> {\n return this._selectedPluginConfiguration$.asObservable();\n }\n\n get selectedPluginFunction$(): Observable<PluginFunction> {\n return this._selectedPluginFunction$.asObservable();\n }\n\n get save$(): Observable<any> {\n return this._save$.asObservable();\n }\n\n get functionKey$(): Observable<string> {\n return this._selectedProcessLink$.pipe(\n switchMap(processLink =>\n !processLink\n ? this._selectedPluginFunction$.pipe(map(pluginFunction => pluginFunction?.key))\n : of(processLink?.pluginActionDefinitionKey)\n )\n );\n }\n\n get pluginDefinitionKey$(): Observable<string> {\n return this._selectedProcessLink$.pipe(\n switchMap(selectedProcesLink =>\n !selectedProcesLink\n ? this._selectedPluginConfiguration$.pipe(\n map(configuration => configuration?.pluginDefinition.key)\n )\n : combineLatest([\n this._selectedProcessLink$,\n this.pluginService.pluginSpecifications$,\n ]).pipe(\n map(([processLink, pluginSpecifications]) => {\n const pluginSpecification = pluginSpecifications.find(specification => {\n const functionKeys =\n specification?.functionConfigurationComponents &&\n Object.keys(specification.functionConfigurationComponents);\n return functionKeys?.includes(processLink?.pluginActionDefinitionKey);\n });\n\n return pluginSpecification?.pluginId;\n })\n )\n )\n );\n }\n\n selectPluginDefinition(definition: PluginDefinition): void {\n this._selectedPluginDefinition$.next(definition);\n }\n\n selectPluginConfiguration(configuration: PluginConfiguration): void {\n this._selectedPluginConfiguration$.next(configuration);\n }\n\n selectPluginFunction(pluginFunction: PluginFunction): void {\n this._selectedPluginFunction$.next(pluginFunction);\n }\n\n selectProcessLink(processLink: ProcessLink): void {\n this._selectedProcessLink$.next(processLink);\n }\n\n deselectProcessLink(): void {\n this._selectedProcessLink$.next(undefined);\n }\n\n save(): void {\n this._save$.next(null);\n }\n}\n","/*\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 */\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/shared';\nimport {map, Observable} from 'rxjs';\n\nimport {\n CompatiblePluginProcessLinks,\n FormFlowProcessLinkUpdateRequestDto,\n FormProcessLinkUpdateRequestDto,\n FormSubmissionResult,\n GetProcessLinkRequest,\n GetProcessLinkResponse,\n PluginProcessLinkUpdateDto,\n ProcessLinkCreateEvent,\n ProcessLinkType,\n TaskWithProcessLink,\n UIComponentProcessLinkUpdateRequestDto,\n URLProcessLinkUpdateRequestDto,\n} from '../models';\nimport {URLVariables} from '../models/process-link-url.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkService {\n private readonly VALTIMO_ENDPOINT_URI!: string;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {\n this.VALTIMO_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n }\n\n public getTasksWithProcessLinks(processInstanceId: string): Observable<TaskWithProcessLink[]> {\n return this.http\n .get<\n TaskWithProcessLink[]\n >(`${this.VALTIMO_ENDPOINT_URI}v1/process/${processInstanceId}/tasks/process-link`, {})\n .pipe(map(res => res || []));\n }\n\n public getProcessLink(\n getProcessLinkRequest: GetProcessLinkRequest\n ): Observable<GetProcessLinkResponse> {\n var params = new HttpParams().set(\n 'processDefinitionId',\n getProcessLinkRequest.processDefinitionId\n );\n if (getProcessLinkRequest.activityId !== undefined)\n params = params.set('activityId', getProcessLinkRequest.activityId);\n\n return this.http.get<GetProcessLinkResponse>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link`, {\n params,\n });\n }\n\n public updateProcessLink(\n updateProcessLinkRequest:\n | PluginProcessLinkUpdateDto\n | FormFlowProcessLinkUpdateRequestDto\n | FormProcessLinkUpdateRequestDto\n | URLProcessLinkUpdateRequestDto\n | UIComponentProcessLinkUpdateRequestDto\n ): Observable<null> {\n return this.http.put<null>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link`,\n this.emptyStringToNull(updateProcessLinkRequest)\n );\n }\n\n public saveProcessLink(saveProcessLinkRequest: ProcessLinkCreateEvent): Observable<null> {\n return this.http.post<null>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link`,\n this.emptyStringToNull(saveProcessLinkRequest)\n );\n }\n\n public deleteProcessLink(id: string): Observable<null> {\n return this.http.delete<null>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link/${id}`);\n }\n\n public getProcessLinkCandidates(activityType: string): Observable<Array<ProcessLinkType>> {\n return this.http.get<Array<ProcessLinkType>>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/types?activityType=${activityType}`\n );\n }\n\n public deployProcessWithProcessLinks(\n processLinks: ProcessLinkCreateEvent[] = [],\n processDefinitionId: string | null,\n processXml: string | null\n ) {\n const formData = new FormData();\n const processLinksBlob = new Blob(\n [JSON.stringify(processLinks.map(processLink => this.emptyStringToNull(processLink)))],\n {type: 'application/json'}\n );\n\n if (processXml) formData.append('file', new File([processXml], 'process.bpmn'));\n if (processDefinitionId) formData.append('processDefinitionId', processDefinitionId);\n formData.append('processLinks', processLinksBlob);\n\n return this.http.post(`${this.VALTIMO_ENDPOINT_URI}management/v1/process-definition`, formData);\n }\n\n public deployProcessWithProcessLinksForCase(\n processLinks: ProcessLinkCreateEvent[] = [],\n processDefinitionId: string | null,\n processXml: string | null,\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n canInitializeDocument: boolean = false,\n startableByUser: boolean = false\n ) {\n const formData = new FormData();\n const processLinksBlob = new Blob(\n [JSON.stringify(processLinks.map(processLink => this.emptyStringToNull(processLink)))],\n {type: 'application/json'}\n );\n\n if (processXml) formData.append('file', new File([processXml], 'process.bpmn'));\n\n if (processDefinitionId) formData.append('processDefinitionId', processDefinitionId);\n\n formData.append('processLinks', processLinksBlob);\n formData.append('canInitializeDocument', String(canInitializeDocument));\n formData.append('startableByUser', String(startableByUser));\n\n return this.http.post(\n `${this.VALTIMO_ENDPOINT_URI}management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/process-definition`,\n formData\n );\n }\n\n public submitForm(\n processLinkId: string,\n formData: object,\n documentId?: string,\n taskInstanceId?: string,\n documentDefinitionName?: string\n ): Observable<FormSubmissionResult> {\n let params = new HttpParams();\n\n if (documentId) {\n params = params.set('documentId', documentId);\n }\n if (taskInstanceId) {\n params = params.set('taskInstanceId', taskInstanceId);\n }\n if (documentDefinitionName) {\n params = params.set('documentDefinitionName', documentDefinitionName);\n }\n\n const httpOptions = {\n headers: new HttpHeaders().set('Content-Type', 'application/json'),\n params,\n };\n return this.http.post<FormSubmissionResult>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/${processLinkId}/form/submission`,\n formData,\n httpOptions\n );\n }\n\n public submitURLProcessLink(\n processLinkId: string,\n documentId?: string,\n taskInstanceId?: string,\n documentDefinitionName?: string\n ): Observable<FormSubmissionResult> {\n let params = new HttpParams();\n\n if (documentId) {\n params = params.set('documentId', documentId);\n }\n if (taskInstanceId) {\n params = params.set('taskInstanceId', taskInstanceId);\n }\n if (documentDefinitionName) {\n params = params.set('documentDefinitionName', documentDefinitionName);\n }\n\n const httpOptions = {\n headers: new HttpHeaders().set('Content-Type', 'application/json'),\n params,\n };\n return this.http.post<FormSubmissionResult>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/url/${processLinkId}`,\n {},\n httpOptions\n );\n }\n\n public getVariables(): Observable<URLVariables> {\n return this.http.get<URLVariables>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link/url/variables`);\n }\n\n public getCompatiblePluginProcessLinks(\n pluginActionDefinitionKey: string\n ): Observable<CompatiblePluginProcessLinks[]> {\n return this.http.get<CompatiblePluginProcessLinks[]>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/plugin?pluginActionDefinitionKey=${pluginActionDefinitionKey}`\n );\n }\n\n private emptyStringToNull<T extends Record<string, any>>(object: T): T {\n if (object && typeof object === 'object') {\n Object.keys(object).forEach(key => {\n const typedKey = key as keyof T;\n const value = object[typedKey];\n if (typeof value === 'object' && value !== null) {\n this.emptyStringToNull(value);\n } else if (value === '') {\n object[typedKey] = null as any;\n }\n });\n }\n return object;\n }\n}\n","/*\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\nimport {ListItem} from 'carbon-components-angular';\n\ninterface FormSubmissionResult {\n errors: string[];\n documentId?: string;\n}\n\ninterface BpmnElement {\n id: string;\n type: string;\n activityListenerType?: string;\n activityType?: string;\n name?: string;\n}\n\ninterface FormFlowDefinition {\n id: string;\n name: string;\n}\n\ninterface FormFlowInstance {\n id: string;\n step?: FormFlowStep;\n}\n\ninterface FormFlowCreateRequest {\n documentId: string | null;\n documentDefinitionName: string | null;\n}\n\ninterface FormFlowCreateResult {\n formFlowInstanceId: string;\n}\n\ntype FormFlowStepType = 'form' | 'custom-component';\n\ninterface FormFlowStep {\n id: string;\n type: FormFlowStepType;\n typeProperties: FormTypeProperties;\n}\n\ninterface FormTypeProperties {\n definition?: any;\n id?: string;\n}\n\ninterface ModalParams {\n element: BpmnElement;\n processDefinitionKey: string;\n processDefinitionId: string;\n}\n\ninterface FormDefinitionListItem extends ListItem {\n id: string;\n}\n\ninterface FormFlowBreadcrumbs extends ListItem {\n currentStepIndex: number;\n breadcrumbs: Array<FormFlowBreadcrumb>;\n}\n\ninterface FormFlowBreadcrumb extends ListItem {\n title: string;\n key: string;\n stepInstanceId: string;\n completed: boolean;\n}\n\nexport {\n FormSubmissionResult,\n BpmnElement,\n FormFlowDefinition,\n FormFlowInstance,\n FormFlowStepType,\n FormFlowStep,\n FormTypeProperties,\n FormFlowCreateResult,\n FormFlowCreateRequest,\n ModalParams,\n FormDefinitionListItem,\n FormFlowBreadcrumbs,\n FormFlowBreadcrumb,\n};\n","/*\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 */\nimport {ProcessInstanceTask} from '@valtimo/process';\n\ninterface ProcessLink {\n id: string;\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n pluginConfigurationId?: string;\n pluginActionDefinitionKey?: string;\n actionProperties?: {\n [key: string]: any;\n };\n formDefinitionId?: string;\n formFlowDefinitionKey?: string;\n viewModelEnabled?: boolean;\n url?: string;\n formDisplayType?: FormDisplayType;\n formSize?: FormSize;\n subtitles?: string[];\n componentKey?: string;\n}\n\ntype GetProcessLinkResponse = Array<ProcessLink>;\n\ninterface GetProcessLinkRequest {\n activityId?: string;\n processDefinitionId: string;\n}\n\ninterface ProcessLinkType {\n enabled: boolean;\n processLinkType: string;\n}\n\ntype ProcessLinkConfigurationStep =\n | 'chooseProcessLinkType'\n | 'choosePluginConfiguration'\n | 'choosePluginAction'\n | 'configurePluginAction'\n | 'selectForm'\n | 'selectFormFlow'\n | 'empty';\n\ninterface FormProcessLinkCreateRequestDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n formDefinitionId: string;\n viewModelEnabled: boolean;\n formDisplayType?: string;\n formSize?: string;\n subtitles?: string[];\n}\n\ninterface FormFlowProcessLinkCreateRequestDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n formFlowDefinitionKey: string;\n subtitles: string[];\n}\n\ninterface PluginProcessLinkCreateDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n pluginConfigurationId: string;\n pluginActionDefinitionKey: string;\n actionProperties: object;\n}\n\ninterface PluginProcessLinkUpdateDto {\n id: string;\n activityId: string;\n pluginConfigurationId: string;\n pluginActionDefinitionKey: string;\n actionProperties: {\n [key: string]: any;\n };\n}\n\ninterface FormFlowProcessLinkUpdateRequestDto {\n id: string;\n activityId: string;\n formFlowDefinitionId: string;\n formDisplayType?: string;\n formSize?: string;\n}\n\ninterface FormProcessLinkUpdateRequestDto {\n id: string;\n activityId: string;\n formDefinitionId: string;\n viewModelEnabled: boolean;\n formDisplayType?: string;\n formSize?: string;\n subtitles?: string[];\n}\n\ntype FormDisplayType = 'modal' | 'panel';\n\ntype FormSize = 'extraSmall' | 'small' | 'medium' | 'large';\n\ninterface UIComponentProcessLinkCreateRequestDto {\n componentKey: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n processDefinitionId: string;\n}\n\ninterface UIComponentProcessLinkUpdateRequestDto {\n id: string;\n componentKey: string;\n activityId: string;\n}\n\ninterface URLProcessLinkCreateDto {\n url: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n}\n\ninterface URLProcessLinkUpdateRequestDto {\n url: string;\n id: string;\n activityId: string;\n}\n\ninterface UIComponentProcessLinkCreateRequestDto {\n componentKey: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n processDefinitionId: string;\n}\n\ninterface UIComponentProcessLinkUpdateRequestDto {\n id: string;\n componentKey: string;\n}\n\ntype TaskProcessLinkType = 'form' | 'form-flow' | 'form-view-model' | 'url' | 'ui-component';\n\ninterface TaskProcessLinkResult {\n processLinkId: string;\n type: TaskProcessLinkType;\n properties: {\n formFlowInstanceId?: string;\n formDefinitionId?: string;\n prefilledForm?: any;\n formDefinition?: any;\n formName?: string;\n url?: string;\n formDisplayType?: FormDisplayType;\n formSize?: FormSize;\n componentKey?: string;\n };\n}\n\ninterface TaskWithProcessLink {\n task: ProcessInstanceTask;\n processLinkActivityResult: TaskProcessLinkResult;\n}\n\ntype ProcessLinkUpdateEvent =\n | PluginProcessLinkUpdateDto\n | FormFlowProcessLinkUpdateRequestDto\n | FormProcessLinkUpdateRequestDto\n | URLProcessLinkUpdateRequestDto\n | UIComponentProcessLinkUpdateRequestDto;\n\ninterface ProcessLinkDeleteEvent {\n activityId: string;\n}\n\ninterface CompatibleProcessVersion {\n version: string;\n processLinks: ProcessLink[];\n}\n\ninterface CompatiblePluginProcessLinks {\n processDefinitionKey: string;\n versions: CompatibleProcessVersion[];\n}\n\ntype ProcessLinkCreateEvent =\n | FormProcessLinkCreateRequestDto\n | FormFlowProcessLinkCreateRequestDto\n | PluginProcessLinkCreateDto\n | URLProcessLinkCreateDto\n | UIComponentProcessLinkCreateRequestDto;\n\ninterface ProcessLinkDeleteEvent {\n activityId: string;\n}\n\nenum ProcessLinkEditMode {\n SAVE_TO_BACKEND,\n EMIT_EVENTS,\n}\n\ninterface CompatibleProcessVersion {\n version: string;\n processLinks: ProcessLink[];\n}\n\ninterface CompatiblePluginProcessLinks {\n processDefinitionKey: string;\n versions: CompatibleProcessVersion[];\n}\n\ninterface CompatibleProcessVersion {\n version: string;\n processLinks: ProcessLink[];\n}\n\ninterface CompatiblePluginProcessLinks {\n processDefinitionKey: string;\n versions: CompatibleProcessVersion[];\n}\n\nexport {\n CompatiblePluginProcessLinks,\n CompatibleProcessVersion,\n FormDisplayType,\n FormFlowProcessLinkCreateRequestDto,\n FormFlowProcessLinkUpdateRequestDto,\n FormProcessLinkCreateRequestDto,\n FormProcessLinkUpdateRequestDto,\n FormSize,\n GetProcessLinkRequest,\n GetProcessLinkResponse,\n PluginProcessLinkCreateDto,\n PluginProcessLinkUpdateDto,\n ProcessLink,\n ProcessLinkConfigurationStep,\n ProcessLinkCreateEvent,\n ProcessLinkDeleteEvent,\n ProcessLinkEditMode,\n ProcessLinkType,\n ProcessLinkUpdateEvent,\n TaskProcessLinkResult,\n TaskProcessLinkType,\n TaskWithProcessLink,\n UIComponentProcessLinkCreateRequestDto,\n UIComponentProcessLinkUpdateRequestDto,\n URLProcessLinkCreateDto,\n URLProcessLinkUpdateRequestDto,\n};\n","/*\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\nimport {EventEmitter, Type} from '@angular/core';\nimport {FormioSubmission} from '@valtimo/components';\n\ninterface ChangeEvent {\n data: object;\n}\n\ninterface FormFlowCustomComponent {\n formFlowInstanceId: string;\n componentId?: string;\n disabled: boolean;\n changeEvent: EventEmitter<ChangeEvent>;\n submitEvent: EventEmitter<FormioSubmission>;\n}\n\ninterface FormFlowCustomComponentDefinition {\n id: string;\n component: Type<FormFlowCustomComponent>;\n}\n\nexport {FormFlowCustomComponentDefinition, FormFlowCustomComponent, ChangeEvent};\n","/*\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\nimport {EventEmitter, Type} from '@angular/core';\n\ninterface FormCustomComponent {\n taskInstanceId: string | null;\n processDefinitionKey: string | null;\n documentDefinitionName: string | null;\n submittedEvent: EventEmitter<any>;\n}\n\ninterface FormCustomComponentDefinition {\n id: string;\n component: FormCustomComponent;\n}\n\ninterface FormCustomComponentConfig {\n [id: string]: Type<FormCustomComponentDefinition>;\n}\n\nexport {FormCustomComponent, FormCustomComponentDefinition, FormCustomComponentConfig};\n","/*\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\nexport * from './form-link.model';\nexport * from './process-link.model';\nexport * from './form-flow.model';\nexport * from './form-custom-component.model';\n","/*\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\nimport {InjectionToken} from '@angular/core';\nimport {FormCustomComponentConfig, FormFlowCustomComponentDefinition} from '../models';\n\nconst FORM_FLOW_COMPONENT_TOKEN = new InjectionToken<Array<FormFlowCustomComponentDefinition>>(\n 'Supported form-flow Angular components',\n {factory: () => []}\n);\n\nconst FORM_CUSTOM_COMPONENT_TOKEN = new InjectionToken<FormCustomComponentConfig>(\n 'Custom component that can be used instead of FormIO or form-flow'\n);\n\nexport {FORM_FLOW_COMPONENT_TOKEN, FORM_CUSTOM_COMPONENT_TOKEN};\n","/*\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\nimport {FormSize} from '../models';\nimport {CarbonModalSize} from '@valtimo/components';\n\nconst formSizeToCarbonModalSizeMap: Record<FormSize, CarbonModalSize> = {\n extraSmall: 'xs',\n small: 'sm',\n medium: 'md',\n large: 'lg',\n};\n\nexport {formSizeToCarbonModalSizeMap};\n","/*\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\nexport * from './injection-tokens';\nexport * from './process.link';\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkButtonService {\n private readonly _showSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _enableSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _enableNextButton$ = new BehaviorSubject<boolean>(false);\n private readonly _showBackButton$ = new BehaviorSubject<boolean>(false);\n private readonly _showNextButton$ = new BehaviorSubject<boolean>(false);\n private readonly _backButtonClick$ = new Subject<null>();\n private readonly _saveButtonClick$ = new Subject<null>();\n private readonly _nextButtonClick$ = new Subject<null>();\n\n get showSaveButton$(): Observable<boolean> {\n return this._showSaveButton$.asObservable();\n }\n get enableSaveButton$(): Observable<boolean> {\n return this._enableSaveButton$.asObservable();\n }\n get showNextButton$(): Observable<boolean> {\n return this._showNextButton$.asObservable();\n }\n get enableNextButton$(): Observable<boolean> {\n return this._enableNextButton$.asObservable();\n }\n get showBackButton$(): Observable<boolean> {\n return this._showBackButton$.asObservable();\n }\n get backButtonClick$(): Observable<null> {\n return this._backButtonClick$.asObservable();\n }\n get saveButtonClick$(): Observable<null> {\n return this._saveButtonClick$.asObservable();\n }\n get nextButtonClick$(): Observable<null> {\n return this._nextButtonClick$.asObservable();\n }\n\n showSaveButton(): void {\n this._showSaveButton$.next(true);\n }\n\n hideSaveButton(): void {\n this._showSaveButton$.next(false);\n }\n\n showNextButton(): void {\n this._showNextButton$.next(true);\n }\n\n hideNextButton(): void {\n this._showNextButton$.next(false);\n }\n\n enableNextButton(): void {\n this._enableNextButton$.next(true);\n }\n\n disableNextButton(): void {\n this._enableNextButton$.next(false);\n }\n\n enableSaveButton(): void {\n this._enableSaveButton$.next(true);\n }\n\n disableSaveButton(): void {\n this._enableSaveButton$.next(false);\n }\n\n showBackButton(): void {\n this._showBackButton$.next(true);\n }\n\n hideBackButton(): void {\n this._showBackButton$.next(false);\n }\n\n clickBackButton(): void {\n this._backButtonClick$.next(null);\n }\n\n clickSaveButton(): void {\n this._saveButtonClick$.next(null);\n }\n\n clickNextButton(): void {\n this._nextButtonClick$.next(null);\n }\n\n resetButtons(): void {\n this.disableSaveButton();\n this.hideBackButton();\n this.hideSaveButton();\n this.hideNextButton();\n this.disableNextButton();\n }\n}\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {Step} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, filter, map, Observable} from 'rxjs';\nimport {ProcessLinkConfigurationStep, ProcessLinkType} from '../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ProcessLinkButtonService} from './process-link-button.service';\nimport {take} from 'rxjs/operators';\nimport {PluginStateService} from './plugin-state.service';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkStepService {\n private readonly _steps$ = new BehaviorSubject<Array<Step>>(undefined);\n private readonly _currentStepIndex$ = new BehaviorSubject<number>(0);\n private readonly _disableSteps$ = new BehaviorSubject<boolean>(false);\n private readonly _hasOneProcessLinkType$ = new BehaviorSubject<boolean>(false);\n\n get steps$(): Observable<Array<Step>> {\n return combineLatest([\n this._steps$,\n this._disableSteps$,\n this.translateService.stream('key'),\n ]).pipe(\n filter(([steps]) => !!steps),\n map(([steps, disableSteps]) =>\n steps.map(step => ({\n ...step,\n disabled: disableSteps,\n label: this.translateService.instant(`processLinkSteps.${step.label}`),\n ...(step.secondaryLabel && {\n secondaryLabel: this.translateService.instant(step.secondaryLabel),\n }),\n }))\n )\n );\n }\n\n get currentStepIndex$(): Observable<number> {\n return this._currentStepIndex$.asObservable();\n }\n\n get currentStepId$(): Observable<ProcessLinkConfigurationStep | ''> {\n return combineLatest([this._steps$, this.currentStepIndex$]).pipe(\n filter(([steps, currentStepIndex]) => !!steps && typeof currentStepIndex === 'number'),\n map(([steps, currentStepIndex]) =>\n steps.length > 0 ? (steps[currentStepIndex]?.label as ProcessLinkConfigurationStep) : ''\n )\n );\n }\n\n get hasOneProcessLinkType$(): Observable<boolean> {\n return this._hasOneProcessLinkType$.asObservable();\n }\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService,\n private readonly pluginTranslateService: PluginTranslationService\n ) {}\n\n reset(): void {\n this._currentStepIndex$.next(0);\n this._steps$.next([]);\n }\n\n setInitialSteps(availableProcessLinkTypes: Array<ProcessLinkType>): void {\n if (availableProcessLinkTypes.length > 1) {\n this.setChoiceSteps();\n }\n }\n\n setFormSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.form'},\n {label: 'selectForm'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleFormStep(): void {\n this._steps$.next([{label: 'selectForm'}]);\n this._currentStepIndex$.next(0);\n }\n\n setUIComponentStep(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.ui-component'},\n {label: 'uiComponent'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setFormFlowSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.form-flow'},\n {label: 'selectFormFlow'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleFormFlowStep(): void {\n this._steps$.next([{label: 'selectFormFlow'}]);\n this._currentStepIndex$.next(0);\n }\n\n setChoosePluginConfigurationSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration'},\n {label: 'choosePluginAction', disabled: true},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleChoosePluginConfigurationSteps(): void {\n this._steps$.next([\n {label: 'choosePluginConfiguration'},\n {label: 'choosePluginAction', disabled: true},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(0);\n }\n\n setChoosePluginActionSteps(): void {\n combineLatest([\n this._hasOneProcessLinkType$,\n this.pluginStateService.selectedPluginConfiguration$,\n ])\n .pipe(take(1))\n .subscribe(([hasOneType, selectedConfiguration]) => {\n if (hasOneType) {\n this._steps$.next([\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction'},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(1);\n this.buttonService.showNextButton();\n this.buttonService.showBackButton();\n this.buttonService.hideSaveButton();\n this.buttonService.disableNextButton();\n } else {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction'},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(2);\n this.buttonService.showNextButton();\n this.buttonService.showBackButton();\n\n this.buttonService.hideSaveButton();\n this.buttonService.disableNextButton();\n }\n });\n }\n\n setConfigurePluginActionSteps(): void {\n combineLatest([\n this._hasOneProcessLinkType$,\n this.pluginStateService.selectedPluginConfiguration$,\n this.pluginStateService.selectedPluginFunction$,\n ])\n .pipe(take(1))\n .subscribe(([hasOneType, selectedConfiguration, selectedFunction]) => {\n const selectedFunctionTranslation = this.pluginTranslateService.instant(\n selectedFunction.key,\n selectedConfiguration.pluginDefinition.key\n );\n\n if (hasOneType) {\n this._steps$.next([\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction', secondaryLabel: selectedFunctionTranslation},\n {label: 'configurePluginAction'},\n ]);\n this._currentStepIndex$.next(2);\n this.buttonService.hideNextButton();\n this.buttonService.showSaveButton();\n } else {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction', secondaryLabel: selectedFunctionTranslation},\n {label: 'configurePluginAction'},\n ]);\n this._currentStepIndex$.next(3);\n this.buttonService.hideNextButton();\n this.buttonService.showSaveButton();\n }\n });\n }\n\n public setURLSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.url'},\n {label: 'selectURL'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n public setSingleURLStep(): void {\n this._steps$.next([{label: 'selectURL'}]);\n this._currentStepIndex$.next(0);\n }\n\n disableSteps(): void {\n this._disableSteps$.next(true);\n }\n\n enableSteps(): void {\n this._disableSteps$.next(false);\n }\n\n setHasOneProcessLinkType(hasOne: boolean): void {\n this._hasOneProcessLinkType$.next(hasOne);\n }\n\n setProcessLinkTypeSteps(processLinkTypeId: string, hasOneOption?: boolean): void {\n switch (processLinkTypeId) {\n case 'form':\n if (hasOneOption) {\n this.setSingleFormStep();\n this.buttonService.hideBackButton();\n } else {\n this.setFormSteps();\n this.buttonService.showBackButton();\n }\n this.buttonService.showSaveButton();\n break;\n case 'form-flow':\n if (hasOneOption) {\n this.setSingleFormFlowStep();\n this.buttonService.hideSaveButton();\n this.buttonService.hideBackButton();\n } else {\n this.setFormFlowSteps();\n this.buttonService.showSaveButton();\n this.buttonService.showBackButton();\n }\n break;\n case 'plugin':\n if (hasOneOption) {\n this.setSingleChoosePluginConfigurationSteps();\n this.buttonService.hideBackButton();\n this.buttonService.showNextButton();\n } else {\n this.setChoosePluginConfigurationSteps();\n this.buttonService.showBackButton();\n this.buttonService.showNextButton();\n }\n break;\n case 'url':\n if (hasOneOption) {\n this.setSingleURLStep();\n this.buttonService.hideBackButton();\n this.buttonService.showSaveButton();\n } else {\n this.setURLSteps();\n this.buttonService.showBackButton();\n this.buttonService.showSaveButton();\n }\n break;\n case 'ui-component':\n this.setUIComponentStep();\n this.buttonService.showBackButton();\n this.buttonService.showSaveButton();\n break;\n }\n }\n\n private setChoiceSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType'},\n {label: 'empty', disabled: true},\n {label: 'empty', disabled: true},\n ]);\n this._currentStepIndex$.next(0);\n }\n}\n","/*\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 */\nimport {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {BehaviorSubject, map, Observable, Subject, Subscription} from 'rxjs';\nimport {\n FormCustomComponentConfig,\n ModalParams,\n ProcessLink,\n ProcessLinkCreateEvent,\n ProcessLinkDeleteEvent,\n ProcessLinkEditMode,\n ProcessLinkType,\n ProcessLinkUpdateEvent,\n} from '../models';\nimport {PluginStateService} from './plugin-state.service';\nimport {ProcessLinkButtonService} from './process-link-button.service';\nimport {ProcessLinkStepService} from './process-link-step.service';\nimport {FORM_CUSTOM_COMPONENT_TOKEN} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkStateService implements OnDestroy {\n private readonly _showModal$ = new BehaviorSubject<boolean>(false);\n private readonly _availableProcessLinkTypes$ = new BehaviorSubject<Array<ProcessLinkType>>([]);\n private readonly _elementName$ = new BehaviorSubject<string>('');\n private readonly _selectedProcessLinkTypeId$ = new BehaviorSubject<string>('');\n private readonly _viewModelEnabled$ = new BehaviorSubject<boolean>(false);\n private readonly _url$ = new BehaviorSubject<string>('');\n private readonly _saving$ = new BehaviorSubject<boolean>(false);\n private readonly _modalParams$ = new BehaviorSubject<ModalParams>(undefined);\n private readonly _selectedProcessLink$ = new BehaviorSubject<ProcessLink>(undefined);\n private readonly _processLinkEditMode$ = new BehaviorSubject<ProcessLinkEditMode>(\n ProcessLinkEditMode.SAVE_TO_BACKEND\n );\n private readonly _processLinkUpdateEvents$ = new Subject<ProcessLinkUpdateEvent>();\n private readonly _processLinkCreateEvents$ = new Subject<ProcessLinkCreateEvent>();\n private readonly _processLinkDeleteEvents$ = new Subject<ProcessLinkDeleteEvent>();\n\n public get processLinkUpdateEvents$(): Observable<ProcessLinkUpdateEvent> {\n return this._processLinkUpdateEvents$.asObservable();\n }\n public get processLinkCreateEvents$(): Observable<ProcessLinkCreateEvent> {\n return this._processLinkCreateEvents$.asObservable();\n }\n public get processLinkDeleteEvents$(): Observable<ProcessLinkDeleteEvent> {\n return this._processLinkDeleteEvents$.asObservable();\n }\n public get showModal$(): Observable<boolean> {\n return this._showModal$.asObservable();\n }\n public get elementName$(): Observable<string> {\n return this._elementName$.asObservable();\n }\n\n public get availableProcessLinkTypes$(): Observable<ProcessLinkType[]> {\n return this._availableProcessLinkTypes$.pipe(\n map(types =>\n (!this.formCustomComponentConfig\n ? types.map(type => ({\n ...type,\n enabled: type.processLinkType === 'ui-component' ? false : type.enabled,\n }))\n : types\n ).filter(type => type.processLinkType !== 'url')\n )\n );\n }\n\n public get hideProgressIndicator$(): Observable<boolean> {\n return this._availableProcessLinkTypes$\n .asObservable()\n .pipe(\n map(\n availableTypes =>\n Array.isArray(availableTypes) &&\n availableTypes.length === 1 &&\n (availableTypes[0]?.processLinkType === 'form' ||\n availableTypes[0]?.processLinkType === 'form-flow')\n )\n );\n }\n public get selectedProcessLinkTypeId$(): Observable<string> {\n return this._selectedProcessLinkTypeId$.asObservable();\n }\n public get saving$(): Observable<boolean> {\n return this._saving$.asObservable();\n }\n public get modalParams$(): Observable<ModalParams> {\n return this._modalParams$.asObservable();\n }\n public get selectedProcessLink$(): Observable<ProcessLink> {\n return this._selectedProcessLink$.asObservable();\n }\n public get typeOfSelectedProcessLink$(): Observable<string> {\n return this.selectedProcessLink$.pipe(map(processLink => processLink?.processLinkType || ''));\n }\n public get processLinkEditMode(): ProcessLinkEditMode {\n return this._processLinkEditMode$.getValue();\n }\n public get viewModelEnabled$(): Observable<boolean> {\n return this._viewModelEnabled$.asObservable();\n }\n public get url$(): Observable<string> {\n return this._url$.asObservable();\n }\n\n private _availableProcessLinkTypesSubscription!: Subscription;\n\n constructor(\n private readonly processLinkStepService: ProcessLinkStepService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService,\n @Optional()\n @Inject(FORM_CUSTOM_COMPONENT_TOKEN)\n private readonly formCustomComponentConfig: FormCustomComponentConfig\n ) {\n this.openAvailableProcessLinkTypesSubscription();\n }\n\n public ngOnDestroy(): void {\n this._availableProcessLinkTypesSubscription?.unsubscribe();\n }\n\n public setAvailableProcessLinkTypes(processLinkTypes: Array<ProcessLinkType>): void {\n const hasOneOption = processLinkTypes.length === 1;\n this._availableProcessLinkTypes$.next(processLinkTypes);\n this.processLinkStepService.setHasOneProcessLinkType(hasOneOption);\n\n if (hasOneOption) {\n this.selectProcessLinkType(processLinkTypes[0].processLinkType, hasOneOption);\n }\n }\n\n public setElementName(name: string): void {\n this._elementName$.next(name);\n }\n\n public showModal(): void {\n this._showModal$.next(true);\n }\n\n public closeModal(): void {\n this._showModal$.next(false);\n\n setTimeout(() => {\n this.reset();\n }, 240);\n }\n\n public selectProcessLinkType(processLinkTypeId: string, hasOneOption?: boolean): void {\n this._selectedProcessLinkTypeId$.next(processLinkTypeId);\n this.processLinkStepService.setProcessLinkTypeSteps(processLinkTypeId, hasOneOption);\n }\n\n public setViewModelEnabled(viewModelEnabled: boolean): void {\n this._viewModelEnabled$.next(viewModelEnabled);\n }\n\n public clearSelectedProcessLinkType(): void {\n this._selectedProcessLinkTypeId$.next('');\n }\n\n public startSaving(): void {\n this._saving$.next(true);\n this.processLinkStepService.disableSteps();\n }\n\n public stopSaving(): void {\n this._saving$.next(false);\n this.processLinkStepService.enableSteps();\n }\n\n public setInitial(): void {\n const availableTypes = this._availableProcessLinkTypes$.getValue();\n this.buttonService.resetButtons();\n this.processLinkStepService.setInitialSteps(availableTypes);\n }\n\n public setModalParams(params: ModalParams): void {\n this._modalParams$.next(params);\n }\n\n public selectProcessLink(processLink: ProcessLink | undefined): void {\n if (!processLink) return;\n this._selectedProcessLink$.next(processLink);\n this.pluginStateService.selectProcessLink(processLink);\n this.setViewModelEnabled(processLink.viewModelEnabled ?? false);\n this._url$.next(processLink.url ?? '');\n }\n\n public deselectProcessLink(): void {\n this._selectedProcessLink$.next(undefined);\n this.pluginStateService.deselectProcessLink();\n }\n\n public setEditMode(editMode: ProcessLinkEditMode): void {\n this._processLinkEditMode$.next(editMode);\n }\n\n public sendProcessLinkUpdateEvent(event: ProcessLinkUpdateEvent): void {\n this._processLinkUpdateEvents$.next(event);\n }\n\n public sendProcessLinkCreateEvent(event: ProcessLinkCreateEvent): void {\n this._processLinkCreateEvents$.next(event);\n }\n\n public sendProcessLinkDeleteEvent(event: ProcessLinkDeleteEvent): void {\n this._processLinkDeleteEvents$.next(event);\n }\n\n private openAvailableProcessLinkTypesSubscription(): void {\n this._availableProcessLinkTypesSubscription = this._availableProcessLinkTypes$.subscribe(\n availableProcessLinkTypes => {\n if (availableProcessLinkTypes.length > 1) {\n this.setInitial();\n }\n }\n );\n }\n\n private reset(): void {\n this.setAvailableProcessLinkTypes([]);\n this.processLinkStepService.reset();\n this.stopSaving();\n this.buttonService.resetButtons();\n this.clearSelectedProcessLinkType();\n this.deselectProcessLink();\n }\n}\n","/*\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\nimport {Inject, Injectable} from '@angular/core';\nimport {BehaviorSubject, filter, Observable} from 'rxjs';\nimport {FormFlowCustomComponentDefinition} from '../models';\nimport {FORM_FLOW_COMPONENT_TOKEN} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowComponentService {\n private readonly _supportedComponents$ =\n new BehaviorSubject<Array<FormFlowCustomComponentDefinition> | null>(null);\n\n public get supportedComponents$(): Observable<Array<FormFlowCustomComponentDefinition>> {\n return this._supportedComponents$.pipe(filter(components => !!components));\n }\n\n constructor(\n @Inject(FORM_FLOW_COMPONENT_TOKEN)\n private readonly supportedCustomComponents: Array<FormFlowCustomComponentDefinition>\n ) {\n this.setSupportedComponents(supportedCustomComponents);\n }\n\n private setSupportedComponents(\n supportedComponents: Array<FormFlowCustomComponentDefinition>\n ): void {\n this._supportedComponents$.next(supportedComponents);\n }\n}\n","/*\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\nimport {Injectable} from '@angular/core';\n\n@Injectable()\nexport class UrlResolverService {\n public resolveUrlVariables(url: string, variables: Map<string, string>): string {\n let resolvingUrl = url;\n Object.keys(variables).forEach(key => {\n let value = variables[key];\n resolvingUrl = resolvingUrl.replace('<' + key + '>', value);\n });\n return resolvingUrl;\n }\n}\n","/*\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\nimport {AbstractControl, ValidationErrors, ValidatorFn} from '@angular/forms';\nimport {Injectable} from '@angular/core';\nimport {UrlResolverService} from './url-resolver.service';\n\n@Injectable()\nexport class UrlValidatorService {\n constructor(private readonly urlResolverService: UrlResolverService) {}\n\n public urlValidator(variables: Map<string, string>): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const url = this.urlResolverService.resolveUrlVariables(control.value, variables);\n try {\n new URL(url);\n return null;\n } catch (_) {\n return {invalidUrl: url};\n }\n };\n }\n}\n","/*\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\nexport * from './form-flow.service';\nexport * from './plugin-state.service';\nexport * from './process-link.service';\nexport * from './process-link-state.service';\nexport * from './process-link-step.service';\nexport * from './process-link-button.service';\nexport * from './form-flow-component.service';\nexport * from './url-resolver.service';\nexport * from './url-validator.service';\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginStateService} from '../../services/plugin-state.service';\nimport {combineLatest, Observable, of, Subscription} from 'rxjs';\nimport {\n PluginConfiguration,\n PluginConfigurationWithLogo,\n PluginManagementService,\n PluginService,\n} from '@valtimo/plugin';\nimport {\n ProcessLinkButtonService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-plugin-configuration',\n templateUrl: './select-plugin-configuration.component.html',\n styleUrls: ['./select-plugin-configuration.component.scss'],\n})\nexport class SelectPluginConfigurationComponent implements OnInit, OnDestroy {\n readonly pluginConfigurations$: Observable<Array<PluginConfigurationWithLogo>> =\n this.stateService.modalParams$.pipe(\n switchMap(modalData =>\n combineLatest([\n modalData?.element?.type\n ? this.pluginManagementService.getAllPluginConfigurationsWithLogos(\n modalData?.element?.activityListenerType\n )\n : of(undefined),\n this.pluginService.availablePluginIds$,\n ]).pipe(\n map(([pluginConfigurations, availablePluginIds]) =>\n pluginConfigurations?.filter(configuration =>\n availablePluginIds.includes(configuration.pluginDefinition.key)\n )\n )\n )\n )\n );\n\n readonly selectedPluginConfiguration$ = this.pluginStateService.selectedPluginConfiguration$;\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginStateService: PluginStateService,\n private readonly pluginService: PluginService,\n private readonly stateService: ProcessLinkStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stepService: ProcessLinkStepService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openNextButtonSubscription();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n selected(event: {value: PluginConfiguration}): void {\n this.selectConfiguration(event.value);\n this.buttonService.enableNextButton();\n }\n\n private selectConfiguration(configuration: PluginConfiguration): void {\n this.pluginStateService.selectPluginDefinition({key: configuration.pluginDefinition.key});\n this.pluginStateService.selectPluginConfiguration(configuration);\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openNextButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.nextButtonClick$.subscribe(() => {\n this.stepService.setChoosePluginActionSteps();\n })\n );\n }\n}\n","<!--\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<ng-container *ngIf=\"pluginConfigurations$ | async as pluginConfigurations; else loading\">\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.choosePluginConfigurationDescription' | translate }}\n </p>\n <div class=\"list-container\">\n <cds-structured-list (selected)=\"selected($event)\" selection=\"true\">\n <cds-list-header>\n <cds-list-column nowrap=\"true\"></cds-list-column>\n <cds-list-column nowrap=\"true\">{{\n 'pluginManagement.labels.configurationName' | translate\n }}</cds-list-column>\n <cds-list-column>{{\n 'processLinkConfiguration.pluginDescription' | translate\n }}</cds-list-column>\n </cds-list-header>\n <cds-list-row\n *ngFor=\"let pluginConfiguration of pluginConfigurations\"\n [value]=\"pluginConfiguration\"\n >\n <cds-list-column>\n <div *ngIf=\"pluginConfiguration.pluginLogoBase64\">\n <img\n [src]=\"pluginConfiguration.pluginLogoBase64\"\n [title]=\"'title' | pluginTranslate: pluginConfiguration.pluginDefinition.key | async\"\n class=\"plugin-configuration-logo\"\n /></div\n ></cds-list-column>\n <cds-list-column>{{ pluginConfiguration.title }}</cds-list-column>\n <cds-list-column>\n {{ 'description' | pluginTranslate: pluginConfiguration.pluginDefinition.key | async }}\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n","/*\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 */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {PluginDefinition, PluginFunction, PluginManagementService} from '@valtimo/plugin';\nimport {combineLatest, Observable, of, Subscription} from 'rxjs';\nimport {switchMap, take} from 'rxjs/operators';\n\nimport {\n PluginStateService,\n ProcessLinkButtonService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-plugin-action',\n templateUrl: './select-plugin-action.component.html',\n styleUrls: ['./select-plugin-action.component.scss'],\n})\nexport class SelectPluginActionComponent implements OnInit, OnDestroy {\n public readonly pluginFunctions$: Observable<Array<PluginFunction> | undefined> = combineLatest([\n this.stateService.selectedPluginDefinition$,\n this.processLinkStateService.modalParams$,\n ]).pipe(\n switchMap(([selectedDefinition, modalParams]) =>\n selectedDefinition\n ? this.pluginManagementService.getPluginFunctions(\n selectedDefinition.key,\n modalParams.element.activityListenerType\n )\n : of(undefined)\n )\n );\n public readonly selectedPluginDefinition$: Observable<PluginDefinition> =\n this.stateService.selectedPluginDefinition$;\n public readonly selectedPluginFunction$: Observable<PluginFunction> =\n this.stateService.selectedPluginFunction$;\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginManagementService: PluginManagementService,\n private readonly stateService: PluginStateService,\n private readonly stepService: ProcessLinkStepService,\n private readonly processLinkStateService: ProcessLinkStateService\n ) {}\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openNextButtonSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFunction(pluginFunction: PluginFunction): void {\n this.stateService.selectPluginFunction(pluginFunction);\n }\n\n public selected(event: {value: string}): void {\n this.selectFunction(JSON.parse(event.value));\n this.buttonService.enableNextButton();\n }\n\n public stringify(object: object): string {\n return JSON.stringify(object);\n }\n\n private openBackButtonSubscription(): void {\n this.buttonService.backButtonClick$\n .pipe(\n switchMap(() => this.stepService.hasOneProcessLinkType$),\n take(1)\n )\n .subscribe((hasOneOption: boolean) => {\n this.stepService.setProcessLinkTypeSteps('plugin', hasOneOption);\n });\n }\n\n private openNextButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.nextButtonClick$.subscribe(() => {\n this.stepService.setConfigurePluginActionSteps();\n })\n );\n }\n}\n","<!--\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<ng-container *ngIf=\"pluginFunctions$ | async as pluginFunctions; else loading\">\n <div class=\"choose-plugin-action\" *ngIf=\"pluginFunctions?.length > 0\">\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.choosePluginActionDescription' | translate }}\n </p>\n <div class=\"action-tiles\">\n <cds-tile-group\n [multiple]=\"false\"\n *ngIf=\"{selectedPluginDefinition: selectedPluginDefinition$ | async} as obs\"\n (selected)=\"selected($event)\"\n >\n <cds-selection-tile\n *ngFor=\"let pluginFunction of pluginFunctions\"\n [value]=\"stringify(pluginFunction)\"\n [selected]=\"false\"\n >{{\n pluginFunction.key | pluginTranslate: obs.selectedPluginDefinition.key | async\n }}</cds-selection-tile\n >\n </cds-tile-group>\n </div>\n </div>\n <ng-container *ngIf=\"!pluginFunctions || pluginFunctions?.length === 0\">\n <ng-container *ngTemplateOutlet=\"noPluginFunctionsTemplate\"> </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #noPluginFunctionsTemplate>\n <p class=\"step-description\">\n {{ 'processLink.noPluginFunctions' | translate }}\n </p>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {AbstractControl, FormBuilder, FormControl, Validators} from '@angular/forms';\nimport {BehaviorSubject, combineLatest, map, Observable, startWith, Subject} from 'rxjs';\nimport {CompatiblePluginProcessLinks, ProcessLink} from '../../models';\nimport {ProcessLinkService} from '../../services';\nimport {IconService, ListItem} from 'carbon-components-angular';\nimport {Upload16} from '@carbon/icons';\nimport {CdsThemeService} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-import-plugin-configuration',\n templateUrl: './import-plugin-configuration.component.html',\n styleUrls: ['./import-plugin-configuration.component.scss'],\n})\nexport class ImportPluginConfigurationComponent {\n @Input() public set pluginActionKey(value: string) {\n this.importPluginForm.reset();\n this.fetchCompatiblePluginProcessLinks(value);\n }\n\n @Output() public readonly configurationEvent = new EventEmitter<\n ProcessLink['actionProperties']\n >();\n\n public readonly open$ = new Subject<boolean>();\n\n private readonly _compatiblePluginProcessLinksSubject$ = new BehaviorSubject<\n CompatiblePluginProcessLinks[]\n >([]);\n\n public readonly compatiblePluginProcessLinks$ =\n this._compatiblePluginProcessLinksSubject$.asObservable();\n\n public readonly importPluginForm = this.formBuilder.group({\n process: new FormControl('', Validators.required),\n version: new FormControl('', Validators.required),\n activity: new FormControl('', Validators.required),\n });\n\n public get process(): AbstractControl<string> {\n return this.importPluginForm.get('process');\n }\n\n public readonly processListItems$: Observable<ListItem[]> = combineLatest([\n this._compatiblePluginProcessLinksSubject$,\n this.process.valueChanges.pipe(startWith('')),\n ]).pipe(\n map(\n ([compatibleProcessLinks, processValue]) =>\n compatibleProcessLinks?.map(compatibleProcessLink => ({\n content: compatibleProcessLink.processDefinitionKey,\n selected: processValue === compatibleProcessLink.processDefinitionKey,\n })) || []\n )\n );\n\n public get version(): AbstractControl<string> {\n return this.importPluginForm.get('version');\n }\n\n public readonly versionListItems$: Observable<ListItem[]> = combineLatest([\n this._compatiblePluginProcessLinksSubject$,\n this.process.valueChanges.pipe(startWith('')),\n this.version.valueChanges.pipe(startWith('')),\n ]).pipe(\n map(([compatibleProcessLinks, processValue, versionValue]) =>\n !processValue\n ? []\n : compatibleProcessLinks\n .find(compatibleLinks => compatibleLinks.processDefinitionKey === processValue)\n ?.versions.sort((a, b) => Number(b.version) - Number(a.version))\n .map(versionItem => ({\n content: versionItem.version,\n selected: versionItem.version === versionValue,\n })) || []\n )\n );\n\n public get activity(): AbstractControl<string> {\n return this.importPluginForm.get('activity');\n }\n\n public readonly activityListItems$: Observable<ListItem[]> = combineLatest([\n this._compatiblePluginProcessLinksSubject$,\n this.process.valueChanges.pipe(startWith('')),\n this.version.valueChanges.pipe(startWith('')),\n this.activity.valueChanges.pipe(startWith('')),\n ]).pipe(\n map(([compatibleProcessLinks, processValue, versionValue, activityValue]) =>\n !processValue || !versionValue\n ? []\n : compatibleProcessLinks\n .find(compatibleLinks => compatibleLinks.processDefinitionKey === processValue)\n .versions.find(versionItem => versionItem.version === versionValue)\n .processLinks.map(processLinkItem => ({\n content: processLinkItem.activityId,\n selected: processLinkItem.activityId === activityValue,\n }))\n )\n );\n\n public readonly toggletipTheme$ = this.cdsThemeService.toggletipTheme$;\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly processLinkService: ProcessLinkService,\n private readonly iconService: IconService,\n private readonly cdsThemeService: CdsThemeService\n ) {\n this.iconService.register(Upload16);\n }\n\n public onSubmit(): void {\n this.configurationEvent.emit(\n this._compatiblePluginProcessLinksSubject$\n .getValue()\n .find(\n compatiblePluginProcessLinks =>\n compatiblePluginProcessLinks.processDefinitionKey === this.process.value\n )\n .versions.find(versionItem => versionItem.version === this.version.value)\n .processLinks.find(processLinkItem => processLinkItem.activityId === this.activity.value)\n .actionProperties\n );\n\n // needed to reliably trigger toggle tip closure\n this.open$.next(true);\n setTimeout(() => this.open$.next(false));\n\n this.importPluginForm.reset();\n }\n\n private fetchCompatiblePluginProcessLinks(pluginActionKey: string): void {\n this.processLinkService\n .getCompatiblePluginProcessLinks(pluginActionKey)\n .subscribe(res => this._compatiblePluginProcessLinksSubject$.next(res));\n }\n\n public processSelected(event: {item: ListItem}): void {\n this.process.setValue(event?.item?.content);\n this.version.setValue('');\n this.activity.setValue('');\n }\n\n public versionSelected(event: {item: ListItem}): void {\n this.version.setValue(event?.item?.content);\n this.activity.setValue('');\n }\n\n public activitySelected(event: {item: ListItem}): void {\n this.activity.setValue(event?.item?.content);\n }\n}\n","<!--\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<cds-toggletip align=\"right-bottom\" [autoAlign]=\"true\" [isOpen]=\"open$ | async\">\n <button\n class=\"process-link-configuration-import-button\"\n [disabled]=\"((compatiblePluginProcessLinks$ | async) || []).length === 0\"\n cdsToggletipButton\n [removeClassnames]=\"['cds--toggletip-button']\"\n cdsButton=\"ghost\"\n >\n {{ 'processLinkConfiguration.importConfiguration' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n\n <div\n cdsToggletipContent\n [attr.data-carbon-theme]=\"toggletipTheme$ | async\"\n class=\"process-link-configuration-select\"\n >\n <cds-dropdown\n [label]=\"'processLinkConfiguration.process' | translate\"\n [placeholder]=\"'processLinkConfiguration.selectProcess' | translate\"\n (selected)=\"processSelected($event)\"\n [appendInline]=\"true\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown-list\n [items]=\"processListItems$ | async\"\n onclick=\"event.stopPropagation()\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-dropdown\n [label]=\"'processLinkConfiguration.version' | translate\"\n [placeholder]=\"'processLinkConfiguration.selectVersion' | translate\"\n [disabled]=\"!process.value\"\n (selected)=\"versionSelected($event)\"\n [appendInline]=\"true\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown-list\n [items]=\"versionListItems$ | async\"\n onclick=\"event.stopPropagation()\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-dropdown\n [label]=\"'processLinkConfiguration.activity' | translate\"\n [placeholder]=\"'processLinkConfiguration.selectActivity' | translate\"\n [disabled]=\"!process.value || !version.value\"\n (selected)=\"activitySelected($event)\"\n [appendInline]=\"true\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown-list\n [items]=\"activityListItems$ | async\"\n onclick=\"event.stopPropagation()\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <button cdsButton [disabled]=\"!importPluginForm.valid\" (click)=\"onSubmit()\" [cdsLayer]=\"1\">\n {{ 'processLinkConfiguration.importConfiguration' | translate }}\n </button>\n </div>\n</cds-toggletip>\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {\n PluginStateService,\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {PluginConfiguration, PluginConfigurationData} from '@valtimo/plugin';\nimport {\n PluginProcessLinkCreateDto,\n PluginProcessLinkUpdateDto,\n ProcessLinkEditMode,\n ProcessLink,\n} from '../../models';\n\n@Component({\n standalone: false,\n selector: 'valtimo-plugin-action-configuration',\n templateUrl: './plugin-action-configuration.component.html',\n styleUrls: ['./plugin-action-configuration.component.scss'],\n})\nexport class PluginActionConfigurationComponent implements OnInit, OnDestroy {\n @Input() selectedPluginConfiguration$: Observable<PluginConfiguration>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> =\n new EventEmitter<PluginConfigurationData>();\n\n public readonly pluginDefinitionKey$ = this.pluginStateService.pluginDefinitionKey$;\n public readonly functionKey$ = this.pluginStateService.functionKey$;\n public readonly save$ = this.pluginStateService.save$;\n public readonly saving$ = this.stateService.saving$;\n\n private readonly _prefillConfigurationSubject$ = new BehaviorSubject<\n ProcessLink['actionProperties'] | null\n >(null);\n private readonly _prefillConfiguration$ = this.stateService.selectedProcessLink$.pipe(\n map(processLink => (processLink ? processLink?.actionProperties : undefined))\n );\n public readonly prefillConfiguration$ = combineLatest([\n this._prefillConfigurationSubject$,\n this._prefillConfiguration$,\n ]).pipe(\n map(\n ([prefillConfigurationSubjectValue, prefillConfiguration]) =>\n prefillConfigurationSubjectValue || prefillConfiguration\n )\n );\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly pluginStateService: PluginStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stepService: ProcessLinkStepService,\n private readonly processLinkService: ProcessLinkService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n onValid(valid: boolean): void {\n if (valid) this.buttonService.enableSaveButton();\n else this.buttonService.disableSaveButton();\n }\n\n onConfiguration(configuration: PluginConfigurationData): void {\n this.stateService.startSaving();\n\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink(configuration);\n } else {\n this.saveNewProcessLink(configuration);\n }\n });\n }\n\n public onImportConfiguration(configuration: ProcessLink['actionProperties']): void {\n this._prefillConfigurationSubject$.next(configuration);\n }\n\n private updateProcessLink(configuration: PluginConfigurationData): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n const updateProcessLinkRequest: PluginProcessLinkUpdateDto = {\n id: selectedProcessLink.id,\n pluginConfigurationId: selectedProcessLink.pluginConfigurationId ?? '',\n pluginActionDefinitionKey: selectedProcessLink.pluginActionDefinitionKey ?? '',\n actionProperties: configuration,\n activityId: selectedProcessLink.activityId,\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkUpdateEvent(updateProcessLinkRequest);\n return;\n }\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(configuration: PluginConfigurationData): void {\n combineLatest([\n this.stateService.modalParams$,\n this.pluginStateService.selectedPluginConfiguration$,\n this.pluginStateService.selectedPluginFunction$,\n this.stateService.selectedProcessLinkTypeId$,\n ])\n .pipe(take(1))\n .subscribe(\n ([modalData, selectedConfiguration, selectedFunction, selectedProcessLinkTypeId]) => {\n const processLinkRequest: PluginProcessLinkCreateDto = {\n actionProperties: configuration,\n activityId: modalData?.element?.id,\n activityType: modalData?.element?.activityListenerType ?? '',\n pluginConfigurationId: selectedConfiguration.id,\n processDefinitionId: modalData?.processDefinitionId,\n pluginActionDefinitionKey: selectedFunction.key,\n processLinkType: selectedProcessLinkTypeId,\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkCreateEvent(processLinkRequest);\n return;\n }\n\n this.processLinkService.saveProcessLink(processLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n }\n );\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stepService.setChoosePluginActionSteps();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.pluginStateService.save();\n })\n );\n }\n}\n","<!--\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<valtimo-import-plugin-configuration\n [pluginActionKey]=\"functionKey$ | async\"\n (configurationEvent)=\"onImportConfiguration($event)\"\n></valtimo-import-plugin-configuration>\n\n<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n [functionKey]=\"functionKey$ | async\"\n [save$]=\"save$\"\n [disabled$]=\"saving$\"\n [selectedPluginConfiguration$]=\"selectedPluginConfiguration$\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n type=\"function\"\n></valtimo-plugin-configuration-container>\n","/*\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\nimport {\n Component,\n ElementRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\n\nimport BpmnViewer from 'bpmn-js';\nimport {ActivatedRoute} from '@angular/router';\nimport {combineLatest} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {PageTitleService} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-form-link-process-diagram',\n templateUrl: './form-link-process-diagram.component.html',\n styleUrls: ['./form-link-process-diagram.component.scss'],\n})\nexport class FormLinkProcessDiagramComponent implements OnInit, OnDestroy {\n private bpmnViewer: BpmnViewer;\n\n @ViewChild('ref') public el: ElementRef;\n @Output() public bpmnElementModalOpen: EventEmitter<any> = new EventEmitter();\n @Output() public bpmnElementModalClose: EventEmitter<any> = new EventEmitter();\n\n public processDefinitionKey: string;\n public processDefinitions: ProcessDefinition[];\n public processDiagram: any;\n public processDefinition: ProcessDefinition;\n public processDefinitionVersions: ProcessDefinition[];\n public version: number;\n private callbacksAdded = false;\n private processDefinitionId!: string;\n\n constructor(\n private readonly processService: ProcessService,\n private readonly route: ActivatedRoute,\n private readonly pageTitleService: PageTitleService\n ) {}\n\n ngOnInit() {\n this.pageTitleService.disableReset();\n combineLatest([this.route.queryParams, this.processService.getProcessDefinitions()])\n .pipe(map(([queryParams, processDefinitions]) => ({queryParams, processDefinitions})))\n .subscribe(response => {\n this.processDefinitions = response.processDefinitions;\n if (response.queryParams.process) {\n this.processDefinitionKey = response.queryParams.process;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n this.bpmnElementModalOpen.emit({\n element: {\n id: 'start-event',\n type: 'bpmn:StartEvent',\n },\n processDefinitionKey: this.processDefinitionKey,\n processDefinitionId: this.processDefinitionId,\n });\n }\n if (!this.processDefinitionKey && response.processDefinitions.length !== 0) {\n this.processDefinitionKey = response.processDefinitions[0].key;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n }\n });\n this.bpmnViewer = new BpmnViewer({});\n this.bpmnViewer.on('import.done', ({error}: any) => {\n if (!error) {\n const canvas = this.bpmnViewer.get('canvas') as any;\n const eventBus = this.bpmnViewer.get('eventBus') as any;\n canvas.zoom('fit-viewport', 'auto');\n\n if (this.processDefinitionVersions && !this.callbacksAdded) {\n eventBus.on('element.click', e => {\n let activityListenerType = e.element.businessObject.$type;\n if (activityListenerType === 'bpmn:UserTask') {\n activityListenerType += ':create';\n } else {\n activityListenerType += ':start';\n }\n\n this.bpmnElementModalOpen.emit({\n element: {\n id: e.element.businessObject.id,\n type: e.element.businessObject.$type,\n activityListenerType,\n name: e.element?.businessObject?.name,\n },\n processDefinitionKey: this.processDefinitionKey,\n processDefinitionId: this.processDefinitionId,\n });\n });\n this.callbacksAdded = true;\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.bpmnElementModalClose.emit();\n if (this.bpmnViewer) {\n this.bpmnViewer.destroy();\n }\n this.pageTitleService.enableReset();\n }\n\n public loadProcessDefinition(processDefinitionKey: string): void {\n this.processService\n .getProcessDefinition(processDefinitionKey)\n .subscribe((processDefinition: ProcessDefinition) => {\n this.processDefinitionId = processDefinition.id;\n this.version = processDefinition.version;\n this.loadProcessDefinitionXml(processDefinition.id);\n });\n }\n\n public loadProcessDefinitionVersions(processDefinitionKey: string): void {\n this.processService\n .getProcessDefinitionVersions(processDefinitionKey)\n .subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.processDefinitionVersions = processDefinitionVersions;\n });\n }\n\n public loadProcessDefinitionFromKey(processDefinitionKey: string): void {\n this.loadProcessDefinitionVersions(processDefinitionKey);\n this.loadProcessDefinition(processDefinitionKey);\n }\n\n public loadProcessDefinitionXml(processDefinitionId: string): void {\n this.processService.getProcessDefinitionXml(processDefinitionId).subscribe(response => {\n this.processDiagram = response;\n this.bpmnViewer.importXML(this.processDiagram.bpmn20Xml);\n this.bpmnViewer.attachTo(this.el.nativeElement);\n });\n }\n\n public setProcessDefinitionKey(processDefinitionKey: string): void {\n this.processDefinitionKey = processDefinitionKey;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n }\n\n public setProcessDefinitionVersion(version: string): void {\n const processDefinitionId = this.processDefinitionVersions.find(\n definition => definition.version === +version\n )?.id;\n\n if (processDefinitionId) {\n this.processDefinitionId = processDefinitionId;\n this.loadProcessDefinitionXml(this.processDefinitionId);\n }\n\n this.version = +version;\n }\n}\n","<!--\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 class=\"container-fluid\">\n <div class=\"row p-4 bg-white\">\n <div class=\"col\">\n <div #ref class=\"diagram-container\"></div>\n </div>\n </div>\n</div>\n<div class=\"p-4 text-center legenda-holder\">\n <span>Click on a User Task to specify a form definition for that User Task.</span>\n</div>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"form-link-dossier-actions\">\n <cds-select [label]=\"'Process'\" (change)=\"setProcessDefinitionKey($event.target.value)\"\n ><option\n *ngFor=\"let processDefinition of processDefinitions\"\n [value]=\"processDefinition.key\"\n [selected]=\"processDefinitionKey === processDefinition.key\"\n >\n {{ processDefinition.name }}\n </option>\n </cds-select>\n <cds-select [label]=\"'Version'\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option\n *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\"\n >\n {{ processDefinitionVersion.version }}\n </option>\n </cds-select>\n </div>\n </ng-template>\n</ng-container>\n","/*\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\nimport {Component, Inject, OnDestroy, Optional} from '@angular/core';\nimport {ProcessLinkStateService} from '../../services';\nimport {FormCustomComponentConfig, ProcessLinkType} from '../../models';\nimport {FORM_CUSTOM_COMPONENT_TOKEN} from '../../constants';\nimport {map, Subscription} from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'valtimo-choose-process-link-type',\n templateUrl: './choose-process-link-type.component.html',\n styleUrls: ['./choose-process-link-type.component.scss'],\n})\nexport class ChooseProcessLinkTypeComponent {\n public readonly availableProcessLinkTypes$ =\n this.processLinkStateService.availableProcessLinkTypes$;\n\n constructor(private readonly processLinkStateService: ProcessLinkStateService) {}\n\n selectProcessLinkType(processLinkTypeId: string): void {\n this.processLinkStateService.selectProcessLinkType(processLinkTypeId);\n }\n}\n","<!--\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<ng-container\n *ngIf=\"{\n availableProcessLinkTypes: availableProcessLinkTypes$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseProcessLinkTypeDescription' | translate }}\n </p>\n <div class=\"process-link-grid\">\n <div\n class=\"process-link-item\"\n *ngFor=\"let availableProcessLinkType of obs.availableProcessLinkTypes\"\n >\n <ng-container *ngIf=\"availableProcessLinkType.processLinkType as processLinkTypeId\">\n <button\n (click)=\"selectProcessLinkType(processLinkTypeId)\"\n cdsButton=\"secondary\"\n size=\"xl\"\n class=\"process-link-type-button\"\n [disabled]=\"!availableProcessLinkType.enabled\"\n [vTooltip]=\"'processLinkTypeDisabledTooltip.' + processLinkTypeId | translate\"\n [onBottom]=\"true\"\n [tooltipDisabled]=\"availableProcessLinkType.enabled\"\n >\n {{ 'processLinkType.' + processLinkTypeId | translate }}\n <svg\n *ngIf=\"processLinkTypeId === 'plugin'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"link\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form-flow'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"flow--data\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'ui-component'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n </button>\n </ng-container>\n </div>\n </div>\n</ng-container>\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ListItem} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {FormDefinitionListItem, FormDisplayType, FormSize} from '../../models';\nimport {ProcessLinkButtonService, ProcessLinkStateService} from '../../services';\nimport {MultiInputValues} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-form-display-configuration',\n templateUrl: './form-display-configuration.component.html',\n})\nexport class FormDisplayConfigurationComponent implements OnInit, OnDestroy {\n @Input() public selectedFormDefinition: FormDefinitionListItem;\n\n @Output() public formDisplayValue = new EventEmitter<string>();\n @Output() public formSizeValue = new EventEmitter<string>();\n @Output() public subtitlesValue = new EventEmitter<string[]>();\n\n public readonly formDisplayValue$ = new BehaviorSubject<FormDisplayType | null>(null);\n public readonly formSizeValue$ = new BehaviorSubject<FormSize | null>(null);\n private readonly _subtitles$ = new BehaviorSubject<string[]>([]);\n public subtitles$: Observable<MultiInputValues> = this._subtitles$.pipe(\n map(subtitles => subtitles.map(subtitle => ({value: subtitle})))\n );\n public readonly disableFormSizeInput$ = new BehaviorSubject<boolean>(true);\n public readonly saving$ = this.stateService.saving$;\n public readonly isUserTask$ = new BehaviorSubject<boolean>(false);\n\n private readonly _DISPLAY_TYPE_OPTIONS: FormDisplayType[] = ['modal', 'panel'];\n private readonly _FORM_SIZE_OPTIONS: FormSize[] = ['extraSmall', 'small', 'medium', 'large'];\n private readonly _subscriptions = new Subscription();\n\n public readonly formDisplayTypeListItems$: Observable<ListItem[]> = combineLatest([\n this.formDisplayValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([formDisplayValue]) =>\n this._DISPLAY_TYPE_OPTIONS.map((key: string) => ({\n content: this.translateService.instant(`processLinkSteps.displayType.options.${key}`),\n key: key,\n selected: this.formDisplayValue$.getValue() === key,\n }))\n )\n );\n\n public readonly formSizeListItems$: Observable<ListItem[]> = combineLatest([\n this.formSizeValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([formSizeValue]) =>\n this._FORM_SIZE_OPTIONS.map((key: string) => ({\n content: this.translateService.instant(`processLinkSteps.formSize.options.${key}`),\n key: key,\n selected: this.formSizeValue$.getValue() === key,\n }))\n )\n );\n\n constructor(\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stateService: ProcessLinkStateService,\n private readonly translateService: TranslateService\n ) {}\n\n public ngOnInit(): void {\n this._subscriptions.add(\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLink$,\n ]).subscribe(([modalParams, selectedProcessLink]) => {\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n\n if (selectedProcessLink) {\n if (selectedProcessLink.formDisplayType) this.disableFormSizeInput$.next(false);\n if (selectedProcessLink.activityType.includes('bpmn:UserTask'))\n this.isUserTask$.next(true);\n this.formDisplayValue$.next(selectedProcessLink.formDisplayType ?? null);\n this.formSizeValue$.next(selectedProcessLink.formSize ?? null);\n this._subtitles$.next(selectedProcessLink.subtitles ?? []);\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFormDisplayType(event: ListItem): void {\n this.updateFormDisplayType(event?.key);\n this.enableSaveButtonWhenValid();\n }\n\n public selectFormSize(event: ListItem): void {\n this.updateFormSize(event?.key);\n this.enableSaveButtonWhenValid();\n }\n\n public onSubtitlesChange(subtitles: string[]): void {\n this.subtitlesValue.emit(subtitles);\n }\n\n private updateFormDisplayType(formDisplayType): void {\n formDisplayType ? this.disableFormSizeInput$.next(false) : this.resetFormSize();\n this.formDisplayValue$.next(formDisplayType);\n this.formDisplayValue.emit(formDisplayType);\n }\n\n private updateFormSize(formSize): void {\n this.formSizeValue$.next(formSize);\n this.formSizeValue.emit(formSize);\n }\n\n private resetFormSize(): void {\n this.disableFormSizeInput$.next(true);\n this.updateFormSize(null);\n }\n\n private enableSaveButtonWhenValid(): void {\n if (\n this.selectedFormDefinition &&\n this.formDisplayValue$.getValue() &&\n this.formSizeValue$.getValue()\n )\n this.buttonService.enableSaveButton();\n else this.buttonService.disableSaveButton();\n }\n}\n","<!--\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<ng-container\n *ngIf=\"{\n formDisplayValue: formDisplayValue$ | async,\n formDisplayTypeListItems: formDisplayTypeListItems$ | async,\n formSizeListItems: formSizeListItems$ | async,\n disableFormSizeInput: disableFormSizeInput$ | async,\n subtitles: subtitles$ | async,\n isUserTask: isUserTask$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n @if (obs.isUserTask) {\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.displayType.placeholder' | translate\"\n [label]=\"'processLinkSteps.displayType.label' | translate\"\n [disabled]=\"obs.saving\"\n (selected)=\"selectFormDisplayType($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formDisplayTypeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n\n <br />\n\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.formSize.placeholder' | translate\"\n [label]=\"'processLinkSteps.formSize.label' | translate\"\n [disabled]=\"obs.disableFormSizeInput || obs.saving\"\n (selected)=\"selectFormSize($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formSizeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n\n <br />\n\n <valtimo-carbon-multi-input\n type=\"value\"\n titleTranslationKey=\"processLinkSteps.subtitles\"\n addRowTranslationKey=\"processLinkSteps.addSubtitle\"\n [disabled]=\"obs.saving\"\n [fullWidth]=\"true\"\n [minimumAmountOfRows]=\"0\"\n [initialAmountOfRows]=\"0\"\n [defaultValues]=\"obs.subtitles\"\n (valueChange)=\"onSubtitlesChange($event)\"\n ></valtimo-carbon-multi-input>\n }\n</ng-container>\n","/*\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 */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {CaseManagementParams, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {FormDefinitionOption, FormService} from '@valtimo/form';\nimport {BehaviorSubject, combineLatest, map, mergeMap, Observable, Subscription, tap} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {\n FormDefinitionListItem,\n FormDisplayType,\n FormProcessLinkUpdateRequestDto,\n FormSize,\n ProcessLinkEditMode,\n} from '../../models';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-form',\n templateUrl: './select-form.component.html',\n styleUrls: ['./select-form.component.scss'],\n})\nexport class SelectFormComponent implements OnInit, OnDestroy {\n public formDisplayValue!: FormDisplayType;\n public formSizeValue!: FormSize;\n public subtitlesValue: string[] = [];\n public selectedFormDefinition!: FormDefinitionListItem;\n\n public readonly saving$ = this.stateService.saving$;\n public readonly caseDefinitionId$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n\n private readonly formDefinitions$: Observable<Array<FormDefinitionOption>> =\n this.caseDefinitionId$.pipe(\n mergeMap(caseDefinitionId => {\n if (!!caseDefinitionId) {\n return this.formService.getAllFormDefinitionsForCaseDefinition(\n caseDefinitionId?.caseDefinitionKey ?? '',\n caseDefinitionId?.caseDefinitionVersionTag ?? ''\n );\n }\n return this.formService.getAllUnlinkedFormDefinitions();\n })\n );\n\n public readonly formDefinitionListItems$: Observable<Array<FormDefinitionListItem>> =\n combineLatest([this.stateService.selectedProcessLink$, this.formDefinitions$]).pipe(\n map(([selectedProcessLink, formDefinitions]) =>\n formDefinitions.map(definition => ({\n content: definition.name,\n id: definition.id,\n selected: selectedProcessLink\n ? selectedProcessLink.formDefinitionId === definition.id\n : false,\n }))\n ),\n tap(formDefinitionListItems => {\n const selectedItem = formDefinitionListItems.find(item => item.selected);\n\n if (selectedItem) {\n this.selectFormDefinition(selectedItem);\n }\n })\n );\n\n private _subscriptions = new Subscription();\n private isUserTask$ = new BehaviorSubject<boolean>(false);\n\n private readonly _DEFAULT_FORM_DISPLAY_TYPE: FormDisplayType = 'panel';\n private readonly _DEFAULT_FORM_DISPLAY_SIZE: FormSize = 'medium';\n\n constructor(\n private readonly formService: FormService,\n private readonly stateService: ProcessLinkStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n this._subscriptions.add(\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.modalParams$,\n ]).subscribe(([selectedProcessLink, modalParams]) => {\n if (selectedProcessLink) {\n this.formDisplayValue = selectedProcessLink.formDisplayType;\n this.formSizeValue = selectedProcessLink.formSize;\n }\n\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFormDefinition(formDefinition: FormDefinitionListItem): void {\n this.selectedFormDefinition = formDefinition?.id ? formDefinition : null;\n\n if (this.selectedFormDefinition) this.buttonService.enableSaveButton();\n else this.buttonService.disableSaveButton();\n }\n\n public selectedFormDisplayValue(formDisplay: FormDisplayType): void {\n this.formDisplayValue = formDisplay;\n }\n\n public selectedFormSizeValue(formSize: FormSize): void {\n this.formSizeValue = formSize;\n }\n\n public selectedSubtitlesValue(subtitles: string[]): void {\n this.subtitlesValue = subtitles;\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveProcessLink();\n })\n );\n }\n\n private saveProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink();\n } else {\n this.saveNewProcessLink();\n }\n });\n }\n\n private updateProcessLink(): void {\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.viewModelEnabled$,\n this.isUserTask$,\n ])\n .pipe(take(1))\n .subscribe(([selectedProcessLink, viewModelEnabled, isUserTask]) => {\n const updateProcessLinkRequest: FormProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n formDefinitionId: this.selectedFormDefinition.id,\n activityId: selectedProcessLink.activityId,\n viewModelEnabled,\n ...(isUserTask && {\n formDisplayType: this.formDisplayValue || this._DEFAULT_FORM_DISPLAY_TYPE,\n }),\n ...(isUserTask && {formSize: this.formSizeValue || this._DEFAULT_FORM_DISPLAY_TYPE}),\n ...(isUserTask && {subtitles: this.subtitlesValue}),\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkUpdateEvent(updateProcessLinkRequest);\n return;\n }\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe({\n next: () => {\n this.stateService.closeModal();\n },\n error: () => {\n this.stateService.stopSaving();\n },\n });\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$,\n this.stateService.viewModelEnabled$,\n this.isUserTask$,\n ])\n .pipe(take(1))\n .subscribe(([modalParams, processLinkTypeId, viewModelEnabled, isUserTask]) => {\n const createRequest = {\n formDefinitionId: this.selectedFormDefinition.id,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n viewModelEnabled,\n ...(isUserTask && {\n formDisplayType: this.formDisplayValue || this._DEFAULT_FORM_DISPLAY_TYPE,\n }),\n ...(isUserTask && {\n formSize: this.formSizeValue || this._DEFAULT_FORM_DISPLAY_SIZE,\n }),\n ...(isUserTask && {\n subtitles: this.subtitlesValue,\n }),\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkCreateEvent(createRequest);\n return;\n }\n\n this.processLinkService.saveProcessLink(createRequest).subscribe({\n next: () => {\n this.stateService.closeModal();\n },\n error: () => {\n this.stateService.stopSaving();\n },\n });\n });\n }\n}\n","<!--\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<ng-container\n *ngIf=\"{\n formDefinitions: formDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormDescription' | translate }}\n </p>\n <div class=\"select-form\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formDefinitions || obs.saving\"\n [items]=\"obs.formDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormDefinition($event)\"\n [label]=\"'processLinkSteps.selectForm' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormDefinition\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n (subtitlesValue)=\"selectedSubtitlesValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n","/*\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 */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {CaseManagementParams, getCaseManagementRouteParams, Page} from '@valtimo/shared';\nimport {FormFlowService, ListFormFlowDefinition} from '@valtimo/form-flow-management';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, tap} from 'rxjs';\nimport {switchMap, take} from 'rxjs/operators';\n\nimport {\n FormDefinitionListItem,\n FormDisplayType,\n FormFlowProcessLinkCreateRequestDto,\n FormFlowProcessLinkUpdateRequestDto,\n FormSize,\n ProcessLinkEditMode,\n} from '../../models';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-form-flow',\n templateUrl: './select-form-flow.component.html',\n styleUrls: ['./select-form-flow.component.scss'],\n})\nexport class SelectFormFlowComponent implements OnInit, OnDestroy {\n public formDisplayValue!: FormDisplayType;\n public formSizeValue!: FormSize;\n public selectedFormFlowDefinitionId: string;\n public subtitlesValue: string[] = [];\n public readonly saving$ = this.stateService.saving$;\n private readonly formFlowDefinitions$: Observable<ListFormFlowDefinition[]> =\n getCaseManagementRouteParams(this.route).pipe(\n switchMap((params: CaseManagementParams | undefined) =>\n this.formFlowService.getFormFlowDefinitions(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? ''\n )\n ),\n map((formFlowDefinitions: Page<ListFormFlowDefinition>) => formFlowDefinitions.content)\n );\n\n public readonly formFlowDefinitionListItems$: Observable<Array<FormDefinitionListItem>> =\n combineLatest([this.stateService.selectedProcessLink$, this.formFlowDefinitions$]).pipe(\n map(([selectedProcessLink, formFlowDefinitions]) =>\n formFlowDefinitions.map(definition => ({\n content: definition.key,\n id: definition.key,\n selected: selectedProcessLink\n ? selectedProcessLink.formFlowDefinitionKey === definition.key\n : false,\n }))\n ),\n tap(formFlowDefinitionListItems => {\n const selectedItem = formFlowDefinitionListItems.find(item => item.selected);\n\n if (selectedItem) {\n this.selectFormFlowDefinition(selectedItem);\n }\n })\n );\n\n private _subscriptions = new Subscription();\n private isUserTask$ = new BehaviorSubject<boolean>(false);\n\n private readonly _DEFAULT_FORM_DISPLAY_TYPE: FormDisplayType = 'panel';\n private readonly _DEFAULT_FORM_DISPLAY_SIZE: FormSize = 'medium';\n\n constructor(\n private readonly formFlowService: FormFlowService,\n private readonly stateService: ProcessLinkStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly route: ActivatedRoute\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n this._subscriptions.add(\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.modalParams$,\n ]).subscribe(([selectedProcessLink, modalParams]) => {\n if (selectedProcessLink) {\n this.formDisplayValue = selectedProcessLink.formDisplayType;\n this.formSizeValue = selectedProcessLink.formSize;\n }\n\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n })\n );\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectedFormDisplayValue(formDisplay: FormDisplayType): void {\n this.formDisplayValue = formDisplay;\n }\n\n public selectedFormSizeValue(formSize: FormSize): void {\n this.formSizeValue = formSize;\n }\n\n public selectFormFlowDefinition(formFlowDefinition: any): void {\n if (!formFlowDefinition) return;\n this.selectedFormFlowDefinitionId = formFlowDefinition.id;\n\n if (this.selectedFormFlowDefinitionId) this.buttonService.enableSaveButton();\n else this.buttonService.disableSaveButton();\n }\n\n public selectedSubtitlesValue(subtitles: string[]): void {\n this.subtitlesValue = subtitles;\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveFormFlowLink();\n })\n );\n }\n\n private saveFormFlowLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) this.updateProcessLink();\n else this.saveNewProcessLink();\n });\n }\n\n private updateProcessLink(): void {\n combineLatest([this.stateService.selectedProcessLink$, this.isUserTask$])\n .pipe(take(1))\n .subscribe(([selectedProcessLink, isUserTask]) => {\n const updateProcessLinkRequest: FormFlowProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n formFlowDefinitionId: this.selectedFormFlowDefinitionId,\n activityId: selectedProcessLink.activityId,\n ...(isUserTask && {\n formDisplayType: this.formDisplayValue || this._DEFAULT_FORM_DISPLAY_TYPE,\n }),\n ...(isUserTask && {formSize: this.formSizeValue || this._DEFAULT_FORM_DISPLAY_SIZE}),\n ...(isUserTask && {subtitles: this.subtitlesValue}),\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkUpdateEvent(updateProcessLinkRequest);\n return;\n }\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe({\n next: () => {\n this.stateService.closeModal();\n },\n error: () => {\n this.stateService.stopSaving();\n },\n });\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$,\n this.isUserTask$,\n ])\n .pipe(take(1))\n .subscribe(([modalParams, processLinkTypeId, isUserTask]) => {\n const createRequest = {\n formFlowDefinitionKey: this.selectedFormFlowDefinitionId,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n ...(isUserTask && {\n formDisplayType: this.formDisplayValue || this._DEFAULT_FORM_DISPLAY_TYPE,\n }),\n ...(isUserTask && {formSize: this.formSizeValue || this._DEFAULT_FORM_DISPLAY_SIZE}),\n ...(isUserTask && {subtitles: this.subtitlesValue}),\n } as FormFlowProcessLinkCreateRequestDto;\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkCreateEvent(createRequest);\n return;\n }\n\n this.processLinkService.saveProcessLink(createRequest).subscribe({\n next: () => {\n this.stateService.closeModal();\n },\n error: () => {\n this.stateService.stopSaving();\n },\n });\n });\n }\n}\n","<!--\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<ng-container\n *ngIf=\"{\n formFlowDefinitions: formFlowDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormFlowDescription' | translate }}\n </p>\n\n <div class=\"select-form-flow\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formFlowDefinitions || obs.saving\"\n [items]=\"obs.formFlowDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormFlowDefinition($event)\"\n [label]=\"'processLinkSteps.selectFormFlow' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormFlowDefinitionId\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n (subtitlesValue)=\"selectedSubtitlesValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n","/*\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\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {\n FormCustomComponentConfig,\n ProcessLinkEditMode,\n UIComponentProcessLinkUpdateRequestDto,\n} from '../../models';\nimport {ListItem} from 'carbon-components-angular';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\nimport {FORM_CUSTOM_COMPONENT_TOKEN} from '../../constants';\n\n@Component({\n standalone: false,\n selector: 'valtimo-select-ui-component',\n templateUrl: './select-ui-component.component.html',\n styleUrls: ['./select-ui-component.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectUIComponentComponent implements OnInit, OnDestroy {\n private readonly _formCustomComponentConfig$ = new BehaviorSubject<\n FormCustomComponentConfig | {}\n >({});\n\n public readonly formCustomComponentListItems$: Observable<Array<ListItem>> = combineLatest([\n this.stateService.selectedProcessLink$,\n this._formCustomComponentConfig$,\n ]).pipe(\n map(([selectedProcessLink, formCustomComponentConfigs]) =>\n Object.keys(formCustomComponentConfigs).map(key => ({\n content: key,\n selected: selectedProcessLink ? selectedProcessLink?.componentKey === key : false,\n }))\n ),\n tap(formCustomComponentListItems => {\n const selectedItem = formCustomComponentListItems.find(item => item.selected);\n if (selectedItem) {\n this.selectCustomComponent(selectedItem);\n }\n })\n );\n\n private readonly _subscriptions = new Subscription();\n\n private _selectedCustomComponent: ListItem;\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly processLinkService: ProcessLinkService,\n @Optional()\n @Inject(FORM_CUSTOM_COMPONENT_TOKEN)\n private readonly formCustomComponentConfig: FormCustomComponentConfig\n ) {\n this._formCustomComponentConfig$.next(this.formCustomComponentConfig);\n }\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectCustomComponent(selectedCustomComponent: ListItem): void {\n this._selectedCustomComponent = selectedCustomComponent;\n this._selectedCustomComponent?.content\n ? this.buttonService.enableSaveButton()\n : this.buttonService.disableSaveButton();\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveProcessLink();\n })\n );\n }\n\n private saveProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n selectedProcessLink ? this.updateProcessLink() : this.saveNewProcessLink();\n });\n }\n\n private updateProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n const updateRequest: UIComponentProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n componentKey: this._selectedCustomComponent.content,\n activityId: selectedProcessLink.activityId,\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkUpdateEvent(updateRequest);\n return;\n }\n\n this.processLinkService.updateProcessLink(updateRequest).subscribe({\n next: () => this.stateService.closeModal(),\n error: () => this.stateService.stopSaving(),\n });\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([this.stateService.modalParams$, this.stateService.selectedProcessLinkTypeId$])\n .pipe(\n take(1),\n switchMap(([modalParams, processLinkTypeId]) => {\n const createRequest = {\n componentKey: this._selectedCustomComponent.content,\n activityType: modalParams.element.activityListenerType || '',\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n };\n\n if (this.stateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.stateService.sendProcessLinkCreateEvent(createRequest);\n return [];\n }\n\n return this.processLinkService.saveProcessLink(createRequest);\n })\n )\n .subscribe({\n next: () => this.stateService.closeModal(),\n error: () => this.stateService.stopSaving(),\n });\n }\n}\n","<!--\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<cds-combo-box\n [dropUp]=\"false\"\n formControlName=\"contentKey\"\n [items]=\"formCustomComponentListItems$ | async\"\n itemValueKey=\"contentKey\"\n [label]=\"'processLinkSteps.uiComponent' | translate\"\n (selected)=\"selectCustomComponent($event)\"\n>\n <cds-dropdown-list></cds-dropdown-list>\n</cds-combo-box>\n","/*\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\nimport {Component} from '@angular/core';\nimport {\n PluginStateService,\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/shared';\nimport {ProcessLinkEditMode} from '../../models';\n\n@Component({\n standalone: false,\n selector: 'valtimo-process-link-modal',\n templateUrl: './process-link-modal.component.html',\n styleUrls: ['./process-link-modal.component.scss'],\n})\nexport class ProcessLinkModalComponent {\n public readonly showModal$ = this.stateService.showModal$;\n public readonly processStepName$ = this.stateService.elementName$;\n public readonly steps$ = this.stepService.steps$;\n public readonly currentStepIndex$ = this.stepService.currentStepIndex$;\n public readonly currentStepId$ = this.stepService.currentStepId$;\n public readonly showSaveButton$ = this.buttonService.showSaveButton$;\n public readonly enableSaveButton$ = this.buttonService.enableSaveButton$;\n public readonly showBackButton$ = this.buttonService.showBackButton$;\n public readonly showNextButton$ = this.buttonService.showNextButton$;\n public readonly enableNextButton$ = this.buttonService.enableNextButton$;\n public readonly hideProgressIndicator$ = this.stateService.hideProgressIndicator$;\n public readonly saving$ = this.stateService.saving$;\n public readonly typeOfSelectedProcessLink$ = this.stateService.typeOfSelectedProcessLink$;\n public readonly viewModelEnabled$ = this.stateService.viewModelEnabled$;\n public readonly selectedPluginConfiguration$ =\n this.pluginStateService.selectedPluginConfiguration$;\n\n public readonly showViewModelToggle =\n this.configService.config.featureToggles.enableFormViewModel;\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly stepService: ProcessLinkStepService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly processLinkStateService: ProcessLinkStateService,\n private readonly configService: ConfigService\n ) {}\n\n closeModal(): void {\n this.stateService.closeModal();\n }\n\n backButtonClick(): void {\n this.buttonService.clickBackButton();\n }\n\n saveButtonClick(): void {\n this.buttonService.clickSaveButton();\n }\n\n nextButtonClick(): void {\n this.buttonService.clickNextButton();\n }\n\n unlinkButtonClick(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (this.processLinkStateService.processLinkEditMode === ProcessLinkEditMode.EMIT_EVENTS) {\n this.processLinkStateService.sendProcessLinkDeleteEvent({\n activityId: selectedProcessLink.activityId,\n });\n\n return;\n }\n\n this.stateService.startSaving();\n\n this.processLinkService.deleteProcessLink(selectedProcessLink.id).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n public toggleCheckedChange(value: boolean): void {\n this.processLinkStateService.setViewModelEnabled(value);\n }\n}\n","<!--\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 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\" (close)=\"closeModal()\">\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\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginConfiguration'\">\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\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\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\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\"\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\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</ng-template>\n","/*\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\nimport {Component} from '@angular/core';\nimport {ModalParams} from '../../models';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {of, switchMap, tap} from 'rxjs';\nimport {ModalService} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-process-link',\n templateUrl: './process-link.component.html',\n styleUrls: ['./process-link.component.scss'],\n providers: [ProcessLinkStateService, ProcessLinkStepService, ProcessLinkButtonService],\n})\nexport class ProcessLinkComponent {\n constructor(\n private readonly processLinkService: ProcessLinkService,\n private readonly stateService: ProcessLinkStateService,\n private readonly modalService: ModalService\n ) {}\n\n openModal(params: ModalParams): void {\n const activityType = params?.element?.activityListenerType;\n\n this.modalService.setModalData(params);\n\n if (activityType) {\n this.processLinkService\n .getProcessLink({\n activityId: params.element.id,\n processDefinitionId: params.processDefinitionId,\n })\n .pipe(\n switchMap(processLinks => {\n if (processLinks.length > 0) {\n return of({processLink: processLinks[0]});\n }\n\n return this.processLinkService.getProcessLinkCandidates(activityType);\n }),\n tap(res => {\n const result = res as any;\n const processLink = result.processLink;\n\n this.stateService.setModalParams(params);\n this.stateService.setElementName(params?.element?.name);\n\n if (processLink) {\n this.stateService.selectProcessLink(processLink);\n } else {\n this.stateService.setAvailableProcessLinkTypes(result);\n }\n\n if (result?.length > 0 || processLink) {\n this.stateService.showModal();\n }\n })\n )\n .subscribe();\n }\n }\n}\n","<!--\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 class=\"main-content\">\n <div class=\"container-fluid\">\n <valtimo-form-link-process-diagram\n (bpmnElementModalOpen)=\"openModal($event)\"\n ></valtimo-form-link-process-diagram>\n </div>\n</div>\n\n<valtimo-process-link-modal></valtimo-process-link-modal>\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {ProcessLinkComponent} from './components/process-link/process-link.component';\n\nconst routes: Routes = [\n {\n path: 'process-links',\n component: ProcessLinkComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process links', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class ProcessLinkRoutingModule {}\n","/*\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\nexport * from './choose-process-link-type.component';\n","/*\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\nexport * from './select-form.component';\n","/*\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\nimport {\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {tap} from 'rxjs/operators';\nimport {ChangeEvent, FormFlowCustomComponent} from '../../models';\nimport {FormFlowComponentService} from '../../services';\nimport {FormioSubmission} from '@valtimo/components';\n\n@Component({\n standalone: false,\n selector: 'valtimo-form-flow-configuration-container',\n templateUrl: './form-flow-configuration-container.component.html',\n})\nexport class FormFlowConfigurationContainerComponent\n implements OnInit, OnDestroy, FormFlowCustomComponent\n{\n @ViewChild('formFlowConfigurationComponent', {static: true, read: ViewContainerRef})\n private readonly _dynamicContainer: ViewContainerRef;\n @Input() public set disabled(disabledValue: boolean) {\n this._disabled$.next(disabledValue);\n }\n @Input() public set componentId(value: string) {\n this._componentId$.next(value);\n }\n @Input() public set formFlowInstanceId(value: string) {\n this._formFlowInstanceId$.next(value);\n }\n @Output() public changeEvent = new EventEmitter<ChangeEvent>();\n @Output() public submitEvent = new EventEmitter<FormioSubmission>();\n\n private _changeSubscription!: Subscription;\n private _submitSubscription!: Subscription;\n\n private readonly _subscriptions = new Subscription();\n private readonly _componentRef$ = new BehaviorSubject<\n ComponentRef<FormFlowCustomComponent> | undefined\n >(undefined);\n private readonly _disabled$ = new BehaviorSubject<boolean>(false);\n private readonly _componentId$ = new BehaviorSubject<string>('');\n private readonly _formFlowInstanceId$ = new BehaviorSubject<string>('');\n\n constructor(private readonly formFlowComponentService: FormFlowComponentService) {}\n\n public ngOnInit(): void {\n this.openConfigurationComponentSubscription();\n this.openComponentInstanceSubscription();\n this.openDisabledSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openConfigurationComponentSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.formFlowComponentService.supportedComponents$, this._componentId$])\n .pipe(\n tap(([supportedComponents, componentId]) => {\n const configurationComponent = supportedComponents.find(\n component => component.id === componentId\n );\n\n this._dynamicContainer.clear();\n\n if (configurationComponent) {\n const componentRef = this._dynamicContainer.createComponent(\n configurationComponent.component\n );\n this._componentRef$.next(componentRef);\n }\n })\n )\n .subscribe()\n );\n }\n\n private openComponentInstanceSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._componentRef$, this._formFlowInstanceId$]).subscribe(\n ([ref, formFlowInstanceId]) => {\n const instance = ref?.instance;\n\n this._submitSubscription?.unsubscribe();\n this._changeSubscription?.unsubscribe();\n\n if (instance) {\n if (formFlowInstanceId) {\n instance.formFlowInstanceId = formFlowInstanceId;\n }\n\n this._changeSubscription = instance.changeEvent.subscribe(change => {\n this.changeEvent.emit(change);\n });\n\n this._submitSubscription = instance.submitEvent.subscribe(submit => {\n this.submitEvent.emit(submit);\n });\n }\n }\n )\n );\n }\n\n private openDisabledSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._componentRef$, this._disabled$]).subscribe(([ref, disabled]) => {\n const instance = ref?.instance;\n\n if (instance) {\n instance.disabled = disabled;\n }\n })\n );\n }\n}\n","<!--\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<ng-template #formFlowConfigurationComponent></ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {FormioForm} from '@formio/angular';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ValtimoFormioOptions,\n ValtimoModalService,\n} from '@valtimo/components';\nimport {FormFlowService} from '../../services';\nimport {FormFlowInstance, FormFlowStepType} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Step} from 'carbon-components-angular';\nimport {ConfigService} from '@valtimo/shared';\nimport {map} from 'rxjs/operators';\n\n@Component({\n standalone: false,\n selector: 'valtimo-form-flow',\n templateUrl: './form-flow.component.html',\n styleUrls: ['./form-flow.component.scss'],\n})\nexport class FormFlowComponent implements OnInit, OnDestroy {\n @ViewChild('form') public readonly form: FormioComponent;\n\n @Input() public readonly formIoFormData: BehaviorSubject<any | null> = new BehaviorSubject<any>(\n null\n );\n @Input() public set formFlowInstanceId(value: string | null) {\n this.formFlowInstanceId$.next(value);\n\n if (value) this.getBreadcrumbs();\n }\n\n @Output() public readonly formFlowComplete = new EventEmitter();\n @Output() public readonly formFlowChange = new EventEmitter();\n\n public formDefinition: FormioForm;\n public formioOptions: ValtimoFormioOptions;\n\n public readonly breadcrumbs$ = new BehaviorSubject<Step[]>([]);\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n public readonly formFlowStepType$ = new BehaviorSubject<FormFlowStepType | null>(null);\n public readonly FormFlowCustomComponentId$ = new BehaviorSubject<string>('');\n public readonly currentStepIndex$ = new BehaviorSubject<number>(0);\n public readonly enableFormFlowBreadcrumbs$ = this.configService.getFeatureToggleObservable(\n 'enableFormFlowBreadcrumbs'\n );\n public readonly formFlowInstanceId$ = new BehaviorSubject<string | null>('');\n\n private formFlowStepInstanceId: string | null = null;\n\n private _breadcrumbsSubscription!: Subscription;\n\n constructor(\n private readonly formFlowService: FormFlowService,\n private readonly modalService: ValtimoModalService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService\n ) {\n this.formioOptions = new FormioOptionsImpl();\n this.formioOptions.disableAlerts = true;\n }\n\n public ngOnInit() {\n this.getFormFlowStep();\n }\n\n public ngOnDestroy(): void {\n this._breadcrumbsSubscription?.unsubscribe();\n }\n\n public onChange(event: any): void {\n if (!event?.data) return;\n\n this.formIoFormData.next(event.data);\n this.formFlowChange.emit();\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.disable();\n\n if (submission.data) {\n this.formIoFormData.next(submission.data);\n }\n\n if (\n submission.data.submit &&\n this.formFlowInstanceId$.getValue() &&\n this.formFlowStepInstanceId\n ) {\n this.formFlowService\n .submitStep(\n this.formFlowInstanceId$.getValue(),\n this.formFlowStepInstanceId,\n this.formIoFormData.getValue()\n )\n .subscribe({\n next: (result: FormFlowInstance) => {\n this.handleFormFlowStep(result);\n },\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n } else if (submission.data['back']) {\n this.back(submission.data);\n }\n }\n\n public onEvent(submission: any): void {\n if (submission.data['back'] || submission.type == 'back') {\n this.back(submission.data);\n }\n }\n\n public saveData(): void {\n const formIoFormDataValue = this.formIoFormData.getValue();\n\n if (formIoFormDataValue && this.formFlowInstanceId$.getValue()) {\n this.formFlowService.save(this.formFlowInstanceId$.getValue(), formIoFormDataValue).subscribe(\n () => null,\n errors => this.form.showErrors(errors)\n );\n }\n }\n\n public onStepSelected(event: {step: {stepInstanceId: string}; index: number}): void {\n const submissionData = this.formIoFormData.getValue().data;\n\n this.disable();\n\n this.currentStepIndex$.next(event.index);\n\n if (!this.formFlowInstanceId$.getValue() || !this.formFlowStepInstanceId) return;\n\n this.formFlowService\n .navigateToStep(\n this.formFlowInstanceId$.getValue(),\n this.formFlowStepInstanceId,\n event.step.stepInstanceId,\n submissionData\n )\n .subscribe({\n next: (result: FormFlowInstance) => this.handleFormFlowStep(result),\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n }\n\n private getBreadcrumbs(): void {\n if (\n !this.formFlowInstanceId$.getValue() ||\n !this.configService.getFeatureToggle('enableFormFlowBreadcrumbs')\n ) {\n return;\n }\n\n this._breadcrumbsSubscription?.unsubscribe();\n\n this._breadcrumbsSubscription = combineLatest([\n this.formFlowService.getBreadcrumbs(this.formFlowInstanceId$.getValue()),\n this.translateService.stream('key'),\n ])\n .pipe(map(([breadcrumbs]) => breadcrumbs))\n .subscribe(breadcrumbs => {\n const classElement = document.getElementsByClassName('cds--progress-step--current');\n\n this.currentStepIndex$.next(breadcrumbs.currentStepIndex);\n\n this.breadcrumbs$.next(\n breadcrumbs.breadcrumbs.map(breadcrumb => ({\n label:\n breadcrumb.title ??\n this.translateService.instant(`formFlow.step.${breadcrumb.key}.title`) ??\n breadcrumb.key,\n disabled: breadcrumb.stepInstanceId === null,\n complete: breadcrumb.completed,\n stepInstanceId: breadcrumb.stepInstanceId,\n }))\n );\n\n if (classElement.length > 0) {\n classElement[0].scrollIntoView({behavior: 'smooth', inline: 'center'});\n }\n });\n }\n\n private getFormFlowStep(): void {\n if (!this.formFlowInstanceId$.getValue()) return;\n\n this.formFlowService\n .getFormFlowStep(this.formFlowInstanceId$.getValue())\n .subscribe((result: FormFlowInstance) => {\n this.handleFormFlowStep(result);\n });\n }\n\n private back(submissionData: any): void {\n if (!this.formFlowInstanceId$.getValue()) return;\n\n this.formFlowService.back(this.formFlowInstanceId$.getValue(), submissionData).subscribe({\n next: (result: FormFlowInstance) => this.handleFormFlowStep(result),\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n }\n\n private handleFormFlowStep(formFlowInstance: FormFlowInstance): void {\n if (formFlowInstance.step === null) {\n this.formFlowStepType$.next(null);\n this.FormFlowCustomComponentId$.next('');\n this.formFlowInstanceId$.next(null);\n this.formFlowStepInstanceId = null;\n this.formFlowComplete.emit(null);\n } else {\n this.getBreadcrumbs();\n this.modalService.scrollToTop();\n this.formFlowStepType$.next(formFlowInstance.step?.type ?? null);\n this.FormFlowCustomComponentId$.next(formFlowInstance?.step?.typeProperties?.id || '');\n this.formFlowInstanceId$.next(formFlowInstance.id);\n this.formFlowStepInstanceId = formFlowInstance.step?.id ?? null;\n this.formDefinition = formFlowInstance.step?.typeProperties.definition;\n }\n\n this.enable();\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n}\n","<!--\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 *ngIf=\"{\n breadcrumbs: breadcrumbs$ | async,\n currentStepIndex: currentStepIndex$ | async,\n enableFormFlowBreadcrumbs: enableFormFlowBreadcrumbs$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n } as obs\"\n>\n <div *ngIf=\"formDefinition && (formFlowStepType$ | async) === 'form'\">\n <div *ngIf=\"obs.enableFormFlowBreadcrumbs\" class=\"form-flow__progress-bar-indicator\">\n <cds-progress-indicator\n [spacing]=\"'equal'\"\n [skeleton]=\"obs.breadcrumbs.length === 0\"\n [current]=\"obs.currentStepIndex\"\n [steps]=\"obs.breadcrumbs\"\n (stepSelected)=\"onStepSelected($event)\"\n >\n </cds-progress-indicator>\n </div>\n\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (event)=\"onEvent($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n\n <div *ngIf=\"(formFlowStepType$ | async) === 'custom-component'\">\n <valtimo-form-flow-configuration-container\n [componentId]=\"FormFlowCustomComponentId$ | async\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n [disabled]=\"disabled$ | async\"\n (submitEvent)=\"onSubmit($event)\"\n (changeEvent)=\"onChange($event)\"\n >\n </valtimo-form-flow-configuration-container>\n </div>\n</div>\n","/*\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\nexport * from './select-form-flow.component';\n","/*\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\nexport * from './form-flow-configuration-container.component';\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {FormLinkProcessDiagramComponent} from './components/form-link-process-diagram/form-link-process-diagram.component';\nimport {CommonModule} from '@angular/common';\nimport {ProcessLinkRoutingModule} from './process-link-routing.module';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n CarbonMultiInputModule,\n FormIoModule,\n ModalModule,\n ParagraphModule,\n RemoveClassnamesDirective,\n RenderInPageHeaderDirective,\n SearchableDropdownSelectModule,\n StepperModule,\n TooltipIconModule,\n TooltipModule,\n ValtimoCdsModalDirective,\n VModalModule,\n} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {SelectPluginConfigurationComponent} from './components/select-plugin-configuration/select-plugin-configuration.component';\nimport {SelectPluginActionComponent} from './components/select-plugin-action/select-plugin-action.component';\nimport {PluginConfigurationContainerModule, PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {PluginActionConfigurationComponent} from './components/plugin-action-configuration/plugin-action-configuration.component';\nimport {ProcessLinkComponent} from './components/process-link/process-link.component';\nimport {ProcessLinkModalComponent} from './components/process-link-modal/process-link-modal.component';\nimport {\n ButtonModule as CarbonButtonModule,\n ComboBoxModule,\n IconModule,\n InputModule,\n LayerModule,\n LoadingModule,\n ModalModule as CarbonModalModule,\n ProgressIndicatorModule,\n SelectModule,\n StructuredListModule,\n TilesModule,\n ToggleModule,\n ToggletipModule,\n} from 'carbon-components-angular';\nimport {ChooseProcessLinkTypeComponent} from './components/choose-process-link-type';\nimport {SelectFormComponent} from './components/select-form';\nimport {FormFlowComponent} from './components/form-flow/form-flow.component';\nimport {SelectFormFlowComponent} from './components/select-form-flow';\nimport {FormFlowConfigurationContainerComponent} from './components/form-flow-configuration-container';\nimport {UrlValidatorService} from './services/url-validator.service';\nimport {UrlResolverService} from './services/url-resolver.service';\nimport {FormDisplayConfigurationComponent} from './components/form-display-configuration/form-display-configuration.component';\nimport {ImportPluginConfigurationComponent} from './components/import-plugin-configuration/import-plugin-configuration.component';\nimport {SelectUIComponentComponent} from './components/select-ui-component/select-ui-component.component';\n\n@NgModule({\n declarations: [\n ProcessLinkComponent,\n FormLinkProcessDiagramComponent,\n SelectPluginConfigurationComponent,\n SelectPluginActionComponent,\n PluginActionConfigurationComponent,\n ProcessLinkModalComponent,\n ChooseProcessLinkTypeComponent,\n SelectFormComponent,\n FormFlowComponent,\n SelectFormFlowComponent,\n FormFlowConfigurationContainerComponent,\n FormDisplayConfigurationComponent,\n SelectUIComponentComponent,\n ImportPluginConfigurationComponent,\n ],\n imports: [\n CommonModule,\n ProcessLinkRoutingModule,\n FormsModule,\n ReactiveFormsModule,\n ModalModule,\n SearchableDropdownSelectModule,\n TranslateModule,\n StepperModule,\n VModalModule,\n PluginTranslatePipeModule,\n ParagraphModule,\n PluginConfigurationContainerModule,\n CarbonModalModule,\n ProgressIndicatorModule,\n CarbonButtonModule,\n IconModule,\n TooltipModule,\n ComboBoxModule,\n InputModule,\n TooltipIconModule,\n LoadingModule,\n FormIoModule,\n ValtimoCdsModalDirective,\n StructuredListModule,\n TilesModule,\n RenderInPageHeaderDirective,\n SelectModule,\n ToggleModule,\n CarbonMultiInputModule,\n LayerModule,\n ToggletipModule,\n ComboBoxModule,\n TranslateModule,\n LayerModule,\n ToggletipModule,\n RemoveClassnamesDirective,\n ReactiveFormsModule,\n ],\n exports: [\n ProcessLinkComponent,\n SelectPluginConfigurationComponent,\n SelectPluginActionComponent,\n PluginActionConfigurationComponent,\n ProcessLinkModalComponent,\n FormFlowComponent,\n ],\n providers: [UrlValidatorService, UrlResolverService],\n})\nexport class ProcessLinkModule {}\n","/*\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/*\n * Public API Surface of process-link\n */\n\nexport * from './lib/services';\nexport * from './lib/components/select-plugin-configuration/select-plugin-configuration.component';\nexport * from './lib/components/select-plugin-action/select-plugin-action.component';\nexport * from './lib/components/plugin-action-configuration/plugin-action-configuration.component';\nexport * from './lib/process-link.module';\nexport * from './lib/models';\nexport * from './lib/components/process-link/process-link.component';\nexport * from './lib/components/process-link-modal/process-link-modal.component';\nexport * from './lib/components/choose-process-link-type/choose-process-link-type.component';\nexport * from './lib/components/form-flow/form-flow.component';\nexport * from './lib/constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","map","i2","i2.ProcessLinkButtonService","i3.PluginStateService","i4","i1.UrlResolverService","switchMap","i2.PluginStateService","i3.ProcessLinkStateService","i3.ProcessLinkButtonService","i3.ProcessLinkStepService","i5","i6","i1.ProcessLinkButtonService","i1.PluginStateService","i1.ProcessLinkStepService","i1.ProcessLinkStateService","i2.ProcessLinkService","i3","i7","i1.ProcessLinkService","i3.ImportPluginConfigurationComponent","i2.ProcessLinkStateService","i7.FormDisplayConfigurationComponent","i8","take","i6.SelectPluginConfigurationComponent","i7.SelectPluginActionComponent","i8.PluginActionConfigurationComponent","i9.ChooseProcessLinkTypeComponent","i10.SelectFormComponent","i11.SelectFormFlowComponent","i12.SelectUIComponentComponent","i13","i3.FormLinkProcessDiagramComponent","i4.ProcessLinkModalComponent","tap","i1.FormFlowComponentService","i1.FormFlowService","i7.FormFlowConfigurationContainerComponent","CarbonModalModule","CarbonButtonModule"],"mappings":"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"}
|