@valtimo-plugins/freemarker 7.0.1 → 7.0.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.
- package/fesm2022/valtimo-plugins-freemarker.mjs +126 -97
- package/fesm2022/valtimo-plugins-freemarker.mjs.map +1 -1
- package/lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component.d.ts +8 -8
- package/lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component.d.ts +8 -8
- package/lib/plugins/text-template/components/generate-text-file/generate-text-file.component.d.ts +8 -8
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-plugins-freemarker.mjs","sources":["../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/models/config.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/models/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-configuration/mail-template-configuration.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-configuration/mail-template-configuration.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/services/freemarker-template-management.service.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/services/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-delete-modal/mail-template-delete-modal.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-delete-modal/mail-template-delete-modal.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-add-edit-modal/mail-template-add-edit-modal.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-add-edit-modal/mail-template-add-edit-modal.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-list/mail-template-list.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-list/mail-template-list.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/mail-template-management-routing.module.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/mail-template-plugin-module.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/assets/mail-template-plugin-logo.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/assets/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/mail-template-plugin.specification.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/models/config.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/models/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-configuration/text-template-configuration.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-configuration/text-template-configuration.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-delete-modal/text-template-delete-modal.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-delete-modal/text-template-delete-modal.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-add-edit-modal/text-template-add-edit-modal.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-add-edit-modal/text-template-add-edit-modal.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-list/text-template-list.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-list/text-template-list.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-editor/text-template-editor.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-editor/text-template-editor.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/text-template-management-routing.module.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/generate-text-file/generate-text-file.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/generate-text-file/generate-text-file.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/text-template-plugin-module.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/assets/text-template-plugin-logo.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/assets/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/text-template-plugin.specification.ts","../../../../projects/valtimo-plugins/freemarker/src/public_api.ts","../../../../projects/valtimo-plugins/freemarker/src/valtimo-plugins-freemarker.ts"],"sourcesContent":["/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {PluginConfigurationData} from '@valtimo/plugin';\n\ninterface MailTemplateConfig extends PluginConfigurationData {\n}\n\ninterface GenerateMailContentConfig {\n mailTemplateKey: string;\n processVariableName: string;\n}\n\ninterface GenerateMailFileConfig {\n mailTemplateKey: string;\n processVariableName: string;\n}\n\nexport {MailTemplateConfig, GenerateMailContentConfig, GenerateMailFileConfig};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 './config';\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {PluginConfigurationComponent, PluginConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, take} from 'rxjs';\nimport {MailTemplateConfig} from '../../models';\n\n@Component({\n standalone: false,\n selector: 'valtimo-mail-template-configuration',\n templateUrl: './mail-template-configuration.component.html',\n})\nexport class MailTemplateConfigurationComponent\n implements PluginConfigurationComponent, OnInit, OnDestroy\n{\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() prefillConfiguration$!: Observable<MailTemplateConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> = new EventEmitter<PluginConfigurationData>();\n\n constructor(\n ) {}\n\n private saveSubscription!: Subscription;\n private readonly formValue$ = new BehaviorSubject<MailTemplateConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n\n ngOnInit(): void {\n this.openSaveSubscription();\n }\n\n ngOnDestroy() {\n this.saveSubscription?.unsubscribe();\n }\n\n formValueChange(formValue: MailTemplateConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: MailTemplateConfig): void {\n const valid = !!(formValue.configurationTitle);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n this.saveSubscription = this.save$?.subscribe(_ => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n this.injectCaseTab();\n }\n });\n });\n }\n\n private injectCaseTab() {\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n [widthPx]=\"350\"\n placeholder=\"Mail Template Plugin\"\n >\n </v-input>\n</v-form>\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 {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {map, Observable} from 'rxjs';\nimport {DeleteTemplatesRequest, Template, TemplateListItem, TemplateResponse, TemplateType, UpdateTemplateRequest,} from '../models';\nimport {ConfigService, InterceptorSkip, Page} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FreemarkerTemplateManagementService {\n\n private readonly valtimoEndpointUri: string;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {\n this.valtimoEndpointUri = `${this.configService.config.valtimoApi.endpointUri}management/`;\n }\n\n public getAllMailTemplates(caseDefinitionKey?: string, caseDefinitionVersionTag?: string): Observable<Page<TemplateListItem>> {\n return this.getTemplates(caseDefinitionKey, caseDefinitionVersionTag, 'mail', undefined, 0, 10000);\n }\n\n public getAllTextTemplates(caseDefinitionKey?: string, caseDefinitionVersionTag?: string): Observable<Page<TemplateListItem>> {\n return this.getTemplates(caseDefinitionKey, caseDefinitionVersionTag, 'text', undefined, 0, 10000);\n }\n\n public getTemplates(\n caseDefinitionKey?: string,\n caseDefinitionVersionTag?: string,\n templateType?: TemplateType,\n templateKey?: string,\n page?: number,\n pageSize?: number,\n ): Observable<Page<TemplateListItem>> {\n const params = {\n caseDefinitionKey,\n caseDefinitionVersionTag,\n templateType,\n templateKey,\n page,\n size: pageSize\n };\n Object.keys(params).forEach(key => {\n if (params[key] == undefined) {\n delete params[key];\n }\n });\n return this.http.get<Page<TemplateListItem>>(\n `${this.valtimoEndpointUri}v1/template`,\n {params}\n );\n }\n\n public getMailTemplate(caseDefinitionKey: string, caseDefinitionVersionTag: string, key: string): Observable<TemplateResponse> {\n return this.getTemplate(caseDefinitionKey, caseDefinitionVersionTag, 'mail', key);\n }\n\n public getTextTemplate(caseDefinitionKey: string, caseDefinitionVersionTag: string, key: string): Observable<TemplateResponse> {\n return this.getTemplate(caseDefinitionKey, caseDefinitionVersionTag, 'text', key);\n }\n\n public getTemplate(caseDefinitionKey: string, caseDefinitionVersionTag: string, templateType: TemplateType, key: string): Observable<TemplateResponse> {\n return this.http.get<TemplateResponse>(\n `${this.valtimoEndpointUri}v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/template-type/${templateType}/template/${key}`\n );\n }\n\n public addTemplate(template: Template): Observable<TemplateResponse> {\n return this.http.post<TemplateResponse>(`${this.valtimoEndpointUri}v1/template`, template);\n }\n\n public deleteTemplates(request: DeleteTemplatesRequest): Observable<null> {\n return this.http.delete<null>(`${this.valtimoEndpointUri}v1/template`, {body: request});\n }\n\n public updateTemplate(template: UpdateTemplateRequest): Observable<TemplateResponse> {\n return this.http.put<TemplateResponse>(`${this.valtimoEndpointUri}v1/template`, template);\n }\n\n public isFinal(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<boolean> {\n return this.http\n .get<any>(\n `${this.valtimoEndpointUri}v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}`,\n {\n headers: new HttpHeaders().set(InterceptorSkip, '403'),\n }\n )\n .pipe(map(caseDefinition => caseDefinition.final));\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 './freemarker-template-management.service';\n\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\n\nimport {FunctionConfigurationComponent, FunctionConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription, switchMap, take, tap,} from 'rxjs';\nimport {GenerateMailContentConfig} from '../../models';\nimport {ModalService, SelectItem} from '@valtimo/components';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {DocumentService} from '@valtimo/document';\n\n@Component({\n standalone: false,\n selector: 'valtimo-generate-mail-content-configuration',\n templateUrl: './generate-mail-content.component.html',\n})\nexport class GenerateMailContentComponent\n implements FunctionConfigurationComponent, OnInit, OnDestroy {\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() prefillConfiguration$!: Observable<GenerateMailContentConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<FunctionConfigurationData> = new EventEmitter<FunctionConfigurationData>();\n\n private saveSubscription!: Subscription;\n private readonly formValue$ = new BehaviorSubject<GenerateMailContentConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly mailTemplateItems$: Observable<Array<SelectItem>> = this.modalService.modalData$.pipe(\n switchMap(params =>\n this.documentService.findProcessDocumentDefinitionsByProcessDefinitionKey(\n params?.processDefinitionKey\n )\n ),\n switchMap(processDocumentDefinitions =>\n combineLatest([\n of({content: []}),\n ...processDocumentDefinitions.map(processDocumentDefinition =>\n this.templateService.getAllMailTemplates(\n processDocumentDefinition.id.documentDefinitionId.name\n )\n ),\n ])\n ),\n map(results => {\n return results\n .flatMap(result => result.content)\n .map(template => ({\n id: template.key,\n text: template.key,\n }));\n }),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n constructor(\n private readonly modalService: ModalService,\n private readonly documentService: DocumentService,\n private readonly templateService: FreemarkerTemplateManagementService\n ) {\n }\n\n ngOnInit(): void {\n this.openSaveSubscription();\n }\n\n ngOnDestroy(): void {\n this.saveSubscription?.unsubscribe();\n }\n\n formValueChange(formValue: GenerateMailContentConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: GenerateMailContentConfig): void {\n const valid = !!(formValue.mailTemplateKey && formValue.processVariableName);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n this.saveSubscription = this.save$?.subscribe(save => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n }\n });\n });\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n mailTemplateItems: mailTemplateItems$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'generateMailContentDescription' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-select\n [items]=\"obs.mailTemplateItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"mailTemplateKey\"\n [title]=\"'mailTemplateKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.mailTemplateKey\"\n [required]=\"true\"\n [loading]=\"!obs.mailTemplateItems\"\n [tooltip]=\"'mailTemplateKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"processVariableName\"\n [title]=\"'processVariableName' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariableName || 'content'\"\n [disabled]=\"obs.disabled\"\n [tooltip]=\"'processVariableNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n </v-form>\n </ng-container>\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-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {FunctionConfigurationComponent, FunctionConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription, switchMap, take, tap} from 'rxjs';\nimport {GenerateMailFileConfig} from '../../models';\nimport {ModalService, SelectItem} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-generate-mail-file-configuration',\n templateUrl: './generate-mail-file.component.html',\n})\nexport class GenerateMailFileComponent\n implements FunctionConfigurationComponent, OnInit, OnDestroy {\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() prefillConfiguration$!: Observable<GenerateMailFileConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<FunctionConfigurationData> = new EventEmitter<FunctionConfigurationData>();\n\n private saveSubscription!: Subscription;\n private readonly formValue$ = new BehaviorSubject<GenerateMailFileConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly mailTemplateItems$: Observable<Array<SelectItem>> = this.modalService.modalData$.pipe(\n switchMap(params =>\n this.documentService.findProcessDocumentDefinitionsByProcessDefinitionKey(\n params?.processDefinitionKey\n )\n ),\n switchMap(processDocumentDefinitions =>\n combineLatest([\n of({content: []}),\n ...processDocumentDefinitions.map(processDocumentDefinition =>\n this.templateService.getAllMailTemplates(\n processDocumentDefinition.id.documentDefinitionId.name\n )\n ),\n ])\n ),\n map(results => {\n return results\n .flatMap(result => result.content)\n .map(template => ({\n id: template.key,\n text: template.key,\n }));\n }),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n constructor(\n private readonly modalService: ModalService,\n private readonly documentService: DocumentService,\n private readonly templateService: FreemarkerTemplateManagementService\n ) {\n }\n\n ngOnInit(): void {\n this.openSaveSubscription();\n }\n\n ngOnDestroy(): void {\n this.saveSubscription?.unsubscribe();\n }\n\n formValueChange(formValue: GenerateMailFileConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: GenerateMailFileConfig): void {\n const valid = !!(formValue.mailTemplateKey && formValue.processVariableName);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n this.saveSubscription = this.save$?.subscribe(save => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n }\n });\n });\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n mailTemplateItems: mailTemplateItems$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'generateMailFileDescription' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-select\n [items]=\"obs.mailTemplateItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"mailTemplateKey\"\n [title]=\"'mailTemplateKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.mailTemplateKey\"\n [required]=\"true\"\n [loading]=\"!obs.mailTemplateItems\"\n [tooltip]=\"'mailTemplateKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"processVariableName\"\n [title]=\"'processVariableName' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariableName || 'contentId'\"\n [disabled]=\"obs.disabled\"\n [tooltip]=\"'processVariableNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n </v-form>\n </ng-container>\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {ConfirmationModalModule} from '@valtimo/components';\n\n@Component({\n standalone: true,\n selector: 'valtimo-mail-template-delete-modal',\n templateUrl: './mail-template-delete-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ConfirmationModalModule\n ]\n})\nexport class MailTemplateDeleteModalComponent {\n @Input() deleteRowKeys: Array<string>;\n @Input() showDeleteModal$: Observable<boolean>;\n @Output() deleteEvent = new EventEmitter<Array<string>>();\n\n public onDelete(templates: Array<string>): void {\n this.deleteEvent.emit(templates);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"template.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKeys\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output,} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TemplateMetadataModal} from '../../../../models';\nimport {CARBON_CONSTANTS, KeyGeneratorService} from '@valtimo/components';\nimport {ButtonModule, InputModule, ModalModule} from 'carbon-components-angular';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'valtimo-mail-template-add-edit-modal',\n templateUrl: './mail-template-add-edit-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n ButtonModule,\n TranslateModule,\n ModalModule,\n ReactiveFormsModule,\n InputModule\n ]\n})\nexport class MailTemplateAddEditModalComponent implements OnInit {\n @Input() open = false;\n @Input() type: TemplateMetadataModal = 'add';\n\n @Input() set defaultKeyValue(value: string) {\n this._defaultKeyValue = value;\n this.setDefaultKeyValue(value);\n }\n\n @Output() closeEvent = new EventEmitter<{ key: string; metadata?: any } | null>();\n\n public form = this.fb.group({\n key: this.fb.control('', Validators.required),\n });\n\n private _defaultKeyValue!: string;\n\n public get key() {\n const key = this.form?.get('key');\n if (!key?.value) {\n return key;\n }\n key.setValue(this.keyGeneratorService.getUniqueKey(key.value, []));\n return key;\n }\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly keyGeneratorService: KeyGeneratorService,\n ) {\n }\n\n public ngOnInit(): void {\n }\n\n public onCancel(): void {\n this.closeEvent.emit(null);\n this.resetForm();\n }\n\n public onConfirm(): void {\n if (!this.key) {\n return;\n }\n\n this.closeEvent.emit({key: this.key.value});\n this.resetForm();\n }\n\n private setDefaultKeyValue(value: string) {\n this.key.setValue(value);\n }\n\n private resetForm(): void {\n setTimeout(() => {\n this.form.reset();\n if (this.type === 'edit') {\n this.setDefaultKeyValue(this._defaultKeyValue);\n }\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n isAdd: type === 'add'\n } as vars\"\n [open]=\"open\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{\n vars.isAdd\n ? 'Add'\n : 'Edit'\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'Key' }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'key' }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ vars.isAdd ? ('interface.create' | translate) : ('interface.save' | translate) }}\n </button>\n </cds-modal-footer>\n</cds-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 {ChangeDetectionStrategy, Component, OnInit, ViewChild,} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, startWith, switchMap, take, tap} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {CarbonListComponent, CarbonListModule, ColumnConfig, ViewType} from '@valtimo/components';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {TemplateListItem} from '../../../../models';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {MailTemplateDeleteModalComponent} from '../mail-template-delete-modal/mail-template-delete-modal.component';\nimport {MailTemplateAddEditModalComponent} from '../mail-template-add-edit-modal/mail-template-add-edit-modal.component';\nimport {CaseManagementParams, EnvironmentService, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {ButtonModule} from 'carbon-components-angular';\n\n@Component({\n standalone: true,\n templateUrl: './mail-template-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n ButtonModule,\n TranslateModule,\n MailTemplateDeleteModalComponent,\n MailTemplateAddEditModalComponent\n ]\n})\nexport class MailTemplateListComponent implements OnInit {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n public fields: ColumnConfig[] = [\n {\n viewType: ViewType.TEXT,\n key: 'key',\n label: 'Key',\n },\n ];\n\n private readonly _caseDefinitionId$: Observable<CaseManagementParams> = getCaseManagementRouteParams(this.route).pipe(\n filter((params: CaseManagementParams | undefined) => !!params?.caseDefinitionKey),\n );\n\n public readonly readOnly$: Observable<boolean> = this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.templateService.isFinal(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)\n ]).pipe(\n map(([canUpdateGlobal, isFinalCase]) => !canUpdateGlobal || isFinalCase),\n startWith(true)\n )\n )\n );\n\n public readonly templates$ = new BehaviorSubject<TemplateListItem[] | null>(null);\n public readonly showAddModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly selectedRowKeys$ = new BehaviorSubject<Array<string>>([]);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService,\n private readonly router: Router,\n private readonly route: ActivatedRoute,\n private readonly environmentService: EnvironmentService,\n ) {\n }\n\n public ngOnInit(): void {\n this.reloadTemplateList();\n }\n\n public openAddModal(): void {\n this.showAddModal$.next(true);\n }\n\n public onAdd(data?: any): void {\n if (!data) {\n this.showAddModal$.next(false);\n return;\n }\n\n this._caseDefinitionId$.pipe(\n take(1),\n switchMap(caseDefinitionId => this.templateService.addTemplate({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'mail', ...data\n }))\n ).subscribe(template => {\n this.showAddModal$.next(false);\n this.gotoMailTemplateEditor(template.caseDefinitionKey, template.caseDefinitionVersionTag, template.key);\n });\n }\n\n public showDeleteModal(): void {\n this.setSelectedTemplateKeys();\n this.showDeleteModal$.next(true);\n }\n\n public onDelete(templates: Array<string>): void {\n this.loading$.next(true);\n this._caseDefinitionId$.pipe(\n take(1),\n switchMap(caseDefinitionId => this.templateService.deleteTemplates({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'mail',\n templates\n })),\n ).subscribe(_ => {\n this.reloadTemplateList();\n });\n }\n\n public onRowClick(template: TemplateListItem): void {\n this._caseDefinitionId$.pipe(take(1)).subscribe(caseDefinitionId =>\n this.gotoMailTemplateEditor(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag, template.key)\n );\n }\n\n private gotoMailTemplateEditor(caseDefinitionKey: string, caseDefinitionVersionTag: string, key: string): void {\n this.router.navigate([`/case-management/case/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/mail-template/${key}`]);\n }\n\n private reloadTemplateList(): void {\n this.loading$.next(true);\n this._caseDefinitionId$.pipe(\n switchMap((caseDefinitionId) => this.templateService.getAllMailTemplates(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)),\n map(templatePage => templatePage.content),\n take(1)\n ).subscribe(templateListItems => {\n this.templates$.next(templateListItems);\n this.loading$.next(false);\n });\n }\n\n private setSelectedTemplateKeys(): void {\n this.selectedRowKeys$.next(this.carbonList.selectedItems.map((template: TemplateListItem) => template.key));\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n [header]=\"false\"\n [items]=\"templates$ | async\"\n [fields]=\"fields\"\n [loading]=\"loading$ | async\"\n [showSelectionColumn]=\"!(readOnly$ | async)\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <ng-container header> {{ 'Title' }}</ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTemplateButton\"></ng-container>\n </div>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteModal()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTemplateButton\"\n description=\"{{ 'Come back later.' }}\"\n title=\"{{ 'No templates found' }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-mail-template-add-edit-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-mail-template-add-edit-modal>\n\n<ng-container *ngIf=\"{selectedRowKeys: selectedRowKeys$ | async} as obs\">\n <valtimo-mail-template-delete-modal\n [deleteRowKeys]=\"obs.selectedRowKeys\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-mail-template-delete-modal>\n</ng-container>\n\n<ng-template #addTemplateButton>\n <button cdsButton=\"primary\"\n [disabled]=\"readOnly$ | async\"\n (click)=\"openAddModal()\">\n {{ 'Add' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, startWith, switchMap, take, tap} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {\n BreadcrumbService,\n CarbonListModule,\n EditorModel,\n EditorModule,\n PageTitleService,\n RenderInPageHeaderDirective,\n} from '@valtimo/components';\nimport {ButtonModule, DialogModule, IconModule, NotificationService, TabsModule} from 'carbon-components-angular';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {TemplateResponse} from '../../../../models';\nimport {CaseManagementParams, EnvironmentService, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {CommonModule} from '@angular/common';\nimport {MailTemplateDeleteModalComponent} from '../mail-template-delete-modal/mail-template-delete-modal.component';\n\n@Component({\n standalone: true,\n templateUrl: './mail-template-editor.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./mail-template-editor.component.scss'],\n providers: [NotificationService],\n imports: [\n CommonModule,\n TranslateModule,\n TabsModule,\n DialogModule,\n MailTemplateDeleteModalComponent,\n CarbonListModule,\n ButtonModule,\n EditorModule,\n RenderInPageHeaderDirective,\n IconModule,\n ]\n})\nexport class MailTemplateEditorComponent implements OnInit, AfterViewInit, OnDestroy {\n public readonly model$ = new BehaviorSubject<EditorModel | null>(null);\n public readonly template$ = new BehaviorSubject<TemplateResponse | null>(null);\n public readonly saveDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly editorDisabled$ = new BehaviorSubject<boolean>(false);\n public readonly moreDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly updatedModelValue$ = new BehaviorSubject<string>('');\n\n private readonly _caseDefinitionId$: Observable<CaseManagementParams> = getCaseManagementRouteParams(this.route).pipe(\n filter((params: CaseManagementParams | undefined) => !!params?.caseDefinitionKey),\n );\n\n public readonly templateKey$: Observable<string> = combineLatest([this.route.params, this.route.parent.params]).pipe(\n map(([params, parentParams]) => params?.templateKey || parentParams?.templateKey),\n filter(templateKey => !!templateKey)\n );\n\n public readonly readOnly$: Observable<boolean> = this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.templateService.isFinal(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)\n ]).pipe(\n map(([canUpdateGlobal, isFinalCase]) => !canUpdateGlobal || isFinalCase),\n startWith(true)\n )\n )\n );\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService,\n private readonly route: ActivatedRoute,\n private readonly pageTitleService: PageTitleService,\n private readonly router: Router,\n private readonly notificationService: NotificationService,\n private readonly translateService: TranslateService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly environmentService: EnvironmentService,\n ) {\n }\n\n public ngOnInit(): void {\n this.loadTemplate();\n }\n\n public ngAfterViewInit(): void {\n this.initBreadcrumb();\n }\n\n public ngOnDestroy(): void {\n this.pageTitleService.enableReset();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public onValid(valid: boolean): void {\n this.saveDisabled$.next(valid === false);\n }\n\n public onValueChange(value: string): void {\n this.updatedModelValue$.next(value);\n }\n\n public updateTemplate(): void {\n this.disableEditor();\n this.disableSave();\n this.disableMore();\n\n combineLatest([this.updatedModelValue$, this._caseDefinitionId$, this.templateKey$]).pipe(\n switchMap(([updatedModelValue, caseDefinitionId, templateKey]) =>\n this.templateService.updateTemplate(\n {\n key: templateKey,\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'mail',\n content: updatedModelValue,\n }\n )\n ),\n take(1)\n ).subscribe({\n next: result => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n this.showSuccessMessage(result.key);\n this.setModel(result.content);\n this.template$.next(result);\n },\n error: () => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n },\n });\n }\n\n public onDelete(templates: Array<string>): void {\n this.disableEditor();\n this.disableSave();\n this.disableMore();\n\n this._caseDefinitionId$.pipe(take(1)).subscribe(caseDefinitionId =>\n this.templateService.deleteTemplates({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'mail',\n templates\n }).pipe(take(1)).subscribe(_ =>\n this.router.navigate([`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/mail-template`])\n )\n );\n }\n\n public showDeleteModal(): void {\n this.showDeleteModal$.next(true);\n }\n\n private loadTemplate(): void {\n combineLatest([this._caseDefinitionId$, this.templateKey$]).pipe(\n tap(([_, key]) => {\n this.pageTitleService.setCustomPageTitle(`Mail template: ${key}`, true);\n }),\n switchMap(([caseDefinitionId, key]) => this.templateService.getMailTemplate(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag, key)),\n take(1),\n ).subscribe(result => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n this.setModel(result.content);\n this.refreshViewer(result.content);\n this.template$.next(result);\n });\n }\n\n private setModel(content: string): void {\n this.model$.next({\n value: content,\n language: 'freemarker2',\n });\n this.updatedModelValue$.next(content);\n }\n\n private disableMore(): void {\n this.moreDisabled$.next(true);\n }\n\n private enableMore(): void {\n this.moreDisabled$.next(false);\n }\n\n private disableSave(): void {\n this.saveDisabled$.next(true);\n }\n\n private enableSave(): void {\n this.saveDisabled$.next(false);\n }\n\n private disableEditor(): void {\n this.editorDisabled$.next(true);\n }\n\n private enableEditor(): void {\n this.editorDisabled$.next(false);\n }\n\n public onSelectedTabViewer(): void {\n this.updatedModelValue$.pipe(take(1)).subscribe(html =>\n this.refreshViewer(html)\n );\n }\n\n private refreshViewer(html: string): void {\n setTimeout(() => {\n const htmlViewer = document.getElementById('html-viewer-iframe') as HTMLIFrameElement;\n if (htmlViewer) {\n htmlViewer.srcdoc = html;\n }\n }, 100);\n }\n\n private initBreadcrumb(): void {\n this._caseDefinitionId$.subscribe(caseDefinitionId => {\n this.breadcrumbService.setThirdBreadcrumb({\n route: [`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}`],\n content: `${caseDefinitionId.caseDefinitionKey}:${caseDefinitionId.caseDefinitionVersionTag}`,\n href: `/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}`,\n });\n this.breadcrumbService.setFourthBreadcrumb({\n route: [`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/mail-template`],\n content: 'Mail template',\n href: `/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/mail-template`,\n });\n });\n }\n\n private showSuccessMessage(key: string): void {\n this.notificationService.showToast({\n caption: this.translateService.instant(`${key} was saved successfully`, {\n key,\n }),\n type: 'success',\n duration: 4000,\n showClose: true,\n title: this.translateService.instant('Saved successfully'),\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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 model: model$ | async,\n updatedModelValue: updatedModelValue$ | async,\n template: template$ | async,\n } as obs\">\n\n <div class=\"template-explanation\">\n Mail templates use <a target=\"_blank\" href=\"https://www.w3schools.com/html/html_intro.asp\">HTML</a> for the mail\n layout. <a target=\"_blank\" href=\"https://freemarker.apache.org/docs/dgui_quickstart_basics.html\">FreeMarker</a>\n can be used to create placeholders inside the HTML. The data-model for FreeMarker is based upon <a\n target=\"_blank\" href=\"https://docs.valtimo.nl/reference/modules/value-resolver\">Valtimo value-resolvers</a>\n with a slightly different notation. For example: ${doc.firstName}. Retrieves\n the `firstName` from the case.\n </div>\n\n <cds-tabs type=\"contained\">\n <cds-tab [active]=\"true\" [heading]=\"'Editor'\">\n <valtimo-editor\n [model]=\"obs.model\"\n [disabled]=\"(editorDisabled$ | async) || (readOnly$ | async)\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"80\"\n ></valtimo-editor>\n </cds-tab>\n <cds-tab [heading]=\"'Viewer'\" (selected)=\"onSelectedTabViewer()\">\n <iframe title=\"HTML Viewer\" id=\"html-viewer-iframe\">\n </iframe>\n </cds-tab>\n </cds-tabs>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div *ngIf=\"{\n model: model$ | async,\n moreDisabled: moreDisabled$ | async,\n template: template$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option\n [disabled]=\"obs.moreDisabled || (readOnly$ | async)\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option\n >\n </cds-overflow-menu>\n\n <button\n [disabled]=\"(saveDisabled$ | async) || (readOnly$ | async)\"\n cdsButton=\"primary\"\n size=\"md\"\n (click)=\"updateTemplate()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"{templateKey: templateKey$ | async} as obs\">\n <valtimo-mail-template-delete-modal\n [deleteRowKeys]=\"[obs.templateKey]\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-mail-template-delete-modal>\n</ng-container>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {AuthGuardService} from '@valtimo/security';\nimport {MailTemplateEditorComponent} from './components/mail-template-editor/mail-template-editor.component';\n\nconst routes: Routes = [\n {\n path: 'case-management/case/:caseDefinitionKey/version/:caseDefinitionVersionTag/mail-template/:templateKey',\n component: MailTemplateEditorComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Mail Template Editor',\n templates: [ROLE_ADMIN],\n customPageTitle: true,\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TemplateManagementRoutingModule {}\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {MailTemplateConfigurationComponent} from './components/mail-template-configuration/mail-template-configuration.component';\nimport {CommonModule} from '@angular/common';\nimport {PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {\n CarbonListModule,\n ConfirmationModalModule,\n EditorModule,\n FormModule,\n InputModule as ValtimoInputModule,\n ParagraphModule,\n RenderInPageHeaderDirective,\n SelectModule,\n} from '@valtimo/components';\nimport {GenerateMailContentComponent} from './components/generate-mail-content/generate-mail-content.component';\nimport {GenerateMailFileComponent} from './components/generate-mail-file/generate-mail-file.component';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule, TabsModule,\n}\nfrom 'carbon-components-angular';\nimport {CASE_MANAGEMENT_TAB_TOKEN} from '@valtimo/shared';\nimport {MailTemplateListComponent} from './components/mail-template-list/mail-template-list.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {TemplateManagementRoutingModule} from './mail-template-management-routing.module';\nimport {MailTemplateDeleteModalComponent} from './components/mail-template-delete-modal/mail-template-delete-modal.component';\n\n@NgModule({\n declarations: [\n MailTemplateConfigurationComponent,\n GenerateMailFileComponent,\n GenerateMailContentComponent,\n ],\n imports: [\n CommonModule,\n PluginTranslatePipeModule,\n TemplateManagementRoutingModule,\n FormModule,\n ParagraphModule,\n SelectModule,\n ConfirmationModalModule,\n TranslateModule,\n ReactiveFormsModule,\n CarbonListModule,\n EditorModule,\n ValtimoInputModule,\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule,\n RenderInPageHeaderDirective,\n TabsModule,\n MailTemplateDeleteModalComponent,\n ],\n exports: [\n MailTemplateConfigurationComponent,\n GenerateMailFileComponent,\n GenerateMailContentComponent,\n ],\n providers: [\n {\n provide: CASE_MANAGEMENT_TAB_TOKEN,\n useValue: {\n translationKey: 'mail-template',\n component: MailTemplateListComponent,\n },\n multi: true,\n }\n ]\n})\nexport class MailTemplatePluginModule {\n}\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst MAIL_TEMPLATE_PLUGIN_LOGO_BASE64 =\n 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBpZD0ic3ZnMiIgdmlld0JveD0iMCAwIDQwMCAyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTSAzNDAuMzM3IDEzNS4zMjQgTCAzNTAuNTU1IDE1MC44MTUgTCAzODQuNiA5OS4xNzYgTCAzNTAuNTU1IDQ3LjUzNSBMIDM0MC4zMzcgNjMuMDI4IEwgMzY0LjE4MSA5OS4xNzYgTCAzNDAuMzM3IDEzNS4zMjQgWiIgc3R5bGU9ImZpbGw6IHJnYigwLCA4MCwgMTc4KTsiLz4KICA8cGF0aCBkPSJNIDU1LjQwNiA2My4wMjggTCA0NS4xODggNDcuNTM1IEwgMTEuMTQzIDk5LjE3NiBMIDQ1LjE4OCAxNTAuODE1IEwgNTUuNDA2IDEzNS4zMjQgTCAzMS41NjMgOTkuMTc2IEwgNTUuNDA2IDYzLjAyOCBaIiBzdHlsZT0iZmlsbDogcmdiKDAsIDgwLCAxNzgpOyIvPgogIDxwYXRoIGQ9Ik0gOTIuNzIxIDQ3LjUzNSBMIDExMy4zNzYgNDcuNTM1IEwgMTA5LjczMiA2OC4xOTEgTCAxMzAuMzg5IDY4LjE5MSBMIDEzNC4wMzIgNDcuNTM1IEwgMTU0LjY4OSA0Ny41MzUgTCAxNTEuMDQ1IDY4LjE5MSBMIDE3MS43MDEgNjguMTkxIEwgMTY4LjA0OSA4OC44NDggTCAxNDcuMzkzIDg4Ljg0OCBMIDE0My43NTYgMTA5LjUwNCBMIDE2NC40MTIgMTA5LjUwNCBMIDE2MC43NjcgMTMwLjE2IEwgMTQwLjExMSAxMzAuMTYgTCAxMzYuNDgyIDE1MC44MTUgTCAxMTUuODI2IDE1MC44MTUgTCAxMTkuNDYzIDEzMC4xNiBMIDk4LjgwNiAxMzAuMTYgTCA5NS4yMjkgMTUwLjgxNSBMIDc0LjUxMyAxNTAuODE1IEwgNzguMTUgMTMwLjE2IEwgNTcuNDk0IDEzMC4xNiBMIDYxLjEzOCAxMDkuNTA0IEwgODEuNzk1IDEwOS41MDQgTCA4NS40MzIgODguODk5IEwgNjQuNzc1IDg4Ljg5OSBMIDY4LjQyIDY4LjE5MSBMIDg5LjA3NiA2OC4xOTEgTCA5Mi43MjEgNDcuNTM1IFogTSAxMDIuNDUxIDEwOS41MDQgTCAxMjMuMTA3IDEwOS41MDQgTCAxMjYuNzUyIDg4Ljg0OCBMIDEwNi4wOTUgODguODQ4IEwgMTAyLjQ1MSAxMDkuNTA0IFoiIHN0eWxlPSJmaWxsOiByZ2IoMCwgODAsIDE3OCk7Ii8+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMi4wMjgxNjQsIDAsIDAsIDIuMDI4MTY0LCAxNzkuMDc4MTg2LCAyNi4zMjE2NjcpIiBzdHlsZT0iIj4KICAgIDxwYXRoIGQ9Ik0gNjYuMDk3IDExLjUyOCBMIDkuMTk3IDExLjUyOCBDIDQuMTI2IDExLjUyOCAwIDE1LjY1NCAwIDIwLjcyNSBMIDAgNTMuNDQ3IEMgMCA1OC41MTggNC4xMjYgNjIuNjQ0IDkuMTk3IDYyLjY0NCBMIDY2LjA5NyA2Mi42NDQgQyA3MS4xNjggNjIuNjQ0IDc1LjI5NCA1OC41MTggNzUuMjk0IDUzLjQ0NyBMIDc1LjI5NCAyMC43MjYgQyA3NS4yOTUgMTUuNjU0IDcxLjE2OSAxMS41MjggNjYuMDk3IDExLjUyOCBaIE0gNjEuNjAzIDE3LjUyOCBMIDM3LjY0NyAzMi45NjIgTCAxMy42OTEgMTcuNTI4IEwgNjEuNjAzIDE3LjUyOCBaIE0gNjYuMDk3IDU2LjY0NSBMIDkuMTk3IDU2LjY0NSBDIDcuNDM0IDU2LjY0NSA2IDU1LjIxIDYgNTMuNDQ4IEwgNiAyMC44OTYgTCAzNS43OTYgNDAuMDU2IEMgMzUuODM2IDQwLjA4MSAzNS44NzkgNDAuMDk4IDM1LjkyIDQwLjEyMSBDIDM1Ljk2MyA0MC4xNDUgMzYuMDA3IDQwLjE2OCAzNi4wNTEgNDAuMTkgQyAzNi4yODIgNDAuMzA5IDM2LjUyIDQwLjQwNSAzNi43NjMgNDAuNDY4IEMgMzYuNzg4IDQwLjQ3NSAzNi44MTMgNDAuNDc4IDM2LjgzOCA0MC40ODQgQyAzNy4xMDUgNDAuNTQ3IDM3LjM3NSA0MC41ODYgMzcuNjQ1IDQwLjU4NiBDIDM3LjY0NiA0MC41ODYgMzcuNjQ3IDQwLjU4NiAzNy42NDcgNDAuNTg2IEMgMzcuNjQ5IDQwLjU4NiAzNy42NSA0MC41ODYgMzcuNjUxIDQwLjU4NiBDIDM3LjkyMSA0MC41ODYgMzguMTkxIDQwLjU0OCAzOC40NTggNDAuNDg0IEMgMzguNDgzIDQwLjQ3OCAzOC41MDggNDAuNDc1IDM4LjUzMyA0MC40NjggQyAzOC43NzYgNDAuNDA1IDM5LjAxMyA0MC4zMDkgMzkuMjQ1IDQwLjE5IEMgMzkuMjg5IDQwLjE2OCAzOS4zMzMgNDAuMTQ1IDM5LjM3NiA0MC4xMjEgQyAzOS40MTcgNDAuMDk4IDM5LjQ2IDQwLjA4MSAzOS41IDQwLjA1NiBMIDY5LjI5NiAyMC44OTYgTCA2OS4yOTYgNTMuNDQ3IEMgNjkuMjk1IDU1LjIxIDY3Ljg2IDU2LjY0NSA2Ni4wOTcgNTYuNjQ1IFoiLz4KICA8L2c+Cjwvc3ZnPg==';\n\nexport {MAIL_TEMPLATE_PLUGIN_LOGO_BASE64};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 './mail-template-plugin-logo';\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {PluginSpecification} from '@valtimo/plugin';\nimport {MailTemplateConfigurationComponent} from './components/mail-template-configuration/mail-template-configuration.component';\nimport {MAIL_TEMPLATE_PLUGIN_LOGO_BASE64} from './assets';\nimport {GenerateMailContentComponent} from './components/generate-mail-content/generate-mail-content.component';\nimport {GenerateMailFileComponent} from './components/generate-mail-file/generate-mail-file.component';\n\nconst mailTemplatePluginSpecification: PluginSpecification = {\n pluginId: 'mail-template',\n pluginConfigurationComponent: MailTemplateConfigurationComponent,\n pluginLogoBase64: MAIL_TEMPLATE_PLUGIN_LOGO_BASE64,\n functionConfigurationComponents: {\n 'generate-mail-file': GenerateMailFileComponent,\n 'generate-mail-content': GenerateMailContentComponent,\n },\n pluginTranslations: {\n nl: {\n title: 'Mail sjablonen',\n 'generate-mail-file': 'Genereer Mailbestand',\n 'generate-mail-content': 'Genereer Mailinhoud',\n description: 'Maak Mail sjablonen met Freemarker.',\n configurationTitle: 'Configuratienaam',\n configurationTitleTooltip:\n 'De naam van de huidige plug-in configuratie. Onder deze naam kan de configuratie worden gevonden in de rest van de applicatie.',\n generateMailContentDescription:\n 'Deze actie genereert de inhoud van een mail op basis van een sjabloon. De mail tekst wordt opgeslagen in een Proces Variabele.',\n generateMailFileDescription:\n 'Deze actie genereert de inhoud van een mail en slaat het resultaat op in een tijdelijk bestand. Het ID van het bestand wordt opgeslagen in een Proces Variabele.',\n mailTemplateKey: 'Mail sjabloon',\n mailTemplateKeyTooltip: 'Op bases van deze sjabloon wordt de mail gegenereerd',\n processVariableName: 'Procesvariabelenaam',\n processVariableNameTooltip: 'Het resultaat wordt opgeslagen in een procesvariabele met deze naam',\n },\n en: {\n title: 'Mail Templates',\n 'generate-mail-file': 'Generate Mail File',\n 'generate-mail-content': 'Generate Mail Content',\n description: 'Create mail templates with Freemarker.',\n configurationTitle: 'Configuration Name',\n configurationTitleTooltip:\n 'The name of the current plug-in configuration. The configuration can be found under this name in the rest of the application.',\n generateMailContentDescription:\n 'This action generates the content of an mail based on a template. The mail text is stored in a Process Variable.',\n generateMailFileDescription:\n 'This action generates the content of an mail and saves the result in a temporary file. The file ID is stored in a Process Variable.',\n mailTemplateKey: 'Mail Template',\n mailTemplateKeyTooltip: 'The mail will be generated based on this template.',\n processVariableName: 'Process Variable Name',\n processVariableNameTooltip: 'The result will be stored in a process variable with this name.',\n },\n de: {\n title: 'Mail-Vorlagen',\n 'generate-mail-file': 'Mail-Datei generieren',\n 'generate-mail-content': 'Mail-Inhalt generieren',\n description: 'Erstellen Sie Mail-Vorlagen mit Freemarker.',\n configurationTitle: 'Konfigurationsname',\n configurationTitleTooltip:\n 'Der Name der aktuellen Plug-in-Konfiguration. Unter diesem Namen kann die Konfiguration im Rest der Anwendung gefunden werden.',\n generateMailContentDescription:\n 'Diese Aktion generiert den Inhalt einer Mail basierend auf einer Vorlage. Der Mail-Text wird in einer Prozessvariablen gespeichert.',\n generateMailFileDescription:\n 'Diese Aktion generiert den Inhalt einer Mail und speichert das Ergebnis in einer temporären Datei. Die Datei-ID wird in einer Prozessvariablen gespeichert.',\n mailTemplateKey: 'Mail-Vorlage',\n mailTemplateKeyTooltip: 'Die Mail wird basierend auf dieser Vorlage generiert.',\n processVariableName: 'Prozessvariablenname',\n processVariableNameTooltip: 'Das Ergebnis wird in einer Prozessvariablen mit diesem Namen gespeichert.',\n },\n },\n};\n\nexport {mailTemplatePluginSpecification};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {PluginConfigurationData} from '@valtimo/plugin';\n\ninterface TextTemplateConfig extends PluginConfigurationData {\n}\n\ninterface GenerateTextContentConfig {\n textTemplateKey: string;\n processVariableName: string;\n}\n\ninterface GenerateTextFileConfig {\n textTemplateKey: string;\n processVariableName: string;\n}\n\nexport {TextTemplateConfig, GenerateTextContentConfig, GenerateTextFileConfig};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 './config';\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {PluginConfigurationComponent, PluginConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, take} from 'rxjs';\nimport {TextTemplateConfig} from '../../models';\n\n@Component({\n standalone: false,\n selector: 'valtimo-text-template-configuration',\n templateUrl: './text-template-configuration.component.html',\n})\nexport class TextTemplateConfigurationComponent\n implements PluginConfigurationComponent, OnInit, OnDestroy\n{\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() prefillConfiguration$!: Observable<TextTemplateConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> = new EventEmitter<PluginConfigurationData>();\n\n constructor(\n ) {}\n\n private saveSubscription!: Subscription;\n private readonly formValue$ = new BehaviorSubject<TextTemplateConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n\n ngOnInit(): void {\n this.openSaveSubscription();\n }\n\n ngOnDestroy() {\n this.saveSubscription?.unsubscribe();\n }\n\n formValueChange(formValue: TextTemplateConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: TextTemplateConfig): void {\n const valid = !!(formValue.configurationTitle);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n this.saveSubscription = this.save$?.subscribe(_ => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n this.injectCaseTab();\n }\n });\n });\n }\n\n private injectCaseTab() {\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n [widthPx]=\"350\"\n placeholder=\"Text Template Plugin\"\n >\n </v-input>\n</v-form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {ConfirmationModalModule} from '@valtimo/components';\n\n@Component({\n standalone: true,\n selector: 'valtimo-text-template-delete-modal',\n templateUrl: './text-template-delete-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ConfirmationModalModule\n ]\n})\nexport class TextTemplateDeleteModalComponent {\n @Input() deleteRowKeys: Array<string>;\n @Input() showDeleteModal$: Observable<boolean>;\n @Output() deleteEvent = new EventEmitter<Array<string>>();\n\n public onDelete(templates: Array<string>): void {\n this.deleteEvent.emit(templates);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"template.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKeys\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output,} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TemplateMetadataModal} from '../../../../models';\nimport {CARBON_CONSTANTS, KeyGeneratorService} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule, InputModule, ModalModule} from 'carbon-components-angular';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'valtimo-text-template-add-edit-modal',\n templateUrl: './text-template-add-edit-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n ButtonModule,\n TranslateModule,\n ModalModule,\n ReactiveFormsModule,\n InputModule\n ]\n})\nexport class TextTemplateAddEditModalComponent implements OnInit {\n @Input() open = false;\n @Input() type: TemplateMetadataModal = 'add';\n\n @Input() set defaultKeyValue(value: string) {\n this._defaultKeyValue = value;\n this.setDefaultKeyValue(value);\n }\n\n @Output() closeEvent = new EventEmitter<{ key: string; metadata?: any } | null>();\n\n public form = this.fb.group({\n key: this.fb.control('', Validators.required),\n });\n\n private _defaultKeyValue!: string;\n\n public get key() {\n const key = this.form?.get('key');\n if (!key?.value) {\n return key;\n }\n key.setValue(this.keyGeneratorService.getUniqueKey(key.value, []));\n return key;\n }\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly keyGeneratorService: KeyGeneratorService,\n ) {\n }\n\n public ngOnInit(): void {\n }\n\n public onCancel(): void {\n this.closeEvent.emit(null);\n this.resetForm();\n }\n\n public onConfirm(): void {\n if (!this.key) {\n return;\n }\n\n this.closeEvent.emit({key: this.key.value});\n this.resetForm();\n }\n\n private setDefaultKeyValue(value: string) {\n this.key.setValue(value);\n }\n\n private resetForm(): void {\n setTimeout(() => {\n this.form.reset();\n if (this.type === 'edit') {\n this.setDefaultKeyValue(this._defaultKeyValue);\n }\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n isAdd: type === 'add'\n } as vars\"\n [open]=\"open\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{\n vars.isAdd\n ? 'Add'\n : 'Edit'\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'Key' }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'key' }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ vars.isAdd ? ('interface.create' | translate) : ('interface.save' | translate) }}\n </button>\n </cds-modal-footer>\n</cds-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 {ChangeDetectionStrategy, Component, OnInit, ViewChild,} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, startWith, switchMap, take} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {CarbonListComponent, CarbonListModule, ColumnConfig, ViewType} from '@valtimo/components';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {TemplateListItem} from '../../../../models';\nimport {CaseManagementParams, EnvironmentService, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule} from 'carbon-components-angular';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {TextTemplateDeleteModalComponent} from '../text-template-delete-modal/text-template-delete-modal.component';\nimport {TextTemplateAddEditModalComponent} from '../text-template-add-edit-modal/text-template-add-edit-modal.component';\n\n@Component({\n standalone: true,\n templateUrl: './text-template-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n ButtonModule,\n TranslateModule,\n TextTemplateDeleteModalComponent,\n TextTemplateAddEditModalComponent\n ]\n})\nexport class TextTemplateListComponent implements OnInit {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n public fields: ColumnConfig[] = [\n {\n viewType: ViewType.TEXT,\n key: 'key',\n label: 'Key',\n },\n {\n viewType: ViewType.BOOLEAN,\n key: 'readOnly',\n label: 'Read only',\n },\n ];\n\n private readonly _caseDefinitionId$: Observable<CaseManagementParams> = getCaseManagementRouteParams(this.route).pipe(\n filter((params: CaseManagementParams | undefined) => !!params?.caseDefinitionKey),\n );\n\n public readonly readOnly$: Observable<boolean> = this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.templateService.isFinal(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)\n ]).pipe(\n map(([canUpdateGlobal, isFinalCase]) => !canUpdateGlobal || isFinalCase),\n startWith(true)\n )\n )\n );\n\n public readonly templates$ = new BehaviorSubject<TemplateListItem[] | null>(null);\n public readonly showAddModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly selectedRowKeys$ = new BehaviorSubject<Array<string>>([]);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService,\n private readonly router: Router,\n private readonly route: ActivatedRoute,\n private readonly environmentService: EnvironmentService,\n ) {\n }\n\n public ngOnInit(): void {\n this.reloadTemplateList();\n }\n\n public openAddModal(): void {\n this.showAddModal$.next(true);\n }\n\n public onAdd(data?: any): void {\n if (!data) {\n this.showAddModal$.next(false);\n return;\n }\n\n this._caseDefinitionId$.pipe(\n take(1),\n switchMap(caseDefinitionId => this.templateService.addTemplate({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'text', ...data\n }))\n ).subscribe(template => {\n this.showAddModal$.next(false);\n this.gotoTextTemplateEditor(template.caseDefinitionKey, template.caseDefinitionVersionTag, template.key);\n });\n }\n\n public showDeleteModal(): void {\n this.setSelectedTemplateKeys();\n this.showDeleteModal$.next(true);\n }\n\n public onDelete(templates: Array<string>): void {\n this.loading$.next(true);\n this._caseDefinitionId$.pipe(\n take(1),\n switchMap(caseDefinitionId => this.templateService.deleteTemplates({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'text',\n templates\n })),\n ).subscribe(_ => {\n this.reloadTemplateList();\n });\n }\n\n public onRowClick(template: TemplateListItem): void {\n this._caseDefinitionId$.pipe(take(1)).subscribe(caseDefinitionId =>\n this.gotoTextTemplateEditor(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag, template.key)\n );\n }\n\n private gotoTextTemplateEditor(caseDefinitionKey: string, caseDefinitionVersionTag: string, key: string): void {\n this.router.navigate([`/case-management/case/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/text-template/${key}`]);\n }\n\n private reloadTemplateList(): void {\n this.loading$.next(true);\n this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => this.templateService.getAllTextTemplates(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)),\n map(templatePage => templatePage.content),\n take(1)\n ).subscribe(templateListItems => {\n this.templates$.next(templateListItems);\n this.loading$.next(false);\n });\n }\n\n private setSelectedTemplateKeys(): void {\n this.selectedRowKeys$.next(this.carbonList.selectedItems.map((template: TemplateListItem) => template.key));\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n [header]=\"false\"\n [items]=\"templates$ | async\"\n [fields]=\"fields\"\n [loading]=\"loading$ | async\"\n [showSelectionColumn]=\"!(readOnly$ | async)\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <ng-container header> {{ 'Title' }}</ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTemplateButton\"></ng-container>\n </div>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteModal()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTemplateButton\"\n description=\"{{ 'Come back later.' }}\"\n title=\"{{ 'No templates found' }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-text-template-add-edit-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-text-template-add-edit-modal>\n\n<ng-container *ngIf=\"{selectedRowKeys: selectedRowKeys$ | async} as obs\">\n <valtimo-text-template-delete-modal\n [deleteRowKeys]=\"obs.selectedRowKeys\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-text-template-delete-modal>\n</ng-container>\n\n<ng-template #addTemplateButton>\n <button cdsButton=\"primary\"\n [disabled]=\"readOnly$ | async\"\n (click)=\"openAddModal()\">\n {{ 'Add' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, startWith, switchMap, take, tap} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {\n BreadcrumbService,\n CarbonListModule,\n EditorModel, EditorModule,\n PageTitleService,\n RenderInPageHeaderDirective\n} from '@valtimo/components';\nimport {ButtonModule, DialogModule, IconModule, NotificationService, TabsModule} from 'carbon-components-angular';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {TemplateResponse} from '../../../../models';\nimport {CaseManagementParams, EnvironmentService, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {CommonModule} from '@angular/common';\nimport {TextTemplateDeleteModalComponent} from '../text-template-delete-modal/text-template-delete-modal.component';\n\n@Component({\n standalone: true,\n templateUrl: './text-template-editor.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./text-template-editor.component.scss'],\n providers: [NotificationService],\n imports: [\n CommonModule,\n TranslateModule,\n TabsModule,\n DialogModule,\n TextTemplateDeleteModalComponent,\n CarbonListModule,\n ButtonModule,\n EditorModule,\n RenderInPageHeaderDirective,\n IconModule,\n ]\n})\nexport class TextTemplateEditorComponent implements OnInit, AfterViewInit, OnDestroy {\n public readonly model$ = new BehaviorSubject<EditorModel | null>(null);\n public readonly template$ = new BehaviorSubject<TemplateResponse | null>(null);\n public readonly saveDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly editorDisabled$ = new BehaviorSubject<boolean>(false);\n public readonly moreDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly updatedModelValue$ = new BehaviorSubject<string>('');\n\n public readonly canUpdateGlobalConfiguration$ =\n this.environmentService.canUpdateGlobalConfiguration();\n\n private readonly _caseDefinitionId$: Observable<CaseManagementParams> = getCaseManagementRouteParams(this.route).pipe(\n filter((params: CaseManagementParams | undefined) => !!params?.caseDefinitionKey),\n );\n\n public readonly templateKey$: Observable<string> = combineLatest([this.route.params, this.route.parent.params]).pipe(\n map(([params, parentParams]) => params?.templateKey || parentParams?.templateKey),\n filter(templateKey => !!templateKey)\n );\n\n public readonly readOnly$: Observable<boolean> = this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.templateService.isFinal(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)\n ]).pipe(\n map(([canUpdateGlobal, isFinalCase]) => !canUpdateGlobal || isFinalCase),\n startWith(true)\n )\n )\n );\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService,\n private readonly route: ActivatedRoute,\n private readonly pageTitleService: PageTitleService,\n private readonly router: Router,\n private readonly notificationService: NotificationService,\n private readonly translateService: TranslateService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly environmentService: EnvironmentService,\n ) {\n }\n\n public ngOnInit(): void {\n this.loadTemplate();\n }\n\n public ngAfterViewInit(): void {\n this.initBreadcrumb();\n }\n\n public ngOnDestroy(): void {\n this.pageTitleService.enableReset();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public onValid(valid: boolean): void {\n this.saveDisabled$.next(valid === false);\n }\n\n public onValueChange(value: string): void {\n this.updatedModelValue$.next(value);\n }\n\n public updateTemplate(): void {\n this.disableEditor();\n this.disableSave();\n this.disableMore();\n\n combineLatest([this.updatedModelValue$, this._caseDefinitionId$, this.templateKey$]).pipe(\n switchMap(([updatedModelValue, caseDefinitionId, templateKey]) =>\n this.templateService.updateTemplate(\n {\n key: templateKey,\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'text',\n content: updatedModelValue,\n }\n )\n ),\n take(1)\n ).subscribe({\n next: result => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n this.showSuccessMessage(result.key);\n this.setModel(result.content);\n this.template$.next(result);\n },\n error: () => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n },\n });\n }\n\n public onDelete(templates: Array<string>): void {\n this.disableEditor();\n this.disableSave();\n this.disableMore();\n\n this._caseDefinitionId$.pipe(take(1)).subscribe(caseDefinitionId =>\n this.templateService.deleteTemplates({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'text',\n templates\n }).pipe(take(1)).subscribe(_ =>\n this.router.navigate([`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/text-template`])\n )\n );\n }\n\n public showDeleteModal(): void {\n this.showDeleteModal$.next(true);\n }\n\n private loadTemplate(): void {\n combineLatest([this._caseDefinitionId$, this.templateKey$]).pipe(\n tap(([_, key]) => {\n this.pageTitleService.setCustomPageTitle(`Text template: ${key}`, true);\n }),\n switchMap(([caseDefinitionId, key]) => this.templateService.getTextTemplate(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag, key)),\n take(1),\n ).subscribe(result => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n this.setModel(result.content);\n this.template$.next(result);\n });\n }\n\n private setModel(content: string): void {\n this.model$.next({\n value: content,\n language: 'freemarker2',\n });\n this.updatedModelValue$.next(content);\n }\n\n private disableMore(): void {\n this.moreDisabled$.next(true);\n }\n\n private enableMore(): void {\n this.moreDisabled$.next(false);\n }\n\n private disableSave(): void {\n this.saveDisabled$.next(true);\n }\n\n private enableSave(): void {\n this.saveDisabled$.next(false);\n }\n\n private disableEditor(): void {\n this.editorDisabled$.next(true);\n }\n\n private enableEditor(): void {\n this.editorDisabled$.next(false);\n }\n\n private initBreadcrumb(): void {\n this._caseDefinitionId$.subscribe(caseDefinitionId => {\n this.breadcrumbService.setThirdBreadcrumb({\n route: [`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}`],\n content: `${caseDefinitionId.caseDefinitionKey}:${caseDefinitionId.caseDefinitionVersionTag}`,\n href: `/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}`,\n });\n this.breadcrumbService.setFourthBreadcrumb({\n route: [`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/text-template`],\n content: 'Text template',\n href: `/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/text-template`,\n });\n });\n }\n\n private showSuccessMessage(key: string): void {\n this.notificationService.showToast({\n caption: this.translateService.instant(`${key} was saved successfully`, {\n key,\n }),\n type: 'success',\n duration: 4000,\n showClose: true,\n title: this.translateService.instant('Saved successfully'),\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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 model: model$ | async,\n updatedModelValue: updatedModelValue$ | async,\n template: template$ | async,\n } as obs\">\n\n <div class=\"template-explanation\">\n Text Templates use <a target=\"_blank\" href=\"https://freemarker.apache.org/docs/dgui_quickstart_basics.html\">FreeMarker</a>\n to create placeholders inside the text. The data-model for FreeMarker is based upon nested <a\n target=\"_blank\" href=\"https://docs.valtimo.nl/reference/modules/value-resolver\">Valtimo value-resolvers</a>\n with a slightly different notation. For example: ${doc.firstName}. Retrieves\n the `firstName` from the case.\n\n Text Templates can be used as value resolvers. For example: ${template.my-text-template} or\n `template:my-text-template`.\n </div>\n\n <valtimo-editor\n [model]=\"obs.model\"\n [disabled]=\"(editorDisabled$ | async) || (readOnly$ | async)\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"80\"\n ></valtimo-editor>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div *ngIf=\"{\n model: model$ | async,\n moreDisabled: moreDisabled$ | async,\n template: template$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option\n [disabled]=\"obs.moreDisabled || (readOnly$ | async)\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option\n >\n </cds-overflow-menu>\n\n <button\n [disabled]=\"(saveDisabled$ | async) || (readOnly$ | async)\"\n cdsButton=\"primary\"\n size=\"md\"\n (click)=\"updateTemplate()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"{templateKey: templateKey$ | async} as obs\">\n <valtimo-text-template-delete-modal\n [deleteRowKeys]=\"[obs.templateKey]\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-text-template-delete-modal>\n</ng-container>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {AuthGuardService} from '@valtimo/security';\nimport {TextTemplateEditorComponent} from './components/text-template-editor/text-template-editor.component';\n\nconst routes: Routes = [\n {\n path: 'case-management/case/:caseDefinitionKey/version/:caseDefinitionVersionTag/text-template/:templateKey',\n component: TextTemplateEditorComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Text Template Editor',\n templates: [ROLE_ADMIN],\n customPageTitle: true,\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TemplateManagementRoutingModule {}\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {FunctionConfigurationComponent, FunctionConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription, switchMap, take, tap} from 'rxjs';\nimport {GenerateTextFileConfig} from '../../models';\nimport {ModalService, SelectItem} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\n\n@Component({\n standalone: false,\n selector: 'valtimo-generate-text-file-configuration',\n templateUrl: './generate-text-file.component.html',\n})\nexport class GenerateTextFileComponent\n implements FunctionConfigurationComponent, OnInit, OnDestroy {\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() prefillConfiguration$!: Observable<GenerateTextFileConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<FunctionConfigurationData> = new EventEmitter<FunctionConfigurationData>();\n\n private saveSubscription!: Subscription;\n private readonly formValue$ = new BehaviorSubject<GenerateTextFileConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly textTemplateItems$: Observable<Array<SelectItem>> = this.modalService.modalData$.pipe(\n switchMap(params =>\n this.documentService.findProcessDocumentDefinitionsByProcessDefinitionKey(\n params?.processDefinitionKey\n )\n ),\n switchMap(processDocumentDefinitions =>\n combineLatest([\n of({content: []}),\n ...processDocumentDefinitions.map(processDocumentDefinition =>\n this.templateService.getAllTextTemplates(\n processDocumentDefinition.id.documentDefinitionId.name\n )\n ),\n ])\n ),\n map(results => {\n return results\n .flatMap(result => result.content)\n .map(template => ({\n id: template.key,\n text: template.key,\n }));\n }),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n constructor(\n private readonly modalService: ModalService,\n private readonly documentService: DocumentService,\n private readonly templateService: FreemarkerTemplateManagementService\n ) {\n }\n\n ngOnInit(): void {\n this.openSaveSubscription();\n }\n\n ngOnDestroy(): void {\n this.saveSubscription?.unsubscribe();\n }\n\n formValueChange(formValue: GenerateTextFileConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: GenerateTextFileConfig): void {\n const valid = !!(formValue.textTemplateKey && formValue.processVariableName);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n this.saveSubscription = this.save$?.subscribe(save => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n }\n });\n });\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n textTemplateItems: textTemplateItems$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'generateTextFileDescription' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-select\n [items]=\"obs.textTemplateItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"textTemplateKey\"\n [title]=\"'textTemplateKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.textTemplateKey\"\n [required]=\"true\"\n [loading]=\"!obs.textTemplateItems\"\n [tooltip]=\"'textTemplateKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"processVariableName\"\n [title]=\"'processVariableName' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariableName || 'contentId'\"\n [disabled]=\"obs.disabled\"\n [tooltip]=\"'processVariableNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n </v-form>\n </ng-container>\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-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {TextTemplateConfigurationComponent} from './components/text-template-configuration/text-template-configuration.component';\nimport {CommonModule} from '@angular/common';\nimport {PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {\n CarbonListModule,\n ConfirmationModalModule,\n EditorModule,\n FormModule,\n InputModule as ValtimoInputModule,\n ParagraphModule,\n RenderInPageHeaderDirective,\n SelectModule,\n} from '@valtimo/components';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule,\n TabsModule,\n} from 'carbon-components-angular';\nimport {CASE_MANAGEMENT_TAB_TOKEN} from '@valtimo/shared';\nimport {TextTemplateListComponent} from './components/text-template-list/text-template-list.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {TemplateManagementRoutingModule} from './text-template-management-routing.module';\nimport {GenerateTextFileComponent} from './components/generate-text-file/generate-text-file.component';\n\n@NgModule({\n declarations: [\n GenerateTextFileComponent,\n TextTemplateConfigurationComponent,\n ],\n imports: [\n CommonModule,\n PluginTranslatePipeModule,\n TemplateManagementRoutingModule,\n FormModule,\n ParagraphModule,\n SelectModule,\n ConfirmationModalModule,\n TranslateModule,\n ReactiveFormsModule,\n CarbonListModule,\n EditorModule,\n ValtimoInputModule,\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule,\n RenderInPageHeaderDirective,\n TabsModule,\n ],\n exports: [\n GenerateTextFileComponent,\n ],\n providers: [\n {\n provide: CASE_MANAGEMENT_TAB_TOKEN,\n useValue: {\n translationKey: 'text-template',\n component: TextTemplateListComponent,\n },\n multi: true,\n }\n ]\n})\nexport class TextTemplatePluginModule {\n}\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst TEXT_TEMPLATE_PLUGIN_LOGO_BASE64 =\n 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBpZD0ic3ZnMiIgdmlld0JveD0iMCAwIDQwMCAyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTSAzMjcuMTE2IDE0NS44OTggTCAzNDAuMzA0IDE2NS44OTIgTCAzODQuMjQxIDk5LjI0NiBMIDM0MC4zMDQgMzIuNjAxIEwgMzI3LjExNiA1Mi41OTUgTCAzNTcuODg4IDk5LjI0NiBMIDMyNy4xMTYgMTQ1Ljg5OCBaIiBzdHlsZT0iZmlsbDogcmdiKDAsIDgwLCAxNzgpOyIgdHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgMSwgLTUuNjg0MzQxODg2MDgwODAyZS0xNCwgMCkiLz4KICA8cGF0aCBkPSJNIDY0LjcwMyA1Mi41OTUgTCA1MS41MTggMzIuNjAxIEwgNy41OCA5OS4yNDYgTCA1MS41MTggMTY1Ljg5MiBMIDY0LjcwMyAxNDUuODk4IEwgMzMuOTMzIDk5LjI0NiBMIDY0LjcwMyA1Mi41OTUgWiIgc3R5bGU9ImZpbGw6IHJnYigwLCA4MCwgMTc4KTsiIHRyYW5zZm9ybT0ibWF0cml4KDEsIDAsIDAsIDEsIC01LjY4NDM0MTg4NjA4MDgwMmUtMTQsIDApIi8+CiAgPHBhdGggZD0iTSAxMTIuODYgMzIuNjAxIEwgMTM5LjUxOCAzMi42MDEgTCAxMzQuODE1IDU5LjI2IEwgMTYxLjQ3NCA1OS4yNiBMIDE2Ni4xNzYgMzIuNjAxIEwgMTkyLjgzNCAzMi42MDEgTCAxODguMTMgNTkuMjYgTCAyMTQuNzg4IDU5LjI2IEwgMjEwLjA3NyA4NS45MTcgTCAxODMuNDE4IDg1LjkxNyBMIDE3OC43MjMgMTEyLjU3NSBMIDIwNS4zODIgMTEyLjU3NSBMIDIwMC42NzggMTM5LjIzMyBMIDE3NC4wMjEgMTM5LjIzMyBMIDE2OS4zMzYgMTY1Ljg5MiBMIDE0Mi42NzkgMTY1Ljg5MiBMIDE0Ny4zNzMgMTM5LjIzMyBMIDEyMC43MTUgMTM5LjIzMyBMIDExNi4wOTcgMTY1Ljg5MiBMIDg5LjM2MiAxNjUuODkyIEwgOTQuMDU2IDEzOS4yMzMgTCA2Ny4zOTggMTM5LjIzMyBMIDcyLjEwMiAxMTIuNTc1IEwgOTguNzYgMTEyLjU3NSBMIDEwMy40NTQgODUuOTg1IEwgNzYuNzk2IDg1Ljk4NSBMIDgxLjQ5OCA1OS4yNiBMIDEwOC4xNTcgNTkuMjYgTCAxMTIuODYgMzIuNjAxIFogTSAxMjUuNDE3IDExMi41NzUgTCAxNTIuMDc2IDExMi41NzUgTCAxNTYuNzc5IDg1LjkxNyBMIDEzMC4xMjEgODUuOTE3IEwgMTI1LjQxNyAxMTIuNTc1IFoiIHN0eWxlPSJmaWxsOiByZ2IoMCwgODAsIDE3OCk7IiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAxLCAtNS42ODQzNDE4ODYwODA4MDJlLTE0LCAwKSIvPgogIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMjQ2MjE5MDA5MTYwOTk1NDgsIDAsIDAsIDAuMjQ2MjE5MDA5MTYwOTk1NDgsIDIwNC4yOTI0MTk0MzM1OTM3LCAzMi4xNjgzNjkyOTMyMTI4OSkiIHN0eWxlPSIiPgogICAgPHBhdGggZD0iTTQ4Ni4yMDEsMTk2LjEyNGgtMTMuMTY2VjEzMi41OWMwLTAuMzk2LTAuMDYyLTAuNzk1LTAuMTE1LTEuMTk2Yy0wLjAyMS0yLjUyMy0wLjgyNS01LTIuNTUyLTYuOTYzTDM2NC42NTcsMy42NzcmIzEwOyYjOTsmIzk7Yy0wLjAzMy0wLjAzMS0wLjA2NC0wLjA0Mi0wLjA4NS0wLjA3NWMtMC42My0wLjcwNC0xLjM2NC0xLjI5LTIuMTQzLTEuNzk2Yy0wLjIyOS0wLjE1NC0wLjQ2MS0wLjI4My0wLjcwMi0wLjQxOCYjMTA7JiM5OyYjOTtjLTAuNjcyLTAuMzY2LTEuMzg3LTAuNjcxLTIuMTIxLTAuODkyYy0wLjItMC4wNTUtMC4zNzktMC4xMzQtMC41NzctMC4xODhDMzU4LjIzLDAuMTE4LDM1Ny40MDEsMCwzNTYuNTYyLDBIOTYuNzU3JiMxMDsmIzk7JiM5O0M4NC44OTQsMCw3NS4yNTYsOS42NDksNzUuMjU2LDIxLjUwMnYxNzQuNjE2SDYyLjA5Yy0xNi45NjgsMC0zMC43MjksMTMuNzUzLTMwLjcyOSwzMC43M3YxNTkuODEyJiMxMDsmIzk7JiM5O2MwLDE2Ljk2MSwxMy43NjEsMzAuNzMxLDMwLjcyOSwzMC43MzFoMTMuMTY2VjUyNi43OWMwLDExLjg1NCw5LjYzOCwyMS41MDEsMjEuNTAxLDIxLjUwMWgzNTQuNzc2JiMxMDsmIzk7JiM5O2MxMS44NTMsMCwyMS41MDEtOS42NDcsMjEuNTAxLTIxLjUwMVY0MTcuMzkyaDEzLjE2NmMxNi45NjYsMCwzMC43MjktMTMuNzY0LDMwLjcyOS0zMC43MzFWMjI2Ljg1NCYjMTA7JiM5OyYjOTtDNTE2LjkzLDIwOS44NzIsNTAzLjE2NywxOTYuMTI0LDQ4Ni4yMDEsMTk2LjEyNHogTTk2Ljc1NywyMS41MDJoMjQ5LjA1NHYxMTAuMDA2YzAsNS45NDMsNC44MTcsMTAuNzUxLDEwLjc1MSwxMC43NTFoOTQuOTcyJiMxMDsmIzk7JiM5O3Y1My44NjRIOTYuNzU3VjIxLjUwMnogTTIwMi44MTQsMjI1LjA0Mmg0MS42OGwxNC4wNjMsMjkuM2M0Ljc1Niw5Ljc1Niw4LjMzNiwxNy42MjIsMTIuMTQ3LDI2LjY3NmgwLjQ4JiMxMDsmIzk7JiM5O2MzLjc5OC0xMC4yNDIsNi45LTE3LjM5MiwxMC45NS0yNi42NzZsMTMuNTg3LTI5LjNoNDEuNDQ5bC00NS4yNjEsNzguMzYzbDQ3LjYzOCw4Mi4xODVoLTQxLjkyN2wtMTQuNTI1LTI5LjA2JiMxMDsmIzk7JiM5O2MtNS45NTYtMTEuMTk3LTkuNzcxLTE5LjUyOC0xNC4yOTktMjguODI1aC0wLjQ3OGMtMy4zMzQsOS4yOTctNy4zODEsMTcuNjI4LTEyLjM4MSwyOC44MjVsLTEzLjMzNiwyOS4wNmgtNDEuNDU1bDQ2LjQ1NS04MS4yMjQmIzEwOyYjOTsmIzk7TDIwMi44MTQsMjI1LjA0MnogTTY2LjA4LDI1NS41MzJ2LTMwLjQ4OWgxMjMuMzgydjMwLjQ4OWgtNDMuODI4djEzMC4wNDloLTM2LjQzNFYyNTUuNTMySDY2LjA4eiBNNDUxLjUzNCw1MjAuOTYySDk2Ljc1N3YtMTAzLjU3JiMxMDsmIzk7JiM5O2gzNTQuNzc2VjUyMC45NjJ6IE00NzEuNzY0LDI1NS41MzJoLTQzLjgzMXYxMzAuMDQ5aC0zNi40NDJWMjU1LjUzMmgtNDMuMTE5di0zMC40ODloMTIzLjM5M1YyNTUuNTMyeiIvPgogIDwvZz4KPC9zdmc+';\n\nexport {TEXT_TEMPLATE_PLUGIN_LOGO_BASE64};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 './text-template-plugin-logo';\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {PluginSpecification} from '@valtimo/plugin';\nimport {TextTemplateConfigurationComponent} from './components/text-template-configuration/text-template-configuration.component';\nimport {TEXT_TEMPLATE_PLUGIN_LOGO_BASE64} from './assets';\nimport {GenerateTextFileComponent} from './components/generate-text-file/generate-text-file.component';\n\nconst textTemplatePluginSpecification: PluginSpecification = {\n pluginId: 'text-template',\n pluginConfigurationComponent: TextTemplateConfigurationComponent,\n pluginLogoBase64: TEXT_TEMPLATE_PLUGIN_LOGO_BASE64,\n functionConfigurationComponents: {\n 'generate-text-file': GenerateTextFileComponent,\n },\n pluginTranslations: {\n nl: {\n title: 'Text sjablonen',\n 'generate-text-file': 'Genereer Textbestand',\n description: 'Maak Text sjablonen met Freemarker.',\n configurationTitle: 'Configuratienaam',\n configurationTitleTooltip:\n 'De naam van de huidige plug-in configuratie. Onder deze naam kan de configuratie worden gevonden in de rest van de applicatie.',\n generateTextFileDescription:\n 'Deze actie genereert de inhoud van een text-template en slaat het resultaat op in een tijdelijk bestand. Het ID van het bestand wordt opgeslagen in een Proces Variabele.',\n textTemplateKey: 'Text sjabloon',\n textTemplateKeyTooltip: 'Op bases van deze sjabloon wordt de text-template gegenereerd',\n processVariableName: 'Procesvariabelenaam',\n processVariableNameTooltip: 'Het resultaat wordt opgeslagen in een procesvariabele met deze naam',\n },\n en: {\n title: 'Text Templates',\n 'generate-text-file': 'Generate Text File',\n description: 'Create text-template templates with Freemarker.',\n configurationTitle: 'Configuration Name',\n configurationTitleTooltip:\n 'The name of the current plug-in configuration. The configuration can be found under this name in the rest of the application.',\n generateTextFileDescription:\n 'This action generates the content of an text-template and saves the result in a temporary file. The file ID is stored in a Process Variable.',\n textTemplateKey: 'Text Template',\n textTemplateKeyTooltip: 'The text-template will be generated based on this template.',\n processVariableName: 'Process Variable Name',\n processVariableNameTooltip: 'The result will be stored in a process variable with this name.',\n },\n de: {\n title: 'Text-Vorlagen',\n 'generate-text-file': 'Text-Datei generieren',\n description: 'Erstellen Sie Text-Vorlagen mit Freemarker.',\n configurationTitle: 'Konfigurationsname',\n configurationTitleTooltip:\n 'Der Name der aktuellen Plug-in-Konfiguration. Unter diesem Namen kann die Konfiguration im Rest der Anwendung gefunden werden.',\n generateTextFileDescription:\n 'Diese Aktion generiert den Inhalt einer Text und speichert das Ergebnis in einer temporären Datei. Die Datei-ID wird in einer Prozessvariablen gespeichert.',\n textTemplateKey: 'Text-Vorlage',\n textTemplateKeyTooltip: 'Die Text wird basierend auf dieser Vorlage generiert.',\n processVariableName: 'Prozessvariablenname',\n processVariableNameTooltip: 'Das Ergebnis wird in einer Prozessvariablen mit diesem Namen gespeichert.',\n },\n },\n};\n\nexport {textTemplatePluginSpecification};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 mail-template\n */\n\nexport * from './lib/plugins/mail-template/models';\nexport * from './lib/plugins/mail-template/mail-template-plugin-module';\nexport * from './lib/plugins/mail-template/mail-template-plugin.specification';\nexport * from './lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component';\nexport * from './lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component';\nexport * from './lib/plugins/mail-template/components/mail-template-add-edit-modal/mail-template-add-edit-modal.component';\nexport * from './lib/plugins/mail-template/components/mail-template-configuration/mail-template-configuration.component';\nexport * from './lib/plugins/mail-template/components/mail-template-delete-modal/mail-template-delete-modal.component';\nexport * from './lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component';\nexport * from './lib/plugins/mail-template/components/mail-template-list/mail-template-list.component';\n\n/*\n * Public API Surface of text-template\n */\n\nexport * from './lib/plugins/text-template/models';\nexport * from './lib/plugins/text-template/text-template-plugin-module';\nexport * from './lib/plugins/text-template/text-template-plugin.specification';\nexport * from './lib/plugins/text-template/components/generate-text-file/generate-text-file.component';\nexport * from './lib/plugins/text-template/components/text-template-add-edit-modal/text-template-add-edit-modal.component';\nexport * from './lib/plugins/text-template/components/text-template-configuration/text-template-configuration.component';\nexport * from './lib/plugins/text-template/components/text-template-delete-modal/text-template-delete-modal.component';\nexport * from './lib/plugins/text-template/components/text-template-editor/text-template-editor.component';\nexport * from './lib/plugins/text-template/components/text-template-list/text-template-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3","i3.FreemarkerTemplateManagementService","i5","i4","i1.FreemarkerTemplateManagementService","i6","i7","routes","TemplateManagementRoutingModule","ValtimoInputModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-plugins-freemarker.mjs","sources":["../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/models/config.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/models/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-configuration/mail-template-configuration.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-configuration/mail-template-configuration.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/services/freemarker-template-management.service.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/services/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-delete-modal/mail-template-delete-modal.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-delete-modal/mail-template-delete-modal.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-add-edit-modal/mail-template-add-edit-modal.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-add-edit-modal/mail-template-add-edit-modal.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-list/mail-template-list.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-list/mail-template-list.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/mail-template-management-routing.module.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/mail-template-plugin-module.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/assets/mail-template-plugin-logo.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/assets/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/mail-template/mail-template-plugin.specification.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/models/config.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/models/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-configuration/text-template-configuration.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-configuration/text-template-configuration.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-delete-modal/text-template-delete-modal.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-delete-modal/text-template-delete-modal.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-add-edit-modal/text-template-add-edit-modal.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-add-edit-modal/text-template-add-edit-modal.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-list/text-template-list.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-list/text-template-list.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-editor/text-template-editor.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/text-template-editor/text-template-editor.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/text-template-management-routing.module.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/generate-text-file/generate-text-file.component.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/components/generate-text-file/generate-text-file.component.html","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/text-template-plugin-module.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/assets/text-template-plugin-logo.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/assets/index.ts","../../../../projects/valtimo-plugins/freemarker/src/lib/plugins/text-template/text-template-plugin.specification.ts","../../../../projects/valtimo-plugins/freemarker/src/public_api.ts","../../../../projects/valtimo-plugins/freemarker/src/valtimo-plugins-freemarker.ts"],"sourcesContent":["/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {PluginConfigurationData} from '@valtimo/plugin';\n\ninterface MailTemplateConfig extends PluginConfigurationData {\n}\n\ninterface GenerateMailContentConfig {\n mailTemplateKey: string;\n processVariableName: string;\n}\n\ninterface GenerateMailFileConfig {\n mailTemplateKey: string;\n processVariableName: string;\n}\n\nexport {MailTemplateConfig, GenerateMailContentConfig, GenerateMailFileConfig};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 './config';\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {PluginConfigurationComponent, PluginConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, take} from 'rxjs';\nimport {MailTemplateConfig} from '../../models';\n\n@Component({\n standalone: false,\n selector: 'valtimo-mail-template-configuration',\n templateUrl: './mail-template-configuration.component.html',\n})\nexport class MailTemplateConfigurationComponent\n implements PluginConfigurationComponent, OnInit, OnDestroy\n{\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() prefillConfiguration$!: Observable<MailTemplateConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> = new EventEmitter<PluginConfigurationData>();\n\n constructor(\n ) {}\n\n private saveSubscription!: Subscription;\n private readonly formValue$ = new BehaviorSubject<MailTemplateConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n\n ngOnInit(): void {\n this.openSaveSubscription();\n }\n\n ngOnDestroy() {\n this.saveSubscription?.unsubscribe();\n }\n\n formValueChange(formValue: MailTemplateConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: MailTemplateConfig): void {\n const valid = !!(formValue.configurationTitle);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n this.saveSubscription = this.save$?.subscribe(_ => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n this.injectCaseTab();\n }\n });\n });\n }\n\n private injectCaseTab() {\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n [widthPx]=\"350\"\n placeholder=\"Mail Template Plugin\"\n >\n </v-input>\n</v-form>\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 {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {map, Observable} from 'rxjs';\nimport {DeleteTemplatesRequest, Template, TemplateListItem, TemplateResponse, TemplateType, UpdateTemplateRequest,} from '../models';\nimport {ConfigService, InterceptorSkip, Page} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FreemarkerTemplateManagementService {\n\n private readonly valtimoEndpointUri: string;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {\n this.valtimoEndpointUri = `${this.configService.config.valtimoApi.endpointUri}management/`;\n }\n\n public getAllMailTemplates(caseDefinitionKey?: string, caseDefinitionVersionTag?: string): Observable<Page<TemplateListItem>> {\n return this.getTemplates(caseDefinitionKey, caseDefinitionVersionTag, 'mail', undefined, 0, 10000);\n }\n\n public getAllTextTemplates(caseDefinitionKey?: string, caseDefinitionVersionTag?: string): Observable<Page<TemplateListItem>> {\n return this.getTemplates(caseDefinitionKey, caseDefinitionVersionTag, 'text', undefined, 0, 10000);\n }\n\n public getTemplates(\n caseDefinitionKey?: string,\n caseDefinitionVersionTag?: string,\n templateType?: TemplateType,\n templateKey?: string,\n page?: number,\n pageSize?: number,\n ): Observable<Page<TemplateListItem>> {\n const params = {\n caseDefinitionKey,\n caseDefinitionVersionTag,\n templateType,\n templateKey,\n page,\n size: pageSize\n };\n Object.keys(params).forEach(key => {\n if (params[key] == undefined) {\n delete params[key];\n }\n });\n return this.http.get<Page<TemplateListItem>>(\n `${this.valtimoEndpointUri}v1/template`,\n {params}\n );\n }\n\n public getMailTemplate(caseDefinitionKey: string, caseDefinitionVersionTag: string, key: string): Observable<TemplateResponse> {\n return this.getTemplate(caseDefinitionKey, caseDefinitionVersionTag, 'mail', key);\n }\n\n public getTextTemplate(caseDefinitionKey: string, caseDefinitionVersionTag: string, key: string): Observable<TemplateResponse> {\n return this.getTemplate(caseDefinitionKey, caseDefinitionVersionTag, 'text', key);\n }\n\n public getTemplate(caseDefinitionKey: string, caseDefinitionVersionTag: string, templateType: TemplateType, key: string): Observable<TemplateResponse> {\n return this.http.get<TemplateResponse>(\n `${this.valtimoEndpointUri}v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/template-type/${templateType}/template/${key}`\n );\n }\n\n public addTemplate(template: Template): Observable<TemplateResponse> {\n return this.http.post<TemplateResponse>(`${this.valtimoEndpointUri}v1/template`, template);\n }\n\n public deleteTemplates(request: DeleteTemplatesRequest): Observable<null> {\n return this.http.delete<null>(`${this.valtimoEndpointUri}v1/template`, {body: request});\n }\n\n public updateTemplate(template: UpdateTemplateRequest): Observable<TemplateResponse> {\n return this.http.put<TemplateResponse>(`${this.valtimoEndpointUri}v1/template`, template);\n }\n\n public isFinal(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<boolean> {\n return this.http\n .get<any>(\n `${this.valtimoEndpointUri}v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}`,\n {\n headers: new HttpHeaders().set(InterceptorSkip, '403'),\n }\n )\n .pipe(map(caseDefinition => caseDefinition.final));\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 './freemarker-template-management.service';\n\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\n\nimport {FunctionConfigurationComponent, FunctionConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription, switchMap, take, tap,} from 'rxjs';\nimport {GenerateMailContentConfig} from '../../models';\nimport {SelectItem} from '@valtimo/components';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {CaseManagementParams, ManagementContext} from '@valtimo/shared';\n\n@Component({\n standalone: false,\n selector: 'valtimo-generate-mail-content-configuration',\n templateUrl: './generate-mail-content.component.html',\n})\nexport class GenerateMailContentComponent\n implements FunctionConfigurationComponent, OnInit, OnDestroy {\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() context$: Observable<[ManagementContext, CaseManagementParams]>;\n @Input() prefillConfiguration$!: Observable<GenerateMailContentConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<FunctionConfigurationData> = new EventEmitter<FunctionConfigurationData>();\n\n private readonly formValue$ = new BehaviorSubject<GenerateMailContentConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n private _subscriptions = new Subscription();\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly mailTemplateItems$ = new BehaviorSubject<Array<SelectItem>>([]);\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService\n ) {\n }\n\n ngOnInit(): void {\n this.openSaveSubscription();\n this.initContextHandling();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n formValueChange(formValue: GenerateMailContentConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: GenerateMailContentConfig): void {\n const valid = !!(formValue.mailTemplateKey && formValue.processVariableName);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n const saveSubscription = this.save$?.subscribe(save => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n }\n });\n });\n this._subscriptions.add(saveSubscription);\n }\n\n private initContextHandling(): void {\n if (!this.context$) {\n return;\n }\n\n const contextSub = this.context$.pipe(\n switchMap(([managementContext, caseDefinitionId]) => {\n if (managementContext == 'case') {\n return this.templateService.getAllMailTemplates(\n caseDefinitionId?.caseDefinitionKey,\n caseDefinitionId?.caseDefinitionVersionTag,\n );\n } else {\n console.error('Freemarker plugin does not support global templates')\n return of(null);\n }\n }\n ),\n map(results =>\n results?.content.map(template => ({\n id: template.key,\n text: template.key,\n })) || []\n ),\n tap(() => this.loading$.next(false))\n )\n .subscribe(results => this.mailTemplateItems$.next(results));\n\n this._subscriptions.add(contextSub);\n }\n\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n mailTemplateItems: mailTemplateItems$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'generateMailContentDescription' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-select\n [items]=\"obs.mailTemplateItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"mailTemplateKey\"\n [title]=\"'mailTemplateKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.mailTemplateKey\"\n [required]=\"true\"\n [loading]=\"!obs.mailTemplateItems\"\n [tooltip]=\"'mailTemplateKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"processVariableName\"\n [title]=\"'processVariableName' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariableName || 'content'\"\n [disabled]=\"obs.disabled\"\n [tooltip]=\"'processVariableNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n </v-form>\n </ng-container>\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-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {FunctionConfigurationComponent, FunctionConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription, switchMap, take, tap} from 'rxjs';\nimport {GenerateMailFileConfig} from '../../models';\nimport {SelectItem} from '@valtimo/components';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {CaseManagementParams, ManagementContext} from '@valtimo/shared';\n\n@Component({\n standalone: false,\n selector: 'valtimo-generate-mail-file-configuration',\n templateUrl: './generate-mail-file.component.html',\n})\nexport class GenerateMailFileComponent\n implements FunctionConfigurationComponent, OnInit, OnDestroy {\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() context$: Observable<[ManagementContext, CaseManagementParams]>;\n @Input() prefillConfiguration$!: Observable<GenerateMailFileConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<FunctionConfigurationData> = new EventEmitter<FunctionConfigurationData>();\n\n private readonly formValue$ = new BehaviorSubject<GenerateMailFileConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n private _subscriptions = new Subscription();\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly mailTemplateItems$ = new BehaviorSubject<Array<SelectItem>>([]);\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService\n ) {\n }\n\n ngOnInit(): void {\n this.openSaveSubscription();\n this.initContextHandling();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n formValueChange(formValue: GenerateMailFileConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: GenerateMailFileConfig): void {\n const valid = !!(formValue.mailTemplateKey && formValue.processVariableName);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n const saveSubscription = this.save$?.subscribe(save => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n }\n });\n });\n this._subscriptions.add(saveSubscription);\n }\n\n private initContextHandling(): void {\n if (!this.context$) {\n return;\n }\n\n const contextSub = this.context$.pipe(\n switchMap(([managementContext, caseDefinitionId]) => {\n if (managementContext == 'case') {\n return this.templateService.getAllMailTemplates(\n caseDefinitionId?.caseDefinitionKey,\n caseDefinitionId?.caseDefinitionVersionTag,\n );\n } else {\n console.error('Freemarker plugin does not support global templates')\n return of(null);\n }\n }\n ),\n map(results =>\n results?.content.map(template => ({\n id: template.key,\n text: template.key,\n })) || []\n ),\n tap(() => this.loading$.next(false))\n )\n .subscribe(results => this.mailTemplateItems$.next(results));\n\n this._subscriptions.add(contextSub);\n }\n\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n mailTemplateItems: mailTemplateItems$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'generateMailFileDescription' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-select\n [items]=\"obs.mailTemplateItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"mailTemplateKey\"\n [title]=\"'mailTemplateKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.mailTemplateKey\"\n [required]=\"true\"\n [loading]=\"!obs.mailTemplateItems\"\n [tooltip]=\"'mailTemplateKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"processVariableName\"\n [title]=\"'processVariableName' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariableName || 'contentId'\"\n [disabled]=\"obs.disabled\"\n [tooltip]=\"'processVariableNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n </v-form>\n </ng-container>\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {ConfirmationModalModule} from '@valtimo/components';\n\n@Component({\n standalone: true,\n selector: 'valtimo-mail-template-delete-modal',\n templateUrl: './mail-template-delete-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ConfirmationModalModule\n ]\n})\nexport class MailTemplateDeleteModalComponent {\n @Input() deleteRowKeys: Array<string>;\n @Input() showDeleteModal$: Observable<boolean>;\n @Output() deleteEvent = new EventEmitter<Array<string>>();\n\n public onDelete(templates: Array<string>): void {\n this.deleteEvent.emit(templates);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"template.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKeys\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output,} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TemplateMetadataModal} from '../../../../models';\nimport {CARBON_CONSTANTS, KeyGeneratorService} from '@valtimo/components';\nimport {ButtonModule, InputModule, ModalModule} from 'carbon-components-angular';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'valtimo-mail-template-add-edit-modal',\n templateUrl: './mail-template-add-edit-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n ButtonModule,\n TranslateModule,\n ModalModule,\n ReactiveFormsModule,\n InputModule\n ]\n})\nexport class MailTemplateAddEditModalComponent implements OnInit {\n @Input() open = false;\n @Input() type: TemplateMetadataModal = 'add';\n\n @Input() set defaultKeyValue(value: string) {\n this._defaultKeyValue = value;\n this.setDefaultKeyValue(value);\n }\n\n @Output() closeEvent = new EventEmitter<{ key: string; metadata?: any } | null>();\n\n public form = this.fb.group({\n key: this.fb.control('', Validators.required),\n });\n\n private _defaultKeyValue!: string;\n\n public get key() {\n const key = this.form?.get('key');\n if (!key?.value) {\n return key;\n }\n key.setValue(this.keyGeneratorService.getUniqueKey(key.value, []));\n return key;\n }\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly keyGeneratorService: KeyGeneratorService,\n ) {\n }\n\n public ngOnInit(): void {\n }\n\n public onCancel(): void {\n this.closeEvent.emit(null);\n this.resetForm();\n }\n\n public onConfirm(): void {\n if (!this.key) {\n return;\n }\n\n this.closeEvent.emit({key: this.key.value});\n this.resetForm();\n }\n\n private setDefaultKeyValue(value: string) {\n this.key.setValue(value);\n }\n\n private resetForm(): void {\n setTimeout(() => {\n this.form.reset();\n if (this.type === 'edit') {\n this.setDefaultKeyValue(this._defaultKeyValue);\n }\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n isAdd: type === 'add'\n } as vars\"\n [open]=\"open\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{\n vars.isAdd\n ? 'Add'\n : 'Edit'\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'Key' }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'key' }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ vars.isAdd ? ('interface.create' | translate) : ('interface.save' | translate) }}\n </button>\n </cds-modal-footer>\n</cds-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 {ChangeDetectionStrategy, Component, OnInit, ViewChild,} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, startWith, switchMap, take, tap} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {CarbonListComponent, CarbonListModule, ColumnConfig, ViewType} from '@valtimo/components';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {TemplateListItem} from '../../../../models';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {MailTemplateDeleteModalComponent} from '../mail-template-delete-modal/mail-template-delete-modal.component';\nimport {MailTemplateAddEditModalComponent} from '../mail-template-add-edit-modal/mail-template-add-edit-modal.component';\nimport {CaseManagementParams, EnvironmentService, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {ButtonModule} from 'carbon-components-angular';\n\n@Component({\n standalone: true,\n templateUrl: './mail-template-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n ButtonModule,\n TranslateModule,\n MailTemplateDeleteModalComponent,\n MailTemplateAddEditModalComponent\n ]\n})\nexport class MailTemplateListComponent implements OnInit {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n public fields: ColumnConfig[] = [\n {\n viewType: ViewType.TEXT,\n key: 'key',\n label: 'Key',\n },\n ];\n\n private readonly _caseDefinitionId$: Observable<CaseManagementParams> = getCaseManagementRouteParams(this.route).pipe(\n filter((params: CaseManagementParams | undefined) => !!params?.caseDefinitionKey),\n );\n\n public readonly readOnly$: Observable<boolean> = this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.templateService.isFinal(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)\n ]).pipe(\n map(([canUpdateGlobal, isFinalCase]) => !canUpdateGlobal || isFinalCase),\n startWith(true)\n )\n )\n );\n\n public readonly templates$ = new BehaviorSubject<TemplateListItem[] | null>(null);\n public readonly showAddModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly selectedRowKeys$ = new BehaviorSubject<Array<string>>([]);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService,\n private readonly router: Router,\n private readonly route: ActivatedRoute,\n private readonly environmentService: EnvironmentService,\n ) {\n }\n\n public ngOnInit(): void {\n this.reloadTemplateList();\n }\n\n public openAddModal(): void {\n this.showAddModal$.next(true);\n }\n\n public onAdd(data?: any): void {\n if (!data) {\n this.showAddModal$.next(false);\n return;\n }\n\n this._caseDefinitionId$.pipe(\n take(1),\n switchMap(caseDefinitionId => this.templateService.addTemplate({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'mail', ...data\n }))\n ).subscribe(template => {\n this.showAddModal$.next(false);\n this.gotoMailTemplateEditor(template.caseDefinitionKey, template.caseDefinitionVersionTag, template.key);\n });\n }\n\n public showDeleteModal(): void {\n this.setSelectedTemplateKeys();\n this.showDeleteModal$.next(true);\n }\n\n public onDelete(templates: Array<string>): void {\n this.loading$.next(true);\n this._caseDefinitionId$.pipe(\n take(1),\n switchMap(caseDefinitionId => this.templateService.deleteTemplates({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'mail',\n templates\n })),\n ).subscribe(_ => {\n this.reloadTemplateList();\n });\n }\n\n public onRowClick(template: TemplateListItem): void {\n this._caseDefinitionId$.pipe(take(1)).subscribe(caseDefinitionId =>\n this.gotoMailTemplateEditor(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag, template.key)\n );\n }\n\n private gotoMailTemplateEditor(caseDefinitionKey: string, caseDefinitionVersionTag: string, key: string): void {\n this.router.navigate([`/case-management/case/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/mail-template/${key}`]);\n }\n\n private reloadTemplateList(): void {\n this.loading$.next(true);\n this._caseDefinitionId$.pipe(\n switchMap((caseDefinitionId) => this.templateService.getAllMailTemplates(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)),\n map(templatePage => templatePage.content),\n take(1)\n ).subscribe(templateListItems => {\n this.templates$.next(templateListItems);\n this.loading$.next(false);\n });\n }\n\n private setSelectedTemplateKeys(): void {\n this.selectedRowKeys$.next(this.carbonList.selectedItems.map((template: TemplateListItem) => template.key));\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n [header]=\"false\"\n [items]=\"templates$ | async\"\n [fields]=\"fields\"\n [loading]=\"loading$ | async\"\n [showSelectionColumn]=\"!(readOnly$ | async)\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <ng-container header> {{ 'Title' }}</ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTemplateButton\"></ng-container>\n </div>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteModal()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTemplateButton\"\n description=\"{{ 'Come back later.' }}\"\n title=\"{{ 'No templates found' }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-mail-template-add-edit-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-mail-template-add-edit-modal>\n\n<ng-container *ngIf=\"{selectedRowKeys: selectedRowKeys$ | async} as obs\">\n <valtimo-mail-template-delete-modal\n [deleteRowKeys]=\"obs.selectedRowKeys\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-mail-template-delete-modal>\n</ng-container>\n\n<ng-template #addTemplateButton>\n <button cdsButton=\"primary\"\n [disabled]=\"readOnly$ | async\"\n (click)=\"openAddModal()\">\n {{ 'Add' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, startWith, switchMap, take, tap} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {\n BreadcrumbService,\n CarbonListModule,\n EditorModel,\n EditorModule,\n PageTitleService,\n RenderInPageHeaderDirective,\n} from '@valtimo/components';\nimport {ButtonModule, DialogModule, IconModule, NotificationService, TabsModule} from 'carbon-components-angular';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {TemplateResponse} from '../../../../models';\nimport {CaseManagementParams, EnvironmentService, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {CommonModule} from '@angular/common';\nimport {MailTemplateDeleteModalComponent} from '../mail-template-delete-modal/mail-template-delete-modal.component';\n\n@Component({\n standalone: true,\n templateUrl: './mail-template-editor.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./mail-template-editor.component.scss'],\n providers: [NotificationService],\n imports: [\n CommonModule,\n TranslateModule,\n TabsModule,\n DialogModule,\n MailTemplateDeleteModalComponent,\n CarbonListModule,\n ButtonModule,\n EditorModule,\n RenderInPageHeaderDirective,\n IconModule,\n ]\n})\nexport class MailTemplateEditorComponent implements OnInit, AfterViewInit, OnDestroy {\n public readonly model$ = new BehaviorSubject<EditorModel | null>(null);\n public readonly template$ = new BehaviorSubject<TemplateResponse | null>(null);\n public readonly saveDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly editorDisabled$ = new BehaviorSubject<boolean>(false);\n public readonly moreDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly updatedModelValue$ = new BehaviorSubject<string>('');\n\n private readonly _caseDefinitionId$: Observable<CaseManagementParams> = getCaseManagementRouteParams(this.route).pipe(\n filter((params: CaseManagementParams | undefined) => !!params?.caseDefinitionKey),\n );\n\n public readonly templateKey$: Observable<string> = combineLatest([this.route.params, this.route.parent.params]).pipe(\n map(([params, parentParams]) => params?.templateKey || parentParams?.templateKey),\n filter(templateKey => !!templateKey)\n );\n\n public readonly readOnly$: Observable<boolean> = this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.templateService.isFinal(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)\n ]).pipe(\n map(([canUpdateGlobal, isFinalCase]) => !canUpdateGlobal || isFinalCase),\n startWith(true)\n )\n )\n );\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService,\n private readonly route: ActivatedRoute,\n private readonly pageTitleService: PageTitleService,\n private readonly router: Router,\n private readonly notificationService: NotificationService,\n private readonly translateService: TranslateService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly environmentService: EnvironmentService,\n ) {\n }\n\n public ngOnInit(): void {\n this.loadTemplate();\n }\n\n public ngAfterViewInit(): void {\n this.initBreadcrumb();\n }\n\n public ngOnDestroy(): void {\n this.pageTitleService.enableReset();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public onValid(valid: boolean): void {\n this.saveDisabled$.next(valid === false);\n }\n\n public onValueChange(value: string): void {\n this.updatedModelValue$.next(value);\n }\n\n public updateTemplate(): void {\n this.disableEditor();\n this.disableSave();\n this.disableMore();\n\n combineLatest([this.updatedModelValue$, this._caseDefinitionId$, this.templateKey$]).pipe(\n switchMap(([updatedModelValue, caseDefinitionId, templateKey]) =>\n this.templateService.updateTemplate(\n {\n key: templateKey,\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'mail',\n content: updatedModelValue,\n }\n )\n ),\n take(1)\n ).subscribe({\n next: result => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n this.showSuccessMessage(result.key);\n this.setModel(result.content);\n this.template$.next(result);\n },\n error: () => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n },\n });\n }\n\n public onDelete(templates: Array<string>): void {\n this.disableEditor();\n this.disableSave();\n this.disableMore();\n\n this._caseDefinitionId$.pipe(take(1)).subscribe(caseDefinitionId =>\n this.templateService.deleteTemplates({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'mail',\n templates\n }).pipe(take(1)).subscribe(_ =>\n this.router.navigate([`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/mail-template`])\n )\n );\n }\n\n public showDeleteModal(): void {\n this.showDeleteModal$.next(true);\n }\n\n private loadTemplate(): void {\n combineLatest([this._caseDefinitionId$, this.templateKey$]).pipe(\n tap(([_, key]) => {\n this.pageTitleService.setCustomPageTitle(`Mail template: ${key}`, true);\n }),\n switchMap(([caseDefinitionId, key]) => this.templateService.getMailTemplate(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag, key)),\n take(1),\n ).subscribe(result => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n this.setModel(result.content);\n this.refreshViewer(result.content);\n this.template$.next(result);\n });\n }\n\n private setModel(content: string): void {\n this.model$.next({\n value: content,\n language: 'freemarker2',\n });\n this.updatedModelValue$.next(content);\n }\n\n private disableMore(): void {\n this.moreDisabled$.next(true);\n }\n\n private enableMore(): void {\n this.moreDisabled$.next(false);\n }\n\n private disableSave(): void {\n this.saveDisabled$.next(true);\n }\n\n private enableSave(): void {\n this.saveDisabled$.next(false);\n }\n\n private disableEditor(): void {\n this.editorDisabled$.next(true);\n }\n\n private enableEditor(): void {\n this.editorDisabled$.next(false);\n }\n\n public onSelectedTabViewer(): void {\n this.updatedModelValue$.pipe(take(1)).subscribe(html =>\n this.refreshViewer(html)\n );\n }\n\n private refreshViewer(html: string): void {\n setTimeout(() => {\n const htmlViewer = document.getElementById('html-viewer-iframe') as HTMLIFrameElement;\n if (htmlViewer) {\n htmlViewer.srcdoc = html;\n }\n }, 100);\n }\n\n private initBreadcrumb(): void {\n this._caseDefinitionId$.subscribe(caseDefinitionId => {\n this.breadcrumbService.setThirdBreadcrumb({\n route: [`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}`],\n content: `${caseDefinitionId.caseDefinitionKey}:${caseDefinitionId.caseDefinitionVersionTag}`,\n href: `/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}`,\n });\n this.breadcrumbService.setFourthBreadcrumb({\n route: [`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/mail-template`],\n content: 'Mail template',\n href: `/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/mail-template`,\n });\n });\n }\n\n private showSuccessMessage(key: string): void {\n this.notificationService.showToast({\n caption: this.translateService.instant(`${key} was saved successfully`, {\n key,\n }),\n type: 'success',\n duration: 4000,\n showClose: true,\n title: this.translateService.instant('Saved successfully'),\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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 model: model$ | async,\n updatedModelValue: updatedModelValue$ | async,\n template: template$ | async,\n } as obs\">\n\n <div class=\"template-explanation\">\n Mail templates use <a target=\"_blank\" href=\"https://www.w3schools.com/html/html_intro.asp\">HTML</a> for the mail\n layout. <a target=\"_blank\" href=\"https://freemarker.apache.org/docs/dgui_quickstart_basics.html\">FreeMarker</a>\n can be used to create placeholders inside the HTML. The data-model for FreeMarker is based upon <a\n target=\"_blank\" href=\"https://docs.valtimo.nl/reference/modules/value-resolver\">Valtimo value-resolvers</a>\n with a slightly different notation. For example: ${doc.firstName}. Retrieves\n the `firstName` from the case.\n </div>\n\n <cds-tabs type=\"contained\">\n <cds-tab [active]=\"true\" [heading]=\"'Editor'\">\n <valtimo-editor\n [model]=\"obs.model\"\n [disabled]=\"(editorDisabled$ | async) || (readOnly$ | async)\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"80\"\n ></valtimo-editor>\n </cds-tab>\n <cds-tab [heading]=\"'Viewer'\" (selected)=\"onSelectedTabViewer()\">\n <iframe title=\"HTML Viewer\" id=\"html-viewer-iframe\">\n </iframe>\n </cds-tab>\n </cds-tabs>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div *ngIf=\"{\n model: model$ | async,\n moreDisabled: moreDisabled$ | async,\n template: template$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option\n [disabled]=\"obs.moreDisabled || (readOnly$ | async)\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option\n >\n </cds-overflow-menu>\n\n <button\n [disabled]=\"(saveDisabled$ | async) || (readOnly$ | async)\"\n cdsButton=\"primary\"\n size=\"md\"\n (click)=\"updateTemplate()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"{templateKey: templateKey$ | async} as obs\">\n <valtimo-mail-template-delete-modal\n [deleteRowKeys]=\"[obs.templateKey]\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-mail-template-delete-modal>\n</ng-container>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {AuthGuardService} from '@valtimo/security';\nimport {MailTemplateEditorComponent} from './components/mail-template-editor/mail-template-editor.component';\n\nconst routes: Routes = [\n {\n path: 'case-management/case/:caseDefinitionKey/version/:caseDefinitionVersionTag/mail-template/:templateKey',\n component: MailTemplateEditorComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Mail Template Editor',\n templates: [ROLE_ADMIN],\n customPageTitle: true,\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TemplateManagementRoutingModule {}\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {MailTemplateConfigurationComponent} from './components/mail-template-configuration/mail-template-configuration.component';\nimport {CommonModule} from '@angular/common';\nimport {PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {\n CarbonListModule,\n ConfirmationModalModule,\n EditorModule,\n FormModule,\n InputModule as ValtimoInputModule,\n ParagraphModule,\n RenderInPageHeaderDirective,\n SelectModule,\n} from '@valtimo/components';\nimport {GenerateMailContentComponent} from './components/generate-mail-content/generate-mail-content.component';\nimport {GenerateMailFileComponent} from './components/generate-mail-file/generate-mail-file.component';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule, TabsModule,\n}\nfrom 'carbon-components-angular';\nimport {CASE_MANAGEMENT_TAB_TOKEN} from '@valtimo/shared';\nimport {MailTemplateListComponent} from './components/mail-template-list/mail-template-list.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {TemplateManagementRoutingModule} from './mail-template-management-routing.module';\nimport {MailTemplateDeleteModalComponent} from './components/mail-template-delete-modal/mail-template-delete-modal.component';\n\n@NgModule({\n declarations: [\n MailTemplateConfigurationComponent,\n GenerateMailFileComponent,\n GenerateMailContentComponent,\n ],\n imports: [\n CommonModule,\n PluginTranslatePipeModule,\n TemplateManagementRoutingModule,\n FormModule,\n ParagraphModule,\n SelectModule,\n ConfirmationModalModule,\n TranslateModule,\n ReactiveFormsModule,\n CarbonListModule,\n EditorModule,\n ValtimoInputModule,\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule,\n RenderInPageHeaderDirective,\n TabsModule,\n MailTemplateDeleteModalComponent,\n ],\n exports: [\n MailTemplateConfigurationComponent,\n GenerateMailFileComponent,\n GenerateMailContentComponent,\n ],\n providers: [\n {\n provide: CASE_MANAGEMENT_TAB_TOKEN,\n useValue: {\n translationKey: 'mail-template',\n component: MailTemplateListComponent,\n },\n multi: true,\n }\n ]\n})\nexport class MailTemplatePluginModule {\n}\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst MAIL_TEMPLATE_PLUGIN_LOGO_BASE64 =\n 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBpZD0ic3ZnMiIgdmlld0JveD0iMCAwIDQwMCAyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTSAzNDAuMzM3IDEzNS4zMjQgTCAzNTAuNTU1IDE1MC44MTUgTCAzODQuNiA5OS4xNzYgTCAzNTAuNTU1IDQ3LjUzNSBMIDM0MC4zMzcgNjMuMDI4IEwgMzY0LjE4MSA5OS4xNzYgTCAzNDAuMzM3IDEzNS4zMjQgWiIgc3R5bGU9ImZpbGw6IHJnYigwLCA4MCwgMTc4KTsiLz4KICA8cGF0aCBkPSJNIDU1LjQwNiA2My4wMjggTCA0NS4xODggNDcuNTM1IEwgMTEuMTQzIDk5LjE3NiBMIDQ1LjE4OCAxNTAuODE1IEwgNTUuNDA2IDEzNS4zMjQgTCAzMS41NjMgOTkuMTc2IEwgNTUuNDA2IDYzLjAyOCBaIiBzdHlsZT0iZmlsbDogcmdiKDAsIDgwLCAxNzgpOyIvPgogIDxwYXRoIGQ9Ik0gOTIuNzIxIDQ3LjUzNSBMIDExMy4zNzYgNDcuNTM1IEwgMTA5LjczMiA2OC4xOTEgTCAxMzAuMzg5IDY4LjE5MSBMIDEzNC4wMzIgNDcuNTM1IEwgMTU0LjY4OSA0Ny41MzUgTCAxNTEuMDQ1IDY4LjE5MSBMIDE3MS43MDEgNjguMTkxIEwgMTY4LjA0OSA4OC44NDggTCAxNDcuMzkzIDg4Ljg0OCBMIDE0My43NTYgMTA5LjUwNCBMIDE2NC40MTIgMTA5LjUwNCBMIDE2MC43NjcgMTMwLjE2IEwgMTQwLjExMSAxMzAuMTYgTCAxMzYuNDgyIDE1MC44MTUgTCAxMTUuODI2IDE1MC44MTUgTCAxMTkuNDYzIDEzMC4xNiBMIDk4LjgwNiAxMzAuMTYgTCA5NS4yMjkgMTUwLjgxNSBMIDc0LjUxMyAxNTAuODE1IEwgNzguMTUgMTMwLjE2IEwgNTcuNDk0IDEzMC4xNiBMIDYxLjEzOCAxMDkuNTA0IEwgODEuNzk1IDEwOS41MDQgTCA4NS40MzIgODguODk5IEwgNjQuNzc1IDg4Ljg5OSBMIDY4LjQyIDY4LjE5MSBMIDg5LjA3NiA2OC4xOTEgTCA5Mi43MjEgNDcuNTM1IFogTSAxMDIuNDUxIDEwOS41MDQgTCAxMjMuMTA3IDEwOS41MDQgTCAxMjYuNzUyIDg4Ljg0OCBMIDEwNi4wOTUgODguODQ4IEwgMTAyLjQ1MSAxMDkuNTA0IFoiIHN0eWxlPSJmaWxsOiByZ2IoMCwgODAsIDE3OCk7Ii8+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMi4wMjgxNjQsIDAsIDAsIDIuMDI4MTY0LCAxNzkuMDc4MTg2LCAyNi4zMjE2NjcpIiBzdHlsZT0iIj4KICAgIDxwYXRoIGQ9Ik0gNjYuMDk3IDExLjUyOCBMIDkuMTk3IDExLjUyOCBDIDQuMTI2IDExLjUyOCAwIDE1LjY1NCAwIDIwLjcyNSBMIDAgNTMuNDQ3IEMgMCA1OC41MTggNC4xMjYgNjIuNjQ0IDkuMTk3IDYyLjY0NCBMIDY2LjA5NyA2Mi42NDQgQyA3MS4xNjggNjIuNjQ0IDc1LjI5NCA1OC41MTggNzUuMjk0IDUzLjQ0NyBMIDc1LjI5NCAyMC43MjYgQyA3NS4yOTUgMTUuNjU0IDcxLjE2OSAxMS41MjggNjYuMDk3IDExLjUyOCBaIE0gNjEuNjAzIDE3LjUyOCBMIDM3LjY0NyAzMi45NjIgTCAxMy42OTEgMTcuNTI4IEwgNjEuNjAzIDE3LjUyOCBaIE0gNjYuMDk3IDU2LjY0NSBMIDkuMTk3IDU2LjY0NSBDIDcuNDM0IDU2LjY0NSA2IDU1LjIxIDYgNTMuNDQ4IEwgNiAyMC44OTYgTCAzNS43OTYgNDAuMDU2IEMgMzUuODM2IDQwLjA4MSAzNS44NzkgNDAuMDk4IDM1LjkyIDQwLjEyMSBDIDM1Ljk2MyA0MC4xNDUgMzYuMDA3IDQwLjE2OCAzNi4wNTEgNDAuMTkgQyAzNi4yODIgNDAuMzA5IDM2LjUyIDQwLjQwNSAzNi43NjMgNDAuNDY4IEMgMzYuNzg4IDQwLjQ3NSAzNi44MTMgNDAuNDc4IDM2LjgzOCA0MC40ODQgQyAzNy4xMDUgNDAuNTQ3IDM3LjM3NSA0MC41ODYgMzcuNjQ1IDQwLjU4NiBDIDM3LjY0NiA0MC41ODYgMzcuNjQ3IDQwLjU4NiAzNy42NDcgNDAuNTg2IEMgMzcuNjQ5IDQwLjU4NiAzNy42NSA0MC41ODYgMzcuNjUxIDQwLjU4NiBDIDM3LjkyMSA0MC41ODYgMzguMTkxIDQwLjU0OCAzOC40NTggNDAuNDg0IEMgMzguNDgzIDQwLjQ3OCAzOC41MDggNDAuNDc1IDM4LjUzMyA0MC40NjggQyAzOC43NzYgNDAuNDA1IDM5LjAxMyA0MC4zMDkgMzkuMjQ1IDQwLjE5IEMgMzkuMjg5IDQwLjE2OCAzOS4zMzMgNDAuMTQ1IDM5LjM3NiA0MC4xMjEgQyAzOS40MTcgNDAuMDk4IDM5LjQ2IDQwLjA4MSAzOS41IDQwLjA1NiBMIDY5LjI5NiAyMC44OTYgTCA2OS4yOTYgNTMuNDQ3IEMgNjkuMjk1IDU1LjIxIDY3Ljg2IDU2LjY0NSA2Ni4wOTcgNTYuNjQ1IFoiLz4KICA8L2c+Cjwvc3ZnPg==';\n\nexport {MAIL_TEMPLATE_PLUGIN_LOGO_BASE64};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 './mail-template-plugin-logo';\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {PluginSpecification} from '@valtimo/plugin';\nimport {MailTemplateConfigurationComponent} from './components/mail-template-configuration/mail-template-configuration.component';\nimport {MAIL_TEMPLATE_PLUGIN_LOGO_BASE64} from './assets';\nimport {GenerateMailContentComponent} from './components/generate-mail-content/generate-mail-content.component';\nimport {GenerateMailFileComponent} from './components/generate-mail-file/generate-mail-file.component';\n\nconst mailTemplatePluginSpecification: PluginSpecification = {\n pluginId: 'mail-template',\n pluginConfigurationComponent: MailTemplateConfigurationComponent,\n pluginLogoBase64: MAIL_TEMPLATE_PLUGIN_LOGO_BASE64,\n functionConfigurationComponents: {\n 'generate-mail-file': GenerateMailFileComponent,\n 'generate-mail-content': GenerateMailContentComponent,\n },\n pluginTranslations: {\n nl: {\n title: 'Mail sjablonen',\n 'generate-mail-file': 'Genereer Mailbestand',\n 'generate-mail-content': 'Genereer Mailinhoud',\n description: 'Maak Mail sjablonen met Freemarker.',\n configurationTitle: 'Configuratienaam',\n configurationTitleTooltip:\n 'De naam van de huidige plug-in configuratie. Onder deze naam kan de configuratie worden gevonden in de rest van de applicatie.',\n generateMailContentDescription:\n 'Deze actie genereert de inhoud van een mail op basis van een sjabloon. De mail tekst wordt opgeslagen in een Proces Variabele.',\n generateMailFileDescription:\n 'Deze actie genereert de inhoud van een mail en slaat het resultaat op in een tijdelijk bestand. Het ID van het bestand wordt opgeslagen in een Proces Variabele.',\n mailTemplateKey: 'Mail sjabloon',\n mailTemplateKeyTooltip: 'Op bases van deze sjabloon wordt de mail gegenereerd',\n processVariableName: 'Procesvariabelenaam',\n processVariableNameTooltip: 'Het resultaat wordt opgeslagen in een procesvariabele met deze naam',\n },\n en: {\n title: 'Mail Templates',\n 'generate-mail-file': 'Generate Mail File',\n 'generate-mail-content': 'Generate Mail Content',\n description: 'Create mail templates with Freemarker.',\n configurationTitle: 'Configuration Name',\n configurationTitleTooltip:\n 'The name of the current plug-in configuration. The configuration can be found under this name in the rest of the application.',\n generateMailContentDescription:\n 'This action generates the content of an mail based on a template. The mail text is stored in a Process Variable.',\n generateMailFileDescription:\n 'This action generates the content of an mail and saves the result in a temporary file. The file ID is stored in a Process Variable.',\n mailTemplateKey: 'Mail Template',\n mailTemplateKeyTooltip: 'The mail will be generated based on this template.',\n processVariableName: 'Process Variable Name',\n processVariableNameTooltip: 'The result will be stored in a process variable with this name.',\n },\n de: {\n title: 'Mail-Vorlagen',\n 'generate-mail-file': 'Mail-Datei generieren',\n 'generate-mail-content': 'Mail-Inhalt generieren',\n description: 'Erstellen Sie Mail-Vorlagen mit Freemarker.',\n configurationTitle: 'Konfigurationsname',\n configurationTitleTooltip:\n 'Der Name der aktuellen Plug-in-Konfiguration. Unter diesem Namen kann die Konfiguration im Rest der Anwendung gefunden werden.',\n generateMailContentDescription:\n 'Diese Aktion generiert den Inhalt einer Mail basierend auf einer Vorlage. Der Mail-Text wird in einer Prozessvariablen gespeichert.',\n generateMailFileDescription:\n 'Diese Aktion generiert den Inhalt einer Mail und speichert das Ergebnis in einer temporären Datei. Die Datei-ID wird in einer Prozessvariablen gespeichert.',\n mailTemplateKey: 'Mail-Vorlage',\n mailTemplateKeyTooltip: 'Die Mail wird basierend auf dieser Vorlage generiert.',\n processVariableName: 'Prozessvariablenname',\n processVariableNameTooltip: 'Das Ergebnis wird in einer Prozessvariablen mit diesem Namen gespeichert.',\n },\n },\n};\n\nexport {mailTemplatePluginSpecification};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {PluginConfigurationData} from '@valtimo/plugin';\n\ninterface TextTemplateConfig extends PluginConfigurationData {\n}\n\ninterface GenerateTextContentConfig {\n textTemplateKey: string;\n processVariableName: string;\n}\n\ninterface GenerateTextFileConfig {\n textTemplateKey: string;\n processVariableName: string;\n}\n\nexport {TextTemplateConfig, GenerateTextContentConfig, GenerateTextFileConfig};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 './config';\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {PluginConfigurationComponent, PluginConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, take} from 'rxjs';\nimport {TextTemplateConfig} from '../../models';\n\n@Component({\n standalone: false,\n selector: 'valtimo-text-template-configuration',\n templateUrl: './text-template-configuration.component.html',\n})\nexport class TextTemplateConfigurationComponent\n implements PluginConfigurationComponent, OnInit, OnDestroy\n{\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() prefillConfiguration$!: Observable<TextTemplateConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> = new EventEmitter<PluginConfigurationData>();\n\n constructor(\n ) {}\n\n private saveSubscription!: Subscription;\n private readonly formValue$ = new BehaviorSubject<TextTemplateConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n\n ngOnInit(): void {\n this.openSaveSubscription();\n }\n\n ngOnDestroy() {\n this.saveSubscription?.unsubscribe();\n }\n\n formValueChange(formValue: TextTemplateConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: TextTemplateConfig): void {\n const valid = !!(formValue.configurationTitle);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n this.saveSubscription = this.save$?.subscribe(_ => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n this.injectCaseTab();\n }\n });\n });\n }\n\n private injectCaseTab() {\n }\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n [widthPx]=\"350\"\n placeholder=\"Text Template Plugin\"\n >\n </v-input>\n</v-form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {ConfirmationModalModule} from '@valtimo/components';\n\n@Component({\n standalone: true,\n selector: 'valtimo-text-template-delete-modal',\n templateUrl: './text-template-delete-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ConfirmationModalModule\n ]\n})\nexport class TextTemplateDeleteModalComponent {\n @Input() deleteRowKeys: Array<string>;\n @Input() showDeleteModal$: Observable<boolean>;\n @Output() deleteEvent = new EventEmitter<Array<string>>();\n\n public onDelete(templates: Array<string>): void {\n this.deleteEvent.emit(templates);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"template.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKeys\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output,} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TemplateMetadataModal} from '../../../../models';\nimport {CARBON_CONSTANTS, KeyGeneratorService} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule, InputModule, ModalModule} from 'carbon-components-angular';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'valtimo-text-template-add-edit-modal',\n templateUrl: './text-template-add-edit-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n ButtonModule,\n TranslateModule,\n ModalModule,\n ReactiveFormsModule,\n InputModule\n ]\n})\nexport class TextTemplateAddEditModalComponent implements OnInit {\n @Input() open = false;\n @Input() type: TemplateMetadataModal = 'add';\n\n @Input() set defaultKeyValue(value: string) {\n this._defaultKeyValue = value;\n this.setDefaultKeyValue(value);\n }\n\n @Output() closeEvent = new EventEmitter<{ key: string; metadata?: any } | null>();\n\n public form = this.fb.group({\n key: this.fb.control('', Validators.required),\n });\n\n private _defaultKeyValue!: string;\n\n public get key() {\n const key = this.form?.get('key');\n if (!key?.value) {\n return key;\n }\n key.setValue(this.keyGeneratorService.getUniqueKey(key.value, []));\n return key;\n }\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly keyGeneratorService: KeyGeneratorService,\n ) {\n }\n\n public ngOnInit(): void {\n }\n\n public onCancel(): void {\n this.closeEvent.emit(null);\n this.resetForm();\n }\n\n public onConfirm(): void {\n if (!this.key) {\n return;\n }\n\n this.closeEvent.emit({key: this.key.value});\n this.resetForm();\n }\n\n private setDefaultKeyValue(value: string) {\n this.key.setValue(value);\n }\n\n private resetForm(): void {\n setTimeout(() => {\n this.form.reset();\n if (this.type === 'edit') {\n this.setDefaultKeyValue(this._defaultKeyValue);\n }\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n isAdd: type === 'add'\n } as vars\"\n [open]=\"open\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{\n vars.isAdd\n ? 'Add'\n : 'Edit'\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'Key' }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'key' }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ vars.isAdd ? ('interface.create' | translate) : ('interface.save' | translate) }}\n </button>\n </cds-modal-footer>\n</cds-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 {ChangeDetectionStrategy, Component, OnInit, ViewChild,} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, startWith, switchMap, take} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {CarbonListComponent, CarbonListModule, ColumnConfig, ViewType} from '@valtimo/components';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {TemplateListItem} from '../../../../models';\nimport {CaseManagementParams, EnvironmentService, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule} from 'carbon-components-angular';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {TextTemplateDeleteModalComponent} from '../text-template-delete-modal/text-template-delete-modal.component';\nimport {TextTemplateAddEditModalComponent} from '../text-template-add-edit-modal/text-template-add-edit-modal.component';\n\n@Component({\n standalone: true,\n templateUrl: './text-template-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n ButtonModule,\n TranslateModule,\n TextTemplateDeleteModalComponent,\n TextTemplateAddEditModalComponent\n ]\n})\nexport class TextTemplateListComponent implements OnInit {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n public fields: ColumnConfig[] = [\n {\n viewType: ViewType.TEXT,\n key: 'key',\n label: 'Key',\n },\n {\n viewType: ViewType.BOOLEAN,\n key: 'readOnly',\n label: 'Read only',\n },\n ];\n\n private readonly _caseDefinitionId$: Observable<CaseManagementParams> = getCaseManagementRouteParams(this.route).pipe(\n filter((params: CaseManagementParams | undefined) => !!params?.caseDefinitionKey),\n );\n\n public readonly readOnly$: Observable<boolean> = this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.templateService.isFinal(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)\n ]).pipe(\n map(([canUpdateGlobal, isFinalCase]) => !canUpdateGlobal || isFinalCase),\n startWith(true)\n )\n )\n );\n\n public readonly templates$ = new BehaviorSubject<TemplateListItem[] | null>(null);\n public readonly showAddModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly selectedRowKeys$ = new BehaviorSubject<Array<string>>([]);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService,\n private readonly router: Router,\n private readonly route: ActivatedRoute,\n private readonly environmentService: EnvironmentService,\n ) {\n }\n\n public ngOnInit(): void {\n this.reloadTemplateList();\n }\n\n public openAddModal(): void {\n this.showAddModal$.next(true);\n }\n\n public onAdd(data?: any): void {\n if (!data) {\n this.showAddModal$.next(false);\n return;\n }\n\n this._caseDefinitionId$.pipe(\n take(1),\n switchMap(caseDefinitionId => this.templateService.addTemplate({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'text', ...data\n }))\n ).subscribe(template => {\n this.showAddModal$.next(false);\n this.gotoTextTemplateEditor(template.caseDefinitionKey, template.caseDefinitionVersionTag, template.key);\n });\n }\n\n public showDeleteModal(): void {\n this.setSelectedTemplateKeys();\n this.showDeleteModal$.next(true);\n }\n\n public onDelete(templates: Array<string>): void {\n this.loading$.next(true);\n this._caseDefinitionId$.pipe(\n take(1),\n switchMap(caseDefinitionId => this.templateService.deleteTemplates({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'text',\n templates\n })),\n ).subscribe(_ => {\n this.reloadTemplateList();\n });\n }\n\n public onRowClick(template: TemplateListItem): void {\n this._caseDefinitionId$.pipe(take(1)).subscribe(caseDefinitionId =>\n this.gotoTextTemplateEditor(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag, template.key)\n );\n }\n\n private gotoTextTemplateEditor(caseDefinitionKey: string, caseDefinitionVersionTag: string, key: string): void {\n this.router.navigate([`/case-management/case/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/text-template/${key}`]);\n }\n\n private reloadTemplateList(): void {\n this.loading$.next(true);\n this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => this.templateService.getAllTextTemplates(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)),\n map(templatePage => templatePage.content),\n take(1)\n ).subscribe(templateListItems => {\n this.templates$.next(templateListItems);\n this.loading$.next(false);\n });\n }\n\n private setSelectedTemplateKeys(): void {\n this.selectedRowKeys$.next(this.carbonList.selectedItems.map((template: TemplateListItem) => template.key));\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n [header]=\"false\"\n [items]=\"templates$ | async\"\n [fields]=\"fields\"\n [loading]=\"loading$ | async\"\n [showSelectionColumn]=\"!(readOnly$ | async)\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <ng-container header> {{ 'Title' }}</ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTemplateButton\"></ng-container>\n </div>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteModal()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTemplateButton\"\n description=\"{{ 'Come back later.' }}\"\n title=\"{{ 'No templates found' }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-text-template-add-edit-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-text-template-add-edit-modal>\n\n<ng-container *ngIf=\"{selectedRowKeys: selectedRowKeys$ | async} as obs\">\n <valtimo-text-template-delete-modal\n [deleteRowKeys]=\"obs.selectedRowKeys\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-text-template-delete-modal>\n</ng-container>\n\n<ng-template #addTemplateButton>\n <button cdsButton=\"primary\"\n [disabled]=\"readOnly$ | async\"\n (click)=\"openAddModal()\">\n {{ 'Add' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, startWith, switchMap, take, tap} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {\n BreadcrumbService,\n CarbonListModule,\n EditorModel, EditorModule,\n PageTitleService,\n RenderInPageHeaderDirective\n} from '@valtimo/components';\nimport {ButtonModule, DialogModule, IconModule, NotificationService, TabsModule} from 'carbon-components-angular';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {TemplateResponse} from '../../../../models';\nimport {CaseManagementParams, EnvironmentService, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {CommonModule} from '@angular/common';\nimport {TextTemplateDeleteModalComponent} from '../text-template-delete-modal/text-template-delete-modal.component';\n\n@Component({\n standalone: true,\n templateUrl: './text-template-editor.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./text-template-editor.component.scss'],\n providers: [NotificationService],\n imports: [\n CommonModule,\n TranslateModule,\n TabsModule,\n DialogModule,\n TextTemplateDeleteModalComponent,\n CarbonListModule,\n ButtonModule,\n EditorModule,\n RenderInPageHeaderDirective,\n IconModule,\n ]\n})\nexport class TextTemplateEditorComponent implements OnInit, AfterViewInit, OnDestroy {\n public readonly model$ = new BehaviorSubject<EditorModel | null>(null);\n public readonly template$ = new BehaviorSubject<TemplateResponse | null>(null);\n public readonly saveDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly editorDisabled$ = new BehaviorSubject<boolean>(false);\n public readonly moreDisabled$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly updatedModelValue$ = new BehaviorSubject<string>('');\n\n public readonly canUpdateGlobalConfiguration$ =\n this.environmentService.canUpdateGlobalConfiguration();\n\n private readonly _caseDefinitionId$: Observable<CaseManagementParams> = getCaseManagementRouteParams(this.route).pipe(\n filter((params: CaseManagementParams | undefined) => !!params?.caseDefinitionKey),\n );\n\n public readonly templateKey$: Observable<string> = combineLatest([this.route.params, this.route.parent.params]).pipe(\n map(([params, parentParams]) => params?.templateKey || parentParams?.templateKey),\n filter(templateKey => !!templateKey)\n );\n\n public readonly readOnly$: Observable<boolean> = this._caseDefinitionId$.pipe(\n switchMap(caseDefinitionId => combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.templateService.isFinal(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag)\n ]).pipe(\n map(([canUpdateGlobal, isFinalCase]) => !canUpdateGlobal || isFinalCase),\n startWith(true)\n )\n )\n );\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService,\n private readonly route: ActivatedRoute,\n private readonly pageTitleService: PageTitleService,\n private readonly router: Router,\n private readonly notificationService: NotificationService,\n private readonly translateService: TranslateService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly environmentService: EnvironmentService,\n ) {\n }\n\n public ngOnInit(): void {\n this.loadTemplate();\n }\n\n public ngAfterViewInit(): void {\n this.initBreadcrumb();\n }\n\n public ngOnDestroy(): void {\n this.pageTitleService.enableReset();\n this.breadcrumbService.clearThirdBreadcrumb();\n this.breadcrumbService.clearFourthBreadcrumb();\n }\n\n public onValid(valid: boolean): void {\n this.saveDisabled$.next(valid === false);\n }\n\n public onValueChange(value: string): void {\n this.updatedModelValue$.next(value);\n }\n\n public updateTemplate(): void {\n this.disableEditor();\n this.disableSave();\n this.disableMore();\n\n combineLatest([this.updatedModelValue$, this._caseDefinitionId$, this.templateKey$]).pipe(\n switchMap(([updatedModelValue, caseDefinitionId, templateKey]) =>\n this.templateService.updateTemplate(\n {\n key: templateKey,\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'text',\n content: updatedModelValue,\n }\n )\n ),\n take(1)\n ).subscribe({\n next: result => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n this.showSuccessMessage(result.key);\n this.setModel(result.content);\n this.template$.next(result);\n },\n error: () => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n },\n });\n }\n\n public onDelete(templates: Array<string>): void {\n this.disableEditor();\n this.disableSave();\n this.disableMore();\n\n this._caseDefinitionId$.pipe(take(1)).subscribe(caseDefinitionId =>\n this.templateService.deleteTemplates({\n caseDefinitionKey: caseDefinitionId.caseDefinitionKey,\n caseDefinitionVersionTag: caseDefinitionId.caseDefinitionVersionTag,\n type: 'text',\n templates\n }).pipe(take(1)).subscribe(_ =>\n this.router.navigate([`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/text-template`])\n )\n );\n }\n\n public showDeleteModal(): void {\n this.showDeleteModal$.next(true);\n }\n\n private loadTemplate(): void {\n combineLatest([this._caseDefinitionId$, this.templateKey$]).pipe(\n tap(([_, key]) => {\n this.pageTitleService.setCustomPageTitle(`Text template: ${key}`, true);\n }),\n switchMap(([caseDefinitionId, key]) => this.templateService.getTextTemplate(caseDefinitionId.caseDefinitionKey, caseDefinitionId.caseDefinitionVersionTag, key)),\n take(1),\n ).subscribe(result => {\n this.enableMore();\n this.enableSave();\n this.enableEditor();\n this.setModel(result.content);\n this.template$.next(result);\n });\n }\n\n private setModel(content: string): void {\n this.model$.next({\n value: content,\n language: 'freemarker2',\n });\n this.updatedModelValue$.next(content);\n }\n\n private disableMore(): void {\n this.moreDisabled$.next(true);\n }\n\n private enableMore(): void {\n this.moreDisabled$.next(false);\n }\n\n private disableSave(): void {\n this.saveDisabled$.next(true);\n }\n\n private enableSave(): void {\n this.saveDisabled$.next(false);\n }\n\n private disableEditor(): void {\n this.editorDisabled$.next(true);\n }\n\n private enableEditor(): void {\n this.editorDisabled$.next(false);\n }\n\n private initBreadcrumb(): void {\n this._caseDefinitionId$.subscribe(caseDefinitionId => {\n this.breadcrumbService.setThirdBreadcrumb({\n route: [`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}`],\n content: `${caseDefinitionId.caseDefinitionKey}:${caseDefinitionId.caseDefinitionVersionTag}`,\n href: `/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}`,\n });\n this.breadcrumbService.setFourthBreadcrumb({\n route: [`/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/text-template`],\n content: 'Text template',\n href: `/case-management/case/${caseDefinitionId.caseDefinitionKey}/version/${caseDefinitionId.caseDefinitionVersionTag}/text-template`,\n });\n });\n }\n\n private showSuccessMessage(key: string): void {\n this.notificationService.showToast({\n caption: this.translateService.instant(`${key} was saved successfully`, {\n key,\n }),\n type: 'success',\n duration: 4000,\n showClose: true,\n title: this.translateService.instant('Saved successfully'),\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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 model: model$ | async,\n updatedModelValue: updatedModelValue$ | async,\n template: template$ | async,\n } as obs\">\n\n <div class=\"template-explanation\">\n Text Templates use <a target=\"_blank\" href=\"https://freemarker.apache.org/docs/dgui_quickstart_basics.html\">FreeMarker</a>\n to create placeholders inside the text. The data-model for FreeMarker is based upon nested <a\n target=\"_blank\" href=\"https://docs.valtimo.nl/reference/modules/value-resolver\">Valtimo value-resolvers</a>\n with a slightly different notation. For example: ${doc.firstName}. Retrieves\n the `firstName` from the case.\n\n Text Templates can be used as value resolvers. For example: ${template.my-text-template} or\n `template:my-text-template`.\n </div>\n\n <valtimo-editor\n [model]=\"obs.model\"\n [disabled]=\"(editorDisabled$ | async) || (readOnly$ | async)\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"80\"\n ></valtimo-editor>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div *ngIf=\"{\n model: model$ | async,\n moreDisabled: moreDisabled$ | async,\n template: template$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option\n [disabled]=\"obs.moreDisabled || (readOnly$ | async)\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option\n >\n </cds-overflow-menu>\n\n <button\n [disabled]=\"(saveDisabled$ | async) || (readOnly$ | async)\"\n cdsButton=\"primary\"\n size=\"md\"\n (click)=\"updateTemplate()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"{templateKey: templateKey$ | async} as obs\">\n <valtimo-text-template-delete-modal\n [deleteRowKeys]=\"[obs.templateKey]\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-text-template-delete-modal>\n</ng-container>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {AuthGuardService} from '@valtimo/security';\nimport {TextTemplateEditorComponent} from './components/text-template-editor/text-template-editor.component';\n\nconst routes: Routes = [\n {\n path: 'case-management/case/:caseDefinitionKey/version/:caseDefinitionVersionTag/text-template/:templateKey',\n component: TextTemplateEditorComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Text Template Editor',\n templates: [ROLE_ADMIN],\n customPageTitle: true,\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TemplateManagementRoutingModule {}\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {FunctionConfigurationComponent, FunctionConfigurationData} from '@valtimo/plugin';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription, switchMap, take, tap} from 'rxjs';\nimport {GenerateTextFileConfig} from '../../models';\nimport {SelectItem} from '@valtimo/components';\nimport {FreemarkerTemplateManagementService} from '../../../../services';\nimport {CaseManagementParams, ManagementContext} from '@valtimo/shared';\n\n@Component({\n standalone: false,\n selector: 'valtimo-generate-text-file-configuration',\n templateUrl: './generate-text-file.component.html',\n})\nexport class GenerateTextFileComponent\n implements FunctionConfigurationComponent, OnInit, OnDestroy {\n @Input() save$!: Observable<void>;\n @Input() disabled$!: Observable<boolean>;\n @Input() pluginId!: string;\n @Input() context$: Observable<[ManagementContext, CaseManagementParams]>;\n @Input() prefillConfiguration$!: Observable<GenerateTextFileConfig>;\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<FunctionConfigurationData> = new EventEmitter<FunctionConfigurationData>();\n\n private readonly formValue$ = new BehaviorSubject<GenerateTextFileConfig | null>(null);\n private readonly valid$ = new BehaviorSubject<boolean>(false);\n private _subscriptions = new Subscription();\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly textTemplateItems$ = new BehaviorSubject<Array<SelectItem>>([]);\n\n constructor(\n private readonly templateService: FreemarkerTemplateManagementService\n ) {\n }\n\n ngOnInit(): void {\n this.openSaveSubscription();\n this.initContextHandling();\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n formValueChange(formValue: GenerateTextFileConfig): void {\n this.formValue$.next(formValue);\n this.handleValid(formValue);\n }\n\n private handleValid(formValue: GenerateTextFileConfig): void {\n const valid = !!(formValue.textTemplateKey && formValue.processVariableName);\n\n this.valid$.next(valid);\n this.valid.emit(valid);\n }\n\n private openSaveSubscription(): void {\n const saveSubscription = this.save$?.subscribe(save => {\n combineLatest([this.formValue$, this.valid$])\n .pipe(take(1))\n .subscribe(([formValue, valid]) => {\n if (valid) {\n this.configuration.emit(formValue!);\n }\n });\n });\n this._subscriptions.add(saveSubscription);\n }\n\n\n private initContextHandling(): void {\n if (!this.context$) {\n return;\n }\n\n const contextSub = this.context$.pipe(\n switchMap(([managementContext, caseDefinitionId]) => {\n if (managementContext == 'case') {\n return this.templateService.getAllTextTemplates(\n caseDefinitionId?.caseDefinitionKey,\n caseDefinitionId?.caseDefinitionVersionTag,\n );\n } else {\n console.error('Freemarker plugin does not support global templates')\n return of(null);\n }\n }\n ),\n map(results =>\n results?.content.map(template => ({\n id: template.key,\n text: template.key,\n })) || []\n ),\n tap(() => this.loading$.next(false))\n )\n .subscribe(results => this.textTemplateItems$.next(results));\n\n this._subscriptions.add(contextSub);\n }\n\n}\n","<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS 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=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null,\n textTemplateItems: textTemplateItems$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <v-paragraph [margin]=\"true\" [italic]=\"true\">\n {{ 'generateTextFileDescription' | pluginTranslate: pluginId | async }}\n </v-paragraph>\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-select\n [items]=\"obs.textTemplateItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"textTemplateKey\"\n [title]=\"'textTemplateKey' | pluginTranslate: pluginId | async\"\n [disabled]=\"obs.disabled\"\n [defaultSelectionId]=\"obs.prefill?.textTemplateKey\"\n [required]=\"true\"\n [loading]=\"!obs.textTemplateItems\"\n [tooltip]=\"'textTemplateKeyTooltip' | pluginTranslate: pluginId | async\"\n ></v-select>\n <v-input\n name=\"processVariableName\"\n [title]=\"'processVariableName' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.prefill?.processVariableName || 'contentId'\"\n [disabled]=\"obs.disabled\"\n [tooltip]=\"'processVariableNameTooltip' | pluginTranslate: pluginId | async\"\n ></v-input>\n </v-form>\n </ng-container>\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-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {TextTemplateConfigurationComponent} from './components/text-template-configuration/text-template-configuration.component';\nimport {CommonModule} from '@angular/common';\nimport {PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {\n CarbonListModule,\n ConfirmationModalModule,\n EditorModule,\n FormModule,\n InputModule as ValtimoInputModule,\n ParagraphModule,\n RenderInPageHeaderDirective,\n SelectModule,\n} from '@valtimo/components';\nimport {\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule,\n TabsModule,\n} from 'carbon-components-angular';\nimport {CASE_MANAGEMENT_TAB_TOKEN} from '@valtimo/shared';\nimport {TextTemplateListComponent} from './components/text-template-list/text-template-list.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {TemplateManagementRoutingModule} from './text-template-management-routing.module';\nimport {GenerateTextFileComponent} from './components/generate-text-file/generate-text-file.component';\n\n@NgModule({\n declarations: [\n GenerateTextFileComponent,\n TextTemplateConfigurationComponent,\n ],\n imports: [\n CommonModule,\n PluginTranslatePipeModule,\n TemplateManagementRoutingModule,\n FormModule,\n ParagraphModule,\n SelectModule,\n ConfirmationModalModule,\n TranslateModule,\n ReactiveFormsModule,\n CarbonListModule,\n EditorModule,\n ValtimoInputModule,\n ButtonModule,\n DialogModule,\n DropdownModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n NotificationModule,\n RenderInPageHeaderDirective,\n TabsModule,\n ],\n exports: [\n GenerateTextFileComponent,\n ],\n providers: [\n {\n provide: CASE_MANAGEMENT_TAB_TOKEN,\n useValue: {\n translationKey: 'text-template',\n component: TextTemplateListComponent,\n },\n multi: true,\n }\n ]\n})\nexport class TextTemplatePluginModule {\n}\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst TEXT_TEMPLATE_PLUGIN_LOGO_BASE64 =\n 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBpZD0ic3ZnMiIgdmlld0JveD0iMCAwIDQwMCAyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTSAzMjcuMTE2IDE0NS44OTggTCAzNDAuMzA0IDE2NS44OTIgTCAzODQuMjQxIDk5LjI0NiBMIDM0MC4zMDQgMzIuNjAxIEwgMzI3LjExNiA1Mi41OTUgTCAzNTcuODg4IDk5LjI0NiBMIDMyNy4xMTYgMTQ1Ljg5OCBaIiBzdHlsZT0iZmlsbDogcmdiKDAsIDgwLCAxNzgpOyIgdHJhbnNmb3JtPSJtYXRyaXgoMSwgMCwgMCwgMSwgLTUuNjg0MzQxODg2MDgwODAyZS0xNCwgMCkiLz4KICA8cGF0aCBkPSJNIDY0LjcwMyA1Mi41OTUgTCA1MS41MTggMzIuNjAxIEwgNy41OCA5OS4yNDYgTCA1MS41MTggMTY1Ljg5MiBMIDY0LjcwMyAxNDUuODk4IEwgMzMuOTMzIDk5LjI0NiBMIDY0LjcwMyA1Mi41OTUgWiIgc3R5bGU9ImZpbGw6IHJnYigwLCA4MCwgMTc4KTsiIHRyYW5zZm9ybT0ibWF0cml4KDEsIDAsIDAsIDEsIC01LjY4NDM0MTg4NjA4MDgwMmUtMTQsIDApIi8+CiAgPHBhdGggZD0iTSAxMTIuODYgMzIuNjAxIEwgMTM5LjUxOCAzMi42MDEgTCAxMzQuODE1IDU5LjI2IEwgMTYxLjQ3NCA1OS4yNiBMIDE2Ni4xNzYgMzIuNjAxIEwgMTkyLjgzNCAzMi42MDEgTCAxODguMTMgNTkuMjYgTCAyMTQuNzg4IDU5LjI2IEwgMjEwLjA3NyA4NS45MTcgTCAxODMuNDE4IDg1LjkxNyBMIDE3OC43MjMgMTEyLjU3NSBMIDIwNS4zODIgMTEyLjU3NSBMIDIwMC42NzggMTM5LjIzMyBMIDE3NC4wMjEgMTM5LjIzMyBMIDE2OS4zMzYgMTY1Ljg5MiBMIDE0Mi42NzkgMTY1Ljg5MiBMIDE0Ny4zNzMgMTM5LjIzMyBMIDEyMC43MTUgMTM5LjIzMyBMIDExNi4wOTcgMTY1Ljg5MiBMIDg5LjM2MiAxNjUuODkyIEwgOTQuMDU2IDEzOS4yMzMgTCA2Ny4zOTggMTM5LjIzMyBMIDcyLjEwMiAxMTIuNTc1IEwgOTguNzYgMTEyLjU3NSBMIDEwMy40NTQgODUuOTg1IEwgNzYuNzk2IDg1Ljk4NSBMIDgxLjQ5OCA1OS4yNiBMIDEwOC4xNTcgNTkuMjYgTCAxMTIuODYgMzIuNjAxIFogTSAxMjUuNDE3IDExMi41NzUgTCAxNTIuMDc2IDExMi41NzUgTCAxNTYuNzc5IDg1LjkxNyBMIDEzMC4xMjEgODUuOTE3IEwgMTI1LjQxNyAxMTIuNTc1IFoiIHN0eWxlPSJmaWxsOiByZ2IoMCwgODAsIDE3OCk7IiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAxLCAtNS42ODQzNDE4ODYwODA4MDJlLTE0LCAwKSIvPgogIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMjQ2MjE5MDA5MTYwOTk1NDgsIDAsIDAsIDAuMjQ2MjE5MDA5MTYwOTk1NDgsIDIwNC4yOTI0MTk0MzM1OTM3LCAzMi4xNjgzNjkyOTMyMTI4OSkiIHN0eWxlPSIiPgogICAgPHBhdGggZD0iTTQ4Ni4yMDEsMTk2LjEyNGgtMTMuMTY2VjEzMi41OWMwLTAuMzk2LTAuMDYyLTAuNzk1LTAuMTE1LTEuMTk2Yy0wLjAyMS0yLjUyMy0wLjgyNS01LTIuNTUyLTYuOTYzTDM2NC42NTcsMy42NzcmIzEwOyYjOTsmIzk7Yy0wLjAzMy0wLjAzMS0wLjA2NC0wLjA0Mi0wLjA4NS0wLjA3NWMtMC42My0wLjcwNC0xLjM2NC0xLjI5LTIuMTQzLTEuNzk2Yy0wLjIyOS0wLjE1NC0wLjQ2MS0wLjI4My0wLjcwMi0wLjQxOCYjMTA7JiM5OyYjOTtjLTAuNjcyLTAuMzY2LTEuMzg3LTAuNjcxLTIuMTIxLTAuODkyYy0wLjItMC4wNTUtMC4zNzktMC4xMzQtMC41NzctMC4xODhDMzU4LjIzLDAuMTE4LDM1Ny40MDEsMCwzNTYuNTYyLDBIOTYuNzU3JiMxMDsmIzk7JiM5O0M4NC44OTQsMCw3NS4yNTYsOS42NDksNzUuMjU2LDIxLjUwMnYxNzQuNjE2SDYyLjA5Yy0xNi45NjgsMC0zMC43MjksMTMuNzUzLTMwLjcyOSwzMC43M3YxNTkuODEyJiMxMDsmIzk7JiM5O2MwLDE2Ljk2MSwxMy43NjEsMzAuNzMxLDMwLjcyOSwzMC43MzFoMTMuMTY2VjUyNi43OWMwLDExLjg1NCw5LjYzOCwyMS41MDEsMjEuNTAxLDIxLjUwMWgzNTQuNzc2JiMxMDsmIzk7JiM5O2MxMS44NTMsMCwyMS41MDEtOS42NDcsMjEuNTAxLTIxLjUwMVY0MTcuMzkyaDEzLjE2NmMxNi45NjYsMCwzMC43MjktMTMuNzY0LDMwLjcyOS0zMC43MzFWMjI2Ljg1NCYjMTA7JiM5OyYjOTtDNTE2LjkzLDIwOS44NzIsNTAzLjE2NywxOTYuMTI0LDQ4Ni4yMDEsMTk2LjEyNHogTTk2Ljc1NywyMS41MDJoMjQ5LjA1NHYxMTAuMDA2YzAsNS45NDMsNC44MTcsMTAuNzUxLDEwLjc1MSwxMC43NTFoOTQuOTcyJiMxMDsmIzk7JiM5O3Y1My44NjRIOTYuNzU3VjIxLjUwMnogTTIwMi44MTQsMjI1LjA0Mmg0MS42OGwxNC4wNjMsMjkuM2M0Ljc1Niw5Ljc1Niw4LjMzNiwxNy42MjIsMTIuMTQ3LDI2LjY3NmgwLjQ4JiMxMDsmIzk7JiM5O2MzLjc5OC0xMC4yNDIsNi45LTE3LjM5MiwxMC45NS0yNi42NzZsMTMuNTg3LTI5LjNoNDEuNDQ5bC00NS4yNjEsNzguMzYzbDQ3LjYzOCw4Mi4xODVoLTQxLjkyN2wtMTQuNTI1LTI5LjA2JiMxMDsmIzk7JiM5O2MtNS45NTYtMTEuMTk3LTkuNzcxLTE5LjUyOC0xNC4yOTktMjguODI1aC0wLjQ3OGMtMy4zMzQsOS4yOTctNy4zODEsMTcuNjI4LTEyLjM4MSwyOC44MjVsLTEzLjMzNiwyOS4wNmgtNDEuNDU1bDQ2LjQ1NS04MS4yMjQmIzEwOyYjOTsmIzk7TDIwMi44MTQsMjI1LjA0MnogTTY2LjA4LDI1NS41MzJ2LTMwLjQ4OWgxMjMuMzgydjMwLjQ4OWgtNDMuODI4djEzMC4wNDloLTM2LjQzNFYyNTUuNTMySDY2LjA4eiBNNDUxLjUzNCw1MjAuOTYySDk2Ljc1N3YtMTAzLjU3JiMxMDsmIzk7JiM5O2gzNTQuNzc2VjUyMC45NjJ6IE00NzEuNzY0LDI1NS41MzJoLTQzLjgzMXYxMzAuMDQ5aC0zNi40NDJWMjU1LjUzMmgtNDMuMTE5di0zMC40ODloMTIzLjM5M1YyNTUuNTMyeiIvPgogIDwvZz4KPC9zdmc+';\n\nexport {TEXT_TEMPLATE_PLUGIN_LOGO_BASE64};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 './text-template-plugin-logo';\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {PluginSpecification} from '@valtimo/plugin';\nimport {TextTemplateConfigurationComponent} from './components/text-template-configuration/text-template-configuration.component';\nimport {TEXT_TEMPLATE_PLUGIN_LOGO_BASE64} from './assets';\nimport {GenerateTextFileComponent} from './components/generate-text-file/generate-text-file.component';\n\nconst textTemplatePluginSpecification: PluginSpecification = {\n pluginId: 'text-template',\n pluginConfigurationComponent: TextTemplateConfigurationComponent,\n pluginLogoBase64: TEXT_TEMPLATE_PLUGIN_LOGO_BASE64,\n functionConfigurationComponents: {\n 'generate-text-file': GenerateTextFileComponent,\n },\n pluginTranslations: {\n nl: {\n title: 'Text sjablonen',\n 'generate-text-file': 'Genereer Textbestand',\n description: 'Maak Text sjablonen met Freemarker.',\n configurationTitle: 'Configuratienaam',\n configurationTitleTooltip:\n 'De naam van de huidige plug-in configuratie. Onder deze naam kan de configuratie worden gevonden in de rest van de applicatie.',\n generateTextFileDescription:\n 'Deze actie genereert de inhoud van een text-template en slaat het resultaat op in een tijdelijk bestand. Het ID van het bestand wordt opgeslagen in een Proces Variabele.',\n textTemplateKey: 'Text sjabloon',\n textTemplateKeyTooltip: 'Op bases van deze sjabloon wordt de text-template gegenereerd',\n processVariableName: 'Procesvariabelenaam',\n processVariableNameTooltip: 'Het resultaat wordt opgeslagen in een procesvariabele met deze naam',\n },\n en: {\n title: 'Text Templates',\n 'generate-text-file': 'Generate Text File',\n description: 'Create text-template templates with Freemarker.',\n configurationTitle: 'Configuration Name',\n configurationTitleTooltip:\n 'The name of the current plug-in configuration. The configuration can be found under this name in the rest of the application.',\n generateTextFileDescription:\n 'This action generates the content of an text-template and saves the result in a temporary file. The file ID is stored in a Process Variable.',\n textTemplateKey: 'Text Template',\n textTemplateKeyTooltip: 'The text-template will be generated based on this template.',\n processVariableName: 'Process Variable Name',\n processVariableNameTooltip: 'The result will be stored in a process variable with this name.',\n },\n de: {\n title: 'Text-Vorlagen',\n 'generate-text-file': 'Text-Datei generieren',\n description: 'Erstellen Sie Text-Vorlagen mit Freemarker.',\n configurationTitle: 'Konfigurationsname',\n configurationTitleTooltip:\n 'Der Name der aktuellen Plug-in-Konfiguration. Unter diesem Namen kann die Konfiguration im Rest der Anwendung gefunden werden.',\n generateTextFileDescription:\n 'Diese Aktion generiert den Inhalt einer Text und speichert das Ergebnis in einer temporären Datei. Die Datei-ID wird in einer Prozessvariablen gespeichert.',\n textTemplateKey: 'Text-Vorlage',\n textTemplateKeyTooltip: 'Die Text wird basierend auf dieser Vorlage generiert.',\n processVariableName: 'Prozessvariablenname',\n processVariableNameTooltip: 'Das Ergebnis wird in einer Prozessvariablen mit diesem Namen gespeichert.',\n },\n },\n};\n\nexport {textTemplatePluginSpecification};\n","/*\n * Copyright 2015-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 mail-template\n */\n\nexport * from './lib/plugins/mail-template/models';\nexport * from './lib/plugins/mail-template/mail-template-plugin-module';\nexport * from './lib/plugins/mail-template/mail-template-plugin.specification';\nexport * from './lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component';\nexport * from './lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component';\nexport * from './lib/plugins/mail-template/components/mail-template-add-edit-modal/mail-template-add-edit-modal.component';\nexport * from './lib/plugins/mail-template/components/mail-template-configuration/mail-template-configuration.component';\nexport * from './lib/plugins/mail-template/components/mail-template-delete-modal/mail-template-delete-modal.component';\nexport * from './lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component';\nexport * from './lib/plugins/mail-template/components/mail-template-list/mail-template-list.component';\n\n/*\n * Public API Surface of text-template\n */\n\nexport * from './lib/plugins/text-template/models';\nexport * from './lib/plugins/text-template/text-template-plugin-module';\nexport * from './lib/plugins/text-template/text-template-plugin.specification';\nexport * from './lib/plugins/text-template/components/generate-text-file/generate-text-file.component';\nexport * from './lib/plugins/text-template/components/text-template-add-edit-modal/text-template-add-edit-modal.component';\nexport * from './lib/plugins/text-template/components/text-template-configuration/text-template-configuration.component';\nexport * from './lib/plugins/text-template/components/text-template-delete-modal/text-template-delete-modal.component';\nexport * from './lib/plugins/text-template/components/text-template-editor/text-template-editor.component';\nexport * from './lib/plugins/text-template/components/text-template-list/text-template-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3","i1.FreemarkerTemplateManagementService","i4","i5","i6","i7","routes","TemplateManagementRoutingModule","ValtimoInputModule"],"mappings":"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"}
|