@valtimo/process-management 13.4.1 → 13.5.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.
|
@@ -7,7 +7,7 @@ import { ReactiveFormsModule, Validators, FormsModule } from '@angular/forms';
|
|
|
7
7
|
import * as i4 from '@ngx-translate/core';
|
|
8
8
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
9
9
|
import * as i1$1 from '@valtimo/components';
|
|
10
|
-
import { PendingChangesComponent, FitPageDirective, RenderInPageHeaderDirective, ViewType, CarbonListModule, ConfirmationModalModule, CARBON_CONSTANTS,
|
|
10
|
+
import { PendingChangesComponent, FitPageDirective, RenderInPageHeaderDirective, ViewType, CarbonListModule, ConfirmationModalModule, CARBON_CONSTANTS, WidgetModule } from '@valtimo/components';
|
|
11
11
|
import * as i5 from '@valtimo/process-link';
|
|
12
12
|
import { ProcessLinkEditMode, ProcessLinkModule, ProcessLinkStateService, ProcessLinkStepService, ProcessLinkButtonService } from '@valtimo/process-link';
|
|
13
13
|
import * as i2$2 from 'carbon-components-angular';
|
|
@@ -1606,7 +1606,8 @@ const routes = [
|
|
|
1606
1606
|
path: 'processes/create',
|
|
1607
1607
|
component: ProcessManagementBuilderComponent,
|
|
1608
1608
|
canActivate: [AuthGuardService],
|
|
1609
|
-
|
|
1609
|
+
//TODO: Re-enable when pending changes is fixed
|
|
1610
|
+
// canDeactivate: [pendingChangesGuard],
|
|
1610
1611
|
data: {
|
|
1611
1612
|
title: 'Create new Process',
|
|
1612
1613
|
roles: [ROLE_ADMIN],
|
|
@@ -1617,7 +1618,8 @@ const routes = [
|
|
|
1617
1618
|
path: 'processes/:processDefinitionKey',
|
|
1618
1619
|
component: ProcessManagementBuilderComponent,
|
|
1619
1620
|
canActivate: [AuthGuardService],
|
|
1620
|
-
|
|
1621
|
+
//TODO: Re-enable when pending changes is fixed
|
|
1622
|
+
// canDeactivate: [pendingChangesGuard],
|
|
1621
1623
|
data: {
|
|
1622
1624
|
title: 'Process details',
|
|
1623
1625
|
roles: [ROLE_ADMIN],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-process-management.mjs","sources":["../../../../projects/valtimo/process-management/src/lib/constants/bpmn.constants.ts","../../../../projects/valtimo/process-management/src/lib/constants/index.ts","../../../../projects/valtimo/process-management/src/lib/services/process-management-editor.service.ts","../../../../projects/valtimo/process-management/src/lib/services/process-management-state.service.ts","../../../../projects/valtimo/process-management/src/lib/models/window.model.ts","../../../../projects/valtimo/process-management/src/lib/models/bpmn.model.ts","../../../../projects/valtimo/process-management/src/lib/models/process-management.model.ts","../../../../projects/valtimo/process-management/src/lib/models/process.model.ts","../../../../projects/valtimo/process-management/src/lib/models/index.ts","../../../../projects/valtimo/process-management/src/lib/services/process-management.service.ts","../../../../projects/valtimo/process-management/src/lib/services/index.ts","../../../../projects/valtimo/process-management/src/lib/utils/bpmn.utils.ts","../../../../projects/valtimo/process-management/src/lib/utils/process-management.utils.ts","../../../../projects/valtimo/process-management/src/lib/utils/index.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-builder/panel/valtimo-properties-provider.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-builder/panel/index.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-builder/process-management-builder.component.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-builder/process-management-builder.component.html","../../../../projects/valtimo/process-management/src/lib/components/process-management-list/process-management-list.component.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-list/process-management-list.component.html","../../../../projects/valtimo/process-management/src/lib/components/process-management-upload/process-management-upload.component.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-upload/process-management-upload.component.html","../../../../projects/valtimo/process-management/src/lib/components/process-management/process-management.component.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management/process-management.component.html","../../../../projects/valtimo/process-management/src/lib/components/index.ts","../../../../projects/valtimo/process-management/src/lib/process-management-routing.module.ts","../../../../projects/valtimo/process-management/src/lib/process-management.module.ts","../../../../projects/valtimo/process-management/src/public-api.ts","../../../../projects/valtimo/process-management/src/valtimo-process-management.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\nconst EMPTY_BPMN = `\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<bpmn:definitions xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:bpmn=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" xmlns:bpmndi=\"http://www.omg.org/spec/BPMN/20100524/DI\" xmlns:dc=\"http://www.omg.org/spec/DD/20100524/DC\" targetNamespace=\"http://bpmn.io/schema/bpmn\" id=\"Definitions_1\">\n <bpmn:process id=\"Process_1\" isExecutable=\"false\">\n <bpmn:startEvent id=\"StartEvent_1\"/>\n </bpmn:process>\n <bpmndi:BPMNDiagram id=\"BPMNDiagram_1\">\n <bpmndi:BPMNPlane id=\"BPMNPlane_1\" bpmnElement=\"Process_1\">\n <bpmndi:BPMNShape id=\"_BPMNShape_StartEvent_2\" bpmnElement=\"StartEvent_1\">\n <dc:Bounds height=\"36.0\" width=\"36.0\" x=\"173.0\" y=\"102.0\"/>\n </bpmndi:BPMNShape>\n </bpmndi:BPMNPlane>\n </bpmndi:BPMNDiagram>\n</bpmn:definitions>\n`;\n\nexport {EMPTY_BPMN};\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 './bpmn.constants';\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, OnDestroy} from '@angular/core';\nimport {ProcessDefinition} from '@valtimo/process';\nimport {BehaviorSubject, filter, Observable, Subject, Subscription} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {isEqual} from 'lodash';\nimport {\n ProcessLink,\n ProcessLinkCreateEvent,\n ProcessLinkDeleteEvent,\n ProcessLinkService,\n ProcessLinkUpdateEvent,\n} from '@valtimo/process-link';\nimport {OpenProcessLinkModalEvent} from '../models';\nimport {CaseManagementParams, ManagementContext} from '@valtimo/shared';\nimport {FormDefinitionOption, FormService} from '@valtimo/form';\n\n@Injectable()\nexport class ProcessManagementEditorService implements OnDestroy {\n private readonly _selectionProcessDefinitionSubject$ =\n new BehaviorSubject<ProcessDefinition | null>(null);\n\n public get selectionProcessDefinition$(): Observable<ProcessDefinition> {\n return this._selectionProcessDefinitionSubject$.pipe(\n filter(selectedProcessDefinition => !!selectedProcessDefinition?.id),\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n public get selectionProcessDefinition(): ProcessDefinition {\n return this._selectionProcessDefinitionSubject$.getValue();\n }\n\n private readonly _processLinksForSelectedDefinition$ = new BehaviorSubject<ProcessLink[]>([]);\n\n public get processLinksForSelectedDefinition$(): Observable<ProcessLink[]> {\n return this._processLinksForSelectedDefinition$.asObservable();\n }\n\n public get processLinksForSelectedDefinition(): ProcessLink[] {\n return this._processLinksForSelectedDefinition$.getValue();\n }\n\n private readonly _processLinksFetchedForSelectedDefinition$ = new BehaviorSubject<boolean>(false);\n\n private readonly _subscriptions = new Subscription();\n\n private readonly _openProcessLinkModalEvents$ = new Subject<OpenProcessLinkModalEvent>();\n\n public get openProcessLinkModalEvents$(): Observable<OpenProcessLinkModalEvent> {\n return this._openProcessLinkModalEvents$.asObservable();\n }\n\n public setSelectedProcessDefinition(definition: ProcessDefinition): void {\n this._selectionProcessDefinitionSubject$.next(definition);\n }\n\n private readonly _caseManagementRouteParams$ = new BehaviorSubject<\n [ManagementContext, CaseManagementParams] | null\n >(null);\n\n private readonly _formDefinitionOptions$ = new BehaviorSubject<FormDefinitionOption[]>([]);\n\n public get formDefinitionOptions(): FormDefinitionOption[] {\n return this._formDefinitionOptions$.getValue();\n }\n\n private _updateBpmnViewFunction!: () => void;\n\n private _updatingBpmnView = false;\n\n private _activityIdBusinessIdMap: Record<string, string> = {};\n\n constructor(\n private readonly processLinkService: ProcessLinkService,\n private readonly formService: FormService\n ) {\n this.openSelectedProcessDefinitionSubscription();\n this.openFormDefinitionOptionsSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public setCaseManagementRouteParams(\n context: ManagementContext,\n params: CaseManagementParams\n ): void {\n this._caseManagementRouteParams$.next([context, params]);\n }\n\n public sendOpenProcessLinkModalEvent(\n event: OpenProcessLinkModalEvent,\n updateBpmnViewFunction: () => void\n ): void {\n this._updateBpmnViewFunction = updateBpmnViewFunction;\n this._openProcessLinkModalEvents$.next(event);\n }\n\n public updateProcessLink(event: ProcessLinkUpdateEvent): void {\n this.setProcessLinksForSelectedDefinition(\n this.processLinksForSelectedDefinition.map(processLink => {\n if (processLink.activityId === event.activityId) {\n return {...processLink, ...(event as any)};\n }\n\n return processLink;\n })\n );\n\n this.updateBpmnView();\n }\n\n public createProcessLink(event: ProcessLinkCreateEvent): void {\n this.setProcessLinksForSelectedDefinition([\n ...this.processLinksForSelectedDefinition,\n event as any,\n ]);\n\n this.updateBpmnView();\n }\n\n public deleteProcessLink(\n event: ProcessLinkDeleteEvent,\n updateBpmnViewFunction?: () => void\n ): void {\n if (updateBpmnViewFunction) {\n this._updateBpmnViewFunction = updateBpmnViewFunction;\n }\n\n this.setProcessLinksForSelectedDefinition(\n this.processLinksForSelectedDefinition.filter(\n processLink => processLink.activityId !== event.activityId\n )\n );\n\n this.updateBpmnView();\n }\n\n public setProcessLinksForSelectedDefinition(processLinks: ProcessLink[]): void {\n this._processLinksForSelectedDefinition$.next(processLinks);\n }\n\n public setActivityIdBusinessIdMap(activityIdBusinessIdMap: Record<string, string>): void {\n this._activityIdBusinessIdMap = activityIdBusinessIdMap;\n }\n\n public updateProcessLinksOnIdChange(activityId: string, newBusinessId: string): void {\n const newBusinessIdWithoutLabelString = newBusinessId.replace('_label', '');\n\n if (\n !this._activityIdBusinessIdMap[activityId] ||\n this._activityIdBusinessIdMap[activityId] === newBusinessIdWithoutLabelString\n ) {\n return;\n }\n\n this.updateProcessLinkId(this._activityIdBusinessIdMap[activityId], newBusinessId);\n this._activityIdBusinessIdMap = {...this._activityIdBusinessIdMap, [activityId]: newBusinessId};\n }\n\n private openSelectedProcessDefinitionSubscription(): void {\n this._subscriptions.add(\n this.selectionProcessDefinition$.subscribe(definition => {\n this.fetchProcessLinksForDefinition(definition.id);\n })\n );\n }\n\n private fetchProcessLinksForDefinition(processDefinitionId: string): void {\n this.processLinkService.getProcessLink({processDefinitionId}).subscribe(res => {\n this.setProcessLinksForSelectedDefinition(res);\n });\n }\n\n private updateBpmnView(): void {\n if (!this._updateBpmnViewFunction || this._updatingBpmnView) return;\n this._updatingBpmnView = true;\n this._updateBpmnViewFunction();\n this._updatingBpmnView = false;\n }\n\n private updateProcessLinkId(oldBusinessId: string, newBusinessId: string): void {\n this.setProcessLinksForSelectedDefinition(\n this.processLinksForSelectedDefinition.map(processLink => {\n if (processLink.activityId === oldBusinessId) {\n return {...processLink, activityId: newBusinessId};\n }\n\n return processLink;\n })\n );\n\n this.updateBpmnView();\n }\n\n private openFormDefinitionOptionsSubscription(): void {\n this._subscriptions.add(\n this._caseManagementRouteParams$\n .pipe(\n filter((params): params is [ManagementContext, CaseManagementParams] => params !== null)\n )\n .subscribe(([context, params]) => {\n if (context === 'independent') {\n this.formService\n .getAllUnlinkedFormDefinitions()\n .subscribe(options => this._formDefinitionOptions$.next(options));\n } else {\n this.formService\n .getAllFormDefinitionsForCaseDefinition(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n .subscribe(options => this._formDefinitionOptions$.next(options));\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 */\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class ProcessManagementStateService {\n private readonly _openModal$ = new Subject<boolean>();\n private readonly _reloadDefinitions$ = new BehaviorSubject<null>(null);\n\n public get openModal$(): Observable<boolean> {\n return this._openModal$.asObservable();\n }\n\n public get reloadDefinitions$(): Observable<null> {\n return this._reloadDefinitions$.asObservable();\n }\n\n public openModal(): void {\n this._openModal$.next(true);\n }\n\n public closeModal(): void {\n this._openModal$.next(false);\n }\n\n public reloadDefinitions(): void {\n this._reloadDefinitions$.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 */\n\nimport {ValtimoWindow} from '@valtimo/shared';\nimport {ProcessManagementEditorService} from '../services';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\ninterface ProcessManagementWindow extends ValtimoWindow {\n processManagementEditorService: ProcessManagementEditorService;\n translateService: TranslateService;\n pluginTranslationService: PluginTranslationService;\n}\n\nexport {ProcessManagementWindow};\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\ninterface BpmnElement {\n type: string;\n id: string;\n di?: {id?: string; bpmnElement?: {name?: string}};\n}\nexport {BpmnElement};\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 {ModalParams, ProcessLink} from '@valtimo/process-link';\nimport {ManagementContext} from '@valtimo/shared';\n\ninterface OpenProcessLinkModalEvent {\n modalParams: ModalParams;\n processLink?: ProcessLink;\n}\n\nconst PROCESS_MANAGEMENT_ENDPOINTS = {\n case: '/management/v1/case-definition',\n independent: '/management/v1/process-definition',\n};\n\ninterface ProcessManagementRouteData {\n context: ManagementContext;\n}\n\ninterface UpdateProcessDefinitionCaseDefinitionRequest {\n canInitializeDocument?: boolean;\n startableByUser?: boolean;\n}\n\nexport {\n OpenProcessLinkModalEvent,\n PROCESS_MANAGEMENT_ENDPOINTS,\n ProcessManagementRouteData,\n UpdateProcessDefinitionCaseDefinitionRequest,\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 {ProcessDocumentDefinition} from '@valtimo/document';\nimport {ProcessDefinition} from '@valtimo/process';\nimport {ProcessLink} from '@valtimo/process-link';\n\ninterface ProcessDefinitionResult {\n bpmn20Xml: string;\n processCaseLink?: ProcessDocumentDefinition;\n processDefinition: ProcessDefinition;\n processLinks: ProcessLink[];\n}\n\nexport {ProcessDefinitionResult};\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 './window.model';\nexport * from './bpmn.model';\nexport * from './process-management.model';\nexport * from './process.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 {HttpClient} from '@angular/common/http';\nimport {Injectable, Signal, signal} from '@angular/core';\nimport {BaseApiService, ConfigService, ManagementContext} from '@valtimo/shared';\nimport {BehaviorSubject, combineLatest, Observable, of, switchMap} from 'rxjs';\nimport {toObservable} from '@angular/core/rxjs-interop';\n\nimport {\n PROCESS_MANAGEMENT_ENDPOINTS,\n ProcessDefinitionResult,\n UpdateProcessDefinitionCaseDefinitionRequest,\n} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessManagementService extends BaseApiService {\n private readonly _definitionKey$ = new BehaviorSubject<string | null>(null);\n private readonly _caseDefinitionVersionTag$ = new BehaviorSubject<string | null>(null);\n\n private _$context = signal<ManagementContext>('independent');\n public set context(value: ManagementContext) {\n this._$context.set(value);\n }\n public get $context(): Signal<ManagementContext> {\n return this._$context.asReadonly();\n }\n\n public processes$: Observable<ProcessDefinitionResult[]> = combineLatest([\n this._definitionKey$,\n this._caseDefinitionVersionTag$,\n toObservable(this._$context),\n ]).pipe(\n switchMap(([definitionKey, caseDefinitionVersionTag, context]) => {\n if (context === 'independent') {\n return this.getUnlinkedProcesses();\n }\n if (!!definitionKey && !!caseDefinitionVersionTag) {\n return this.getProcesses(definitionKey, caseDefinitionVersionTag);\n }\n return of([]);\n })\n );\n\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public setParams(caseDefinitionKey: string, caseDefinitionVersionTag: string): void {\n this._definitionKey$.next(caseDefinitionKey);\n this._caseDefinitionVersionTag$.next(caseDefinitionVersionTag);\n }\n\n public deleteProcess(processDefinitionKey: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/${this._definitionKey$.getValue()}/version/${this._caseDefinitionVersionTag$.getValue()}/process-definition/key/${processDefinitionKey}`\n )\n );\n }\n\n public deleteUnlinkedProcess(processDefinitionKey: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/key/${processDefinitionKey}`\n )\n );\n }\n\n public deployBpmn(bpmn: File): Observable<any> {\n const formData: FormData = new FormData();\n formData.append('file', bpmn);\n formData.append(\n 'processLinks',\n new Blob([JSON.stringify([].map(processLink => this.emptyStringToNull(processLink)))], {\n type: 'application/json',\n })\n );\n\n return this.httpClient.post<any>(\n this._$context() === 'case'\n ? this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/${this._definitionKey$.getValue()}/version/${this._caseDefinitionVersionTag$.getValue()}/process-definition`\n )\n : this.getApiUrl(`${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}`),\n formData\n );\n }\n\n public getProcessDefinitionForCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n processDefinitionKey: string\n ): Observable<ProcessDefinitionResult> {\n return this.httpClient.get<ProcessDefinitionResult>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/process-definition/key/${processDefinitionKey}`\n )\n );\n }\n\n public getUnlinkedProcessDefinitionsByKey(\n processDefinitionKey: string\n ): Observable<ProcessDefinitionResult[]> {\n return this.httpClient.get<ProcessDefinitionResult[]>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/key/${processDefinitionKey}`\n )\n );\n }\n\n public updateProcessDefinitionCaseDefinitionProperties(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n processDefinitionId: string,\n body: UpdateProcessDefinitionCaseDefinitionRequest\n ): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/process/${processDefinitionId}/properties`\n ),\n body\n );\n }\n\n private getProcesses(\n definitionName: string,\n caseDefinitionVersionTag: string\n ): Observable<ProcessDefinitionResult[]> {\n return this.httpClient.get<ProcessDefinitionResult[]>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/${definitionName}/version/${caseDefinitionVersionTag}/process-definition`\n )\n );\n }\n\n private getUnlinkedProcesses(): Observable<ProcessDefinitionResult[]> {\n return this.httpClient.get<ProcessDefinitionResult[]>(\n this.getApiUrl(`${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}`)\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\nexport * from './process-management-editor.service';\nexport * from './process-management-state.service';\nexport * from './process-management.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\nconst mapActivityTypeToActivityListenerType = (activityType: string): string => {\n if (activityType === 'bpmn:UserTask') {\n return activityType + ':create';\n }\n\n return activityType + ':start';\n};\n\nexport {mapActivityTypeToActivityListenerType};\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 {ActivatedRoute} from '@angular/router';\nimport {ManagementContext} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\n\nfunction getContextObservable(route: ActivatedRoute): Observable<ManagementContext | null> {\n return route.data.pipe(\n map(data => (data && (data['context'] as ManagementContext)) || null),\n distinctUntilChanged()\n );\n}\n\nexport {getContextObservable};\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 './bpmn.utils';\nexport * from './process-management.utils';\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 {useService} from 'bpmn-js-properties-panel';\nimport {html} from 'htm/preact';\nimport {is} from 'bpmn-js/lib/util/ModelUtil';\nimport {ProcessManagementEditorService} from '../../../services';\nimport {BpmnElement, OpenProcessLinkModalEvent, ProcessManagementWindow} from '../../../models';\nimport {ModalParams, ProcessLink} from '@valtimo/process-link';\nimport {TranslateService} from '@ngx-translate/core';\nimport {mapActivityTypeToActivityListenerType} from '../../../utils';\nimport {VNode} from 'preact';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\nclass ValtimoPropertiesProvider {\n static $inject = ['propertiesPanel', 'translate'];\n\n private get processManagementEditorService(): ProcessManagementEditorService {\n return (window as any as ProcessManagementWindow).processManagementEditorService;\n }\n\n private get translateService(): TranslateService {\n return (window as any as ProcessManagementWindow).translateService;\n }\n\n private get pluginTranslationService(): PluginTranslationService {\n return (window as any as ProcessManagementWindow).pluginTranslationService;\n }\n\n constructor(propertiesPanel: any) {\n propertiesPanel.registerProvider(500, this);\n }\n\n private addAsSecondOrFirst<T>(arr: T[], element: T): T[] {\n if (arr.length === 0) {\n arr.push(element);\n } else {\n arr.splice(1, 0, element);\n }\n return arr;\n }\n\n public getGroups(element: BpmnElement): (groups: any[]) => any[] {\n const processLink: ProcessLink | null =\n this.processManagementEditorService.processLinksForSelectedDefinition.find(\n processLink => processLink.activityId === element.id\n ) || null;\n\n return (groups: any[]) => {\n if (\n is(element, 'bpmn:UserTask') ||\n is(element, 'bpmn:StartEvent') ||\n is(element, 'bpmn:ServiceTask') ||\n is(element, 'bpmn:CallActivity')\n ) {\n const customGroup = {\n id: 'customRootGroup',\n label: 'Process link',\n entries: [this.createCustomRootElement(element, processLink)],\n groupType: 'root',\n };\n this.addAsSecondOrFirst(groups, customGroup);\n }\n return groups;\n };\n }\n\n public createCustomRootElement(element: any, processLink: ProcessLink | null): any {\n return {\n translateService: this.translateService,\n processManagementEditorService: this.processManagementEditorService,\n pluginTranslationService: this.pluginTranslationService,\n id: 'customRootElement',\n processLink,\n element,\n component: CustomRootElement,\n isEdited: () => false,\n };\n }\n}\n\nconst CustomRootElement = (props: {\n translateService: TranslateService;\n processManagementEditorService: ProcessManagementEditorService;\n pluginTranslationService: PluginTranslationService;\n id: string;\n processLink: ProcessLink;\n element: BpmnElement;\n}): VNode => {\n const {\n element,\n processLink,\n translateService,\n processManagementEditorService,\n pluginTranslationService,\n } = props;\n const modeling = useService('modeling');\n const editProcessLinkText = translateService.instant('interface.edit');\n const unlinkText = translateService.instant('processLink.unlink');\n const createText = translateService.instant('processLink.create');\n\n const modalParams: ModalParams = {\n processDefinitionKey: processManagementEditorService.selectionProcessDefinition?.key,\n processDefinitionId: processManagementEditorService.selectionProcessDefinition?.id,\n element: {\n id: element.id,\n type: element.type,\n activityListenerType: mapActivityTypeToActivityListenerType(element.type),\n name: element.di.bpmnElement.name,\n },\n };\n\n const handleCreateClick = (): void => {\n const event: OpenProcessLinkModalEvent = {\n modalParams,\n };\n\n processManagementEditorService.sendOpenProcessLinkModalEvent(event, () => {\n modeling.updateProperties(element, {});\n });\n };\n\n const handleEditClick = (): void => {\n const event: OpenProcessLinkModalEvent = {\n processLink,\n modalParams,\n };\n\n processManagementEditorService.sendOpenProcessLinkModalEvent(event, () => {\n modeling.updateProperties(element, {});\n });\n };\n\n const handleUnlinkClick = (): void => {\n processManagementEditorService.deleteProcessLink({activityId: processLink.activityId}, () => {\n modeling.updateProperties(element, {});\n });\n };\n\n const processLinkFormDefinitionId = processLink?.formDefinitionId;\n const processLinkFormDefinitionName = processManagementEditorService.formDefinitionOptions.find(\n option => option.id === processLinkFormDefinitionId\n )?.name;\n\n if (processLinkFormDefinitionName) {\n return html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__header\">\n <span class=\"process-link-properties-panel__title\">${processLinkFormDefinitionName}</span>\n\n <cds-tag\n class=\"cds--tag cds--tag--blue cds--tag--md cds--layout--size-md cds-tag--no-margin\"\n ><span class=\"cds--tag__label\">\n ${translateService.instant('processLinkType.form')}\n </span>\n </cds-tag>\n </div>\n\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n }\n\n const processLinkFormFlowDefinitionKey = processLink?.formFlowDefinitionKey;\n\n if (processLinkFormFlowDefinitionKey) {\n return html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__header\">\n <span class=\"process-link-properties-panel__title\"\n >${processLinkFormFlowDefinitionKey}</span\n >\n\n <cds-tag\n class=\"cds--tag cds--tag--teal cds--tag--md cds--layout--size-md cds-tag--no-margin\"\n ><span class=\"cds--tag__label\">\n ${translateService.instant('processLinkType.form-flow')}\n </span>\n </cds-tag>\n </div>\n\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n }\n\n const pluginActionKey = processLink?.pluginActionDefinitionKey;\n const pluginActionTranslation =\n pluginTranslationService.instantByPluginActionKey(pluginActionKey);\n const pluginTitleTranslation =\n pluginTranslationService.instantPluginTitleByPluginActionKey(pluginActionKey);\n\n if (pluginActionKey) {\n return html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__header\">\n <span class=\"process-link-properties-panel__title-container\">\n <span class=\"process-link-properties-panel__title\">${pluginTitleTranslation}</span>\n\n <span class=\"process-link-properties-panel__title\">${pluginActionTranslation}</span>\n </span>\n\n <cds-tag\n class=\"cds--tag cds--tag--purple cds--tag--md cds--layout--size-md cds-tag--no-margin\"\n ><span class=\"cds--tag__label\">\n ${translateService.instant('processLinkType.plugin')}\n </span>\n </cds-tag>\n </div>\n\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n }\n\n const uiComponentKey = processLink?.componentKey;\n\n if (uiComponentKey) {\n return html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__header\">\n <span class=\"process-link-properties-panel__title\">${uiComponentKey}</span>\n\n <cds-tag\n class=\"cds--tag cds--tag--magenta cds--tag--md cds--layout--size-md cds-tag--no-margin\"\n ><span class=\"cds--tag__label\">\n ${translateService.instant('processLinkType.ui-component')}\n </span>\n </cds-tag>\n </div>\n\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n }\n\n const genericLinkedPanel = html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n\n const genericCreatePanel = html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleCreateClick}\n >\n ${createText}\n </button>\n </div>\n </div>`;\n\n return processLink ? genericLinkedPanel : genericCreatePanel;\n};\n\nconst ValtimoPropertiesProviderModule = {\n __init__: ['customPropertiesProvider'],\n customPropertiesProvider: ['type', ValtimoPropertiesProvider],\n};\n\nexport {ValtimoPropertiesProviderModule};\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 './valtimo-properties-provider';\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 {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n computed,\n ElementRef,\n OnDestroy,\n Signal,\n ViewChild,\n} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n BreadcrumbService,\n FitPageDirective,\n ModalService,\n PageHeaderService,\n PageTitleService,\n PendingChangesComponent,\n RenderInPageHeaderDirective,\n} from '@valtimo/components';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n getCaseManagementRouteParamsAndContext,\n GlobalNotificationService,\n ManagementContext,\n} from '@valtimo/shared';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\nimport {\n ProcessLinkButtonService,\n ProcessLinkCreateEvent,\n ProcessLinkEditMode,\n ProcessLinkModule,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '@valtimo/process-link';\nimport {\n BpmnPropertiesPanelModule,\n BpmnPropertiesProviderModule,\n CamundaPlatformPropertiesProviderModule,\n} from 'bpmn-js-properties-panel';\nimport Modeler from 'bpmn-js/lib/Modeler';\nimport NavigatedViewer from 'bpmn-js/lib/NavigatedViewer';\nimport camundaPlatformBehaviors from 'camunda-bpmn-js-behaviors/lib/camunda-platform';\nimport CamundaBpmnModdle from 'camunda-bpmn-moddle/resources/camunda.json';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n IconService,\n ListItem,\n LoadingModule,\n SelectModule,\n TagModule,\n ToggleModule,\n TooltipModule,\n} from 'carbon-components-angular';\nimport {isEqual} from 'lodash';\nimport {NGXLogger} from 'ngx-logger';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n from,\n map,\n Observable,\n of,\n startWith,\n Subject,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {EMPTY_BPMN} from '../../constants';\nimport {\n OpenProcessLinkModalEvent,\n ProcessDefinitionResult,\n ProcessManagementWindow,\n UpdateProcessDefinitionCaseDefinitionRequest,\n} from '../../models';\nimport {ProcessManagementEditorService, ProcessManagementService} from '../../services';\nimport {getContextObservable} from '../../utils';\nimport {ValtimoPropertiesProviderModule} from './panel';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\n@Component({\n selector: 'valtimo-process-management-builder',\n templateUrl: './process-management-builder.component.html',\n styleUrls: ['./process-management-builder.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FitPageDirective,\n LoadingModule,\n RenderInPageHeaderDirective,\n DropdownModule,\n ReactiveFormsModule,\n SelectModule,\n ButtonModule,\n IconModule,\n TranslateModule,\n TagModule,\n ProcessLinkModule,\n ProcessLinkModule,\n DialogModule,\n ToggleModule,\n TooltipModule,\n ],\n providers: [\n ProcessManagementEditorService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n ProcessLinkButtonService,\n ],\n})\nexport class ProcessManagementBuilderComponent\n extends PendingChangesComponent\n implements AfterViewInit, OnDestroy\n{\n @ViewChild('modeler', {static: false}) modelerElementRef!: ElementRef;\n @ViewChild('modelerPanel', {static: false}) modelerPanelElementRef!: ElementRef;\n @ViewChild('viewer', {static: false}) viewerElementRef!: ElementRef;\n @ViewChild('viewerPanel', {static: false}) viewerPanelElementRef!: ElementRef;\n\n private readonly _selectedProcess$ = new BehaviorSubject<\n ProcessDefinitionResult | 'create' | null\n >(null);\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n private _bpmnModeler!: Modeler;\n private _bpmnViewer!: NavigatedViewer;\n\n public readonly isReadOnlyProcess$ = new BehaviorSubject<boolean>(false);\n public readonly isSystemProcess$ = new BehaviorSubject<boolean>(false);\n\n public readonly canInitializeDocument$ = new BehaviorSubject<boolean>(false);\n public readonly startableByUser$ = new BehaviorSubject<boolean>(false);\n\n public readonly selectedProcessDefinitionXml$ =\n this.processManagementEditorService.selectionProcessDefinition$.pipe(\n filter(selectedProcessDefinition => !!selectedProcessDefinition?.id),\n distinctUntilChanged((previous, current) => isEqual(previous, current)),\n tap(selectedProcessDefinition => {\n this.loading$.next(true);\n this.pageTitleService.setCustomPageTitle(selectedProcessDefinition.name);\n }),\n switchMap(selectedProcessDefinition =>\n this.processService.getProcessDefinitionXml(selectedProcessDefinition.id)\n ),\n tap(result => {\n this.cleanUpListenersOnModeler();\n this._bpmnModeler?.importXML(result.bpmn20Xml);\n this._bpmnViewer?.importXML(result.bpmn20Xml);\n this.isReadOnlyProcess$.next(result.readOnly);\n this.isSystemProcess$.next(result.systemProcess);\n this.loading$.next(false);\n })\n );\n\n public readonly changesPending$ = new BehaviorSubject<boolean>(false);\n\n public readonly editParam$: Observable<string | 'create' | null> = this.route.url.pipe(\n map(segments => {\n const lastSegment = segments[segments.length - 1]?.path;\n if (lastSegment === 'create') {\n return 'create';\n }\n const param = this.route.snapshot.paramMap.get('processDefinitionKey');\n return param ? param : null;\n }),\n filter(editParam => !!editParam)\n );\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly managementParams$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route))\n );\n\n public readonly params$: Observable<any> | undefined = getCaseManagementRouteParams(this.route);\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n this.params$,\n this.context$,\n ]).pipe(\n switchMap(([params, context]) =>\n this.editPermissionsService.hasPermissionsToEditBasedOnContext(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag,\n context\n )\n )\n );\n\n private readonly _reload$ = new Subject<null>();\n\n public readonly processDefinitionVersions$: Observable<ProcessDefinition[]> = combineLatest([\n this.editParam$,\n this.context$,\n this._reload$.pipe(startWith(null)),\n ]).pipe(\n switchMap(([editParam, context]) =>\n context === 'independent'\n ? this.processManagementService.getUnlinkedProcessDefinitionsByKey(editParam)\n : of([] as ProcessDefinitionResult[])\n ),\n map(result => result.map(resultItem => resultItem.processDefinition)),\n tap(processDefinitions => {\n this.changesPending$.next(false);\n this.pendingChanges = false;\n this.setSelectedProcessDefinitionToLatest(processDefinitions);\n })\n );\n\n public readonly processDefinitionVersionsListItems$: Observable<ListItem[]> = combineLatest([\n this.processDefinitionVersions$,\n this.processManagementEditorService.selectionProcessDefinition$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([processDefinitionVersions, selectionProcessDefinition]) =>\n processDefinitionVersions\n .map(processDefinitionVersion => ({\n id: processDefinitionVersion.version,\n content: `${this.translateService.instant('processManagement.version')}${processDefinitionVersion.version}`,\n selected: selectionProcessDefinition.version === processDefinitionVersion.version,\n processDefinitionVersion,\n }))\n .sort((a, b) => b.id - a.id)\n )\n );\n\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n public readonly creatingNewProcess$ = new BehaviorSubject<boolean>(false);\n\n public readonly $extraSpace: Signal<number> = computed(() =>\n this.processManagementService.$context() === 'case' ? 0 : 0\n );\n\n public readonly updatingProcessDefinitionCaseDefinition$ = new BehaviorSubject<boolean>(false);\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly breadcrumbService: BreadcrumbService,\n private readonly iconService: IconService,\n private readonly logger: NGXLogger,\n private readonly modalService: ModalService,\n private readonly notificationService: GlobalNotificationService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly pageTitleService: PageTitleService,\n private readonly processLinkService: ProcessLinkService,\n private readonly processLinkStateService: ProcessLinkStateService,\n private readonly processManagementEditorService: ProcessManagementEditorService,\n private readonly processManagementService: ProcessManagementService,\n private readonly processService: ProcessService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly pluginTranslationService: PluginTranslationService,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n super();\n this.setProcessManagementWindow();\n }\n\n public ngAfterViewInit(): void {\n this.pageTitleService.disableReset();\n this.openParamsAndContextSubscription();\n this.initModeler();\n this.initViewer();\n this.subscribeToOpenProcessLinkModalEvents();\n this.subscribeToProcessLinkUpdateEvents();\n this.subscribeToProcessLinkCreateEvents();\n this.subscribeToProcessLinkDeleteEvents();\n this.processLinkStateService.setEditMode(ProcessLinkEditMode.EMIT_EVENTS);\n this.initEditing();\n }\n\n public ngOnDestroy(): void {\n this._bpmnModeler?.destroy();\n this._bpmnViewer?.destroy();\n this._subscriptions.unsubscribe();\n this.pageTitleService.enableReset();\n this.pageTitleService.clearPageActionsViewContainerRef();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public export(isReadOnlyProcess: boolean): void {\n (isReadOnlyProcess ? from(this._bpmnViewer.saveXML()) : from(this._bpmnModeler.saveXML()))\n .pipe(take(1))\n .subscribe(result => {\n const file = new Blob([result.xml ?? ''], {type: 'text/xml'});\n const link = document.createElement('a');\n link.download = 'diagram.bpmn';\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n });\n }\n\n public deployChanges(isReadOnlyProcess: boolean): void {\n combineLatest([\n from(isReadOnlyProcess ? this._bpmnViewer.saveXML() : this._bpmnModeler.saveXML()),\n this.processManagementEditorService.processLinksForSelectedDefinition$,\n this.processManagementEditorService.selectionProcessDefinition$,\n this.context$,\n this.managementParams$.pipe(startWith(null)),\n ])\n .pipe(\n take(1),\n switchMap(([result, processLinks, selectedProcessDefinition, context, params]) => {\n if (context === 'case') {\n return this.processLinkService.deployProcessWithProcessLinksForCase(\n processLinks as ProcessLinkCreateEvent[],\n selectedProcessDefinition.id,\n !isReadOnlyProcess ? (result?.xml ?? '') : null,\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? '',\n this.canInitializeDocument$.getValue(),\n this.startableByUser$.getValue()\n );\n }\n\n return this.processLinkService.deployProcessWithProcessLinks(\n processLinks as ProcessLinkCreateEvent[],\n selectedProcessDefinition.id,\n !isReadOnlyProcess ? (result?.xml ?? '') : null\n );\n }),\n switchMap(() => this.context$)\n )\n .subscribe({\n next: context => {\n if (context === 'independent') {\n this.pendingChanges = false;\n this.reload();\n this.showNotification('success');\n } else {\n this.pendingChanges = false;\n this.navigateBack('success');\n }\n },\n error: () => {\n this.showNotification('error');\n },\n });\n }\n\n public deployNewProcessDefinition(): void {\n combineLatest([\n from(this._bpmnModeler.saveXML()),\n this.processManagementEditorService.processLinksForSelectedDefinition$,\n this.context$,\n this.managementParams$.pipe(startWith(null)),\n ])\n .pipe(\n take(1),\n switchMap(([result, processLinks, context, params]) => {\n const mappedProcessLinks = processLinks.map(link => ({\n ...link,\n processDefinitionId: '-',\n })) as ProcessLinkCreateEvent[];\n\n return context === 'independent'\n ? this.processLinkService.deployProcessWithProcessLinks(\n mappedProcessLinks,\n null,\n result.xml ?? ''\n )\n : this.processLinkService.deployProcessWithProcessLinksForCase(\n mappedProcessLinks,\n null,\n result.xml ?? '',\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n this.canInitializeDocument$.getValue(),\n this.startableByUser$.getValue()\n );\n })\n )\n .subscribe({\n next: () => {\n this.pendingChanges = false;\n this.navigateBack('success');\n },\n error: () => {\n this.showNotification('error');\n },\n });\n }\n\n public selectedVersionChange(event: {item: {processDefinitionVersion: ProcessDefinition}}): void {\n this.processManagementEditorService.selectionProcessDefinition$\n .pipe(take(1))\n .subscribe(selectedVersion => {\n if (selectedVersion.id !== event.item.processDefinitionVersion.id) {\n this.processManagementEditorService.setSelectedProcessDefinition(\n event?.item?.processDefinitionVersion\n );\n this.changesPending$.next(false);\n }\n });\n }\n\n public navigateBack(notification: null | 'success' | 'error'): void {\n this.router.navigate(['../'], {relativeTo: this.route});\n\n if (!notification) return;\n\n this.showNotification(notification);\n }\n\n public onProcessToggleChange(\n field: keyof UpdateProcessDefinitionCaseDefinitionRequest,\n value: boolean\n ): void {\n if (field === 'canInitializeDocument') this.canInitializeDocument$.next(value);\n if (field === 'startableByUser') this.startableByUser$.next(value);\n this.changesPending$.next(true);\n }\n\n private setProcessManagementWindow(): void {\n const processManagementWindow = window as any as ProcessManagementWindow;\n\n if (!processManagementWindow) return;\n\n processManagementWindow.processManagementEditorService = this.processManagementEditorService;\n processManagementWindow.translateService = this.translateService;\n processManagementWindow.pluginTranslationService = this.pluginTranslationService;\n }\n\n private showNotification(notification: null | 'success' | 'error'): void {\n this.notificationService.showToast({\n caption: this.translateService.instant(`processManagement.${notification}Notification`),\n type: notification,\n title: this.translateService.instant(`interface.${notification}`),\n });\n }\n\n private setSelectedProcessDefinitionToLatest(processDefinitions: ProcessDefinition[]): void {\n if ((processDefinitions || []).length === 0) return;\n\n const latest = processDefinitions.reduce((acc, version) =>\n version.version > acc.version ? version : acc\n );\n\n this.processManagementEditorService.setSelectedProcessDefinition(latest);\n }\n\n private initModeler(): void {\n this._bpmnModeler = new Modeler({\n additionalModules: [\n BpmnPropertiesPanelModule,\n BpmnPropertiesProviderModule,\n CamundaPlatformPropertiesProviderModule,\n camundaPlatformBehaviors,\n ValtimoPropertiesProviderModule,\n ],\n moddleExtensions: {camunda: CamundaBpmnModdle},\n propertiesPanel: {parent: this.modelerPanelElementRef.nativeElement},\n });\n\n this._bpmnModeler?.attachTo(this.modelerElementRef.nativeElement);\n\n this._bpmnModeler.on('commandStack.changed', () => {\n this.changesPending$.next(true);\n this.pendingChanges = true;\n });\n\n this._bpmnModeler.on('import.done', () => {\n const idMap: Record<string, string> = {};\n const elementRegistry = this._bpmnModeler.get('elementRegistry') as any;\n\n elementRegistry.forEach(element => {\n const activityId = element?.di?.id;\n const businessId = element?.id;\n\n if (!activityId || !businessId) return;\n\n idMap[activityId] = businessId;\n });\n\n this.processManagementEditorService.setActivityIdBusinessIdMap(idMap);\n this.listenToActivityChangesOnModeler();\n });\n }\n\n private initViewer(): void {\n const disableCommands = () => {\n const commandStack = this._bpmnViewer.get('commandStack') as any;\n const originalExecute = commandStack?.execute?.bind(commandStack);\n\n if (commandStack?.execute) {\n commandStack.execute = (command: string, context: any) => {\n if (\n command === 'elements.delete' ||\n command === 'elements.copy' ||\n command === 'elements.paste' ||\n command === 'elements.create'\n ) {\n return;\n }\n originalExecute(command, context);\n };\n }\n };\n\n const DisableBpmnWriteModule = {\n paletteProvider: ['value', {}],\n contextPadProvider: ['value', {}],\n directEditing: [\n 'value',\n {\n registerProvider: () => {},\n activate: () => {},\n deactivate: () => {},\n isActive: () => false,\n },\n ],\n move: ['value', null],\n resizeHandles: ['value', {addResizer: () => {}, removeResizers: () => {}}],\n };\n\n this._bpmnViewer = new Modeler({\n additionalModules: [\n DisableBpmnWriteModule,\n BpmnPropertiesPanelModule,\n ValtimoPropertiesProviderModule,\n ],\n moddleExtensions: {camunda: CamundaBpmnModdle},\n propertiesPanel: {parent: this.viewerPanelElementRef.nativeElement},\n });\n\n this._bpmnViewer?.attachTo(this.viewerElementRef.nativeElement);\n\n this._bpmnViewer.on('commandStack.changed', () => {\n this.changesPending$.next(true);\n this.pendingChanges = true;\n });\n\n this._bpmnViewer.on('import.done', () => {\n disableCommands();\n });\n }\n\n private reload(): void {\n this._reload$.next(null);\n }\n\n private handleUpdateEvent(event: OpenProcessLinkModalEvent): void {\n this.modalService.setModalData(event?.modalParams);\n this.processLinkStateService.setModalParams(event?.modalParams);\n this.processLinkStateService.setElementName(event?.modalParams?.element?.name ?? '');\n this.processLinkStateService.selectProcessLink(event.processLink);\n this.processLinkStateService.showModal();\n }\n\n private handleCreateEvent(event: OpenProcessLinkModalEvent): void {\n this.processLinkService\n .getProcessLinkCandidates(event.modalParams.element.activityListenerType ?? '')\n .subscribe(candidates => {\n this.modalService.setModalData(event?.modalParams);\n this.processLinkStateService.setModalParams(event?.modalParams);\n this.processLinkStateService.setElementName(event?.modalParams?.element?.name ?? '');\n this.processLinkStateService.setAvailableProcessLinkTypes(candidates);\n this.processLinkStateService.showModal();\n });\n }\n\n private subscribeToOpenProcessLinkModalEvents(): void {\n this._subscriptions.add(\n this.processManagementEditorService.openProcessLinkModalEvents$.subscribe(event => {\n if (event.processLink) {\n this.handleUpdateEvent(event);\n } else {\n this.handleCreateEvent(event);\n }\n })\n );\n }\n\n private subscribeToProcessLinkUpdateEvents(): void {\n this._subscriptions.add(\n this.processLinkStateService.processLinkUpdateEvents$.subscribe(event => {\n this.processManagementEditorService.updateProcessLink(event);\n this.processLinkStateService.stopSaving();\n this.processLinkStateService.closeModal();\n })\n );\n }\n\n private subscribeToProcessLinkCreateEvents(): void {\n this._subscriptions.add(\n this.processLinkStateService.processLinkCreateEvents$.subscribe(event => {\n this.processManagementEditorService.createProcessLink(event);\n this.processLinkStateService.stopSaving();\n this.processLinkStateService.closeModal();\n })\n );\n }\n\n private subscribeToProcessLinkDeleteEvents(): void {\n this._subscriptions.add(\n this.processLinkStateService.processLinkDeleteEvents$.subscribe(event => {\n this.processManagementEditorService.deleteProcessLink(event);\n this.processLinkStateService.stopSaving();\n this.processLinkStateService.closeModal();\n })\n );\n }\n\n private initIfCreate(): void {\n if (this._selectedProcess$.getValue() !== 'create') return;\n\n this.creatingNewProcess$.next(true);\n this._bpmnModeler?.importXML(EMPTY_BPMN);\n this.isReadOnlyProcess$.next(false);\n this.isSystemProcess$.next(false);\n this.loading$.next(false);\n }\n\n private shapeAddedHandler = (event: any): void => {\n this.logger.debug('Shape added:', event);\n };\n\n private shapeRemovedHandler = (event: any): void => {\n this.logger.debug('Shape removed:', event);\n\n const activityId = event?.element?.id;\n\n if (!activityId) return;\n\n this.processManagementEditorService.deleteProcessLink({activityId});\n };\n\n private elementChangedHandler = (event: any): void => {\n this.logger.debug('Element changed:', event);\n\n const activityId = event?.element?.di?.id;\n const businessId = event?.element?.id;\n\n if (!activityId || !businessId) return;\n\n this.processManagementEditorService.updateProcessLinksOnIdChange(activityId, businessId);\n };\n\n private listenToActivityChangesOnModeler(): void {\n const eventBus = this._bpmnModeler.get('eventBus') as any;\n\n if (!eventBus) return;\n\n eventBus.on('shape.added', this.shapeAddedHandler);\n eventBus.on('shape.removed', this.shapeRemovedHandler);\n eventBus.on('element.changed', this.elementChangedHandler);\n }\n\n private cleanUpListenersOnModeler(): void {\n const eventBus = this._bpmnModeler.get('eventBus') as any;\n\n if (!eventBus) return;\n\n eventBus.off('shape.added', this.shapeAddedHandler);\n eventBus.off('shape.removed', this.shapeRemovedHandler);\n eventBus.off('element.changed', this.elementChangedHandler);\n }\n\n private initProcessDefinition(): void {\n this._subscriptions.add(\n this._selectedProcess$\n .pipe(\n filter(selectedProcess => selectedProcess !== null && selectedProcess !== 'create'),\n distinctUntilChanged((previous, current) => isEqual(previous, current)),\n tap(() => this.loading$.next(true))\n )\n .subscribe(result => {\n const processDefinitionResult = result as ProcessDefinitionResult;\n\n this.cleanUpListenersOnModeler();\n\n this._bpmnModeler?.importXML(processDefinitionResult.bpmn20Xml);\n this._bpmnViewer?.importXML(processDefinitionResult.bpmn20Xml);\n\n this.canInitializeDocument$.next(\n !!processDefinitionResult?.processCaseLink?.canInitializeDocument\n );\n this.startableByUser$.next(!!processDefinitionResult?.processCaseLink?.startableByUser);\n\n this.loading$.next(false);\n })\n );\n }\n\n private openParamsAndContextSubscription(): void {\n this._subscriptions.add(\n getCaseManagementRouteParamsAndContext(this.route).subscribe(([context, params]) => {\n if (context) this.processManagementService.context = context;\n\n if (params) {\n this.processManagementService.setParams(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n );\n }\n\n this.initBreadcrumbs(params, context);\n this.processManagementEditorService.setCaseManagementRouteParams(context, params);\n })\n );\n }\n\n private initBreadcrumbs(params: CaseManagementParams, context: ManagementContext): void {\n if (context === 'independent') return;\n\n const route = `/case-management/case/${params.caseDefinitionKey}/version/${params.caseDefinitionVersionTag}`;\n\n this.breadcrumbService.setThirdBreadcrumb({\n route: [route],\n content: `${params.caseDefinitionKey} (${params.caseDefinitionVersionTag})`,\n href: route,\n });\n\n const routeWithForms = `${route}/processes`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [routeWithForms],\n content: this.translateService.instant('caseManagement.tabs.processes'),\n href: routeWithForms,\n });\n }\n\n private initEditing(): void {\n combineLatest([this.editParam$, this.managementParams$.pipe(startWith(null)), this.context$])\n .pipe(\n take(1),\n switchMap(([editParam, params, context]) => {\n if (editParam === 'create') {\n this._selectedProcess$.next('create');\n this.initIfCreate();\n\n return of(null);\n }\n\n return context === 'case'\n ? this.processManagementService.getProcessDefinitionForCase(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n editParam\n )\n : this.processManagementService\n .getUnlinkedProcessDefinitionsByKey(editParam)\n .pipe(map(processDefinitionResults => processDefinitionResults[0]));\n }),\n tap(res => {\n if (res) {\n this._selectedProcess$.next(res);\n this.processManagementEditorService.setSelectedProcessDefinition(res.processDefinition);\n this.processManagementEditorService.setProcessLinksForSelectedDefinition(\n res.processLinks\n );\n this.pageTitleService.setCustomPageTitle(res.processDefinition.name || '-');\n }\n\n this.initProcessDefinition();\n })\n )\n .subscribe();\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 fitPage\n [extraSpace]=\"$extraSpace()\"\n [disableOverflow]=\"true\"\n *ngIf=\"{\n processDefinitionVersions: processDefinitionVersions$ | async,\n selectedProcessDefinitionXml: selectedProcessDefinitionXml$ | async,\n loading: loading$ | async,\n isReadOnlyProcess: isReadOnlyProcess$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n data-carbon-theme=\"g10\"\n class=\"bpmn__container\"\n>\n <div\n class=\"bpmn__modeler\"\n [style.display]=\"obs.isReadOnlyProcess || !obs.hasEditPermissions ? 'none' : 'flex'\"\n >\n <div class=\"bpmn__modeler-canvas\" #modeler></div>\n\n <div class=\"bpmn__modeler-panel\" #modelerPanel></div>\n </div>\n\n <div\n class=\"bpmn__modeler\"\n [style.display]=\"obs.isReadOnlyProcess || !obs.hasEditPermissions ? 'flex' : 'none'\"\n >\n <div class=\"bpmn__modeler-canvas\" #viewer></div>\n\n <div class=\"bpmn__modeler-panel\" #viewerPanel></div>\n </div>\n</div>\n\n<valtimo-process-link-modal></valtimo-process-link-modal>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"page-header-actions\"\n *ngIf=\"{\n processDefinitionVersionsListItems: processDefinitionVersionsListItems$ | async,\n loading: loading$ | async,\n changesPending: changesPending$ | async,\n isReadOnlyProcess: isReadOnlyProcess$ | async,\n isSystemProcess: isSystemProcess$ | async,\n compactMode: compactMode$ | async,\n creatingNewProcess: creatingNewProcess$ | async,\n context: context$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n canInitializeDocument: canInitializeDocument$ | async,\n startableByUser: startableByUser$ | async,\n updatingProcessDefinitionCaseDefinition: updatingProcessDefinitionCaseDefinition$ | async,\n } as actionsObs\"\n >\n <div class=\"page-header-actions__left-container\">\n <cds-dropdown\n *ngIf=\"!actionsObs.creatingNewProcess && actionsObs?.context === 'independent'\"\n class=\"page-header-actions__version-dropdown\"\n (selected)=\"selectedVersionChange($event)\"\n [disabled]=\"\n actionsObs.loading ||\n (actionsObs.processDefinitionVersionsListItems || []).length === 0 ||\n (actionsObs.processDefinitionVersionsListItems || []).length === 1\n \"\n [size]=\"actionsObs.compactMode ? 'sm' : 'md'\"\n >\n <cds-dropdown-list\n [items]=\"actionsObs.processDefinitionVersionsListItems || []\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"page-header-actions__tags\">\n <cds-tag\n *ngIf=\"actionsObs.isReadOnlyProcess || !actionsObs.hasEditPermissions\"\n type=\"blue\"\n >{{ 'processManagement.readOnly' | translate }}</cds-tag\n >\n\n <cds-tag *ngIf=\"actionsObs.isSystemProcess\" type=\"red\">{{\n 'processManagement.systemProcess' | translate\n }}</cds-tag>\n </div>\n </div>\n\n <div class=\"page-header-actions__buttons\">\n @if (actionsObs.context === 'case') {\n <cds-tooltip\n [description]=\"'processCaseConnection.processCreatesCaseTooltip' | translate\"\n >\n <cds-toggle\n [onText]=\"'processManagement.canInitializeDocument' | translate\"\n [offText]=\"'processManagement.canInitializeDocument' | translate\"\n [checked]=\"actionsObs.canInitializeDocument\"\n [disabled]=\"\n actionsObs.loading ||\n actionsObs.updatingProcessDefinitionCaseDefinition ||\n !actionsObs.hasEditPermissions\n \"\n (checkedChange)=\"onProcessToggleChange('canInitializeDocument', $event)\"\n ></cds-toggle>\n </cds-tooltip>\n\n <cds-tooltip\n [description]=\"'processCaseConnection.startableWithinCaseTooltip' | translate\"\n >\n <cds-toggle\n [onText]=\"'processManagement.startableByUser' | translate\"\n [offText]=\"'processManagement.startableByUser' | translate\"\n [checked]=\"actionsObs.startableByUser\"\n [disabled]=\"\n actionsObs.loading ||\n actionsObs.updatingProcessDefinitionCaseDefinition ||\n !actionsObs.hasEditPermissions\n \"\n (checkedChange)=\"onProcessToggleChange('startableByUser', $event)\"\n ></cds-toggle\n ></cds-tooltip>\n }\n\n <button\n *ngIf=\"actionsObs.context === 'case'\"\n cdsButton=\"secondary\"\n [size]=\"actionsObs.compactMode ? 'sm' : 'md'\"\n (click)=\"navigateBack(null)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n\n <button\n [disabled]=\"!actionsObs.changesPending\"\n cdsButton=\"primary\"\n (click)=\"\n !actionsObs.creatingNewProcess\n ? deployChanges(actionsObs.isReadOnlyProcess)\n : deployNewProcessDefinition()\n \"\n [size]=\"actionsObs.compactMode ? 'sm' : 'md'\"\n >\n {{ 'processManagement.deploy' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"deploy\" size=\"16\"></svg>\n </button>\n\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option\n [disabled]=\"actionsObs.loading\"\n (selected)=\"export(actionsObs.isReadOnlyProcess)\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n </div>\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 */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, EventEmitter, Output} from '@angular/core';\nimport {Upload16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {\n EditPermissionsService,\n EnvironmentService,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {ProcessDefinition} from '@valtimo/process';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, Observable, switchMap, tap} from 'rxjs';\nimport {ProcessDefinitionResult} from '../../models';\nimport {ProcessManagementService, ProcessManagementStateService} from '../../services';\nimport {ActivatedRoute} from '@angular/router';\nimport {getContextObservable} from '../../utils';\n\n@Component({\n selector: 'valtimo-process-management-list',\n templateUrl: './process-management-list.component.html',\n styleUrls: ['./process-management-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n CarbonListModule,\n IconModule,\n IconModule,\n TranslateModule,\n ConfirmationModalModule,\n ],\n})\nexport class ProcessManagementListComponent {\n @Output() public readonly processSelected = new EventEmitter<\n ProcessDefinitionResult | 'create'\n >();\n\n public readonly $context = this.processManagementService.$context;\n public readonly processToDelete$ = new BehaviorSubject<ProcessDefinition | null>(null);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly ACTION_ITEMS: ActionItem[] = [\n {label: 'Delete', callback: this.onDeleteProcess.bind(this), type: 'danger'},\n ];\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly processDefinitions$: Observable<ProcessDefinitionResult[]> =\n this.processManagementStateService.reloadDefinitions$.pipe(\n tap(() => this.loading$.next(true)),\n switchMap(() => this.processManagementService.processes$),\n tap(() => this.loading$.next(false))\n );\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n getCaseManagementRouteParams(this.route),\n this.context$,\n ]).pipe(\n switchMap(([params, context]) => {\n return this.editPermissionsService.hasPermissionsToEditBasedOnContext(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag,\n context\n );\n })\n );\n\n public readonly FIELDS: ColumnConfig[] = [\n {key: 'processDefinition.name', label: 'processManagement.name'},\n {key: 'processDefinition.key', label: 'processManagement.key'},\n {\n key: 'processDefinition.readOnly',\n label: 'processManagement.readOnly',\n viewType: ViewType.BOOLEAN,\n },\n ...(this.processManagementService.$context() === 'case'\n ? [\n {\n key: 'processCaseLink.canInitializeDocument',\n label: 'processManagement.canInitializeDocument',\n viewType: ViewType.BOOLEAN,\n },\n ]\n : []),\n ...(this.processManagementService.$context() === 'case'\n ? [\n {\n key: 'processCaseLink.startableByUser',\n label: 'processManagement.startableByUser',\n viewType: ViewType.BOOLEAN,\n },\n ]\n : []),\n ];\n\n constructor(\n private readonly iconService: IconService,\n private readonly notificationService: GlobalNotificationService,\n private readonly processManagementService: ProcessManagementService,\n private readonly processManagementStateService: ProcessManagementStateService,\n private readonly translateService: TranslateService,\n private readonly environmentService: EnvironmentService,\n private readonly route: ActivatedRoute,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n this.iconService.registerAll([Upload16]);\n }\n\n public editProcessDefinition(processDefinition: ProcessDefinitionResult): void {\n this.processSelected.emit(processDefinition);\n }\n\n public openModal(): void {\n this.processManagementStateService.openModal();\n }\n\n public onCreateProcess(): void {\n this.processSelected.emit('create');\n }\n\n public onDeleteConfirm(processDefinition: ProcessDefinition): void {\n (this.$context() === 'case'\n ? this.processManagementService.deleteProcess(processDefinition.key)\n : this.processManagementService.deleteUnlinkedProcess(processDefinition.key)\n ).subscribe(() => {\n this.processManagementStateService.reloadDefinitions();\n\n this.notificationService.showToast({\n title: this.translateService.instant(`interface.delete`),\n caption: this.translateService.instant(`processManagement.deleteNotification`),\n type: 'success',\n });\n });\n }\n\n public onDeleteProcess(process: ProcessDefinitionResult): void {\n this.processToDelete$.next(process.processDefinition);\n this.showDeleteModal$.next(true);\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-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [showActionItems]=\"hasEditPermissions$ | async\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [items]=\"processDefinitions$ | async\"\n [loading]=\"loading$ | async\"\n (rowClicked)=\"editProcessDefinition($event)\"\n>\n <ng-container carbonToolbarContent>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n (click)=\"openModal()\"\n >\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n\n <ng-container [ngTemplateOutlet]=\"createProcess\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"createProcess\"\n [title]=\"'processManagement.noResults.title' | translate\"\n [description]=\"'processManagement.noResults.' + $context() + 'Description' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"processManagement.deleteModal.content\"\n [outputOnConfirm]=\"processToDelete$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"processManagement.deleteModal.title\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #createProcess>\n <button *ngIf=\"hasEditPermissions$ | async\" cdsButton=\"primary\" (click)=\"onCreateProcess()\">\n {{ 'processManagement.createProcess' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\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 {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {\n ButtonModule,\n FileUploaderModule,\n LayerModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {map, startWith} from 'rxjs';\nimport {ProcessManagementService, ProcessManagementStateService} from '../../services';\n\n@Component({\n selector: 'valtimo-process-management-upload',\n templateUrl: './process-management-upload.component.html',\n styleUrls: ['./process-management-upload.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n FileUploaderModule,\n ModalModule,\n LayerModule,\n ReactiveFormsModule,\n ButtonModule,\n ],\n})\nexport class ProcessManagementUploadComponent {\n public readonly modalOpen$ = this.processManagementStateService.openModal$;\n\n public readonly ACCEPTED_FILES: string[] = ['bpmn'];\n\n public readonly form = this.formBuilder.group({\n file: this.formBuilder.control(new Set<any>(), [Validators.required]),\n });\n\n public readonly fileSelected$ = this.form.get('file')?.valueChanges.pipe(\n startWith(null),\n map(value => !!(value instanceof Set && value.size > 0))\n );\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly notificationService: GlobalNotificationService,\n private readonly processManagementService: ProcessManagementService,\n private readonly processManagementStateService: ProcessManagementStateService,\n private readonly translateService: TranslateService\n ) {}\n\n public closeModal(): void {\n this.processManagementStateService.closeModal();\n\n setTimeout(() => {\n this.form.reset();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public uploadProcessBpmn(): void {\n const bpmnFile = this.form.value?.file?.values()?.next()?.value?.file;\n\n if (!bpmnFile) return;\n\n this.processManagementService.deployBpmn(bpmnFile).subscribe({\n next: () => {\n this.notificationService.showNotification({\n type: 'success',\n title: this.translateService.instant('processManagement.upload.success'),\n });\n this.closeModal();\n this.processManagementStateService.reloadDefinitions();\n },\n error: () => {\n this.notificationService.showNotification({\n type: 'error',\n title: this.translateService.instant('processManagement.upload.failure'),\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<cds-modal valtimoCdsModal [open]=\"modalOpen$ | async\" size=\"sm\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'processManagement.upload.modalTitle' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [buttonText]=\"'processManagement.upload.buttonText' | translate\"\n [description]=\"'processManagement.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'processManagement.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"(fileSelected$ | async) === false\"\n (click)=\"uploadProcessBpmn()\"\n >\n {{ 'interface.upload' | translate }}\n </button>\n </cds-modal-footer>\n</cds-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 */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\nimport {LoadingModule, NotificationModule} from 'carbon-components-angular';\nimport {isEqual} from 'lodash';\nimport {BehaviorSubject, combineLatest, startWith, Subscription, switchMap} from 'rxjs';\nimport {distinctUntilChanged, filter} from 'rxjs/operators';\nimport {ProcessDefinitionResult} from '../../models';\nimport {ProcessManagementService} from '../../services';\nimport {getContextObservable} from '../../utils';\nimport {ProcessManagementBuilderComponent} from '../process-management-builder/process-management-builder.component';\nimport {ProcessManagementListComponent} from '../process-management-list/process-management-list.component';\nimport {ProcessManagementUploadComponent} from '../process-management-upload/process-management-upload.component';\n\n@Component({\n selector: 'valtimo-process-management',\n templateUrl: './process-management.component.html',\n styleUrls: ['./process-management.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ProcessManagementListComponent,\n ProcessManagementUploadComponent,\n ProcessManagementBuilderComponent,\n LoadingModule,\n NotificationModule,\n ],\n providers: [TranslateService],\n})\nexport class ProcessManagementComponent implements OnInit, OnDestroy {\n public readonly context$ = getContextObservable(this.route);\n\n public readonly params$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route)),\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n\n public readonly paramsAreSet$ = new BehaviorSubject<boolean>(false);\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly processManagementService: ProcessManagementService,\n private readonly route: ActivatedRoute,\n private readonly router: Router\n ) {}\n\n public ngOnInit(): void {\n this.openParamsAndContextSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onProcessSelected(selectedProcessEvent: ProcessDefinitionResult | 'create'): void {\n const editParam =\n selectedProcessEvent === 'create' ? 'create' : selectedProcessEvent?.processDefinition?.key;\n\n this.router.navigate([editParam], {\n relativeTo: this.route,\n });\n }\n\n private openParamsAndContextSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.context$, this.params$.pipe(startWith(null))]).subscribe(\n ([context, params]) => {\n if (context) this.processManagementService.context = context;\n\n if (params) {\n this.processManagementService.setParams(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n );\n }\n\n this.paramsAreSet$.next(true);\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 paramsAreSet: paramsAreSet$ | async,\n } as obs\"\n>\n @if (obs.paramsAreSet) {\n <valtimo-process-management-list\n (processSelected)=\"onProcessSelected($event)\"\n ></valtimo-process-management-list>\n\n <valtimo-process-management-upload></valtimo-process-management-upload>\n } @else {\n <cds-loading></cds-loading>\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 */\n\nexport * from './process-management-builder/process-management-builder.component';\nexport * from './process-management/process-management.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 {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {ProcessManagementBuilderComponent, ProcessManagementComponent} from './components';\nimport {ProcessManagementRouteData} from './models';\nimport {pendingChangesGuard} from '@valtimo/components';\n\nconst routes: Routes = [\n {\n path: 'processes',\n component: ProcessManagementComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Processes',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as ProcessManagementRouteData,\n },\n {\n path: 'processes/create',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n canDeactivate: [pendingChangesGuard],\n data: {\n title: 'Create new Process',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as ProcessManagementRouteData,\n },\n {\n path: 'processes/:processDefinitionKey',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n canDeactivate: [pendingChangesGuard],\n data: {\n title: 'Process details',\n roles: [ROLE_ADMIN],\n customPageTitle: true,\n context: 'independent',\n } as ProcessManagementRouteData,\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ProcessManagementRoutingModule {}\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 {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CarbonListModule, WidgetModule} from '@valtimo/components';\nimport {ProcessLinkModule} from '@valtimo/process-link';\nimport {\n ButtonModule,\n DropdownModule,\n FileUploaderModule,\n IconModule,\n LayerModule,\n ModalModule,\n NotificationModule,\n RadioModule,\n} from 'carbon-components-angular';\nimport {ProcessManagementBuilderComponent, ProcessManagementComponent} from './components';\nimport {ProcessManagementRoutingModule} from './process-management-routing.module';\n\n@NgModule({\n imports: [\n CommonModule,\n ProcessManagementRoutingModule,\n WidgetModule,\n FormsModule,\n TranslateModule,\n ProcessLinkModule,\n ProcessManagementComponent,\n ProcessManagementBuilderComponent,\n CarbonListModule,\n ButtonModule,\n IconModule,\n DropdownModule,\n ModalModule,\n NotificationModule,\n RadioModule,\n ReactiveFormsModule,\n ModalModule,\n FileUploaderModule,\n LayerModule,\n ],\n})\nexport class ProcessManagementModule {}\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-management\n */\n\nexport * from './lib/process-management.module';\nexport * from './lib/services/process-management-state.service';\nexport * from './lib/components/process-management/process-management.component';\nexport * from './lib/components/process-management-builder/process-management-builder.component';\nexport * from './lib/models';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","map","i4","i6.ProcessManagementEditorService","i6.ProcessManagementService","i9","i11","i3.ProcessManagementService","i3.ProcessManagementStateService","i5","i7","i6","filter","i1.ProcessManagementService","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-process-management.mjs","sources":["../../../../projects/valtimo/process-management/src/lib/constants/bpmn.constants.ts","../../../../projects/valtimo/process-management/src/lib/constants/index.ts","../../../../projects/valtimo/process-management/src/lib/services/process-management-editor.service.ts","../../../../projects/valtimo/process-management/src/lib/services/process-management-state.service.ts","../../../../projects/valtimo/process-management/src/lib/models/window.model.ts","../../../../projects/valtimo/process-management/src/lib/models/bpmn.model.ts","../../../../projects/valtimo/process-management/src/lib/models/process-management.model.ts","../../../../projects/valtimo/process-management/src/lib/models/process.model.ts","../../../../projects/valtimo/process-management/src/lib/models/index.ts","../../../../projects/valtimo/process-management/src/lib/services/process-management.service.ts","../../../../projects/valtimo/process-management/src/lib/services/index.ts","../../../../projects/valtimo/process-management/src/lib/utils/bpmn.utils.ts","../../../../projects/valtimo/process-management/src/lib/utils/process-management.utils.ts","../../../../projects/valtimo/process-management/src/lib/utils/index.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-builder/panel/valtimo-properties-provider.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-builder/panel/index.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-builder/process-management-builder.component.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-builder/process-management-builder.component.html","../../../../projects/valtimo/process-management/src/lib/components/process-management-list/process-management-list.component.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-list/process-management-list.component.html","../../../../projects/valtimo/process-management/src/lib/components/process-management-upload/process-management-upload.component.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management-upload/process-management-upload.component.html","../../../../projects/valtimo/process-management/src/lib/components/process-management/process-management.component.ts","../../../../projects/valtimo/process-management/src/lib/components/process-management/process-management.component.html","../../../../projects/valtimo/process-management/src/lib/components/index.ts","../../../../projects/valtimo/process-management/src/lib/process-management-routing.module.ts","../../../../projects/valtimo/process-management/src/lib/process-management.module.ts","../../../../projects/valtimo/process-management/src/public-api.ts","../../../../projects/valtimo/process-management/src/valtimo-process-management.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\nconst EMPTY_BPMN = `\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<bpmn:definitions xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:bpmn=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" xmlns:bpmndi=\"http://www.omg.org/spec/BPMN/20100524/DI\" xmlns:dc=\"http://www.omg.org/spec/DD/20100524/DC\" targetNamespace=\"http://bpmn.io/schema/bpmn\" id=\"Definitions_1\">\n <bpmn:process id=\"Process_1\" isExecutable=\"false\">\n <bpmn:startEvent id=\"StartEvent_1\"/>\n </bpmn:process>\n <bpmndi:BPMNDiagram id=\"BPMNDiagram_1\">\n <bpmndi:BPMNPlane id=\"BPMNPlane_1\" bpmnElement=\"Process_1\">\n <bpmndi:BPMNShape id=\"_BPMNShape_StartEvent_2\" bpmnElement=\"StartEvent_1\">\n <dc:Bounds height=\"36.0\" width=\"36.0\" x=\"173.0\" y=\"102.0\"/>\n </bpmndi:BPMNShape>\n </bpmndi:BPMNPlane>\n </bpmndi:BPMNDiagram>\n</bpmn:definitions>\n`;\n\nexport {EMPTY_BPMN};\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 './bpmn.constants';\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, OnDestroy} from '@angular/core';\nimport {ProcessDefinition} from '@valtimo/process';\nimport {BehaviorSubject, filter, Observable, Subject, Subscription} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {isEqual} from 'lodash';\nimport {\n ProcessLink,\n ProcessLinkCreateEvent,\n ProcessLinkDeleteEvent,\n ProcessLinkService,\n ProcessLinkUpdateEvent,\n} from '@valtimo/process-link';\nimport {OpenProcessLinkModalEvent} from '../models';\nimport {CaseManagementParams, ManagementContext} from '@valtimo/shared';\nimport {FormDefinitionOption, FormService} from '@valtimo/form';\n\n@Injectable()\nexport class ProcessManagementEditorService implements OnDestroy {\n private readonly _selectionProcessDefinitionSubject$ =\n new BehaviorSubject<ProcessDefinition | null>(null);\n\n public get selectionProcessDefinition$(): Observable<ProcessDefinition> {\n return this._selectionProcessDefinitionSubject$.pipe(\n filter(selectedProcessDefinition => !!selectedProcessDefinition?.id),\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n public get selectionProcessDefinition(): ProcessDefinition {\n return this._selectionProcessDefinitionSubject$.getValue();\n }\n\n private readonly _processLinksForSelectedDefinition$ = new BehaviorSubject<ProcessLink[]>([]);\n\n public get processLinksForSelectedDefinition$(): Observable<ProcessLink[]> {\n return this._processLinksForSelectedDefinition$.asObservable();\n }\n\n public get processLinksForSelectedDefinition(): ProcessLink[] {\n return this._processLinksForSelectedDefinition$.getValue();\n }\n\n private readonly _processLinksFetchedForSelectedDefinition$ = new BehaviorSubject<boolean>(false);\n\n private readonly _subscriptions = new Subscription();\n\n private readonly _openProcessLinkModalEvents$ = new Subject<OpenProcessLinkModalEvent>();\n\n public get openProcessLinkModalEvents$(): Observable<OpenProcessLinkModalEvent> {\n return this._openProcessLinkModalEvents$.asObservable();\n }\n\n public setSelectedProcessDefinition(definition: ProcessDefinition): void {\n this._selectionProcessDefinitionSubject$.next(definition);\n }\n\n private readonly _caseManagementRouteParams$ = new BehaviorSubject<\n [ManagementContext, CaseManagementParams] | null\n >(null);\n\n private readonly _formDefinitionOptions$ = new BehaviorSubject<FormDefinitionOption[]>([]);\n\n public get formDefinitionOptions(): FormDefinitionOption[] {\n return this._formDefinitionOptions$.getValue();\n }\n\n private _updateBpmnViewFunction!: () => void;\n\n private _updatingBpmnView = false;\n\n private _activityIdBusinessIdMap: Record<string, string> = {};\n\n constructor(\n private readonly processLinkService: ProcessLinkService,\n private readonly formService: FormService\n ) {\n this.openSelectedProcessDefinitionSubscription();\n this.openFormDefinitionOptionsSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public setCaseManagementRouteParams(\n context: ManagementContext,\n params: CaseManagementParams\n ): void {\n this._caseManagementRouteParams$.next([context, params]);\n }\n\n public sendOpenProcessLinkModalEvent(\n event: OpenProcessLinkModalEvent,\n updateBpmnViewFunction: () => void\n ): void {\n this._updateBpmnViewFunction = updateBpmnViewFunction;\n this._openProcessLinkModalEvents$.next(event);\n }\n\n public updateProcessLink(event: ProcessLinkUpdateEvent): void {\n this.setProcessLinksForSelectedDefinition(\n this.processLinksForSelectedDefinition.map(processLink => {\n if (processLink.activityId === event.activityId) {\n return {...processLink, ...(event as any)};\n }\n\n return processLink;\n })\n );\n\n this.updateBpmnView();\n }\n\n public createProcessLink(event: ProcessLinkCreateEvent): void {\n this.setProcessLinksForSelectedDefinition([\n ...this.processLinksForSelectedDefinition,\n event as any,\n ]);\n\n this.updateBpmnView();\n }\n\n public deleteProcessLink(\n event: ProcessLinkDeleteEvent,\n updateBpmnViewFunction?: () => void\n ): void {\n if (updateBpmnViewFunction) {\n this._updateBpmnViewFunction = updateBpmnViewFunction;\n }\n\n this.setProcessLinksForSelectedDefinition(\n this.processLinksForSelectedDefinition.filter(\n processLink => processLink.activityId !== event.activityId\n )\n );\n\n this.updateBpmnView();\n }\n\n public setProcessLinksForSelectedDefinition(processLinks: ProcessLink[]): void {\n this._processLinksForSelectedDefinition$.next(processLinks);\n }\n\n public setActivityIdBusinessIdMap(activityIdBusinessIdMap: Record<string, string>): void {\n this._activityIdBusinessIdMap = activityIdBusinessIdMap;\n }\n\n public updateProcessLinksOnIdChange(activityId: string, newBusinessId: string): void {\n const newBusinessIdWithoutLabelString = newBusinessId.replace('_label', '');\n\n if (\n !this._activityIdBusinessIdMap[activityId] ||\n this._activityIdBusinessIdMap[activityId] === newBusinessIdWithoutLabelString\n ) {\n return;\n }\n\n this.updateProcessLinkId(this._activityIdBusinessIdMap[activityId], newBusinessId);\n this._activityIdBusinessIdMap = {...this._activityIdBusinessIdMap, [activityId]: newBusinessId};\n }\n\n private openSelectedProcessDefinitionSubscription(): void {\n this._subscriptions.add(\n this.selectionProcessDefinition$.subscribe(definition => {\n this.fetchProcessLinksForDefinition(definition.id);\n })\n );\n }\n\n private fetchProcessLinksForDefinition(processDefinitionId: string): void {\n this.processLinkService.getProcessLink({processDefinitionId}).subscribe(res => {\n this.setProcessLinksForSelectedDefinition(res);\n });\n }\n\n private updateBpmnView(): void {\n if (!this._updateBpmnViewFunction || this._updatingBpmnView) return;\n this._updatingBpmnView = true;\n this._updateBpmnViewFunction();\n this._updatingBpmnView = false;\n }\n\n private updateProcessLinkId(oldBusinessId: string, newBusinessId: string): void {\n this.setProcessLinksForSelectedDefinition(\n this.processLinksForSelectedDefinition.map(processLink => {\n if (processLink.activityId === oldBusinessId) {\n return {...processLink, activityId: newBusinessId};\n }\n\n return processLink;\n })\n );\n\n this.updateBpmnView();\n }\n\n private openFormDefinitionOptionsSubscription(): void {\n this._subscriptions.add(\n this._caseManagementRouteParams$\n .pipe(\n filter((params): params is [ManagementContext, CaseManagementParams] => params !== null)\n )\n .subscribe(([context, params]) => {\n if (context === 'independent') {\n this.formService\n .getAllUnlinkedFormDefinitions()\n .subscribe(options => this._formDefinitionOptions$.next(options));\n } else {\n this.formService\n .getAllFormDefinitionsForCaseDefinition(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n .subscribe(options => this._formDefinitionOptions$.next(options));\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 */\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class ProcessManagementStateService {\n private readonly _openModal$ = new Subject<boolean>();\n private readonly _reloadDefinitions$ = new BehaviorSubject<null>(null);\n\n public get openModal$(): Observable<boolean> {\n return this._openModal$.asObservable();\n }\n\n public get reloadDefinitions$(): Observable<null> {\n return this._reloadDefinitions$.asObservable();\n }\n\n public openModal(): void {\n this._openModal$.next(true);\n }\n\n public closeModal(): void {\n this._openModal$.next(false);\n }\n\n public reloadDefinitions(): void {\n this._reloadDefinitions$.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 */\n\nimport {ValtimoWindow} from '@valtimo/shared';\nimport {ProcessManagementEditorService} from '../services';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\ninterface ProcessManagementWindow extends ValtimoWindow {\n processManagementEditorService: ProcessManagementEditorService;\n translateService: TranslateService;\n pluginTranslationService: PluginTranslationService;\n}\n\nexport {ProcessManagementWindow};\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\ninterface BpmnElement {\n type: string;\n id: string;\n di?: {id?: string; bpmnElement?: {name?: string}};\n}\nexport {BpmnElement};\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 {ModalParams, ProcessLink} from '@valtimo/process-link';\nimport {ManagementContext} from '@valtimo/shared';\n\ninterface OpenProcessLinkModalEvent {\n modalParams: ModalParams;\n processLink?: ProcessLink;\n}\n\nconst PROCESS_MANAGEMENT_ENDPOINTS = {\n case: '/management/v1/case-definition',\n independent: '/management/v1/process-definition',\n};\n\ninterface ProcessManagementRouteData {\n context: ManagementContext;\n}\n\ninterface UpdateProcessDefinitionCaseDefinitionRequest {\n canInitializeDocument?: boolean;\n startableByUser?: boolean;\n}\n\nexport {\n OpenProcessLinkModalEvent,\n PROCESS_MANAGEMENT_ENDPOINTS,\n ProcessManagementRouteData,\n UpdateProcessDefinitionCaseDefinitionRequest,\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 {ProcessDocumentDefinition} from '@valtimo/document';\nimport {ProcessDefinition} from '@valtimo/process';\nimport {ProcessLink} from '@valtimo/process-link';\n\ninterface ProcessDefinitionResult {\n bpmn20Xml: string;\n processCaseLink?: ProcessDocumentDefinition;\n processDefinition: ProcessDefinition;\n processLinks: ProcessLink[];\n}\n\nexport {ProcessDefinitionResult};\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 './window.model';\nexport * from './bpmn.model';\nexport * from './process-management.model';\nexport * from './process.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 {HttpClient} from '@angular/common/http';\nimport {Injectable, Signal, signal} from '@angular/core';\nimport {BaseApiService, ConfigService, ManagementContext} from '@valtimo/shared';\nimport {BehaviorSubject, combineLatest, Observable, of, switchMap} from 'rxjs';\nimport {toObservable} from '@angular/core/rxjs-interop';\n\nimport {\n PROCESS_MANAGEMENT_ENDPOINTS,\n ProcessDefinitionResult,\n UpdateProcessDefinitionCaseDefinitionRequest,\n} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessManagementService extends BaseApiService {\n private readonly _definitionKey$ = new BehaviorSubject<string | null>(null);\n private readonly _caseDefinitionVersionTag$ = new BehaviorSubject<string | null>(null);\n\n private _$context = signal<ManagementContext>('independent');\n public set context(value: ManagementContext) {\n this._$context.set(value);\n }\n public get $context(): Signal<ManagementContext> {\n return this._$context.asReadonly();\n }\n\n public processes$: Observable<ProcessDefinitionResult[]> = combineLatest([\n this._definitionKey$,\n this._caseDefinitionVersionTag$,\n toObservable(this._$context),\n ]).pipe(\n switchMap(([definitionKey, caseDefinitionVersionTag, context]) => {\n if (context === 'independent') {\n return this.getUnlinkedProcesses();\n }\n if (!!definitionKey && !!caseDefinitionVersionTag) {\n return this.getProcesses(definitionKey, caseDefinitionVersionTag);\n }\n return of([]);\n })\n );\n\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public setParams(caseDefinitionKey: string, caseDefinitionVersionTag: string): void {\n this._definitionKey$.next(caseDefinitionKey);\n this._caseDefinitionVersionTag$.next(caseDefinitionVersionTag);\n }\n\n public deleteProcess(processDefinitionKey: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/${this._definitionKey$.getValue()}/version/${this._caseDefinitionVersionTag$.getValue()}/process-definition/key/${processDefinitionKey}`\n )\n );\n }\n\n public deleteUnlinkedProcess(processDefinitionKey: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/key/${processDefinitionKey}`\n )\n );\n }\n\n public deployBpmn(bpmn: File): Observable<any> {\n const formData: FormData = new FormData();\n formData.append('file', bpmn);\n formData.append(\n 'processLinks',\n new Blob([JSON.stringify([].map(processLink => this.emptyStringToNull(processLink)))], {\n type: 'application/json',\n })\n );\n\n return this.httpClient.post<any>(\n this._$context() === 'case'\n ? this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/${this._definitionKey$.getValue()}/version/${this._caseDefinitionVersionTag$.getValue()}/process-definition`\n )\n : this.getApiUrl(`${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}`),\n formData\n );\n }\n\n public getProcessDefinitionForCase(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n processDefinitionKey: string\n ): Observable<ProcessDefinitionResult> {\n return this.httpClient.get<ProcessDefinitionResult>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/process-definition/key/${processDefinitionKey}`\n )\n );\n }\n\n public getUnlinkedProcessDefinitionsByKey(\n processDefinitionKey: string\n ): Observable<ProcessDefinitionResult[]> {\n return this.httpClient.get<ProcessDefinitionResult[]>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/key/${processDefinitionKey}`\n )\n );\n }\n\n public updateProcessDefinitionCaseDefinitionProperties(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n processDefinitionId: string,\n body: UpdateProcessDefinitionCaseDefinitionRequest\n ): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/process/${processDefinitionId}/properties`\n ),\n body\n );\n }\n\n private getProcesses(\n definitionName: string,\n caseDefinitionVersionTag: string\n ): Observable<ProcessDefinitionResult[]> {\n return this.httpClient.get<ProcessDefinitionResult[]>(\n this.getApiUrl(\n `${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}/${definitionName}/version/${caseDefinitionVersionTag}/process-definition`\n )\n );\n }\n\n private getUnlinkedProcesses(): Observable<ProcessDefinitionResult[]> {\n return this.httpClient.get<ProcessDefinitionResult[]>(\n this.getApiUrl(`${PROCESS_MANAGEMENT_ENDPOINTS[this._$context()]}`)\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\nexport * from './process-management-editor.service';\nexport * from './process-management-state.service';\nexport * from './process-management.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\nconst mapActivityTypeToActivityListenerType = (activityType: string): string => {\n if (activityType === 'bpmn:UserTask') {\n return activityType + ':create';\n }\n\n return activityType + ':start';\n};\n\nexport {mapActivityTypeToActivityListenerType};\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 {ActivatedRoute} from '@angular/router';\nimport {ManagementContext} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\n\nfunction getContextObservable(route: ActivatedRoute): Observable<ManagementContext | null> {\n return route.data.pipe(\n map(data => (data && (data['context'] as ManagementContext)) || null),\n distinctUntilChanged()\n );\n}\n\nexport {getContextObservable};\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 './bpmn.utils';\nexport * from './process-management.utils';\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 {useService} from 'bpmn-js-properties-panel';\nimport {html} from 'htm/preact';\nimport {is} from 'bpmn-js/lib/util/ModelUtil';\nimport {ProcessManagementEditorService} from '../../../services';\nimport {BpmnElement, OpenProcessLinkModalEvent, ProcessManagementWindow} from '../../../models';\nimport {ModalParams, ProcessLink} from '@valtimo/process-link';\nimport {TranslateService} from '@ngx-translate/core';\nimport {mapActivityTypeToActivityListenerType} from '../../../utils';\nimport {VNode} from 'preact';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\nclass ValtimoPropertiesProvider {\n static $inject = ['propertiesPanel', 'translate'];\n\n private get processManagementEditorService(): ProcessManagementEditorService {\n return (window as any as ProcessManagementWindow).processManagementEditorService;\n }\n\n private get translateService(): TranslateService {\n return (window as any as ProcessManagementWindow).translateService;\n }\n\n private get pluginTranslationService(): PluginTranslationService {\n return (window as any as ProcessManagementWindow).pluginTranslationService;\n }\n\n constructor(propertiesPanel: any) {\n propertiesPanel.registerProvider(500, this);\n }\n\n private addAsSecondOrFirst<T>(arr: T[], element: T): T[] {\n if (arr.length === 0) {\n arr.push(element);\n } else {\n arr.splice(1, 0, element);\n }\n return arr;\n }\n\n public getGroups(element: BpmnElement): (groups: any[]) => any[] {\n const processLink: ProcessLink | null =\n this.processManagementEditorService.processLinksForSelectedDefinition.find(\n processLink => processLink.activityId === element.id\n ) || null;\n\n return (groups: any[]) => {\n if (\n is(element, 'bpmn:UserTask') ||\n is(element, 'bpmn:StartEvent') ||\n is(element, 'bpmn:ServiceTask') ||\n is(element, 'bpmn:CallActivity')\n ) {\n const customGroup = {\n id: 'customRootGroup',\n label: 'Process link',\n entries: [this.createCustomRootElement(element, processLink)],\n groupType: 'root',\n };\n this.addAsSecondOrFirst(groups, customGroup);\n }\n return groups;\n };\n }\n\n public createCustomRootElement(element: any, processLink: ProcessLink | null): any {\n return {\n translateService: this.translateService,\n processManagementEditorService: this.processManagementEditorService,\n pluginTranslationService: this.pluginTranslationService,\n id: 'customRootElement',\n processLink,\n element,\n component: CustomRootElement,\n isEdited: () => false,\n };\n }\n}\n\nconst CustomRootElement = (props: {\n translateService: TranslateService;\n processManagementEditorService: ProcessManagementEditorService;\n pluginTranslationService: PluginTranslationService;\n id: string;\n processLink: ProcessLink;\n element: BpmnElement;\n}): VNode => {\n const {\n element,\n processLink,\n translateService,\n processManagementEditorService,\n pluginTranslationService,\n } = props;\n const modeling = useService('modeling');\n const editProcessLinkText = translateService.instant('interface.edit');\n const unlinkText = translateService.instant('processLink.unlink');\n const createText = translateService.instant('processLink.create');\n\n const modalParams: ModalParams = {\n processDefinitionKey: processManagementEditorService.selectionProcessDefinition?.key,\n processDefinitionId: processManagementEditorService.selectionProcessDefinition?.id,\n element: {\n id: element.id,\n type: element.type,\n activityListenerType: mapActivityTypeToActivityListenerType(element.type),\n name: element.di.bpmnElement.name,\n },\n };\n\n const handleCreateClick = (): void => {\n const event: OpenProcessLinkModalEvent = {\n modalParams,\n };\n\n processManagementEditorService.sendOpenProcessLinkModalEvent(event, () => {\n modeling.updateProperties(element, {});\n });\n };\n\n const handleEditClick = (): void => {\n const event: OpenProcessLinkModalEvent = {\n processLink,\n modalParams,\n };\n\n processManagementEditorService.sendOpenProcessLinkModalEvent(event, () => {\n modeling.updateProperties(element, {});\n });\n };\n\n const handleUnlinkClick = (): void => {\n processManagementEditorService.deleteProcessLink({activityId: processLink.activityId}, () => {\n modeling.updateProperties(element, {});\n });\n };\n\n const processLinkFormDefinitionId = processLink?.formDefinitionId;\n const processLinkFormDefinitionName = processManagementEditorService.formDefinitionOptions.find(\n option => option.id === processLinkFormDefinitionId\n )?.name;\n\n if (processLinkFormDefinitionName) {\n return html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__header\">\n <span class=\"process-link-properties-panel__title\">${processLinkFormDefinitionName}</span>\n\n <cds-tag\n class=\"cds--tag cds--tag--blue cds--tag--md cds--layout--size-md cds-tag--no-margin\"\n ><span class=\"cds--tag__label\">\n ${translateService.instant('processLinkType.form')}\n </span>\n </cds-tag>\n </div>\n\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n }\n\n const processLinkFormFlowDefinitionKey = processLink?.formFlowDefinitionKey;\n\n if (processLinkFormFlowDefinitionKey) {\n return html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__header\">\n <span class=\"process-link-properties-panel__title\"\n >${processLinkFormFlowDefinitionKey}</span\n >\n\n <cds-tag\n class=\"cds--tag cds--tag--teal cds--tag--md cds--layout--size-md cds-tag--no-margin\"\n ><span class=\"cds--tag__label\">\n ${translateService.instant('processLinkType.form-flow')}\n </span>\n </cds-tag>\n </div>\n\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n }\n\n const pluginActionKey = processLink?.pluginActionDefinitionKey;\n const pluginActionTranslation =\n pluginTranslationService.instantByPluginActionKey(pluginActionKey);\n const pluginTitleTranslation =\n pluginTranslationService.instantPluginTitleByPluginActionKey(pluginActionKey);\n\n if (pluginActionKey) {\n return html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__header\">\n <span class=\"process-link-properties-panel__title-container\">\n <span class=\"process-link-properties-panel__title\">${pluginTitleTranslation}</span>\n\n <span class=\"process-link-properties-panel__title\">${pluginActionTranslation}</span>\n </span>\n\n <cds-tag\n class=\"cds--tag cds--tag--purple cds--tag--md cds--layout--size-md cds-tag--no-margin\"\n ><span class=\"cds--tag__label\">\n ${translateService.instant('processLinkType.plugin')}\n </span>\n </cds-tag>\n </div>\n\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n }\n\n const uiComponentKey = processLink?.componentKey;\n\n if (uiComponentKey) {\n return html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__header\">\n <span class=\"process-link-properties-panel__title\">${uiComponentKey}</span>\n\n <cds-tag\n class=\"cds--tag cds--tag--magenta cds--tag--md cds--layout--size-md cds-tag--no-margin\"\n ><span class=\"cds--tag__label\">\n ${translateService.instant('processLinkType.ui-component')}\n </span>\n </cds-tag>\n </div>\n\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n }\n\n const genericLinkedPanel = html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--danger cds--btn--sm cds--layout--side-md\"\n onClick=${handleUnlinkClick}\n >\n ${unlinkText}\n </button>\n\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleEditClick}\n >\n ${editProcessLinkText}\n </button>\n </div>\n </div>`;\n\n const genericCreatePanel = html`<div class=\"process-link-properties-panel\">\n <div class=\"process-link-properties-panel__buttons\">\n <button\n class=\"cds--btn cds--btn--primary cds--btn--sm cds--layout--size-md\"\n onClick=${handleCreateClick}\n >\n ${createText}\n </button>\n </div>\n </div>`;\n\n return processLink ? genericLinkedPanel : genericCreatePanel;\n};\n\nconst ValtimoPropertiesProviderModule = {\n __init__: ['customPropertiesProvider'],\n customPropertiesProvider: ['type', ValtimoPropertiesProvider],\n};\n\nexport {ValtimoPropertiesProviderModule};\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 './valtimo-properties-provider';\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 {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n computed,\n ElementRef,\n OnDestroy,\n Signal,\n ViewChild,\n} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n BreadcrumbService,\n FitPageDirective,\n ModalService,\n PageHeaderService,\n PageTitleService,\n PendingChangesComponent,\n RenderInPageHeaderDirective,\n} from '@valtimo/components';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n getCaseManagementRouteParamsAndContext,\n GlobalNotificationService,\n ManagementContext,\n} from '@valtimo/shared';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\nimport {\n ProcessLinkButtonService,\n ProcessLinkCreateEvent,\n ProcessLinkEditMode,\n ProcessLinkModule,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '@valtimo/process-link';\nimport {\n BpmnPropertiesPanelModule,\n BpmnPropertiesProviderModule,\n CamundaPlatformPropertiesProviderModule,\n} from 'bpmn-js-properties-panel';\nimport Modeler from 'bpmn-js/lib/Modeler';\nimport NavigatedViewer from 'bpmn-js/lib/NavigatedViewer';\nimport camundaPlatformBehaviors from 'camunda-bpmn-js-behaviors/lib/camunda-platform';\nimport CamundaBpmnModdle from 'camunda-bpmn-moddle/resources/camunda.json';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n IconService,\n ListItem,\n LoadingModule,\n SelectModule,\n TagModule,\n ToggleModule,\n TooltipModule,\n} from 'carbon-components-angular';\nimport {isEqual} from 'lodash';\nimport {NGXLogger} from 'ngx-logger';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n from,\n map,\n Observable,\n of,\n startWith,\n Subject,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {EMPTY_BPMN} from '../../constants';\nimport {\n OpenProcessLinkModalEvent,\n ProcessDefinitionResult,\n ProcessManagementWindow,\n UpdateProcessDefinitionCaseDefinitionRequest,\n} from '../../models';\nimport {ProcessManagementEditorService, ProcessManagementService} from '../../services';\nimport {getContextObservable} from '../../utils';\nimport {ValtimoPropertiesProviderModule} from './panel';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\n@Component({\n selector: 'valtimo-process-management-builder',\n templateUrl: './process-management-builder.component.html',\n styleUrls: ['./process-management-builder.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FitPageDirective,\n LoadingModule,\n RenderInPageHeaderDirective,\n DropdownModule,\n ReactiveFormsModule,\n SelectModule,\n ButtonModule,\n IconModule,\n TranslateModule,\n TagModule,\n ProcessLinkModule,\n ProcessLinkModule,\n DialogModule,\n ToggleModule,\n TooltipModule,\n ],\n providers: [\n ProcessManagementEditorService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n ProcessLinkButtonService,\n ],\n})\nexport class ProcessManagementBuilderComponent\n extends PendingChangesComponent\n implements AfterViewInit, OnDestroy\n{\n @ViewChild('modeler', {static: false}) modelerElementRef!: ElementRef;\n @ViewChild('modelerPanel', {static: false}) modelerPanelElementRef!: ElementRef;\n @ViewChild('viewer', {static: false}) viewerElementRef!: ElementRef;\n @ViewChild('viewerPanel', {static: false}) viewerPanelElementRef!: ElementRef;\n\n private readonly _selectedProcess$ = new BehaviorSubject<\n ProcessDefinitionResult | 'create' | null\n >(null);\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n private _bpmnModeler!: Modeler;\n private _bpmnViewer!: NavigatedViewer;\n\n public readonly isReadOnlyProcess$ = new BehaviorSubject<boolean>(false);\n public readonly isSystemProcess$ = new BehaviorSubject<boolean>(false);\n\n public readonly canInitializeDocument$ = new BehaviorSubject<boolean>(false);\n public readonly startableByUser$ = new BehaviorSubject<boolean>(false);\n\n public readonly selectedProcessDefinitionXml$ =\n this.processManagementEditorService.selectionProcessDefinition$.pipe(\n filter(selectedProcessDefinition => !!selectedProcessDefinition?.id),\n distinctUntilChanged((previous, current) => isEqual(previous, current)),\n tap(selectedProcessDefinition => {\n this.loading$.next(true);\n this.pageTitleService.setCustomPageTitle(selectedProcessDefinition.name);\n }),\n switchMap(selectedProcessDefinition =>\n this.processService.getProcessDefinitionXml(selectedProcessDefinition.id)\n ),\n tap(result => {\n this.cleanUpListenersOnModeler();\n this._bpmnModeler?.importXML(result.bpmn20Xml);\n this._bpmnViewer?.importXML(result.bpmn20Xml);\n this.isReadOnlyProcess$.next(result.readOnly);\n this.isSystemProcess$.next(result.systemProcess);\n this.loading$.next(false);\n })\n );\n\n public readonly changesPending$ = new BehaviorSubject<boolean>(false);\n\n public readonly editParam$: Observable<string | 'create' | null> = this.route.url.pipe(\n map(segments => {\n const lastSegment = segments[segments.length - 1]?.path;\n if (lastSegment === 'create') {\n return 'create';\n }\n const param = this.route.snapshot.paramMap.get('processDefinitionKey');\n return param ? param : null;\n }),\n filter(editParam => !!editParam)\n );\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly managementParams$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route))\n );\n\n public readonly params$: Observable<any> | undefined = getCaseManagementRouteParams(this.route);\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n this.params$,\n this.context$,\n ]).pipe(\n switchMap(([params, context]) =>\n this.editPermissionsService.hasPermissionsToEditBasedOnContext(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag,\n context\n )\n )\n );\n\n private readonly _reload$ = new Subject<null>();\n\n public readonly processDefinitionVersions$: Observable<ProcessDefinition[]> = combineLatest([\n this.editParam$,\n this.context$,\n this._reload$.pipe(startWith(null)),\n ]).pipe(\n switchMap(([editParam, context]) =>\n context === 'independent'\n ? this.processManagementService.getUnlinkedProcessDefinitionsByKey(editParam)\n : of([] as ProcessDefinitionResult[])\n ),\n map(result => result.map(resultItem => resultItem.processDefinition)),\n tap(processDefinitions => {\n this.changesPending$.next(false);\n this.pendingChanges = false;\n this.setSelectedProcessDefinitionToLatest(processDefinitions);\n })\n );\n\n public readonly processDefinitionVersionsListItems$: Observable<ListItem[]> = combineLatest([\n this.processDefinitionVersions$,\n this.processManagementEditorService.selectionProcessDefinition$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([processDefinitionVersions, selectionProcessDefinition]) =>\n processDefinitionVersions\n .map(processDefinitionVersion => ({\n id: processDefinitionVersion.version,\n content: `${this.translateService.instant('processManagement.version')}${processDefinitionVersion.version}`,\n selected: selectionProcessDefinition.version === processDefinitionVersion.version,\n processDefinitionVersion,\n }))\n .sort((a, b) => b.id - a.id)\n )\n );\n\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n public readonly creatingNewProcess$ = new BehaviorSubject<boolean>(false);\n\n public readonly $extraSpace: Signal<number> = computed(() =>\n this.processManagementService.$context() === 'case' ? 0 : 0\n );\n\n public readonly updatingProcessDefinitionCaseDefinition$ = new BehaviorSubject<boolean>(false);\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly breadcrumbService: BreadcrumbService,\n private readonly iconService: IconService,\n private readonly logger: NGXLogger,\n private readonly modalService: ModalService,\n private readonly notificationService: GlobalNotificationService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly pageTitleService: PageTitleService,\n private readonly processLinkService: ProcessLinkService,\n private readonly processLinkStateService: ProcessLinkStateService,\n private readonly processManagementEditorService: ProcessManagementEditorService,\n private readonly processManagementService: ProcessManagementService,\n private readonly processService: ProcessService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly pluginTranslationService: PluginTranslationService,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n super();\n this.setProcessManagementWindow();\n }\n\n public ngAfterViewInit(): void {\n this.pageTitleService.disableReset();\n this.openParamsAndContextSubscription();\n this.initModeler();\n this.initViewer();\n this.subscribeToOpenProcessLinkModalEvents();\n this.subscribeToProcessLinkUpdateEvents();\n this.subscribeToProcessLinkCreateEvents();\n this.subscribeToProcessLinkDeleteEvents();\n this.processLinkStateService.setEditMode(ProcessLinkEditMode.EMIT_EVENTS);\n this.initEditing();\n }\n\n public ngOnDestroy(): void {\n this._bpmnModeler?.destroy();\n this._bpmnViewer?.destroy();\n this._subscriptions.unsubscribe();\n this.pageTitleService.enableReset();\n this.pageTitleService.clearPageActionsViewContainerRef();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public export(isReadOnlyProcess: boolean): void {\n (isReadOnlyProcess ? from(this._bpmnViewer.saveXML()) : from(this._bpmnModeler.saveXML()))\n .pipe(take(1))\n .subscribe(result => {\n const file = new Blob([result.xml ?? ''], {type: 'text/xml'});\n const link = document.createElement('a');\n link.download = 'diagram.bpmn';\n link.href = window.URL.createObjectURL(file);\n link.click();\n window.URL.revokeObjectURL(link.href);\n link.remove();\n });\n }\n\n public deployChanges(isReadOnlyProcess: boolean): void {\n combineLatest([\n from(isReadOnlyProcess ? this._bpmnViewer.saveXML() : this._bpmnModeler.saveXML()),\n this.processManagementEditorService.processLinksForSelectedDefinition$,\n this.processManagementEditorService.selectionProcessDefinition$,\n this.context$,\n this.managementParams$.pipe(startWith(null)),\n ])\n .pipe(\n take(1),\n switchMap(([result, processLinks, selectedProcessDefinition, context, params]) => {\n if (context === 'case') {\n return this.processLinkService.deployProcessWithProcessLinksForCase(\n processLinks as ProcessLinkCreateEvent[],\n selectedProcessDefinition.id,\n !isReadOnlyProcess ? (result?.xml ?? '') : null,\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? '',\n this.canInitializeDocument$.getValue(),\n this.startableByUser$.getValue()\n );\n }\n\n return this.processLinkService.deployProcessWithProcessLinks(\n processLinks as ProcessLinkCreateEvent[],\n selectedProcessDefinition.id,\n !isReadOnlyProcess ? (result?.xml ?? '') : null\n );\n }),\n switchMap(() => this.context$)\n )\n .subscribe({\n next: context => {\n if (context === 'independent') {\n this.pendingChanges = false;\n this.reload();\n this.showNotification('success');\n } else {\n this.pendingChanges = false;\n this.navigateBack('success');\n }\n },\n error: () => {\n this.showNotification('error');\n },\n });\n }\n\n public deployNewProcessDefinition(): void {\n combineLatest([\n from(this._bpmnModeler.saveXML()),\n this.processManagementEditorService.processLinksForSelectedDefinition$,\n this.context$,\n this.managementParams$.pipe(startWith(null)),\n ])\n .pipe(\n take(1),\n switchMap(([result, processLinks, context, params]) => {\n const mappedProcessLinks = processLinks.map(link => ({\n ...link,\n processDefinitionId: '-',\n })) as ProcessLinkCreateEvent[];\n\n return context === 'independent'\n ? this.processLinkService.deployProcessWithProcessLinks(\n mappedProcessLinks,\n null,\n result.xml ?? ''\n )\n : this.processLinkService.deployProcessWithProcessLinksForCase(\n mappedProcessLinks,\n null,\n result.xml ?? '',\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n this.canInitializeDocument$.getValue(),\n this.startableByUser$.getValue()\n );\n })\n )\n .subscribe({\n next: () => {\n this.pendingChanges = false;\n this.navigateBack('success');\n },\n error: () => {\n this.showNotification('error');\n },\n });\n }\n\n public selectedVersionChange(event: {item: {processDefinitionVersion: ProcessDefinition}}): void {\n this.processManagementEditorService.selectionProcessDefinition$\n .pipe(take(1))\n .subscribe(selectedVersion => {\n if (selectedVersion.id !== event.item.processDefinitionVersion.id) {\n this.processManagementEditorService.setSelectedProcessDefinition(\n event?.item?.processDefinitionVersion\n );\n this.changesPending$.next(false);\n }\n });\n }\n\n public navigateBack(notification: null | 'success' | 'error'): void {\n this.router.navigate(['../'], {relativeTo: this.route});\n\n if (!notification) return;\n\n this.showNotification(notification);\n }\n\n public onProcessToggleChange(\n field: keyof UpdateProcessDefinitionCaseDefinitionRequest,\n value: boolean\n ): void {\n if (field === 'canInitializeDocument') this.canInitializeDocument$.next(value);\n if (field === 'startableByUser') this.startableByUser$.next(value);\n this.changesPending$.next(true);\n }\n\n private setProcessManagementWindow(): void {\n const processManagementWindow = window as any as ProcessManagementWindow;\n\n if (!processManagementWindow) return;\n\n processManagementWindow.processManagementEditorService = this.processManagementEditorService;\n processManagementWindow.translateService = this.translateService;\n processManagementWindow.pluginTranslationService = this.pluginTranslationService;\n }\n\n private showNotification(notification: null | 'success' | 'error'): void {\n this.notificationService.showToast({\n caption: this.translateService.instant(`processManagement.${notification}Notification`),\n type: notification,\n title: this.translateService.instant(`interface.${notification}`),\n });\n }\n\n private setSelectedProcessDefinitionToLatest(processDefinitions: ProcessDefinition[]): void {\n if ((processDefinitions || []).length === 0) return;\n\n const latest = processDefinitions.reduce((acc, version) =>\n version.version > acc.version ? version : acc\n );\n\n this.processManagementEditorService.setSelectedProcessDefinition(latest);\n }\n\n private initModeler(): void {\n this._bpmnModeler = new Modeler({\n additionalModules: [\n BpmnPropertiesPanelModule,\n BpmnPropertiesProviderModule,\n CamundaPlatformPropertiesProviderModule,\n camundaPlatformBehaviors,\n ValtimoPropertiesProviderModule,\n ],\n moddleExtensions: {camunda: CamundaBpmnModdle},\n propertiesPanel: {parent: this.modelerPanelElementRef.nativeElement},\n });\n\n this._bpmnModeler?.attachTo(this.modelerElementRef.nativeElement);\n\n this._bpmnModeler.on('commandStack.changed', () => {\n this.changesPending$.next(true);\n this.pendingChanges = true;\n });\n\n this._bpmnModeler.on('import.done', () => {\n const idMap: Record<string, string> = {};\n const elementRegistry = this._bpmnModeler.get('elementRegistry') as any;\n\n elementRegistry.forEach(element => {\n const activityId = element?.di?.id;\n const businessId = element?.id;\n\n if (!activityId || !businessId) return;\n\n idMap[activityId] = businessId;\n });\n\n this.processManagementEditorService.setActivityIdBusinessIdMap(idMap);\n this.listenToActivityChangesOnModeler();\n });\n }\n\n private initViewer(): void {\n const disableCommands = () => {\n const commandStack = this._bpmnViewer.get('commandStack') as any;\n const originalExecute = commandStack?.execute?.bind(commandStack);\n\n if (commandStack?.execute) {\n commandStack.execute = (command: string, context: any) => {\n if (\n command === 'elements.delete' ||\n command === 'elements.copy' ||\n command === 'elements.paste' ||\n command === 'elements.create'\n ) {\n return;\n }\n originalExecute(command, context);\n };\n }\n };\n\n const DisableBpmnWriteModule = {\n paletteProvider: ['value', {}],\n contextPadProvider: ['value', {}],\n directEditing: [\n 'value',\n {\n registerProvider: () => {},\n activate: () => {},\n deactivate: () => {},\n isActive: () => false,\n },\n ],\n move: ['value', null],\n resizeHandles: ['value', {addResizer: () => {}, removeResizers: () => {}}],\n };\n\n this._bpmnViewer = new Modeler({\n additionalModules: [\n DisableBpmnWriteModule,\n BpmnPropertiesPanelModule,\n ValtimoPropertiesProviderModule,\n ],\n moddleExtensions: {camunda: CamundaBpmnModdle},\n propertiesPanel: {parent: this.viewerPanelElementRef.nativeElement},\n });\n\n this._bpmnViewer?.attachTo(this.viewerElementRef.nativeElement);\n\n this._bpmnViewer.on('commandStack.changed', () => {\n this.changesPending$.next(true);\n this.pendingChanges = true;\n });\n\n this._bpmnViewer.on('import.done', () => {\n disableCommands();\n });\n }\n\n private reload(): void {\n this._reload$.next(null);\n }\n\n private handleUpdateEvent(event: OpenProcessLinkModalEvent): void {\n this.modalService.setModalData(event?.modalParams);\n this.processLinkStateService.setModalParams(event?.modalParams);\n this.processLinkStateService.setElementName(event?.modalParams?.element?.name ?? '');\n this.processLinkStateService.selectProcessLink(event.processLink);\n this.processLinkStateService.showModal();\n }\n\n private handleCreateEvent(event: OpenProcessLinkModalEvent): void {\n this.processLinkService\n .getProcessLinkCandidates(event.modalParams.element.activityListenerType ?? '')\n .subscribe(candidates => {\n this.modalService.setModalData(event?.modalParams);\n this.processLinkStateService.setModalParams(event?.modalParams);\n this.processLinkStateService.setElementName(event?.modalParams?.element?.name ?? '');\n this.processLinkStateService.setAvailableProcessLinkTypes(candidates);\n this.processLinkStateService.showModal();\n });\n }\n\n private subscribeToOpenProcessLinkModalEvents(): void {\n this._subscriptions.add(\n this.processManagementEditorService.openProcessLinkModalEvents$.subscribe(event => {\n if (event.processLink) {\n this.handleUpdateEvent(event);\n } else {\n this.handleCreateEvent(event);\n }\n })\n );\n }\n\n private subscribeToProcessLinkUpdateEvents(): void {\n this._subscriptions.add(\n this.processLinkStateService.processLinkUpdateEvents$.subscribe(event => {\n this.processManagementEditorService.updateProcessLink(event);\n this.processLinkStateService.stopSaving();\n this.processLinkStateService.closeModal();\n })\n );\n }\n\n private subscribeToProcessLinkCreateEvents(): void {\n this._subscriptions.add(\n this.processLinkStateService.processLinkCreateEvents$.subscribe(event => {\n this.processManagementEditorService.createProcessLink(event);\n this.processLinkStateService.stopSaving();\n this.processLinkStateService.closeModal();\n })\n );\n }\n\n private subscribeToProcessLinkDeleteEvents(): void {\n this._subscriptions.add(\n this.processLinkStateService.processLinkDeleteEvents$.subscribe(event => {\n this.processManagementEditorService.deleteProcessLink(event);\n this.processLinkStateService.stopSaving();\n this.processLinkStateService.closeModal();\n })\n );\n }\n\n private initIfCreate(): void {\n if (this._selectedProcess$.getValue() !== 'create') return;\n\n this.creatingNewProcess$.next(true);\n this._bpmnModeler?.importXML(EMPTY_BPMN);\n this.isReadOnlyProcess$.next(false);\n this.isSystemProcess$.next(false);\n this.loading$.next(false);\n }\n\n private shapeAddedHandler = (event: any): void => {\n this.logger.debug('Shape added:', event);\n };\n\n private shapeRemovedHandler = (event: any): void => {\n this.logger.debug('Shape removed:', event);\n\n const activityId = event?.element?.id;\n\n if (!activityId) return;\n\n this.processManagementEditorService.deleteProcessLink({activityId});\n };\n\n private elementChangedHandler = (event: any): void => {\n this.logger.debug('Element changed:', event);\n\n const activityId = event?.element?.di?.id;\n const businessId = event?.element?.id;\n\n if (!activityId || !businessId) return;\n\n this.processManagementEditorService.updateProcessLinksOnIdChange(activityId, businessId);\n };\n\n private listenToActivityChangesOnModeler(): void {\n const eventBus = this._bpmnModeler.get('eventBus') as any;\n\n if (!eventBus) return;\n\n eventBus.on('shape.added', this.shapeAddedHandler);\n eventBus.on('shape.removed', this.shapeRemovedHandler);\n eventBus.on('element.changed', this.elementChangedHandler);\n }\n\n private cleanUpListenersOnModeler(): void {\n const eventBus = this._bpmnModeler.get('eventBus') as any;\n\n if (!eventBus) return;\n\n eventBus.off('shape.added', this.shapeAddedHandler);\n eventBus.off('shape.removed', this.shapeRemovedHandler);\n eventBus.off('element.changed', this.elementChangedHandler);\n }\n\n private initProcessDefinition(): void {\n this._subscriptions.add(\n this._selectedProcess$\n .pipe(\n filter(selectedProcess => selectedProcess !== null && selectedProcess !== 'create'),\n distinctUntilChanged((previous, current) => isEqual(previous, current)),\n tap(() => this.loading$.next(true))\n )\n .subscribe(result => {\n const processDefinitionResult = result as ProcessDefinitionResult;\n\n this.cleanUpListenersOnModeler();\n\n this._bpmnModeler?.importXML(processDefinitionResult.bpmn20Xml);\n this._bpmnViewer?.importXML(processDefinitionResult.bpmn20Xml);\n\n this.canInitializeDocument$.next(\n !!processDefinitionResult?.processCaseLink?.canInitializeDocument\n );\n this.startableByUser$.next(!!processDefinitionResult?.processCaseLink?.startableByUser);\n\n this.loading$.next(false);\n })\n );\n }\n\n private openParamsAndContextSubscription(): void {\n this._subscriptions.add(\n getCaseManagementRouteParamsAndContext(this.route).subscribe(([context, params]) => {\n if (context) this.processManagementService.context = context;\n\n if (params) {\n this.processManagementService.setParams(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n );\n }\n\n this.initBreadcrumbs(params, context);\n this.processManagementEditorService.setCaseManagementRouteParams(context, params);\n })\n );\n }\n\n private initBreadcrumbs(params: CaseManagementParams, context: ManagementContext): void {\n if (context === 'independent') return;\n\n const route = `/case-management/case/${params.caseDefinitionKey}/version/${params.caseDefinitionVersionTag}`;\n\n this.breadcrumbService.setThirdBreadcrumb({\n route: [route],\n content: `${params.caseDefinitionKey} (${params.caseDefinitionVersionTag})`,\n href: route,\n });\n\n const routeWithForms = `${route}/processes`;\n\n this.breadcrumbService.setFourthBreadcrumb({\n route: [routeWithForms],\n content: this.translateService.instant('caseManagement.tabs.processes'),\n href: routeWithForms,\n });\n }\n\n private initEditing(): void {\n combineLatest([this.editParam$, this.managementParams$.pipe(startWith(null)), this.context$])\n .pipe(\n take(1),\n switchMap(([editParam, params, context]) => {\n if (editParam === 'create') {\n this._selectedProcess$.next('create');\n this.initIfCreate();\n\n return of(null);\n }\n\n return context === 'case'\n ? this.processManagementService.getProcessDefinitionForCase(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag,\n editParam\n )\n : this.processManagementService\n .getUnlinkedProcessDefinitionsByKey(editParam)\n .pipe(map(processDefinitionResults => processDefinitionResults[0]));\n }),\n tap(res => {\n if (res) {\n this._selectedProcess$.next(res);\n this.processManagementEditorService.setSelectedProcessDefinition(res.processDefinition);\n this.processManagementEditorService.setProcessLinksForSelectedDefinition(\n res.processLinks\n );\n this.pageTitleService.setCustomPageTitle(res.processDefinition.name || '-');\n }\n\n this.initProcessDefinition();\n })\n )\n .subscribe();\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 fitPage\n [extraSpace]=\"$extraSpace()\"\n [disableOverflow]=\"true\"\n *ngIf=\"{\n processDefinitionVersions: processDefinitionVersions$ | async,\n selectedProcessDefinitionXml: selectedProcessDefinitionXml$ | async,\n loading: loading$ | async,\n isReadOnlyProcess: isReadOnlyProcess$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n } as obs\"\n data-carbon-theme=\"g10\"\n class=\"bpmn__container\"\n>\n <div\n class=\"bpmn__modeler\"\n [style.display]=\"obs.isReadOnlyProcess || !obs.hasEditPermissions ? 'none' : 'flex'\"\n >\n <div class=\"bpmn__modeler-canvas\" #modeler></div>\n\n <div class=\"bpmn__modeler-panel\" #modelerPanel></div>\n </div>\n\n <div\n class=\"bpmn__modeler\"\n [style.display]=\"obs.isReadOnlyProcess || !obs.hasEditPermissions ? 'flex' : 'none'\"\n >\n <div class=\"bpmn__modeler-canvas\" #viewer></div>\n\n <div class=\"bpmn__modeler-panel\" #viewerPanel></div>\n </div>\n</div>\n\n<valtimo-process-link-modal></valtimo-process-link-modal>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"page-header-actions\"\n *ngIf=\"{\n processDefinitionVersionsListItems: processDefinitionVersionsListItems$ | async,\n loading: loading$ | async,\n changesPending: changesPending$ | async,\n isReadOnlyProcess: isReadOnlyProcess$ | async,\n isSystemProcess: isSystemProcess$ | async,\n compactMode: compactMode$ | async,\n creatingNewProcess: creatingNewProcess$ | async,\n context: context$ | async,\n hasEditPermissions: hasEditPermissions$ | async,\n canInitializeDocument: canInitializeDocument$ | async,\n startableByUser: startableByUser$ | async,\n updatingProcessDefinitionCaseDefinition: updatingProcessDefinitionCaseDefinition$ | async,\n } as actionsObs\"\n >\n <div class=\"page-header-actions__left-container\">\n <cds-dropdown\n *ngIf=\"!actionsObs.creatingNewProcess && actionsObs?.context === 'independent'\"\n class=\"page-header-actions__version-dropdown\"\n (selected)=\"selectedVersionChange($event)\"\n [disabled]=\"\n actionsObs.loading ||\n (actionsObs.processDefinitionVersionsListItems || []).length === 0 ||\n (actionsObs.processDefinitionVersionsListItems || []).length === 1\n \"\n [size]=\"actionsObs.compactMode ? 'sm' : 'md'\"\n >\n <cds-dropdown-list\n [items]=\"actionsObs.processDefinitionVersionsListItems || []\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"page-header-actions__tags\">\n <cds-tag\n *ngIf=\"actionsObs.isReadOnlyProcess || !actionsObs.hasEditPermissions\"\n type=\"blue\"\n >{{ 'processManagement.readOnly' | translate }}</cds-tag\n >\n\n <cds-tag *ngIf=\"actionsObs.isSystemProcess\" type=\"red\">{{\n 'processManagement.systemProcess' | translate\n }}</cds-tag>\n </div>\n </div>\n\n <div class=\"page-header-actions__buttons\">\n @if (actionsObs.context === 'case') {\n <cds-tooltip\n [description]=\"'processCaseConnection.processCreatesCaseTooltip' | translate\"\n >\n <cds-toggle\n [onText]=\"'processManagement.canInitializeDocument' | translate\"\n [offText]=\"'processManagement.canInitializeDocument' | translate\"\n [checked]=\"actionsObs.canInitializeDocument\"\n [disabled]=\"\n actionsObs.loading ||\n actionsObs.updatingProcessDefinitionCaseDefinition ||\n !actionsObs.hasEditPermissions\n \"\n (checkedChange)=\"onProcessToggleChange('canInitializeDocument', $event)\"\n ></cds-toggle>\n </cds-tooltip>\n\n <cds-tooltip\n [description]=\"'processCaseConnection.startableWithinCaseTooltip' | translate\"\n >\n <cds-toggle\n [onText]=\"'processManagement.startableByUser' | translate\"\n [offText]=\"'processManagement.startableByUser' | translate\"\n [checked]=\"actionsObs.startableByUser\"\n [disabled]=\"\n actionsObs.loading ||\n actionsObs.updatingProcessDefinitionCaseDefinition ||\n !actionsObs.hasEditPermissions\n \"\n (checkedChange)=\"onProcessToggleChange('startableByUser', $event)\"\n ></cds-toggle\n ></cds-tooltip>\n }\n\n <button\n *ngIf=\"actionsObs.context === 'case'\"\n cdsButton=\"secondary\"\n [size]=\"actionsObs.compactMode ? 'sm' : 'md'\"\n (click)=\"navigateBack(null)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"arrow--left\" size=\"16\"></svg>\n\n <span>{{ 'interface.back' | translate }}</span>\n </button>\n\n <button\n [disabled]=\"!actionsObs.changesPending\"\n cdsButton=\"primary\"\n (click)=\"\n !actionsObs.creatingNewProcess\n ? deployChanges(actionsObs.isReadOnlyProcess)\n : deployNewProcessDefinition()\n \"\n [size]=\"actionsObs.compactMode ? 'sm' : 'md'\"\n >\n {{ 'processManagement.deploy' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"deploy\" size=\"16\"></svg>\n </button>\n\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option\n [disabled]=\"actionsObs.loading\"\n (selected)=\"export(actionsObs.isReadOnlyProcess)\"\n >{{ 'interface.export' | translate }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n </div>\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 */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, EventEmitter, Output} from '@angular/core';\nimport {Upload16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {\n EditPermissionsService,\n EnvironmentService,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {ProcessDefinition} from '@valtimo/process';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, Observable, switchMap, tap} from 'rxjs';\nimport {ProcessDefinitionResult} from '../../models';\nimport {ProcessManagementService, ProcessManagementStateService} from '../../services';\nimport {ActivatedRoute} from '@angular/router';\nimport {getContextObservable} from '../../utils';\n\n@Component({\n selector: 'valtimo-process-management-list',\n templateUrl: './process-management-list.component.html',\n styleUrls: ['./process-management-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n CarbonListModule,\n IconModule,\n IconModule,\n TranslateModule,\n ConfirmationModalModule,\n ],\n})\nexport class ProcessManagementListComponent {\n @Output() public readonly processSelected = new EventEmitter<\n ProcessDefinitionResult | 'create'\n >();\n\n public readonly $context = this.processManagementService.$context;\n public readonly processToDelete$ = new BehaviorSubject<ProcessDefinition | null>(null);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly ACTION_ITEMS: ActionItem[] = [\n {label: 'Delete', callback: this.onDeleteProcess.bind(this), type: 'danger'},\n ];\n\n public readonly context$ = getContextObservable(this.route);\n\n public readonly processDefinitions$: Observable<ProcessDefinitionResult[]> =\n this.processManagementStateService.reloadDefinitions$.pipe(\n tap(() => this.loading$.next(true)),\n switchMap(() => this.processManagementService.processes$),\n tap(() => this.loading$.next(false))\n );\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n getCaseManagementRouteParams(this.route),\n this.context$,\n ]).pipe(\n switchMap(([params, context]) => {\n return this.editPermissionsService.hasPermissionsToEditBasedOnContext(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag,\n context\n );\n })\n );\n\n public readonly FIELDS: ColumnConfig[] = [\n {key: 'processDefinition.name', label: 'processManagement.name'},\n {key: 'processDefinition.key', label: 'processManagement.key'},\n {\n key: 'processDefinition.readOnly',\n label: 'processManagement.readOnly',\n viewType: ViewType.BOOLEAN,\n },\n ...(this.processManagementService.$context() === 'case'\n ? [\n {\n key: 'processCaseLink.canInitializeDocument',\n label: 'processManagement.canInitializeDocument',\n viewType: ViewType.BOOLEAN,\n },\n ]\n : []),\n ...(this.processManagementService.$context() === 'case'\n ? [\n {\n key: 'processCaseLink.startableByUser',\n label: 'processManagement.startableByUser',\n viewType: ViewType.BOOLEAN,\n },\n ]\n : []),\n ];\n\n constructor(\n private readonly iconService: IconService,\n private readonly notificationService: GlobalNotificationService,\n private readonly processManagementService: ProcessManagementService,\n private readonly processManagementStateService: ProcessManagementStateService,\n private readonly translateService: TranslateService,\n private readonly environmentService: EnvironmentService,\n private readonly route: ActivatedRoute,\n private readonly editPermissionsService: EditPermissionsService\n ) {\n this.iconService.registerAll([Upload16]);\n }\n\n public editProcessDefinition(processDefinition: ProcessDefinitionResult): void {\n this.processSelected.emit(processDefinition);\n }\n\n public openModal(): void {\n this.processManagementStateService.openModal();\n }\n\n public onCreateProcess(): void {\n this.processSelected.emit('create');\n }\n\n public onDeleteConfirm(processDefinition: ProcessDefinition): void {\n (this.$context() === 'case'\n ? this.processManagementService.deleteProcess(processDefinition.key)\n : this.processManagementService.deleteUnlinkedProcess(processDefinition.key)\n ).subscribe(() => {\n this.processManagementStateService.reloadDefinitions();\n\n this.notificationService.showToast({\n title: this.translateService.instant(`interface.delete`),\n caption: this.translateService.instant(`processManagement.deleteNotification`),\n type: 'success',\n });\n });\n }\n\n public onDeleteProcess(process: ProcessDefinitionResult): void {\n this.processToDelete$.next(process.processDefinition);\n this.showDeleteModal$.next(true);\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-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [showActionItems]=\"hasEditPermissions$ | async\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [items]=\"processDefinitions$ | async\"\n [loading]=\"loading$ | async\"\n (rowClicked)=\"editProcessDefinition($event)\"\n>\n <ng-container carbonToolbarContent>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n (click)=\"openModal()\"\n >\n <svg cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n\n <ng-container [ngTemplateOutlet]=\"createProcess\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"createProcess\"\n [title]=\"'processManagement.noResults.title' | translate\"\n [description]=\"'processManagement.noResults.' + $context() + 'Description' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"processManagement.deleteModal.content\"\n [outputOnConfirm]=\"processToDelete$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"processManagement.deleteModal.title\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #createProcess>\n <button *ngIf=\"hasEditPermissions$ | async\" cdsButton=\"primary\" (click)=\"onCreateProcess()\">\n {{ 'processManagement.createProcess' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\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 {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\nimport {GlobalNotificationService} from '@valtimo/shared';\nimport {\n ButtonModule,\n FileUploaderModule,\n LayerModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {map, startWith} from 'rxjs';\nimport {ProcessManagementService, ProcessManagementStateService} from '../../services';\n\n@Component({\n selector: 'valtimo-process-management-upload',\n templateUrl: './process-management-upload.component.html',\n styleUrls: ['./process-management-upload.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n FileUploaderModule,\n ModalModule,\n LayerModule,\n ReactiveFormsModule,\n ButtonModule,\n ],\n})\nexport class ProcessManagementUploadComponent {\n public readonly modalOpen$ = this.processManagementStateService.openModal$;\n\n public readonly ACCEPTED_FILES: string[] = ['bpmn'];\n\n public readonly form = this.formBuilder.group({\n file: this.formBuilder.control(new Set<any>(), [Validators.required]),\n });\n\n public readonly fileSelected$ = this.form.get('file')?.valueChanges.pipe(\n startWith(null),\n map(value => !!(value instanceof Set && value.size > 0))\n );\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly notificationService: GlobalNotificationService,\n private readonly processManagementService: ProcessManagementService,\n private readonly processManagementStateService: ProcessManagementStateService,\n private readonly translateService: TranslateService\n ) {}\n\n public closeModal(): void {\n this.processManagementStateService.closeModal();\n\n setTimeout(() => {\n this.form.reset();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public uploadProcessBpmn(): void {\n const bpmnFile = this.form.value?.file?.values()?.next()?.value?.file;\n\n if (!bpmnFile) return;\n\n this.processManagementService.deployBpmn(bpmnFile).subscribe({\n next: () => {\n this.notificationService.showNotification({\n type: 'success',\n title: this.translateService.instant('processManagement.upload.success'),\n });\n this.closeModal();\n this.processManagementStateService.reloadDefinitions();\n },\n error: () => {\n this.notificationService.showNotification({\n type: 'error',\n title: this.translateService.instant('processManagement.upload.failure'),\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<cds-modal valtimoCdsModal [open]=\"modalOpen$ | async\" size=\"sm\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'processManagement.upload.modalTitle' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\" [formGroup]=\"form\">\n <cds-file-uploader\n [accept]=\"ACCEPTED_FILES\"\n [buttonText]=\"'processManagement.upload.buttonText' | translate\"\n [description]=\"'processManagement.upload.description' | translate\"\n [multiple]=\"false\"\n [title]=\"'processManagement.upload.title' | translate\"\n buttonType=\"primary\"\n formControlName=\"file\"\n >\n </cds-file-uploader>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"(fileSelected$ | async) === false\"\n (click)=\"uploadProcessBpmn()\"\n >\n {{ 'interface.upload' | translate }}\n </button>\n </cds-modal-footer>\n</cds-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 */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\nimport {LoadingModule, NotificationModule} from 'carbon-components-angular';\nimport {isEqual} from 'lodash';\nimport {BehaviorSubject, combineLatest, startWith, Subscription, switchMap} from 'rxjs';\nimport {distinctUntilChanged, filter} from 'rxjs/operators';\nimport {ProcessDefinitionResult} from '../../models';\nimport {ProcessManagementService} from '../../services';\nimport {getContextObservable} from '../../utils';\nimport {ProcessManagementBuilderComponent} from '../process-management-builder/process-management-builder.component';\nimport {ProcessManagementListComponent} from '../process-management-list/process-management-list.component';\nimport {ProcessManagementUploadComponent} from '../process-management-upload/process-management-upload.component';\n\n@Component({\n selector: 'valtimo-process-management',\n templateUrl: './process-management.component.html',\n styleUrls: ['./process-management.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ProcessManagementListComponent,\n ProcessManagementUploadComponent,\n ProcessManagementBuilderComponent,\n LoadingModule,\n NotificationModule,\n ],\n providers: [TranslateService],\n})\nexport class ProcessManagementComponent implements OnInit, OnDestroy {\n public readonly context$ = getContextObservable(this.route);\n\n public readonly params$ = this.context$.pipe(\n filter(context => context === 'case'),\n switchMap(() => getCaseManagementRouteParams(this.route)),\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n\n public readonly paramsAreSet$ = new BehaviorSubject<boolean>(false);\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly processManagementService: ProcessManagementService,\n private readonly route: ActivatedRoute,\n private readonly router: Router\n ) {}\n\n public ngOnInit(): void {\n this.openParamsAndContextSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onProcessSelected(selectedProcessEvent: ProcessDefinitionResult | 'create'): void {\n const editParam =\n selectedProcessEvent === 'create' ? 'create' : selectedProcessEvent?.processDefinition?.key;\n\n this.router.navigate([editParam], {\n relativeTo: this.route,\n });\n }\n\n private openParamsAndContextSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.context$, this.params$.pipe(startWith(null))]).subscribe(\n ([context, params]) => {\n if (context) this.processManagementService.context = context;\n\n if (params) {\n this.processManagementService.setParams(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n );\n }\n\n this.paramsAreSet$.next(true);\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 paramsAreSet: paramsAreSet$ | async,\n } as obs\"\n>\n @if (obs.paramsAreSet) {\n <valtimo-process-management-list\n (processSelected)=\"onProcessSelected($event)\"\n ></valtimo-process-management-list>\n\n <valtimo-process-management-upload></valtimo-process-management-upload>\n } @else {\n <cds-loading></cds-loading>\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 */\n\nexport * from './process-management-builder/process-management-builder.component';\nexport * from './process-management/process-management.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 {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {ProcessManagementBuilderComponent, ProcessManagementComponent} from './components';\nimport {ProcessManagementRouteData} from './models';\nimport {pendingChangesGuard} from '@valtimo/components';\n\nconst routes: Routes = [\n {\n path: 'processes',\n component: ProcessManagementComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Processes',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as ProcessManagementRouteData,\n },\n {\n path: 'processes/create',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n //TODO: Re-enable when pending changes is fixed\n // canDeactivate: [pendingChangesGuard],\n data: {\n title: 'Create new Process',\n roles: [ROLE_ADMIN],\n context: 'independent',\n } as ProcessManagementRouteData,\n },\n {\n path: 'processes/:processDefinitionKey',\n component: ProcessManagementBuilderComponent,\n canActivate: [AuthGuardService],\n //TODO: Re-enable when pending changes is fixed\n // canDeactivate: [pendingChangesGuard],\n data: {\n title: 'Process details',\n roles: [ROLE_ADMIN],\n customPageTitle: true,\n context: 'independent',\n } as ProcessManagementRouteData,\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ProcessManagementRoutingModule {}\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 {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CarbonListModule, WidgetModule} from '@valtimo/components';\nimport {ProcessLinkModule} from '@valtimo/process-link';\nimport {\n ButtonModule,\n DropdownModule,\n FileUploaderModule,\n IconModule,\n LayerModule,\n ModalModule,\n NotificationModule,\n RadioModule,\n} from 'carbon-components-angular';\nimport {ProcessManagementBuilderComponent, ProcessManagementComponent} from './components';\nimport {ProcessManagementRoutingModule} from './process-management-routing.module';\n\n@NgModule({\n imports: [\n CommonModule,\n ProcessManagementRoutingModule,\n WidgetModule,\n FormsModule,\n TranslateModule,\n ProcessLinkModule,\n ProcessManagementComponent,\n ProcessManagementBuilderComponent,\n CarbonListModule,\n ButtonModule,\n IconModule,\n DropdownModule,\n ModalModule,\n NotificationModule,\n RadioModule,\n ReactiveFormsModule,\n ModalModule,\n FileUploaderModule,\n LayerModule,\n ],\n})\nexport class ProcessManagementModule {}\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-management\n */\n\nexport * from './lib/process-management.module';\nexport * from './lib/services/process-management-state.service';\nexport * from './lib/components/process-management/process-management.component';\nexport * from './lib/components/process-management-builder/process-management-builder.component';\nexport * from './lib/models';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","map","i4","i6.ProcessManagementEditorService","i6.ProcessManagementService","i9","i11","i3.ProcessManagementService","i3.ProcessManagementStateService","i5","i7","i6","filter","i1.ProcessManagementService","i3"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-management-routing.module.d.ts","sourceRoot":"","sources":["../../../../projects/valtimo/process-management/src/lib/process-management-routing.module.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"process-management-routing.module.d.ts","sourceRoot":"","sources":["../../../../projects/valtimo/process-management/src/lib/process-management-routing.module.ts"],"names":[],"mappings":";;;AA+DA,qBAKa,8BAA8B;yCAA9B,8BAA8B;0CAA9B,8BAA8B;0CAA9B,8BAA8B;CAAG"}
|