@valtimo/process-link 12.4.0 → 12.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-process-link.mjs","sources":["../../../../projects/valtimo/process-link/src/lib/services/form-flow.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link.service.ts","../../../../projects/valtimo/process-link/src/lib/services/url-resolver.service.ts","../../../../projects/valtimo/process-link/src/lib/services/url-validator.service.ts","../../../../projects/valtimo/process-link/src/lib/services/plugin-state.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-button.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-step.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-state.service.ts","../../../../projects/valtimo/process-link/src/lib/constants/injection-tokens.ts","../../../../projects/valtimo/process-link/src/lib/constants/process.link.ts","../../../../projects/valtimo/process-link/src/lib/constants/index.ts","../../../../projects/valtimo/process-link/src/lib/services/form-flow-component.service.ts","../../../../projects/valtimo/process-link/src/lib/services/index.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-configuration/select-plugin-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-configuration/select-plugin-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-action/select-plugin-action.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-action/select-plugin-action.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-url/select-url.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-url/select-url.component.html","../../../../projects/valtimo/process-link/src/lib/components/plugin-action-configuration/plugin-action-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/plugin-action-configuration/plugin-action-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-link-process-diagram/form-link-process-diagram.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-link-process-diagram/form-link-process-diagram.component.html","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/choose-process-link-type.component.ts","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/choose-process-link-type.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-display-configuration/form-display-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-display-configuration/form-display-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form/select-form.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form/select-form.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/select-form-flow.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/select-form-flow.component.html","../../../../projects/valtimo/process-link/src/lib/components/process-link-modal/process-link-modal.component.ts","../../../../projects/valtimo/process-link/src/lib/components/process-link-modal/process-link-modal.component.html","../../../../projects/valtimo/process-link/src/lib/components/process-link/process-link.component.ts","../../../../projects/valtimo/process-link/src/lib/components/process-link/process-link.component.html","../../../../projects/valtimo/process-link/src/lib/process-link-routing.module.ts","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/index.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form/index.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-flow/form-flow.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow/form-flow.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/index.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/index.ts","../../../../projects/valtimo/process-link/src/lib/process-link.module.ts","../../../../projects/valtimo/process-link/src/lib/models/form-link.model.ts","../../../../projects/valtimo/process-link/src/lib/models/process-link.model.ts","../../../../projects/valtimo/process-link/src/lib/models/form-flow.model.ts","../../../../projects/valtimo/process-link/src/lib/models/index.ts","../../../../projects/valtimo/process-link/src/public-api.ts","../../../../projects/valtimo/process-link/src/valtimo-process-link.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {\n FormFlowBreadcrumbs,\n FormFlowCreateRequest,\n FormFlowCreateResult,\n FormFlowDefinition,\n FormFlowInstance,\n} from '../models';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowService {\n private valtimoEndpointUri!: string;\n\n constructor(\n private http: HttpClient,\n private configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public getFormFlowDefinitions(): Observable<FormFlowDefinition[]> {\n return this.http.get<FormFlowDefinition[]>(`${this.valtimoEndpointUri}v1/form-flow/definition`);\n }\n\n public createInstanceForNewProcess(\n processDefinitionKey: string,\n request: FormFlowCreateRequest\n ): Observable<FormFlowCreateResult> {\n return this.http.post<FormFlowCreateResult>(\n `${this.valtimoEndpointUri}v1/process-definition/${processDefinitionKey}/form-flow`,\n request\n );\n }\n\n public getFormFlowStep(formFlowInstanceId: string): Observable<FormFlowInstance> {\n return this.http.get<FormFlowInstance>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}`\n );\n }\n\n public submitStep(\n formFlowInstanceId: string,\n stepInstanceId: string,\n submissionData: any\n ): Observable<FormFlowInstance> {\n return this.http.post<FormFlowInstance>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}/step/instance/${stepInstanceId}`,\n submissionData\n );\n }\n\n public back(formFlowInstanceId: string, submissionData: any): Observable<FormFlowInstance> {\n return this.http.post<FormFlowInstance>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}/back`,\n submissionData\n );\n }\n\n public save(formFlowInstanceId: string, submissionData: any): Observable<null> {\n return this.http.post<null>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}/save`,\n submissionData\n );\n }\n\n public getBreadcrumbs(formFlowInstanceId: string): Observable<FormFlowBreadcrumbs> {\n return this.http.get<FormFlowBreadcrumbs>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}/breadcrumbs`\n );\n }\n\n public navigateToStep(\n instanceId: string,\n currentStepInstanceId: string,\n targetStepInstanceId,\n submissionData: any\n ): Observable<FormFlowInstance> {\n return this.http.post<FormFlowInstance>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${instanceId}/step/instance/${currentStepInstanceId}/to/step/instance/${targetStepInstanceId}`,\n submissionData\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {Observable} from 'rxjs';\nimport {\n FormFlowProcessLinkCreateRequestDto,\n FormFlowProcessLinkUpdateRequestDto,\n FormProcessLinkCreateRequestDto,\n FormProcessLinkUpdateRequestDto,\n FormSubmissionResult,\n GetProcessLinkRequest,\n GetProcessLinkResponse,\n PluginProcessLinkCreateDto,\n PluginProcessLinkUpdateDto,\n URLProcessLinkCreateDto,\n ProcessLinkType, URLProcessLinkUpdateRequestDto,\n} from '../models';\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport {URLVariables} from \"../models/process-link-url.model\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkService {\n private readonly VALTIMO_ENDPOINT_URI!: string;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {\n this.VALTIMO_ENDPOINT_URI = configService.config.valtimoApi.endpointUri;\n }\n\n getProcessLink(getProcessLinkRequest: GetProcessLinkRequest): Observable<GetProcessLinkResponse> {\n const params = new HttpParams()\n .set('activityId', getProcessLinkRequest.activityId)\n .set('processDefinitionId', getProcessLinkRequest.processDefinitionId);\n\n return this.http.get<GetProcessLinkResponse>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link`, {\n params,\n });\n }\n\n updateProcessLink(\n updateProcessLinkRequest:\n | PluginProcessLinkUpdateDto\n | FormFlowProcessLinkUpdateRequestDto\n | FormProcessLinkUpdateRequestDto\n | URLProcessLinkUpdateRequestDto\n ): Observable<null> {\n const pluginUpdateRequest = updateProcessLinkRequest as PluginProcessLinkUpdateDto;\n if (pluginUpdateRequest.actionProperties) {\n Object.keys(pluginUpdateRequest.actionProperties).forEach(key => {\n if (pluginUpdateRequest.actionProperties[key] === '') {\n pluginUpdateRequest.actionProperties[key] = null;\n }\n });\n }\n\n return this.http.put<null>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link`,\n updateProcessLinkRequest\n );\n }\n\n saveProcessLink(\n saveProcessLinkRequest:\n | FormProcessLinkCreateRequestDto\n | FormFlowProcessLinkCreateRequestDto\n | PluginProcessLinkCreateDto\n | URLProcessLinkCreateDto\n ): Observable<null> {\n const pluginProcessLinkCreateRequest = saveProcessLinkRequest as PluginProcessLinkCreateDto;\n if (pluginProcessLinkCreateRequest.actionProperties) {\n Object.keys(pluginProcessLinkCreateRequest.actionProperties).forEach(key => {\n if (pluginProcessLinkCreateRequest.actionProperties[key] === '') {\n pluginProcessLinkCreateRequest.actionProperties[key] = null;\n }\n });\n }\n\n return this.http.post<null>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link`,\n saveProcessLinkRequest\n );\n }\n\n deleteProcessLink(id: string): Observable<null> {\n return this.http.delete<null>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link/${id}`);\n }\n\n getProcessLinkCandidates(activityType: string): Observable<Array<ProcessLinkType>> {\n return this.http.get<Array<ProcessLinkType>>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/types?activityType=${activityType}`\n );\n }\n\n submitForm(\n processLinkId: string,\n formData: object,\n documentId?: string,\n taskInstanceId?: string,\n documentDefinitionName?: string\n ): Observable<FormSubmissionResult> {\n let params = new HttpParams();\n\n if (documentId) {\n params = params.set('documentId', documentId);\n }\n if (taskInstanceId) {\n params = params.set('taskInstanceId', taskInstanceId);\n }\n if (documentDefinitionName) {\n params = params.set('documentDefinitionName', documentDefinitionName);\n }\n\n const httpOptions = {\n headers: new HttpHeaders().set('Content-Type', 'application/json'),\n params,\n };\n return this.http.post<FormSubmissionResult>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/${processLinkId}/form/submission`,\n formData,\n httpOptions\n );\n }\n\n public submitURLProcessLink(\n processLinkId: string,\n documentId?: string,\n taskInstanceId?: string,\n documentDefinitionName?: string\n ): Observable<FormSubmissionResult> {\n let params = new HttpParams();\n\n if (documentId) {\n params = params.set('documentId', documentId);\n }\n if (taskInstanceId) {\n params = params.set('taskInstanceId', taskInstanceId);\n }\n if (documentDefinitionName) {\n params = params.set('documentDefinitionName', documentDefinitionName);\n }\n\n const httpOptions = {\n headers: new HttpHeaders().set('Content-Type', 'application/json'),\n params,\n };\n return this.http.post<FormSubmissionResult>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/url/${processLinkId}`,\n {},\n httpOptions\n );\n }\n\n public getVariables(): Observable<URLVariables> {\n return this.http.get<URLVariables>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/url/variables`\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable()\nexport class UrlResolverService {\n\n public resolveUrlVariables(url: string, variables: Map<string, string>): string {\n let resolvingUrl = url;\n Object.keys(variables).forEach(key => {\n let value = variables[key];\n resolvingUrl = resolvingUrl.replace('<' + key + '>', value);\n });\n return resolvingUrl;\n }\n\n}\n","import {AbstractControl, ValidationErrors, ValidatorFn} from '@angular/forms';\nimport {Injectable} from '@angular/core';\nimport {UrlResolverService} from './url-resolver.service';\n\n@Injectable()\nexport class UrlValidatorService {\n\n constructor(\n private readonly urlResolverService: UrlResolverService) {\n }\n\n public urlValidator(variables: Map<string, string>): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const url = this.urlResolverService.resolveUrlVariables(control.value, variables);\n try {\n new URL(url);\n return null;\n } catch (_) {\n return {invalidUrl: url};\n }\n };\n }\n\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, of, Subject, switchMap} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {\n PluginConfiguration,\n PluginDefinition,\n PluginFunction,\n PluginManagementService,\n PluginService,\n} from '@valtimo/plugin';\nimport {ProcessLink} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PluginStateService {\n private readonly _selectedPluginDefinition$ = new BehaviorSubject<PluginDefinition>(undefined);\n private readonly _selectedPluginConfiguration$ = new BehaviorSubject<PluginConfiguration>(\n undefined\n );\n private readonly _selectedPluginFunction$ = new BehaviorSubject<PluginFunction>(undefined);\n private readonly _save$ = new Subject<null>();\n private readonly _selectedProcessLink$ = new BehaviorSubject<ProcessLink>(undefined);\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginService: PluginService\n ) {}\n\n get selectedPluginDefinition$(): Observable<PluginDefinition> {\n return this._selectedPluginDefinition$.asObservable();\n }\n\n get selectedPluginConfiguration$(): Observable<PluginConfiguration> {\n return this._selectedPluginConfiguration$.asObservable();\n }\n\n get selectedPluginFunction$(): Observable<PluginFunction> {\n return this._selectedPluginFunction$.asObservable();\n }\n\n get save$(): Observable<any> {\n return this._save$.asObservable();\n }\n\n get functionKey$(): Observable<string> {\n return this._selectedProcessLink$.pipe(\n switchMap(processLink =>\n !processLink\n ? this._selectedPluginFunction$.pipe(map(pluginFunction => pluginFunction?.key))\n : of(processLink?.pluginActionDefinitionKey)\n )\n );\n }\n\n get pluginDefinitionKey$(): Observable<string> {\n return this._selectedProcessLink$.pipe(\n switchMap(selectedProcesLink =>\n !selectedProcesLink\n ? this._selectedPluginConfiguration$.pipe(\n map(configuration => configuration?.pluginDefinition.key)\n )\n : combineLatest([\n this._selectedProcessLink$,\n this.pluginService.pluginSpecifications$,\n ]).pipe(\n map(([processLink, pluginSpecifications]) => {\n const pluginSpecification = pluginSpecifications.find(specification => {\n const functionKeys =\n specification?.functionConfigurationComponents &&\n Object.keys(specification.functionConfigurationComponents);\n return functionKeys?.includes(processLink?.pluginActionDefinitionKey);\n });\n\n return pluginSpecification?.pluginId;\n })\n )\n )\n );\n }\n\n selectPluginDefinition(definition: PluginDefinition): void {\n this._selectedPluginDefinition$.next(definition);\n }\n\n selectPluginConfiguration(configuration: PluginConfiguration): void {\n this._selectedPluginConfiguration$.next(configuration);\n }\n\n selectPluginFunction(pluginFunction: PluginFunction): void {\n this._selectedPluginFunction$.next(pluginFunction);\n }\n\n selectProcessLink(processLink: ProcessLink): void {\n this._selectedProcessLink$.next(processLink);\n }\n\n deselectProcessLink(): void {\n this._selectedProcessLink$.next(undefined);\n }\n\n save(): void {\n this._save$.next(null);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable()\nexport class ProcessLinkButtonService {\n private readonly _showSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _enableSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _enableNextButton$ = new BehaviorSubject<boolean>(false);\n private readonly _showBackButton$ = new BehaviorSubject<boolean>(false);\n private readonly _showNextButton$ = new BehaviorSubject<boolean>(false);\n private readonly _backButtonClick$ = new Subject<null>();\n private readonly _saveButtonClick$ = new Subject<null>();\n private readonly _nextButtonClick$ = new Subject<null>();\n\n get showSaveButton$(): Observable<boolean> {\n return this._showSaveButton$.asObservable();\n }\n get enableSaveButton$(): Observable<boolean> {\n return this._enableSaveButton$.asObservable();\n }\n get showNextButton$(): Observable<boolean> {\n return this._showNextButton$.asObservable();\n }\n get enableNextButton$(): Observable<boolean> {\n return this._enableNextButton$.asObservable();\n }\n get showBackButton$(): Observable<boolean> {\n return this._showBackButton$.asObservable();\n }\n get backButtonClick$(): Observable<null> {\n return this._backButtonClick$.asObservable();\n }\n get saveButtonClick$(): Observable<null> {\n return this._saveButtonClick$.asObservable();\n }\n get nextButtonClick$(): Observable<null> {\n return this._nextButtonClick$.asObservable();\n }\n\n showSaveButton(): void {\n this._showSaveButton$.next(true);\n }\n\n hideSaveButton(): void {\n this._showSaveButton$.next(false);\n }\n\n showNextButton(): void {\n this._showNextButton$.next(true);\n }\n\n hideNextButton(): void {\n this._showNextButton$.next(false);\n }\n\n enableNextButton(): void {\n this._enableNextButton$.next(true);\n }\n\n disableNextButton(): void {\n this._enableNextButton$.next(false);\n }\n\n enableSaveButton(): void {\n this._enableSaveButton$.next(true);\n }\n\n disableSaveButton(): void {\n this._enableSaveButton$.next(false);\n }\n\n showBackButton(): void {\n this._showBackButton$.next(true);\n }\n\n hideBackButton(): void {\n this._showBackButton$.next(false);\n }\n\n clickBackButton(): void {\n this._backButtonClick$.next(null);\n }\n\n clickSaveButton(): void {\n this._saveButtonClick$.next(null);\n }\n\n clickNextButton(): void {\n this._nextButtonClick$.next(null);\n }\n\n resetButtons(): void {\n this.disableSaveButton();\n this.hideBackButton();\n this.hideSaveButton();\n this.hideNextButton();\n this.disableNextButton();\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Step} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, filter, map, Observable} from 'rxjs';\nimport {ProcessLinkConfigurationStep, ProcessLinkType} from '../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ProcessLinkButtonService} from './process-link-button.service';\nimport {take} from 'rxjs/operators';\nimport {PluginStateService} from './plugin-state.service';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\n@Injectable()\nexport class ProcessLinkStepService {\n private readonly _steps$ = new BehaviorSubject<Array<Step>>(undefined);\n private readonly _currentStepIndex$ = new BehaviorSubject<number>(0);\n private readonly _disableSteps$ = new BehaviorSubject<boolean>(false);\n private readonly _hasOneProcessLinkType$ = new BehaviorSubject<boolean>(false);\n\n get steps$(): Observable<Array<Step>> {\n return combineLatest([\n this._steps$,\n this._disableSteps$,\n this.translateService.stream('key'),\n ]).pipe(\n filter(([steps]) => !!steps),\n map(([steps, disableSteps]) =>\n steps.map(step => ({\n ...step,\n disabled: disableSteps,\n label: this.translateService.instant(`processLinkSteps.${step.label}`),\n ...(step.secondaryLabel && {\n secondaryLabel: this.translateService.instant(step.secondaryLabel),\n }),\n }))\n )\n );\n }\n\n get currentStepIndex$(): Observable<number> {\n return this._currentStepIndex$.asObservable();\n }\n\n get currentStepId$(): Observable<ProcessLinkConfigurationStep | ''> {\n return combineLatest([this._steps$, this.currentStepIndex$]).pipe(\n filter(([steps, currentStepIndex]) => !!steps && typeof currentStepIndex === 'number'),\n map(([steps, currentStepIndex]) =>\n steps.length > 0 ? (steps[currentStepIndex]?.label as ProcessLinkConfigurationStep) : ''\n )\n );\n }\n\n get hasOneProcessLinkType$(): Observable<boolean> {\n return this._hasOneProcessLinkType$.asObservable();\n }\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService,\n private readonly pluginTranslateService: PluginTranslationService\n ) {}\n\n reset(): void {\n this._currentStepIndex$.next(0);\n this._steps$.next([]);\n }\n\n setInitialSteps(availableProcessLinkTypes: Array<ProcessLinkType>): void {\n if (availableProcessLinkTypes.length > 1) {\n this.setChoiceSteps();\n }\n }\n\n setFormSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.form'},\n {label: 'selectForm'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleFormStep(): void {\n this._steps$.next([{label: 'selectForm'}]);\n this._currentStepIndex$.next(0);\n }\n\n setFormFlowSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.form-flow'},\n {label: 'selectFormFlow'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleFormFlowStep(): void {\n this._steps$.next([{label: 'selectFormFlow'}]);\n this._currentStepIndex$.next(0);\n }\n\n setChoosePluginConfigurationSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration'},\n {label: 'choosePluginAction', disabled: true},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleChoosePluginConfigurationSteps(): void {\n this._steps$.next([\n {label: 'choosePluginConfiguration'},\n {label: 'choosePluginAction', disabled: true},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(0);\n }\n\n setChoosePluginActionSteps(): void {\n combineLatest([\n this._hasOneProcessLinkType$,\n this.pluginStateService.selectedPluginConfiguration$,\n ])\n .pipe(take(1))\n .subscribe(([hasOneType, selectedConfiguration]) => {\n if (hasOneType) {\n this._steps$.next([\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction'},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(1);\n this.buttonService.showNextButton();\n this.buttonService.showBackButton();\n this.buttonService.hideSaveButton();\n this.buttonService.disableNextButton();\n } else {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction'},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(2);\n this.buttonService.showNextButton();\n this.buttonService.showBackButton();\n\n this.buttonService.hideSaveButton();\n this.buttonService.disableNextButton();\n }\n });\n }\n\n setConfigurePluginActionSteps(): void {\n combineLatest([\n this._hasOneProcessLinkType$,\n this.pluginStateService.selectedPluginConfiguration$,\n this.pluginStateService.selectedPluginFunction$,\n ])\n .pipe(take(1))\n .subscribe(([hasOneType, selectedConfiguration, selectedFunction]) => {\n const selectedFunctionTranslation = this.pluginTranslateService.instant(\n selectedFunction.key,\n selectedConfiguration.pluginDefinition.key\n );\n\n if (hasOneType) {\n this._steps$.next([\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction', secondaryLabel: selectedFunctionTranslation},\n {label: 'configurePluginAction'},\n ]);\n this._currentStepIndex$.next(2);\n this.buttonService.hideNextButton();\n this.buttonService.showSaveButton();\n } else {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction', secondaryLabel: selectedFunctionTranslation},\n {label: 'configurePluginAction'},\n ]);\n this._currentStepIndex$.next(3);\n this.buttonService.hideNextButton();\n this.buttonService.showSaveButton();\n }\n });\n }\n\n public setURLSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.url'},\n {label: 'selectURL'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n public setSingleURLStep(): void {\n this._steps$.next([{label: 'selectURL'}]);\n this._currentStepIndex$.next(0);\n }\n\n disableSteps(): void {\n this._disableSteps$.next(true);\n }\n\n enableSteps(): void {\n this._disableSteps$.next(false);\n }\n\n setHasOneProcessLinkType(hasOne: boolean): void {\n this._hasOneProcessLinkType$.next(hasOne);\n }\n\n setProcessLinkTypeSteps(processLinkTypeId: string, hasOneOption?: boolean): void {\n switch (processLinkTypeId) {\n case 'form':\n if (hasOneOption) {\n this.setSingleFormStep();\n this.buttonService.hideBackButton();\n } else {\n this.setFormSteps();\n this.buttonService.showBackButton();\n }\n this.buttonService.showSaveButton();\n break;\n case 'form-flow':\n if (hasOneOption) {\n this.setSingleFormFlowStep();\n this.buttonService.hideSaveButton();\n this.buttonService.hideBackButton();\n } else {\n this.setFormFlowSteps();\n this.buttonService.showSaveButton();\n this.buttonService.showBackButton();\n }\n break;\n case 'plugin':\n if (hasOneOption) {\n this.setSingleChoosePluginConfigurationSteps();\n this.buttonService.hideBackButton();\n this.buttonService.showNextButton();\n } else {\n this.setChoosePluginConfigurationSteps();\n this.buttonService.showBackButton();\n this.buttonService.showNextButton();\n }\n break;\n case 'url':\n if (hasOneOption) {\n this.setSingleURLStep();\n this.buttonService.hideBackButton();\n this.buttonService.showSaveButton();\n } else {\n this.setURLSteps();\n this.buttonService.showBackButton();\n this.buttonService.showSaveButton();\n }\n break;\n }\n }\n\n private setChoiceSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType'},\n {label: 'empty', disabled: true},\n {label: 'empty', disabled: true},\n ]);\n this._currentStepIndex$.next(0);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, map, Observable, Subscription} from 'rxjs';\nimport {ModalParams, ProcessLink, ProcessLinkType} from '../models';\nimport {ProcessLinkStepService} from './process-link-step.service';\nimport {ProcessLinkButtonService} from './process-link-button.service';\nimport {PluginStateService} from './plugin-state.service';\n\n@Injectable()\nexport class ProcessLinkStateService implements OnDestroy {\n private readonly _showModal$ = new BehaviorSubject<boolean>(false);\n private readonly _availableProcessLinkTypes$ = new BehaviorSubject<Array<ProcessLinkType>>([]);\n private readonly _elementName$ = new BehaviorSubject<string>('');\n private readonly _selectedProcessLinkTypeId$ = new BehaviorSubject<string>('');\n private readonly _viewModelEnabled$ = new BehaviorSubject<boolean>(false);\n private readonly _url$ = new BehaviorSubject<string>(\"\");\n private readonly _saving$ = new BehaviorSubject<boolean>(false);\n private readonly _modalParams$ = new BehaviorSubject<ModalParams>(undefined);\n private readonly _selectedProcessLink$ = new BehaviorSubject<ProcessLink>(undefined);\n\n private _availableProcessLinkTypesSubscription!: Subscription;\n\n get showModal$(): Observable<boolean> {\n return this._showModal$.asObservable();\n }\n get elementName$(): Observable<string> {\n return this._elementName$.asObservable();\n }\n get availableProcessLinkTypes$(): Observable<Array<ProcessLinkType>> {\n return this._availableProcessLinkTypes$.asObservable();\n }\n get hideProgressIndicator$(): Observable<boolean> {\n return this._availableProcessLinkTypes$\n .asObservable()\n .pipe(\n map(\n availableTypes =>\n Array.isArray(availableTypes) &&\n availableTypes.length === 1 &&\n (availableTypes[0]?.processLinkType === 'form' ||\n availableTypes[0]?.processLinkType === 'form-flow')\n )\n );\n }\n get selectedProcessLinkTypeId$(): Observable<string> {\n return this._selectedProcessLinkTypeId$.asObservable();\n }\n get saving$(): Observable<boolean> {\n return this._saving$.asObservable();\n }\n get modalParams$(): Observable<ModalParams> {\n return this._modalParams$.asObservable();\n }\n\n get selectedProcessLink$(): Observable<ProcessLink> {\n return this._selectedProcessLink$.asObservable();\n }\n\n get typeOfSelectedProcessLink$(): Observable<string> {\n return this.selectedProcessLink$.pipe(map(processLink => processLink?.processLinkType || ''));\n }\n\n constructor(\n private readonly processLinkStepService: ProcessLinkStepService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService\n ) {\n this.openAvailableProcessLinkTypesSubscription();\n }\n\n ngOnDestroy(): void {\n this._availableProcessLinkTypesSubscription?.unsubscribe();\n }\n\n setAvailableProcessLinkTypes(processLinkTypes: Array<ProcessLinkType>): void {\n const hasOneOption = processLinkTypes.length === 1;\n this._availableProcessLinkTypes$.next(processLinkTypes);\n this.processLinkStepService.setHasOneProcessLinkType(hasOneOption);\n\n if (hasOneOption) {\n this.selectProcessLinkType(processLinkTypes[0].processLinkType, hasOneOption);\n }\n }\n\n setElementName(name: string): void {\n this._elementName$.next(name);\n }\n\n showModal(): void {\n this._showModal$.next(true);\n }\n\n closeModal(): void {\n this._showModal$.next(false);\n\n setTimeout(() => {\n this.reset();\n }, 240);\n }\n\n selectProcessLinkType(processLinkTypeId: string, hasOneOption?: boolean): void {\n this._selectedProcessLinkTypeId$.next(processLinkTypeId);\n this.processLinkStepService.setProcessLinkTypeSteps(processLinkTypeId, hasOneOption);\n }\n\n public setViewModelEnabled(viewModelEnabled: boolean): void {\n this._viewModelEnabled$.next(viewModelEnabled);\n }\n\n public get viewModelEnabled$(): Observable<boolean> {\n return this._viewModelEnabled$.asObservable();\n }\n\n public get url$(): Observable<string> {\n return this._url$.asObservable();\n }\n\n clearSelectedProcessLinkType(): void {\n this._selectedProcessLinkTypeId$.next('');\n }\n\n startSaving(): void {\n this._saving$.next(true);\n this.processLinkStepService.disableSteps();\n }\n\n stopSaving(): void {\n this._saving$.next(false);\n this.processLinkStepService.enableSteps();\n }\n\n setInitial(): void {\n const availableTypes = this._availableProcessLinkTypes$.getValue();\n this.buttonService.resetButtons();\n this.processLinkStepService.setInitialSteps(availableTypes);\n }\n\n setModalParams(params: ModalParams): void {\n this._modalParams$.next(params);\n }\n\n selectProcessLink(processLink: ProcessLink): void {\n this._selectedProcessLink$.next(processLink);\n this.pluginStateService.selectProcessLink(processLink);\n this.setViewModelEnabled(processLink.viewModelEnabled);\n this._url$.next(processLink.url)\n }\n\n deselectProcessLink(): void {\n this._selectedProcessLink$.next(undefined);\n this.pluginStateService.deselectProcessLink();\n }\n\n private openAvailableProcessLinkTypesSubscription(): void {\n this._availableProcessLinkTypesSubscription = this._availableProcessLinkTypes$.subscribe(\n availableProcessLinkTypes => {\n if (availableProcessLinkTypes.length > 1) {\n this.setInitial();\n }\n }\n );\n }\n\n private reset(): void {\n this.setAvailableProcessLinkTypes([]);\n this.processLinkStepService.reset();\n this.stopSaving();\n this.buttonService.resetButtons();\n this.clearSelectedProcessLinkType();\n this.deselectProcessLink();\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {FormFlowCustomComponentDefinition} from '../models';\n\nconst FORM_FLOW_COMPONENT_TOKEN = new InjectionToken<Array<FormFlowCustomComponentDefinition>>(\n 'Supported form-flow Angular components',\n {factory: () => []}\n);\n\nexport {FORM_FLOW_COMPONENT_TOKEN};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormSize} from '../models';\nimport {CarbonModalSize} from '@valtimo/components';\n\nconst formSizeToCarbonModalSizeMap: Record<FormSize, CarbonModalSize> = {\n extraSmall: 'xs',\n small: 'sm',\n medium: 'md',\n large: 'lg',\n};\n\nexport {formSizeToCarbonModalSizeMap};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './injection-tokens';\nexport * from './process.link';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable} from '@angular/core';\nimport {BehaviorSubject, filter, Observable} from 'rxjs';\nimport {FormFlowCustomComponentDefinition} from '../models';\nimport {FORM_FLOW_COMPONENT_TOKEN} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowComponentService {\n private readonly _supportedComponents$ =\n new BehaviorSubject<Array<FormFlowCustomComponentDefinition> | null>(null);\n\n public get supportedComponents$(): Observable<Array<FormFlowCustomComponentDefinition>> {\n return this._supportedComponents$.pipe(filter(components => !!components));\n }\n\n constructor(\n @Inject(FORM_FLOW_COMPONENT_TOKEN)\n private readonly supportedCustomComponents: Array<FormFlowCustomComponentDefinition>\n ) {\n this.setSupportedComponents(supportedCustomComponents);\n }\n\n private setSupportedComponents(\n supportedComponents: Array<FormFlowCustomComponentDefinition>\n ): void {\n this._supportedComponents$.next(supportedComponents);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-flow.service';\nexport * from './plugin-state.service';\nexport * from './process-link.service';\nexport * from './process-link-state.service';\nexport * from './process-link-step.service';\nexport * from './process-link-button.service';\nexport * from './form-flow-component.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginStateService} from '../../services/plugin-state.service';\nimport {combineLatest, Observable, of, Subscription} from 'rxjs';\nimport {\n PluginConfiguration,\n PluginConfigurationWithLogo,\n PluginManagementService,\n PluginService,\n} from '@valtimo/plugin';\nimport {\n ProcessLinkButtonService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\n\n@Component({\n selector: 'valtimo-select-plugin-configuration',\n templateUrl: './select-plugin-configuration.component.html',\n styleUrls: ['./select-plugin-configuration.component.scss'],\n})\nexport class SelectPluginConfigurationComponent implements OnInit, OnDestroy {\n readonly pluginConfigurations$: Observable<Array<PluginConfigurationWithLogo>> =\n this.stateService.modalParams$.pipe(\n switchMap(modalData =>\n combineLatest([\n modalData?.element?.type\n ? this.pluginManagementService.getAllPluginConfigurationsWithLogos(\n modalData?.element?.activityListenerType\n )\n : of(undefined),\n this.pluginService.availablePluginIds$,\n ]).pipe(\n map(([pluginConfigurations, availablePluginIds]) =>\n pluginConfigurations?.filter(configuration =>\n availablePluginIds.includes(configuration.pluginDefinition.key)\n )\n )\n )\n )\n );\n\n readonly selectedPluginConfiguration$ = this.pluginStateService.selectedPluginConfiguration$;\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginStateService: PluginStateService,\n private readonly pluginService: PluginService,\n private readonly stateService: ProcessLinkStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stepService: ProcessLinkStepService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openNextButtonSubscription();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n selected(event: {value: PluginConfiguration}): void {\n this.selectConfiguration(event.value);\n this.buttonService.enableNextButton();\n }\n\n private selectConfiguration(configuration: PluginConfiguration): void {\n this.pluginStateService.selectPluginDefinition({key: configuration.pluginDefinition.key});\n this.pluginStateService.selectPluginConfiguration(configuration);\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openNextButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.nextButtonClick$.subscribe(() => {\n this.stepService.setChoosePluginActionSteps();\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginConfigurations$ | async as pluginConfigurations; else loading\">\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.choosePluginConfigurationDescription' | translate }}\n </p>\n <div class=\"list-container\">\n <cds-structured-list (selected)=\"selected($event)\" selection=\"true\">\n <cds-list-header>\n <cds-list-column nowrap=\"true\"></cds-list-column>\n <cds-list-column nowrap=\"true\">{{\n 'pluginManagement.labels.configurationName' | translate\n }}</cds-list-column>\n <cds-list-column>{{\n 'processLinkConfiguration.pluginDescription' | translate\n }}</cds-list-column>\n </cds-list-header>\n <cds-list-row\n *ngFor=\"let pluginConfiguration of pluginConfigurations\"\n [value]=\"pluginConfiguration\"\n >\n <cds-list-column>\n <div *ngIf=\"pluginConfiguration.pluginLogoBase64\">\n <img\n [src]=\"pluginConfiguration.pluginLogoBase64\"\n [title]=\"'title' | pluginTranslate: pluginConfiguration.pluginDefinition.key | async\"\n class=\"plugin-configuration-logo\"\n /></div\n ></cds-list-column>\n <cds-list-column>{{ pluginConfiguration.title }}</cds-list-column>\n <cds-list-column>\n {{ 'description' | pluginTranslate: pluginConfiguration.pluginDefinition.key | async }}\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {PluginDefinition, PluginFunction, PluginManagementService} from '@valtimo/plugin';\nimport {Observable, of, Subscription} from 'rxjs';\nimport {switchMap, take} from 'rxjs/operators';\n\nimport {ProcessLinkButtonService, ProcessLinkStepService} from '../../services';\nimport {PluginStateService} from '../../services/plugin-state.service';\n\n@Component({\n selector: 'valtimo-select-plugin-action',\n templateUrl: './select-plugin-action.component.html',\n styleUrls: ['./select-plugin-action.component.scss'],\n})\nexport class SelectPluginActionComponent implements OnInit, OnDestroy {\n public readonly pluginFunctions$: Observable<Array<PluginFunction> | undefined> =\n this.stateService.selectedPluginDefinition$.pipe(\n switchMap(selectedDefinition =>\n selectedDefinition\n ? this.pluginManagementService.getPluginFunctions(selectedDefinition.key)\n : of(undefined)\n )\n );\n public readonly selectedPluginDefinition$: Observable<PluginDefinition> =\n this.stateService.selectedPluginDefinition$;\n public readonly selectedPluginFunction$: Observable<PluginFunction> =\n this.stateService.selectedPluginFunction$;\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginManagementService: PluginManagementService,\n private readonly stateService: PluginStateService,\n private readonly stepService: ProcessLinkStepService\n ) {}\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openNextButtonSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFunction(pluginFunction: PluginFunction): void {\n this.stateService.selectPluginFunction(pluginFunction);\n }\n\n public selected(event: {value: string}): void {\n this.selectFunction(JSON.parse(event.value));\n this.buttonService.enableNextButton();\n }\n\n public stringify(object: object): string {\n return JSON.stringify(object);\n }\n\n private openBackButtonSubscription(): void {\n this.buttonService.backButtonClick$\n .pipe(\n switchMap(() => this.stepService.hasOneProcessLinkType$),\n take(1)\n )\n .subscribe((hasOneOption: boolean) => {\n this.stepService.setProcessLinkTypeSteps('plugin', hasOneOption);\n });\n }\n\n private openNextButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.nextButtonClick$.subscribe(() => {\n this.stepService.setConfigurePluginActionSteps();\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginFunctions$ | async as pluginFunctions; else loading\">\n <div class=\"choose-plugin-action\" *ngIf=\"pluginFunctions?.length > 0\">\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.choosePluginActionDescription' | translate }}\n </p>\n <div class=\"action-tiles\">\n <cds-tile-group\n [multiple]=\"false\"\n *ngIf=\"{selectedPluginDefinition: selectedPluginDefinition$ | async} as obs\"\n (selected)=\"selected($event)\"\n >\n <cds-selection-tile\n *ngFor=\"let pluginFunction of pluginFunctions\"\n [value]=\"stringify(pluginFunction)\"\n [selected]=\"false\"\n >{{\n pluginFunction.key | pluginTranslate: obs.selectedPluginDefinition.key | async\n }}</cds-selection-tile\n >\n </cds-tile-group>\n </div>\n </div>\n <ng-container *ngIf=\"!pluginFunctions || pluginFunctions?.length === 0\">\n <ng-container *ngTemplateOutlet=\"noPluginFunctionsTemplate\"> </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #noPluginFunctionsTemplate>\n <p class=\"step-description\">\n {{ 'processLink.noPluginFunctions' | translate }}\n </p>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, of, Subscription, switchMap, tap} from 'rxjs';\nimport {\n ProcessLinkButtonService,\n ProcessLinkStateService,\n ProcessLinkService,\n} from '../../services';\nimport {distinctUntilChanged, take} from 'rxjs/operators';\nimport {\n AbstractControl,\n AsyncValidatorFn,\n FormControl,\n FormGroup,\n ValidationErrors,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport {URLProcessLinkUpdateRequestDto} from '../../models';\nimport {UrlValidatorService} from '../../services/url-validator.service';\nimport {UrlResolverService} from '../../services/url-resolver.service';\nimport {URLVariables} from '../../models/process-link-url.model';\nimport {AlertService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-select-url',\n templateUrl: './select-url.component.html',\n})\nexport class SelectUrlComponent implements OnInit, OnDestroy {\n\n public readonly urlForm: FormGroup = new FormGroup({\n url: new FormControl('', Validators.required)\n });\n\n private _subscriptions = new Subscription();\n private variables: Map<string, string>\n\n public get url(): AbstractControl {\n return this.urlForm.get('url');\n }\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly processLinkService: ProcessLinkService,\n private readonly urlValidatorService: UrlValidatorService,\n private readonly urlResolverService: UrlResolverService,\n private readonly alertService: AlertService\n ) {\n }\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n\n this._subscriptions.add(this.urlForm.statusChanges\n .pipe(distinctUntilChanged())\n .subscribe(status => {\n if (status === 'VALID') {\n this.buttonService.enableSaveButton();\n } else {\n this.buttonService.disableSaveButton();\n }\n }));\n\n this.stateService.url$\n .subscribe(url => this.url.setValue(url));\n\n this.processLinkService.getVariables()\n .subscribe(urlVariables => {\n this.url.addValidators(this.urlValidatorService.urlValidator(urlVariables.variables));\n this.variables = urlVariables.variables;\n })\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveProcessLink();\n })\n );\n }\n\n private saveProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink();\n } else {\n this.saveNewProcessLink();\n }\n });\n }\n\n private updateProcessLink(): void {\n this.stateService.selectedProcessLink$\n .pipe(take(1))\n .subscribe((selectedProcessLink) => {\n const updateProcessLinkRequest: URLProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n url: this.url.value,\n };\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$\n ])\n .pipe(\n take(1),\n switchMap(([modalParams, processLinkTypeId]) =>\n this.processLinkService.saveProcessLink({\n url: this.url.value,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id\n })\n )\n )\n .subscribe({\n complete: () => this.stateService.closeModal(),\n error: () => {\n this.alertService.error('Failed to save process link');\n this.stateService.stopSaving()\n }\n });\n }\n\n public resolveUrlVariables(url: string): string {\n return this.urlResolverService.resolveUrlVariables(url, this.variables);\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div [formGroup]=\"urlForm\">\n <cds-label [invalidText]=\"\n 'processLinkUrlInvalid' | translate : { URL: (url.errors?.invalidUrl ?? '') }\n \"\n [invalid]=\"url.invalid && url.touched\"\n [helperText]=\"url.invalid ? '' : resolveUrlVariables(url.value)\">Url\n <input\n cdsText\n type=\"text\"\n required\n class=\"form-control\"\n formControlName=\"url\"\n [invalid]=\"url.invalid\"\n >\n </cds-label>\n</div>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\nimport {\n PluginStateService,\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {PluginConfigurationData} from '@valtimo/plugin';\nimport {PluginProcessLinkCreateDto, PluginProcessLinkUpdateDto} from '../../models';\n\n@Component({\n selector: 'valtimo-plugin-action-configuration',\n templateUrl: './plugin-action-configuration.component.html',\n styleUrls: ['./plugin-action-configuration.component.scss'],\n})\nexport class PluginActionConfigurationComponent implements OnInit, OnDestroy {\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> =\n new EventEmitter<PluginConfigurationData>();\n\n public readonly pluginDefinitionKey$ = this.pluginStateService.pluginDefinitionKey$;\n public readonly functionKey$ = this.pluginStateService.functionKey$;\n public readonly save$ = this.pluginStateService.save$;\n public readonly saving$ = this.stateService.saving$;\n public readonly prefillConfiguration$ = this.stateService.selectedProcessLink$.pipe(\n map(processLink => (processLink ? processLink?.actionProperties : undefined))\n );\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly pluginStateService: PluginStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stepService: ProcessLinkStepService,\n private readonly processLinkService: ProcessLinkService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n onValid(valid: boolean): void {\n if (valid) {\n this.buttonService.enableSaveButton();\n } else {\n this.buttonService.disableSaveButton();\n }\n }\n\n onConfiguration(configuration: PluginConfigurationData): void {\n this.stateService.startSaving();\n\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink(configuration);\n } else {\n this.saveNewProcessLink(configuration);\n }\n });\n }\n\n private updateProcessLink(configuration: PluginConfigurationData): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n const updateProcessLinkRequest: PluginProcessLinkUpdateDto = {\n id: selectedProcessLink.id,\n pluginConfigurationId: selectedProcessLink.pluginConfigurationId,\n pluginActionDefinitionKey: selectedProcessLink.pluginActionDefinitionKey,\n actionProperties: configuration,\n };\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(configuration: PluginConfigurationData): void {\n combineLatest([\n this.stateService.modalParams$,\n this.pluginStateService.selectedPluginConfiguration$,\n this.pluginStateService.selectedPluginFunction$,\n this.stateService.selectedProcessLinkTypeId$,\n ])\n .pipe(take(1))\n .subscribe(\n ([modalData, selectedConfiguration, selectedFunction, selectedProcessLinkTypeId]) => {\n const processLinkRequest: PluginProcessLinkCreateDto = {\n actionProperties: configuration,\n activityId: modalData?.element?.id,\n activityType: modalData?.element?.activityListenerType,\n pluginConfigurationId: selectedConfiguration.id,\n processDefinitionId: modalData?.processDefinitionId,\n pluginActionDefinitionKey: selectedFunction.key,\n processLinkType: selectedProcessLinkTypeId,\n };\n\n this.processLinkService.saveProcessLink(processLinkRequest).subscribe(\n response => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n }\n );\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stepService.setChoosePluginActionSteps();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.pluginStateService.save();\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n [functionKey]=\"functionKey$ | async\"\n [save$]=\"save$\"\n [disabled$]=\"saving$\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n type=\"function\"\n></valtimo-plugin-configuration-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\n\nimport BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport {ActivatedRoute} from '@angular/router';\nimport {combineLatest} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {PageTitleService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-form-link-process-diagram',\n templateUrl: './form-link-process-diagram.component.html',\n styleUrls: ['./form-link-process-diagram.component.scss'],\n})\nexport class FormLinkProcessDiagramComponent implements OnInit, OnDestroy {\n private bpmnJS: BpmnJS;\n\n @ViewChild('ref') public el: ElementRef;\n @Output() public bpmnElementModalOpen: EventEmitter<any> = new EventEmitter();\n @Output() public bpmnElementModalClose: EventEmitter<any> = new EventEmitter();\n\n public processDefinitionKey: string;\n public processDefinitions: ProcessDefinition[];\n public processDiagram: any;\n public processDefinition: ProcessDefinition;\n public processDefinitionVersions: ProcessDefinition[];\n public version: number;\n private callbacksAdded = false;\n private processDefinitionId!: string;\n\n constructor(\n private readonly processService: ProcessService,\n private readonly route: ActivatedRoute,\n private readonly pageTitleService: PageTitleService\n ) {}\n\n ngOnInit() {\n this.pageTitleService.disableReset();\n combineLatest([this.route.queryParams, this.processService.getProcessDefinitions()])\n .pipe(map(([queryParams, processDefinitions]) => ({queryParams, processDefinitions})))\n .subscribe(response => {\n this.processDefinitions = response.processDefinitions;\n if (response.queryParams.process) {\n this.processDefinitionKey = response.queryParams.process;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n this.bpmnElementModalOpen.emit({\n element: {\n id: 'start-event',\n type: 'bpmn:StartEvent',\n },\n processDefinitionKey: this.processDefinitionKey,\n processDefinitionId: this.processDefinitionId,\n });\n }\n if (!this.processDefinitionKey && response.processDefinitions.length !== 0) {\n this.processDefinitionKey = response.processDefinitions[0].key;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n }\n });\n this.bpmnJS = new BpmnJS();\n this.bpmnJS.on('import.done', ({error}: any) => {\n if (!error) {\n const canvas = this.bpmnJS.get('canvas');\n const eventBus = this.bpmnJS.get('eventBus');\n canvas.zoom('fit-viewport', 'auto');\n\n if (this.processDefinitionVersions && !this.callbacksAdded) {\n eventBus.on('element.click', e => {\n let activityListenerType = e.element.businessObject.$type;\n if (activityListenerType === 'bpmn:UserTask') {\n activityListenerType += ':create';\n } else {\n activityListenerType += ':start';\n }\n\n this.bpmnElementModalOpen.emit({\n element: {\n id: e.element.businessObject.id,\n type: e.element.businessObject.$type,\n activityListenerType,\n name: e.element?.businessObject?.name,\n },\n processDefinitionKey: this.processDefinitionKey,\n processDefinitionId: this.processDefinitionId,\n });\n });\n this.callbacksAdded = true;\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.bpmnElementModalClose.emit();\n if (this.bpmnJS) {\n this.bpmnJS.destroy();\n }\n this.pageTitleService.enableReset();\n }\n\n public loadProcessDefinition(processDefinitionKey: string): void {\n this.processService\n .getProcessDefinition(processDefinitionKey)\n .subscribe((processDefinition: ProcessDefinition) => {\n this.processDefinitionId = processDefinition.id;\n this.version = processDefinition.version;\n this.loadProcessDefinitionXml(processDefinition.id);\n });\n }\n\n public loadProcessDefinitionVersions(processDefinitionKey: string): void {\n this.processService\n .getProcessDefinitionVersions(processDefinitionKey)\n .subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.processDefinitionVersions = processDefinitionVersions;\n });\n }\n\n public loadProcessDefinitionFromKey(processDefinitionKey: string): void {\n this.loadProcessDefinitionVersions(processDefinitionKey);\n this.loadProcessDefinition(processDefinitionKey);\n }\n\n public loadProcessDefinitionXml(processDefinitionId: string): void {\n this.processService.getProcessDefinitionXml(processDefinitionId).subscribe(response => {\n this.processDiagram = response;\n this.bpmnJS.importXML(this.processDiagram.bpmn20Xml);\n this.bpmnJS.attachTo(this.el.nativeElement);\n });\n }\n\n public setProcessDefinitionKey(processDefinitionKey: string): void {\n this.processDefinitionKey = processDefinitionKey;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n }\n\n public setProcessDefinitionVersion(version: string): void {\n const processDefinitionId = this.processDefinitionVersions.find(\n definition => definition.version === +version\n )?.id;\n\n if (processDefinitionId) {\n this.processDefinitionId = processDefinitionId;\n this.loadProcessDefinitionXml(this.processDefinitionId);\n }\n\n this.version = +version;\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"container-fluid\">\n <div class=\"row p-4 bg-white\">\n <div class=\"col\">\n <div #ref class=\"diagram-container\"></div>\n </div>\n </div>\n</div>\n<div class=\"p-4 text-center legenda-holder\">\n <span>Click on a User Task to specify a form definition for that User Task.</span>\n</div>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"form-link-dossier-actions\">\n <cds-select [label]=\"'Process'\" (change)=\"setProcessDefinitionKey($event.target.value)\"\n ><option\n *ngFor=\"let processDefinition of processDefinitions\"\n [value]=\"processDefinition.key\"\n [selected]=\"processDefinitionKey === processDefinition.key\"\n >\n {{ processDefinition.name }}\n </option>\n </cds-select>\n <cds-select [label]=\"'Version'\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option\n *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\"\n >\n {{ processDefinitionVersion.version }}\n </option>\n </cds-select>\n </div>\n </ng-template>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ProcessLinkStateService} from '../../services';\n\n@Component({\n selector: 'valtimo-choose-process-link-type',\n templateUrl: './choose-process-link-type.component.html',\n styleUrls: ['./choose-process-link-type.component.scss'],\n})\nexport class ChooseProcessLinkTypeComponent {\n public readonly availableProcessLinkTypes$ =\n this.processLinkStateService.availableProcessLinkTypes$;\n\n constructor(private readonly processLinkStateService: ProcessLinkStateService) {}\n\n selectProcessLinkType(processLinkTypeId: string): void {\n this.processLinkStateService.selectProcessLinkType(processLinkTypeId);\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n availableProcessLinkTypes: availableProcessLinkTypes$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseProcessLinkTypeDescription' | translate }}\n </p>\n <div class=\"process-link-grid\">\n <div\n class=\"process-link-item\"\n *ngFor=\"let availableProcessLinkType of obs.availableProcessLinkTypes\"\n >\n <ng-container *ngIf=\"availableProcessLinkType.processLinkType as processLinkTypeId\">\n <button\n (click)=\"selectProcessLinkType(processLinkTypeId)\"\n cdsButton=\"secondary\"\n size=\"xl\"\n class=\"process-link-type-button\"\n [disabled]=\"!availableProcessLinkType.enabled\"\n [vTooltip]=\"'processLinkTypeDisabledTooltip.' + processLinkTypeId | translate\"\n [onBottom]=\"true\"\n [tooltipDisabled]=\"availableProcessLinkType.enabled\"\n >\n {{ 'processLinkType.' + processLinkTypeId | translate }}\n <svg\n *ngIf=\"processLinkTypeId === 'plugin'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"link\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form-flow'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"flow--data\"\n size=\"16\"\n ></svg>\n </button>\n </ng-container>\n </div>\n </div>\n</ng-container>\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {FormDefinitionListItem, FormDisplayType, FormSize} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ProcessLinkButtonService, ProcessLinkStateService} from '../../services';\nimport {ListItem} from 'carbon-components-angular';\nimport {map} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-form-display-configuration',\n templateUrl: './form-display-configuration.component.html',\n})\nexport class FormDisplayConfigurationComponent implements OnInit, OnDestroy {\n @Input() public selectedFormDefinition: FormDefinitionListItem;\n\n @Output() public formDisplayValue = new EventEmitter<string>();\n @Output() public formSizeValue = new EventEmitter<string>();\n\n public readonly formDisplayValue$ = new BehaviorSubject<FormDisplayType | null>(null);\n public readonly formSizeValue$ = new BehaviorSubject<FormSize | null>(null);\n public readonly disableFormSizeInput$ = new BehaviorSubject<boolean>(true);\n public readonly saving$ = this.stateService.saving$;\n public readonly taskPanelEnabled$ = new BehaviorSubject<boolean>(false);\n public readonly isUserTask$ = new BehaviorSubject<boolean>(false);\n\n private readonly _DISPLAY_TYPE_OPTIONS: FormDisplayType[] = ['modal', 'panel'];\n private readonly _FORM_SIZE_OPTIONS: FormSize[] = ['extraSmall', 'small', 'medium', 'large'];\n private readonly _subscriptions = new Subscription();\n\n public readonly formDisplayTypeListItems$: Observable<ListItem[]> = combineLatest([\n this.formDisplayValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([formDisplayValue]) =>\n this._DISPLAY_TYPE_OPTIONS.map((key: string) => ({\n content: this.translateService.instant(`processLinkSteps.displayType.options.${key}`),\n key: key,\n selected: this.formDisplayValue$.getValue() === key,\n }))\n )\n );\n\n public readonly formSizeListItems$: Observable<ListItem[]> = combineLatest([\n this.formSizeValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([formSizeValue]) =>\n this._FORM_SIZE_OPTIONS.map((key: string) => ({\n content: this.translateService.instant(`processLinkSteps.formSize.options.${key}`),\n key: key,\n selected: this.formSizeValue$.getValue() === key,\n }))\n )\n );\n\n constructor(\n private readonly buttonService: ProcessLinkButtonService,\n private readonly configService: ConfigService,\n private readonly stateService: ProcessLinkStateService,\n private readonly translateService: TranslateService\n ) {\n this.taskPanelEnabled$.next(!!this.configService.featureToggles?.enableTaskPanel);\n }\n\n public ngOnInit(): void {\n this._subscriptions.add(\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLink$,\n ]).subscribe(([modalParams, selectedProcessLink]) => {\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n\n if (selectedProcessLink) {\n if (selectedProcessLink.formDisplayType) this.disableFormSizeInput$.next(false);\n if (selectedProcessLink.activityType.includes('bpmn:UserTask'))\n this.isUserTask$.next(true);\n this.formDisplayValue$.next(selectedProcessLink.formDisplayType);\n this.formSizeValue$.next(selectedProcessLink.formSize);\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFormDisplayType(event: ListItem): void {\n this.updateFormDisplayType(event?.key);\n this.enableSaveButtonWhenValid();\n }\n\n public selectFormSize(event: ListItem): void {\n this.updateFormSize(event?.key);\n this.enableSaveButtonWhenValid();\n }\n\n private updateFormDisplayType(formDisplayType): void {\n formDisplayType ? this.disableFormSizeInput$.next(false) : this.resetFormSize();\n this.formDisplayValue$.next(formDisplayType);\n this.formDisplayValue.emit(formDisplayType);\n }\n\n private updateFormSize(formSize): void {\n this.formSizeValue$.next(formSize);\n this.formSizeValue.emit(formSize);\n }\n\n private resetFormSize(): void {\n this.disableFormSizeInput$.next(true);\n this.updateFormSize(null);\n }\n\n private enableSaveButtonWhenValid(): void {\n if (\n this.selectedFormDefinition &&\n this.formDisplayValue$.getValue() &&\n this.formSizeValue$.getValue()\n ) {\n this.buttonService.enableSaveButton();\n } else {\n this.buttonService.disableSaveButton();\n }\n }\n}\n","<ng-container\n *ngIf=\"{\n formDisplayValue: formDisplayValue$ | async,\n formDisplayTypeListItems: formDisplayTypeListItems$ | async,\n formSizeListItems: formSizeListItems$ | async,\n disableFormSizeInput: disableFormSizeInput$ | async,\n isUserTask: isUserTask$ | async,\n taskPanelEnabled: taskPanelEnabled$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n @if (obs.taskPanelEnabled && obs.isUserTask) {\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.displayType.placeholder' | translate\"\n [label]=\"'processLinkSteps.displayType.label' | translate\"\n [disabled]=\"obs.saving\"\n (selected)=\"selectFormDisplayType($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formDisplayTypeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n <br />\n\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.formSize.placeholder' | translate\"\n [label]=\"'processLinkSteps.formSize.label' | translate\"\n [disabled]=\"obs.disableFormSizeInput || obs.saving\"\n (selected)=\"selectFormSize($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formSizeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n }\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {FormService} from '@valtimo/form';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, switchMap, tap} from 'rxjs';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\nimport {FormDefinitionListItem, FormProcessLinkUpdateRequestDto} from '../../models';\nimport {take} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-select-form',\n templateUrl: './select-form.component.html',\n styleUrls: ['./select-form.component.scss'],\n})\nexport class SelectFormComponent implements OnInit, OnDestroy {\n public formDisplayValue: string = '';\n public formSizeValue: string = '';\n public selectedFormDefinition!: FormDefinitionListItem;\n\n public readonly saving$ = this.stateService.saving$;\n private readonly formDefinitions$ = this.formService.getAllFormDefinitions();\n public readonly formDefinitionListItems$: Observable<Array<FormDefinitionListItem>> =\n combineLatest([this.stateService.selectedProcessLink$, this.formDefinitions$]).pipe(\n map(([selectedProcessLink, formDefinitions]) =>\n formDefinitions.map(definition => ({\n content: definition.name,\n id: definition.id,\n selected: selectedProcessLink\n ? selectedProcessLink.formDefinitionId === definition.id\n : false,\n }))\n ),\n tap(formDefinitionListItems => {\n const selectedItem = formDefinitionListItems.find(item => item.selected);\n\n if (selectedItem) {\n this.selectFormDefinition(selectedItem);\n }\n })\n );\n\n private _subscriptions = new Subscription();\n private isUserTask$ = new BehaviorSubject<boolean>(false);\n private readonly taskPanelToggle = this.configService.featureToggles?.enableTaskPanel;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly formService: FormService,\n private readonly stateService: ProcessLinkStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly buttonService: ProcessLinkButtonService\n ) {}\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n this._subscriptions.add(\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.modalParams$,\n ]).subscribe(([selectedProcessLink, modalParams]) => {\n if (selectedProcessLink) {\n this.formDisplayValue = selectedProcessLink.formDisplayType;\n this.formSizeValue = selectedProcessLink.formSize;\n }\n\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFormDefinition(formDefinition: FormDefinitionListItem): void {\n this.selectedFormDefinition = formDefinition?.id ? formDefinition : null;\n\n this.selectedFormDefinition\n ? this.buttonService.enableSaveButton()\n : this.buttonService.disableSaveButton();\n }\n\n public selectedFormDisplayValue(formDisplay: string): void {\n this.formDisplayValue = formDisplay;\n }\n\n public selectedFormSizeValue(formSize: string): void {\n this.formSizeValue = formSize;\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveProcessLink();\n })\n );\n }\n\n private saveProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink();\n } else {\n this.saveNewProcessLink();\n }\n });\n }\n\n private updateProcessLink(): void {\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.viewModelEnabled$,\n this.isUserTask$,\n ])\n .pipe(take(1))\n .subscribe(([selectedProcessLink, viewModelEnabled, isUserTask]) => {\n const updateProcessLinkRequest: FormProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n formDefinitionId: this.selectedFormDefinition.id,\n viewModelEnabled,\n ...(this.taskPanelToggle &&\n isUserTask && {\n formDisplayType: this.formDisplayValue,\n }),\n ...(this.taskPanelToggle && isUserTask && {formSize: this.formSizeValue}),\n };\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$,\n this.stateService.viewModelEnabled$,\n this.isUserTask$,\n ])\n .pipe(\n take(1),\n switchMap(([modalParams, processLinkTypeId, viewModelEnabled, isUserTask]) =>\n this.processLinkService.saveProcessLink({\n formDefinitionId: this.selectedFormDefinition.id,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n viewModelEnabled,\n ...(this.taskPanelToggle &&\n isUserTask && {\n formDisplayType: this.formDisplayValue,\n }),\n ...(this.taskPanelToggle &&\n isUserTask && {\n formSize: this.formSizeValue,\n }),\n })\n )\n )\n .subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n formDefinitions: formDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormDescription' | translate }}\n </p>\n <div class=\"select-form\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formDefinitions || obs.saving\"\n [items]=\"obs.formDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormDefinition($event)\"\n [label]=\"'processLinkSteps.selectForm' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormDefinition\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, switchMap, tap} from 'rxjs';\nimport {\n FormFlowService,\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\nimport {FormDefinitionListItem, FormFlowProcessLinkUpdateRequestDto} from '../../models';\nimport {take} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-select-form-flow',\n templateUrl: './select-form-flow.component.html',\n styleUrls: ['./select-form-flow.component.scss'],\n})\nexport class SelectFormFlowComponent implements OnInit, OnDestroy {\n public formDisplayValue: string = '';\n public formSizeValue: string = '';\n public selectedFormFlowDefinition!: FormDefinitionListItem;\n public readonly saving$ = this.stateService.saving$;\n private readonly formFlowDefinitions$ = this.formFlowService.getFormFlowDefinitions();\n\n public readonly formFlowDefinitionListItems$: Observable<Array<FormDefinitionListItem>> =\n combineLatest([this.stateService.selectedProcessLink$, this.formFlowDefinitions$]).pipe(\n map(([selectedProcessLink, formFlowDefinitions]) =>\n formFlowDefinitions.map(definition => ({\n content: definition.name,\n id: definition.id,\n selected: selectedProcessLink\n ? selectedProcessLink.formFlowDefinitionId === definition.id\n : false,\n }))\n ),\n tap(formFlowDefinitionListItems => {\n const selectedItem = formFlowDefinitionListItems.find(item => item.selected);\n\n if (selectedItem) {\n this.selectFormFlowDefinition(selectedItem);\n }\n })\n );\n\n private _subscriptions = new Subscription();\n private isUserTask$ = new BehaviorSubject<boolean>(false);\n private readonly taskPanelToggle = this.configService.featureToggles?.enableTaskPanel;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly formFlowService: FormFlowService,\n private readonly stateService: ProcessLinkStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly buttonService: ProcessLinkButtonService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n this._subscriptions.add(\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.modalParams$,\n ]).subscribe(([selectedProcessLink, modalParams]) => {\n if (selectedProcessLink) {\n this.formDisplayValue = selectedProcessLink.formDisplayType;\n this.formSizeValue = selectedProcessLink.formSize;\n }\n\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n })\n );\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectedFormDisplayValue(formDisplay: string): void {\n this.formDisplayValue = formDisplay;\n }\n\n public selectedFormSizeValue(formSize: string): void {\n this.formSizeValue = formSize;\n }\n\n public selectFormFlowDefinition(formFlowDefinition: FormDefinitionListItem): void {\n this.selectedFormFlowDefinition = formFlowDefinition?.id ? formFlowDefinition : null;\n\n this.selectedFormFlowDefinition\n ? this.buttonService.enableSaveButton()\n : this.buttonService.disableSaveButton();\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveFormFlowLink();\n })\n );\n }\n\n private saveFormFlowLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink();\n } else {\n this.saveNewProcessLink();\n }\n });\n }\n\n private updateProcessLink(): void {\n combineLatest(this.stateService.selectedProcessLink$, this.isUserTask$)\n .pipe(take(1))\n .subscribe(([selectedProcessLink, isUserTask]) => {\n const updateProcessLinkRequest: FormFlowProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n formFlowDefinitionId: this.selectedFormFlowDefinition.id,\n ...(this.taskPanelToggle &&\n isUserTask && {\n formDisplayType: this.formDisplayValue,\n }),\n ...(this.taskPanelToggle && isUserTask && {formSize: this.formSizeValue}),\n };\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$,\n this.isUserTask$,\n ])\n .pipe(\n take(1),\n switchMap(([modalParams, processLinkTypeId, isUserTask]) =>\n this.processLinkService.saveProcessLink({\n formFlowDefinitionId: this.selectedFormFlowDefinition.id,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n ...(this.taskPanelToggle &&\n isUserTask && {\n formDisplayType: this.formDisplayValue,\n }),\n ...(this.taskPanelToggle && isUserTask && {formSize: this.formSizeValue}),\n })\n )\n )\n .subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n formFlowDefinitions: formFlowDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormFlowDescription' | translate }}\n </p>\n <div class=\"select-form-flow\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formFlowDefinitions || obs.saving\"\n [items]=\"obs.formFlowDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormFlowDefinition($event)\"\n [label]=\"'processLinkSteps.selectFormFlow' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormFlowDefinition\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-process-link-modal',\n templateUrl: './process-link-modal.component.html',\n styleUrls: ['./process-link-modal.component.scss'],\n})\nexport class ProcessLinkModalComponent {\n public readonly showModal$ = this.stateService.showModal$;\n public readonly processStepName$ = this.stateService.elementName$;\n public readonly steps$ = this.stepService.steps$;\n public readonly currentStepIndex$ = this.stepService.currentStepIndex$;\n public readonly currentStepId$ = this.stepService.currentStepId$;\n public readonly showSaveButton$ = this.buttonService.showSaveButton$;\n public readonly enableSaveButton$ = this.buttonService.enableSaveButton$;\n public readonly showBackButton$ = this.buttonService.showBackButton$;\n public readonly showNextButton$ = this.buttonService.showNextButton$;\n public readonly enableNextButton$ = this.buttonService.enableNextButton$;\n public readonly hideProgressIndicator$ = this.stateService.hideProgressIndicator$;\n public readonly saving$ = this.stateService.saving$;\n public readonly typeOfSelectedProcessLink$ = this.stateService.typeOfSelectedProcessLink$;\n public readonly viewModelEnabled$ = this.stateService.viewModelEnabled$;\n\n public readonly showViewModelToggle =\n this.configService.config.featureToggles.enableFormViewModel;\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly stepService: ProcessLinkStepService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly processLinkService: ProcessLinkService,\n private readonly processLinkStateService: ProcessLinkStateService,\n private readonly configService: ConfigService\n ) {}\n\n closeModal(): void {\n this.stateService.closeModal();\n }\n\n backButtonClick(): void {\n this.buttonService.clickBackButton();\n }\n\n saveButtonClick(): void {\n this.buttonService.clickSaveButton();\n }\n\n nextButtonClick(): void {\n this.buttonService.clickNextButton();\n }\n\n unlinkButtonClick(): void {\n this.stateService.startSaving();\n\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n this.processLinkService.deleteProcessLink(selectedProcessLink.id).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n public toggleCheckedChange(value: boolean): void {\n this.processLinkStateService.setViewModelEnabled(value);\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"process-link-modal-container\"\n *ngIf=\"{\n showModal: showModal$ | async,\n processStepName: processStepName$ | async,\n steps: steps$ | async,\n currentStepIndex: currentStepIndex$ | async,\n currentStepId: currentStepId$ | async,\n showSaveButton: showSaveButton$ | async,\n enableSaveButton: enableSaveButton$ | async,\n showBackButton: showBackButton$ | async,\n showNextButton: showNextButton$ | async,\n enableNextButton: enableNextButton$ | async,\n saving: saving$ | async,\n hideProgressIndicator: hideProgressIndicator$ | async,\n typeOfSelectedProgressLink: typeOfSelectedProcessLink$ | async,\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </h3>\n <div class=\"process-link-progress\" *ngIf=\"!obs.typeOfSelectedProgressLink\">\n <ng-container *ngTemplateOutlet=\"progressIndicator; context: {obs: obs}\"></ng-container>\n </div>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"stepContent; context: {obs: obs}\"></ng-container>\n </section>\n <ng-template *ngTemplateOutlet=\"footer; context: {obs: obs}\"></ng-template>\n </cds-modal>\n</div>\n\n<ng-template #progressIndicator let-obs=\"obs\">\n <cds-progress-indicator\n *ngIf=\"obs.steps && !obs.hideProgressIndicator\"\n [steps]=\"obs.steps\"\n [current]=\"obs.currentStepIndex\"\n spacing=\"equal\"\n ></cds-progress-indicator>\n</ng-template>\n\n<ng-template #stepContent let-obs=\"obs\">\n <div class=\"cds-loading-container\" *ngIf=\"obs.saving\">\n <cds-loading></cds-loading>\n </div>\n <div [ngClass]=\"{hidden: obs.saving}\">\n <ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'chooseProcessLinkType'\">\n <valtimo-choose-process-link-type></valtimo-choose-process-link-type>\n </ng-container>\n <ng-container\n *ngIf=\"obs.currentStepId === 'selectForm' || obs.typeOfSelectedProgressLink === 'form'\"\n >\n <valtimo-select-form></valtimo-select-form>\n <br />\n <cds-toggle\n *ngIf=\"showViewModelToggle\"\n [label]=\"'processLinkConfiguration.toggleViewModel.title' | translate\"\n [onText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [offText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [checked]=\"viewModelEnabled$ | async\"\n (checkedChange)=\"toggleCheckedChange($event)\"\n ></cds-toggle>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'selectFormFlow' || obs.typeOfSelectedProgressLink === 'form-flow'\n \"\n >\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginConfiguration'\">\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'configurePluginAction' ||\n obs.typeOfSelectedProgressLink === 'plugin'\n \"\n >\n <valtimo-plugin-action-configuration></valtimo-plugin-action-configuration>\n </ng-container>\n </ng-container>\n <valtimo-select-url\n *ngIf=\"obs.currentStepId === 'selectURL' || obs.typeOfSelectedProgressLink === 'url'\"\n ></valtimo-select-url>\n </div>\n</ng-template>\n\n<ng-template #footer let-obs=\"obs\">\n <cds-modal-footer *ngIf=\"!obs.saving\">\n <div class=\"cancel-button\">\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n </div>\n <div class=\"navigation-buttons\">\n <button\n *ngIf=\"obs.showBackButton && !obs.saving\"\n cdsButton=\"secondary\"\n (click)=\"backButtonClick()\"\n >\n {{ 'processLinkConfiguration.back' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showNextButton && !obs.saving\"\n [disabled]=\"obs.enableNextButton === false\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.typeOfSelectedProgressLink\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"(obs.showSaveButton && !obs.saving) || obs.typeOfSelectedProgressLink\"\n [disabled]=\"obs.enableSaveButton === false\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ModalParams} from '../../models';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {of, switchMap, tap} from 'rxjs';\nimport {ModalService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-process-link',\n templateUrl: './process-link.component.html',\n styleUrls: ['./process-link.component.scss'],\n providers: [ProcessLinkStateService, ProcessLinkStepService, ProcessLinkButtonService],\n})\nexport class ProcessLinkComponent {\n constructor(\n private readonly processLinkService: ProcessLinkService,\n private readonly stateService: ProcessLinkStateService,\n private readonly modalService: ModalService\n ) {}\n\n openModal(params: ModalParams): void {\n const activityType = params?.element?.activityListenerType;\n\n this.modalService.setModalData(params);\n\n if (activityType) {\n this.processLinkService\n .getProcessLink({\n activityId: params.element.id,\n processDefinitionId: params.processDefinitionId,\n })\n .pipe(\n switchMap(processLinks => {\n if (processLinks.length > 0) {\n return of({processLink: processLinks[0]});\n }\n\n return this.processLinkService.getProcessLinkCandidates(activityType);\n }),\n tap(res => {\n const result = res as any;\n const processLink = result.processLink;\n\n this.stateService.setModalParams(params);\n this.stateService.setElementName(params?.element?.name);\n\n if (processLink) {\n this.stateService.selectProcessLink(processLink);\n } else {\n this.stateService.setAvailableProcessLinkTypes(result);\n }\n\n if (result?.length > 0 || processLink) {\n this.stateService.showModal();\n }\n })\n )\n .subscribe();\n }\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <valtimo-form-link-process-diagram\n (bpmnElementModalOpen)=\"openModal($event)\"\n ></valtimo-form-link-process-diagram>\n </div>\n</div>\n\n<valtimo-process-link-modal></valtimo-process-link-modal>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {ProcessLinkComponent} from './components/process-link/process-link.component';\n\nconst routes: Routes = [\n {\n path: 'process-links',\n component: ProcessLinkComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process links', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class ProcessLinkRoutingModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './choose-process-link-type.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './select-form.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {tap} from 'rxjs/operators';\nimport {ChangeEvent, FormFlowCustomComponent} from '../../models';\nimport {FormFlowComponentService} from '../../services';\nimport {FormioSubmission} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-form-flow-configuration-container',\n templateUrl: './form-flow-configuration-container.component.html',\n})\nexport class FormFlowConfigurationContainerComponent\n implements OnInit, OnDestroy, FormFlowCustomComponent\n{\n @ViewChild('formFlowConfigurationComponent', {static: true, read: ViewContainerRef})\n private readonly _dynamicContainer: ViewContainerRef;\n @Input() public set disabled(disabledValue: boolean) {\n this._disabled$.next(disabledValue);\n }\n @Input() public set componentId(value: string) {\n this._componentId$.next(value);\n }\n @Input() public set formFlowInstanceId(value: string) {\n this._formFlowInstanceId$.next(value);\n }\n @Output() public changeEvent = new EventEmitter<ChangeEvent>();\n @Output() public submitEvent = new EventEmitter<FormioSubmission>();\n\n private _changeSubscription!: Subscription;\n private _submitSubscription!: Subscription;\n\n private readonly _subscriptions = new Subscription();\n private readonly _componentRef$ = new BehaviorSubject<\n ComponentRef<FormFlowCustomComponent> | undefined\n >(undefined);\n private readonly _disabled$ = new BehaviorSubject<boolean>(false);\n private readonly _componentId$ = new BehaviorSubject<string>('');\n private readonly _formFlowInstanceId$ = new BehaviorSubject<string>('');\n\n constructor(private readonly formFlowComponentService: FormFlowComponentService) {}\n\n public ngOnInit(): void {\n this.openConfigurationComponentSubscription();\n this.openComponentInstanceSubscription();\n this.openDisabledSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openConfigurationComponentSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.formFlowComponentService.supportedComponents$, this._componentId$])\n .pipe(\n tap(([supportedComponents, componentId]) => {\n const configurationComponent = supportedComponents.find(\n component => component.id === componentId\n );\n\n this._dynamicContainer.clear();\n\n if (configurationComponent) {\n const componentRef = this._dynamicContainer.createComponent(\n configurationComponent.component\n );\n this._componentRef$.next(componentRef);\n }\n })\n )\n .subscribe()\n );\n }\n\n private openComponentInstanceSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._componentRef$, this._formFlowInstanceId$]).subscribe(\n ([ref, formFlowInstanceId]) => {\n const instance = ref?.instance;\n\n this._submitSubscription?.unsubscribe();\n this._changeSubscription?.unsubscribe();\n\n if (instance) {\n if (formFlowInstanceId) {\n instance.formFlowInstanceId = formFlowInstanceId;\n }\n\n this._changeSubscription = instance.changeEvent.subscribe(change => {\n this.changeEvent.emit(change);\n });\n\n this._submitSubscription = instance.submitEvent.subscribe(submit => {\n this.submitEvent.emit(submit);\n });\n }\n }\n )\n );\n }\n\n private openDisabledSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._componentRef$, this._disabled$]).subscribe(([ref, disabled]) => {\n const instance = ref?.instance;\n\n if (instance) {\n instance.disabled = disabled;\n }\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-template #formFlowConfigurationComponent></ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, Observable, Subscription} from 'rxjs';\nimport {FormioForm} from '@formio/angular';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ValtimoFormioOptions,\n ValtimoModalService,\n} from '@valtimo/components';\nimport {FormFlowService} from '../../services';\nimport {FormFlowInstance, FormFlowStepType} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Step} from 'carbon-components-angular';\nimport {ConfigService} from '@valtimo/config';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-form-flow',\n templateUrl: './form-flow.component.html',\n styleUrls: ['./form-flow.component.scss'],\n})\nexport class FormFlowComponent implements OnInit, OnDestroy {\n @ViewChild('form') form: FormioComponent;\n @Input() formIoFormData: BehaviorSubject<any | null> = new BehaviorSubject<any>(null);\n @Input() formFlowInstanceId: string | null;\n @Output() formFlowComplete = new EventEmitter();\n\n public readonly breadcrumbs$ = new BehaviorSubject<Step[]>([]);\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n public readonly formFlowStepType$ = new BehaviorSubject<FormFlowStepType | null>(null);\n public readonly FormFlowCustomComponentId$ = new BehaviorSubject<string>('');\n public readonly currentStepIndex$ = new BehaviorSubject<number>(0);\n public readonly enableFormFlowBreadcrumbs$ = this.configService.getFeatureToggleObservable(\n 'enableFormFlowBreadcrumbs'\n );\n\n private readonly _subscriptions = new Subscription();\n\n formDefinition: FormioForm;\n formioOptions: ValtimoFormioOptions;\n\n private formFlowStepInstanceId: string | null;\n\n constructor(\n private readonly formFlowService: FormFlowService,\n private readonly modalService: ValtimoModalService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService\n ) {\n this.formioOptions = new FormioOptionsImpl();\n this.formioOptions.disableAlerts = true;\n }\n\n public ngOnInit() {\n this.getFormFlowStep();\n this.getBreadcrumbs();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onChange(event: any): void {\n if (event?.data) this.formIoFormData.next(event.data);\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.disable();\n\n if (submission.data) {\n this.formIoFormData.next(submission.data);\n }\n if (submission.data.submit && this.formFlowInstanceId && this.formFlowStepInstanceId) {\n this.formFlowService\n .submitStep(\n this.formFlowInstanceId,\n this.formFlowStepInstanceId,\n this.formIoFormData.getValue()\n )\n .subscribe({\n next: (result: FormFlowInstance) => {\n this.handleFormFlowStep(result);\n },\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n } else if (submission.data['back']) {\n this.back(submission.data);\n }\n }\n\n public onEvent(submission: any): void {\n if (submission.data['back'] || submission.type == 'back') {\n this.back(submission.data);\n }\n }\n\n public saveData(): void {\n const formIoFormDataValue = this.formIoFormData.getValue();\n if (formIoFormDataValue && this.formFlowInstanceId) {\n this.formFlowService.save(this.formFlowInstanceId, formIoFormDataValue).subscribe(\n () => null,\n errors => this.form.showErrors(errors)\n );\n }\n }\n\n public onStepSelected(event: {step: {stepInstanceId: string}; index: number}): void {\n this.disable();\n this.currentStepIndex$.next(event.index);\n const submissionData = this.formIoFormData.getValue().data;\n if (!this.formFlowInstanceId || !this.formFlowStepInstanceId) return;\n this.formFlowService\n .navigateToStep(\n this.formFlowInstanceId,\n this.formFlowStepInstanceId,\n event.step.stepInstanceId,\n submissionData\n )\n .subscribe({\n next: (result: FormFlowInstance) => this.handleFormFlowStep(result),\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n }\n\n private getBreadcrumbs(): void {\n if (!this.formFlowInstanceId) return;\n this._subscriptions.add(\n combineLatest([\n this.enableFormFlowBreadcrumbs$,\n this.formFlowService.getBreadcrumbs(this.formFlowInstanceId),\n this.translateService.stream('key'),\n ])\n .pipe(\n filter(([enableFormFlowBreadcrumbs]) => enableFormFlowBreadcrumbs),\n map(([_, breadcrumbs]) => breadcrumbs)\n )\n .subscribe(breadcrumbs => {\n this.currentStepIndex$.next(breadcrumbs.currentStepIndex);\n this.breadcrumbs$.next(\n breadcrumbs.breadcrumbs.map(breadcrumb => ({\n label:\n breadcrumb.title ??\n this.translateService.instant(`formFlow.step.${breadcrumb.key}.title`) ??\n breadcrumb.key,\n disabled: breadcrumb.stepInstanceId === null,\n complete: breadcrumb.completed,\n stepInstanceId: breadcrumb.stepInstanceId,\n }))\n );\n const classElement = document.getElementsByClassName('cds--progress-step--current');\n if (classElement.length > 0) {\n classElement[0].scrollIntoView({behavior: 'smooth', inline: 'center'});\n }\n })\n );\n }\n\n private getFormFlowStep(): void {\n if (!this.formFlowInstanceId) return;\n this.formFlowService\n .getFormFlowStep(this.formFlowInstanceId)\n .subscribe((result: FormFlowInstance) => {\n this.handleFormFlowStep(result);\n });\n }\n\n private back(submissionData: any): void {\n if (!this.formFlowInstanceId) return;\n\n this.formFlowService.back(this.formFlowInstanceId, submissionData).subscribe({\n next: (result: FormFlowInstance) => this.handleFormFlowStep(result),\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n }\n\n private handleFormFlowStep(formFlowInstance: FormFlowInstance) {\n if (formFlowInstance.step === null) {\n this.formFlowStepType$.next(null);\n this.FormFlowCustomComponentId$.next('');\n this.formFlowInstanceId = null;\n this.formFlowStepInstanceId = null;\n this.formFlowComplete.emit(null);\n } else {\n this.getBreadcrumbs();\n this.modalService.scrollToTop();\n this.formFlowStepType$.next(formFlowInstance.step?.type ?? null);\n this.FormFlowCustomComponentId$.next(formFlowInstance?.step?.typeProperties?.id || '');\n this.formFlowInstanceId = formFlowInstance.id;\n this.formFlowStepInstanceId = formFlowInstance.step?.id ?? null;\n this.formDefinition = formFlowInstance.step?.typeProperties.definition;\n }\n\n this.enable();\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n breadcrumbs: breadcrumbs$ | async,\n currentStepIndex: currentStepIndex$ | async,\n enableFormFlowBreadcrumbs: enableFormFlowBreadcrumbs$ | async,\n } as obs\"\n>\n <div *ngIf=\"formDefinition && (formFlowStepType$ | async) === 'form'\">\n <div *ngIf=\"obs.enableFormFlowBreadcrumbs\" class=\"form-flow__progress-bar-indicator\">\n <cds-progress-indicator\n [spacing]=\"'equal'\"\n [skeleton]=\"obs.breadcrumbs.length === 0\"\n [current]=\"obs.currentStepIndex\"\n [steps]=\"obs.breadcrumbs\"\n (stepSelected)=\"onStepSelected($event)\"\n >\n </cds-progress-indicator>\n </div>\n\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (event)=\"onEvent($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n <div *ngIf=\"(formFlowStepType$ | async) === 'custom-component'\">\n <valtimo-form-flow-configuration-container\n [componentId]=\"FormFlowCustomComponentId$ | async\"\n [formFlowInstanceId]=\"formFlowInstanceId\"\n [disabled]=\"disabled$ | async\"\n (submitEvent)=\"onSubmit($event)\"\n (changeEvent)=\"onChange($event)\"\n >\n </valtimo-form-flow-configuration-container>\n </div>\n</div>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './select-form-flow.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-flow-configuration-container.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {FormLinkProcessDiagramComponent} from './components/form-link-process-diagram/form-link-process-diagram.component';\nimport {CommonModule} from '@angular/common';\nimport {ProcessLinkRoutingModule} from './process-link-routing.module';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n ButtonModule,\n FormIoModule,\n ModalModule,\n ParagraphModule,\n RenderInPageHeaderDirectiveModule,\n SearchableDropdownSelectModule,\n StepperModule,\n TitleModule,\n TooltipIconModule,\n TooltipModule,\n ValtimoCdsModalDirectiveModule,\n VCardModule,\n VModalModule,\n} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {SelectPluginConfigurationComponent} from './components/select-plugin-configuration/select-plugin-configuration.component';\nimport {SelectPluginActionComponent} from './components/select-plugin-action/select-plugin-action.component';\nimport {PluginConfigurationContainerModule, PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {PluginActionConfigurationComponent} from './components/plugin-action-configuration/plugin-action-configuration.component';\nimport {ProcessLinkComponent} from './components/process-link/process-link.component';\nimport {ProcessLinkModalComponent} from './components/process-link-modal/process-link-modal.component';\nimport {\n ButtonModule as CarbonButtonModule,\n ComboBoxModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule as CarbonModalModule,\n ProgressIndicatorModule,\n SelectModule,\n StructuredListModule,\n TilesModule,\n ToggleModule,\n} from 'carbon-components-angular';\nimport {ChooseProcessLinkTypeComponent} from './components/choose-process-link-type';\nimport {SelectFormComponent} from './components/select-form';\nimport {FormFlowComponent} from './components/form-flow/form-flow.component';\nimport {SelectFormFlowComponent} from './components/select-form-flow';\nimport {FormFlowConfigurationContainerComponent} from './components/form-flow-configuration-container';\nimport {SelectUrlComponent} from './components/select-url/select-url.component';\nimport {UrlValidatorService} from './services/url-validator.service';\nimport {UrlResolverService} from './services/url-resolver.service';\nimport {FormDisplayConfigurationComponent} from './components/form-display-configuration/form-display-configuration.component';\n\n@NgModule({\n declarations: [\n ProcessLinkComponent,\n FormLinkProcessDiagramComponent,\n SelectPluginConfigurationComponent,\n SelectPluginActionComponent,\n PluginActionConfigurationComponent,\n ProcessLinkModalComponent,\n ChooseProcessLinkTypeComponent,\n SelectFormComponent,\n FormFlowComponent,\n SelectFormFlowComponent,\n FormFlowConfigurationContainerComponent,\n SelectUrlComponent,\n FormDisplayConfigurationComponent,\n ],\n imports: [\n CommonModule,\n ProcessLinkRoutingModule,\n FormsModule,\n ReactiveFormsModule,\n ModalModule,\n SearchableDropdownSelectModule,\n TranslateModule,\n StepperModule,\n VModalModule,\n VCardModule,\n PluginTranslatePipeModule,\n ParagraphModule,\n PluginConfigurationContainerModule,\n ButtonModule,\n TitleModule,\n CarbonModalModule,\n ProgressIndicatorModule,\n CarbonButtonModule,\n IconModule,\n TooltipModule,\n ComboBoxModule,\n InputModule,\n TooltipIconModule,\n LoadingModule,\n FormIoModule,\n ValtimoCdsModalDirectiveModule,\n StructuredListModule,\n TilesModule,\n RenderInPageHeaderDirectiveModule,\n SelectModule,\n ToggleModule,\n ],\n exports: [\n ProcessLinkComponent,\n SelectPluginConfigurationComponent,\n SelectPluginActionComponent,\n PluginActionConfigurationComponent,\n ProcessLinkModalComponent,\n FormFlowComponent,\n SelectUrlComponent,\n ],\n providers: [\n UrlValidatorService,\n UrlResolverService\n ]\n})\nexport class ProcessLinkModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ListItem} from 'carbon-components-angular';\n\ninterface FormSubmissionResult {\n errors: string[];\n documentId?: string;\n}\n\ninterface BpmnElement {\n id: string;\n type: string;\n activityListenerType?: string;\n name?: string;\n}\n\ninterface FormFlowDefinition {\n id: string;\n name: string;\n}\n\ninterface FormFlowInstance {\n id: string;\n step?: FormFlowStep;\n}\n\ninterface FormFlowCreateRequest {\n documentId: string | null;\n documentDefinitionName: string | null;\n}\n\ninterface FormFlowCreateResult {\n formFlowInstanceId: string;\n}\n\ntype FormFlowStepType = 'form' | 'custom-component';\n\ninterface FormFlowStep {\n id: string;\n type: FormFlowStepType;\n typeProperties: FormTypeProperties;\n}\n\ninterface FormTypeProperties {\n definition?: any;\n id?: string;\n}\n\ninterface ModalParams {\n element: BpmnElement;\n processDefinitionKey: string;\n processDefinitionId: string;\n}\n\ninterface FormDefinitionListItem extends ListItem {\n id: string;\n}\n\ninterface FormFlowBreadcrumbs extends ListItem {\n currentStepIndex: number;\n breadcrumbs: Array<FormFlowBreadcrumb>;\n}\n\ninterface FormFlowBreadcrumb extends ListItem {\n title: string;\n key: string;\n stepInstanceId: string;\n completed: boolean;\n}\n\nexport {\n FormSubmissionResult,\n BpmnElement,\n FormFlowDefinition,\n FormFlowInstance,\n FormFlowStepType,\n FormFlowStep,\n FormTypeProperties,\n FormFlowCreateResult,\n FormFlowCreateRequest,\n ModalParams,\n FormDefinitionListItem,\n FormFlowBreadcrumbs,\n FormFlowBreadcrumb,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ProcessLink {\n id: string;\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n pluginConfigurationId?: string;\n pluginActionDefinitionKey?: string;\n actionProperties?: {\n [key: string]: any;\n };\n formDefinitionId?: string;\n formFlowDefinitionId?: string;\n viewModelEnabled?: boolean;\n url?: string;\n formDisplayType?: FormDisplayType;\n formSize?: FormSize;\n}\n\ntype GetProcessLinkResponse = Array<ProcessLink>;\n\ninterface GetProcessLinkRequest {\n activityId: string;\n processDefinitionId: string;\n}\n\ninterface ProcessLinkType {\n enabled: boolean;\n processLinkType: string;\n}\n\ntype ProcessLinkConfigurationStep =\n | 'chooseProcessLinkType'\n | 'choosePluginConfiguration'\n | 'choosePluginAction'\n | 'configurePluginAction'\n | 'selectForm'\n | 'selectFormFlow'\n | 'empty';\n\ninterface FormProcessLinkCreateRequestDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n formDefinitionId: string;\n viewModelEnabled: boolean;\n formDisplayType?: string;\n formSize?: string;\n}\n\ninterface FormFlowProcessLinkCreateRequestDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n formFlowDefinitionId: string;\n}\n\ninterface PluginProcessLinkCreateDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n pluginConfigurationId: string;\n pluginActionDefinitionKey: string;\n actionProperties: object;\n}\n\ninterface PluginProcessLinkUpdateDto {\n id: string;\n pluginConfigurationId: string;\n pluginActionDefinitionKey: string;\n actionProperties: {\n [key: string]: any;\n };\n}\n\ninterface FormFlowProcessLinkUpdateRequestDto {\n id: string;\n formFlowDefinitionId: string;\n formDisplayType?: string;\n formSize?: string;\n}\n\ninterface FormProcessLinkUpdateRequestDto {\n id: string;\n formDefinitionId: string;\n viewModelEnabled: boolean;\n formDisplayType?: string;\n formSize?: string;\n}\n\ntype FormDisplayType = 'modal' | 'panel';\n\ntype FormSize = 'extraSmall' | 'small' | 'medium' | 'large';\n\ninterface URLProcessLinkCreateDto {\n url: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n}\n\ninterface URLProcessLinkUpdateRequestDto {\n url: string;\n id: string;\n}\n\nexport {\n GetProcessLinkRequest,\n ProcessLink,\n GetProcessLinkResponse,\n PluginProcessLinkUpdateDto,\n ProcessLinkType,\n ProcessLinkConfigurationStep,\n FormProcessLinkCreateRequestDto,\n FormFlowProcessLinkCreateRequestDto,\n PluginProcessLinkCreateDto,\n FormFlowProcessLinkUpdateRequestDto,\n FormProcessLinkUpdateRequestDto,\n URLProcessLinkCreateDto,\n URLProcessLinkUpdateRequestDto,\n FormDisplayType,\n FormSize,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {EventEmitter, Type} from '@angular/core';\nimport {FormioSubmission} from '@valtimo/components';\n\ninterface ChangeEvent {\n data: object;\n}\n\ninterface FormFlowCustomComponent {\n formFlowInstanceId: string;\n componentId?: string;\n disabled: boolean;\n changeEvent: EventEmitter<ChangeEvent>;\n submitEvent: EventEmitter<FormioSubmission>;\n}\n\ninterface FormFlowCustomComponentDefinition {\n id: string;\n component: Type<FormFlowCustomComponent>;\n}\n\nexport {FormFlowCustomComponentDefinition, FormFlowCustomComponent, ChangeEvent};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-link.model';\nexport * from './process-link.model';\nexport * from './form-flow.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of process-link\n */\n\nexport * from './lib/services/form-flow.service';\nexport * from './lib/services/process-link.service';\nexport * from './lib/services/url-resolver.service';\nexport * from './lib/services/url-validator.service';\nexport * from './lib/components/select-plugin-configuration/select-plugin-configuration.component';\nexport * from './lib/components/select-plugin-action/select-plugin-action.component';\nexport * from './lib/components/select-url/select-url.component';\nexport * from './lib/components/plugin-action-configuration/plugin-action-configuration.component';\nexport * from './lib/process-link.module';\nexport * from './lib/models';\nexport * from './lib/components/process-link/process-link.component';\nexport * from './lib/components/process-link-modal/process-link-modal.component';\nexport * from './lib/components/choose-process-link-type/choose-process-link-type.component';\nexport * from './lib/components/form-flow/form-flow.component';\nexport * from './lib/constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i1.UrlResolverService","map","i2.ProcessLinkButtonService","i3.PluginStateService","i4","i1.ProcessLinkStepService","switchMap","i2.PluginStateService","i3.ProcessLinkStateService","i3.ProcessLinkButtonService","i3.ProcessLinkStepService","i5","i6","i1.ProcessLinkButtonService","i1.ProcessLinkStateService","i1.ProcessLinkService","i2.UrlValidatorService","i3.UrlResolverService","i7","i1.PluginStateService","i3","i3.ProcessLinkService","i7.FormDisplayConfigurationComponent","i8","i2.FormFlowService","i2.ProcessLinkStateService","i2.ProcessLinkService","i6.FormDisplayConfigurationComponent","i6.SelectPluginConfigurationComponent","i7.SelectPluginActionComponent","i8.PluginActionConfigurationComponent","i9.ChooseProcessLinkTypeComponent","i10.SelectFormComponent","i11.SelectFormFlowComponent","i12.SelectUrlComponent","i13","i3.FormLinkProcessDiagramComponent","i4.ProcessLinkModalComponent","tap","i1.FormFlowComponentService","i1.FormFlowService","i7.FormFlowConfigurationContainerComponent","CarbonModalModule","CarbonButtonModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-process-link.mjs","sources":["../../../../projects/valtimo/process-link/src/lib/services/form-flow.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link.service.ts","../../../../projects/valtimo/process-link/src/lib/services/url-resolver.service.ts","../../../../projects/valtimo/process-link/src/lib/services/url-validator.service.ts","../../../../projects/valtimo/process-link/src/lib/services/plugin-state.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-button.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-step.service.ts","../../../../projects/valtimo/process-link/src/lib/services/process-link-state.service.ts","../../../../projects/valtimo/process-link/src/lib/constants/injection-tokens.ts","../../../../projects/valtimo/process-link/src/lib/constants/process.link.ts","../../../../projects/valtimo/process-link/src/lib/constants/index.ts","../../../../projects/valtimo/process-link/src/lib/services/form-flow-component.service.ts","../../../../projects/valtimo/process-link/src/lib/services/index.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-configuration/select-plugin-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-configuration/select-plugin-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-action/select-plugin-action.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-plugin-action/select-plugin-action.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-url/select-url.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-url/select-url.component.html","../../../../projects/valtimo/process-link/src/lib/components/plugin-action-configuration/plugin-action-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/plugin-action-configuration/plugin-action-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-link-process-diagram/form-link-process-diagram.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-link-process-diagram/form-link-process-diagram.component.html","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/choose-process-link-type.component.ts","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/choose-process-link-type.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-display-configuration/form-display-configuration.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-display-configuration/form-display-configuration.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form/select-form.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form/select-form.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/select-form-flow.component.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/select-form-flow.component.html","../../../../projects/valtimo/process-link/src/lib/components/process-link-modal/process-link-modal.component.ts","../../../../projects/valtimo/process-link/src/lib/components/process-link-modal/process-link-modal.component.html","../../../../projects/valtimo/process-link/src/lib/components/process-link/process-link.component.ts","../../../../projects/valtimo/process-link/src/lib/components/process-link/process-link.component.html","../../../../projects/valtimo/process-link/src/lib/process-link-routing.module.ts","../../../../projects/valtimo/process-link/src/lib/components/choose-process-link-type/index.ts","../../../../projects/valtimo/process-link/src/lib/components/select-form/index.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/form-flow-configuration-container.component.html","../../../../projects/valtimo/process-link/src/lib/components/form-flow/form-flow.component.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow/form-flow.component.html","../../../../projects/valtimo/process-link/src/lib/components/select-form-flow/index.ts","../../../../projects/valtimo/process-link/src/lib/components/form-flow-configuration-container/index.ts","../../../../projects/valtimo/process-link/src/lib/process-link.module.ts","../../../../projects/valtimo/process-link/src/lib/models/form-link.model.ts","../../../../projects/valtimo/process-link/src/lib/models/process-link.model.ts","../../../../projects/valtimo/process-link/src/lib/models/form-flow.model.ts","../../../../projects/valtimo/process-link/src/lib/models/index.ts","../../../../projects/valtimo/process-link/src/public-api.ts","../../../../projects/valtimo/process-link/src/valtimo-process-link.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {\n FormFlowBreadcrumbs,\n FormFlowCreateRequest,\n FormFlowCreateResult,\n FormFlowDefinition,\n FormFlowInstance,\n} from '../models';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowService {\n private valtimoEndpointUri!: string;\n\n constructor(\n private http: HttpClient,\n private configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public getFormFlowDefinitions(): Observable<FormFlowDefinition[]> {\n return this.http.get<FormFlowDefinition[]>(`${this.valtimoEndpointUri}v1/form-flow/definition`);\n }\n\n public createInstanceForNewProcess(\n processDefinitionKey: string,\n request: FormFlowCreateRequest\n ): Observable<FormFlowCreateResult> {\n return this.http.post<FormFlowCreateResult>(\n `${this.valtimoEndpointUri}v1/process-definition/${processDefinitionKey}/form-flow`,\n request\n );\n }\n\n public getFormFlowStep(formFlowInstanceId: string): Observable<FormFlowInstance> {\n return this.http.get<FormFlowInstance>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}`\n );\n }\n\n public submitStep(\n formFlowInstanceId: string,\n stepInstanceId: string,\n submissionData: any\n ): Observable<FormFlowInstance> {\n return this.http.post<FormFlowInstance>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}/step/instance/${stepInstanceId}`,\n submissionData\n );\n }\n\n public back(formFlowInstanceId: string, submissionData: any): Observable<FormFlowInstance> {\n return this.http.post<FormFlowInstance>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}/back`,\n submissionData\n );\n }\n\n public save(formFlowInstanceId: string, submissionData: any): Observable<null> {\n return this.http.post<null>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}/save`,\n submissionData\n );\n }\n\n public getBreadcrumbs(formFlowInstanceId: string): Observable<FormFlowBreadcrumbs> {\n return this.http.get<FormFlowBreadcrumbs>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${formFlowInstanceId}/breadcrumbs`\n );\n }\n\n public navigateToStep(\n instanceId: string,\n currentStepInstanceId: string,\n targetStepInstanceId,\n submissionData: any\n ): Observable<FormFlowInstance> {\n return this.http.post<FormFlowInstance>(\n `${this.valtimoEndpointUri}v1/form-flow/instance/${instanceId}/step/instance/${currentStepInstanceId}/to/step/instance/${targetStepInstanceId}`,\n submissionData\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {Observable} from 'rxjs';\nimport {\n FormFlowProcessLinkCreateRequestDto,\n FormFlowProcessLinkUpdateRequestDto,\n FormProcessLinkCreateRequestDto,\n FormProcessLinkUpdateRequestDto,\n FormSubmissionResult,\n GetProcessLinkRequest,\n GetProcessLinkResponse,\n PluginProcessLinkCreateDto,\n PluginProcessLinkUpdateDto,\n URLProcessLinkCreateDto,\n ProcessLinkType, URLProcessLinkUpdateRequestDto,\n} from '../models';\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport {URLVariables} from \"../models/process-link-url.model\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessLinkService {\n private readonly VALTIMO_ENDPOINT_URI!: string;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {\n this.VALTIMO_ENDPOINT_URI = configService.config.valtimoApi.endpointUri;\n }\n\n getProcessLink(getProcessLinkRequest: GetProcessLinkRequest): Observable<GetProcessLinkResponse> {\n const params = new HttpParams()\n .set('activityId', getProcessLinkRequest.activityId)\n .set('processDefinitionId', getProcessLinkRequest.processDefinitionId);\n\n return this.http.get<GetProcessLinkResponse>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link`, {\n params,\n });\n }\n\n updateProcessLink(\n updateProcessLinkRequest:\n | PluginProcessLinkUpdateDto\n | FormFlowProcessLinkUpdateRequestDto\n | FormProcessLinkUpdateRequestDto\n | URLProcessLinkUpdateRequestDto\n ): Observable<null> {\n const pluginUpdateRequest = updateProcessLinkRequest as PluginProcessLinkUpdateDto;\n if (pluginUpdateRequest.actionProperties) {\n Object.keys(pluginUpdateRequest.actionProperties).forEach(key => {\n if (pluginUpdateRequest.actionProperties[key] === '') {\n pluginUpdateRequest.actionProperties[key] = null;\n }\n });\n }\n\n return this.http.put<null>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link`,\n updateProcessLinkRequest\n );\n }\n\n saveProcessLink(\n saveProcessLinkRequest:\n | FormProcessLinkCreateRequestDto\n | FormFlowProcessLinkCreateRequestDto\n | PluginProcessLinkCreateDto\n | URLProcessLinkCreateDto\n ): Observable<null> {\n const pluginProcessLinkCreateRequest = saveProcessLinkRequest as PluginProcessLinkCreateDto;\n if (pluginProcessLinkCreateRequest.actionProperties) {\n Object.keys(pluginProcessLinkCreateRequest.actionProperties).forEach(key => {\n if (pluginProcessLinkCreateRequest.actionProperties[key] === '') {\n pluginProcessLinkCreateRequest.actionProperties[key] = null;\n }\n });\n }\n\n return this.http.post<null>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link`,\n saveProcessLinkRequest\n );\n }\n\n deleteProcessLink(id: string): Observable<null> {\n return this.http.delete<null>(`${this.VALTIMO_ENDPOINT_URI}v1/process-link/${id}`);\n }\n\n getProcessLinkCandidates(activityType: string): Observable<Array<ProcessLinkType>> {\n return this.http.get<Array<ProcessLinkType>>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/types?activityType=${activityType}`\n );\n }\n\n submitForm(\n processLinkId: string,\n formData: object,\n documentId?: string,\n taskInstanceId?: string,\n documentDefinitionName?: string\n ): Observable<FormSubmissionResult> {\n let params = new HttpParams();\n\n if (documentId) {\n params = params.set('documentId', documentId);\n }\n if (taskInstanceId) {\n params = params.set('taskInstanceId', taskInstanceId);\n }\n if (documentDefinitionName) {\n params = params.set('documentDefinitionName', documentDefinitionName);\n }\n\n const httpOptions = {\n headers: new HttpHeaders().set('Content-Type', 'application/json'),\n params,\n };\n return this.http.post<FormSubmissionResult>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/${processLinkId}/form/submission`,\n formData,\n httpOptions\n );\n }\n\n public submitURLProcessLink(\n processLinkId: string,\n documentId?: string,\n taskInstanceId?: string,\n documentDefinitionName?: string\n ): Observable<FormSubmissionResult> {\n let params = new HttpParams();\n\n if (documentId) {\n params = params.set('documentId', documentId);\n }\n if (taskInstanceId) {\n params = params.set('taskInstanceId', taskInstanceId);\n }\n if (documentDefinitionName) {\n params = params.set('documentDefinitionName', documentDefinitionName);\n }\n\n const httpOptions = {\n headers: new HttpHeaders().set('Content-Type', 'application/json'),\n params,\n };\n return this.http.post<FormSubmissionResult>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/url/${processLinkId}`,\n {},\n httpOptions\n );\n }\n\n public getVariables(): Observable<URLVariables> {\n return this.http.get<URLVariables>(\n `${this.VALTIMO_ENDPOINT_URI}v1/process-link/url/variables`\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable()\nexport class UrlResolverService {\n\n public resolveUrlVariables(url: string, variables: Map<string, string>): string {\n let resolvingUrl = url;\n Object.keys(variables).forEach(key => {\n let value = variables[key];\n resolvingUrl = resolvingUrl.replace('<' + key + '>', value);\n });\n return resolvingUrl;\n }\n\n}\n","import {AbstractControl, ValidationErrors, ValidatorFn} from '@angular/forms';\nimport {Injectable} from '@angular/core';\nimport {UrlResolverService} from './url-resolver.service';\n\n@Injectable()\nexport class UrlValidatorService {\n\n constructor(\n private readonly urlResolverService: UrlResolverService) {\n }\n\n public urlValidator(variables: Map<string, string>): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const url = this.urlResolverService.resolveUrlVariables(control.value, variables);\n try {\n new URL(url);\n return null;\n } catch (_) {\n return {invalidUrl: url};\n }\n };\n }\n\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, of, Subject, switchMap} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {\n PluginConfiguration,\n PluginDefinition,\n PluginFunction,\n PluginManagementService,\n PluginService,\n} from '@valtimo/plugin';\nimport {ProcessLink} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PluginStateService {\n private readonly _selectedPluginDefinition$ = new BehaviorSubject<PluginDefinition>(undefined);\n private readonly _selectedPluginConfiguration$ = new BehaviorSubject<PluginConfiguration>(\n undefined\n );\n private readonly _selectedPluginFunction$ = new BehaviorSubject<PluginFunction>(undefined);\n private readonly _save$ = new Subject<null>();\n private readonly _selectedProcessLink$ = new BehaviorSubject<ProcessLink>(undefined);\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginService: PluginService\n ) {}\n\n get selectedPluginDefinition$(): Observable<PluginDefinition> {\n return this._selectedPluginDefinition$.asObservable();\n }\n\n get selectedPluginConfiguration$(): Observable<PluginConfiguration> {\n return this._selectedPluginConfiguration$.asObservable();\n }\n\n get selectedPluginFunction$(): Observable<PluginFunction> {\n return this._selectedPluginFunction$.asObservable();\n }\n\n get save$(): Observable<any> {\n return this._save$.asObservable();\n }\n\n get functionKey$(): Observable<string> {\n return this._selectedProcessLink$.pipe(\n switchMap(processLink =>\n !processLink\n ? this._selectedPluginFunction$.pipe(map(pluginFunction => pluginFunction?.key))\n : of(processLink?.pluginActionDefinitionKey)\n )\n );\n }\n\n get pluginDefinitionKey$(): Observable<string> {\n return this._selectedProcessLink$.pipe(\n switchMap(selectedProcesLink =>\n !selectedProcesLink\n ? this._selectedPluginConfiguration$.pipe(\n map(configuration => configuration?.pluginDefinition.key)\n )\n : combineLatest([\n this._selectedProcessLink$,\n this.pluginService.pluginSpecifications$,\n ]).pipe(\n map(([processLink, pluginSpecifications]) => {\n const pluginSpecification = pluginSpecifications.find(specification => {\n const functionKeys =\n specification?.functionConfigurationComponents &&\n Object.keys(specification.functionConfigurationComponents);\n return functionKeys?.includes(processLink?.pluginActionDefinitionKey);\n });\n\n return pluginSpecification?.pluginId;\n })\n )\n )\n );\n }\n\n selectPluginDefinition(definition: PluginDefinition): void {\n this._selectedPluginDefinition$.next(definition);\n }\n\n selectPluginConfiguration(configuration: PluginConfiguration): void {\n this._selectedPluginConfiguration$.next(configuration);\n }\n\n selectPluginFunction(pluginFunction: PluginFunction): void {\n this._selectedPluginFunction$.next(pluginFunction);\n }\n\n selectProcessLink(processLink: ProcessLink): void {\n this._selectedProcessLink$.next(processLink);\n }\n\n deselectProcessLink(): void {\n this._selectedProcessLink$.next(undefined);\n }\n\n save(): void {\n this._save$.next(null);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable()\nexport class ProcessLinkButtonService {\n private readonly _showSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _enableSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _enableNextButton$ = new BehaviorSubject<boolean>(false);\n private readonly _showBackButton$ = new BehaviorSubject<boolean>(false);\n private readonly _showNextButton$ = new BehaviorSubject<boolean>(false);\n private readonly _backButtonClick$ = new Subject<null>();\n private readonly _saveButtonClick$ = new Subject<null>();\n private readonly _nextButtonClick$ = new Subject<null>();\n\n get showSaveButton$(): Observable<boolean> {\n return this._showSaveButton$.asObservable();\n }\n get enableSaveButton$(): Observable<boolean> {\n return this._enableSaveButton$.asObservable();\n }\n get showNextButton$(): Observable<boolean> {\n return this._showNextButton$.asObservable();\n }\n get enableNextButton$(): Observable<boolean> {\n return this._enableNextButton$.asObservable();\n }\n get showBackButton$(): Observable<boolean> {\n return this._showBackButton$.asObservable();\n }\n get backButtonClick$(): Observable<null> {\n return this._backButtonClick$.asObservable();\n }\n get saveButtonClick$(): Observable<null> {\n return this._saveButtonClick$.asObservable();\n }\n get nextButtonClick$(): Observable<null> {\n return this._nextButtonClick$.asObservable();\n }\n\n showSaveButton(): void {\n this._showSaveButton$.next(true);\n }\n\n hideSaveButton(): void {\n this._showSaveButton$.next(false);\n }\n\n showNextButton(): void {\n this._showNextButton$.next(true);\n }\n\n hideNextButton(): void {\n this._showNextButton$.next(false);\n }\n\n enableNextButton(): void {\n this._enableNextButton$.next(true);\n }\n\n disableNextButton(): void {\n this._enableNextButton$.next(false);\n }\n\n enableSaveButton(): void {\n this._enableSaveButton$.next(true);\n }\n\n disableSaveButton(): void {\n this._enableSaveButton$.next(false);\n }\n\n showBackButton(): void {\n this._showBackButton$.next(true);\n }\n\n hideBackButton(): void {\n this._showBackButton$.next(false);\n }\n\n clickBackButton(): void {\n this._backButtonClick$.next(null);\n }\n\n clickSaveButton(): void {\n this._saveButtonClick$.next(null);\n }\n\n clickNextButton(): void {\n this._nextButtonClick$.next(null);\n }\n\n resetButtons(): void {\n this.disableSaveButton();\n this.hideBackButton();\n this.hideSaveButton();\n this.hideNextButton();\n this.disableNextButton();\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Step} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, filter, map, Observable} from 'rxjs';\nimport {ProcessLinkConfigurationStep, ProcessLinkType} from '../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ProcessLinkButtonService} from './process-link-button.service';\nimport {take} from 'rxjs/operators';\nimport {PluginStateService} from './plugin-state.service';\nimport {PluginTranslationService} from '@valtimo/plugin';\n\n@Injectable()\nexport class ProcessLinkStepService {\n private readonly _steps$ = new BehaviorSubject<Array<Step>>(undefined);\n private readonly _currentStepIndex$ = new BehaviorSubject<number>(0);\n private readonly _disableSteps$ = new BehaviorSubject<boolean>(false);\n private readonly _hasOneProcessLinkType$ = new BehaviorSubject<boolean>(false);\n\n get steps$(): Observable<Array<Step>> {\n return combineLatest([\n this._steps$,\n this._disableSteps$,\n this.translateService.stream('key'),\n ]).pipe(\n filter(([steps]) => !!steps),\n map(([steps, disableSteps]) =>\n steps.map(step => ({\n ...step,\n disabled: disableSteps,\n label: this.translateService.instant(`processLinkSteps.${step.label}`),\n ...(step.secondaryLabel && {\n secondaryLabel: this.translateService.instant(step.secondaryLabel),\n }),\n }))\n )\n );\n }\n\n get currentStepIndex$(): Observable<number> {\n return this._currentStepIndex$.asObservable();\n }\n\n get currentStepId$(): Observable<ProcessLinkConfigurationStep | ''> {\n return combineLatest([this._steps$, this.currentStepIndex$]).pipe(\n filter(([steps, currentStepIndex]) => !!steps && typeof currentStepIndex === 'number'),\n map(([steps, currentStepIndex]) =>\n steps.length > 0 ? (steps[currentStepIndex]?.label as ProcessLinkConfigurationStep) : ''\n )\n );\n }\n\n get hasOneProcessLinkType$(): Observable<boolean> {\n return this._hasOneProcessLinkType$.asObservable();\n }\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService,\n private readonly pluginTranslateService: PluginTranslationService\n ) {}\n\n reset(): void {\n this._currentStepIndex$.next(0);\n this._steps$.next([]);\n }\n\n setInitialSteps(availableProcessLinkTypes: Array<ProcessLinkType>): void {\n if (availableProcessLinkTypes.length > 1) {\n this.setChoiceSteps();\n }\n }\n\n setFormSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.form'},\n {label: 'selectForm'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleFormStep(): void {\n this._steps$.next([{label: 'selectForm'}]);\n this._currentStepIndex$.next(0);\n }\n\n setFormFlowSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.form-flow'},\n {label: 'selectFormFlow'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleFormFlowStep(): void {\n this._steps$.next([{label: 'selectFormFlow'}]);\n this._currentStepIndex$.next(0);\n }\n\n setChoosePluginConfigurationSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration'},\n {label: 'choosePluginAction', disabled: true},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n setSingleChoosePluginConfigurationSteps(): void {\n this._steps$.next([\n {label: 'choosePluginConfiguration'},\n {label: 'choosePluginAction', disabled: true},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(0);\n }\n\n setChoosePluginActionSteps(): void {\n combineLatest([\n this._hasOneProcessLinkType$,\n this.pluginStateService.selectedPluginConfiguration$,\n ])\n .pipe(take(1))\n .subscribe(([hasOneType, selectedConfiguration]) => {\n if (hasOneType) {\n this._steps$.next([\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction'},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(1);\n this.buttonService.showNextButton();\n this.buttonService.showBackButton();\n this.buttonService.hideSaveButton();\n this.buttonService.disableNextButton();\n } else {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction'},\n {label: 'configurePluginAction', disabled: true},\n ]);\n this._currentStepIndex$.next(2);\n this.buttonService.showNextButton();\n this.buttonService.showBackButton();\n\n this.buttonService.hideSaveButton();\n this.buttonService.disableNextButton();\n }\n });\n }\n\n setConfigurePluginActionSteps(): void {\n combineLatest([\n this._hasOneProcessLinkType$,\n this.pluginStateService.selectedPluginConfiguration$,\n this.pluginStateService.selectedPluginFunction$,\n ])\n .pipe(take(1))\n .subscribe(([hasOneType, selectedConfiguration, selectedFunction]) => {\n const selectedFunctionTranslation = this.pluginTranslateService.instant(\n selectedFunction.key,\n selectedConfiguration.pluginDefinition.key\n );\n\n if (hasOneType) {\n this._steps$.next([\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction', secondaryLabel: selectedFunctionTranslation},\n {label: 'configurePluginAction'},\n ]);\n this._currentStepIndex$.next(2);\n this.buttonService.hideNextButton();\n this.buttonService.showSaveButton();\n } else {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.plugin'},\n {label: 'choosePluginConfiguration', secondaryLabel: selectedConfiguration.title},\n {label: 'choosePluginAction', secondaryLabel: selectedFunctionTranslation},\n {label: 'configurePluginAction'},\n ]);\n this._currentStepIndex$.next(3);\n this.buttonService.hideNextButton();\n this.buttonService.showSaveButton();\n }\n });\n }\n\n public setURLSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType', secondaryLabel: 'processLinkType.url'},\n {label: 'selectURL'},\n ]);\n this._currentStepIndex$.next(1);\n }\n\n public setSingleURLStep(): void {\n this._steps$.next([{label: 'selectURL'}]);\n this._currentStepIndex$.next(0);\n }\n\n disableSteps(): void {\n this._disableSteps$.next(true);\n }\n\n enableSteps(): void {\n this._disableSteps$.next(false);\n }\n\n setHasOneProcessLinkType(hasOne: boolean): void {\n this._hasOneProcessLinkType$.next(hasOne);\n }\n\n setProcessLinkTypeSteps(processLinkTypeId: string, hasOneOption?: boolean): void {\n switch (processLinkTypeId) {\n case 'form':\n if (hasOneOption) {\n this.setSingleFormStep();\n this.buttonService.hideBackButton();\n } else {\n this.setFormSteps();\n this.buttonService.showBackButton();\n }\n this.buttonService.showSaveButton();\n break;\n case 'form-flow':\n if (hasOneOption) {\n this.setSingleFormFlowStep();\n this.buttonService.hideSaveButton();\n this.buttonService.hideBackButton();\n } else {\n this.setFormFlowSteps();\n this.buttonService.showSaveButton();\n this.buttonService.showBackButton();\n }\n break;\n case 'plugin':\n if (hasOneOption) {\n this.setSingleChoosePluginConfigurationSteps();\n this.buttonService.hideBackButton();\n this.buttonService.showNextButton();\n } else {\n this.setChoosePluginConfigurationSteps();\n this.buttonService.showBackButton();\n this.buttonService.showNextButton();\n }\n break;\n case 'url':\n if (hasOneOption) {\n this.setSingleURLStep();\n this.buttonService.hideBackButton();\n this.buttonService.showSaveButton();\n } else {\n this.setURLSteps();\n this.buttonService.showBackButton();\n this.buttonService.showSaveButton();\n }\n break;\n }\n }\n\n private setChoiceSteps(): void {\n this._steps$.next([\n {label: 'chooseProcessLinkType'},\n {label: 'empty', disabled: true},\n {label: 'empty', disabled: true},\n ]);\n this._currentStepIndex$.next(0);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, map, Observable, Subscription} from 'rxjs';\nimport {ModalParams, ProcessLink, ProcessLinkType} from '../models';\nimport {ProcessLinkStepService} from './process-link-step.service';\nimport {ProcessLinkButtonService} from './process-link-button.service';\nimport {PluginStateService} from './plugin-state.service';\n\n@Injectable()\nexport class ProcessLinkStateService implements OnDestroy {\n private readonly _showModal$ = new BehaviorSubject<boolean>(false);\n private readonly _availableProcessLinkTypes$ = new BehaviorSubject<Array<ProcessLinkType>>([]);\n private readonly _elementName$ = new BehaviorSubject<string>('');\n private readonly _selectedProcessLinkTypeId$ = new BehaviorSubject<string>('');\n private readonly _viewModelEnabled$ = new BehaviorSubject<boolean>(false);\n private readonly _url$ = new BehaviorSubject<string>(\"\");\n private readonly _saving$ = new BehaviorSubject<boolean>(false);\n private readonly _modalParams$ = new BehaviorSubject<ModalParams>(undefined);\n private readonly _selectedProcessLink$ = new BehaviorSubject<ProcessLink>(undefined);\n\n private _availableProcessLinkTypesSubscription!: Subscription;\n\n get showModal$(): Observable<boolean> {\n return this._showModal$.asObservable();\n }\n get elementName$(): Observable<string> {\n return this._elementName$.asObservable();\n }\n get availableProcessLinkTypes$(): Observable<Array<ProcessLinkType>> {\n return this._availableProcessLinkTypes$.asObservable();\n }\n get hideProgressIndicator$(): Observable<boolean> {\n return this._availableProcessLinkTypes$\n .asObservable()\n .pipe(\n map(\n availableTypes =>\n Array.isArray(availableTypes) &&\n availableTypes.length === 1 &&\n (availableTypes[0]?.processLinkType === 'form' ||\n availableTypes[0]?.processLinkType === 'form-flow')\n )\n );\n }\n get selectedProcessLinkTypeId$(): Observable<string> {\n return this._selectedProcessLinkTypeId$.asObservable();\n }\n get saving$(): Observable<boolean> {\n return this._saving$.asObservable();\n }\n get modalParams$(): Observable<ModalParams> {\n return this._modalParams$.asObservable();\n }\n\n get selectedProcessLink$(): Observable<ProcessLink> {\n return this._selectedProcessLink$.asObservable();\n }\n\n get typeOfSelectedProcessLink$(): Observable<string> {\n return this.selectedProcessLink$.pipe(map(processLink => processLink?.processLinkType || ''));\n }\n\n constructor(\n private readonly processLinkStepService: ProcessLinkStepService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginStateService: PluginStateService\n ) {\n this.openAvailableProcessLinkTypesSubscription();\n }\n\n ngOnDestroy(): void {\n this._availableProcessLinkTypesSubscription?.unsubscribe();\n }\n\n setAvailableProcessLinkTypes(processLinkTypes: Array<ProcessLinkType>): void {\n const hasOneOption = processLinkTypes.length === 1;\n this._availableProcessLinkTypes$.next(processLinkTypes);\n this.processLinkStepService.setHasOneProcessLinkType(hasOneOption);\n\n if (hasOneOption) {\n this.selectProcessLinkType(processLinkTypes[0].processLinkType, hasOneOption);\n }\n }\n\n setElementName(name: string): void {\n this._elementName$.next(name);\n }\n\n showModal(): void {\n this._showModal$.next(true);\n }\n\n closeModal(): void {\n this._showModal$.next(false);\n\n setTimeout(() => {\n this.reset();\n }, 240);\n }\n\n selectProcessLinkType(processLinkTypeId: string, hasOneOption?: boolean): void {\n this._selectedProcessLinkTypeId$.next(processLinkTypeId);\n this.processLinkStepService.setProcessLinkTypeSteps(processLinkTypeId, hasOneOption);\n }\n\n public setViewModelEnabled(viewModelEnabled: boolean): void {\n this._viewModelEnabled$.next(viewModelEnabled);\n }\n\n public get viewModelEnabled$(): Observable<boolean> {\n return this._viewModelEnabled$.asObservable();\n }\n\n public get url$(): Observable<string> {\n return this._url$.asObservable();\n }\n\n clearSelectedProcessLinkType(): void {\n this._selectedProcessLinkTypeId$.next('');\n }\n\n startSaving(): void {\n this._saving$.next(true);\n this.processLinkStepService.disableSteps();\n }\n\n stopSaving(): void {\n this._saving$.next(false);\n this.processLinkStepService.enableSteps();\n }\n\n setInitial(): void {\n const availableTypes = this._availableProcessLinkTypes$.getValue();\n this.buttonService.resetButtons();\n this.processLinkStepService.setInitialSteps(availableTypes);\n }\n\n setModalParams(params: ModalParams): void {\n this._modalParams$.next(params);\n }\n\n selectProcessLink(processLink: ProcessLink): void {\n this._selectedProcessLink$.next(processLink);\n this.pluginStateService.selectProcessLink(processLink);\n this.setViewModelEnabled(processLink.viewModelEnabled);\n this._url$.next(processLink.url)\n }\n\n deselectProcessLink(): void {\n this._selectedProcessLink$.next(undefined);\n this.pluginStateService.deselectProcessLink();\n }\n\n private openAvailableProcessLinkTypesSubscription(): void {\n this._availableProcessLinkTypesSubscription = this._availableProcessLinkTypes$.subscribe(\n availableProcessLinkTypes => {\n if (availableProcessLinkTypes.length > 1) {\n this.setInitial();\n }\n }\n );\n }\n\n private reset(): void {\n this.setAvailableProcessLinkTypes([]);\n this.processLinkStepService.reset();\n this.stopSaving();\n this.buttonService.resetButtons();\n this.clearSelectedProcessLinkType();\n this.deselectProcessLink();\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {FormFlowCustomComponentDefinition} from '../models';\n\nconst FORM_FLOW_COMPONENT_TOKEN = new InjectionToken<Array<FormFlowCustomComponentDefinition>>(\n 'Supported form-flow Angular components',\n {factory: () => []}\n);\n\nexport {FORM_FLOW_COMPONENT_TOKEN};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormSize} from '../models';\nimport {CarbonModalSize} from '@valtimo/components';\n\nconst formSizeToCarbonModalSizeMap: Record<FormSize, CarbonModalSize> = {\n extraSmall: 'xs',\n small: 'sm',\n medium: 'md',\n large: 'lg',\n};\n\nexport {formSizeToCarbonModalSizeMap};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './injection-tokens';\nexport * from './process.link';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable} from '@angular/core';\nimport {BehaviorSubject, filter, Observable} from 'rxjs';\nimport {FormFlowCustomComponentDefinition} from '../models';\nimport {FORM_FLOW_COMPONENT_TOKEN} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormFlowComponentService {\n private readonly _supportedComponents$ =\n new BehaviorSubject<Array<FormFlowCustomComponentDefinition> | null>(null);\n\n public get supportedComponents$(): Observable<Array<FormFlowCustomComponentDefinition>> {\n return this._supportedComponents$.pipe(filter(components => !!components));\n }\n\n constructor(\n @Inject(FORM_FLOW_COMPONENT_TOKEN)\n private readonly supportedCustomComponents: Array<FormFlowCustomComponentDefinition>\n ) {\n this.setSupportedComponents(supportedCustomComponents);\n }\n\n private setSupportedComponents(\n supportedComponents: Array<FormFlowCustomComponentDefinition>\n ): void {\n this._supportedComponents$.next(supportedComponents);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-flow.service';\nexport * from './plugin-state.service';\nexport * from './process-link.service';\nexport * from './process-link-state.service';\nexport * from './process-link-step.service';\nexport * from './process-link-button.service';\nexport * from './form-flow-component.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginStateService} from '../../services/plugin-state.service';\nimport {combineLatest, Observable, of, Subscription} from 'rxjs';\nimport {\n PluginConfiguration,\n PluginConfigurationWithLogo,\n PluginManagementService,\n PluginService,\n} from '@valtimo/plugin';\nimport {\n ProcessLinkButtonService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\n\n@Component({\n selector: 'valtimo-select-plugin-configuration',\n templateUrl: './select-plugin-configuration.component.html',\n styleUrls: ['./select-plugin-configuration.component.scss'],\n})\nexport class SelectPluginConfigurationComponent implements OnInit, OnDestroy {\n readonly pluginConfigurations$: Observable<Array<PluginConfigurationWithLogo>> =\n this.stateService.modalParams$.pipe(\n switchMap(modalData =>\n combineLatest([\n modalData?.element?.type\n ? this.pluginManagementService.getAllPluginConfigurationsWithLogos(\n modalData?.element?.activityListenerType\n )\n : of(undefined),\n this.pluginService.availablePluginIds$,\n ]).pipe(\n map(([pluginConfigurations, availablePluginIds]) =>\n pluginConfigurations?.filter(configuration =>\n availablePluginIds.includes(configuration.pluginDefinition.key)\n )\n )\n )\n )\n );\n\n readonly selectedPluginConfiguration$ = this.pluginStateService.selectedPluginConfiguration$;\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginStateService: PluginStateService,\n private readonly pluginService: PluginService,\n private readonly stateService: ProcessLinkStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stepService: ProcessLinkStepService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openNextButtonSubscription();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n selected(event: {value: PluginConfiguration}): void {\n this.selectConfiguration(event.value);\n this.buttonService.enableNextButton();\n }\n\n private selectConfiguration(configuration: PluginConfiguration): void {\n this.pluginStateService.selectPluginDefinition({key: configuration.pluginDefinition.key});\n this.pluginStateService.selectPluginConfiguration(configuration);\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openNextButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.nextButtonClick$.subscribe(() => {\n this.stepService.setChoosePluginActionSteps();\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginConfigurations$ | async as pluginConfigurations; else loading\">\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.choosePluginConfigurationDescription' | translate }}\n </p>\n <div class=\"list-container\">\n <cds-structured-list (selected)=\"selected($event)\" selection=\"true\">\n <cds-list-header>\n <cds-list-column nowrap=\"true\"></cds-list-column>\n <cds-list-column nowrap=\"true\">{{\n 'pluginManagement.labels.configurationName' | translate\n }}</cds-list-column>\n <cds-list-column>{{\n 'processLinkConfiguration.pluginDescription' | translate\n }}</cds-list-column>\n </cds-list-header>\n <cds-list-row\n *ngFor=\"let pluginConfiguration of pluginConfigurations\"\n [value]=\"pluginConfiguration\"\n >\n <cds-list-column>\n <div *ngIf=\"pluginConfiguration.pluginLogoBase64\">\n <img\n [src]=\"pluginConfiguration.pluginLogoBase64\"\n [title]=\"'title' | pluginTranslate: pluginConfiguration.pluginDefinition.key | async\"\n class=\"plugin-configuration-logo\"\n /></div\n ></cds-list-column>\n <cds-list-column>{{ pluginConfiguration.title }}</cds-list-column>\n <cds-list-column>\n {{ 'description' | pluginTranslate: pluginConfiguration.pluginDefinition.key | async }}\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {PluginDefinition, PluginFunction, PluginManagementService} from '@valtimo/plugin';\nimport {Observable, of, Subscription} from 'rxjs';\nimport {switchMap, take} from 'rxjs/operators';\n\nimport {ProcessLinkButtonService, ProcessLinkStepService} from '../../services';\nimport {PluginStateService} from '../../services/plugin-state.service';\n\n@Component({\n selector: 'valtimo-select-plugin-action',\n templateUrl: './select-plugin-action.component.html',\n styleUrls: ['./select-plugin-action.component.scss'],\n})\nexport class SelectPluginActionComponent implements OnInit, OnDestroy {\n public readonly pluginFunctions$: Observable<Array<PluginFunction> | undefined> =\n this.stateService.selectedPluginDefinition$.pipe(\n switchMap(selectedDefinition =>\n selectedDefinition\n ? this.pluginManagementService.getPluginFunctions(selectedDefinition.key)\n : of(undefined)\n )\n );\n public readonly selectedPluginDefinition$: Observable<PluginDefinition> =\n this.stateService.selectedPluginDefinition$;\n public readonly selectedPluginFunction$: Observable<PluginFunction> =\n this.stateService.selectedPluginFunction$;\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly buttonService: ProcessLinkButtonService,\n private readonly pluginManagementService: PluginManagementService,\n private readonly stateService: PluginStateService,\n private readonly stepService: ProcessLinkStepService\n ) {}\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openNextButtonSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFunction(pluginFunction: PluginFunction): void {\n this.stateService.selectPluginFunction(pluginFunction);\n }\n\n public selected(event: {value: string}): void {\n this.selectFunction(JSON.parse(event.value));\n this.buttonService.enableNextButton();\n }\n\n public stringify(object: object): string {\n return JSON.stringify(object);\n }\n\n private openBackButtonSubscription(): void {\n this.buttonService.backButtonClick$\n .pipe(\n switchMap(() => this.stepService.hasOneProcessLinkType$),\n take(1)\n )\n .subscribe((hasOneOption: boolean) => {\n this.stepService.setProcessLinkTypeSteps('plugin', hasOneOption);\n });\n }\n\n private openNextButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.nextButtonClick$.subscribe(() => {\n this.stepService.setConfigurePluginActionSteps();\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginFunctions$ | async as pluginFunctions; else loading\">\n <div class=\"choose-plugin-action\" *ngIf=\"pluginFunctions?.length > 0\">\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.choosePluginActionDescription' | translate }}\n </p>\n <div class=\"action-tiles\">\n <cds-tile-group\n [multiple]=\"false\"\n *ngIf=\"{selectedPluginDefinition: selectedPluginDefinition$ | async} as obs\"\n (selected)=\"selected($event)\"\n >\n <cds-selection-tile\n *ngFor=\"let pluginFunction of pluginFunctions\"\n [value]=\"stringify(pluginFunction)\"\n [selected]=\"false\"\n >{{\n pluginFunction.key | pluginTranslate: obs.selectedPluginDefinition.key | async\n }}</cds-selection-tile\n >\n </cds-tile-group>\n </div>\n </div>\n <ng-container *ngIf=\"!pluginFunctions || pluginFunctions?.length === 0\">\n <ng-container *ngTemplateOutlet=\"noPluginFunctionsTemplate\"> </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #noPluginFunctionsTemplate>\n <p class=\"step-description\">\n {{ 'processLink.noPluginFunctions' | translate }}\n </p>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, of, Subscription, switchMap, tap} from 'rxjs';\nimport {\n ProcessLinkButtonService,\n ProcessLinkStateService,\n ProcessLinkService,\n} from '../../services';\nimport {distinctUntilChanged, take} from 'rxjs/operators';\nimport {\n AbstractControl,\n AsyncValidatorFn,\n FormControl,\n FormGroup,\n ValidationErrors,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport {URLProcessLinkUpdateRequestDto} from '../../models';\nimport {UrlValidatorService} from '../../services/url-validator.service';\nimport {UrlResolverService} from '../../services/url-resolver.service';\nimport {URLVariables} from '../../models/process-link-url.model';\nimport {AlertService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-select-url',\n templateUrl: './select-url.component.html',\n})\nexport class SelectUrlComponent implements OnInit, OnDestroy {\n\n public readonly urlForm: FormGroup = new FormGroup({\n url: new FormControl('', Validators.required)\n });\n\n private _subscriptions = new Subscription();\n private variables: Map<string, string>\n\n public get url(): AbstractControl {\n return this.urlForm.get('url');\n }\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly processLinkService: ProcessLinkService,\n private readonly urlValidatorService: UrlValidatorService,\n private readonly urlResolverService: UrlResolverService,\n private readonly alertService: AlertService\n ) {\n }\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n\n this._subscriptions.add(this.urlForm.statusChanges\n .pipe(distinctUntilChanged())\n .subscribe(status => {\n if (status === 'VALID') {\n this.buttonService.enableSaveButton();\n } else {\n this.buttonService.disableSaveButton();\n }\n }));\n\n this.stateService.url$\n .subscribe(url => this.url.setValue(url));\n\n this.processLinkService.getVariables()\n .subscribe(urlVariables => {\n this.url.addValidators(this.urlValidatorService.urlValidator(urlVariables.variables));\n this.variables = urlVariables.variables;\n })\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveProcessLink();\n })\n );\n }\n\n private saveProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink();\n } else {\n this.saveNewProcessLink();\n }\n });\n }\n\n private updateProcessLink(): void {\n this.stateService.selectedProcessLink$\n .pipe(take(1))\n .subscribe((selectedProcessLink) => {\n const updateProcessLinkRequest: URLProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n url: this.url.value,\n };\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$\n ])\n .pipe(\n take(1),\n switchMap(([modalParams, processLinkTypeId]) =>\n this.processLinkService.saveProcessLink({\n url: this.url.value,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id\n })\n )\n )\n .subscribe({\n complete: () => this.stateService.closeModal(),\n error: () => {\n this.alertService.error('Failed to save process link');\n this.stateService.stopSaving()\n }\n });\n }\n\n public resolveUrlVariables(url: string): string {\n return this.urlResolverService.resolveUrlVariables(url, this.variables);\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div [formGroup]=\"urlForm\">\n <cds-label [invalidText]=\"\n 'processLinkUrlInvalid' | translate : { URL: (url.errors?.invalidUrl ?? '') }\n \"\n [invalid]=\"url.invalid && url.touched\"\n [helperText]=\"url.invalid ? '' : resolveUrlVariables(url.value)\">Url\n <input\n cdsText\n type=\"text\"\n required\n class=\"form-control\"\n formControlName=\"url\"\n [invalid]=\"url.invalid\"\n >\n </cds-label>\n</div>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\nimport {\n PluginStateService,\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {PluginConfigurationData} from '@valtimo/plugin';\nimport {PluginProcessLinkCreateDto, PluginProcessLinkUpdateDto} from '../../models';\n\n@Component({\n selector: 'valtimo-plugin-action-configuration',\n templateUrl: './plugin-action-configuration.component.html',\n styleUrls: ['./plugin-action-configuration.component.scss'],\n})\nexport class PluginActionConfigurationComponent implements OnInit, OnDestroy {\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> =\n new EventEmitter<PluginConfigurationData>();\n\n public readonly pluginDefinitionKey$ = this.pluginStateService.pluginDefinitionKey$;\n public readonly functionKey$ = this.pluginStateService.functionKey$;\n public readonly save$ = this.pluginStateService.save$;\n public readonly saving$ = this.stateService.saving$;\n public readonly prefillConfiguration$ = this.stateService.selectedProcessLink$.pipe(\n map(processLink => (processLink ? processLink?.actionProperties : undefined))\n );\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly pluginStateService: PluginStateService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly stepService: ProcessLinkStepService,\n private readonly processLinkService: ProcessLinkService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n onValid(valid: boolean): void {\n if (valid) {\n this.buttonService.enableSaveButton();\n } else {\n this.buttonService.disableSaveButton();\n }\n }\n\n onConfiguration(configuration: PluginConfigurationData): void {\n this.stateService.startSaving();\n\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink(configuration);\n } else {\n this.saveNewProcessLink(configuration);\n }\n });\n }\n\n private updateProcessLink(configuration: PluginConfigurationData): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n const updateProcessLinkRequest: PluginProcessLinkUpdateDto = {\n id: selectedProcessLink.id,\n pluginConfigurationId: selectedProcessLink.pluginConfigurationId,\n pluginActionDefinitionKey: selectedProcessLink.pluginActionDefinitionKey,\n actionProperties: configuration,\n };\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(configuration: PluginConfigurationData): void {\n combineLatest([\n this.stateService.modalParams$,\n this.pluginStateService.selectedPluginConfiguration$,\n this.pluginStateService.selectedPluginFunction$,\n this.stateService.selectedProcessLinkTypeId$,\n ])\n .pipe(take(1))\n .subscribe(\n ([modalData, selectedConfiguration, selectedFunction, selectedProcessLinkTypeId]) => {\n const processLinkRequest: PluginProcessLinkCreateDto = {\n actionProperties: configuration,\n activityId: modalData?.element?.id,\n activityType: modalData?.element?.activityListenerType,\n pluginConfigurationId: selectedConfiguration.id,\n processDefinitionId: modalData?.processDefinitionId,\n pluginActionDefinitionKey: selectedFunction.key,\n processLinkType: selectedProcessLinkTypeId,\n };\n\n this.processLinkService.saveProcessLink(processLinkRequest).subscribe(\n response => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n }\n );\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stepService.setChoosePluginActionSteps();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.pluginStateService.save();\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n [functionKey]=\"functionKey$ | async\"\n [save$]=\"save$\"\n [disabled$]=\"saving$\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n type=\"function\"\n></valtimo-plugin-configuration-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {ProcessDefinition, ProcessService} from '@valtimo/process';\n\nimport BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport {ActivatedRoute} from '@angular/router';\nimport {combineLatest} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {PageTitleService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-form-link-process-diagram',\n templateUrl: './form-link-process-diagram.component.html',\n styleUrls: ['./form-link-process-diagram.component.scss'],\n})\nexport class FormLinkProcessDiagramComponent implements OnInit, OnDestroy {\n private bpmnJS: BpmnJS;\n\n @ViewChild('ref') public el: ElementRef;\n @Output() public bpmnElementModalOpen: EventEmitter<any> = new EventEmitter();\n @Output() public bpmnElementModalClose: EventEmitter<any> = new EventEmitter();\n\n public processDefinitionKey: string;\n public processDefinitions: ProcessDefinition[];\n public processDiagram: any;\n public processDefinition: ProcessDefinition;\n public processDefinitionVersions: ProcessDefinition[];\n public version: number;\n private callbacksAdded = false;\n private processDefinitionId!: string;\n\n constructor(\n private readonly processService: ProcessService,\n private readonly route: ActivatedRoute,\n private readonly pageTitleService: PageTitleService\n ) {}\n\n ngOnInit() {\n this.pageTitleService.disableReset();\n combineLatest([this.route.queryParams, this.processService.getProcessDefinitions()])\n .pipe(map(([queryParams, processDefinitions]) => ({queryParams, processDefinitions})))\n .subscribe(response => {\n this.processDefinitions = response.processDefinitions;\n if (response.queryParams.process) {\n this.processDefinitionKey = response.queryParams.process;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n this.bpmnElementModalOpen.emit({\n element: {\n id: 'start-event',\n type: 'bpmn:StartEvent',\n },\n processDefinitionKey: this.processDefinitionKey,\n processDefinitionId: this.processDefinitionId,\n });\n }\n if (!this.processDefinitionKey && response.processDefinitions.length !== 0) {\n this.processDefinitionKey = response.processDefinitions[0].key;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n }\n });\n this.bpmnJS = new BpmnJS();\n this.bpmnJS.on('import.done', ({error}: any) => {\n if (!error) {\n const canvas = this.bpmnJS.get('canvas');\n const eventBus = this.bpmnJS.get('eventBus');\n canvas.zoom('fit-viewport', 'auto');\n\n if (this.processDefinitionVersions && !this.callbacksAdded) {\n eventBus.on('element.click', e => {\n let activityListenerType = e.element.businessObject.$type;\n if (activityListenerType === 'bpmn:UserTask') {\n activityListenerType += ':create';\n } else {\n activityListenerType += ':start';\n }\n\n this.bpmnElementModalOpen.emit({\n element: {\n id: e.element.businessObject.id,\n type: e.element.businessObject.$type,\n activityListenerType,\n name: e.element?.businessObject?.name,\n },\n processDefinitionKey: this.processDefinitionKey,\n processDefinitionId: this.processDefinitionId,\n });\n });\n this.callbacksAdded = true;\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.bpmnElementModalClose.emit();\n if (this.bpmnJS) {\n this.bpmnJS.destroy();\n }\n this.pageTitleService.enableReset();\n }\n\n public loadProcessDefinition(processDefinitionKey: string): void {\n this.processService\n .getProcessDefinition(processDefinitionKey)\n .subscribe((processDefinition: ProcessDefinition) => {\n this.processDefinitionId = processDefinition.id;\n this.version = processDefinition.version;\n this.loadProcessDefinitionXml(processDefinition.id);\n });\n }\n\n public loadProcessDefinitionVersions(processDefinitionKey: string): void {\n this.processService\n .getProcessDefinitionVersions(processDefinitionKey)\n .subscribe((processDefinitionVersions: ProcessDefinition[]) => {\n this.processDefinitionVersions = processDefinitionVersions;\n });\n }\n\n public loadProcessDefinitionFromKey(processDefinitionKey: string): void {\n this.loadProcessDefinitionVersions(processDefinitionKey);\n this.loadProcessDefinition(processDefinitionKey);\n }\n\n public loadProcessDefinitionXml(processDefinitionId: string): void {\n this.processService.getProcessDefinitionXml(processDefinitionId).subscribe(response => {\n this.processDiagram = response;\n this.bpmnJS.importXML(this.processDiagram.bpmn20Xml);\n this.bpmnJS.attachTo(this.el.nativeElement);\n });\n }\n\n public setProcessDefinitionKey(processDefinitionKey: string): void {\n this.processDefinitionKey = processDefinitionKey;\n this.loadProcessDefinitionFromKey(this.processDefinitionKey);\n }\n\n public setProcessDefinitionVersion(version: string): void {\n const processDefinitionId = this.processDefinitionVersions.find(\n definition => definition.version === +version\n )?.id;\n\n if (processDefinitionId) {\n this.processDefinitionId = processDefinitionId;\n this.loadProcessDefinitionXml(this.processDefinitionId);\n }\n\n this.version = +version;\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"container-fluid\">\n <div class=\"row p-4 bg-white\">\n <div class=\"col\">\n <div #ref class=\"diagram-container\"></div>\n </div>\n </div>\n</div>\n<div class=\"p-4 text-center legenda-holder\">\n <span>Click on a User Task to specify a form definition for that User Task.</span>\n</div>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div class=\"form-link-dossier-actions\">\n <cds-select [label]=\"'Process'\" (change)=\"setProcessDefinitionKey($event.target.value)\"\n ><option\n *ngFor=\"let processDefinition of processDefinitions\"\n [value]=\"processDefinition.key\"\n [selected]=\"processDefinitionKey === processDefinition.key\"\n >\n {{ processDefinition.name }}\n </option>\n </cds-select>\n <cds-select [label]=\"'Version'\" (change)=\"setProcessDefinitionVersion($event.target.value)\">\n <option\n *ngFor=\"let processDefinitionVersion of processDefinitionVersions\"\n [value]=\"processDefinitionVersion.version\"\n [selected]=\"processDefinitionVersion.version === version\"\n >\n {{ processDefinitionVersion.version }}\n </option>\n </cds-select>\n </div>\n </ng-template>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ProcessLinkStateService} from '../../services';\n\n@Component({\n selector: 'valtimo-choose-process-link-type',\n templateUrl: './choose-process-link-type.component.html',\n styleUrls: ['./choose-process-link-type.component.scss'],\n})\nexport class ChooseProcessLinkTypeComponent {\n public readonly availableProcessLinkTypes$ =\n this.processLinkStateService.availableProcessLinkTypes$;\n\n constructor(private readonly processLinkStateService: ProcessLinkStateService) {}\n\n selectProcessLinkType(processLinkTypeId: string): void {\n this.processLinkStateService.selectProcessLinkType(processLinkTypeId);\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n availableProcessLinkTypes: availableProcessLinkTypes$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseProcessLinkTypeDescription' | translate }}\n </p>\n <div class=\"process-link-grid\">\n <div\n class=\"process-link-item\"\n *ngFor=\"let availableProcessLinkType of obs.availableProcessLinkTypes\"\n >\n <ng-container *ngIf=\"availableProcessLinkType.processLinkType as processLinkTypeId\">\n <button\n (click)=\"selectProcessLinkType(processLinkTypeId)\"\n cdsButton=\"secondary\"\n size=\"xl\"\n class=\"process-link-type-button\"\n [disabled]=\"!availableProcessLinkType.enabled\"\n [vTooltip]=\"'processLinkTypeDisabledTooltip.' + processLinkTypeId | translate\"\n [onBottom]=\"true\"\n [tooltipDisabled]=\"availableProcessLinkType.enabled\"\n >\n {{ 'processLinkType.' + processLinkTypeId | translate }}\n <svg\n *ngIf=\"processLinkTypeId === 'plugin'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"link\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"receipt\"\n size=\"16\"\n ></svg>\n <svg\n *ngIf=\"processLinkTypeId === 'form-flow'\"\n class=\"cds--btn__icon\"\n cdsIcon=\"flow--data\"\n size=\"16\"\n ></svg>\n </button>\n </ng-container>\n </div>\n </div>\n</ng-container>\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {FormDefinitionListItem, FormDisplayType, FormSize} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ProcessLinkButtonService, ProcessLinkStateService} from '../../services';\nimport {ListItem} from 'carbon-components-angular';\nimport {map} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-form-display-configuration',\n templateUrl: './form-display-configuration.component.html',\n})\nexport class FormDisplayConfigurationComponent implements OnInit, OnDestroy {\n @Input() public selectedFormDefinition: FormDefinitionListItem;\n\n @Output() public formDisplayValue = new EventEmitter<string>();\n @Output() public formSizeValue = new EventEmitter<string>();\n\n public readonly formDisplayValue$ = new BehaviorSubject<FormDisplayType | null>(null);\n public readonly formSizeValue$ = new BehaviorSubject<FormSize | null>(null);\n public readonly disableFormSizeInput$ = new BehaviorSubject<boolean>(true);\n public readonly saving$ = this.stateService.saving$;\n public readonly taskPanelEnabled$ = new BehaviorSubject<boolean>(false);\n public readonly isUserTask$ = new BehaviorSubject<boolean>(false);\n\n private readonly _DISPLAY_TYPE_OPTIONS: FormDisplayType[] = ['modal', 'panel'];\n private readonly _FORM_SIZE_OPTIONS: FormSize[] = ['extraSmall', 'small', 'medium', 'large'];\n private readonly _subscriptions = new Subscription();\n\n public readonly formDisplayTypeListItems$: Observable<ListItem[]> = combineLatest([\n this.formDisplayValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([formDisplayValue]) =>\n this._DISPLAY_TYPE_OPTIONS.map((key: string) => ({\n content: this.translateService.instant(`processLinkSteps.displayType.options.${key}`),\n key: key,\n selected: this.formDisplayValue$.getValue() === key,\n }))\n )\n );\n\n public readonly formSizeListItems$: Observable<ListItem[]> = combineLatest([\n this.formSizeValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([formSizeValue]) =>\n this._FORM_SIZE_OPTIONS.map((key: string) => ({\n content: this.translateService.instant(`processLinkSteps.formSize.options.${key}`),\n key: key,\n selected: this.formSizeValue$.getValue() === key,\n }))\n )\n );\n\n constructor(\n private readonly buttonService: ProcessLinkButtonService,\n private readonly configService: ConfigService,\n private readonly stateService: ProcessLinkStateService,\n private readonly translateService: TranslateService\n ) {\n this.taskPanelEnabled$.next(!!this.configService.featureToggles?.enableTaskPanel);\n }\n\n public ngOnInit(): void {\n this._subscriptions.add(\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLink$,\n ]).subscribe(([modalParams, selectedProcessLink]) => {\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n\n if (selectedProcessLink) {\n if (selectedProcessLink.formDisplayType) this.disableFormSizeInput$.next(false);\n if (selectedProcessLink.activityType.includes('bpmn:UserTask'))\n this.isUserTask$.next(true);\n this.formDisplayValue$.next(selectedProcessLink.formDisplayType);\n this.formSizeValue$.next(selectedProcessLink.formSize);\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFormDisplayType(event: ListItem): void {\n this.updateFormDisplayType(event?.key);\n this.enableSaveButtonWhenValid();\n }\n\n public selectFormSize(event: ListItem): void {\n this.updateFormSize(event?.key);\n this.enableSaveButtonWhenValid();\n }\n\n private updateFormDisplayType(formDisplayType): void {\n formDisplayType ? this.disableFormSizeInput$.next(false) : this.resetFormSize();\n this.formDisplayValue$.next(formDisplayType);\n this.formDisplayValue.emit(formDisplayType);\n }\n\n private updateFormSize(formSize): void {\n this.formSizeValue$.next(formSize);\n this.formSizeValue.emit(formSize);\n }\n\n private resetFormSize(): void {\n this.disableFormSizeInput$.next(true);\n this.updateFormSize(null);\n }\n\n private enableSaveButtonWhenValid(): void {\n if (\n this.selectedFormDefinition &&\n this.formDisplayValue$.getValue() &&\n this.formSizeValue$.getValue()\n ) {\n this.buttonService.enableSaveButton();\n } else {\n this.buttonService.disableSaveButton();\n }\n }\n}\n","<ng-container\n *ngIf=\"{\n formDisplayValue: formDisplayValue$ | async,\n formDisplayTypeListItems: formDisplayTypeListItems$ | async,\n formSizeListItems: formSizeListItems$ | async,\n disableFormSizeInput: disableFormSizeInput$ | async,\n isUserTask: isUserTask$ | async,\n taskPanelEnabled: taskPanelEnabled$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n @if (obs.taskPanelEnabled && obs.isUserTask) {\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.displayType.placeholder' | translate\"\n [label]=\"'processLinkSteps.displayType.label' | translate\"\n [disabled]=\"obs.saving\"\n (selected)=\"selectFormDisplayType($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formDisplayTypeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n <br />\n\n <cds-combo-box\n [placeholder]=\"'processLinkSteps.formSize.placeholder' | translate\"\n [label]=\"'processLinkSteps.formSize.label' | translate\"\n [disabled]=\"obs.disableFormSizeInput || obs.saving\"\n (selected)=\"selectFormSize($event)\"\n >\n <cds-dropdown-list [items]=\"obs.formSizeListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n }\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {FormService} from '@valtimo/form';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, switchMap, tap} from 'rxjs';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\nimport {FormDefinitionListItem, FormProcessLinkUpdateRequestDto} from '../../models';\nimport {take} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-select-form',\n templateUrl: './select-form.component.html',\n styleUrls: ['./select-form.component.scss'],\n})\nexport class SelectFormComponent implements OnInit, OnDestroy {\n public formDisplayValue: string = '';\n public formSizeValue: string = '';\n public selectedFormDefinition!: FormDefinitionListItem;\n\n public readonly saving$ = this.stateService.saving$;\n private readonly formDefinitions$ = this.formService.getAllFormDefinitions();\n public readonly formDefinitionListItems$: Observable<Array<FormDefinitionListItem>> =\n combineLatest([this.stateService.selectedProcessLink$, this.formDefinitions$]).pipe(\n map(([selectedProcessLink, formDefinitions]) =>\n formDefinitions.map(definition => ({\n content: definition.name,\n id: definition.id,\n selected: selectedProcessLink\n ? selectedProcessLink.formDefinitionId === definition.id\n : false,\n }))\n ),\n tap(formDefinitionListItems => {\n const selectedItem = formDefinitionListItems.find(item => item.selected);\n\n if (selectedItem) {\n this.selectFormDefinition(selectedItem);\n }\n })\n );\n\n private _subscriptions = new Subscription();\n private isUserTask$ = new BehaviorSubject<boolean>(false);\n private readonly taskPanelToggle = this.configService.featureToggles?.enableTaskPanel;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly formService: FormService,\n private readonly stateService: ProcessLinkStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly buttonService: ProcessLinkButtonService\n ) {}\n\n public ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n this._subscriptions.add(\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.modalParams$,\n ]).subscribe(([selectedProcessLink, modalParams]) => {\n if (selectedProcessLink) {\n this.formDisplayValue = selectedProcessLink.formDisplayType;\n this.formSizeValue = selectedProcessLink.formSize;\n }\n\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectFormDefinition(formDefinition: FormDefinitionListItem): void {\n this.selectedFormDefinition = formDefinition?.id ? formDefinition : null;\n\n this.selectedFormDefinition\n ? this.buttonService.enableSaveButton()\n : this.buttonService.disableSaveButton();\n }\n\n public selectedFormDisplayValue(formDisplay: string): void {\n this.formDisplayValue = formDisplay;\n }\n\n public selectedFormSizeValue(formSize: string): void {\n this.formSizeValue = formSize;\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveProcessLink();\n })\n );\n }\n\n private saveProcessLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink();\n } else {\n this.saveNewProcessLink();\n }\n });\n }\n\n private updateProcessLink(): void {\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.viewModelEnabled$,\n this.isUserTask$,\n ])\n .pipe(take(1))\n .subscribe(([selectedProcessLink, viewModelEnabled, isUserTask]) => {\n const updateProcessLinkRequest: FormProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n formDefinitionId: this.selectedFormDefinition.id,\n viewModelEnabled,\n ...(this.taskPanelToggle &&\n isUserTask && {\n formDisplayType: this.formDisplayValue,\n }),\n ...(this.taskPanelToggle && isUserTask && {formSize: this.formSizeValue}),\n };\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$,\n this.stateService.viewModelEnabled$,\n this.isUserTask$,\n ])\n .pipe(\n take(1),\n switchMap(([modalParams, processLinkTypeId, viewModelEnabled, isUserTask]) =>\n this.processLinkService.saveProcessLink({\n formDefinitionId: this.selectedFormDefinition.id,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n viewModelEnabled,\n ...(this.taskPanelToggle &&\n isUserTask && {\n formDisplayType: this.formDisplayValue,\n }),\n ...(this.taskPanelToggle &&\n isUserTask && {\n formSize: this.formSizeValue,\n }),\n })\n )\n )\n .subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n formDefinitions: formDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormDescription' | translate }}\n </p>\n <div class=\"select-form\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formDefinitions || obs.saving\"\n [items]=\"obs.formDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormDefinition($event)\"\n [label]=\"'processLinkSteps.selectForm' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormDefinition\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, switchMap, tap} from 'rxjs';\nimport {\n FormFlowService,\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n} from '../../services';\nimport {FormDefinitionListItem, FormFlowProcessLinkUpdateRequestDto} from '../../models';\nimport {take} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-select-form-flow',\n templateUrl: './select-form-flow.component.html',\n styleUrls: ['./select-form-flow.component.scss'],\n})\nexport class SelectFormFlowComponent implements OnInit, OnDestroy {\n public formDisplayValue: string = '';\n public formSizeValue: string = '';\n public selectedFormFlowDefinition!: FormDefinitionListItem;\n public readonly saving$ = this.stateService.saving$;\n private readonly formFlowDefinitions$ = this.formFlowService.getFormFlowDefinitions();\n\n public readonly formFlowDefinitionListItems$: Observable<Array<FormDefinitionListItem>> =\n combineLatest([this.stateService.selectedProcessLink$, this.formFlowDefinitions$]).pipe(\n map(([selectedProcessLink, formFlowDefinitions]) =>\n formFlowDefinitions.map(definition => ({\n content: definition.name,\n id: definition.id,\n selected: selectedProcessLink\n ? selectedProcessLink.formFlowDefinitionId === definition.id\n : false,\n }))\n ),\n tap(formFlowDefinitionListItems => {\n const selectedItem = formFlowDefinitionListItems.find(item => item.selected);\n\n if (selectedItem) {\n this.selectFormFlowDefinition(selectedItem);\n }\n })\n );\n\n private _subscriptions = new Subscription();\n private isUserTask$ = new BehaviorSubject<boolean>(false);\n private readonly taskPanelToggle = this.configService.featureToggles?.enableTaskPanel;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly formFlowService: FormFlowService,\n private readonly stateService: ProcessLinkStateService,\n private readonly processLinkService: ProcessLinkService,\n private readonly buttonService: ProcessLinkButtonService\n ) {}\n\n ngOnInit(): void {\n this.openBackButtonSubscription();\n this.openSaveButtonSubscription();\n this._subscriptions.add(\n combineLatest([\n this.stateService.selectedProcessLink$,\n this.stateService.modalParams$,\n ]).subscribe(([selectedProcessLink, modalParams]) => {\n if (selectedProcessLink) {\n this.formDisplayValue = selectedProcessLink.formDisplayType;\n this.formSizeValue = selectedProcessLink.formSize;\n }\n\n this.isUserTask$.next(modalParams?.element?.type === 'bpmn:UserTask');\n })\n );\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectedFormDisplayValue(formDisplay: string): void {\n this.formDisplayValue = formDisplay;\n }\n\n public selectedFormSizeValue(formSize: string): void {\n this.formSizeValue = formSize;\n }\n\n public selectFormFlowDefinition(formFlowDefinition: FormDefinitionListItem): void {\n this.selectedFormFlowDefinition = formFlowDefinition?.id ? formFlowDefinition : null;\n\n this.selectedFormFlowDefinition\n ? this.buttonService.enableSaveButton()\n : this.buttonService.disableSaveButton();\n }\n\n private openBackButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.backButtonClick$.subscribe(() => {\n this.stateService.setInitial();\n })\n );\n }\n\n private openSaveButtonSubscription(): void {\n this._subscriptions.add(\n this.buttonService.saveButtonClick$.subscribe(() => {\n this.stateService.startSaving();\n this.saveFormFlowLink();\n })\n );\n }\n\n private saveFormFlowLink(): void {\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n if (selectedProcessLink) {\n this.updateProcessLink();\n } else {\n this.saveNewProcessLink();\n }\n });\n }\n\n private updateProcessLink(): void {\n combineLatest(this.stateService.selectedProcessLink$, this.isUserTask$)\n .pipe(take(1))\n .subscribe(([selectedProcessLink, isUserTask]) => {\n const updateProcessLinkRequest: FormFlowProcessLinkUpdateRequestDto = {\n id: selectedProcessLink.id,\n formFlowDefinitionId: this.selectedFormFlowDefinition.id,\n ...(this.taskPanelToggle &&\n isUserTask && {\n formDisplayType: this.formDisplayValue,\n }),\n ...(this.taskPanelToggle && isUserTask && {formSize: this.formSizeValue}),\n };\n\n this.processLinkService.updateProcessLink(updateProcessLinkRequest).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n private saveNewProcessLink(): void {\n combineLatest([\n this.stateService.modalParams$,\n this.stateService.selectedProcessLinkTypeId$,\n this.isUserTask$,\n ])\n .pipe(\n take(1),\n switchMap(([modalParams, processLinkTypeId, isUserTask]) =>\n this.processLinkService.saveProcessLink({\n formFlowDefinitionId: this.selectedFormFlowDefinition.id,\n activityType: modalParams.element.activityListenerType,\n processDefinitionId: modalParams.processDefinitionId,\n processLinkType: processLinkTypeId,\n activityId: modalParams.element.id,\n ...(this.taskPanelToggle &&\n isUserTask && {\n formDisplayType: this.formDisplayValue,\n }),\n ...(this.taskPanelToggle && isUserTask && {formSize: this.formSizeValue}),\n })\n )\n )\n .subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n formFlowDefinitions: formFlowDefinitionListItems$ | async,\n saving: saving$ | async,\n } as obs\"\n>\n <p class=\"step-description\">\n {{ 'processLinkConfiguration.chooseFormFlowDescription' | translate }}\n </p>\n <div class=\"select-form-flow\">\n <cds-combo-box\n [appendInline]=\"true\"\n [disabled]=\"!obs.formFlowDefinitions || obs.saving\"\n [items]=\"obs.formFlowDefinitions || []\"\n [placeholder]=\"'interface.typeToSearch' | translate\"\n (selected)=\"selectFormFlowDefinition($event)\"\n [label]=\"'processLinkSteps.selectFormFlow' | translate\"\n ><cds-dropdown-list></cds-dropdown-list\n ></cds-combo-box>\n <br />\n\n <valtimo-form-display-configuration\n [selectedFormDefinition]=\"selectedFormFlowDefinition\"\n (formDisplayValue)=\"selectedFormDisplayValue($event)\"\n (formSizeValue)=\"selectedFormSizeValue($event)\"\n ></valtimo-form-display-configuration>\n </div>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-process-link-modal',\n templateUrl: './process-link-modal.component.html',\n styleUrls: ['./process-link-modal.component.scss'],\n})\nexport class ProcessLinkModalComponent {\n public readonly showModal$ = this.stateService.showModal$;\n public readonly processStepName$ = this.stateService.elementName$;\n public readonly steps$ = this.stepService.steps$;\n public readonly currentStepIndex$ = this.stepService.currentStepIndex$;\n public readonly currentStepId$ = this.stepService.currentStepId$;\n public readonly showSaveButton$ = this.buttonService.showSaveButton$;\n public readonly enableSaveButton$ = this.buttonService.enableSaveButton$;\n public readonly showBackButton$ = this.buttonService.showBackButton$;\n public readonly showNextButton$ = this.buttonService.showNextButton$;\n public readonly enableNextButton$ = this.buttonService.enableNextButton$;\n public readonly hideProgressIndicator$ = this.stateService.hideProgressIndicator$;\n public readonly saving$ = this.stateService.saving$;\n public readonly typeOfSelectedProcessLink$ = this.stateService.typeOfSelectedProcessLink$;\n public readonly viewModelEnabled$ = this.stateService.viewModelEnabled$;\n\n public readonly showViewModelToggle =\n this.configService.config.featureToggles.enableFormViewModel;\n\n constructor(\n private readonly stateService: ProcessLinkStateService,\n private readonly stepService: ProcessLinkStepService,\n private readonly buttonService: ProcessLinkButtonService,\n private readonly processLinkService: ProcessLinkService,\n private readonly processLinkStateService: ProcessLinkStateService,\n private readonly configService: ConfigService\n ) {}\n\n closeModal(): void {\n this.stateService.closeModal();\n }\n\n backButtonClick(): void {\n this.buttonService.clickBackButton();\n }\n\n saveButtonClick(): void {\n this.buttonService.clickSaveButton();\n }\n\n nextButtonClick(): void {\n this.buttonService.clickNextButton();\n }\n\n unlinkButtonClick(): void {\n this.stateService.startSaving();\n\n this.stateService.selectedProcessLink$.pipe(take(1)).subscribe(selectedProcessLink => {\n this.processLinkService.deleteProcessLink(selectedProcessLink.id).subscribe(\n () => {\n this.stateService.closeModal();\n },\n () => {\n this.stateService.stopSaving();\n }\n );\n });\n }\n\n public toggleCheckedChange(value: boolean): void {\n this.processLinkStateService.setViewModelEnabled(value);\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"process-link-modal-container\"\n *ngIf=\"{\n showModal: showModal$ | async,\n processStepName: processStepName$ | async,\n steps: steps$ | async,\n currentStepIndex: currentStepIndex$ | async,\n currentStepId: currentStepId$ | async,\n showSaveButton: showSaveButton$ | async,\n enableSaveButton: enableSaveButton$ | async,\n showBackButton: showBackButton$ | async,\n showNextButton: showNextButton$ | async,\n enableNextButton: enableNextButton$ | async,\n saving: saving$ | async,\n hideProgressIndicator: hideProgressIndicator$ | async,\n typeOfSelectedProgressLink: typeOfSelectedProcessLink$ | async,\n } as obs\"\n>\n <cds-modal valtimoCdsModal [open]=\"obs.showModal\" size=\"lg\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <h2 cdsModalHeaderLabel>{{ 'processLinkConfiguration.configureStep' | translate }}</h2>\n <h3 cdsModalHeaderHeading>\n {{\n 'processLinkConfiguration.modalTitle'\n | translate: {processStepName: obs.processStepName || '-'}\n }}\n </h3>\n <div class=\"process-link-progress\" *ngIf=\"!obs.typeOfSelectedProgressLink\">\n <ng-container *ngTemplateOutlet=\"progressIndicator; context: {obs: obs}\"></ng-container>\n </div>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"stepContent; context: {obs: obs}\"></ng-container>\n </section>\n <ng-template *ngTemplateOutlet=\"footer; context: {obs: obs}\"></ng-template>\n </cds-modal>\n</div>\n\n<ng-template #progressIndicator let-obs=\"obs\">\n <cds-progress-indicator\n *ngIf=\"obs.steps && !obs.hideProgressIndicator\"\n [steps]=\"obs.steps\"\n [current]=\"obs.currentStepIndex\"\n spacing=\"equal\"\n ></cds-progress-indicator>\n</ng-template>\n\n<ng-template #stepContent let-obs=\"obs\">\n <div class=\"cds-loading-container\" *ngIf=\"obs.saving\">\n <cds-loading></cds-loading>\n </div>\n <div [ngClass]=\"{hidden: obs.saving}\">\n <ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'chooseProcessLinkType'\">\n <valtimo-choose-process-link-type></valtimo-choose-process-link-type>\n </ng-container>\n <ng-container\n *ngIf=\"obs.currentStepId === 'selectForm' || obs.typeOfSelectedProgressLink === 'form'\"\n >\n <valtimo-select-form></valtimo-select-form>\n <br />\n <cds-toggle\n *ngIf=\"showViewModelToggle\"\n [label]=\"'processLinkConfiguration.toggleViewModel.title' | translate\"\n [onText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [offText]=\"'processLinkConfiguration.toggleViewModel.checkboxDescription' | translate\"\n [checked]=\"viewModelEnabled$ | async\"\n (checkedChange)=\"toggleCheckedChange($event)\"\n ></cds-toggle>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'selectFormFlow' || obs.typeOfSelectedProgressLink === 'form-flow'\n \"\n >\n <valtimo-select-form-flow></valtimo-select-form-flow>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginConfiguration'\">\n <valtimo-select-plugin-configuration></valtimo-select-plugin-configuration>\n </ng-container>\n <ng-container *ngIf=\"obs.currentStepId === 'choosePluginAction'\">\n <valtimo-select-plugin-action></valtimo-select-plugin-action>\n </ng-container>\n <ng-container\n *ngIf=\"\n obs.currentStepId === 'configurePluginAction' ||\n obs.typeOfSelectedProgressLink === 'plugin'\n \"\n >\n <valtimo-plugin-action-configuration></valtimo-plugin-action-configuration>\n </ng-container>\n </ng-container>\n <valtimo-select-url\n *ngIf=\"obs.currentStepId === 'selectURL' || obs.typeOfSelectedProgressLink === 'url'\"\n ></valtimo-select-url>\n </div>\n</ng-template>\n\n<ng-template #footer let-obs=\"obs\">\n <cds-modal-footer *ngIf=\"!obs.saving\">\n <div class=\"cancel-button\">\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'processLinkConfiguration.cancel' | translate }}\n </button>\n </div>\n <div class=\"navigation-buttons\">\n <button\n *ngIf=\"obs.showBackButton && !obs.saving\"\n cdsButton=\"secondary\"\n (click)=\"backButtonClick()\"\n >\n {{ 'processLinkConfiguration.back' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.showNextButton && !obs.saving\"\n [disabled]=\"obs.enableNextButton === false\"\n (click)=\"nextButtonClick()\"\n >\n {{ 'processLinkConfiguration.next' | translate }}\n </button>\n <button\n cdsButton=\"danger--primary\"\n *ngIf=\"obs.typeOfSelectedProgressLink\"\n (click)=\"unlinkButtonClick()\"\n >\n {{ 'processLinkConfiguration.unlink' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n *ngIf=\"(obs.showSaveButton && !obs.saving) || obs.typeOfSelectedProgressLink\"\n [disabled]=\"obs.enableSaveButton === false\"\n (click)=\"saveButtonClick()\"\n >\n {{ 'processLinkConfiguration.complete' | translate }}\n </button>\n </div>\n </cds-modal-footer>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ModalParams} from '../../models';\nimport {\n ProcessLinkButtonService,\n ProcessLinkService,\n ProcessLinkStateService,\n ProcessLinkStepService,\n} from '../../services';\nimport {of, switchMap, tap} from 'rxjs';\nimport {ModalService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-process-link',\n templateUrl: './process-link.component.html',\n styleUrls: ['./process-link.component.scss'],\n providers: [ProcessLinkStateService, ProcessLinkStepService, ProcessLinkButtonService],\n})\nexport class ProcessLinkComponent {\n constructor(\n private readonly processLinkService: ProcessLinkService,\n private readonly stateService: ProcessLinkStateService,\n private readonly modalService: ModalService\n ) {}\n\n openModal(params: ModalParams): void {\n const activityType = params?.element?.activityListenerType;\n\n this.modalService.setModalData(params);\n\n if (activityType) {\n this.processLinkService\n .getProcessLink({\n activityId: params.element.id,\n processDefinitionId: params.processDefinitionId,\n })\n .pipe(\n switchMap(processLinks => {\n if (processLinks.length > 0) {\n return of({processLink: processLinks[0]});\n }\n\n return this.processLinkService.getProcessLinkCandidates(activityType);\n }),\n tap(res => {\n const result = res as any;\n const processLink = result.processLink;\n\n this.stateService.setModalParams(params);\n this.stateService.setElementName(params?.element?.name);\n\n if (processLink) {\n this.stateService.selectProcessLink(processLink);\n } else {\n this.stateService.setAvailableProcessLinkTypes(result);\n }\n\n if (result?.length > 0 || processLink) {\n this.stateService.showModal();\n }\n })\n )\n .subscribe();\n }\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <valtimo-form-link-process-diagram\n (bpmnElementModalOpen)=\"openModal($event)\"\n ></valtimo-form-link-process-diagram>\n </div>\n</div>\n\n<valtimo-process-link-modal></valtimo-process-link-modal>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {ProcessLinkComponent} from './components/process-link/process-link.component';\n\nconst routes: Routes = [\n {\n path: 'process-links',\n component: ProcessLinkComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Process links', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class ProcessLinkRoutingModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './choose-process-link-type.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './select-form.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {tap} from 'rxjs/operators';\nimport {ChangeEvent, FormFlowCustomComponent} from '../../models';\nimport {FormFlowComponentService} from '../../services';\nimport {FormioSubmission} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-form-flow-configuration-container',\n templateUrl: './form-flow-configuration-container.component.html',\n})\nexport class FormFlowConfigurationContainerComponent\n implements OnInit, OnDestroy, FormFlowCustomComponent\n{\n @ViewChild('formFlowConfigurationComponent', {static: true, read: ViewContainerRef})\n private readonly _dynamicContainer: ViewContainerRef;\n @Input() public set disabled(disabledValue: boolean) {\n this._disabled$.next(disabledValue);\n }\n @Input() public set componentId(value: string) {\n this._componentId$.next(value);\n }\n @Input() public set formFlowInstanceId(value: string) {\n this._formFlowInstanceId$.next(value);\n }\n @Output() public changeEvent = new EventEmitter<ChangeEvent>();\n @Output() public submitEvent = new EventEmitter<FormioSubmission>();\n\n private _changeSubscription!: Subscription;\n private _submitSubscription!: Subscription;\n\n private readonly _subscriptions = new Subscription();\n private readonly _componentRef$ = new BehaviorSubject<\n ComponentRef<FormFlowCustomComponent> | undefined\n >(undefined);\n private readonly _disabled$ = new BehaviorSubject<boolean>(false);\n private readonly _componentId$ = new BehaviorSubject<string>('');\n private readonly _formFlowInstanceId$ = new BehaviorSubject<string>('');\n\n constructor(private readonly formFlowComponentService: FormFlowComponentService) {}\n\n public ngOnInit(): void {\n this.openConfigurationComponentSubscription();\n this.openComponentInstanceSubscription();\n this.openDisabledSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openConfigurationComponentSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.formFlowComponentService.supportedComponents$, this._componentId$])\n .pipe(\n tap(([supportedComponents, componentId]) => {\n const configurationComponent = supportedComponents.find(\n component => component.id === componentId\n );\n\n this._dynamicContainer.clear();\n\n if (configurationComponent) {\n const componentRef = this._dynamicContainer.createComponent(\n configurationComponent.component\n );\n this._componentRef$.next(componentRef);\n }\n })\n )\n .subscribe()\n );\n }\n\n private openComponentInstanceSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._componentRef$, this._formFlowInstanceId$]).subscribe(\n ([ref, formFlowInstanceId]) => {\n const instance = ref?.instance;\n\n this._submitSubscription?.unsubscribe();\n this._changeSubscription?.unsubscribe();\n\n if (instance) {\n if (formFlowInstanceId) {\n instance.formFlowInstanceId = formFlowInstanceId;\n }\n\n this._changeSubscription = instance.changeEvent.subscribe(change => {\n this.changeEvent.emit(change);\n });\n\n this._submitSubscription = instance.submitEvent.subscribe(submit => {\n this.submitEvent.emit(submit);\n });\n }\n }\n )\n );\n }\n\n private openDisabledSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._componentRef$, this._disabled$]).subscribe(([ref, disabled]) => {\n const instance = ref?.instance;\n\n if (instance) {\n instance.disabled = disabled;\n }\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-template #formFlowConfigurationComponent></ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, Observable, Subscription} from 'rxjs';\nimport {FormioForm} from '@formio/angular';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ValtimoFormioOptions,\n ValtimoModalService,\n} from '@valtimo/components';\nimport {FormFlowService} from '../../services';\nimport {FormFlowInstance, FormFlowStepType} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Step} from 'carbon-components-angular';\nimport {ConfigService} from '@valtimo/config';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-form-flow',\n templateUrl: './form-flow.component.html',\n styleUrls: ['./form-flow.component.scss'],\n})\nexport class FormFlowComponent implements OnInit, OnDestroy {\n @ViewChild('form') form: FormioComponent;\n @Input() formIoFormData: BehaviorSubject<any | null> = new BehaviorSubject<any>(null);\n @Input() formFlowInstanceId: string | null;\n @Output() formFlowComplete = new EventEmitter();\n\n public readonly breadcrumbs$ = new BehaviorSubject<Step[]>([]);\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n public readonly formFlowStepType$ = new BehaviorSubject<FormFlowStepType | null>(null);\n public readonly FormFlowCustomComponentId$ = new BehaviorSubject<string>('');\n public readonly currentStepIndex$ = new BehaviorSubject<number>(0);\n public readonly enableFormFlowBreadcrumbs$ = this.configService.getFeatureToggleObservable(\n 'enableFormFlowBreadcrumbs'\n );\n\n private readonly _subscriptions = new Subscription();\n\n formDefinition: FormioForm;\n formioOptions: ValtimoFormioOptions;\n\n private formFlowStepInstanceId: string | null;\n\n constructor(\n private readonly formFlowService: FormFlowService,\n private readonly modalService: ValtimoModalService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService\n ) {\n this.formioOptions = new FormioOptionsImpl();\n this.formioOptions.disableAlerts = true;\n }\n\n public ngOnInit() {\n this.getFormFlowStep();\n this.getBreadcrumbs();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onChange(event: any): void {\n if (event?.data) this.formIoFormData.next(event.data);\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.disable();\n\n if (submission.data) {\n this.formIoFormData.next(submission.data);\n }\n if (submission.data.submit && this.formFlowInstanceId && this.formFlowStepInstanceId) {\n this.formFlowService\n .submitStep(\n this.formFlowInstanceId,\n this.formFlowStepInstanceId,\n this.formIoFormData.getValue()\n )\n .subscribe({\n next: (result: FormFlowInstance) => {\n this.handleFormFlowStep(result);\n },\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n } else if (submission.data['back']) {\n this.back(submission.data);\n }\n }\n\n public onEvent(submission: any): void {\n if (submission.data['back'] || submission.type == 'back') {\n this.back(submission.data);\n }\n }\n\n public saveData(): void {\n const formIoFormDataValue = this.formIoFormData.getValue();\n if (formIoFormDataValue && this.formFlowInstanceId) {\n this.formFlowService.save(this.formFlowInstanceId, formIoFormDataValue).subscribe(\n () => null,\n errors => this.form.showErrors(errors)\n );\n }\n }\n\n public onStepSelected(event: {step: {stepInstanceId: string}; index: number}): void {\n this.disable();\n this.currentStepIndex$.next(event.index);\n const submissionData = this.formIoFormData.getValue().data;\n if (!this.formFlowInstanceId || !this.formFlowStepInstanceId) return;\n this.formFlowService\n .navigateToStep(\n this.formFlowInstanceId,\n this.formFlowStepInstanceId,\n event.step.stepInstanceId,\n submissionData\n )\n .subscribe({\n next: (result: FormFlowInstance) => this.handleFormFlowStep(result),\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n }\n\n private getBreadcrumbs(): void {\n if (!this.formFlowInstanceId) return;\n this._subscriptions.add(\n combineLatest([\n this.enableFormFlowBreadcrumbs$,\n this.formFlowService.getBreadcrumbs(this.formFlowInstanceId),\n this.translateService.stream('key'),\n ])\n .pipe(\n filter(([enableFormFlowBreadcrumbs]) => enableFormFlowBreadcrumbs),\n map(([_, breadcrumbs]) => breadcrumbs)\n )\n .subscribe(breadcrumbs => {\n this.currentStepIndex$.next(breadcrumbs.currentStepIndex);\n this.breadcrumbs$.next(\n breadcrumbs.breadcrumbs.map(breadcrumb => ({\n label:\n breadcrumb.title ??\n this.translateService.instant(`formFlow.step.${breadcrumb.key}.title`) ??\n breadcrumb.key,\n disabled: breadcrumb.stepInstanceId === null,\n complete: breadcrumb.completed,\n stepInstanceId: breadcrumb.stepInstanceId,\n }))\n );\n const classElement = document.getElementsByClassName('cds--progress-step--current');\n if (classElement.length > 0) {\n classElement[0].scrollIntoView({behavior: 'smooth', inline: 'center'});\n }\n })\n );\n }\n\n private getFormFlowStep(): void {\n if (!this.formFlowInstanceId) return;\n this.formFlowService\n .getFormFlowStep(this.formFlowInstanceId)\n .subscribe((result: FormFlowInstance) => {\n this.handleFormFlowStep(result);\n });\n }\n\n private back(submissionData: any): void {\n if (!this.formFlowInstanceId) return;\n\n this.formFlowService.back(this.formFlowInstanceId, submissionData).subscribe({\n next: (result: FormFlowInstance) => this.handleFormFlowStep(result),\n error: errors => {\n this.form?.showErrors(errors);\n this.enable();\n },\n });\n }\n\n private handleFormFlowStep(formFlowInstance: FormFlowInstance) {\n if (formFlowInstance.step === null) {\n this.formFlowStepType$.next(null);\n this.FormFlowCustomComponentId$.next('');\n this.formFlowInstanceId = null;\n this.formFlowStepInstanceId = null;\n this.formFlowComplete.emit(null);\n } else {\n this.getBreadcrumbs();\n this.modalService.scrollToTop();\n this.formFlowStepType$.next(formFlowInstance.step?.type ?? null);\n this.FormFlowCustomComponentId$.next(formFlowInstance?.step?.typeProperties?.id || '');\n this.formFlowInstanceId = formFlowInstance.id;\n this.formFlowStepInstanceId = formFlowInstance.step?.id ?? null;\n this.formDefinition = formFlowInstance.step?.typeProperties.definition;\n }\n\n this.enable();\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n breadcrumbs: breadcrumbs$ | async,\n currentStepIndex: currentStepIndex$ | async,\n enableFormFlowBreadcrumbs: enableFormFlowBreadcrumbs$ | async,\n } as obs\"\n>\n <div *ngIf=\"formDefinition && (formFlowStepType$ | async) === 'form'\">\n <div *ngIf=\"obs.enableFormFlowBreadcrumbs\" class=\"form-flow__progress-bar-indicator\">\n <cds-progress-indicator\n [spacing]=\"'equal'\"\n [skeleton]=\"obs.breadcrumbs.length === 0\"\n [current]=\"obs.currentStepIndex\"\n [steps]=\"obs.breadcrumbs\"\n (stepSelected)=\"onStepSelected($event)\"\n >\n </cds-progress-indicator>\n </div>\n\n <valtimo-form-io\n #form\n [form]=\"formDefinition\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n (event)=\"onEvent($event)\"\n [options]=\"formioOptions\"\n ></valtimo-form-io>\n </div>\n <div *ngIf=\"(formFlowStepType$ | async) === 'custom-component'\">\n <valtimo-form-flow-configuration-container\n [componentId]=\"FormFlowCustomComponentId$ | async\"\n [formFlowInstanceId]=\"formFlowInstanceId\"\n [disabled]=\"disabled$ | async\"\n (submitEvent)=\"onSubmit($event)\"\n (changeEvent)=\"onChange($event)\"\n >\n </valtimo-form-flow-configuration-container>\n </div>\n</div>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './select-form-flow.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-flow-configuration-container.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {FormLinkProcessDiagramComponent} from './components/form-link-process-diagram/form-link-process-diagram.component';\nimport {CommonModule} from '@angular/common';\nimport {ProcessLinkRoutingModule} from './process-link-routing.module';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n ButtonModule,\n FormIoModule,\n ModalModule,\n ParagraphModule,\n RenderInPageHeaderDirectiveModule,\n SearchableDropdownSelectModule,\n StepperModule,\n TitleModule,\n TooltipIconModule,\n TooltipModule,\n ValtimoCdsModalDirectiveModule,\n VCardModule,\n VModalModule,\n} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {SelectPluginConfigurationComponent} from './components/select-plugin-configuration/select-plugin-configuration.component';\nimport {SelectPluginActionComponent} from './components/select-plugin-action/select-plugin-action.component';\nimport {PluginConfigurationContainerModule, PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {PluginActionConfigurationComponent} from './components/plugin-action-configuration/plugin-action-configuration.component';\nimport {ProcessLinkComponent} from './components/process-link/process-link.component';\nimport {ProcessLinkModalComponent} from './components/process-link-modal/process-link-modal.component';\nimport {\n ButtonModule as CarbonButtonModule,\n ComboBoxModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule as CarbonModalModule,\n ProgressIndicatorModule,\n SelectModule,\n StructuredListModule,\n TilesModule,\n ToggleModule,\n} from 'carbon-components-angular';\nimport {ChooseProcessLinkTypeComponent} from './components/choose-process-link-type';\nimport {SelectFormComponent} from './components/select-form';\nimport {FormFlowComponent} from './components/form-flow/form-flow.component';\nimport {SelectFormFlowComponent} from './components/select-form-flow';\nimport {FormFlowConfigurationContainerComponent} from './components/form-flow-configuration-container';\nimport {SelectUrlComponent} from './components/select-url/select-url.component';\nimport {UrlValidatorService} from './services/url-validator.service';\nimport {UrlResolverService} from './services/url-resolver.service';\nimport {FormDisplayConfigurationComponent} from './components/form-display-configuration/form-display-configuration.component';\n\n@NgModule({\n declarations: [\n ProcessLinkComponent,\n FormLinkProcessDiagramComponent,\n SelectPluginConfigurationComponent,\n SelectPluginActionComponent,\n PluginActionConfigurationComponent,\n ProcessLinkModalComponent,\n ChooseProcessLinkTypeComponent,\n SelectFormComponent,\n FormFlowComponent,\n SelectFormFlowComponent,\n FormFlowConfigurationContainerComponent,\n SelectUrlComponent,\n FormDisplayConfigurationComponent,\n ],\n imports: [\n CommonModule,\n ProcessLinkRoutingModule,\n FormsModule,\n ReactiveFormsModule,\n ModalModule,\n SearchableDropdownSelectModule,\n TranslateModule,\n StepperModule,\n VModalModule,\n VCardModule,\n PluginTranslatePipeModule,\n ParagraphModule,\n PluginConfigurationContainerModule,\n ButtonModule,\n TitleModule,\n CarbonModalModule,\n ProgressIndicatorModule,\n CarbonButtonModule,\n IconModule,\n TooltipModule,\n ComboBoxModule,\n InputModule,\n TooltipIconModule,\n LoadingModule,\n FormIoModule,\n ValtimoCdsModalDirectiveModule,\n StructuredListModule,\n TilesModule,\n RenderInPageHeaderDirectiveModule,\n SelectModule,\n ToggleModule,\n ],\n exports: [\n ProcessLinkComponent,\n SelectPluginConfigurationComponent,\n SelectPluginActionComponent,\n PluginActionConfigurationComponent,\n ProcessLinkModalComponent,\n FormFlowComponent,\n SelectUrlComponent,\n ],\n providers: [\n UrlValidatorService,\n UrlResolverService\n ]\n})\nexport class ProcessLinkModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ListItem} from 'carbon-components-angular';\n\ninterface FormSubmissionResult {\n errors: string[];\n documentId?: string;\n}\n\ninterface BpmnElement {\n id: string;\n type: string;\n activityListenerType?: string;\n name?: string;\n}\n\ninterface FormFlowDefinition {\n id: string;\n name: string;\n}\n\ninterface FormFlowInstance {\n id: string;\n step?: FormFlowStep;\n}\n\ninterface FormFlowCreateRequest {\n documentId: string | null;\n documentDefinitionName: string | null;\n}\n\ninterface FormFlowCreateResult {\n formFlowInstanceId: string;\n}\n\ntype FormFlowStepType = 'form' | 'custom-component';\n\ninterface FormFlowStep {\n id: string;\n type: FormFlowStepType;\n typeProperties: FormTypeProperties;\n}\n\ninterface FormTypeProperties {\n definition?: any;\n id?: string;\n}\n\ninterface ModalParams {\n element: BpmnElement;\n processDefinitionKey: string;\n processDefinitionId: string;\n}\n\ninterface FormDefinitionListItem extends ListItem {\n id: string;\n}\n\ninterface FormFlowBreadcrumbs extends ListItem {\n currentStepIndex: number;\n breadcrumbs: Array<FormFlowBreadcrumb>;\n}\n\ninterface FormFlowBreadcrumb extends ListItem {\n title: string;\n key: string;\n stepInstanceId: string;\n completed: boolean;\n}\n\nexport {\n FormSubmissionResult,\n BpmnElement,\n FormFlowDefinition,\n FormFlowInstance,\n FormFlowStepType,\n FormFlowStep,\n FormTypeProperties,\n FormFlowCreateResult,\n FormFlowCreateRequest,\n ModalParams,\n FormDefinitionListItem,\n FormFlowBreadcrumbs,\n FormFlowBreadcrumb,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ProcessLink {\n id: string;\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n pluginConfigurationId?: string;\n pluginActionDefinitionKey?: string;\n actionProperties?: {\n [key: string]: any;\n };\n formDefinitionId?: string;\n formFlowDefinitionId?: string;\n viewModelEnabled?: boolean;\n url?: string;\n formDisplayType?: FormDisplayType;\n formSize?: FormSize;\n}\n\ntype GetProcessLinkResponse = Array<ProcessLink>;\n\ninterface GetProcessLinkRequest {\n activityId: string;\n processDefinitionId: string;\n}\n\ninterface ProcessLinkType {\n enabled: boolean;\n processLinkType: string;\n}\n\ntype ProcessLinkConfigurationStep =\n | 'chooseProcessLinkType'\n | 'choosePluginConfiguration'\n | 'choosePluginAction'\n | 'configurePluginAction'\n | 'selectForm'\n | 'selectFormFlow'\n | 'empty';\n\ninterface FormProcessLinkCreateRequestDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n formDefinitionId: string;\n viewModelEnabled: boolean;\n formDisplayType?: string;\n formSize?: string;\n}\n\ninterface FormFlowProcessLinkCreateRequestDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n formFlowDefinitionId: string;\n}\n\ninterface PluginProcessLinkCreateDto {\n processDefinitionId: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n pluginConfigurationId: string;\n pluginActionDefinitionKey: string;\n actionProperties: object;\n}\n\ninterface PluginProcessLinkUpdateDto {\n id: string;\n pluginConfigurationId: string;\n pluginActionDefinitionKey: string;\n actionProperties: {\n [key: string]: any;\n };\n}\n\ninterface FormFlowProcessLinkUpdateRequestDto {\n id: string;\n formFlowDefinitionId: string;\n formDisplayType?: string;\n formSize?: string;\n}\n\ninterface FormProcessLinkUpdateRequestDto {\n id: string;\n formDefinitionId: string;\n viewModelEnabled: boolean;\n formDisplayType?: string;\n formSize?: string;\n}\n\ntype FormDisplayType = 'modal' | 'panel';\n\ntype FormSize = 'extraSmall' | 'small' | 'medium' | 'large';\n\ninterface URLProcessLinkCreateDto {\n url: string;\n activityId: string;\n activityType: string;\n processLinkType: string;\n}\n\ninterface URLProcessLinkUpdateRequestDto {\n url: string;\n id: string;\n}\n\nexport {\n GetProcessLinkRequest,\n ProcessLink,\n GetProcessLinkResponse,\n PluginProcessLinkUpdateDto,\n ProcessLinkType,\n ProcessLinkConfigurationStep,\n FormProcessLinkCreateRequestDto,\n FormFlowProcessLinkCreateRequestDto,\n PluginProcessLinkCreateDto,\n FormFlowProcessLinkUpdateRequestDto,\n FormProcessLinkUpdateRequestDto,\n URLProcessLinkCreateDto,\n URLProcessLinkUpdateRequestDto,\n FormDisplayType,\n FormSize,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {EventEmitter, Type} from '@angular/core';\nimport {FormioSubmission} from '@valtimo/components';\n\ninterface ChangeEvent {\n data: object;\n}\n\ninterface FormFlowCustomComponent {\n formFlowInstanceId: string;\n componentId?: string;\n disabled: boolean;\n changeEvent: EventEmitter<ChangeEvent>;\n submitEvent: EventEmitter<FormioSubmission>;\n}\n\ninterface FormFlowCustomComponentDefinition {\n id: string;\n component: Type<FormFlowCustomComponent>;\n}\n\nexport {FormFlowCustomComponentDefinition, FormFlowCustomComponent, ChangeEvent};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-link.model';\nexport * from './process-link.model';\nexport * from './form-flow.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of process-link\n */\n\nexport * from './lib/services/form-flow.service';\nexport * from './lib/services/process-link.service';\nexport * from './lib/services/url-resolver.service';\nexport * from './lib/services/url-validator.service';\nexport * from './lib/components/select-plugin-configuration/select-plugin-configuration.component';\nexport * from './lib/components/select-plugin-action/select-plugin-action.component';\nexport * from './lib/components/select-url/select-url.component';\nexport * from './lib/components/plugin-action-configuration/plugin-action-configuration.component';\nexport * from './lib/process-link.module';\nexport * from './lib/models';\nexport * from './lib/components/process-link/process-link.component';\nexport * from './lib/components/process-link-modal/process-link-modal.component';\nexport * from './lib/components/choose-process-link-type/choose-process-link-type.component';\nexport * from './lib/components/form-flow/form-flow.component';\nexport * from './lib/constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i1.UrlResolverService","map","i2.ProcessLinkButtonService","i3.PluginStateService","i4","i1.ProcessLinkStepService","switchMap","i2.PluginStateService","i3.ProcessLinkStateService","i3.ProcessLinkButtonService","i3.ProcessLinkStepService","i5","i6","i1.ProcessLinkButtonService","i1.ProcessLinkStateService","i1.ProcessLinkService","i2.UrlValidatorService","i3.UrlResolverService","i7","i1.PluginStateService","i3","i3.ProcessLinkService","i7.FormDisplayConfigurationComponent","i8","i2.FormFlowService","i2.ProcessLinkStateService","i2.ProcessLinkService","i6.FormDisplayConfigurationComponent","i6.SelectPluginConfigurationComponent","i7.SelectPluginActionComponent","i8.PluginActionConfigurationComponent","i9.ChooseProcessLinkTypeComponent","i10.SelectFormComponent","i11.SelectFormFlowComponent","i12.SelectUrlComponent","i13","i3.FormLinkProcessDiagramComponent","i4.ProcessLinkModalComponent","tap","i1.FormFlowComponentService","i1.FormFlowService","i7.FormFlowConfigurationContainerComponent","CarbonModalModule","CarbonButtonModule"],"mappings":"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"}
|