@valtimo/zgw 13.4.1 → 13.5.0-release-0.0.0.3

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.
Files changed (27) hide show
  1. package/fesm2022/valtimo-zgw.mjs +399 -95
  2. package/fesm2022/valtimo-zgw.mjs.map +1 -1
  3. package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts +3 -5
  4. package/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -1
  5. package/lib/modules/index.d.ts +1 -0
  6. package/lib/modules/index.d.ts.map +1 -1
  7. package/lib/modules/notificaties-api/components/failed-notification-detail/failed-notification-detail.component.d.ts +17 -0
  8. package/lib/modules/notificaties-api/components/failed-notification-detail/failed-notification-detail.component.d.ts.map +1 -0
  9. package/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.d.ts +32 -0
  10. package/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.d.ts.map +1 -0
  11. package/lib/modules/notificaties-api/components/index.d.ts +3 -0
  12. package/lib/modules/notificaties-api/components/index.d.ts.map +1 -0
  13. package/lib/modules/notificaties-api/index.d.ts +5 -0
  14. package/lib/modules/notificaties-api/index.d.ts.map +1 -0
  15. package/lib/modules/notificaties-api/models/failed-notification.model.d.ts +22 -0
  16. package/lib/modules/notificaties-api/models/failed-notification.model.d.ts.map +1 -0
  17. package/lib/modules/notificaties-api/models/index.d.ts +2 -0
  18. package/lib/modules/notificaties-api/models/index.d.ts.map +1 -0
  19. package/lib/modules/notificaties-api/notificaties-api-routing.module.d.ts +9 -0
  20. package/lib/modules/notificaties-api/notificaties-api-routing.module.d.ts.map +1 -0
  21. package/lib/modules/notificaties-api/services/failed-notifications.service.d.ts +16 -0
  22. package/lib/modules/notificaties-api/services/failed-notifications.service.d.ts.map +1 -0
  23. package/lib/modules/notificaties-api/services/index.d.ts +2 -0
  24. package/lib/modules/notificaties-api/services/index.d.ts.map +1 -0
  25. package/lib/zgw.module.d.ts +2 -1
  26. package/lib/zgw.module.d.ts.map +1 -1
  27. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-zgw.mjs","sources":["../../../../projects/valtimo/zgw/src/lib/models/case-management-zgw.model.ts","../../../../projects/valtimo/zgw/src/lib/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-column.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-document.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-link-process.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-tag.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-version.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-metadata.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/configured-column.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-column-modal.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-link-process.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-version.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-filter.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-link-process/case-management-link-process.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-link-process/case-management-link-process.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-upload-field-model/documenten-api-upload-field-modal.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-upload-field-model/documenten-api-upload-field-modal.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-upload-fields/documenten-api-upload-fields.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-upload-fields/documenten-api-upload-fields.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-version/documenten-api-version.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-version/documenten-api-version.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader-edit-form.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.formio.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/models/zaakobjecten.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/services/zaakobjecten.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.html","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/object-type/object-type.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/object-type/object-type.component.html","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/services/document-objecten-api-sync.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.html","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/services/zaken-api-zaaktype-link.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/components/zaken-api-zaaktype-link/zaken-api-zaaktype-link.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/components/zaken-api-zaaktype-link/zaken-api-zaaktype-link.component.html","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/models/zaken-api-zaaktype-link.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/index.ts","../../../../projects/valtimo/zgw/src/lib/components/case-management-zgw-general/case-management-zgw-general.component.ts","../../../../projects/valtimo/zgw/src/lib/components/case-management-zgw-general/case-management-zgw-general.component.html","../../../../projects/valtimo/zgw/src/lib/services/case-management-zgw.service.ts","../../../../projects/valtimo/zgw/src/lib/services/index.ts","../../../../projects/valtimo/zgw/src/lib/components/case-management-zgw/case-management-zgw.component.ts","../../../../projects/valtimo/zgw/src/lib/components/case-management-zgw/case-management-zgw.component.html","../../../../projects/valtimo/zgw/src/lib/components/index.ts","../../../../projects/valtimo/zgw/src/lib/zgw.module.ts","../../../../projects/valtimo/zgw/src/public_api.ts","../../../../projects/valtimo/zgw/src/valtimo-zgw.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\n\nenum ZgwTabEnum {\n DOCUMENTEN_API_COLUMNS = 'documentenApiColumns',\n DOCUMENTEN_API_TAGS = 'documentenApiTags',\n DOCUMENTEN_API_UPLOAD_FIELDS = 'documentenApiUploadFields',\n GENERAL = 'general',\n}\n\ninterface ZgwTab {\n class: string;\n headingTranslationKey: string;\n tab: ZgwTabEnum;\n active?: boolean;\n component: Type<any>;\n}\n\nexport {ZgwTabEnum, ZgwTab};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-management-zgw.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\nimport {ConfiguredColumn} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiColumnService extends BaseApiService {\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n super(http, configService);\n }\n\n public getConfiguredColumns(caseDefinitionKey: string): Observable<ConfiguredColumn[]> {\n return this.http.get<ConfiguredColumn[]>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionKey}/zgw-document-column`)\n );\n }\n\n public getAdminConfiguredColumns(caseDefinitionName: string): Observable<ConfiguredColumn[]> {\n return this.http.get<ConfiguredColumn[]>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document-column`)\n );\n }\n\n public getAdminConfigurableColumns(caseDefinition: string): Observable<ConfiguredColumn[]> {\n return this.http.get<ConfiguredColumn[]>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinition}/zgw-document-column-key`)\n );\n }\n\n public deleteColumn(caseDefinitionName: string, columnKey: string): Observable<void> {\n return this.http.delete<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document-column/${columnKey}`\n )\n );\n }\n\n public updateColumn(caseDefinitionName: string, column: ConfiguredColumn): Observable<void> {\n return this.http.put<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document-column/${column.key}`\n ),\n column\n );\n }\n\n public updateConfiguredColumns(\n caseDefinitionKey: string,\n orderColumns: ConfiguredColumn[]\n ): Observable<null> {\n return this.http.put<null>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionKey}/zgw-document-column`),\n orderColumns\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\nimport {DocumentenApiRelatedFile} from '../models';\nimport {DocumentenApiUploadField} from '../models/documenten-api-upload-field.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiDocumentService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getFilteredZakenApiDocuments(\n documentId: string,\n paramsMap?: any\n ): Observable<Page<DocumentenApiRelatedFile>> {\n const params = new HttpParams({fromObject: paramsMap});\n\n return !!paramsMap\n ? this.httpClient.get<Page<DocumentenApiRelatedFile>>(\n this.getApiUrl(`/v2/zaken-api/document/${documentId}/files`),\n {params}\n )\n : this.httpClient.get<Page<DocumentenApiRelatedFile>>(\n this.getApiUrl(`/v2/zaken-api/document/${documentId}/files`)\n );\n }\n\n public updateDocument(file: any, metadata: any): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(`/v1/documenten-api/${file.pluginConfigurationId}/files/${file.fileId}`),\n metadata\n );\n }\n\n public deleteDocument(file: DocumentenApiRelatedFile): Observable<DocumentenApiRelatedFile[]> {\n return this.httpClient.delete<DocumentenApiRelatedFile[]>(\n this.getApiUrl(`/v1/documenten-api/${file.pluginConfigurationId}/files/${file.fileId}`)\n );\n }\n\n public getPrefilledUploadFields(documentId: string): Observable<DocumentenApiUploadField[]> {\n return this.httpClient.get<DocumentenApiUploadField[]>(\n this.getApiUrl(`/v1/document/${documentId}/zgw-document/upload-field`)\n );\n }\n\n public getUploadFields(caseDefinitionName: string): Observable<Array<DocumentenApiUploadField>> {\n return this.httpClient.get<Array<DocumentenApiUploadField>>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document/upload-field`\n )\n );\n }\n\n public updateUploadField(\n caseDefinitionName: string,\n uploadField: DocumentenApiUploadField\n ): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document/upload-field`\n ),\n uploadField\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ProcessDefinition, UploadProcessLink} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiLinkProcessService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getProcessDefinitions(): Observable<ProcessDefinition[]> {\n return this.httpClient.get<ProcessDefinition[]>(this.getApiUrl('/v1/process/definition'));\n }\n\n public getLinkedUploadProcess(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<UploadProcessLink> {\n return this.httpClient.get<UploadProcessLink>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/feature-process/DOCUMENT_UPLOAD`\n )\n );\n }\n\n public updateLinkedUploadProcess(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n processDefinitionKey: string\n ): Observable<UploadProcessLink> {\n return this.httpClient.put<UploadProcessLink>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/feature-process`\n ),\n {\n processDefinitionKey,\n linkType: 'DOCUMENT_UPLOAD',\n }\n );\n }\n\n public deleteLinkedUploadProcess(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/feature-process/DOCUMENT_UPLOAD`\n )\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\nimport {DocumentenApiTag} from '../models/documenten-api-tag.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiTagService extends BaseApiService {\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n super(http, configService);\n }\n\n public getTags(caseDefinitionName: string): Observable<DocumentenApiTag[]> {\n return this.http.get<DocumentenApiTag[]>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord`)\n );\n }\n\n public getTagsForAdmin(\n caseDefinitionName: string,\n params?: any\n ): Observable<Page<DocumentenApiTag>> {\n return this.http.get<Page<DocumentenApiTag>>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord`),\n {params}\n );\n }\n\n public createTag(caseDefinitionName: string, tagKey: string): Observable<void> {\n return this.http.post<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord/${tagKey}`\n ),\n {} //empty body because all data exists in path\n );\n }\n\n public deleteTag(caseDefinitionName: string, tagKey: string): Observable<void> {\n return this.http.delete<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord/${tagKey}`\n )\n );\n }\n\n public deleteTags(caseDefinitionName: string, tagKeys: string[]): Observable<void> {\n return this.http.delete<void>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord`),\n {body: tagKeys}\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {DocumentenApiManagementVersion, SupportedDocumentenApiFeatures} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiVersionService extends BaseApiService {\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n\n public get refresh$(): Observable<null> {\n return this._refresh$.asObservable();\n }\n\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getManagementApiVersion(\n caseDefinitionName: string\n ): Observable<DocumentenApiManagementVersion> {\n return this.httpClient.get<DocumentenApiManagementVersion>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/documenten-api/version`)\n );\n }\n\n public getSupportedApiFeatures(\n caseDefinitionKey: string\n ): Observable<SupportedDocumentenApiFeatures> {\n return this.httpClient.get<SupportedDocumentenApiFeatures>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionKey}/documenten-api/version`)\n );\n }\n\n public refresh(): void {\n this._refresh$.next(null);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-column.service';\nexport * from './documenten-api-document.service';\nexport * from './documenten-api-link-process.service';\nexport * from './documenten-api-tag.service';\nexport * from './documenten-api-version.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ButtonModule,\n DropdownModule,\n InputModule,\n LayerModule,\n ListItem,\n ModalModule,\n NotificationContent,\n NotificationModule,\n RadioModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, switchMap} from 'rxjs';\nimport {\n ConfiguredColumn,\n DocumentenApiColumnModalType,\n DocumentenApiColumnModalTypeCloseEvent,\n} from '../../models';\nimport {DocumentenApiColumnService} from '../../services';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-documenten-api-column-modal',\n templateUrl: './documenten-api-column-modal.component.html',\n styleUrls: ['./documenten-api-column-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ModalModule,\n TranslateModule,\n InputModule,\n ReactiveFormsModule,\n ButtonModule,\n DropdownModule,\n RadioModule,\n NotificationModule,\n LayerModule,\n ],\n})\nexport class DocumentenApiColumnModalComponent implements OnInit, OnDestroy {\n @Input() public definitionName: string;\n\n private _prefillColumn!: ListItem[] | null;\n @Input() public set prefillColumn(value: ConfiguredColumn | undefined) {\n if (!value) return;\n\n const column = {content: value.key, selected: true, column: value};\n const defaultSort = value.defaultSort ?? 'noDefault';\n this.formGroup.patchValue({column, defaultSort});\n this.formGroup.get('column')?.disable();\n this._prefillColumn = [column];\n }\n public get prefillColumn(): ListItem[] | null {\n return this._prefillColumn;\n }\n\n private _type!: DocumentenApiColumnModalType;\n @Input() public set type(value: DocumentenApiColumnModalType) {\n this._type = value;\n if (value === 'edit') {\n this.formGroup.get('column')?.disable;\n }\n }\n public get type(): DocumentenApiColumnModalType {\n return this._type;\n }\n\n private readonly _availableColumns$ = new BehaviorSubject<ConfiguredColumn[]>([]);\n @Input() public set availableColumns(value: ConfiguredColumn[]) {\n if (!value) return;\n\n this._availableColumns$.next(value);\n }\n\n public readonly availableColumns$: Observable<ListItem[]> = combineLatest([\n this._availableColumns$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([columns]) =>\n columns.map((column: ConfiguredColumn) => ({\n content: this.translateService.instant(`zgw.documentColumns.${column.key}`),\n selected: false,\n column,\n }))\n )\n );\n\n private _defaultSortedColumn!: ConfiguredColumn | undefined;\n @Input() public set configuredColumns(value: ConfiguredColumn[]) {\n if (!value) return;\n\n this._defaultSortedColumn = value.find((column: ConfiguredColumn) => !!column.defaultSort);\n }\n\n @Output() closeModal = new EventEmitter<DocumentenApiColumnModalTypeCloseEvent>();\n\n public formGroup = this.fb.group({\n column: this.fb.control(\n {content: '', selected: false, column: {} as ConfiguredColumn},\n Validators.required\n ),\n defaultSort: this.fb.control<'ASC' | 'DESC' | 'noDefault'>('noDefault'),\n });\n\n private readonly _notificationMessage$ = new BehaviorSubject<string>(\n 'zgw.columns.defaultWarning'\n );\n public readonly notificationObj$: Observable<NotificationContent> = combineLatest([\n this._notificationMessage$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([message]) => ({\n type: 'warning',\n lowContrast: true,\n title: this.translateService.instant('interface.warning'),\n message: this.translateService.instant(message),\n showClose: false,\n }))\n );\n\n public showRadioButtons = true;\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly translateService: TranslateService,\n private readonly zgwDocumentenApiColumnService: DocumentenApiColumnService\n ) {}\n\n public ngOnInit(): void {\n this.openDisableRadioSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onClose(refresh = false): void {\n this.closeModal.emit(refresh ? 'closeAndRefresh' : 'close');\n\n setTimeout(() => {\n this.formGroup.reset();\n this.formGroup.enable();\n this.showRadioButtons = true;\n this._notificationMessage$.next('zgw.columns.defaultWarning');\n this._prefillColumn = null;\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public updateColumn(): void {\n const columnValue: ListItem | null | undefined = this.formGroup.get('column')?.value;\n if (!columnValue || !this.definitionName) {\n return;\n }\n const defaultSortValue = this.formGroup.get('defaultSort')?.value;\n const defaultSort = !defaultSortValue\n ? null\n : defaultSortValue === 'noDefault'\n ? null\n : defaultSortValue;\n const column = {...columnValue.column, defaultSort};\n\n if (\n !!this._defaultSortedColumn &&\n this._defaultSortedColumn.key !== column.key &&\n !!column.defaultSort\n ) {\n this.zgwDocumentenApiColumnService\n .updateColumn(this.definitionName, {\n ...this._defaultSortedColumn,\n defaultSort: null,\n })\n .pipe(\n switchMap(() =>\n this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column)\n )\n )\n .subscribe(() => {\n this.onClose(true);\n });\n\n return;\n }\n\n this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column).subscribe(() => {\n this.onClose(true);\n });\n }\n\n private openDisableRadioSubscription(): void {\n this._subscriptions.add(\n this.formGroup.get('column')?.valueChanges.subscribe(columnValue => {\n this.showRadioButtons = !!columnValue?.column.sortable;\n\n this._notificationMessage$.next(\n this.showRadioButtons ? 'zgw.columns.defaultWarning' : 'zgw.columns.notSortable'\n );\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n} from '@valtimo/shared';\nimport {ButtonModule, IconModule, TagModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, switchMap, tap} from 'rxjs';\nimport {\n ConfiguredColumn,\n DocumentenApiColumnModalType,\n DocumentenApiColumnModalTypeCloseEvent,\n} from '../../models';\nimport {DocumentenApiColumnService} from '../../services';\nimport {DocumentenApiColumnModalComponent} from '../documenten-api-column-modal/documenten-api-column-modal.component';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-documenten-api-columns',\n templateUrl: './documenten-api-columns.component.html',\n styleUrls: ['./documenten-api-columns.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n DocumentenApiColumnModalComponent,\n CarbonListModule,\n TranslateModule,\n ConfirmationModalModule,\n TagModule,\n ButtonModule,\n IconModule,\n ],\n})\nexport class DocumentenApiColumnsComponent implements AfterViewInit {\n @ViewChild('columnKeyTemplate') public readonly columnKeyTemplate: TemplateRef<any>;\n @ViewChild('defaultSortTemplate') public readonly defaultSortTemplate: TemplateRef<any>;\n\n private readonly _reload$ = new BehaviorSubject<null | 'noAnimation'>(null);\n\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => params?.caseDefinitionKey ?? ''),\n filter((caseDefinitionKey: string) => !!caseDefinitionKey)\n );\n\n public readonly caseDefinitionVersionTag$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(map((params: CaseManagementParams | undefined) => params?.caseDefinitionVersionTag ?? ''));\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n this.caseDefinitionKey$,\n this.caseDefinitionVersionTag$,\n ]).pipe(\n switchMap(([caseDefinitionKey, caseDefinitionVersionTag]) =>\n this.editPermissionsService.hasEditPermissions(caseDefinitionKey, caseDefinitionVersionTag)\n )\n );\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n public readonly configuredColumns$: Observable<ConfiguredColumn[]> = combineLatest([\n this.caseDefinitionKey$,\n this._reload$,\n ]).pipe(\n tap(([_, reload]) => {\n if (reload === null) this.loading$.next(true);\n }),\n switchMap(([caseDefinitionKey]) =>\n this.zgwDocumentColumnService.getAdminConfiguredColumns(caseDefinitionKey)\n ),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly configurableColumns$: Observable<ConfiguredColumn[]> =\n this.caseDefinitionKey$.pipe(\n switchMap((caseDefinitionKey: string) =>\n combineLatest([\n this.zgwDocumentColumnService.getAdminConfigurableColumns(caseDefinitionKey),\n this.configuredColumns$,\n ])\n ),\n map(([configurableColumns, configuredColumns]) => {\n const configuredKeys: string[] = configuredColumns.map(\n (column: ConfiguredColumn) => column.key\n );\n\n return configurableColumns.filter(\n (column: ConfiguredColumn) => !configuredKeys.includes(column.key)\n );\n })\n );\n\n public fields: ColumnConfig[];\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'interface.edit',\n callback: this.openEditModal.bind(this),\n type: 'normal',\n },\n {\n label: 'interface.delete',\n callback: this.openDeleteModal.bind(this),\n type: 'danger',\n },\n ];\n\n public readonly columnModalType$ = new BehaviorSubject<DocumentenApiColumnModalType>('closed');\n public readonly prefillColumn$ = new BehaviorSubject<ConfiguredColumn | undefined>(undefined);\n\n public readonly columnToUpdate$ = new BehaviorSubject<ConfiguredColumn | undefined>(undefined);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zgwDocumentColumnService: DocumentenApiColumnService,\n private readonly editPermissionsService: EditPermissionsService\n ) {}\n\n public ngAfterViewInit(): void {\n this.fields = [\n {\n key: 'key',\n label: 'zgw.columns.column',\n viewType: ViewType.TEMPLATE,\n template: this.columnKeyTemplate,\n },\n {\n key: 'defaultSort',\n label: 'listColumn.defaultSort',\n viewType: ViewType.TEMPLATE,\n template: this.defaultSortTemplate,\n },\n ];\n }\n\n public openDeleteModal(column: ConfiguredColumn): void {\n this.columnToUpdate$.next(column);\n this.showDeleteModal$.next(true);\n }\n\n public openEditModal(column: ConfiguredColumn): void {\n this.hasEditPermissions$\n .pipe(\n filter(hasPermission => hasPermission),\n take(1)\n )\n .subscribe(() => {\n this.prefillColumn$.next(column);\n this.columnModalType$.next('edit');\n });\n }\n\n public openAddModal(): void {\n this.columnModalType$.next('add');\n this.prefillColumn$.next(undefined);\n }\n\n public onCloseModal(closeModalEvent: DocumentenApiColumnModalTypeCloseEvent): void {\n if (closeModalEvent === 'closeAndRefresh') this.reload();\n\n this.columnModalType$.next('closed');\n }\n\n public confirmDeleteStatus(column: ConfiguredColumn, definitionName: string): void {\n this.zgwDocumentColumnService.deleteColumn(definitionName, column.key).subscribe(() => {\n this.reload();\n });\n }\n\n public onItemsReordered(definitionName: string, columns: ConfiguredColumn[]): void {\n this.zgwDocumentColumnService.updateConfiguredColumns(definitionName, columns).subscribe(() => {\n this.reload(true);\n });\n }\n\n private reload(noAnimation = false): void {\n this._reload$.next(noAnimation ? 'noAnimation' : null);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n columnModalType: columnModalType$ | async,\n columnToUpdate: columnToUpdate$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n configuredColumns: configuredColumns$ | async,\n configurableColumns: configurableColumns$ | async,\n loading: loading$ | async,\n prefillColumn: prefillColumn$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.configuredColumns\"\n [loading]=\"obs.loading || !fields\"\n [dragAndDrop]=\"true\"\n [dragAndDropDisabled]=\"!(hasEditPermissions$ | async)\"\n (itemsReordered)=\"onItemsReordered(obs.caseDefinitionKey, $event)\"\n (rowClicked)=\"openEditModal($event)\"\n >\n <ng-container carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"addButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-column-modal\n [availableColumns]=\"obs.configurableColumns\"\n [configuredColumns]=\"obs.configuredColumns\"\n [definitionName]=\"obs.caseDefinitionKey\"\n [prefillColumn]=\"obs.prefillColumn\"\n [type]=\"obs.columnModalType\"\n (closeModal)=\"onCloseModal($event)\"\n ></valtimo-documenten-api-column-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.columns.deleteText\"\n [outputOnConfirm]=\"columnToUpdate$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"confirmDeleteStatus($event, obs.caseDefinitionKey)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"primary\"\n [disabled]=\"loading$ | async\"\n (click)=\"openAddModal()\"\n >\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'zgw.columns.add' | translate }}\n </button>\n</ng-template>\n\n<ng-template #columnKeyTemplate let-data=\"data\">\n {{ 'zgw.documentColumns.' + data.item.key | translate }}\n</ng-template>\n\n<ng-template #defaultSortTemplate let-data=\"data\">\n {{\n data.item.defaultSort === null\n ? '-'\n : ('interface.sorting.' + (data.item.defaultSort === 'ASC' ? 'ascending' : 'descending')\n | translate)\n }}\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ConfidentialityLevel =\n | 'openbaar'\n | 'beperkt_openbaar'\n | 'intern'\n | 'zaakvertrouwelijk'\n | 'vertrouwelijk'\n | 'confidentieel'\n | 'geheim'\n | 'zeer_geheim';\n\nconst CONFIDENTIALITY_LEVELS: Array<ConfidentialityLevel> = [\n 'openbaar',\n 'beperkt_openbaar',\n 'intern',\n 'zaakvertrouwelijk',\n 'vertrouwelijk',\n 'confidentieel',\n 'geheim',\n 'zeer_geheim',\n];\n\ntype DocumentStatus = 'in_bewerking' | 'ter_vaststelling' | 'definitief' | 'gearchiveerd';\n\nconst STATUS_ITEMS: Array<DocumentStatus> = [\n 'in_bewerking',\n 'ter_vaststelling',\n 'definitief',\n 'gearchiveerd',\n];\n\ntype DocumentLanguage = 'nld' | 'eng' | 'deu';\n\nconst LANGUAGE_ITEMS: Array<DocumentLanguage> = ['nld', 'eng', 'deu'];\n\ninterface DocumentenApiMetadata {\n titel: string;\n beschrijving?: string;\n bestandsnaam?: string;\n vertrouwelijkheidaanduiding?: ConfidentialityLevel;\n auteur: string;\n status?: DocumentStatus;\n creatiedatum: string;\n ontvangstdatum?: string;\n verzenddatum?: string;\n taal: DocumentLanguage;\n informatieobjecttype: string;\n trefwoorden?: string[];\n processInstanceId?: string;\n documentUrlProcessVariable: string | null;\n}\n\ntype AdditionalDocumentDate = 'sent' | 'received' | 'neither';\n\nexport {\n DocumentenApiMetadata,\n ConfidentialityLevel,\n CONFIDENTIALITY_LEVELS,\n DocumentStatus,\n STATUS_ITEMS,\n DocumentLanguage,\n LANGUAGE_ITEMS,\n AdditionalDocumentDate,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {RelatedFile} from '@valtimo/document';\n\ninterface DocumentenApiRelatedFile extends RelatedFile {\n auteur?: string;\n beschrijving?: string;\n bestandsnaam?: string;\n bestandsomvang?: number;\n bronorganisatie?: string;\n creatiedatum?: Date;\n formaat?: string;\n identificatie?: string;\n informatieobjecttype?: string;\n locked?: boolean;\n status?: string;\n taal?: string;\n titel?: String;\n trefwoorden?: string[];\n versie?: number;\n vertrouwelijkheidaanduiding?: string;\n tags?: {content: string}[];\n}\n\nenum DOCUMENTEN_COLUMN_KEYS {\n AUTEUR = 'auteur',\n BESCHRIJVING = 'beschrijving',\n BESTANDSNAAM = 'bestandsnaam',\n BESTANDSOMVANG = 'bestandsomvang',\n BRONORGANISATIE = 'bronorganisatie',\n CREATIEDATUM = 'creatiedatum',\n FORMAAT = 'formaat',\n IDENTIFICATIE = 'identificatie',\n INFORMATIEOBJECTTYPE = 'informatieobjecttype',\n LOCKED = 'locked',\n STATUS = 'status',\n TAAL = 'taal',\n TITEL = 'titel',\n TREFWOORDEN = 'trefwoorden',\n VERSIE = 'versie',\n VERTROUWELIJKHEIDAANDUIDING = 'vertrouwelijkheidaanduiding',\n TAGS = 'tags',\n}\n\nexport {DocumentenApiRelatedFile, DOCUMENTEN_COLUMN_KEYS};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ViewType} from '@valtimo/components';\nimport {DOCUMENTEN_COLUMN_KEYS} from './documenten-api.model';\n\ninterface ConfiguredColumn {\n key: string;\n sortable: boolean;\n filterable: boolean;\n defaultSort: 'ASC' | 'DESC' | null;\n}\n\nconst COLUMN_VIEW_TYPES: {[key: string]: ViewType} = {\n [DOCUMENTEN_COLUMN_KEYS.CREATIEDATUM]: ViewType.DATE,\n [DOCUMENTEN_COLUMN_KEYS.LOCKED]: ViewType.BOOLEAN,\n [DOCUMENTEN_COLUMN_KEYS.TREFWOORDEN]: ViewType.TAGS,\n [DOCUMENTEN_COLUMN_KEYS.STATUS]: ViewType.TEMPLATE,\n [DOCUMENTEN_COLUMN_KEYS.TAAL]: ViewType.TEMPLATE,\n [DOCUMENTEN_COLUMN_KEYS.VERTROUWELIJKHEIDAANDUIDING]: ViewType.TEMPLATE,\n};\n\nexport {ConfiguredColumn, COLUMN_VIEW_TYPES};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype DocumentenApiColumnModalType = 'edit' | 'add' | 'closed';\n\ntype DocumentenApiColumnModalTypeCloseEvent = 'close' | 'closeAndRefresh';\n\nexport {DocumentenApiColumnModalType, DocumentenApiColumnModalTypeCloseEvent};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ProcessDefinition {\n visibleInMenu: any;\n category: string;\n deploymentId: string;\n description: string;\n diagram: string;\n historyTimeToLive: string;\n id: string;\n key: string;\n name: string;\n resource: string;\n startableInTasklist: boolean;\n suspended: false;\n tenantId: string;\n version: number;\n versionTag: string;\n}\n\ninterface UploadProcessLink {\n processDefinitionKey: string;\n processName: string;\n}\n\nexport {UploadProcessLink, ProcessDefinition};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface DocumentenApiManagementVersion {\n selectedVersion: string;\n detectedVersions: string;\n}\n\ninterface SupportedDocumentenApiFeatures {\n selectedVersion: string;\n supportsFilterableColumns: boolean;\n supportsSortableColumns: boolean;\n supportsTrefwoorden: boolean;\n supportsUpdatingDefinitiveDocument: boolean;\n}\n\nexport {DocumentenApiManagementVersion, SupportedDocumentenApiFeatures};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface DocumentenApiFilterModel {\n auteur?: string;\n vertrouwelijkheidaanduiding?: string;\n creatiedatumFrom?: string;\n creatiedatumTo?: string;\n informatieobjectype?: string;\n trefwoorden?: string;\n titel?: string;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-metadata.model';\nexport * from './configured-column.model';\nexport * from './documenten-api-column-modal.model';\nexport * from './documenten-api.model';\nexport * from './documenten-api-link-process.model';\nexport * from './documenten-api-version.model';\nexport * from './documenten-api-filter.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule} from '@angular/forms';\nimport {ActivatedRoute, ParamMap} from '@angular/router';\nimport {TrashCan16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {ConfidentialityLevel} from '@valtimo/components';\nimport {DocumentService, DocumentType} from '@valtimo/document';\nimport {\n ButtonModule,\n DatePicker,\n DatePickerInputModule,\n DatePickerModule,\n DropdownModule,\n IconModule,\n IconService,\n InputModule,\n ListItem,\n} from 'carbon-components-angular';\nimport flatpickr from 'flatpickr';\nimport {\n combineLatest,\n debounceTime,\n filter,\n map,\n Observable,\n startWith,\n Subscription,\n switchMap,\n} from 'rxjs';\nimport {DocumentenApiFilterModel} from '../../models';\nimport {DocumentenApiTag} from '../../models/documenten-api-tag.model';\nimport {DocumentenApiTagService} from '../../services';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-case-detail-tab-documenten-api-filter',\n templateUrl: './documenten-api-filter.component.html',\n styleUrls: ['./documenten-api-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n DatePickerInputModule,\n DatePickerModule,\n DropdownModule,\n IconModule,\n InputModule,\n TranslateModule,\n ReactiveFormsModule,\n ],\n})\nexport class DocumentenApiFilterComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('creationDateFrom') public readonly creationDateFromPicker: DatePicker;\n @ViewChild('creationDateTo') public readonly creationDateToPicker: DatePicker;\n @Output() public filterEvent = new EventEmitter<DocumentenApiFilterModel>();\n\n private readonly _subscriptions = new Subscription();\n private readonly _confidentialityLevels: Array<ConfidentialityLevel> = [\n 'openbaar',\n 'beperkt_openbaar',\n 'intern',\n 'zaakvertrouwelijk',\n 'vertrouwelijk',\n 'confidentieel',\n 'geheim',\n 'zeer_geheim',\n ];\n\n private readonly _filter$ = this.route.queryParamMap.pipe(\n map(queryParams => {\n let {sort, ...filter} = queryParams['params'];\n if (this.formGroup) {\n if (!!filter.trefwoorden) {\n filter = {...filter, trefwoorden: this.convertTrefwoordenParam(filter.trefwoorden)};\n }\n this.formGroup.patchValue(filter, {emitEvent: false});\n }\n return filter;\n })\n );\n\n public readonly confidentialityLevels$: Observable<ListItem[]> = combineLatest([\n this._filter$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([filter]) =>\n this._confidentialityLevels.map((confidentialityLevel: ConfidentialityLevel) => ({\n content: this.translateService.instant(`document.${confidentialityLevel}`),\n selected: filter?.vertrouwelijkheidaanduiding === confidentialityLevel,\n id: confidentialityLevel,\n }))\n ),\n startWith([])\n );\n\n private readonly _context = getCaseManagementRouteParams(this.route);\n\n public readonly informationObjectTypes$: Observable<ListItem[]> = this._context.pipe(\n switchMap(params =>\n combineLatest([\n this.documentService.getDocumentTypesForCase(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n ),\n this._filter$,\n ])\n ),\n map(([types, filter]) =>\n types.map((type: DocumentType) => ({\n content: type.name,\n selected: filter?.informatieobjecttype === type.url,\n id: type.url,\n }))\n ),\n startWith([])\n );\n\n public readonly tags$: Observable<ListItem[]> = this.route.paramMap.pipe(\n filter((paramMap: ParamMap) => !!paramMap.get('caseDefinitionKey')),\n switchMap((paramMap: ParamMap) =>\n combineLatest([\n this.documentenApiTagService.getTags(paramMap.get('caseDefinitionKey') ?? ''),\n this.route.queryParamMap,\n ])\n ),\n map(([tags, queryParamMap]) => {\n const selectedTags = this.convertTrefwoordenParam(queryParamMap['params']?.trefwoorden).map(\n (item: ListItem) => item.content\n );\n return tags.map((tag: DocumentenApiTag) => ({\n content: tag.value,\n selected: selectedTags.includes(tag.value),\n }));\n }),\n startWith([])\n );\n\n public readonly formGroup = this.fb.group({\n auteur: this.fb.control(''),\n vertrouwelijkHeidaanduiding: this.fb.control({}),\n creatiedatumFrom: this.fb.control(''),\n creatiedatumTo: this.fb.control(''),\n informatieObjectType: this.fb.control({}),\n trefwoorden: this.fb.control([]),\n titel: this.fb.control(''),\n });\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly fb: FormBuilder,\n private readonly iconService: IconService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly documentenApiTagService: DocumentenApiTagService\n ) {\n this.iconService.register(TrashCan16);\n }\n\n public ngOnInit(): void {\n this.openFormValueSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public ngAfterViewInit(): void {\n const creationDateFromControlValue = this.formGroup.get('creatiedatumFrom')?.value;\n const creationDateToControlValue = this.formGroup.get('creatiedatumTo')?.value;\n\n if (!!creationDateFromControlValue) {\n this.creationDateFromPicker.writeValue([\n flatpickr.formatDate(new Date(creationDateFromControlValue), 'd-m-Y'),\n ]);\n }\n\n if (!!creationDateToControlValue) {\n this.creationDateToPicker.writeValue([\n flatpickr.formatDate(new Date(creationDateToControlValue), 'd-m-Y'),\n ]);\n }\n }\n\n public resetFilter(): void {\n this.creationDateFromPicker.writeValue([]);\n this.creationDateToPicker.writeValue([]);\n this.formGroup.reset();\n }\n\n public onDateSelected(control: 'createdTo' | 'createdFrom', event: any): void {\n if (control === 'createdFrom') {\n this.formGroup.get('creatiedatumFrom')?.patchValue(event);\n return;\n }\n\n this.formGroup.get('creatiedatumTo')?.patchValue(event);\n }\n\n private openFormValueSubscription(): void {\n this._subscriptions.add(\n this.formGroup.valueChanges.pipe(debounceTime(500)).subscribe(formValue => {\n this.filterEvent.emit({\n ...(!!formValue.auteur && {auteur: formValue.auteur}),\n ...(!!formValue.titel && {titel: formValue.titel}),\n ...(!!formValue.creatiedatumFrom && {\n creatiedatumFrom: flatpickr.formatDate(new Date(formValue.creatiedatumFrom), 'Y-m-d'),\n }),\n ...(!!formValue.creatiedatumTo && {\n creatiedatumTo: flatpickr.formatDate(new Date(formValue.creatiedatumTo), 'Y-m-d'),\n }),\n ...(!!(formValue.vertrouwelijkHeidaanduiding as ListItem)?.id && {\n vertrouwelijkheidaanduiding: (formValue.vertrouwelijkHeidaanduiding as ListItem).id,\n }),\n ...(!!(formValue.informatieObjectType as ListItem)?.id && {\n informatieobjecttype: (formValue.informatieObjectType as ListItem).id,\n }),\n ...(!!formValue.trefwoorden &&\n formValue.trefwoorden.length > 0 && {\n trefwoorden: (formValue.trefwoorden as ListItem[]).reduce(\n (acc, curr, index) => (index === 0 ? curr.content : `${acc},${curr.content}`),\n ''\n ),\n }),\n });\n })\n );\n }\n\n private convertTrefwoordenParam(stringArray: string | undefined): ListItem[] {\n if (!stringArray) return [];\n const array = stringArray.split(',');\n\n return array.map((content: string) => ({\n content,\n selected: true,\n }));\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"valtimo-documenten-api-filter\" (click)=\"$event.stopImmediatePropagation()\">\n <form\n *ngIf=\"{\n confidentialityLevels: confidentialityLevels$ | async,\n informationObjectTypes: informationObjectTypes$ | async,\n tags: tags$ | async,\n } as obs\"\n class=\"valtimo-documenten-api-filter__form\"\n [formGroup]=\"formGroup\"\n >\n <cds-text-label>\n {{ 'zgw.documentColumns.titel' | translate }}\n\n <input cdsText formControlName=\"titel\" />\n </cds-text-label>\n\n <cds-dropdown\n [disabled]=\"!obs.informationObjectTypes?.length\"\n [dropUp]=\"false\"\n [label]=\"'zgw.documentColumns.informatieobjecttype' | translate\"\n formControlName=\"informatieObjectType\"\n >\n <cds-dropdown-list [items]=\"obs.informationObjectTypes\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-documenten-api-filter__dates\">\n <cds-date-picker\n #creationDateFrom\n [label]=\"'interface.labels.dateCreationFrom' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('createdFrom', $event)\"\n ></cds-date-picker>\n\n <cds-date-picker\n #creationDateTo\n [label]=\"'interface.labels.dateCreationTo' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('createdTo', $event)\"\n ></cds-date-picker>\n </div>\n\n <cds-text-label>\n {{ 'zgw.documentColumns.auteur' | translate }}\n\n <input cdsText formControlName=\"auteur\" />\n </cds-text-label>\n\n <cds-dropdown\n [dropUp]=\"false\"\n [label]=\"'zgw.documentColumns.vertrouwelijkheidaanduiding' | translate\"\n formControlName=\"vertrouwelijkHeidaanduiding\"\n >\n <cds-dropdown-list [items]=\"obs.confidentialityLevels\"></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-dropdown\n [label]=\"'zgw.documentColumns.trefwoorden' | translate\"\n formControlName=\"trefwoorden\"\n type=\"multi\"\n >\n <cds-dropdown-list [items]=\"obs.tags\"></cds-dropdown-list>\n </cds-dropdown>\n </form>\n\n <footer class=\"valtimo-documenten-api-filter__footer\">\n <button cdsButton=\"tertiary\" (click)=\"resetFilter()\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </footer>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\n\nimport {\n AdditionalDocumentDate,\n ConfidentialityLevel,\n DocumentenApiMetadata,\n DocumentLanguage,\n DocumentStatus,\n SupportedDocumentenApiFeatures,\n} from '../../models';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n from,\n map,\n Observable,\n of,\n startWith,\n Subject,\n Subscription,\n switchMap,\n take,\n} from 'rxjs';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {KeycloakService} from 'keycloak-angular';\nimport {tap} from 'rxjs/operators';\nimport {CommonModule} from '@angular/common';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {\n FormIoStateService,\n InputLabelModule,\n InputModule,\n ModalService,\n SelectModule,\n ValtimoModalService,\n VModalComponent,\n VModalModule,\n} from '@valtimo/components';\n\nimport {\n ButtonModule,\n ComboBoxModule,\n DatePickerModule,\n DropdownModule,\n IconModule,\n InputModule as CarbonInputModule,\n LayerModule,\n ListItem,\n ModalModule,\n RadioModule,\n TagModule,\n TooltipModule,\n} from 'carbon-components-angular';\nimport {DocumentenApiTagService} from '../../services/documenten-api-tag.service';\nimport moment from 'moment';\nimport {DocumentenApiUploadFieldDefaultValues} from '../../models/documenten-api-upload-field.model';\nimport {DocumentenApiVersionService} from '../../services';\n\n@Component({\n selector: 'valtimo-documenten-api-metadata-modal',\n templateUrl: './documenten-api-metadata-modal.component.html',\n styleUrls: ['./documenten-api-metadata-modal.component.scss'],\n standalone: true,\n imports: [\n ButtonModule,\n CarbonInputModule,\n ComboBoxModule,\n CommonModule,\n DatePickerModule,\n DropdownModule,\n IconModule,\n InputLabelModule,\n InputModule,\n ModalModule,\n RadioModule,\n ReactiveFormsModule,\n SelectModule,\n TagModule,\n TooltipModule,\n TranslateModule,\n VModalModule,\n LayerModule,\n ],\n})\nexport class DocumentenApiMetadataModalComponent implements OnInit, OnDestroy {\n @ViewChild('metadataModal') metadataModal: VModalComponent;\n\n @Input() disabled$!: Observable<boolean>;\n @Input() file$!: Observable<any>;\n\n @Input() hideFields: Array<string> = [];\n @Input() defaultValues: DocumentenApiUploadFieldDefaultValues = {};\n @Input() set disableAuthor(value: boolean) {\n if (value) {\n this.auteur.disable();\n } else {\n this.auteur.enable();\n }\n }\n @Input() set disableConfidentialityLevel(value: boolean) {\n if (value) {\n this.confidentialityLevelFormControl.disable();\n } else {\n this.confidentialityLevelFormControl.enable();\n }\n }\n @Input() set disableDescription(value: boolean) {\n if (value) {\n this.beschrijving.disable();\n } else {\n this.beschrijving.enable();\n }\n }\n @Input() set disableDocumentTitle(value: boolean) {\n if (value) {\n this.titel.disable();\n } else {\n this.titel.enable();\n }\n }\n @Input() set disableDocumentType(value: boolean) {\n if (value) {\n this.informatieobjecttypeFormControl.disable();\n } else {\n this.informatieobjecttypeFormControl.enable();\n }\n }\n @Input() set disableFilename(value: boolean) {\n if (value) {\n this.bestandsnaam.disable();\n } else {\n this.bestandsnaam.enable();\n }\n }\n @Input() set disableLanguage(value: boolean) {\n if (value) {\n this.languageFormControl.disable();\n } else {\n this.languageFormControl.enable();\n }\n }\n @Input() set disableStatus(value: boolean) {\n if (value) {\n this.statusFormControl.disable();\n } else {\n this.statusFormControl.enable();\n }\n }\n @Input() supportsTrefwoorden = false;\n @Input() set disableCreationDate(value: boolean) {\n if (value) {\n this.creatiedatum.disable();\n } else {\n this.creatiedatum.enable();\n }\n }\n @Input() isEditMode: boolean;\n\n public readonly open$ = new BehaviorSubject<boolean>(false);\n\n @Input() set open(value: boolean) {\n this.open$.next(value);\n\n if (value) {\n this.modalService.openModal(this.metadataModal);\n } else {\n this.modalService.closeModal();\n }\n }\n\n @Output() metadata: EventEmitter<DocumentenApiMetadata> = new EventEmitter();\n @Output() modalClose: EventEmitter<boolean> = new EventEmitter();\n\n public filenameExtension: string = '';\n public documentenApiMetadataForm: FormGroup = this.fb.group({\n bestandsnaam: this.fb.control(''),\n titel: this.fb.control('', Validators.required),\n auteur: this.fb.control('', Validators.required),\n beschrijving: this.fb.control(''),\n taal: this.fb.control('', Validators.required),\n informatieobjecttype: this.fb.control('', Validators.required),\n status: this.fb.control(''),\n vertrouwelijkheidaanduiding: this.fb.control(''),\n creatiedatum: this.fb.control('', Validators.required),\n ontvangstdatum: this.fb.control(''),\n verzenddatum: this.fb.control(''),\n trefwoorden: this.fb.control([]),\n });\n\n public get confidentialityLevelFormControl(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('vertrouwelijkheidaanduiding');\n }\n public get confidentialityLevelDisabled$(): Observable<boolean> {\n return this.confidentialityLevelFormControl.valueChanges.pipe(\n startWith(null),\n map(() => this.confidentialityLevelFormControl.disabled)\n );\n }\n\n public get informatieobjecttypeFormControl(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('informatieobjecttype');\n }\n public get informatieobjecttypeDisabled$(): Observable<boolean> {\n return this.informatieobjecttypeFormControl.valueChanges.pipe(\n startWith(null),\n map(() => this.informatieobjecttypeFormControl.disabled)\n );\n }\n\n public get languageFormControl(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('taal');\n }\n\n public get languageDisabled$(): Observable<boolean> {\n return this.languageFormControl.valueChanges.pipe(\n startWith(null),\n map(() => this.languageFormControl.disabled)\n );\n }\n\n public get statusFormControl(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('status');\n }\n public get statusDisabled$(): Observable<boolean> {\n return this.statusFormControl.valueChanges.pipe(\n startWith(null),\n map(() => this.informatieobjecttypeFormControl.disabled)\n );\n }\n\n public get tagFormControl(): AbstractControl<string[]> {\n return this.documentenApiMetadataForm.get('trefwoorden');\n }\n\n public get creatiedatum(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('creatiedatum');\n }\n\n public get titel(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('titel');\n }\n\n public get beschrijving(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('beschrijving');\n }\n\n public get auteur(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('auteur');\n }\n\n public get bestandsnaam(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('bestandsnaam');\n }\n\n public readonly editDisabled$ = new BehaviorSubject<boolean>(false);\n\n public readonly CONFIDENTIALITY_LEVELS: Array<ConfidentialityLevel> = [\n 'openbaar',\n 'beperkt_openbaar',\n 'intern',\n 'zaakvertrouwelijk',\n 'vertrouwelijk',\n 'confidentieel',\n 'geheim',\n 'zeer_geheim',\n ];\n public readonly confidentialityLevelItems$: Observable<Array<ListItem>> = combineLatest([\n this.confidentialityLevelFormControl.valueChanges.pipe(\n startWith(this.confidentialityLevelFormControl.value)\n ),\n this.translateService.stream('key'),\n ]).pipe(\n map(([currentConfidentialityLevel]) =>\n this.CONFIDENTIALITY_LEVELS.map(confidentialityLevel => ({\n id: confidentialityLevel,\n content: this.translateService.instant(`document.${confidentialityLevel}`),\n selected: currentConfidentialityLevel === confidentialityLevel,\n }))\n )\n );\n\n public readonly ADDITONAL_DOCUMENT_DATE_OPTIONS: Array<{\n value: AdditionalDocumentDate;\n translationKey: string;\n }> = [\n {\n value: 'neither',\n translationKey: 'document.noAdditionalDate',\n },\n {\n value: 'sent',\n translationKey: 'document.sendDate',\n },\n {\n value: 'received',\n translationKey: 'document.receiptDate',\n },\n ];\n public readonly clearStatusSelection$ = new Subject<null>();\n public readonly additionalDocumentDate$ = new BehaviorSubject<AdditionalDocumentDate>('neither');\n public readonly STATUSES: Array<DocumentStatus> = [\n 'in_bewerking',\n 'ter_vaststelling',\n 'definitief',\n 'gearchiveerd',\n ];\n public readonly RECEIPT_STATUSES: Array<DocumentStatus> = ['definitief', 'gearchiveerd'];\n public readonly formData$ = new BehaviorSubject<DocumentenApiMetadata>(null);\n public readonly statusItems$: Observable<Array<ListItem>> = combineLatest([\n this.additionalDocumentDate$,\n this.statusFormControl.valueChanges.pipe(startWith(this.statusFormControl.value)),\n this.translateService.stream('key'),\n ]).pipe(\n tap(([additionalDocumentDate, currentStatus]) => {\n this.formData$\n .pipe(\n filter(formData => !!formData),\n take(1)\n )\n .subscribe(formData => {\n if (\n additionalDocumentDate === 'received' &&\n (formData.status === 'in_bewerking' || formData.status === 'ter_vaststelling')\n ) {\n this.clearStatusSelection$.next(null);\n }\n });\n }),\n map(([additionalDocumentDate, currentStatus]) =>\n (additionalDocumentDate === 'received' ? this.RECEIPT_STATUSES : this.STATUSES).map(\n status => ({\n id: status,\n content: this.translateService.instant(`document.${status}`),\n selected: currentStatus === status,\n })\n )\n )\n );\n\n public readonly tagItems$: Observable<Array<ListItem>> = combineLatest([\n this.valtimoModalService.caseDefinitionKey$,\n this.tagFormControl.valueChanges.pipe(startWith(this.tagFormControl.value)),\n ]).pipe(\n filter(([caseDefinitionKey]) => !!caseDefinitionKey),\n switchMap(([caseDefinitionKey, tagFormControlValue]) =>\n combineLatest([\n this.documentenApiTagService.getTags(caseDefinitionKey),\n of(tagFormControlValue),\n ])\n ),\n map(([tags, tagFormControlValue]) =>\n tags.map(tag => ({\n id: tag.value,\n content: tag.value,\n selected: !!tagFormControlValue ? tagFormControlValue.includes(tag.value) : false,\n }))\n )\n );\n\n public readonly LANGUAGES: Array<DocumentLanguage> = ['nld', 'eng', 'deu'];\n public languageItems$: Observable<Array<ListItem>> = combineLatest([\n this.languageFormControl.valueChanges.pipe(startWith(this.languageFormControl.value)),\n this.translateService.stream('key'),\n ]).pipe(\n map(([currentLanguage]) => {\n return this.LANGUAGES.map(\n (language: any) =>\n ({\n content: this.translateService.instant(`document.${language}`),\n id: language,\n selected: currentLanguage === language,\n }) as ListItem\n );\n })\n );\n\n public readonly documentId$ = this.formioStateService.documentId$;\n\n public readonly documentTypeItems$: Observable<Array<ListItem>> = combineLatest([\n this.documentId$,\n this.informatieobjecttypeFormControl.valueChanges.pipe(\n startWith(this.informatieobjecttypeFormControl.value)\n ),\n ]).pipe(\n filter(([documentId]) => !!documentId),\n switchMap(([documentId, informatieobjecttypeValue]) =>\n combineLatest([\n this.documentService.getDocumentTypesForDocument(documentId),\n of(informatieobjecttypeValue),\n ])\n ),\n map(([documentTypes, informatieobjecttypeValue]) =>\n documentTypes.map((type: any) => ({\n id: type.url,\n content: type.name,\n selected: informatieobjecttypeValue === type.url,\n }))\n )\n );\n public readonly userEmail$ = from(this.keycloakService.loadUserProfile()).pipe(\n map(userProfile => userProfile?.email || '')\n );\n\n private readonly _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this.valtimoModalService.caseDefinitionKey$.pipe(\n switchMap(caseDefinitionKey =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionKey)\n )\n );\n\n private _subscriptions = new Subscription();\n private _fileSubscription!: Subscription;\n private _fileNameAndAuthorSubscription!: Subscription;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly documentenApiTagService: DocumentenApiTagService,\n private readonly fb: FormBuilder,\n private readonly keycloakService: KeycloakService,\n private readonly modalService: ModalService,\n private readonly translateService: TranslateService,\n private readonly valtimoModalService: ValtimoModalService,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly formioStateService: FormIoStateService\n ) {}\n\n public ngOnInit(): void {\n this.openFileSubscription();\n this.openDisabledSubscription();\n this.openFilenameSubscription();\n this.openDocumentDefinitionSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._fileSubscription?.unsubscribe();\n this._fileNameAndAuthorSubscription?.unsubscribe();\n this.editDisabled$.next(false);\n }\n\n public languageSelected(event: {item: {id: string}}) {\n if (event.item.id) {\n this.documentenApiMetadataForm.patchValue({\n taal: event.item.id,\n });\n }\n }\n\n public tagsSelected(event: Array<ListItem>) {\n this.tagFormControl.patchValue(event.filter(tag => tag.selected).map(tag => tag.id));\n }\n\n public setAdditionalDate(value: AdditionalDocumentDate): void {\n this.additionalDocumentDate$.next(value);\n }\n\n public confidentialityLevelSelected(event: {id: string}) {\n if (event.id) {\n this.documentenApiMetadataForm.patchValue({\n vertrouwelijkheidaanduiding: event.id,\n });\n }\n }\n\n public statusSelected(event: {id: string}) {\n if (event.id) {\n this.documentenApiMetadataForm.patchValue({\n status: event.id,\n });\n }\n }\n\n public informatieobjecttypeSelected(event: {item: {id: string}}) {\n if (event.item.id) {\n this.documentenApiMetadataForm.patchValue({\n informatieobjecttype: event.item.id,\n });\n }\n }\n\n public prefillForm(file) {\n this.prefillFilenameAndAuthor();\n\n if (file) {\n const {\n beschrijving,\n taal,\n informatieobjecttype,\n status,\n vertrouwelijkheidaanduiding,\n ontvangstdatum,\n verzenddatum,\n trefwoorden,\n } = file;\n\n if (verzenddatum) this.additionalDocumentDate$.next('sent');\n else if (ontvangstdatum) this.additionalDocumentDate$.next('received');\n else this.additionalDocumentDate$.next('neither');\n\n const defaultStatus = this.defaultValues.status;\n const validDefaultStatus =\n this.STATUSES.includes(defaultStatus as DocumentStatus) && defaultStatus;\n const validPrefillStatus = this.STATUSES.includes(status) && status;\n\n this.documentenApiMetadataForm.patchValue({\n beschrijving: beschrijving || this.defaultValues.beschrijving,\n taal: taal || this.defaultValues.taal,\n informatieobjecttype: informatieobjecttype || this.defaultValues.informatieobjecttype,\n status: validPrefillStatus || validDefaultStatus || null,\n vertrouwelijkheidaanduiding:\n vertrouwelijkheidaanduiding || this.defaultValues.vertrouwelijkheidaanduiding,\n ontvangstdatum: ontvangstdatum ? new Date(ontvangstdatum) : null,\n verzenddatum: verzenddatum ? new Date(verzenddatum) : null,\n trefwoorden: trefwoorden || this.defaultValues.trefwoorden,\n });\n }\n }\n\n public save(): void {\n this.formatDate('creatiedatum');\n this.formatDate('verzenddatum');\n this.formatDate('ontvangstdatum');\n\n const rawValue = this.documentenApiMetadataForm.getRawValue();\n const mappedRawValue = Object.keys(rawValue).reduce(\n (acc, currentKey) =>\n rawValue[currentKey] !== undefined ? {...acc, [currentKey]: rawValue[currentKey]} : acc,\n {}\n ) as DocumentenApiMetadata;\n\n if (this.documentenApiMetadataForm.valid) this.metadata.emit(mappedRawValue);\n\n this.closeModal();\n }\n\n public closeModal(): void {\n this.modalService.closeModal(() => {\n this.additionalDocumentDate$.next('neither');\n this.modalClose.emit();\n this.clearForm();\n });\n }\n\n private clearForm(): void {\n this.documentenApiMetadataForm.reset();\n }\n\n private prefillFilenameAndAuthor() {\n this._fileNameAndAuthorSubscription?.unsubscribe();\n this._fileNameAndAuthorSubscription = combineLatest([this.file$, this.userEmail$])\n .pipe(\n tap(([file, userEmail]) => {\n const filename = file?.bestandsnaam || this.defaultValues.bestandsnaam || file?.name;\n this.filenameExtension = filename?.split('.')?.pop() || '';\n if (this.filenameExtension.length === filename?.length) {\n this.filenameExtension = '';\n }\n this.documentenApiMetadataForm.patchValue({\n bestandsnaam: filename,\n auteur: file?.auteur || this.defaultValues.auteur || userEmail,\n creatiedatum: file?.creatiedatum || new Date(Date.now()),\n titel:\n file?.titel ||\n this.defaultValues.titel ||\n this.filenameToTitle(file?.name || this.defaultValues.bestandsnaam),\n });\n if (this.areAllFieldsHidden()) {\n this.save();\n }\n })\n )\n .subscribe();\n }\n\n private filenameToTitle(filename?: string) {\n if (!filename) {\n return null;\n }\n\n filename = filename.replace(/\\.[^/.]+$/, '').replace(/[^a-zA-Z0-9]+/g, ' ');\n return filename.charAt(0).toUpperCase() + filename.slice(1);\n }\n\n private formatDate(controlName: string): void {\n const control = this.documentenApiMetadataForm.controls[controlName];\n if (control.value) {\n this.documentenApiMetadataForm.patchValue({\n [controlName]: this.toFormattedDate(control.value),\n });\n }\n }\n\n private toFormattedDate(date: any): string {\n return moment(new Date(date)).format('YYYY-MM-DD');\n }\n\n private openFileSubscription(): void {\n this._fileSubscription?.unsubscribe();\n if (this.file$) {\n this._fileSubscription = combineLatest([\n this.file$,\n this._supportedDocumentenApiFeatures$,\n ]).subscribe(([file, support]) => {\n if (file) {\n this.prefillForm(file);\n this.editDisabled$.next(\n !support.supportsUpdatingDefinitiveDocument &&\n file.status === 'definitief' &&\n this.isEditMode\n );\n }\n });\n }\n }\n\n public openDisabledSubscription(): void {\n this._subscriptions.add(\n this.disabled$?.subscribe(disabled => {\n if (disabled) {\n this.documentenApiMetadataForm.disable();\n } else {\n this.documentenApiMetadataForm.enable();\n }\n })\n );\n }\n\n private openFilenameSubscription() {\n this._subscriptions.add(\n this.bestandsnaam.valueChanges.subscribe(bestandsnaam => {\n if (bestandsnaam && this.filenameExtension) {\n let correctBestandsnaam =\n bestandsnaam.replace(/\\.[^/.]+$/, '') + '.' + this.filenameExtension;\n if (correctBestandsnaam != bestandsnaam) {\n this.documentenApiMetadataForm.patchValue({\n bestandsnaam: correctBestandsnaam,\n });\n }\n }\n })\n );\n }\n\n private openDocumentDefinitionSubscription() {\n this._subscriptions.add(\n combineLatest([this.route?.params || of(null), this.route?.firstChild?.params || of(null)])\n .pipe(\n map(\n ([params, firstChildParams]) =>\n (params?.caseDefinitionKey || firstChildParams?.caseDefinitionKey) as string\n ),\n filter(caseDefinitionKey => !!caseDefinitionKey)\n )\n .subscribe(caseDefinitionKey =>\n this.valtimoModalService.setCaseDefinitionKey(caseDefinitionKey)\n )\n );\n }\n\n private areAllFieldsHidden(): boolean {\n return (\n this.hideFields.includes('aanvullendeDatum') &&\n this.hideFields.includes('auteur') &&\n this.hideFields.includes('vertrouwelijkheidaanduiding') &&\n this.hideFields.includes('creatiedatum') &&\n this.hideFields.includes('beschrijving') &&\n this.hideFields.includes('titel') &&\n this.hideFields.includes('informatieobjecttype') &&\n this.hideFields.includes('bestandsnaam') &&\n this.hideFields.includes('taal') &&\n this.hideFields.includes('status') &&\n this.hideFields.includes('trefwoorden')\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #metadataModal\n *ngIf=\"{\n file: file$ | async,\n disabled: disabled$ | async,\n editDisabled: editDisabled$ | async,\n languageItems: languageItems$ | async,\n confidentialityLevelItems: confidentialityLevelItems$ | async,\n documentTypeItems: documentTypeItems$ | async,\n statusItems: statusItems$ | async,\n tagItems: tagItems$ | async,\n userEmail: userEmail$ | async,\n open: open$ | async,\n additionalDate: additionalDocumentDate$ | async,\n } as obs\"\n [maxWidthPx]=\"1280\"\n (closeEvent)=\"closeModal()\"\n [cdsLayer]=\"1\"\n>\n <div role=\"header\">\n @if (isEditMode) {\n <h3 cdsModalHeaderHeading>\n {{ 'document.editMetadata' | translate }}\n </h3>\n } @else {\n <h3 cdsModalHeaderHeading>\n {{ 'document.fillInMetadata' | translate }}\n </h3>\n }\n </div>\n\n <div role=\"content\">\n @if (obs.open) {\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n }\n </div>\n\n <div role=\"footer\" class=\"metadata-modal-footer\">\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'document.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"obs.disabled || !documentenApiMetadataForm.valid || obs.editDisabled\"\n (click)=\"save()\"\n >\n {{ 'document.save' | translate }}\n </button>\n </div>\n</v-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <form [formGroup]=\"documentenApiMetadataForm\">\n <div class=\"documenten-metadata-form-columns-container\">\n <div class=\"documenten-metadata-form-column\">\n @if (!hideFields.includes('bestandsnaam')) {\n <cds-text-label class=\"documenten-metada-form-input\">\n {{ 'document.filename' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.filenameTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <input\n [value]=\"defaultValues.bestandsnaam\"\n [placeholder]=\"'document.filenamePlaceholder' | translate\"\n cdsText\n type=\"text\"\n id=\"bestandsnaam\"\n formControlName=\"bestandsnaam\"\n />\n </cds-text-label>\n }\n @if (!hideFields.includes('auteur')) {\n <cds-text-label class=\"documenten-metada-form-input\">\n {{ 'document.author' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.authorTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <input\n [value]=\"defaultValues.auteur\"\n [placeholder]=\"'document.authorPlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n id=\"auteur\"\n formControlName=\"auteur\"\n />\n </cds-text-label>\n }\n @if (!hideFields.includes('taal')) {\n <cds-text-label>\n {{ 'document.language' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.languageTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n [disabled]=\"obs.disabled || (languageDisabled$ | async)\"\n [appendInline]=\"true\"\n [placeholder]=\"'document.languagePlaceholder' | translate\"\n id=\"language\"\n (selected)=\"languageSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.languageItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n }\n @if (!hideFields.includes('vertrouwelijkheidaanduiding')) {\n <cds-label>\n {{ 'document.confidentialityLevel' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.confidentialityLevelTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-combo-box\n [placeholder]=\"'document.confidentialityPlaceholder' | translate\"\n id=\"vertrouwelijkheidaanduiding\"\n [appendInline]=\"true\"\n [disabled]=\"obs.disabled || (confidentialityLevelDisabled$ | async)\"\n (selected)=\"confidentialityLevelSelected($event)\"\n (clear)=\"confidentialityLevelFormControl.setValue(null)\"\n >\n <cds-dropdown-list [items]=\"obs.confidentialityLevelItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n }\n @if (!hideFields.includes('informatieobjecttype')) {\n <cds-label>\n {{ 'document.informatieobjecttype' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.informatieobjecttypeTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n [placeholder]=\"'document.informatieobjecttypePlaceholder' | translate\"\n [disabled]=\"obs.disabled || (informatieobjecttypeDisabled$ | async)\"\n id=\"informatieobjecttype\"\n [appendInline]=\"true\"\n (selected)=\"informatieobjecttypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.documentTypeItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n }\n @if (!hideFields.includes('aanvullendeDatum')) {\n <cds-text-label name=\"'additionalDate'\">\n {{ 'document.additionalDate' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.additionalDateTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <cds-radio-group [orientation]=\"'horizontal'\" class=\"documenten-metada-form-input\">\n <cds-radio\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n [value]=\"option.value\"\n [checked]=\"obs.additionalDate === option.value\"\n [required]=\"true\"\n (click)=\"setAdditionalDate(option.value)\"\n name=\"radio-inline\"\n >\n {{ option.translationKey | translate }}\n </cds-radio>\n </cds-radio-group>\n }\n @if (supportsTrefwoorden && !hideFields.includes('trefwoorden')) {\n <cds-text-label>\n {{ 'document.tags' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.tagsTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <div class=\"documenten-metada-form-input\">\n <cds-combo-box\n [type]=\"'multi'\"\n [placeholder]=\"'document.tagsPlaceholder' | translate\"\n [disabled]=\"obs.disabled || obs.tagItems?.length === 0\"\n [appendInline]=\"true\"\n (selected)=\"tagsSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.tagItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n }\n </div>\n\n <div class=\"documenten-metadata-form-column\">\n @if (!hideFields.includes('titel')) {\n <cds-text-label>\n {{ 'document.inputTitle' | translate }}\n <input\n [placeholder]=\"'document.inputTitlePlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n class=\"documenten-metada-form-input\"\n id=\"titel\"\n formControlName=\"titel\"\n />\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.inputTitleTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n }\n @if (!hideFields.includes('beschrijving')) {\n <cds-textarea-label>\n {{ 'document.inputDescription' | translate }}\n <textarea\n [placeholder]=\"'document.inputDescriptionPlaceholder' | translate\"\n [required]=\"false\"\n [rows]=\"5\"\n cdsTextArea\n class=\"documenten-metada-form-description-input documenten-metada-form-input\"\n id=\"beschrijving\"\n formControlName=\"beschrijving\"\n ></textarea>\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.inputDescriptionTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-textarea-label>\n }\n @if (!hideFields.includes('creatiedatum')) {\n <cds-label>\n {{ 'document.creationDate' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.creationDateTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <div class=\"documenten-metada-form-input\">\n <cds-date-picker\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"creatiedatum\"\n formControlName=\"creatiedatum\"\n >\n </cds-date-picker>\n </div>\n </cds-label>\n }\n @if (!hideFields.includes('status')) {\n <cds-label>\n {{ 'document.status' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.statusTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-combo-box\n [placeholder]=\"'document.statusPlaceholder' | translate\"\n [disabled]=\"obs.disabled || (statusDisabled$ | async)\"\n id=\"status\"\n [appendInline]=\"true\"\n (selected)=\"statusSelected($event)\"\n (clear)=\"statusFormControl.setValue(null)\"\n >\n <cds-dropdown-list [items]=\"obs.statusItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n }\n @if (!hideFields.includes('aanvullendeDatum')) {\n <cds-date-picker\n *ngIf=\"obs.additionalDate === 'received'\"\n [label]=\"'document.additionalDate' | translate\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"ontvangstdatum\"\n formControlName=\"ontvangstdatum\"\n ></cds-date-picker>\n <cds-date-picker\n *ngIf=\"obs.additionalDate === 'sent'\"\n [label]=\"'document.additionalDate' | translate\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"verzenddatum\"\n formControlName=\"verzenddatum\"\n ></cds-date-picker>\n }\n </div>\n </div>\n </form>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Filter16, TagGroup16, Upload16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {PermissionRequest, PermissionService} from '@valtimo/access-control';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n DEFAULT_PAGINATION,\n DEFAULT_PAGINATOR_CONFIG,\n DocumentenApiMetadata,\n Pagination,\n SortState,\n ViewType,\n} from '@valtimo/components';\nimport {CaseSettings, DocumentService} from '@valtimo/document';\nimport {\n CAN_CREATE_RESOURCE_PERMISSION,\n CAN_DELETE_RESOURCE_PERMISSION,\n CAN_MODIFY_RESOURCE_PERMISSION,\n CAN_VIEW_RESOURCE_PERMISSION,\n DownloadService,\n RESOURCE_PERMISSION_RESOURCE,\n UploadProviderService,\n} from '@valtimo/resource';\nimport {UserProviderService} from '@valtimo/security';\nimport {ConfigService, Direction} from '@valtimo/shared';\nimport {ButtonModule, DialogModule, IconModule, IconService} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n Observable,\n of,\n ReplaySubject,\n Subject,\n Subscription,\n} from 'rxjs';\nimport {catchError, filter, map, switchMap, take, tap, shareReplay} from 'rxjs/operators';\nimport {\n COLUMN_VIEW_TYPES,\n ConfiguredColumn,\n DOCUMENTEN_COLUMN_KEYS,\n DocumentenApiFilterModel,\n DocumentenApiRelatedFile,\n SupportedDocumentenApiFeatures,\n} from '../../models';\nimport {\n DocumentenApiUploadFieldDefaultValues,\n DocumentenApiUploadFields,\n} from '../../models/documenten-api-upload-field.model';\nimport {DocumentenApiColumnService, DocumentenApiVersionService} from '../../services';\nimport {DocumentenApiDocumentService} from '../../services/documenten-api-document.service';\nimport {DocumentenApiFilterComponent} from '../documenten-api-filter/documenten-api-filter.component';\nimport {DocumentenApiMetadataModalComponent} from '../documenten-api-metadata-modal/documenten-api-metadata-modal.component';\n\n@Component({\n selector: 'valtimo-case-detail-tab-documenten-api-documents',\n templateUrl: './documenten-api-documents.component.html',\n styleUrls: ['./documenten-api-documents.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n CarbonListModule,\n DocumentenApiMetadataModalComponent,\n ButtonModule,\n IconModule,\n TranslateModule,\n DocumentenApiFilterComponent,\n DialogModule,\n ConfirmationModalModule,\n ],\n})\nexport class CaseDetailTabDocumentenApiDocumentsComponent implements OnInit, OnDestroy {\n @ViewChild('fileInput') fileInput: ElementRef;\n @ViewChild('translationTemplate') translationTemplate: TemplateRef<any>;\n\n private readonly _caseDefinitionKey$ = this.route.params.pipe(\n map(params => params?.caseDefinitionKey ?? ''),\n filter((caseDefinitionKey: string) => !!caseDefinitionKey)\n );\n private readonly _caseSettings$ = this._caseDefinitionKey$.pipe(\n switchMap((caseDefinitionKey: string) =>\n this.documentService.getCaseSettings(caseDefinitionKey)\n )\n );\n\n public readonly supportedDocumentenApiFeatures$ =\n new BehaviorSubject<SupportedDocumentenApiFeatures | null>(null);\n\n private readonly _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this._caseDefinitionKey$.pipe(\n switchMap(caseDefinitionName =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionName)\n ),\n tap(supportedDocumentenApiFeatures =>\n this.supportedDocumentenApiFeatures$.next(supportedDocumentenApiFeatures)\n )\n );\n\n public readonly fields$: Observable<ColumnConfig[]> = this._caseDefinitionKey$.pipe(\n tap(() => this.fieldsLoading$.next(true)),\n switchMap(caseDefinitionKey =>\n combineLatest([\n this.documentenApiColumnService.getConfiguredColumns(caseDefinitionKey),\n this._supportedDocumentenApiFeatures$,\n this._sort$,\n ])\n ),\n map(([columns, supportedDocumentenApiFeatures, sort]) => {\n const defaultSortColumn: ConfiguredColumn | undefined = columns.find(\n (column: ConfiguredColumn) => !!column.defaultSort\n );\n if (\n !!defaultSortColumn &&\n !sort?.sort &&\n supportedDocumentenApiFeatures.supportsSortableColumns\n ) {\n this._sort$.next({sort: `${defaultSortColumn.key},${defaultSortColumn.defaultSort}`});\n }\n\n return columns.map((column: ConfiguredColumn) => ({\n key: column.key === DOCUMENTEN_COLUMN_KEYS.BESTANDSOMVANG ? 'size' : column.key,\n label: `zgw.documentColumns.${column.key}`,\n viewType: !COLUMN_VIEW_TYPES[column.key] ? ViewType.TEXT : COLUMN_VIEW_TYPES[column.key],\n ...(COLUMN_VIEW_TYPES[column.key] === ViewType.TEMPLATE && {\n template: this.translationTemplate,\n templateData: {key: column.key},\n }),\n ...(column.key === DOCUMENTEN_COLUMN_KEYS.CREATIEDATUM && {format: 'DD-MM-YYYY'}),\n sortable: column.sortable && supportedDocumentenApiFeatures.supportsSortableColumns,\n }));\n }),\n tap(() => this.fieldsLoading$.next(false))\n );\n public document: DocumentenApiRelatedFile;\n public actionItems: ActionItem[] = [\n {\n label: 'document.download',\n callback: this.onDownloadActionClick.bind(this),\n disabledCallback: this.downloadDisabled.bind(this),\n type: 'normal',\n },\n {\n label: 'document.edit',\n callback: this.onEditMetadata.bind(this),\n disabledCallback: this.editDisabled.bind(this),\n type: 'normal',\n },\n {\n label: 'document.delete',\n callback: this.onDeleteActionClick.bind(this),\n disabledCallback: this.deleteDisabled.bind(this),\n type: 'danger',\n },\n ];\n\n public readonly documentId$: Observable<string> = this.route.params.pipe(\n map(params => params?.documentId),\n filter(documentId => !!documentId)\n );\n\n public isAdmin: boolean;\n public showZaakLinkWarning: boolean;\n public uploadProcessLinkedSet = false;\n public uploadProcessLinked!: boolean;\n\n public isEditMode$ = new BehaviorSubject<boolean>(false);\n\n public readonly acceptedFiles: string | null =\n this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n\n public readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n public readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n public readonly showModal$ = new Subject<null>();\n public readonly showUploadModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteConfirmationModal$ = new BehaviorSubject<boolean>(false);\n\n public readonly uploading$ = new BehaviorSubject<boolean>(false);\n private readonly _itemsLoading$ = new BehaviorSubject<boolean>(true);\n public readonly fieldsLoading$ = new BehaviorSubject<boolean>(true);\n public readonly loading$ = combineLatest([this._itemsLoading$, this.fieldsLoading$]).pipe(\n map(([itemsLoading, fieldsLoading]) => itemsLoading || fieldsLoading)\n );\n\n public readonly filter$ = new ReplaySubject<DocumentenApiFilterModel | null>();\n public readonly pagination$ = new BehaviorSubject<Pagination>(DEFAULT_PAGINATION);\n private readonly _refetch$ = new BehaviorSubject<null>(null);\n private readonly _sort$ = new ReplaySubject<{sort: string} | null>();\n private readonly valtimoEndpointUri!: string;\n\n public readonly paginatorConfig = {\n ...DEFAULT_PAGINATOR_CONFIG,\n itemsPerPageOptions: [5, 10, 20, 50, 100],\n };\n\n public sortState$: Observable<SortState | null> = this._sort$.pipe(\n filter(sortValue => !!sortValue?.sort),\n map(sortValue => this.getSortStateFromSortString(sortValue?.sort))\n );\n\n public uploadFields$: Observable<DocumentenApiUploadFields> = this.documentId$.pipe(\n switchMap(documentId => this.documentenApiDocumentService.getPrefilledUploadFields(documentId)),\n map(uploadFields =>\n uploadFields.reduce(\n (acc, curr) => ({\n ...acc,\n [curr.key]: {\n key: curr.key,\n defaultValue: curr.defaultValue,\n visible: curr.visible,\n readonly: curr.readonly,\n },\n }),\n {}\n )\n )\n );\n\n public defaultValues$: Observable<DocumentenApiUploadFieldDefaultValues> =\n this.uploadFields$.pipe(\n map(formFields => ({\n auteur: formFields?.auteur?.defaultValue,\n vertrouwelijkheidaanduiding: formFields?.vertrouwelijkheidaanduiding?.defaultValue,\n beschrijving: formFields?.beschrijving?.defaultValue,\n titel: formFields?.titel?.defaultValue,\n informatieobjecttype: formFields?.informatieobjecttype?.defaultValue,\n bestandsnaam: formFields?.bestandsnaam?.defaultValue,\n taal: formFields?.taal?.defaultValue,\n status: formFields?.status?.defaultValue,\n trefwoorden: formFields?.trefwoorden?.defaultValue\n ?.split(',')\n ?.map(tag => tag.trim())\n ?.filter(tag => !!tag),\n }))\n );\n\n public hideFields$: Observable<Array<string>> = this.uploadFields$.pipe(\n map(formFields => {\n if (formFields) {\n return Object.keys(formFields).filter(field => !formFields[field]?.visible);\n }\n return [];\n })\n );\n\n public relatedFiles$: Observable<Array<DocumentenApiRelatedFile>> = combineLatest([\n this.documentId$,\n this.route.queryParamMap,\n this._refetch$,\n ]).pipe(\n tap(() => this._itemsLoading$.next(true)),\n switchMap(([documentId, queryParams]) =>\n combineLatest([\n this.documentenApiDocumentService.getFilteredZakenApiDocuments(\n documentId,\n queryParams['params']\n ),\n this.translateService.stream('key'),\n ])\n ),\n map(([relatedFiles]) => {\n this.pagination$.next({\n ...this.pagination$.getValue(),\n collectionSize: relatedFiles.totalElements,\n });\n const translatedFiles = relatedFiles?.content?.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n size: this.bytesToMegabytes(file.bestandsomvang),\n tags: file.trefwoorden?.map((trefwoord: string) => ({\n content: trefwoord,\n })),\n }));\n return translatedFiles || [];\n }),\n tap(() => {\n this._itemsLoading$.next(false);\n }),\n catchError(() => {\n this.showZaakLinkWarning = true;\n this._itemsLoading$.next(false);\n return of([]);\n }),\n shareReplay({bufferSize: 1, refCount: true})\n );\n\n public readonly enablePbacDocumentenApiDocuments$: Observable<boolean> =\n this.configService.getFeatureToggleObservable('enablePbacDocumentenApiDocuments');\n\n public filePermissions: {\n [fileId: string]: {canView: boolean; canModify: boolean; canDelete: boolean};\n } = {};\n\n public readonly canCreateResource$: Observable<boolean> = this.documentId$.pipe(\n switchMap(documentId =>\n this.getPermission(CAN_CREATE_RESOURCE_PERMISSION, {\n resource: RESOURCE_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier: documentId,\n })\n )\n );\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly configService: ConfigService,\n private readonly documentenApiColumnService: DocumentenApiColumnService,\n private readonly documentenApiDocumentService: DocumentenApiDocumentService,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly documentService: DocumentService,\n private readonly downloadService: DownloadService,\n private readonly iconService: IconService,\n private readonly permissionService: PermissionService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly userProviderService: UserProviderService\n ) {\n this.iconService.register(Filter16);\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public ngOnInit(): void {\n this.setInitialParams();\n this.setUploadProcessLinked();\n this.isUserAdmin();\n this.iconService.registerAll([Filter16, TagGroup16, Upload16]);\n this.registerPermissionSubscriptions();\n }\n\n public registerPermissionSubscriptions(): void {\n this._subscriptions.add(\n this.relatedFiles$\n .pipe(\n switchMap(files =>\n combineLatest({\n files: of(files),\n canView: this.getPermissions(files, CAN_VIEW_RESOURCE_PERMISSION),\n canModify: this.getPermissions(files, CAN_MODIFY_RESOURCE_PERMISSION),\n canDelete: this.getPermissions(files, CAN_DELETE_RESOURCE_PERMISSION),\n })\n )\n )\n .subscribe(permissions =>\n permissions.files.map(\n file =>\n (this.filePermissions[file.fileId] = {\n canView: permissions.canView[file.fileId],\n canModify: permissions.canModify[file.fileId],\n canDelete: permissions.canDelete[file.fileId],\n })\n )\n )\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onDeleteActionClick(item: DocumentenApiRelatedFile): void {\n this.document = item;\n this.showDeleteConfirmationModal$.next(true);\n }\n\n public deleteDocument(): void {\n this._itemsLoading$.next(true);\n this.documentenApiDocumentService.deleteDocument(this.document).subscribe(() => {\n this.refetchDocuments();\n });\n }\n\n public bytesToMegabytes(bytes: number | undefined): string {\n if (!bytes) return '';\n\n const megabytes = bytes / (1024 * 1024);\n if (megabytes < 1) {\n return `${Math.ceil(megabytes * 1000)} KB`;\n } else if (megabytes < 1000) {\n return megabytes.toFixed(2) + ' MB';\n }\n\n return (megabytes / 1000).toFixed(2) + ' GB';\n }\n\n public getUploadButtonTooltip(): string {\n if (this.uploadProcessLinkedSet && this.uploadProcessLinked) {\n return 'Upload';\n } else if (this.isAdmin) {\n return 'case.documenten.noProcessLinked.adminRole';\n }\n\n return 'case.documenten.noProcessLinked.regularUser';\n }\n\n public isUserAdmin() {\n this.userProviderService\n .getUserSubject()\n .pipe(take(1))\n .subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n () => {\n this.isAdmin = false;\n }\n );\n }\n\n public metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n\n combineLatest([this.fileToBeUploaded$, this.documentId$])\n .pipe(take(1))\n .pipe(\n tap(([file, documentId]) => {\n if (!file) return;\n if (this.isEditMode$.getValue()) {\n this.documentenApiDocumentService.updateDocument(file, metadata).subscribe(() => {\n this.refetchDocuments();\n this.uploading$.next(false);\n this.fileToBeUploaded$.next(null);\n });\n } else {\n this.uploadProviderService\n .uploadFileWithMetadata(file, documentId, metadata)\n .subscribe(() => {\n this.refetchDocuments();\n this.filter$.next(null);\n this.pagination$.next(DEFAULT_PAGINATION);\n this.uploading$.next(false);\n this.fileToBeUploaded$.next(null);\n });\n }\n })\n )\n .subscribe();\n }\n\n public onDownloadActionClick(file: DocumentenApiRelatedFile): void {\n this.downloadDocument(file, true);\n }\n\n public onEditMetadata(file: File): void {\n this.isEditMode$.next(true);\n this.fileToBeUploaded$.next(file);\n this.showUploadModal$.next(true);\n }\n\n public closeMetadataModal(): void {\n this.showUploadModal$.next(false);\n }\n\n public onFileSelected(event: any): void {\n this.isEditMode$.next(false);\n this.fileToBeUploaded$.next(event.target.files[0]);\n this.showUploadModal$.next(true);\n this.resetFileInput();\n }\n\n public onNavigateToCaseAdminClick(): void {\n this._caseSettings$.pipe(take(1)).subscribe((caseSettings: CaseSettings) => {\n this.router.navigate([\n `/case-management/case/${caseSettings.caseDefinitionKey}/version/${caseSettings.caseDefinitionVersionTag}/zgw`,\n ]);\n });\n }\n\n public onRowClick(event: any): void {\n if (this.filePermissions[event.fileId]?.canView) {\n this.downloadDocument(event, false);\n }\n }\n\n public onPaginationClicked(page: number): void {\n this.pagination$.next({...this.pagination$.getValue(), page});\n }\n\n public onPaginationSet(size: number): void {\n const {collectionSize, page} = this.pagination$.getValue();\n const resetPage: boolean = Math.ceil(+collectionSize / size) <= +page && +collectionSize > 0;\n this.pagination$.next({...this.pagination$.getValue(), size, ...(resetPage && {page: 1})});\n }\n\n public onUploadButtonClick(): void {\n this.fileInput.nativeElement.click();\n }\n\n public onFilterEvent(filter: DocumentenApiFilterModel | null): void {\n this.filter$.next(filter);\n this.pagination$.next({...this.pagination$.getValue(), ...DEFAULT_PAGINATION});\n }\n\n public onSortChanged(sortState: SortState): void {\n this._sort$.next(\n sortState.isSorting\n ? {\n sort: `${sortState.state.name === 'size' ? DOCUMENTEN_COLUMN_KEYS.BESTANDSOMVANG : sortState.state.name},${sortState.state.direction}`,\n }\n : null\n );\n }\n\n public refetchDocuments(): void {\n this._refetch$.next(null);\n }\n\n private downloadDisabled(file: DocumentenApiRelatedFile): boolean {\n return !this.filePermissions[file.fileId]?.canView;\n }\n\n private editDisabled(file: DocumentenApiRelatedFile): boolean {\n return (\n (!this.supportedDocumentenApiFeatures$.value.supportsUpdatingDefinitiveDocument &&\n file.status === 'definitief') ||\n !this.filePermissions[file.fileId]?.canModify\n );\n }\n\n private deleteDisabled(file: DocumentenApiRelatedFile): boolean {\n return !this.filePermissions[file.fileId]?.canDelete;\n }\n\n private downloadDocument(relatedFile: DocumentenApiRelatedFile, forceDownload: boolean): void {\n this.downloadService.downloadFile(\n `${this.valtimoEndpointUri}v1/documenten-api/${relatedFile.pluginConfigurationId}/files/${relatedFile.fileId}/download`,\n relatedFile.bestandsnaam ?? '',\n forceDownload\n );\n }\n\n private openQueryParamsSubscription(): void {\n this._subscriptions.add(\n combineLatest([\n this._caseDefinitionKey$,\n this.documentId$,\n this.filter$,\n this._sort$,\n this.pagination$,\n ]).subscribe(([definitionName, documentId, filter, sort, pagination]) => {\n const {size, page} = pagination;\n this.router.navigate([`/cases/${definitionName}/document/${documentId}/documents`], {\n queryParams: {...filter, ...sort, size, page: page - 1},\n });\n })\n );\n }\n\n private resetFileInput(): void {\n this.fileInput.nativeElement.value = '';\n }\n\n private setUploadProcessLinked(): void {\n this._caseDefinitionKey$\n .pipe(\n switchMap(caseDefinitionKey =>\n this.uploadProviderService.checkUploadProcessLink(caseDefinitionKey)\n ),\n take(1),\n tap(() => {\n this.uploadProcessLinkedSet = true;\n })\n )\n .subscribe((linked: boolean) => {\n this.uploadProcessLinked = linked;\n });\n }\n\n private setInitialParams(): void {\n this.route.queryParamMap\n .pipe(\n take(1),\n map(queryParams => {\n const {sort, size, page, ...filter} = queryParams['params'];\n return {sort, filter, size, page};\n })\n )\n .subscribe(({filter, sort, size, page}) => {\n this._sort$.next({sort});\n this.filter$.next(filter);\n this.pagination$.next({\n ...this.pagination$.getValue(),\n size: +size,\n page: +(page ?? 0) + 1,\n });\n this.openQueryParamsSubscription();\n });\n }\n\n private getSortStateFromSortString(sortString?: string): SortState | null {\n const splitString = sortString && sortString.split(',');\n if (splitString && splitString?.length > 1) {\n return {\n isSorting: true,\n state: {\n name: splitString[0],\n direction: splitString[1] as Direction,\n },\n };\n }\n\n return null;\n }\n\n private getPermissions(\n files: DocumentenApiRelatedFile[],\n permissionRequest: PermissionRequest\n ): Observable<{\n [key: string]: boolean;\n }> {\n return combineLatest(\n files.map(file =>\n this.getPermission(permissionRequest, {\n resource: RESOURCE_PERMISSION_RESOURCE.resourcePermission,\n identifier: file.fileId,\n }).pipe(map(available => ({[file.fileId]: available})))\n )\n ).pipe(\n map(permissions => permissions.reduce((acc, permission) => ({...acc, ...permission}), {}))\n );\n }\n\n private getPermission(permissionRequest: PermissionRequest, context?: any): Observable<boolean> {\n return this.enablePbacDocumentenApiDocuments$.pipe(\n switchMap(enabled => {\n if (!enabled) {\n return of(true);\n }\n return this.permissionService.requestPermission(permissionRequest, context);\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div\n class=\"carbon-document-table-wrapper\"\n *ngIf=\"{\n loading: loading$ | async,\n fieldsLoading: fieldsLoading$ | async,\n uploading: uploading$ | async,\n relatedFiles: relatedFiles$ | async,\n fields: fields$ | async,\n supportedDocumentenApiFeatures: supportedDocumentenApiFeatures$ | async,\n pagination: pagination$ | async,\n sortState: sortState$ | async,\n uploadFields: uploadFields$ | async,\n defaultValues: defaultValues$ | async,\n hideFields: hideFields$ | async,\n } as obs\"\n>\n @if ((!obs.fieldsLoading && obs.fields.length) || obs.fieldsLoading) {\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.relatedFiles\"\n [fields]=\"obs.fields\"\n [initialSortState]=\"obs.sortState\"\n [loading]=\"obs.loading\"\n [pagination]=\"obs.pagination\"\n [paginatorConfig]=\"paginatorConfig\"\n paginationIdentifier=\"documentenApi\"\n (rowClicked)=\"onRowClick($event)\"\n (sortChanged)=\"\n obs?.supportedDocumentenApiFeatures?.supportsSortableColumns && onSortChanged($event)\n \"\n (paginationClicked)=\"onPaginationClicked($event)\"\n (paginationSet)=\"onPaginationSet($event)\"\n hideColumnHeader\n >\n <div carbonToolbarContent>\n <input\n [accept]=\"acceptedFiles\"\n (change)=\"onFileSelected($event)\"\n hidden\n type=\"file\"\n #fileInput\n />\n\n <button\n *ngIf=\"obs?.supportedDocumentenApiFeatures?.supportsFilterableColumns\"\n [cdsOverflowMenu]=\"overflowFilter\"\n [customPane]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"noResults\"></ng-container>\n </valtimo-carbon-list>\n } @else {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n }\n\n <valtimo-documenten-api-metadata-modal\n [defaultValues]=\"obs.defaultValues\"\n [disableAuthor]=\"obs.uploadFields?.auteur?.readonly\"\n [disableConfidentialityLevel]=\"obs.uploadFields?.vertrouwelijkheidaanduiding?.readonly\"\n [disableCreationDate]=\"obs.uploadFields?.creatiedatum?.readonly\"\n [disableDescription]=\"obs.uploadFields?.beschrijving?.readonly\"\n [disableDocumentTitle]=\"obs.uploadFields?.titel?.readonly\"\n [disableDocumentType]=\"obs.uploadFields?.informatieobjecttype?.readonly\"\n [disableFilename]=\"obs.uploadFields?.bestandsnaam?.readonly\"\n [disableLanguage]=\"obs.uploadFields?.taal?.readonly\"\n [disableStatus]=\"obs.uploadFields?.status?.readonly\"\n [hideFields]=\"obs.hideFields\"\n [open]=\"showUploadModal$ | async\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [isEditMode]=\"isEditMode$ | async\"\n [supportsTrefwoorden]=\"obs?.supportedDocumentenApiFeatures?.supportsTrefwoorden\"\n (modalClose)=\"closeMetadataModal()\"\n (metadata)=\"metadataSet($event)\"\n ></valtimo-documenten-api-metadata-modal>\n</div>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n contentTranslationKey=\"case.documenten.deleteConfirmationModal.content\"\n confirmButtonType=\"danger\"\n titleTranslationKey=\"case.documenten.deleteConfirmationModal.title\"\n [showModalSubject$]=\"showDeleteConfirmationModal$\"\n (confirmEvent)=\"deleteDocument()\"\n>\n</valtimo-confirmation-modal>\n\n<ng-template #noResults>\n @if ((filter$ | async | keyvalue)?.length) {\n <valtimo-no-results\n [action]=\"resetFilterButton\"\n [description]=\"'zgw.documents.noResults.filterDescription' | translate\"\n [title]=\"'zgw.documents.noResults.filterTitle' | translate\"\n ></valtimo-no-results>\n } @else if (showZaakLinkWarning && isAdmin) {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'case.documenten.noZaakFound' | translate\"\n [title]=\"'case.documenten.noZaakFoundTitle' | translate\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n [description]=\"'case.documenten.noFiles' | translate\"\n [title]=\"'case.documenten.noFilesTitle' | translate\"\n ></valtimo-no-results>\n }\n</ng-template>\n\n<ng-template #overflowFilter>\n <valtimo-case-detail-tab-documenten-api-filter\n [prefillFilter]=\"filter$ | async\"\n (filterEvent)=\"onFilterEvent($event)\"\n ></valtimo-case-detail-tab-documenten-api-filter>\n</ng-template>\n\n<ng-template #resetFilterButton>\n <button cdsButton=\"primary\" (click)=\"onFilterEvent(null)\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #uploadButton let-disabled=\"disabled\">\n <button\n [disabled]=\"\n (uploadProcessLinkedSet && !uploadProcessLinked) ||\n showZaakLinkWarning ||\n disabled ||\n (canCreateResource$ | async) === false\n \"\n [vTooltip]=\"getUploadButtonTooltip() | translate\"\n (click)=\"onUploadButtonClick()\"\n cdsButton=\"primary\"\n >\n {{ 'Upload' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #translationTemplate let-data=\"data\">\n @if (data.item[data.key]) {\n {{ 'document.' + data.item[data.key] | translate }}\n } @else {\n -\n }\n</ng-template>\n\n<ng-template #navigateToCaseAdminButton>\n <button (click)=\"onNavigateToCaseAdminClick()\" cdsButton=\"primary\">\n {{ 'case.documenten.navigateToCaseAdmin' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n CaseManagementParams,\n ConfigService,\n getCaseManagementRouteParams,\n UploadProvider,\n ValtimoConfig,\n} from '@valtimo/shared';\nimport {ComboBoxModule, LayerModule, ListItem} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {DocumentenApiLinkProcessService, DocumentenApiVersionService} from '../../services';\n\n@Component({\n selector: 'valtimo-case-management-link-process',\n templateUrl: './case-management-link-process.component.html',\n styleUrl: './case-management-link-process.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, TranslateModule, ComboBoxModule, LayerModule],\n})\nexport class CaseManagementLinkProcessComponent implements OnInit, OnDestroy {\n @Input() isReadOnly$: Observable<boolean>;\n //Necessary to trigger outside click detection for combo-box\n @HostListener('document:click', ['$event'])\n public emptyCallback(): void {\n return;\n }\n public readonly documentenApiUploadProviders$ = new BehaviorSubject<boolean>(false);\n public readonly selectedProcessKey$ = new BehaviorSubject<string>('');\n public readonly processItems$: Observable<Array<ListItem>> = combineLatest([\n this.documentenApiLinkProcessService.getProcessDefinitions(),\n this.selectedProcessKey$,\n ]).pipe(\n map(([definitions, selectedProcessKey]) =>\n (definitions || [])\n .filter(definition => !!definition?.key)\n .map(process => ({\n content: process?.name || '-',\n id: process.key,\n selected: selectedProcessKey === process.key,\n }))\n ),\n tap(() => this.documentenApiVersionService.refresh())\n );\n\n private readonly _caseParams$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n private readonly _subscriptions = new Subscription();\n\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n constructor(\n private readonly configService: ConfigService,\n private readonly route: ActivatedRoute,\n private readonly documentenApiLinkProcessService: DocumentenApiLinkProcessService,\n private readonly documentenApiVersionService: DocumentenApiVersionService\n ) {}\n\n public ngOnInit(): void {\n this.setDocumentenApiUploaderProvider(this.configService.config);\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectProcess(item: {id: string}): void {\n const processDefinitionKey = item?.id;\n this.disabled$.next(true);\n const currentSelectionId = this.selectedProcessKey$.getValue();\n\n if (processDefinitionKey && processDefinitionKey !== currentSelectionId)\n this.updateProcess(processDefinitionKey);\n else if (!processDefinitionKey) this.deleteProcess();\n }\n\n private deleteProcess(): void {\n this._caseParams$\n .pipe(\n take(1),\n switchMap((params: CaseManagementParams | undefined) =>\n this.documentenApiLinkProcessService.deleteLinkedUploadProcess(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? ''\n )\n )\n )\n .subscribe(() => {\n this.selectedProcessKey$.next('');\n this.disabled$.next(false);\n });\n }\n\n private updateProcess(processDefinitionKey: string): void {\n this._caseParams$\n .pipe(\n take(1),\n switchMap((params: CaseManagementParams | undefined) =>\n this.documentenApiLinkProcessService.updateLinkedUploadProcess(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? '',\n processDefinitionKey\n )\n )\n )\n .subscribe(processLink => {\n this.selectedProcessKey$.next(processLink.processDefinitionKey);\n this.disabled$.next(false);\n });\n }\n\n private setDocumentenApiUploaderProvider(config: ValtimoConfig): void {\n const hasDocumentenApiUploadProvider = config.uploadProvider === UploadProvider.DOCUMENTEN_API;\n\n this.documentenApiUploadProviders$.next(hasDocumentenApiUploadProvider);\n if (hasDocumentenApiUploadProvider) this.getDefaultSelection();\n }\n\n private getDefaultSelection(): void {\n this._subscriptions.add(\n this._caseParams$\n .pipe(\n switchMap((params: CaseManagementParams | undefined) =>\n this.documentenApiLinkProcessService.getLinkedUploadProcess(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? ''\n )\n )\n )\n .subscribe(linkedUploadProcess => {\n this.selectedProcessKey$.next(linkedUploadProcess?.processDefinitionKey ?? '');\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n isReadOnly: isReadOnly$ | async,\n } as obs\"\n class=\"link-upload-process\"\n>\n <p class=\"link-upload-process__title\">\n {{ 'caseManagement.tabs.generalTab.linkUploadProcess.title' | translate }}\n </p>\n\n <cds-combo-box\n [cdsLayer]=\"1\"\n valtimoReadOnly\n [isReadOnly]=\"obs.isReadOnly\"\n [appendInline]=\"true\"\n [dropUp]=\"false\"\n [label]=\"'caseManagement.tabs.generalTab.linkUploadProcess.label' | translate\"\n [placeholder]=\"\n 'processLinkConfiguration.' + (obs.isReadOnly ? 'noProcess' : 'selectProcess') | translate\n \"\n [disabled]=\"obs.disabled || !obs.processItems || obs.isReadOnly\"\n (selected)=\"selectProcess($event)\"\n >\n <cds-dropdown-list [items]=\"obs.processItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {BehaviorSubject, Subscription} from 'rxjs';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\nimport {AbstractControl, FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n ButtonModule,\n DropdownModule,\n InputModule,\n LayerModule,\n ModalModule,\n TagModule,\n ToggleModule,\n} from 'carbon-components-angular';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CommonModule} from '@angular/common';\nimport {DocumentenApiTagService} from '../../services/documenten-api-tag.service';\n\n@Component({\n selector: 'valtimo-documenten-api-tag-modal',\n templateUrl: './documenten-api-tag-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ModalModule,\n TagModule,\n TranslateModule,\n InputModule,\n ReactiveFormsModule,\n ButtonModule,\n DropdownModule,\n ToggleModule,\n LayerModule,\n ],\n})\nexport class DocumentenApiTagModalComponent implements OnDestroy {\n @Input() public caseDefinitionKey!: string;\n @Input() public open = false;\n\n @Output() public closeModalEvent = new EventEmitter<DocumentenApiColumnModalTypeCloseEvent>();\n\n public readonly tagFormGroup = this.fb.group({\n value: this.fb.control('', [Validators.required, Validators.maxLength(50)]),\n });\n\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n public get value(): AbstractControl<string, string> {\n return this.tagFormGroup?.get('value');\n }\n\n public get invalid(): boolean {\n return !!this.tagFormGroup?.invalid;\n }\n\n public get pristine(): boolean {\n return !!this.tagFormGroup?.pristine;\n }\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly documentenApiTagService: DocumentenApiTagService\n ) {}\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onClose(): void {\n this.close();\n }\n\n public addTag(): void {\n this.disable();\n\n this.documentenApiTagService.createTag(this.caseDefinitionKey, this.value.value).subscribe({\n next: () => {\n this.enable();\n this.closeAndRefresh();\n this.resetForm();\n },\n error: () => {\n this.enable(false);\n },\n });\n }\n\n private resetForm(): void {\n this.tagFormGroup.reset();\n }\n\n private disable(): void {\n this.disabled$.next(true);\n this.tagFormGroup.disable();\n }\n\n private enable(delay = true): void {\n setTimeout(\n () => {\n this.disabled$.next(false);\n this.tagFormGroup.enable();\n },\n delay ? CARBON_CONSTANTS.modalAnimationMs : 0\n );\n }\n\n private close(): void {\n this.closeModalEvent.emit('close');\n this.resetForm();\n }\n\n private closeAndRefresh(): void {\n this.closeModalEvent.emit('closeAndRefresh');\n this.resetForm();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n [open]=\"open\"\n size=\"sm\"\n (close)=\"onClose()\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{ 'zgw.tags.addModal.header' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <form [formGroup]=\"tagFormGroup\" class=\"tag-form\">\n <cds-label\n [invalidText]=\"\n (value?.errors?.['required']\n ? 'zgw.tags.fields.valueRequired'\n : 'zgw.tags.fields.valueMaxLength'\n ) | translate: {maxlength: value?.errors?.maxlength?.requiredLength}\n \"\n [invalid]=\"value.dirty && value.invalid\"\n >\n {{ 'zgw.tags.fields.value' | translate }}\n\n <input\n cdsText\n formControlName=\"value\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"value.dirty && value.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\" [disabled]=\"obs.disabled\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"invalid || pristine || obs.disabled\" (click)=\"addTag()\">\n {{ 'interface.add' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListComponent,\n CarbonListItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {CaseManagementParams, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {Page} from '@valtimo/document';\nimport {ButtonModule, IconModule, TagModule} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n Subject,\n switchMap,\n tap,\n} from 'rxjs';\nimport {DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {DocumentenApiTag} from '../../models/documenten-api-tag.model';\nimport {DocumentenApiTagService} from '../../services/documenten-api-tag.service';\nimport {DocumentenApiTagModalComponent} from '../documenten-api-tag-modal/documenten-api-tag-modal.component';\n\n@Component({\n selector: 'valtimo-documenten-api-tags',\n templateUrl: './documenten-api-tags.component.html',\n styleUrls: ['./documenten-api-tags.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n ConfirmationModalModule,\n TagModule,\n ButtonModule,\n DocumentenApiTagModalComponent,\n IconModule,\n ],\n})\nexport class DocumentenApiTagsComponent {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n private readonly _reload$ = new BehaviorSubject<null | 'noAnimation'>(null);\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => params?.caseDefinitionKey ?? ''),\n filter((caseDefinitionKey: string) => !!caseDefinitionKey)\n );\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly fields$ = new BehaviorSubject<ColumnConfig[]>([]);\n public readonly addModalClosed$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteMultipleModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteModal$ = new Subject<boolean>();\n public readonly selectedRowKeys$ = new BehaviorSubject<Array<string>>([]);\n public readonly searchTerm$ = new BehaviorSubject<string>('');\n public readonly tagToDelete$ = new BehaviorSubject<DocumentenApiTag | null>(null);\n\n public readonly documentTags$: Observable<DocumentenApiTag[]> = combineLatest([\n this.caseDefinitionKey$,\n this.searchTerm$,\n this._reload$,\n ]).pipe(\n tap(([_1, _2, reload]) => {\n if (reload === null) this.loading$.next(true);\n }),\n switchMap(([caseDefinitionKey, searchTerm]) =>\n this.documentenApiTagService.getTagsForAdmin(caseDefinitionKey, {\n page: this.pagination.page - 1,\n size: this.pagination.size,\n search: searchTerm,\n })\n ),\n map((tagPage: Page<DocumentenApiTag>) => {\n this.pagination = {\n ...this.pagination,\n collectionSize: tagPage.totalElements,\n };\n\n return tagPage.content;\n }),\n startWith([]),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'interface.delete',\n callback: this.openDeleteModal.bind(this),\n type: 'danger',\n },\n ];\n\n public readonly FIELDS: ColumnConfig[] = [\n {\n key: 'value',\n label: 'zgw.tags.fields.value',\n viewType: ViewType.TEXT,\n },\n ];\n\n public pagination: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n };\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentenApiTagService: DocumentenApiTagService\n ) {}\n\n public openDeleteModal(tag: DocumentenApiTag): void {\n this.tagToDelete$.next(tag);\n this.showDeleteModal$.next(true);\n }\n\n public openAddModal(): void {\n this.addModalClosed$.next(false);\n }\n\n public closeModal(closeModalEvent: DocumentenApiColumnModalTypeCloseEvent): void {\n if (closeModalEvent === 'closeAndRefresh') this.reload();\n\n this.addModalClosed$.next(true);\n }\n\n public showDeleteMultipleModal(): void {\n this.setSelectedRoleKeys();\n this.showDeleteMultipleModal$.next(true);\n }\n\n private setSelectedRoleKeys(): void {\n this.selectedRowKeys$.next(\n this.carbonList.selectedItems.map((item: CarbonListItem) => item.value)\n );\n }\n\n public paginationClicked(page: number): void {\n this.pagination = {...this.pagination, page};\n this.reload();\n }\n\n public paginationSet(size: number): void {\n this.pagination = {...this.pagination, size};\n this.reload();\n }\n\n public confirmDeleteTag(tag: DocumentenApiTag): void {\n this.caseDefinitionKey$\n .pipe(\n switchMap(caseDefinitionKey =>\n this.documentenApiTagService.deleteTag(caseDefinitionKey, tag.value)\n )\n )\n .subscribe(() => {\n this.reload();\n });\n }\n\n public confirmDeleteMultipleTag(tagsToDelete: {\n caseDefinitionKey: string;\n tagIds: string[];\n itemsOnCurrentPage: number;\n }): void {\n this.documentenApiTagService\n .deleteTags(tagsToDelete.caseDefinitionKey, tagsToDelete.tagIds)\n .subscribe(() => {\n const lastPage = Math.ceil(\n (this.pagination.collectionSize as number) / this.pagination.size\n );\n if (\n tagsToDelete.itemsOnCurrentPage <= tagsToDelete.tagIds.length &&\n this.pagination.page > 1 &&\n this.pagination.page === lastPage\n ) {\n this.pagination = {...this.pagination, page: this.pagination.page - 1};\n }\n this.reload();\n });\n }\n\n public searchTermEntered(searchTerm: string): void {\n this.pagination = {...this.pagination, page: 1};\n this.searchTerm$.next(searchTerm);\n }\n\n private reload(noAnimation = false): void {\n this._reload$.next(noAnimation ? 'noAnimation' : null);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentTags: documentTags$ | async,\n addModalClosed: addModalClosed$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n selectedRowKeys: selectedRowKeys$ | async,\n searchTerm: searchTerm$ | async,\n showDeleteModal: showDeleteModal$ | async,\n tagToDelete: tagToDelete$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [items]=\"obs.documentTags\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [actionItems]=\"ACTION_ITEMS\"\n [showSelectionColumn]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (search)=\"searchTermEntered($event)\"\n >\n <ng-container carbonToolbarContent *ngTemplateOutlet=\"addButtton\"></ng-container>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteMultipleModal()\">\n {{ 'interface.delete' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n *ngIf=\"obs.searchTerm === ''\"\n [action]=\"addButtton\"\n title=\"{{ 'zgw.tags.list.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.tags.list.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n\n <valtimo-no-results\n *ngIf=\"obs.searchTerm !== ''\"\n title=\"{{ 'zgw.tags.search.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.tags.search.noResultsDescription' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-tag-modal\n [open]=\"!obs.addModalClosed\"\n [caseDefinitionKey]=\"obs.caseDefinitionKey\"\n (closeModalEvent)=\"closeModal($event)\"\n ></valtimo-documenten-api-tag-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.tags.deleteText\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n [outputOnConfirm]=\"obs.tagToDelete\"\n (confirmEvent)=\"confirmDeleteTag($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n [contentTranslationKey]=\"\n obs.selectedRowKeys.length > 1 ? 'zgw.tags.deleteMultipleText' : 'zgw.tags.deleteText'\n \"\n [showModalSubject$]=\"showDeleteMultipleModal$\"\n titleTranslationKey=\"interface.delete\"\n [outputOnConfirm]=\"{\n caseDefinitionKey: obs.caseDefinitionKey,\n tagIds: obs.selectedRowKeys,\n itemsOnCurrentPage: obs.documentTags.length,\n }\"\n (confirmEvent)=\"confirmDeleteMultipleTag($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #addButtton>\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n {{ 'zgw.tags.add' | translate }}\n </button>\n </ng-template>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {\n CONFIDENTIALITY_LEVELS,\n DocumentenApiColumnModalTypeCloseEvent,\n LANGUAGE_ITEMS,\n STATUS_ITEMS,\n} from '../../models';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription, switchMap} from 'rxjs';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\nimport {AbstractControl, FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n ButtonModule,\n CheckboxModule,\n ComboBoxModule,\n InputModule,\n LayerModule,\n ListItem,\n ModalModule,\n ToggleModule,\n} from 'carbon-components-angular';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CommonModule} from '@angular/common';\nimport {DocumentenApiDocumentService} from '../../services';\nimport {DocumentenApiUploadField} from '../../models/documenten-api-upload-field.model';\nimport {DocumentService} from '@valtimo/document';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\nimport {ActivatedRoute} from '@angular/router';\n\n@Component({\n selector: 'valtimo-documenten-api-upload-field-modal',\n styleUrl: './documenten-api-upload-field-modal.component.scss',\n templateUrl: './documenten-api-upload-field-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ModalModule,\n TranslateModule,\n InputModule,\n ReactiveFormsModule,\n ButtonModule,\n ToggleModule,\n CheckboxModule,\n ComboBoxModule,\n LayerModule,\n ],\n})\nexport class DocumentenApiUploadFieldModalComponent implements OnDestroy {\n @Input() public caseDefinitionKey!: string;\n @Input() public type!: string;\n protected key: string;\n\n @Input() public set prefill(field: DocumentenApiUploadField) {\n if (field) {\n this.key = field.key;\n this.defaultValue.setValue(field.defaultValue);\n this.visible.setValue(field.visible);\n this.readonly.setValue(field.readonly);\n }\n }\n\n @Output() public closeModalEvent = new EventEmitter<DocumentenApiColumnModalTypeCloseEvent>();\n\n public readonly formGroup = this.fb.group({\n defaultValue: this.fb.control('', [Validators.maxLength(256)]),\n selectedDefaultValue: this.fb.control(null),\n visible: this.fb.control(true, [Validators.required]),\n readonly: this.fb.control(false, [Validators.required]),\n });\n\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n public readonly confidentialityLevelItems$: Observable<Array<ListItem>> = combineLatest([\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n map(([selectedItem]) =>\n CONFIDENTIALITY_LEVELS.map(item => ({\n id: item,\n content: this.translateService.instant(`document.${item}`),\n selected: selectedItem === item,\n }))\n )\n );\n public readonly languageItems$: Observable<Array<ListItem>> = combineLatest([\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n map(([selectedItem]) =>\n LANGUAGE_ITEMS.map(item => ({\n id: item,\n content: this.translateService.instant(`document.${item}`),\n selected: selectedItem === item,\n }))\n )\n );\n public readonly statusItems$: Observable<Array<ListItem>> = combineLatest([\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n map(([selectedItem]) =>\n STATUS_ITEMS.map(item => ({\n id: item,\n content: this.translateService.instant(`document.${item}`),\n selected: selectedItem === item,\n }))\n )\n );\n\n private readonly _context = getCaseManagementRouteParams(this.route);\n\n public readonly documentTypeItems$: Observable<Array<ListItem>> = combineLatest([\n this._context,\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n switchMap(([params, selectedItem]) =>\n combineLatest([\n this.documentService.getDocumentTypesForCase(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n ),\n of(selectedItem),\n ])\n ),\n map(([documentTypes, selectedItem]) =>\n documentTypes.map(item => ({\n id: item.url,\n content: item.name,\n selected: selectedItem === item.url,\n }))\n )\n );\n\n public get defaultValue(): AbstractControl<string> {\n return this.formGroup?.get('defaultValue');\n }\n\n public get selectedDefaultValue(): AbstractControl<ListItem> {\n return this.formGroup?.get('selectedDefaultValue');\n }\n\n public get visible(): AbstractControl<boolean> {\n return this.formGroup?.get('visible');\n }\n\n public get readonly(): AbstractControl<boolean> {\n return this.formGroup?.get('readonly');\n }\n\n public get invalid(): boolean {\n return !!this.formGroup?.invalid;\n }\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly documentenApiDocumentService: DocumentenApiDocumentService,\n private readonly translateService: TranslateService,\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onClose(): void {\n this.close();\n }\n\n public clear(): void {\n this.selectedDefaultValue.setValue(null);\n this.defaultValue.setValue(null);\n }\n\n public saveUploadField(): void {\n this.disable();\n\n const formField = {\n key: this.key,\n defaultValue: this.selectedDefaultValue?.value?.id || this.defaultValue.value,\n visible: this.visible.value,\n readonly: this.readonly.value,\n } as DocumentenApiUploadField;\n\n this.documentenApiDocumentService\n .updateUploadField(this.caseDefinitionKey, formField)\n .subscribe({\n next: () => {\n this.enable();\n this.closeAndRefresh();\n this.resetForm();\n },\n error: () => {\n this.enable(false);\n },\n });\n }\n\n private resetForm(): void {\n this.formGroup.reset();\n }\n\n private disable(): void {\n this.disabled$.next(true);\n this.formGroup.disable();\n }\n\n private enable(delay = true): void {\n setTimeout(\n () => {\n this.disabled$.next(false);\n this.formGroup.enable();\n },\n delay ? CARBON_CONSTANTS.modalAnimationMs : 0\n );\n }\n\n private close(): void {\n this.closeModalEvent.emit('close');\n this.resetForm();\n }\n\n private closeAndRefresh(): void {\n this.closeModalEvent.emit('closeAndRefresh');\n this.resetForm();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n disabled: disabled$ | async,\n languageItems: languageItems$ | async,\n confidentialityLevelItems: confidentialityLevelItems$ | async,\n statusItems: statusItems$ | async,\n documentTypeItems: documentTypeItems$ | async,\n } as obs\"\n [open]=\"type !== 'closed'\"\n size=\"sm\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{\n ('zgw.uploadFields.editModal.header' | translate) +\n ' - ' +\n ('zgw.uploadFields.keys.' + key | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <form [formGroup]=\"formGroup\" class=\"uploadField-form\">\n @if (key === 'taal') {\n <cds-combo-box\n formControlName=\"selectedDefaultValue\"\n [label]=\"'zgw.uploadFields.fields.defaultValue' | translate\"\n [dropUp]=\"false\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list [items]=\"obs.languageItems\"></cds-dropdown-list>\n </cds-combo-box>\n } @else if (key === 'vertrouwelijkheidaanduiding') {\n <cds-combo-box\n formControlName=\"selectedDefaultValue\"\n [label]=\"'zgw.uploadFields.fields.defaultValue' | translate\"\n [dropUp]=\"false\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list [items]=\"obs.confidentialityLevelItems\"></cds-dropdown-list>\n </cds-combo-box>\n } @else if (key === 'status') {\n <cds-combo-box\n formControlName=\"selectedDefaultValue\"\n [label]=\"'zgw.uploadFields.fields.defaultValue' | translate\"\n [dropUp]=\"false\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list [items]=\"obs.statusItems\"></cds-dropdown-list>\n </cds-combo-box>\n } @else if (key === 'informatieobjecttype') {\n <cds-combo-box\n formControlName=\"selectedDefaultValue\"\n [label]=\"'zgw.uploadFields.fields.defaultValue' | translate\"\n [dropUp]=\"false\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list [items]=\"obs.documentTypeItems\"></cds-dropdown-list>\n </cds-combo-box>\n } @else if (\n key === 'filename' ||\n key === 'bestandsnaam' ||\n key === 'titel' ||\n key === 'beschrijving' ||\n key === 'trefwoorden'\n ) {\n <cds-label>\n {{ 'zgw.uploadFields.fields.defaultValue' | translate }}\n <input cdsText formControlName=\"defaultValue\" />\n </cds-label>\n }\n <div class=\"toggle-group\">\n <cds-toggle\n formControlName=\"visible\"\n [label]=\"'zgw.uploadFields.fields.visible' | translate\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n ></cds-toggle>\n <cds-toggle\n formControlName=\"readonly\"\n [label]=\"'zgw.uploadFields.fields.readonly' | translate\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n ></cds-toggle>\n </div>\n </form>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\" [disabled]=\"obs.disabled\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"invalid || obs.disabled\" (click)=\"saveUploadField()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListComponent,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n} from '@valtimo/shared';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n switchMap,\n tap,\n} from 'rxjs';\nimport {DocumentenApiColumnModalType, DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {DocumentenApiUploadField} from '../../models/documenten-api-upload-field.model';\nimport {DocumentenApiDocumentService} from '../../services';\nimport {DocumentenApiUploadFieldModalComponent} from '../documenten-api-upload-field-model/documenten-api-upload-field-modal.component';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-documenten-api-upload-fields',\n templateUrl: './documenten-api-upload-fields.component.html',\n styleUrls: ['./documenten-api-upload-fields.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n ConfirmationModalModule,\n ButtonModule,\n IconModule,\n DocumentenApiUploadFieldModalComponent,\n ],\n})\nexport class DocumentenApiUploadFieldsComponent {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n private readonly _reload$ = new BehaviorSubject<null | 'noAnimation'>(null);\n\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => params?.caseDefinitionKey ?? ''),\n filter(caseDefinitionKey => !!caseDefinitionKey)\n );\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly fields$ = new BehaviorSubject<ColumnConfig[]>([]);\n public readonly uploadFieldModalType$ = new BehaviorSubject<DocumentenApiColumnModalType>(\n 'closed'\n );\n public readonly prefill$ = new BehaviorSubject<DocumentenApiUploadField | undefined>(undefined);\n\n public readonly documentUploadFields$: Observable<string[]> = combineLatest([\n this.caseDefinitionKey$,\n this._reload$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([_, reload]) => {\n if (reload === null) {\n this.loading$.next(true);\n }\n }),\n switchMap(([caseDefinitionKey]) =>\n this.documentenApiDocumentService.getUploadFields(caseDefinitionKey)\n ),\n map(fields =>\n fields.map(field => ({\n ...field,\n field: this.translateService.instant(`zgw.uploadFields.keys.${field.key}`),\n }))\n ),\n startWith([]),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly hasEditPermissions$: Observable<boolean> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n switchMap(params =>\n this.editPermissionsService.hasEditPermissions(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag\n )\n )\n );\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'interface.edit',\n callback: this.openEditModal.bind(this),\n type: 'normal',\n },\n ];\n\n public readonly FIELDS: ColumnConfig[] = [\n {\n key: 'field',\n label: 'zgw.uploadFields.fields.field',\n viewType: ViewType.TEXT,\n },\n {\n key: 'defaultValue',\n label: 'zgw.uploadFields.fields.defaultValue',\n viewType: ViewType.TEXT,\n },\n {\n key: 'visible',\n label: 'zgw.uploadFields.fields.visible',\n viewType: ViewType.BOOLEAN,\n },\n {\n key: 'readonly',\n label: 'zgw.uploadFields.fields.readonly',\n viewType: ViewType.BOOLEAN,\n },\n ];\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentenApiDocumentService: DocumentenApiDocumentService,\n private readonly translateService: TranslateService,\n private readonly editPermissionsService: EditPermissionsService\n ) {}\n\n public openEditModal(uploadField: DocumentenApiUploadField): void {\n this.hasEditPermissions$.pipe(take(1)).subscribe(hasPermission => {\n if (!hasPermission && uploadField.key !== 'informatieobjecttype') {\n return;\n }\n this.prefill$.next(uploadField);\n this.uploadFieldModalType$.next('edit');\n });\n }\n\n public closeModal(closeModalEvent: DocumentenApiColumnModalTypeCloseEvent): void {\n if (closeModalEvent === 'closeAndRefresh') {\n this.reload();\n }\n this.uploadFieldModalType$.next('closed');\n }\n\n private reload(noAnimation = false): void {\n this._reload$.next(noAnimation ? 'noAnimation' : null);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentUploadFields: documentUploadFields$ | async,\n uploadFieldModalType: uploadFieldModalType$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n prefill: prefill$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [items]=\"obs.documentUploadFields\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [actionItems]=\"ACTION_ITEMS\"\n (rowClicked)=\"openEditModal($event)\"\n >\n <valtimo-no-results\n title=\"{{ 'zgw.uploadFields.list.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.uploadFields.list.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-upload-field-modal\n [prefill]=\"obs.prefill\"\n [caseDefinitionKey]=\"obs.caseDefinitionKey\"\n [type]=\"obs.uploadFieldModalType\"\n (closeModalEvent)=\"closeModal($event)\"\n ></valtimo-documenten-api-upload-field-modal>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {LoadingModule, NotificationModule, TilesModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, Observable, switchMap, tap} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentenApiManagementVersion} from '../../models';\nimport {DocumentenApiVersionService} from '../../services';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-documenten-api-version',\n templateUrl: './documenten-api-version.component.html',\n styleUrls: ['./documenten-api-version.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslateModule, LoadingModule, NotificationModule, TilesModule],\n})\nexport class DocumentenApiVersionComponent {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n public readonly caseManagementRouteParams$ = getCaseManagementRouteParams(this.route);\n\n public readonly documentenApiVersion$: Observable<DocumentenApiManagementVersion> = combineLatest(\n [this.caseManagementRouteParams$, this.documentenApiVersionService.refresh$]\n ).pipe(\n tap(() => this.loading$.next(true)),\n switchMap(([params]) =>\n this.documentenApiVersionService.getManagementApiVersion(params?.caseDefinitionKey ?? '')\n ),\n tap(() => this.loading$.next(false))\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentenApiVersionService: DocumentenApiVersionService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile\n *ngIf=\"{loading: loading$ | async, documentenApiVersion: documentenApiVersion$ | async} as obs\"\n>\n <h2 class=\"documenten-api-version__title\">{{ 'openZaak.documentenApi.title' | translate }}</h2>\n\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container\n *ngIf=\"obs.documentenApiVersion.selectedVersion; else noDocumentenApiVersionWarning\"\n >\n <ng-container\n *ngIf=\"\n obs.documentenApiVersion.detectedVersions.length === 1;\n else multipleDocumentenApiVersionsWarning\n \"\n >\n {{ 'openZaak.documentenApi.documentenApiVersion' | translate }}\n <strong> {{ obs.documentenApiVersion.selectedVersion }} </strong>\n </ng-container>\n </ng-container>\n </ng-container>\n</cds-tile>\n\n<ng-template #noDocumentenApiVersionWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.noVersionWarningTitle' | translate,\n message: 'openZaak.documentenApi.noVersionWarningMessage' | translate,\n showClose: false,\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #multipleDocumentenApiVersionsWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.multipleVersionsWarningTitle' | translate,\n message: 'openZaak.documentenApi.multipleVersionsWarningMessage' | translate,\n showClose: false,\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container pb-2\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-column-modal/documenten-api-column-modal.component';\nexport * from './documenten-api-columns/documenten-api-columns.component';\nexport * from './documenten-api-documents/documenten-api-documents.component';\nexport * from './documenten-api-filter/documenten-api-filter.component';\nexport * from './documenten-api-link-process/case-management-link-process.component';\nexport * from './documenten-api-metadata-modal/documenten-api-metadata-modal.component';\nexport * from './documenten-api-tag-modal/documenten-api-tag-modal.component';\nexport * from './documenten-api-tags/documenten-api-tags.component';\nexport * from './documenten-api-upload-field-model/documenten-api-upload-field-modal.component';\nexport * from './documenten-api-upload-fields/documenten-api-upload-fields.component';\nexport * from './documenten-api-version/documenten-api-version.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const documentenApiUploaderEditForm = () => ({\n components: [\n {key: 'type', type: 'hidden'},\n {\n type: 'textfield',\n input: true,\n key: 'label',\n label: 'Label',\n placeholder: 'Label',\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'validate.required',\n label: 'Required',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'key',\n label: 'Property Name',\n placeholder: 'Property Name',\n tooltip: 'The name of this field in the API endpoint.',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.title',\n label: 'Title',\n placeholder: 'Title',\n tooltip: 'Leave empty to use the default title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideTitle',\n label: 'Hide title',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.subtitle',\n label: 'Subtitle',\n placeholder: 'Title',\n tooltip: 'Leave empty to hide subtitle',\n validate: {\n required: false,\n },\n },\n {\n type: 'number',\n input: true,\n key: 'customOptions.maxFileSize',\n label: 'Maximum file size',\n placeholder: 'Maximum file size',\n defaultValue: 5,\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideMaxFileSize',\n label: 'Hide maximum file size',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.camera',\n label: 'Allow camera uploads',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'disabled',\n label: 'Disabled',\n tooltip: 'Disable the upload field',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h3>Process variables</h3>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentUrlProcessVariable',\n label: 'Document URL',\n tooltip:\n \"Specify the process variable name where the Documenten API document URL will be stored. Defaults to 'documentUrl' if left empty.\",\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h3>Documenten API metadata</h3>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Filename</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.filename',\n label: 'Default filename',\n tooltip: 'Leave empty to let the user input their own filename',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableFilename',\n label: 'Disable filename input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideFilename',\n label: 'Hide filename input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Title</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentTitle',\n label: 'Default document title',\n tooltip: 'Leave empty to let the user input their own title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentTitle',\n label: 'Disable document title input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideDocumentTitle',\n label: 'Hide document title input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Author</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.author',\n label: 'Default author',\n tooltip: 'Leave empty to let the user input their own author',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableAuthor',\n label: 'Disable author input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideAuthor',\n label: 'Hide author input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Description</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.description',\n label: 'Default description',\n tooltip: 'Leave empty to let the user input their own description',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDescription',\n label: 'Disable description input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideDescription',\n label: 'Hide description input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Language</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'select',\n label: 'Default language',\n key: 'customOptions.language',\n placeholder: 'Select a default language',\n data: {\n values: [\n {value: 'nld', label: 'Dutch'},\n {value: 'eng', label: 'English'},\n {value: 'deu', label: 'German'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableLanguage',\n label: 'Disable language input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideLanguage',\n label: 'Hide language input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Confidentiality level</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'select',\n label: 'Default confidentiality level',\n key: 'customOptions.confidentialityLevel',\n placeholder: 'Select a default confidentiality level',\n data: {\n values: [\n {value: 'openbaar', label: 'Public'},\n {value: 'beperkt_openbaar', label: 'Restricted public'},\n {value: 'intern', label: 'Internal'},\n {value: 'zaakvertrouwelijk', label: 'Case confidential'},\n {value: 'vertrouwelijk', label: 'Private'},\n {value: 'confidentieel', label: 'Confidential'},\n {value: 'geheim', label: 'Secret'},\n {value: 'zeer_geheim', label: 'Very secret'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableConfidentialityLevel',\n label: 'Disable confidentiality level input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideConfidentialityLevel',\n label: 'Hide confidentiality level input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Creation date</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableCreationDate',\n label: 'Disable creation date input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideCreationDate',\n label: 'Hide creation date input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Informatieobjecttype</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentType',\n label: 'Default informatieobjecttype url',\n tooltip:\n \"Sometimes referred to as the 'document-type'. Must match the informatieobjecttype url exactly. Leave empty to let the user input their own informatieobjecttype\",\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentType',\n label: 'Disable informatieobjecttype input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideDocumentType',\n label: 'Hide informatieobjecttype input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Status</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'select',\n label: 'Default status',\n key: 'customOptions.status',\n placeholder: 'Select a default status',\n data: {\n values: [\n {value: 'in_bewerking', label: 'In editing'},\n {value: 'ter_vaststelling', label: 'To be confirmed'},\n {value: 'definitief', label: 'Definitive'},\n {value: 'gearchiveerd', label: 'Archived'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableStatus',\n label: 'Disable status input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideStatus',\n label: 'Hide status input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Additional date</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideAdditionalDate',\n label: 'Hide additional date input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Tags</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.tags',\n label: 'Default tags',\n tooltip: 'A comma separated list of tags. Leave empty to let the user input their own tags',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideTags',\n label: 'Hide tags input',\n validate: {\n required: false,\n },\n },\n ],\n});\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, signal} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {\n FormioCustomComponent,\n FormIoDomService,\n FormIoStateService,\n ValtimoModalService,\n} from '@valtimo/components';\nimport {DocumentenApiFileReference, UploadProviderService} from '@valtimo/resource';\nimport {UserProviderService} from '@valtimo/security';\nimport {\n BehaviorSubject,\n combineLatest,\n EMPTY,\n Observable,\n of,\n startWith,\n Subscription,\n switchMap,\n} from 'rxjs';\nimport {catchError, filter, map, take, tap} from 'rxjs/operators';\nimport {DocumentenApiMetadata, SupportedDocumentenApiFeatures} from '../../models';\nimport {DocumentenApiVersionService} from '../../services';\nimport {DocumentService} from '@valtimo/document';\n\n@Component({\n standalone: false,\n selector: 'valtimo-documenten-api-formio-uploader',\n templateUrl: './documenten-api-uploader.component.html',\n styleUrls: ['./documenten-api-uploader.component.scss'],\n})\nexport class DocumentenApiUploaderComponent\n implements FormioCustomComponent<Array<DocumentenApiFileReference>>, OnInit, OnDestroy\n{\n @Input() disabled: boolean;\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() maxFileSize: number;\n @Input() hideMaxFileSize: boolean;\n @Input() camera: boolean;\n\n @Input() set documentTitle(defaultValue: string) {\n this.defaultValues['titel'] = defaultValue;\n }\n\n @Input() set hideDocumentTitle(hide: boolean) {\n this.hideField(hide, 'titel');\n }\n\n @Input() disableDocumentTitle: boolean;\n\n @Input() set filename(defaultValue: string) {\n this.defaultValues['bestandsnaam'] = defaultValue;\n }\n\n @Input() set hideFilename(hide: boolean) {\n this.hideField(hide, 'bestandsnaam');\n }\n\n @Input() disableFilename: boolean;\n\n @Input() set author(defaultValue: string) {\n this.defaultValues['auteur'] = defaultValue;\n }\n\n @Input() set hideAuthor(hide: boolean) {\n this.hideField(hide, 'auteur');\n }\n\n @Input() disableAuthor: boolean;\n\n @Input() set status(defaultValue: string) {\n this.defaultValues['status'] = defaultValue;\n }\n\n @Input() set hideStatus(hide: boolean) {\n this.hideField(hide, 'status');\n }\n\n @Input() disableStatus: boolean;\n\n @Input() set language(defaultValue: string) {\n this.defaultValues['taal'] = defaultValue;\n }\n\n @Input() set hideLanguage(hide: boolean) {\n this.hideField(hide, 'taal');\n }\n\n @Input() disableLanguage: boolean;\n\n @Input() set documentType(defaultValue: string) {\n this.defaultValues['informatieobjecttype'] = defaultValue;\n this.stateService.documentDefinitionName$\n .pipe(\n filter(documentDefinitionName => !!documentDefinitionName),\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n switchMap(caseDefinition =>\n this.documentService.getDocumentTypesForCase(\n String(caseDefinition.caseDefinitionKey),\n String(caseDefinition.caseDefinitionVersionTag)\n )\n ),\n catchError(() => {\n this.defaultValues['informatieobjecttype'] = defaultValue;\n return EMPTY;\n })\n )\n .subscribe(documentTypes => {\n const foundDocumentType = documentTypes.find(\n documentType => documentType.name === defaultValue\n );\n foundDocumentType\n ? (this.defaultValues['informatieobjecttype'] = foundDocumentType.url)\n : (this.defaultValues['informatieobjecttype'] = defaultValue);\n });\n }\n\n @Input() set hideDocumentType(hide: boolean) {\n this.hideField(hide, 'informatieobjecttype');\n }\n\n @Input() disableDocumentType: boolean;\n\n @Input() set description(defaultValue: string) {\n this.defaultValues['beschrijving'] = defaultValue;\n }\n\n @Input() set hideDescription(hide: boolean) {\n this.hideField(hide, 'beschrijving');\n }\n\n @Input() disableDescription: boolean;\n\n @Input() set confidentialityLevel(defaultValue: string) {\n this.defaultValues['vertrouwelijkheidaanduiding'] = defaultValue;\n }\n\n @Input() set hideConfidentialityLevel(hide: boolean) {\n this.hideField(hide, 'vertrouwelijkheidaanduiding');\n }\n\n @Input() disableConfidentialityLevel: boolean;\n\n @Input() set hideCreationDate(hide: boolean) {\n this.hideField(hide, 'creatiedatum');\n }\n\n @Input() disableCreationDate: boolean;\n\n @Input() set hideAdditionalDate(hide: boolean) {\n this.hideField(hide, 'aanvullendeDatum');\n }\n\n @Input() set tags(tags: string) {\n let _tags = tags\n ?.split(',')\n ?.map(tag => tag.trim())\n ?.filter(tag => !!tag);\n if (_tags?.length === 0) {\n _tags = null;\n }\n this.defaultValues['trefwoorden'] = tags;\n }\n\n @Input() set hideTags(hide: boolean) {\n this.hideField(hide, 'trefwoorden');\n }\n\n @Input() documentUrlProcessVariable: string;\n\n @Output() valueChange = new EventEmitter<Array<DocumentenApiFileReference>>();\n\n public readonly uploading$ = new BehaviorSubject<boolean>(false);\n public readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n public readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n public readonly showModal = signal<boolean>(false);\n public readonly uploadProcessLinked$: Observable<boolean | string> =\n this.modalService.caseDefinitionKey$.pipe(\n switchMap(caseDefinitionKey =>\n this.uploadProviderService.checkUploadProcessLink(caseDefinitionKey)\n ),\n startWith('loading')\n );\n public readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles.includes('ROLE_ADMIN')));\n\n public readonly supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this.modalService.caseDefinitionKey$.pipe(\n switchMap(caseDefinitionKey =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionKey)\n )\n );\n\n public defaultValues: {} = {};\n public hideFields: Array<string> = [];\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly uploadProviderService: UploadProviderService,\n private readonly domService: FormIoDomService,\n private readonly modalService: ValtimoModalService,\n private readonly userProviderService: UserProviderService,\n private readonly route: ActivatedRoute,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly stateService: FormIoStateService,\n private readonly documentService: DocumentService\n ) {}\n\n public ngOnInit(): void {\n this.openCaseDefinitionKeySubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n _value: Array<DocumentenApiFileReference> = [];\n\n public get value(): Array<DocumentenApiFileReference> {\n return this._value;\n }\n\n @Input()\n public set value(value: Array<DocumentenApiFileReference>) {\n if (Array.isArray(value)) {\n this._value = value;\n }\n }\n\n public fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal.set(true);\n }\n\n public deleteFile(id: string): void {\n this.domService.toggleSubmitButton(true);\n this._value = this._value.filter((file: DocumentenApiFileReference) =>\n file?.id ? file?.id !== id : true\n );\n this.valueChange.emit(this._value);\n }\n\n public closeMetadataModal(): void {\n this.showModal.set(false);\n }\n\n public metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n this.showModal.set(false);\n this.domService.toggleSubmitButton(true);\n\n this.fileToBeUploaded$\n .pipe(\n take(1),\n switchMap(file =>\n this.uploadProviderService.uploadTempFileWithMetadata(file, {\n ...metadata,\n processInstanceId: this.stateService.processInstanceId,\n documentUrlProcessVariable: this.documentUrlProcessVariable || null,\n })\n ),\n tap(result => {\n this.domService.toggleSubmitButton(false);\n this.uploading$.next(false);\n this._value = [...this._value, result];\n this.valueChange.emit(this._value);\n })\n )\n .subscribe();\n }\n\n private openCaseDefinitionKeySubscription() {\n this._subscriptions.add(\n combineLatest([this.route?.params || of(null), this.route?.firstChild?.params || of(null)])\n .pipe(\n map(\n ([params, firstChildParams]) =>\n (params?.caseDefinitionKey || firstChildParams?.caseDefinitionKey) as string\n ),\n filter(caseDefinitionKey => !!caseDefinitionKey)\n )\n .subscribe(caseDefinitionKey => this.modalService.setCaseDefinitionKey(caseDefinitionKey))\n );\n }\n\n private hideField(hide: boolean, field: string) {\n const exists = this.hideFields.includes(field);\n if (!exists && hide) {\n this.hideFields.push(field);\n } else if (exists && !hide) {\n delete this.hideFields[field];\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'case.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'case.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n class=\"documenten-api-uploader-metadata-modal\"\n (metadata)=\"metadataSet($event)\"\n (modalClose)=\"closeMetadataModal()\"\n [defaultValues]=\"defaultValues\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableCreationDate]=\"disableCreationDate\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hideFields]=\"hideFields\"\n [supportsTrefwoorden]=\"(supportedDocumentenApiFeatures$ | async)?.supportsTrefwoorden\"\n [open]=\"showModal()\"\n></valtimo-documenten-api-metadata-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {FormioCustomComponentInfo, registerCustomFormioComponent} from '@valtimo/components';\nimport {DocumentenApiUploaderComponent} from './documenten-api-uploader.component';\nimport {documentenApiUploaderEditForm} from './documenten-api-uploader-edit-form';\n\nexport const customDocumentApiUploaderType = 'documenten-api-file';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: customDocumentApiUploaderType,\n selector: 'documenten-api-form-io-uploader',\n title: 'Documenten API File Upload',\n group: 'advanced',\n icon: 'upload',\n // set empty value to force formio to accept arrays as valid input value for this field type\n emptyValue: [],\n editForm: documentenApiUploaderEditForm,\n};\n\nexport function registerDocumentenApiFormioUploadComponent(injector: Injector) {\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponent(COMPONENT_OPTIONS, DocumentenApiUploaderComponent, injector);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-uploader-edit-form';\nexport * from './documenten-api-uploader.component';\nexport * from './documenten-api-uploader.formio';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-uploader';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './formio';\nexport * from './services';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormioForm} from '@formio/angular';\n\ninterface ZaakObjectType {\n name: string;\n url: string;\n}\n\ninterface ZaakObject {\n index: number;\n registrationAt: string;\n title: string | null;\n url: string;\n}\n\ninterface ZaakobjectFormResponse {\n documentMappedFields: Array<{\n defaultValue: string;\n input: boolean;\n key: string;\n label: string;\n type: string;\n }>;\n formDefinition: FormioForm;\n id: string;\n name: string;\n readOnly: boolean;\n}\n\nexport {ZaakObjectType, ZaakObject, ZaakobjectFormResponse};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ZaakObject, ZaakobjectFormResponse, ZaakObjectType} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZaakobjectenService {\n private readonly VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {}\n\n getDocumentObjectTypes(documentId: string): Observable<Array<ZaakObjectType>> {\n return this.http.get<Array<ZaakObjectType>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/objecttype`\n );\n }\n\n getDocumentObjectsOfType(documentId: string, typeUrl: string): Observable<Array<ZaakObject>> {\n return this.http.get<Array<ZaakObject>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/object?typeUrl=${typeUrl}`\n );\n }\n\n getObjectTypeForm(documentId: string, objectUrl: string): Observable<ZaakobjectFormResponse> {\n return this.http.get<ZaakobjectFormResponse>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/object/form?objectUrl=${objectUrl}`\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../services';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../models';\nimport {\n FormIoModule,\n InputLabelModule,\n ModalService,\n ParagraphModule,\n SelectItem,\n SelectModule,\n TableColumn,\n TableModule,\n VModalComponent,\n VModalModule,\n} from '@valtimo/components';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-case-detail-tab-zaakobjecten',\n templateUrl: './zaakobjecten.component.html',\n styleUrls: ['./zaakobjecten.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n SelectModule,\n InputLabelModule,\n ParagraphModule,\n TableModule,\n VModalModule,\n FormIoModule,\n TranslateModule,\n ],\n})\nexport class CaseDetailTabZaakobjectenComponent {\n @ViewChild('viewZaakobjectModal') viewZaakobjectModal: VModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objecttypeSelectItems$: Observable<Array<SelectItem>> = this.objecttypes$.pipe(\n map(objecttypes => objecttypes.map(type => ({id: type.url, text: type.name || '-'})))\n );\n\n readonly selectedObjecttypeUrl$ = new BehaviorSubject<string | null>(null);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService\n .getDocumentObjectsOfType(documentId, selectedObjecttypeUrl)\n .pipe(map(objects => objects.map(object => ({...object, title: object.title || '-'}))))\n : of(null)\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'case.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'case.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'case.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly objectName$ = new BehaviorSubject<string>('');\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n selectObjectType(objectTypeUrl: string): void {\n this.selectedObjecttypeUrl$.next(objectTypeUrl);\n }\n\n rowClicked(object: ZaakObject, objectTypeSelectItems: Array<SelectItem>): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n\n this.setModalData(objectTypeSelectItems, definition);\n },\n () => {\n this.setModalData(objectTypeSelectItems);\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectName$.next('');\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewZaakobjectModal);\n }\n\n private getObjectTypeName(objectTypeSelectItems: Array<SelectItem>): string {\n const selectedObjectTypeUrl = this.selectedObjecttypeUrl$.getValue();\n const currentTypeSelectItem = objectTypeSelectItems.find(\n selectItem => selectItem.id === selectedObjectTypeUrl\n );\n\n return currentTypeSelectItem.text;\n }\n\n private setModalData(objectTypeSelectItems: Array<SelectItem>, definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.objectName$.next(this.getObjectTypeName(objectTypeSelectItems));\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async,\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'case.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'case.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"case.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'case.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"case.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <h4>{{ objectName$ | async }}</h4>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'case.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../services';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../models';\nimport {\n FormIoModule,\n ModalService,\n ParagraphModule,\n TableColumn,\n TableModule,\n VModalComponent,\n VModalModule,\n} from '@valtimo/components';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n selector: 'valtimo-object-type',\n templateUrl: './object-type.component.html',\n styleUrls: ['./object-type.component.scss'],\n standalone: true,\n imports: [CommonModule, TableModule, ParagraphModule, VModalModule, FormIoModule],\n})\nexport class CaseDetailTabObjectTypeComponent {\n @ViewChild('viewObjectModal') viewObjectModal: VModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objectName$ = this.route.params.pipe(\n map(() => {\n const currentUrl = window.location.href;\n const splitUrl = currentUrl.split('/');\n const lastUrlPart = splitUrl[splitUrl.length - 1];\n\n return lastUrlPart;\n })\n );\n\n readonly selectedObjecttypeUrl$: Observable<string> = combineLatest([\n this.objecttypes$,\n this.objectName$,\n ]).pipe(\n map(([objectTypes, objectName]) => {\n const currentType = objectTypes?.find(\n type => type?.name.toLowerCase() === objectName?.toLowerCase()\n );\n\n const currentTypeUrl = currentType?.url;\n\n if (objectTypes && objectName && currentTypeUrl) return currentTypeUrl;\n\n return '';\n })\n );\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly hasData$ = new BehaviorSubject<boolean>(false);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService.getDocumentObjectsOfType(documentId, selectedObjecttypeUrl).pipe(\n map(objects => objects.map(object => ({...object, title: object.title || '-'}))),\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(true);\n })\n )\n : of(null).pipe(\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(false);\n })\n )\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'case.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'case.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'case.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n hasData: boolean;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n rowClicked(object: ZaakObject): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n this.setModalData(definition);\n },\n () => {\n this.setModalData();\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewObjectModal);\n }\n\n private setModalData(definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async,\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"case.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'case.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <h4>{{ objectName$ | async }}</h4>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'case.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten/zaakobjecten.component';\nexport * from './object-type/object-type.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './models';\nexport * from './services';\nexport * from './components';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {\n DocumentObjectenApiSync,\n DocumentObjectenApiSyncRequest,\n ObjectManagementConfiguration,\n} from '../models';\nimport {DocumentDefinition} from '@valtimo/document/public_api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentObjectenApiSyncService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getObjectManagementConfigurations(): Observable<Array<ObjectManagementConfiguration>> {\n return this.httpClient.get<Array<ObjectManagementConfiguration>>(\n this.getApiUrl(`/management/v1/object/management/configuration`)\n );\n }\n\n public getDocumentObjectenApiSync(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<DocumentObjectenApiSync> {\n return this.httpClient.get<DocumentObjectenApiSync>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/objecten-api-sync`\n )\n );\n }\n\n public updateDocumentObjectenApiSync(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n request: {\n objectManagementConfigurationId: string;\n enabled: boolean;\n }\n ): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/objecten-api-sync`\n ),\n request\n );\n }\n\n public deleteDocumentObjectenApiSync(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/objecten-api-sync`\n )\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, OnInit} from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {Edit16, TrashCan16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CaseManagementDraftWarningComponent} from '@valtimo/case-management';\nimport {\n CdsThemeService,\n FormModule,\n InputModule,\n RenderInBodyComponent,\n SelectItem,\n SelectModule,\n SpinnerModule,\n ValtimoCdsModalDirective,\n} from '@valtimo/components';\nimport {DocumentDefinition, DocumentService} from '@valtimo/document';\nimport {\n CaseManagementParams,\n DraftVersionService,\n getCaseManagementRouteParams,\n} from '@valtimo/shared';\nimport {\n ButtonModule,\n CheckboxModule,\n IconModule,\n IconService,\n LayerModule,\n ModalModule,\n TilesModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, map, Observable, switchMap, tap, of} from 'rxjs';\n\nimport {DocumentObjectenApiSync} from '../../models';\nimport {DocumentObjectenApiSyncService} from '../../services';\n\n@Component({\n selector: 'valtimo-document-objecten-api-sync',\n templateUrl: './document-objecten-api-sync.component.html',\n styleUrls: ['./document-objecten-api-sync.component.scss'],\n standalone: true,\n imports: [\n ButtonModule,\n CheckboxModule,\n CommonModule,\n FormModule,\n FormsModule,\n IconModule,\n InputModule,\n LayerModule,\n ModalModule,\n ReactiveFormsModule,\n SelectModule,\n SpinnerModule,\n TilesModule,\n TranslateModule,\n ValtimoCdsModalDirective,\n RenderInBodyComponent,\n CaseManagementDraftWarningComponent,\n ],\n})\nexport class DocumentObjectenApiSyncComponent implements OnInit {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n private readonly _params$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n private readonly _documentDefinition$: Observable<DocumentDefinition> = this._params$.pipe(\n switchMap(params =>\n this.documentService.getDocumentDefinitionByVersion(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? ''\n )\n )\n );\n public readonly isDraftVersion$ = this._params$.pipe(\n switchMap((params: CaseManagementParams | undefined) =>\n !params\n ? of(false)\n : this.draftVersionService.isDraftVersion(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n )\n );\n public readonly documentObjectenApiSync$ = new BehaviorSubject<DocumentObjectenApiSync | null>(\n null\n );\n public readonly objectManagementConfigurationItems$: Observable<Array<SelectItem>> =\n this.documentObjectenApiSyncService.getObjectManagementConfigurations().pipe(\n map(results =>\n results?.map(configuration => ({\n id: configuration.id,\n text: configuration.title,\n }))\n )\n );\n public readonly modalShowing$ = new BehaviorSubject<boolean>(false);\n public readonly currentTheme$ = this.cdsThemeService.currentTheme$;\n public readonly formGroup = new FormGroup({\n objectManagementConfigurationId: new FormControl('', Validators.required),\n enabled: new FormControl(true),\n });\n\n public get objectManagementConfigurationId(): AbstractControl<string | null> | null {\n return this.formGroup.get('objectManagementConfigurationId') ?? null;\n }\n\n public get enabled(): AbstractControl<boolean | null> | null {\n return this.formGroup.get('enabled') ?? null;\n }\n\n public readonly valid$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentObjectenApiSyncService: DocumentObjectenApiSyncService,\n private readonly documentService: DocumentService,\n private readonly cdsThemeService: CdsThemeService,\n private readonly iconService: IconService,\n private readonly draftVersionService: DraftVersionService\n ) {\n this.iconService.registerAll([TrashCan16, Edit16]);\n }\n\n public ngOnInit(): void {\n this.loadDocumentenObjectenApiSync();\n }\n\n public loadDocumentenObjectenApiSync(): void {\n this._documentDefinition$\n .pipe(\n switchMap((documentDefinition: DocumentDefinition) =>\n this.documentObjectenApiSyncService.getDocumentObjectenApiSync(\n documentDefinition.id.caseDefinitionId.key,\n documentDefinition.id.caseDefinitionId.versionTag\n )\n )\n )\n .subscribe(documentObjectenApiSync => {\n this.loading$.next(false);\n this.configSelected(documentObjectenApiSync?.objectManagementConfigurationId);\n this.enabled?.patchValue(documentObjectenApiSync?.enabled);\n this.documentObjectenApiSync$.next(documentObjectenApiSync);\n });\n }\n\n public remove(): void {\n this._documentDefinition$\n .pipe(\n switchMap(documentDefinition =>\n this.documentObjectenApiSyncService.deleteDocumentObjectenApiSync(\n documentDefinition.id.caseDefinitionId.key,\n documentDefinition.id.caseDefinitionId.versionTag\n )\n ),\n tap(() => {\n this.documentObjectenApiSync$.next(null);\n })\n )\n .subscribe();\n }\n\n public submit(): void {\n const formValues = this.formGroup.getRawValue();\n this._documentDefinition$\n .pipe(\n switchMap(documentDefinition =>\n this.documentObjectenApiSyncService.updateDocumentObjectenApiSync(\n documentDefinition.id.caseDefinitionId.key,\n documentDefinition.id.caseDefinitionId.versionTag,\n {\n objectManagementConfigurationId: formValues.objectManagementConfigurationId ?? '',\n enabled: !!formValues.enabled,\n }\n )\n )\n )\n .subscribe(() => {\n this.loadDocumentenObjectenApiSync();\n this.hideModal();\n });\n }\n\n public onModalClose(): void {\n this.hideModal();\n }\n\n public showModal(): void {\n this.modalShowing$.next(true);\n }\n\n public configSelected(selectedId: string): void {\n if (!this.objectManagementConfigurationId) return;\n\n if (!selectedId) {\n this.objectManagementConfigurationId.patchValue('');\n } else {\n this.objectManagementConfigurationId.patchValue(selectedId);\n }\n }\n\n private hideModal(): void {\n this.modalShowing$.next(false);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile>\n <valtimo-case-management-draft-warning\n *ngIf=\"isDraftVersion$ | async\"\n [name]=\"'zaakdetails.title' | translate | lowercase\"\n ></valtimo-case-management-draft-warning>\n\n <h2 class=\"valtimo-objecten-sync__title\">{{ 'zaakdetails.title' | translate }}</h2>\n\n @if (loading$ | async) {\n <valtimo-spinner></valtimo-spinner>\n } @else {\n @if (documentObjectenApiSync$ | async; as documentObjectenApiSync) {\n <section class=\"valtimo-objecten-sync__card-header\">\n <span class=\"valtimo-objecten-sync__card-title\">\n {{ documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </span>\n\n <div class=\"valtimo-objecten-sync__card-controls\">\n <button cdsButton=\"tertiary\" (click)=\"showModal()\">\n {{ 'interface.edit' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </button>\n\n <button cdsButton=\"danger\" (click)=\"remove()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n </section>\n\n <section class=\"valtimo-objecten-sync__card-body\">\n <div>\n <strong>{{ 'zaakdetails.enabled' | translate }}</strong>\n\n {{\n documentObjectenApiSync.enabled\n ? ('zaakdetails.yes' | translate)\n : ('zaakdetails.no' | translate)\n }}\n </div>\n\n <div>\n <strong>{{ 'zaakdetails.objectManagementConfigurationTitle' | translate }}</strong>\n\n {{ documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n </section>\n } @else {\n <button cdsButton=\"primary\" (click)=\"showModal()\">\n {{ 'zaakdetails.submitButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n }\n }\n</cds-tile>\n\n<valtimo-render-in-body>\n <cds-modal\n valtimoCdsModal\n [title]=\"'zaakdetails.editModal.title' | translate\"\n [open]=\"modalShowing$ | async\"\n showFooter=\"true\"\n (close)=\"onModalClose()\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onModalClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'zaakdetails.editModal.title' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <form [formGroup]=\"formGroup\">\n <v-select\n *ngIf=\"objectManagementConfigurationItems$ | async as objectManagementConfigurations\"\n [appendInline]=\"false\"\n [dropUp]=\"false\"\n [items]=\"objectManagementConfigurations\"\n [defaultSelectionId]=\"objectManagementConfigurationId.getRawValue()\"\n [placeholder]=\"\n 'zaakdetails.editModal.objectManagementConfigurationPlaceholder' | translate\n \"\n [title]=\"'zaakdetails.editModal.objectManagementConfiguration' | translate\"\n [disabled]=\"false\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"objectManagementConfigurationId\"\n [carbonTheme]=\"currentTheme$ | async\"\n (selectedChange)=\"configSelected($event)\"\n ></v-select>\n\n <cds-checkbox formControlName=\"enabled\"\n >{{ 'zaakdetails.editModal.enabled' | translate }}\n </cds-checkbox>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onModalClose()\" [disabled]=\"false\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!formGroup.valid\" (click)=\"submit()\">\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal>\n</valtimo-render-in-body>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync/document-objecten-api-sync.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './services';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {PluginConfiguration} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZakenApiZaaktypeLinkService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getPluginConfigurationsByPluginDefinitionKey(\n pluginDefinitionKey: string\n ): Observable<Array<PluginConfiguration>> {\n return this.httpClient.get<Array<PluginConfiguration>>(\n this.getApiUrl(`/v1/plugin/configuration?pluginDefinitionKey=${pluginDefinitionKey}`)\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, HostBinding, OnInit} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {Edit16, Save16, TrashCan16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {RenderInBodyComponent, SpinnerModule} from '@valtimo/components';\nimport {PluginConfiguration} from '@valtimo/plugin';\nimport {\n CreateZaakTypeLinkRequest,\n InformatieObjectType,\n OpenZaakService,\n ZaakType,\n ZaakTypeLink,\n} from '@valtimo/resource';\nimport {\n CaseManagementParams,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {\n ButtonModule,\n IconModule,\n IconService,\n InputModule,\n LayerModule,\n ModalModule,\n NotificationModule,\n SelectModule,\n TilesModule,\n ToggleModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, finalize, switchMap} from 'rxjs';\nimport {ZakenApiZaaktypeLinkService} from '../../services';\n\n@Component({\n selector: 'valtimo-zaken-api-zaaktype-link',\n templateUrl: './zaken-api-zaaktype-link.component.html',\n styleUrls: ['./zaken-api-zaaktype-link.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n NotificationModule,\n TranslateModule,\n ButtonModule,\n IconModule,\n TilesModule,\n LayerModule,\n SpinnerModule,\n ModalModule,\n SelectModule,\n InputModule,\n ToggleModule,\n RenderInBodyComponent,\n ],\n})\nexport class ZakenApiZaaktypeLinkComponent implements OnInit {\n public zaakTypes: ZaakType[];\n public pluginConfigurations: PluginConfiguration[];\n public zaakTypeLinkRequest: CreateZaakTypeLinkRequest;\n public informatieObjectTypes: InformatieObjectType[];\n public selectedZaakType: ZaakType | null = null;\n public selectedPluginConfiguration: PluginConfiguration | null = null;\n public selectedInformatieObjectTypeUrl: string | null = null;\n private _caseDefinitionKey: string;\n private _caseVersionTag: string;\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly zaakTypeLink$ = new BehaviorSubject<ZaakTypeLink | null>(null);\n public readonly modalOpen$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly iconService: IconService,\n private readonly openZaakService: OpenZaakService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly zakenApiZaaktypeLinkService: ZakenApiZaaktypeLinkService\n ) {\n this.iconService.registerAll([Edit16, TrashCan16, Save16]);\n }\n\n public ngOnInit(): void {\n getCaseManagementRouteParams(this.route)\n .pipe(\n switchMap((params: CaseManagementParams | undefined) => {\n this._caseDefinitionKey = params?.caseDefinitionKey ?? '';\n this._caseVersionTag = params?.caseDefinitionVersionTag ?? '';\n this.zaakTypeLinkRequest = {\n caseDefinitionKey: this._caseDefinitionKey,\n caseVersionTag: this._caseVersionTag,\n createWithDossier: false,\n };\n\n return this.openZaakService.getZaakTypeLink(\n this._caseDefinitionKey,\n this._caseVersionTag\n );\n })\n )\n .subscribe(zaakTypeLink => {\n if (zaakTypeLink !== null) {\n this.zaakTypeLinkRequest = {\n caseDefinitionKey: this._caseDefinitionKey,\n caseVersionTag: this._caseVersionTag,\n createWithDossier: zaakTypeLink?.createWithDossier,\n rsin: zaakTypeLink?.rsin,\n zakenApiPluginConfigurationId: zaakTypeLink?.zakenApiPluginConfigurationId,\n zaakTypeUrl: zaakTypeLink?.zaakTypeUrl,\n };\n }\n this.zaakTypeLink$.next(zaakTypeLink);\n this.loadZaakTypes();\n this.loadZakenApiPluginConfigurations();\n this.loading$.next(false);\n });\n }\n\n public loadZaakTypes(): void {\n this.openZaakService.getZaakTypes().subscribe((zaakTypes: ZaakType[]) => {\n this.zaakTypes = zaakTypes;\n this.findZaakType(this.zaakTypeLink$.getValue()?.zaakTypeUrl ?? '');\n this.loading$.next(false);\n });\n }\n\n public loadZakenApiPluginConfigurations(): void {\n this.zakenApiZaaktypeLinkService\n .getPluginConfigurationsByPluginDefinitionKey('zakenapi')\n .subscribe((plugins: PluginConfiguration[]) => {\n this.pluginConfigurations = plugins;\n this.findPluginConfiguration(\n this.zaakTypeLink$.getValue()?.zakenApiPluginConfigurationId ?? ''\n );\n });\n }\n\n public loadInformatieObjectTypeUrls(): void {\n this.openZaakService\n .getInformatieObjectTypes()\n .subscribe((informatieObjectTypes: InformatieObjectType[]) => {\n this.informatieObjectTypes = informatieObjectTypes;\n });\n }\n\n public closeModal(): void {\n this.modalOpen$.next(false);\n }\n\n public openModal(zaakTypeLink: ZaakTypeLink): void {\n this.zaakTypeLinkRequest = {\n caseDefinitionKey: this._caseDefinitionKey,\n caseVersionTag: this._caseVersionTag,\n createWithDossier: zaakTypeLink?.createWithDossier,\n rsin: zaakTypeLink?.rsin,\n zakenApiPluginConfigurationId: zaakTypeLink?.zakenApiPluginConfigurationId,\n zaakTypeUrl: zaakTypeLink?.zaakTypeUrl,\n };\n\n this.modalOpen$.next(true);\n }\n\n public onCheckedChange(checked: boolean): void {\n this.zaakTypeLinkRequest.createWithDossier = checked;\n }\n\n public removeZaakTypeLink(): void {\n this.openZaakService\n .deleteZaakTypeLink(this._caseDefinitionKey, this._caseVersionTag)\n .subscribe({\n next: () => {\n this.globalNotificationService.showToast({\n title: this.translateService.instant('openZaak.delinkSuccessful'),\n type: 'success',\n });\n this.zaakTypeLink$.next(null);\n },\n error: () => {\n this.globalNotificationService.showToast({\n title: this.translateService.instant('openZaak.delinkFailed'),\n type: 'error',\n });\n },\n });\n }\n\n public submit(): void {\n this.openZaakService\n .createZaakTypeLink(this.zaakTypeLinkRequest)\n .pipe(finalize(() => this.modalOpen$.next(false)))\n .subscribe({\n next: linkResult => {\n this.zaakTypeLink$.next(linkResult);\n this.zaakTypeLinkRequest = {\n caseDefinitionKey: this._caseDefinitionKey,\n caseVersionTag: this._caseVersionTag,\n createWithDossier: linkResult?.createWithDossier,\n rsin: linkResult?.rsin,\n zakenApiPluginConfigurationId: linkResult?.zakenApiPluginConfigurationId,\n zaakTypeUrl: linkResult?.zaakTypeUrl,\n };\n this.findZaakType(linkResult.zaakTypeUrl);\n this.findPluginConfiguration(linkResult.zakenApiPluginConfigurationId);\n this.globalNotificationService.showToast({\n title: this.translateService.instant('openZaak.linkSuccessful'),\n type: 'success',\n });\n },\n error: () => {\n this.globalNotificationService.showToast({\n title: this.translateService.instant('openZaak.linkFailed'),\n type: 'error',\n });\n },\n });\n }\n\n private findZaakType(zaakTypeUrl: string): void {\n this.selectedZaakType = this.zaakTypes.find(zaakType => zaakType.url === zaakTypeUrl) ?? null;\n }\n\n private findPluginConfiguration(pluginConfigurationId: string): void {\n this.selectedPluginConfiguration =\n this.pluginConfigurations.find(\n pluginConfiguration => pluginConfiguration.id === pluginConfigurationId\n ) ?? null;\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile>\n <h2 class=\"valtimo-zaak-type-link__title\">{{ 'openZaak.links' | translate }}</h2>\n\n @if (loading$ | async) {\n <valtimo-spinner></valtimo-spinner>\n } @else {\n @if (zaakTypeLink$ | async; as zaakTypeLink) {\n <section class=\"valtimo-zaak-type-link__card-header\">\n <span class=\"valtimo-zaak-type-link__card-title\">\n {{ this.selectedZaakType?.omschrijving || '-' }}\n </span>\n\n <div class=\"valtimo-zaak-type-link__card-controls\">\n <button cdsButton=\"tertiary\" (click)=\"openModal(zaakTypeLink)\">\n {{ 'interface.edit' | translate }}\n\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"danger\" (click)=\"removeZaakTypeLink()\">\n {{ 'interface.delete' | translate }}\n\n <svg cdsIcon=\"trash-can\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n </section>\n\n <section class=\"valtimo-zaak-type-link__card-body\">\n <div>\n <strong>{{ 'openZaak.autoCreateForCase' | translate }}</strong>\n\n {{\n zaakTypeLink?.createWithDossier\n ? ('viewTypeConverter.Yes' | translate)\n : ('viewTypeConverter.No' | translate)\n }}\n </div>\n\n <div>\n <strong>{{ 'openZaak.zakenApiPlugin' | translate }}</strong>\n\n {{ this.selectedPluginConfiguration?.title || '-' }}\n </div>\n\n <div>\n <strong>{{ 'openZaak.rsin' | translate }}</strong>\n\n {{ zaakTypeLink?.rsin || '-' }}\n </div>\n </section>\n } @else {\n <button\n cdsButton=\"primary\"\n class=\"valtimo-zaak-type-link__link-button\"\n (click)=\"openModal(null)\"\n >\n {{ 'openZaak.linkZaakType' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n }\n }\n</cds-tile>\n\n<valtimo-render-in-body>\n <cds-modal showFooter=\"true\" valtimoCdsModal [open]=\"modalOpen$ | async\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>Zaak types</h3>\n\n <span> Connect Zaak type to Dossier</span>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-zaak-type-link-modal__content\">\n <cds-select\n [label]=\"'openZaak.selectZaakTypeForCase' | translate\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.zaakTypeUrl\"\n >\n <option value=\"default\">{{ 'openZaak.selectZaakType' | translate }}</option>\n\n @for (zaakType of zaakTypes; track zaakType.url) {\n <option [value]=\"zaakType.url\">\n {{ zaakType.omschrijving || '-' }}\n </option>\n }\n </cds-select>\n\n <cds-select\n [label]=\"'openZaak.selectZakenApiPluginForCase' | translate\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.zakenApiPluginConfigurationId\"\n >\n <option value=\"default\">{{ 'openZaak.selectZakenApiPlugin' | translate }}</option>\n\n @for (pluginConfiguration of pluginConfigurations; track pluginConfiguration.id) {\n <option [value]=\"pluginConfiguration.id\">\n {{ pluginConfiguration?.title || '-' }}\n </option>\n }\n </cds-select>\n\n <cds-text-label>\n {{ 'openZaak.rsin' | translate }}\n\n <input\n cdsText\n cdsLayer=\"1\"\n placeholder=\"RSIN\"\n type=\"text\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.rsin\"\n />\n </cds-text-label>\n\n <cds-toggle\n [label]=\"'openZaak.autoCreateForCase' | translate\"\n [checked]=\"this.zaakTypeLinkRequest.createWithDossier\"\n (checkedChange)=\"onCheckedChange($event)\"\n >\n </cds-toggle>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"!this.zaakTypeLinkRequest.zaakTypeUrl\"\n (click)=\"submit()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal>\n</valtimo-render-in-body>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link/zaken-api-zaaktype-link.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface PluginDefinition {\n key: string;\n description?: string;\n title?: string;\n}\n\ninterface PluginConfiguration {\n definitionKey?: string;\n pluginDefinition?: PluginDefinition;\n id?: string;\n newId?: string;\n title: string;\n properties: object;\n}\nexport {PluginConfiguration, PluginDefinition};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './services';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api';\nexport * from './objecten-api';\nexport * from './zaakdetails';\nexport * from './zaken-api';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {MuuriDirectiveModule} from '@valtimo/components';\nimport {\n DocumentenApiVersionComponent,\n DocumentObjectenApiSyncComponent,\n ZakenApiZaaktypeLinkComponent,\n} from '../../modules';\n\n@Component({\n templateUrl: './case-management-zgw-general.component.html',\n styleUrl: './case-management-zgw-general.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ZakenApiZaaktypeLinkComponent,\n DocumentObjectenApiSyncComponent,\n MuuriDirectiveModule,\n DocumentenApiVersionComponent,\n ],\n})\nexport class CaseManagementZgwGeneralComponent {}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"muuri-container\">\n <div muuri [columnMinWidth]=\"450\">\n <valtimo-muuri-item>\n <valtimo-document-objecten-api-sync></valtimo-document-objecten-api-sync>\n </valtimo-muuri-item>\n\n <valtimo-muuri-item>\n <valtimo-documenten-api-version></valtimo-documenten-api-version\n ></valtimo-muuri-item>\n\n <valtimo-muuri-item>\n <valtimo-zaken-api-zaaktype-link></valtimo-zaken-api-zaaktype-link>\n </valtimo-muuri-item>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, distinctUntilChanged, Observable} from 'rxjs';\nimport {ZgwTabEnum} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CaseManagementZgwService {\n public configuredTabKeys: string[];\n\n private readonly _DEFAULT_TAB: ZgwTabEnum = ZgwTabEnum.GENERAL;\n\n private _currentTab$ = new BehaviorSubject<ZgwTabEnum>(this._DEFAULT_TAB);\n public get currentTab$(): Observable<ZgwTabEnum> {\n return this._currentTab$.pipe(distinctUntilChanged());\n }\n public set currentTab(tab: ZgwTabEnum) {\n this._currentTab$.next(tab);\n }\n\n public resetToDefaultTab(): void {\n this._currentTab$.next(this._DEFAULT_TAB);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-management-zgw.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CaseManagementDraftWarningComponent} from '@valtimo/case-management';\nimport {\n CaseManagementParams,\n DraftVersionService,\n getCaseManagementRouteParams,\n} from '@valtimo/shared';\nimport {TabsModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {ZgwTab, ZgwTabEnum} from '../../models';\nimport {\n DocumentenApiColumnsComponent,\n DocumentenApiTagsComponent,\n DocumentenApiUploadFieldsComponent,\n DocumentenApiVersionService,\n SupportedDocumentenApiFeatures,\n} from '../../modules';\nimport {CaseManagementZgwService} from '../../services';\nimport {CaseManagementZgwGeneralComponent} from '../case-management-zgw-general/case-management-zgw-general.component';\n\n@Component({\n templateUrl: './case-management-zgw.component.html',\n styleUrl: './case-management-zgw.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, TabsModule, TranslateModule, CaseManagementDraftWarningComponent],\n})\nexport class CaseManagementZgwComponent implements AfterViewInit, OnDestroy {\n @ViewChild('zgwTabContent', {read: ViewContainerRef})\n private _zgwTabContent: ViewContainerRef;\n\n private readonly _viewInitialized$ = new BehaviorSubject<boolean>(false);\n\n private readonly _params$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n private readonly _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this._params$.pipe(\n map((params: CaseManagementParams | undefined) => params?.caseDefinitionKey ?? ''),\n filter((caseDefinitionKey: string) => !!caseDefinitionKey),\n switchMap((caseDefinitionKey: string) =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionKey ?? '')\n )\n );\n\n public readonly isDraftVersion$ = this._params$.pipe(\n switchMap((params: CaseManagementParams | undefined) =>\n !params\n ? of(false)\n : this.draftVersionService.isDraftVersion(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n )\n );\n public readonly currentTab$ = this.caseManagementZgwService.currentTab$;\n public readonly zgwTabs$: Observable<ZgwTab[]> = combineLatest([\n this._viewInitialized$,\n this.currentTab$,\n this._supportedDocumentenApiFeatures$,\n ]).pipe(\n filter(([viewInitialized]) => viewInitialized),\n map(([_, currentTab, supportedDocumentenApiFeatures]) =>\n [\n {\n class: 'no-padding-left-right no-padding-top-bottom',\n headingTranslationKey: 'caseManagement.tabs.general',\n tab: ZgwTabEnum.GENERAL,\n component: CaseManagementZgwGeneralComponent,\n },\n {\n class: 'no-padding-left-right no-padding-top-bottom',\n headingTranslationKey: 'zgw.tabs.documentColumns',\n tab: ZgwTabEnum.DOCUMENTEN_API_COLUMNS,\n component: DocumentenApiColumnsComponent,\n },\n {\n class: 'no-padding-left-right no-padding-top-bottom',\n headingTranslationKey: 'zgw.tabs.documentUploadFields',\n tab: ZgwTabEnum.DOCUMENTEN_API_UPLOAD_FIELDS,\n component: DocumentenApiUploadFieldsComponent,\n },\n ...(supportedDocumentenApiFeatures.supportsTrefwoorden\n ? [\n {\n class: 'no-padding-left-right no-padding-top-bottom',\n headingTranslationKey: 'zgw.tabs.documentTags',\n tab: ZgwTabEnum.DOCUMENTEN_API_TAGS,\n component: DocumentenApiTagsComponent,\n },\n ]\n : []),\n ].map(zgwTab => ({...zgwTab, active: currentTab === zgwTab.tab}))\n ),\n tap(zgwTabs => {\n const activeTab = zgwTabs.length > 1 ? zgwTabs.find(tab => tab.active) : zgwTabs[0];\n if (!activeTab) return;\n\n this._zgwTabContent.clear();\n this._zgwTabContent.createComponent(activeTab.component);\n this.cdr.detectChanges();\n })\n );\n\n public readonly ZgwTabEnum = ZgwTabEnum;\n public readonly DRAFT_WARNING_MESSAGE = {\n [ZgwTabEnum.DOCUMENTEN_API_COLUMNS]: 'zgw.tabs.documentColumns',\n [ZgwTabEnum.DOCUMENTEN_API_UPLOAD_FIELDS]: 'zgw.tabs.documentUploadFields',\n [ZgwTabEnum.DOCUMENTEN_API_TAGS]: 'zgw.tabs.documentUploadFields',\n };\n\n constructor(\n private readonly caseManagementZgwService: CaseManagementZgwService,\n private readonly cdr: ChangeDetectorRef,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly draftVersionService: DraftVersionService,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngAfterViewInit(): void {\n this._viewInitialized$.next(true);\n }\n\n public ngOnDestroy(): void {\n this.caseManagementZgwService.resetToDefaultTab();\n }\n\n public displayTab(tab: ZgwTabEnum): void {\n this.caseManagementZgwService.currentTab = tab;\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (currentTab$ | async; as currentTab) {\n <valtimo-case-management-draft-warning\n *ngIf=\"(isDraftVersion$ | async) === true && currentTab !== ZgwTabEnum.GENERAL\"\n [name]=\"DRAFT_WARNING_MESSAGE[currentTab] | translate | lowercase\"\n ></valtimo-case-management-draft-warning>\n}\n\n<cds-tabs class=\"case-management-tabs\" type=\"contained\">\n @for (zgwTab of (zgwTabs$ | async) || []; track zgwTab.tab) {\n <cds-tab\n [class]=\"zgwTab.class\"\n [active]=\"zgwTab.active\"\n [heading]=\"zgwTab.headingTranslationKey | translate\"\n (selected)=\"displayTab(zgwTab.tab)\"\n ></cds-tab>\n }\n</cds-tabs>\n\n<ng-template #zgwTabContent></ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-management-zgw/case-management-zgw.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule} from '@angular/router';\nimport {FormioModule} from '@formio/angular';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DropzoneModule, FileSizeModule} from '@valtimo/components';\nimport {\n CASE_CONFIGURATION_EXTENSIONS_TOKEN,\n CASE_MANAGEMENT_TAB_TOKEN,\n ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN,\n ZGW_OBJECT_TYPE_COMPONENT_TOKEN,\n} from '@valtimo/shared';\nimport {DocumentModule} from '@valtimo/document';\nimport {ResourceModule} from '@valtimo/resource';\nimport {\n CaseDetailTabDocumentenApiDocumentsComponent,\n CaseDetailTabObjectTypeComponent,\n CaseManagementLinkProcessComponent,\n DocumentenApiMetadataModalComponent,\n DocumentenApiUploaderComponent,\n} from './modules';\nimport {CaseManagementZgwComponent} from './components';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n DropzoneModule,\n TranslateModule,\n DocumentModule,\n FileSizeModule,\n ResourceModule,\n RouterModule,\n DocumentenApiMetadataModalComponent,\n ],\n declarations: [DocumentenApiUploaderComponent],\n exports: [DocumentenApiUploaderComponent],\n providers: [\n {\n provide: CASE_MANAGEMENT_TAB_TOKEN,\n useValue: {\n translationKey: 'caseManagement.tabs.zgw',\n component: CaseManagementZgwComponent,\n tabRoute: 'zgw',\n },\n multi: true,\n },\n {\n provide: ZGW_OBJECT_TYPE_COMPONENT_TOKEN,\n useValue: CaseDetailTabObjectTypeComponent,\n },\n {\n provide: ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN,\n useValue: CaseDetailTabDocumentenApiDocumentsComponent,\n },\n {\n provide: CASE_CONFIGURATION_EXTENSIONS_TOKEN,\n useValue: [CaseManagementLinkProcessComponent],\n },\n ],\n})\nexport class ZgwModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of documenten-api\n */\n\nexport * from './lib/components';\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/modules';\nexport * from './lib/zgw.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3.DocumentenApiColumnService","i5","i2.DocumentenApiColumnService","i3","i7","i4","i6.DocumentenApiTagService","tap","take","i3.DocumentenApiTagService","i6","i8.DocumentenApiVersionService","i9","CarbonInputModule","InputModule","map","filter","switchMap","i3.DocumentenApiDocumentService","i2.DocumentenApiVersionService","i8","i11","i12","i3.DocumentenApiLinkProcessService","i3.DocumentenApiVersionService","i2.DocumentenApiTagService","i2.DocumentenApiDocumentService","i5.DocumentenApiVersionService","i9.DocumentenApiMetadataModalComponent","i2.ZaakobjectenService","i2.DocumentObjectenApiSyncService","i6.ZakenApiZaaktypeLinkService","SelectModule","i1.CaseManagementZgwService"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-zgw.mjs","sources":["../../../../projects/valtimo/zgw/src/lib/models/case-management-zgw.model.ts","../../../../projects/valtimo/zgw/src/lib/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-column.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-document.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-link-process.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-tag.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/documenten-api-version.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-column-modal/documenten-api-column-modal.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-columns/documenten-api-columns.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-metadata.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/configured-column.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-column-modal.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-link-process.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-version.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/documenten-api-filter.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-filter/documenten-api-filter.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-link-process/case-management-link-process.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-link-process/case-management-link-process.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-tag-modal/documenten-api-tag-modal.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-tags/documenten-api-tags.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-upload-field-model/documenten-api-upload-field-modal.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-upload-field-model/documenten-api-upload-field-modal.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-upload-fields/documenten-api-upload-fields.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-upload-fields/documenten-api-upload-fields.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-version/documenten-api-version.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-version/documenten-api-version.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader-edit-form.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.component.html","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/documenten-api-uploader.formio.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/documenten-api-uploader/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/formio/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/models/zaakobjecten.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/services/zaakobjecten.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/zaakobjecten/zaakobjecten.component.html","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/object-type/object-type.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/object-type/object-type.component.html","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/objecten-api/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/services/document-objecten-api-sync.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/components/document-objecten-api-sync/document-objecten-api-sync.component.html","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaakdetails/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/services/zaken-api-zaaktype-link.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/components/zaken-api-zaaktype-link/zaken-api-zaaktype-link.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/components/zaken-api-zaaktype-link/zaken-api-zaaktype-link.component.html","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/models/zaken-api-zaaktype-link.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/zaken-api/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/notificaties-api/components/failed-notification-detail/failed-notification-detail.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/notificaties-api/components/failed-notification-detail/failed-notification-detail.component.html","../../../../projects/valtimo/zgw/src/lib/modules/notificaties-api/services/failed-notifications.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.html","../../../../projects/valtimo/zgw/src/lib/modules/notificaties-api/models/failed-notification.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/notificaties-api/notificaties-api-routing.module.ts","../../../../projects/valtimo/zgw/src/lib/modules/index.ts","../../../../projects/valtimo/zgw/src/lib/components/case-management-zgw-general/case-management-zgw-general.component.ts","../../../../projects/valtimo/zgw/src/lib/components/case-management-zgw-general/case-management-zgw-general.component.html","../../../../projects/valtimo/zgw/src/lib/services/case-management-zgw.service.ts","../../../../projects/valtimo/zgw/src/lib/services/index.ts","../../../../projects/valtimo/zgw/src/lib/components/case-management-zgw/case-management-zgw.component.ts","../../../../projects/valtimo/zgw/src/lib/components/case-management-zgw/case-management-zgw.component.html","../../../../projects/valtimo/zgw/src/lib/components/index.ts","../../../../projects/valtimo/zgw/src/lib/zgw.module.ts","../../../../projects/valtimo/zgw/src/public_api.ts","../../../../projects/valtimo/zgw/src/valtimo-zgw.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\n\nenum ZgwTabEnum {\n DOCUMENTEN_API_COLUMNS = 'documentenApiColumns',\n DOCUMENTEN_API_TAGS = 'documentenApiTags',\n DOCUMENTEN_API_UPLOAD_FIELDS = 'documentenApiUploadFields',\n GENERAL = 'general',\n}\n\ninterface ZgwTab {\n class: string;\n headingTranslationKey: string;\n tab: ZgwTabEnum;\n active?: boolean;\n component: Type<any>;\n}\n\nexport {ZgwTabEnum, ZgwTab};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-management-zgw.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\nimport {ConfiguredColumn} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiColumnService extends BaseApiService {\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n super(http, configService);\n }\n\n public getConfiguredColumns(caseDefinitionKey: string): Observable<ConfiguredColumn[]> {\n return this.http.get<ConfiguredColumn[]>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionKey}/zgw-document-column`)\n );\n }\n\n public getAdminConfiguredColumns(caseDefinitionName: string): Observable<ConfiguredColumn[]> {\n return this.http.get<ConfiguredColumn[]>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document-column`)\n );\n }\n\n public getAdminConfigurableColumns(caseDefinition: string): Observable<ConfiguredColumn[]> {\n return this.http.get<ConfiguredColumn[]>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinition}/zgw-document-column-key`)\n );\n }\n\n public deleteColumn(caseDefinitionName: string, columnKey: string): Observable<void> {\n return this.http.delete<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document-column/${columnKey}`\n )\n );\n }\n\n public updateColumn(caseDefinitionName: string, column: ConfiguredColumn): Observable<void> {\n return this.http.put<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document-column/${column.key}`\n ),\n column\n );\n }\n\n public updateConfiguredColumns(\n caseDefinitionKey: string,\n orderColumns: ConfiguredColumn[]\n ): Observable<null> {\n return this.http.put<null>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionKey}/zgw-document-column`),\n orderColumns\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\nimport {DocumentenApiRelatedFile} from '../models';\nimport {DocumentenApiUploadField} from '../models/documenten-api-upload-field.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiDocumentService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getFilteredZakenApiDocuments(\n documentId: string,\n paramsMap?: any\n ): Observable<Page<DocumentenApiRelatedFile>> {\n const params = new HttpParams({fromObject: paramsMap});\n\n return !!paramsMap\n ? this.httpClient.get<Page<DocumentenApiRelatedFile>>(\n this.getApiUrl(`/v2/zaken-api/document/${documentId}/files`),\n {params}\n )\n : this.httpClient.get<Page<DocumentenApiRelatedFile>>(\n this.getApiUrl(`/v2/zaken-api/document/${documentId}/files`)\n );\n }\n\n public updateDocument(file: any, metadata: any): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(`/v1/documenten-api/${file.pluginConfigurationId}/files/${file.fileId}`),\n metadata\n );\n }\n\n public deleteDocument(file: DocumentenApiRelatedFile): Observable<DocumentenApiRelatedFile[]> {\n return this.httpClient.delete<DocumentenApiRelatedFile[]>(\n this.getApiUrl(`/v1/documenten-api/${file.pluginConfigurationId}/files/${file.fileId}`)\n );\n }\n\n public getPrefilledUploadFields(documentId: string): Observable<DocumentenApiUploadField[]> {\n return this.httpClient.get<DocumentenApiUploadField[]>(\n this.getApiUrl(`/v1/document/${documentId}/zgw-document/upload-field`)\n );\n }\n\n public getUploadFields(caseDefinitionName: string): Observable<Array<DocumentenApiUploadField>> {\n return this.httpClient.get<Array<DocumentenApiUploadField>>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document/upload-field`\n )\n );\n }\n\n public updateUploadField(\n caseDefinitionName: string,\n uploadField: DocumentenApiUploadField\n ): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document/upload-field`\n ),\n uploadField\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ProcessDefinition, UploadProcessLink} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiLinkProcessService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getProcessDefinitions(): Observable<ProcessDefinition[]> {\n return this.httpClient.get<ProcessDefinition[]>(this.getApiUrl('/v1/process/definition'));\n }\n\n public getLinkedUploadProcess(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<UploadProcessLink> {\n return this.httpClient.get<UploadProcessLink>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/feature-process/DOCUMENT_UPLOAD`\n )\n );\n }\n\n public updateLinkedUploadProcess(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n processDefinitionKey: string\n ): Observable<UploadProcessLink> {\n return this.httpClient.put<UploadProcessLink>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/feature-process`\n ),\n {\n processDefinitionKey,\n linkType: 'DOCUMENT_UPLOAD',\n }\n );\n }\n\n public deleteLinkedUploadProcess(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/feature-process/DOCUMENT_UPLOAD`\n )\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\nimport {DocumentenApiTag} from '../models/documenten-api-tag.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiTagService extends BaseApiService {\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n super(http, configService);\n }\n\n public getTags(caseDefinitionName: string): Observable<DocumentenApiTag[]> {\n return this.http.get<DocumentenApiTag[]>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord`)\n );\n }\n\n public getTagsForAdmin(\n caseDefinitionName: string,\n params?: any\n ): Observable<Page<DocumentenApiTag>> {\n return this.http.get<Page<DocumentenApiTag>>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord`),\n {params}\n );\n }\n\n public createTag(caseDefinitionName: string, tagKey: string): Observable<void> {\n return this.http.post<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord/${tagKey}`\n ),\n {} //empty body because all data exists in path\n );\n }\n\n public deleteTag(caseDefinitionName: string, tagKey: string): Observable<void> {\n return this.http.delete<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord/${tagKey}`\n )\n );\n }\n\n public deleteTags(caseDefinitionName: string, tagKeys: string[]): Observable<void> {\n return this.http.delete<void>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/zgw-document/trefwoord`),\n {body: tagKeys}\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {DocumentenApiManagementVersion, SupportedDocumentenApiFeatures} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentenApiVersionService extends BaseApiService {\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n\n public get refresh$(): Observable<null> {\n return this._refresh$.asObservable();\n }\n\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getManagementApiVersion(\n caseDefinitionName: string\n ): Observable<DocumentenApiManagementVersion> {\n return this.httpClient.get<DocumentenApiManagementVersion>(\n this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/documenten-api/version`)\n );\n }\n\n public getSupportedApiFeatures(\n caseDefinitionKey: string\n ): Observable<SupportedDocumentenApiFeatures> {\n return this.httpClient.get<SupportedDocumentenApiFeatures>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionKey}/documenten-api/version`)\n );\n }\n\n public refresh(): void {\n this._refresh$.next(null);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-column.service';\nexport * from './documenten-api-document.service';\nexport * from './documenten-api-link-process.service';\nexport * from './documenten-api-tag.service';\nexport * from './documenten-api-version.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ButtonModule,\n DropdownModule,\n InputModule,\n LayerModule,\n ListItem,\n ModalModule,\n NotificationContent,\n NotificationModule,\n RadioModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, map, Observable, Subscription, switchMap} from 'rxjs';\nimport {\n ConfiguredColumn,\n DocumentenApiColumnModalType,\n DocumentenApiColumnModalTypeCloseEvent,\n} from '../../models';\nimport {DocumentenApiColumnService} from '../../services';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-documenten-api-column-modal',\n templateUrl: './documenten-api-column-modal.component.html',\n styleUrls: ['./documenten-api-column-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ModalModule,\n TranslateModule,\n InputModule,\n ReactiveFormsModule,\n ButtonModule,\n DropdownModule,\n RadioModule,\n NotificationModule,\n LayerModule,\n ],\n})\nexport class DocumentenApiColumnModalComponent implements OnInit, OnDestroy {\n @Input() public definitionName: string;\n\n private _prefillColumn!: ListItem[] | null;\n @Input() public set prefillColumn(value: ConfiguredColumn | undefined) {\n if (!value) return;\n\n const column = {content: value.key, selected: true, column: value};\n const defaultSort = value.defaultSort ?? 'noDefault';\n this.formGroup.patchValue({column, defaultSort});\n this.formGroup.get('column')?.disable();\n this._prefillColumn = [column];\n }\n public get prefillColumn(): ListItem[] | null {\n return this._prefillColumn;\n }\n\n private _type!: DocumentenApiColumnModalType;\n @Input() public set type(value: DocumentenApiColumnModalType) {\n this._type = value;\n if (value === 'edit') {\n this.formGroup.get('column')?.disable;\n }\n }\n public get type(): DocumentenApiColumnModalType {\n return this._type;\n }\n\n private readonly _availableColumns$ = new BehaviorSubject<ConfiguredColumn[]>([]);\n @Input() public set availableColumns(value: ConfiguredColumn[]) {\n if (!value) return;\n\n this._availableColumns$.next(value);\n }\n\n public readonly availableColumns$: Observable<ListItem[]> = combineLatest([\n this._availableColumns$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([columns]) =>\n columns.map((column: ConfiguredColumn) => ({\n content: this.translateService.instant(`zgw.documentColumns.${column.key}`),\n selected: false,\n column,\n }))\n )\n );\n\n private _defaultSortedColumn!: ConfiguredColumn | undefined;\n @Input() public set configuredColumns(value: ConfiguredColumn[]) {\n if (!value) return;\n\n this._defaultSortedColumn = value.find((column: ConfiguredColumn) => !!column.defaultSort);\n }\n\n @Output() closeModal = new EventEmitter<DocumentenApiColumnModalTypeCloseEvent>();\n\n public formGroup = this.fb.group({\n column: this.fb.control(\n {content: '', selected: false, column: {} as ConfiguredColumn},\n Validators.required\n ),\n defaultSort: this.fb.control<'ASC' | 'DESC' | 'noDefault'>('noDefault'),\n });\n\n private readonly _notificationMessage$ = new BehaviorSubject<string>(\n 'zgw.columns.defaultWarning'\n );\n public readonly notificationObj$: Observable<NotificationContent> = combineLatest([\n this._notificationMessage$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([message]) => ({\n type: 'warning',\n lowContrast: true,\n title: this.translateService.instant('interface.warning'),\n message: this.translateService.instant(message),\n showClose: false,\n }))\n );\n\n public showRadioButtons = true;\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly translateService: TranslateService,\n private readonly zgwDocumentenApiColumnService: DocumentenApiColumnService\n ) {}\n\n public ngOnInit(): void {\n this.openDisableRadioSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onClose(refresh = false): void {\n this.closeModal.emit(refresh ? 'closeAndRefresh' : 'close');\n\n setTimeout(() => {\n this.formGroup.reset();\n this.formGroup.enable();\n this.showRadioButtons = true;\n this._notificationMessage$.next('zgw.columns.defaultWarning');\n this._prefillColumn = null;\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public updateColumn(): void {\n const columnValue: ListItem | null | undefined = this.formGroup.get('column')?.value;\n if (!columnValue || !this.definitionName) {\n return;\n }\n const defaultSortValue = this.formGroup.get('defaultSort')?.value;\n const defaultSort = !defaultSortValue\n ? null\n : defaultSortValue === 'noDefault'\n ? null\n : defaultSortValue;\n const column = {...columnValue.column, defaultSort};\n\n if (\n !!this._defaultSortedColumn &&\n this._defaultSortedColumn.key !== column.key &&\n !!column.defaultSort\n ) {\n this.zgwDocumentenApiColumnService\n .updateColumn(this.definitionName, {\n ...this._defaultSortedColumn,\n defaultSort: null,\n })\n .pipe(\n switchMap(() =>\n this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column)\n )\n )\n .subscribe(() => {\n this.onClose(true);\n });\n\n return;\n }\n\n this.zgwDocumentenApiColumnService.updateColumn(this.definitionName, column).subscribe(() => {\n this.onClose(true);\n });\n }\n\n private openDisableRadioSubscription(): void {\n this._subscriptions.add(\n this.formGroup.get('column')?.valueChanges.subscribe(columnValue => {\n this.showRadioButtons = !!columnValue?.column.sortable;\n\n this._notificationMessage$.next(\n this.showRadioButtons ? 'zgw.columns.defaultWarning' : 'zgw.columns.notSortable'\n );\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"type !== 'closed'\" size=\"sm\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{ (type === 'add' ? 'zgw.columns.add' : 'zgw.columns.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n class=\"valtimo-documenten-api-column-modal__content\"\n cdsModalContent\n [formGroup]=\"formGroup\"\n [cdsLayer]=\"1\"\n >\n <cds-dropdown\n formControlName=\"column\"\n [label]=\"'zgw.columns.column' | translate\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list\n [items]=\"!prefillColumn ? (availableColumns$ | async) : prefillColumn\"\n ></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-radio-group *ngIf=\"showRadioButtons\" legend=\"Default sort\" formControlName=\"defaultSort\">\n <cds-radio value=\"noDefault\"> {{ 'interface.sorting.noDefault' | translate }} </cds-radio>\n\n <cds-radio value=\"DESC\"> {{ 'interface.sorting.descending' | translate }} </cds-radio>\n\n <cds-radio value=\"ASC\"> {{ 'interface.sorting.ascending' | translate }} </cds-radio>\n </cds-radio-group>\n\n <cds-inline-notification [notificationObj]=\"notificationObj$ | async\"></cds-inline-notification>\n </form>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"updateColumn()\">\n {{ (type === 'add' ? 'interface.add' : 'interface.save') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n} from '@valtimo/shared';\nimport {ButtonModule, IconModule, TagModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, switchMap, tap} from 'rxjs';\nimport {\n ConfiguredColumn,\n DocumentenApiColumnModalType,\n DocumentenApiColumnModalTypeCloseEvent,\n} from '../../models';\nimport {DocumentenApiColumnService} from '../../services';\nimport {DocumentenApiColumnModalComponent} from '../documenten-api-column-modal/documenten-api-column-modal.component';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-documenten-api-columns',\n templateUrl: './documenten-api-columns.component.html',\n styleUrls: ['./documenten-api-columns.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n DocumentenApiColumnModalComponent,\n CarbonListModule,\n TranslateModule,\n ConfirmationModalModule,\n TagModule,\n ButtonModule,\n IconModule,\n ],\n})\nexport class DocumentenApiColumnsComponent implements AfterViewInit {\n @ViewChild('columnKeyTemplate') public readonly columnKeyTemplate: TemplateRef<any>;\n @ViewChild('defaultSortTemplate') public readonly defaultSortTemplate: TemplateRef<any>;\n\n private readonly _reload$ = new BehaviorSubject<null | 'noAnimation'>(null);\n\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => params?.caseDefinitionKey ?? ''),\n filter((caseDefinitionKey: string) => !!caseDefinitionKey)\n );\n\n public readonly caseDefinitionVersionTag$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(map((params: CaseManagementParams | undefined) => params?.caseDefinitionVersionTag ?? ''));\n\n public readonly hasEditPermissions$: Observable<boolean> = combineLatest([\n this.caseDefinitionKey$,\n this.caseDefinitionVersionTag$,\n ]).pipe(\n switchMap(([caseDefinitionKey, caseDefinitionVersionTag]) =>\n this.editPermissionsService.hasEditPermissions(caseDefinitionKey, caseDefinitionVersionTag)\n )\n );\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n public readonly configuredColumns$: Observable<ConfiguredColumn[]> = combineLatest([\n this.caseDefinitionKey$,\n this._reload$,\n ]).pipe(\n tap(([_, reload]) => {\n if (reload === null) this.loading$.next(true);\n }),\n switchMap(([caseDefinitionKey]) =>\n this.zgwDocumentColumnService.getAdminConfiguredColumns(caseDefinitionKey)\n ),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly configurableColumns$: Observable<ConfiguredColumn[]> =\n this.caseDefinitionKey$.pipe(\n switchMap((caseDefinitionKey: string) =>\n combineLatest([\n this.zgwDocumentColumnService.getAdminConfigurableColumns(caseDefinitionKey),\n this.configuredColumns$,\n ])\n ),\n map(([configurableColumns, configuredColumns]) => {\n const configuredKeys: string[] = configuredColumns.map(\n (column: ConfiguredColumn) => column.key\n );\n\n return configurableColumns.filter(\n (column: ConfiguredColumn) => !configuredKeys.includes(column.key)\n );\n })\n );\n\n public fields: ColumnConfig[];\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'interface.edit',\n callback: this.openEditModal.bind(this),\n type: 'normal',\n },\n {\n label: 'interface.delete',\n callback: this.openDeleteModal.bind(this),\n type: 'danger',\n },\n ];\n\n public readonly columnModalType$ = new BehaviorSubject<DocumentenApiColumnModalType>('closed');\n public readonly prefillColumn$ = new BehaviorSubject<ConfiguredColumn | undefined>(undefined);\n\n public readonly columnToUpdate$ = new BehaviorSubject<ConfiguredColumn | undefined>(undefined);\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zgwDocumentColumnService: DocumentenApiColumnService,\n private readonly editPermissionsService: EditPermissionsService\n ) {}\n\n public ngAfterViewInit(): void {\n this.fields = [\n {\n key: 'key',\n label: 'zgw.columns.column',\n viewType: ViewType.TEMPLATE,\n template: this.columnKeyTemplate,\n },\n {\n key: 'defaultSort',\n label: 'listColumn.defaultSort',\n viewType: ViewType.TEMPLATE,\n template: this.defaultSortTemplate,\n },\n ];\n }\n\n public openDeleteModal(column: ConfiguredColumn): void {\n this.columnToUpdate$.next(column);\n this.showDeleteModal$.next(true);\n }\n\n public openEditModal(column: ConfiguredColumn): void {\n this.hasEditPermissions$\n .pipe(\n filter(hasPermission => hasPermission),\n take(1)\n )\n .subscribe(() => {\n this.prefillColumn$.next(column);\n this.columnModalType$.next('edit');\n });\n }\n\n public openAddModal(): void {\n this.columnModalType$.next('add');\n this.prefillColumn$.next(undefined);\n }\n\n public onCloseModal(closeModalEvent: DocumentenApiColumnModalTypeCloseEvent): void {\n if (closeModalEvent === 'closeAndRefresh') this.reload();\n\n this.columnModalType$.next('closed');\n }\n\n public confirmDeleteStatus(column: ConfiguredColumn, definitionName: string): void {\n this.zgwDocumentColumnService.deleteColumn(definitionName, column.key).subscribe(() => {\n this.reload();\n });\n }\n\n public onItemsReordered(definitionName: string, columns: ConfiguredColumn[]): void {\n this.zgwDocumentColumnService.updateConfiguredColumns(definitionName, columns).subscribe(() => {\n this.reload(true);\n });\n }\n\n private reload(noAnimation = false): void {\n this._reload$.next(noAnimation ? 'noAnimation' : null);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n columnModalType: columnModalType$ | async,\n columnToUpdate: columnToUpdate$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n configuredColumns: configuredColumns$ | async,\n configurableColumns: configurableColumns$ | async,\n loading: loading$ | async,\n prefillColumn: prefillColumn$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.configuredColumns\"\n [loading]=\"obs.loading || !fields\"\n [dragAndDrop]=\"true\"\n [dragAndDropDisabled]=\"!(hasEditPermissions$ | async)\"\n (itemsReordered)=\"onItemsReordered(obs.caseDefinitionKey, $event)\"\n (rowClicked)=\"openEditModal($event)\"\n >\n <ng-container carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"addButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-column-modal\n [availableColumns]=\"obs.configurableColumns\"\n [configuredColumns]=\"obs.configuredColumns\"\n [definitionName]=\"obs.caseDefinitionKey\"\n [prefillColumn]=\"obs.prefillColumn\"\n [type]=\"obs.columnModalType\"\n (closeModal)=\"onCloseModal($event)\"\n ></valtimo-documenten-api-column-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.columns.deleteText\"\n [outputOnConfirm]=\"columnToUpdate$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"confirmDeleteStatus($event, obs.caseDefinitionKey)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button\n *ngIf=\"hasEditPermissions$ | async\"\n cdsButton=\"primary\"\n [disabled]=\"loading$ | async\"\n (click)=\"openAddModal()\"\n >\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'zgw.columns.add' | translate }}\n </button>\n</ng-template>\n\n<ng-template #columnKeyTemplate let-data=\"data\">\n {{ 'zgw.documentColumns.' + data.item.key | translate }}\n</ng-template>\n\n<ng-template #defaultSortTemplate let-data=\"data\">\n {{\n data.item.defaultSort === null\n ? '-'\n : ('interface.sorting.' + (data.item.defaultSort === 'ASC' ? 'ascending' : 'descending')\n | translate)\n }}\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ConfidentialityLevel =\n | 'openbaar'\n | 'beperkt_openbaar'\n | 'intern'\n | 'zaakvertrouwelijk'\n | 'vertrouwelijk'\n | 'confidentieel'\n | 'geheim'\n | 'zeer_geheim';\n\nconst CONFIDENTIALITY_LEVELS: Array<ConfidentialityLevel> = [\n 'openbaar',\n 'beperkt_openbaar',\n 'intern',\n 'zaakvertrouwelijk',\n 'vertrouwelijk',\n 'confidentieel',\n 'geheim',\n 'zeer_geheim',\n];\n\ntype DocumentStatus = 'in_bewerking' | 'ter_vaststelling' | 'definitief' | 'gearchiveerd';\n\nconst STATUS_ITEMS: Array<DocumentStatus> = [\n 'in_bewerking',\n 'ter_vaststelling',\n 'definitief',\n 'gearchiveerd',\n];\n\ntype DocumentLanguage = 'nld' | 'eng' | 'deu';\n\nconst LANGUAGE_ITEMS: Array<DocumentLanguage> = ['nld', 'eng', 'deu'];\n\ninterface DocumentenApiMetadata {\n titel: string;\n beschrijving?: string;\n bestandsnaam?: string;\n vertrouwelijkheidaanduiding?: ConfidentialityLevel;\n auteur: string;\n status?: DocumentStatus;\n creatiedatum: string;\n ontvangstdatum?: string;\n verzenddatum?: string;\n taal: DocumentLanguage;\n informatieobjecttype: string;\n trefwoorden?: string[];\n processInstanceId?: string;\n documentUrlProcessVariable: string | null;\n}\n\ntype AdditionalDocumentDate = 'sent' | 'received' | 'neither';\n\nexport {\n DocumentenApiMetadata,\n ConfidentialityLevel,\n CONFIDENTIALITY_LEVELS,\n DocumentStatus,\n STATUS_ITEMS,\n DocumentLanguage,\n LANGUAGE_ITEMS,\n AdditionalDocumentDate,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {RelatedFile} from '@valtimo/document';\n\ninterface DocumentenApiRelatedFile extends RelatedFile {\n auteur?: string;\n beschrijving?: string;\n bestandsnaam?: string;\n bestandsomvang?: number;\n bronorganisatie?: string;\n creatiedatum?: Date;\n formaat?: string;\n identificatie?: string;\n informatieobjecttype?: string;\n locked?: boolean;\n status?: string;\n taal?: string;\n titel?: String;\n trefwoorden?: string[];\n versie?: number;\n vertrouwelijkheidaanduiding?: string;\n tags?: {content: string}[];\n}\n\nenum DOCUMENTEN_COLUMN_KEYS {\n AUTEUR = 'auteur',\n BESCHRIJVING = 'beschrijving',\n BESTANDSNAAM = 'bestandsnaam',\n BESTANDSOMVANG = 'bestandsomvang',\n BRONORGANISATIE = 'bronorganisatie',\n CREATIEDATUM = 'creatiedatum',\n FORMAAT = 'formaat',\n IDENTIFICATIE = 'identificatie',\n INFORMATIEOBJECTTYPE = 'informatieobjecttype',\n LOCKED = 'locked',\n STATUS = 'status',\n TAAL = 'taal',\n TITEL = 'titel',\n TREFWOORDEN = 'trefwoorden',\n VERSIE = 'versie',\n VERTROUWELIJKHEIDAANDUIDING = 'vertrouwelijkheidaanduiding',\n TAGS = 'tags',\n}\n\nexport {DocumentenApiRelatedFile, DOCUMENTEN_COLUMN_KEYS};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ViewType} from '@valtimo/components';\nimport {DOCUMENTEN_COLUMN_KEYS} from './documenten-api.model';\n\ninterface ConfiguredColumn {\n key: string;\n sortable: boolean;\n filterable: boolean;\n defaultSort: 'ASC' | 'DESC' | null;\n}\n\nconst COLUMN_VIEW_TYPES: {[key: string]: ViewType} = {\n [DOCUMENTEN_COLUMN_KEYS.CREATIEDATUM]: ViewType.DATE,\n [DOCUMENTEN_COLUMN_KEYS.LOCKED]: ViewType.BOOLEAN,\n [DOCUMENTEN_COLUMN_KEYS.TREFWOORDEN]: ViewType.TAGS,\n [DOCUMENTEN_COLUMN_KEYS.STATUS]: ViewType.TEMPLATE,\n [DOCUMENTEN_COLUMN_KEYS.TAAL]: ViewType.TEMPLATE,\n [DOCUMENTEN_COLUMN_KEYS.VERTROUWELIJKHEIDAANDUIDING]: ViewType.TEMPLATE,\n};\n\nexport {ConfiguredColumn, COLUMN_VIEW_TYPES};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype DocumentenApiColumnModalType = 'edit' | 'add' | 'closed';\n\ntype DocumentenApiColumnModalTypeCloseEvent = 'close' | 'closeAndRefresh';\n\nexport {DocumentenApiColumnModalType, DocumentenApiColumnModalTypeCloseEvent};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ProcessDefinition {\n visibleInMenu: any;\n category: string;\n deploymentId: string;\n description: string;\n diagram: string;\n historyTimeToLive: string;\n id: string;\n key: string;\n name: string;\n resource: string;\n startableInTasklist: boolean;\n suspended: false;\n tenantId: string;\n version: number;\n versionTag: string;\n}\n\ninterface UploadProcessLink {\n processDefinitionKey: string;\n processName: string;\n}\n\nexport {UploadProcessLink, ProcessDefinition};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface DocumentenApiManagementVersion {\n selectedVersion: string;\n detectedVersions: string;\n}\n\ninterface SupportedDocumentenApiFeatures {\n selectedVersion: string;\n supportsFilterableColumns: boolean;\n supportsSortableColumns: boolean;\n supportsTrefwoorden: boolean;\n supportsUpdatingDefinitiveDocument: boolean;\n}\n\nexport {DocumentenApiManagementVersion, SupportedDocumentenApiFeatures};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface DocumentenApiFilterModel {\n auteur?: string;\n vertrouwelijkheidaanduiding?: string;\n creatiedatumFrom?: string;\n creatiedatumTo?: string;\n informatieobjectype?: string;\n trefwoorden?: string;\n titel?: string;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-metadata.model';\nexport * from './configured-column.model';\nexport * from './documenten-api-column-modal.model';\nexport * from './documenten-api.model';\nexport * from './documenten-api-link-process.model';\nexport * from './documenten-api-version.model';\nexport * from './documenten-api-filter.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {FormBuilder, ReactiveFormsModule} from '@angular/forms';\nimport {ActivatedRoute, ParamMap} from '@angular/router';\nimport {TrashCan16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {ConfidentialityLevel} from '@valtimo/components';\nimport {DocumentService, DocumentType} from '@valtimo/document';\nimport {\n ButtonModule,\n DatePicker,\n DatePickerInputModule,\n DatePickerModule,\n DropdownModule,\n IconModule,\n IconService,\n InputModule,\n ListItem,\n} from 'carbon-components-angular';\nimport flatpickr from 'flatpickr';\nimport {\n combineLatest,\n debounceTime,\n filter,\n map,\n Observable,\n startWith,\n Subscription,\n switchMap,\n} from 'rxjs';\nimport {DocumentenApiFilterModel} from '../../models';\nimport {DocumentenApiTag} from '../../models/documenten-api-tag.model';\nimport {DocumentenApiTagService} from '../../services';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-case-detail-tab-documenten-api-filter',\n templateUrl: './documenten-api-filter.component.html',\n styleUrls: ['./documenten-api-filter.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ButtonModule,\n DatePickerInputModule,\n DatePickerModule,\n DropdownModule,\n IconModule,\n InputModule,\n TranslateModule,\n ReactiveFormsModule,\n ],\n})\nexport class DocumentenApiFilterComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('creationDateFrom') public readonly creationDateFromPicker: DatePicker;\n @ViewChild('creationDateTo') public readonly creationDateToPicker: DatePicker;\n @Output() public filterEvent = new EventEmitter<DocumentenApiFilterModel>();\n\n private readonly _subscriptions = new Subscription();\n private readonly _confidentialityLevels: Array<ConfidentialityLevel> = [\n 'openbaar',\n 'beperkt_openbaar',\n 'intern',\n 'zaakvertrouwelijk',\n 'vertrouwelijk',\n 'confidentieel',\n 'geheim',\n 'zeer_geheim',\n ];\n\n private readonly _filter$ = this.route.queryParamMap.pipe(\n map(queryParams => {\n let {sort, ...filter} = queryParams['params'];\n if (this.formGroup) {\n if (!!filter.trefwoorden) {\n filter = {...filter, trefwoorden: this.convertTrefwoordenParam(filter.trefwoorden)};\n }\n this.formGroup.patchValue(filter, {emitEvent: false});\n }\n return filter;\n })\n );\n\n public readonly confidentialityLevels$: Observable<ListItem[]> = combineLatest([\n this._filter$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([filter]) =>\n this._confidentialityLevels.map((confidentialityLevel: ConfidentialityLevel) => ({\n content: this.translateService.instant(`document.${confidentialityLevel}`),\n selected: filter?.vertrouwelijkheidaanduiding === confidentialityLevel,\n id: confidentialityLevel,\n }))\n ),\n startWith([])\n );\n\n private readonly _context = getCaseManagementRouteParams(this.route);\n\n public readonly informationObjectTypes$: Observable<ListItem[]> = this._context.pipe(\n switchMap(params =>\n combineLatest([\n this.documentService.getDocumentTypesForCase(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n ),\n this._filter$,\n ])\n ),\n map(([types, filter]) =>\n types.map((type: DocumentType) => ({\n content: type.name,\n selected: filter?.informatieobjecttype === type.url,\n id: type.url,\n }))\n ),\n startWith([])\n );\n\n public readonly tags$: Observable<ListItem[]> = this.route.paramMap.pipe(\n filter((paramMap: ParamMap) => !!paramMap.get('caseDefinitionKey')),\n switchMap((paramMap: ParamMap) =>\n combineLatest([\n this.documentenApiTagService.getTags(paramMap.get('caseDefinitionKey') ?? ''),\n this.route.queryParamMap,\n ])\n ),\n map(([tags, queryParamMap]) => {\n const selectedTags = this.convertTrefwoordenParam(queryParamMap['params']?.trefwoorden).map(\n (item: ListItem) => item.content\n );\n return tags.map((tag: DocumentenApiTag) => ({\n content: tag.value,\n selected: selectedTags.includes(tag.value),\n }));\n }),\n startWith([])\n );\n\n public readonly formGroup = this.fb.group({\n auteur: this.fb.control(''),\n vertrouwelijkHeidaanduiding: this.fb.control({}),\n creatiedatumFrom: this.fb.control(''),\n creatiedatumTo: this.fb.control(''),\n informatieObjectType: this.fb.control({}),\n trefwoorden: this.fb.control([]),\n titel: this.fb.control(''),\n });\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly fb: FormBuilder,\n private readonly iconService: IconService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly documentenApiTagService: DocumentenApiTagService\n ) {\n this.iconService.register(TrashCan16);\n }\n\n public ngOnInit(): void {\n this.openFormValueSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public ngAfterViewInit(): void {\n const creationDateFromControlValue = this.formGroup.get('creatiedatumFrom')?.value;\n const creationDateToControlValue = this.formGroup.get('creatiedatumTo')?.value;\n\n if (!!creationDateFromControlValue) {\n this.creationDateFromPicker.writeValue([\n flatpickr.formatDate(new Date(creationDateFromControlValue), 'd-m-Y'),\n ]);\n }\n\n if (!!creationDateToControlValue) {\n this.creationDateToPicker.writeValue([\n flatpickr.formatDate(new Date(creationDateToControlValue), 'd-m-Y'),\n ]);\n }\n }\n\n public resetFilter(): void {\n this.creationDateFromPicker.writeValue([]);\n this.creationDateToPicker.writeValue([]);\n this.formGroup.reset();\n }\n\n public onDateSelected(control: 'createdTo' | 'createdFrom', event: any): void {\n if (control === 'createdFrom') {\n this.formGroup.get('creatiedatumFrom')?.patchValue(event);\n return;\n }\n\n this.formGroup.get('creatiedatumTo')?.patchValue(event);\n }\n\n private openFormValueSubscription(): void {\n this._subscriptions.add(\n this.formGroup.valueChanges.pipe(debounceTime(500)).subscribe(formValue => {\n this.filterEvent.emit({\n ...(!!formValue.auteur && {auteur: formValue.auteur}),\n ...(!!formValue.titel && {titel: formValue.titel}),\n ...(!!formValue.creatiedatumFrom && {\n creatiedatumFrom: flatpickr.formatDate(new Date(formValue.creatiedatumFrom), 'Y-m-d'),\n }),\n ...(!!formValue.creatiedatumTo && {\n creatiedatumTo: flatpickr.formatDate(new Date(formValue.creatiedatumTo), 'Y-m-d'),\n }),\n ...(!!(formValue.vertrouwelijkHeidaanduiding as ListItem)?.id && {\n vertrouwelijkheidaanduiding: (formValue.vertrouwelijkHeidaanduiding as ListItem).id,\n }),\n ...(!!(formValue.informatieObjectType as ListItem)?.id && {\n informatieobjecttype: (formValue.informatieObjectType as ListItem).id,\n }),\n ...(!!formValue.trefwoorden &&\n formValue.trefwoorden.length > 0 && {\n trefwoorden: (formValue.trefwoorden as ListItem[]).reduce(\n (acc, curr, index) => (index === 0 ? curr.content : `${acc},${curr.content}`),\n ''\n ),\n }),\n });\n })\n );\n }\n\n private convertTrefwoordenParam(stringArray: string | undefined): ListItem[] {\n if (!stringArray) return [];\n const array = stringArray.split(',');\n\n return array.map((content: string) => ({\n content,\n selected: true,\n }));\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"valtimo-documenten-api-filter\" (click)=\"$event.stopImmediatePropagation()\">\n <form\n *ngIf=\"{\n confidentialityLevels: confidentialityLevels$ | async,\n informationObjectTypes: informationObjectTypes$ | async,\n tags: tags$ | async,\n } as obs\"\n class=\"valtimo-documenten-api-filter__form\"\n [formGroup]=\"formGroup\"\n >\n <cds-text-label>\n {{ 'zgw.documentColumns.titel' | translate }}\n\n <input cdsText formControlName=\"titel\" />\n </cds-text-label>\n\n <cds-dropdown\n [disabled]=\"!obs.informationObjectTypes?.length\"\n [dropUp]=\"false\"\n [label]=\"'zgw.documentColumns.informatieobjecttype' | translate\"\n formControlName=\"informatieObjectType\"\n >\n <cds-dropdown-list [items]=\"obs.informationObjectTypes\"></cds-dropdown-list>\n </cds-dropdown>\n\n <div class=\"valtimo-documenten-api-filter__dates\">\n <cds-date-picker\n #creationDateFrom\n [label]=\"'interface.labels.dateCreationFrom' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('createdFrom', $event)\"\n ></cds-date-picker>\n\n <cds-date-picker\n #creationDateTo\n [label]=\"'interface.labels.dateCreationTo' | translate\"\n placeholder=\"DD-MM-YYYY\"\n [dateFormat]=\"'d-m-Y'\"\n (valueChange)=\"onDateSelected('createdTo', $event)\"\n ></cds-date-picker>\n </div>\n\n <cds-text-label>\n {{ 'zgw.documentColumns.auteur' | translate }}\n\n <input cdsText formControlName=\"auteur\" />\n </cds-text-label>\n\n <cds-dropdown\n [dropUp]=\"false\"\n [label]=\"'zgw.documentColumns.vertrouwelijkheidaanduiding' | translate\"\n formControlName=\"vertrouwelijkHeidaanduiding\"\n >\n <cds-dropdown-list [items]=\"obs.confidentialityLevels\"></cds-dropdown-list>\n </cds-dropdown>\n\n <cds-dropdown\n [label]=\"'zgw.documentColumns.trefwoorden' | translate\"\n formControlName=\"trefwoorden\"\n type=\"multi\"\n >\n <cds-dropdown-list [items]=\"obs.tags\"></cds-dropdown-list>\n </cds-dropdown>\n </form>\n\n <footer class=\"valtimo-documenten-api-filter__footer\">\n <button cdsButton=\"tertiary\" (click)=\"resetFilter()\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </footer>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\n\nimport {\n AdditionalDocumentDate,\n ConfidentialityLevel,\n DocumentenApiMetadata,\n DocumentLanguage,\n DocumentStatus,\n SupportedDocumentenApiFeatures,\n} from '../../models';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n from,\n map,\n Observable,\n of,\n startWith,\n Subject,\n Subscription,\n switchMap,\n take,\n} from 'rxjs';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {KeycloakService} from 'keycloak-angular';\nimport {tap} from 'rxjs/operators';\nimport {CommonModule} from '@angular/common';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {\n FormIoStateService,\n InputLabelModule,\n InputModule,\n ModalService,\n SelectModule,\n ValtimoModalService,\n VModalComponent,\n VModalModule,\n} from '@valtimo/components';\n\nimport {\n ButtonModule,\n ComboBoxModule,\n DatePickerModule,\n DropdownModule,\n IconModule,\n InputModule as CarbonInputModule,\n LayerModule,\n ListItem,\n ModalModule,\n RadioModule,\n TagModule,\n TooltipModule,\n} from 'carbon-components-angular';\nimport {DocumentenApiTagService} from '../../services';\nimport moment from 'moment';\nimport {DocumentenApiUploadFieldDefaultValues} from '../../models/documenten-api-upload-field.model';\nimport {DocumentenApiVersionService} from '../../services';\n\n@Component({\n selector: 'valtimo-documenten-api-metadata-modal',\n templateUrl: './documenten-api-metadata-modal.component.html',\n styleUrls: ['./documenten-api-metadata-modal.component.scss'],\n standalone: true,\n imports: [\n ButtonModule,\n CarbonInputModule,\n ComboBoxModule,\n CommonModule,\n DatePickerModule,\n DropdownModule,\n IconModule,\n InputLabelModule,\n InputModule,\n ModalModule,\n RadioModule,\n ReactiveFormsModule,\n SelectModule,\n TagModule,\n TooltipModule,\n TranslateModule,\n VModalModule,\n LayerModule,\n ],\n})\nexport class DocumentenApiMetadataModalComponent implements OnInit, OnDestroy {\n @ViewChild('metadataModal') metadataModal: VModalComponent;\n\n @Input() disabled$!: Observable<boolean>;\n @Input() file$!: Observable<any>;\n\n @Input() hideFields: Array<string> = [];\n @Input() defaultValues: DocumentenApiUploadFieldDefaultValues = {};\n @Input() set disableAuthor(value: boolean) {\n if (value) {\n this.auteur.disable();\n } else {\n this.auteur.enable();\n }\n }\n @Input() set disableConfidentialityLevel(value: boolean) {\n if (value) {\n this.confidentialityLevelFormControl.disable();\n } else {\n this.confidentialityLevelFormControl.enable();\n }\n }\n @Input() set disableDescription(value: boolean) {\n if (value) {\n this.beschrijving.disable();\n } else {\n this.beschrijving.enable();\n }\n }\n @Input() set disableDocumentTitle(value: boolean) {\n if (value) {\n this.titel.disable();\n } else {\n this.titel.enable();\n }\n }\n @Input() set disableDocumentType(value: boolean) {\n if (value) {\n this.informatieobjecttypeFormControl.disable();\n } else {\n this.informatieobjecttypeFormControl.enable();\n }\n }\n @Input() set disableFilename(value: boolean) {\n if (value) {\n this.bestandsnaam.disable();\n } else {\n this.bestandsnaam.enable();\n }\n }\n @Input() set disableLanguage(value: boolean) {\n if (value) {\n this.languageFormControl.disable();\n } else {\n this.languageFormControl.enable();\n }\n }\n @Input() set disableStatus(value: boolean) {\n if (value) {\n this.statusFormControl.disable();\n } else {\n this.statusFormControl.enable();\n }\n }\n @Input() supportsTrefwoorden = false;\n @Input() set disableCreationDate(value: boolean) {\n if (value) {\n this.creatiedatum.disable();\n } else {\n this.creatiedatum.enable();\n }\n }\n @Input() isEditMode: boolean;\n\n public readonly open$ = new BehaviorSubject<boolean>(false);\n\n @Input() set open(value: boolean) {\n this.open$.next(value);\n\n if (value) {\n this.modalService.openModal(this.metadataModal);\n } else {\n this.modalService.closeModal();\n }\n }\n\n @Output() metadata: EventEmitter<DocumentenApiMetadata> = new EventEmitter();\n @Output() modalClose: EventEmitter<boolean> = new EventEmitter();\n\n public filenameExtension: string = '';\n public documentenApiMetadataForm: FormGroup = this.fb.group({\n bestandsnaam: this.fb.control(''),\n titel: this.fb.control('', Validators.required),\n auteur: this.fb.control('', Validators.required),\n beschrijving: this.fb.control(''),\n taal: this.fb.control('', Validators.required),\n informatieobjecttype: this.fb.control('', Validators.required),\n status: this.fb.control(''),\n vertrouwelijkheidaanduiding: this.fb.control(''),\n creatiedatum: this.fb.control('', Validators.required),\n ontvangstdatum: this.fb.control(''),\n verzenddatum: this.fb.control(''),\n trefwoorden: this.fb.control([]),\n });\n\n public get confidentialityLevelFormControl(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('vertrouwelijkheidaanduiding');\n }\n public get confidentialityLevelDisabled$(): Observable<boolean> {\n return this.confidentialityLevelFormControl.valueChanges.pipe(\n startWith(null),\n map(() => this.confidentialityLevelFormControl.disabled)\n );\n }\n\n public get informatieobjecttypeFormControl(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('informatieobjecttype');\n }\n public get informatieobjecttypeDisabled$(): Observable<boolean> {\n return this.informatieobjecttypeFormControl.valueChanges.pipe(\n startWith(null),\n map(() => this.informatieobjecttypeFormControl.disabled)\n );\n }\n\n public get languageFormControl(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('taal');\n }\n\n public get languageDisabled$(): Observable<boolean> {\n return this.languageFormControl.valueChanges.pipe(\n startWith(null),\n map(() => this.languageFormControl.disabled)\n );\n }\n\n public get statusFormControl(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('status');\n }\n public get statusDisabled$(): Observable<boolean> {\n return this.statusFormControl.valueChanges.pipe(\n startWith(null),\n map(() => this.informatieobjecttypeFormControl.disabled)\n );\n }\n\n public get tagFormControl(): AbstractControl<string[]> {\n return this.documentenApiMetadataForm.get('trefwoorden');\n }\n\n public get creatiedatum(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('creatiedatum');\n }\n\n public get titel(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('titel');\n }\n\n public get beschrijving(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('beschrijving');\n }\n\n public get auteur(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('auteur');\n }\n\n public get bestandsnaam(): AbstractControl<string> {\n return this.documentenApiMetadataForm.get('bestandsnaam');\n }\n\n public readonly editDisabled$ = new BehaviorSubject<boolean>(false);\n\n public readonly CONFIDENTIALITY_LEVELS: Array<ConfidentialityLevel> = [\n 'openbaar',\n 'beperkt_openbaar',\n 'intern',\n 'zaakvertrouwelijk',\n 'vertrouwelijk',\n 'confidentieel',\n 'geheim',\n 'zeer_geheim',\n ];\n public readonly confidentialityLevelItems$: Observable<Array<ListItem>> = combineLatest([\n this.confidentialityLevelFormControl.valueChanges.pipe(\n startWith(this.confidentialityLevelFormControl.value)\n ),\n this.translateService.stream('key'),\n ]).pipe(\n map(([currentConfidentialityLevel]) =>\n this.CONFIDENTIALITY_LEVELS.map(confidentialityLevel => ({\n id: confidentialityLevel,\n content: this.translateService.instant(`document.${confidentialityLevel}`),\n selected: currentConfidentialityLevel === confidentialityLevel,\n }))\n )\n );\n\n public readonly ADDITONAL_DOCUMENT_DATE_OPTIONS: Array<{\n value: AdditionalDocumentDate;\n translationKey: string;\n }> = [\n {\n value: 'neither',\n translationKey: 'document.noAdditionalDate',\n },\n {\n value: 'sent',\n translationKey: 'document.sendDate',\n },\n {\n value: 'received',\n translationKey: 'document.receiptDate',\n },\n ];\n public readonly clearStatusSelection$ = new Subject<null>();\n public readonly additionalDocumentDate$ = new BehaviorSubject<AdditionalDocumentDate>('neither');\n public readonly STATUSES: Array<DocumentStatus> = [\n 'in_bewerking',\n 'ter_vaststelling',\n 'definitief',\n 'gearchiveerd',\n ];\n public readonly RECEIPT_STATUSES: Array<DocumentStatus> = ['definitief', 'gearchiveerd'];\n public readonly formData$ = new BehaviorSubject<DocumentenApiMetadata>(null);\n public readonly statusItems$: Observable<Array<ListItem>> = combineLatest([\n this.additionalDocumentDate$,\n this.statusFormControl.valueChanges.pipe(startWith(this.statusFormControl.value)),\n this.translateService.stream('key'),\n ]).pipe(\n tap(([additionalDocumentDate, currentStatus]) => {\n this.formData$\n .pipe(\n filter(formData => !!formData),\n take(1)\n )\n .subscribe(formData => {\n if (\n additionalDocumentDate === 'received' &&\n (formData.status === 'in_bewerking' || formData.status === 'ter_vaststelling')\n ) {\n this.clearStatusSelection$.next(null);\n }\n });\n }),\n map(([additionalDocumentDate, currentStatus]) =>\n (additionalDocumentDate === 'received' ? this.RECEIPT_STATUSES : this.STATUSES).map(\n status => ({\n id: status,\n content: this.translateService.instant(`document.${status}`),\n selected: currentStatus === status,\n })\n )\n )\n );\n\n public readonly tagItems$: Observable<Array<ListItem>> = combineLatest([\n this.valtimoModalService.caseDefinitionKey$,\n this.tagFormControl.valueChanges.pipe(startWith(this.tagFormControl.value)),\n ]).pipe(\n filter(([caseDefinitionKey]) => !!caseDefinitionKey),\n switchMap(([caseDefinitionKey, tagFormControlValue]) =>\n combineLatest([\n this.documentenApiTagService.getTags(caseDefinitionKey),\n of(tagFormControlValue),\n ])\n ),\n map(([tags, tagFormControlValue]) =>\n tags.map(tag => ({\n id: tag.value,\n content: tag.value,\n selected: !!tagFormControlValue ? tagFormControlValue.includes(tag.value) : false,\n }))\n )\n );\n\n public readonly LANGUAGES: Array<DocumentLanguage> = ['nld', 'eng', 'deu'];\n public languageItems$: Observable<Array<ListItem>> = combineLatest([\n this.languageFormControl.valueChanges.pipe(startWith(this.languageFormControl.value)),\n this.translateService.stream('key'),\n ]).pipe(\n map(([currentLanguage]) => {\n return this.LANGUAGES.map(\n (language: any) =>\n ({\n content: this.translateService.instant(`document.${language}`),\n id: language,\n selected: currentLanguage === language,\n }) as ListItem\n );\n })\n );\n\n public readonly documentId$ = combineLatest([\n this.formioStateService.documentId$,\n this.route.params.pipe(map(params => params?.documentId ?? null)),\n ]).pipe(map(([formIoDocumentId, routeDocumentId]) => formIoDocumentId || routeDocumentId));\n\n public readonly documentTypeItems$: Observable<Array<ListItem>> = combineLatest([\n this.documentId$,\n this.informatieobjecttypeFormControl.valueChanges.pipe(\n startWith(this.informatieobjecttypeFormControl.value)\n ),\n ]).pipe(\n filter(([documentId]) => !!documentId),\n switchMap(([documentId, informatieobjecttypeValue]) =>\n combineLatest([\n this.documentService.getDocumentTypesForDocument(documentId),\n of(informatieobjecttypeValue),\n ])\n ),\n map(([documentTypes, informatieobjecttypeValue]) =>\n documentTypes.map((type: any) => ({\n id: type.url,\n content: type.name,\n selected: informatieobjecttypeValue === type.url,\n }))\n )\n );\n public readonly userEmail$ = from(this.keycloakService.loadUserProfile()).pipe(\n map(userProfile => userProfile?.email || '')\n );\n\n private readonly _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this.valtimoModalService.caseDefinitionKey$.pipe(\n switchMap(caseDefinitionKey =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionKey)\n )\n );\n\n private _subscriptions = new Subscription();\n private _fileSubscription!: Subscription;\n private _fileNameAndAuthorSubscription!: Subscription;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly documentenApiTagService: DocumentenApiTagService,\n private readonly fb: FormBuilder,\n private readonly keycloakService: KeycloakService,\n private readonly modalService: ModalService,\n private readonly translateService: TranslateService,\n private readonly valtimoModalService: ValtimoModalService,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly formioStateService: FormIoStateService\n ) {}\n\n public ngOnInit(): void {\n this.openFileSubscription();\n this.openDisabledSubscription();\n this.openFilenameSubscription();\n this.openDocumentDefinitionSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._fileSubscription?.unsubscribe();\n this._fileNameAndAuthorSubscription?.unsubscribe();\n this.editDisabled$.next(false);\n }\n\n public languageSelected(event: {item: {id: string}}) {\n if (event.item.id) {\n this.documentenApiMetadataForm.patchValue({\n taal: event.item.id,\n });\n }\n }\n\n public tagsSelected(event: Array<ListItem>) {\n this.tagFormControl.patchValue(event.filter(tag => tag.selected).map(tag => tag.id));\n }\n\n public setAdditionalDate(value: AdditionalDocumentDate): void {\n this.additionalDocumentDate$.next(value);\n }\n\n public confidentialityLevelSelected(event: {id: string}) {\n if (event.id) {\n this.documentenApiMetadataForm.patchValue({\n vertrouwelijkheidaanduiding: event.id,\n });\n }\n }\n\n public statusSelected(event: {id: string}) {\n if (event.id) {\n this.documentenApiMetadataForm.patchValue({\n status: event.id,\n });\n }\n }\n\n public informatieobjecttypeSelected(event: {id: string}) {\n if (event.id) {\n this.documentenApiMetadataForm.patchValue({\n informatieobjecttype: event.id,\n });\n }\n }\n\n public prefillForm(file) {\n this.prefillFilenameAndAuthor();\n\n if (file) {\n const {\n beschrijving,\n taal,\n informatieobjecttype,\n status,\n vertrouwelijkheidaanduiding,\n ontvangstdatum,\n verzenddatum,\n trefwoorden,\n } = file;\n\n if (verzenddatum) this.additionalDocumentDate$.next('sent');\n else if (ontvangstdatum) this.additionalDocumentDate$.next('received');\n else this.additionalDocumentDate$.next('neither');\n\n const defaultStatus = this.defaultValues.status;\n const validDefaultStatus =\n this.STATUSES.includes(defaultStatus as DocumentStatus) && defaultStatus;\n const validPrefillStatus = this.STATUSES.includes(status) && status;\n\n this.documentenApiMetadataForm.patchValue({\n beschrijving: beschrijving || this.defaultValues.beschrijving,\n taal: taal || this.defaultValues.taal,\n informatieobjecttype: informatieobjecttype || this.defaultValues.informatieobjecttype,\n status: validPrefillStatus || validDefaultStatus || null,\n vertrouwelijkheidaanduiding:\n vertrouwelijkheidaanduiding || this.defaultValues.vertrouwelijkheidaanduiding,\n ontvangstdatum: ontvangstdatum ? new Date(ontvangstdatum) : null,\n verzenddatum: verzenddatum ? new Date(verzenddatum) : null,\n trefwoorden: trefwoorden || this.defaultValues.trefwoorden,\n });\n }\n }\n\n public save(): void {\n this.formatDate('creatiedatum');\n this.formatDate('verzenddatum');\n this.formatDate('ontvangstdatum');\n\n const rawValue = this.documentenApiMetadataForm.getRawValue();\n const mappedRawValue = Object.keys(rawValue).reduce(\n (acc, currentKey) =>\n rawValue[currentKey] !== undefined ? {...acc, [currentKey]: rawValue[currentKey]} : acc,\n {}\n ) as DocumentenApiMetadata;\n\n if (this.documentenApiMetadataForm.valid) this.metadata.emit(mappedRawValue);\n\n this.closeModal();\n }\n\n public closeModal(): void {\n this.modalService.closeModal(() => {\n this.additionalDocumentDate$.next('neither');\n this.modalClose.emit();\n this.clearForm();\n });\n }\n\n private clearForm(): void {\n this.documentenApiMetadataForm.reset();\n }\n\n private prefillFilenameAndAuthor() {\n this._fileNameAndAuthorSubscription?.unsubscribe();\n this._fileNameAndAuthorSubscription = combineLatest([this.file$, this.userEmail$])\n .pipe(\n tap(([file, userEmail]) => {\n const filename = file?.bestandsnaam || this.defaultValues.bestandsnaam || file?.name;\n this.filenameExtension = filename?.split('.')?.pop() || '';\n if (this.filenameExtension.length === filename?.length) {\n this.filenameExtension = '';\n }\n this.documentenApiMetadataForm.patchValue({\n bestandsnaam: filename,\n auteur: file?.auteur || this.defaultValues.auteur || userEmail,\n creatiedatum: file?.creatiedatum || new Date(Date.now()),\n titel:\n file?.titel ||\n this.defaultValues.titel ||\n this.filenameToTitle(file?.name || this.defaultValues.bestandsnaam),\n });\n if (this.areAllFieldsHidden()) {\n this.save();\n }\n })\n )\n .subscribe();\n }\n\n private filenameToTitle(filename?: string) {\n if (!filename) {\n return null;\n }\n\n filename = filename.replace(/\\.[^/.]+$/, '').replace(/[._]/g, ' ');\n return filename.charAt(0).toUpperCase() + filename.slice(1);\n }\n\n private formatDate(controlName: string): void {\n const control = this.documentenApiMetadataForm.controls[controlName];\n if (control.value) {\n this.documentenApiMetadataForm.patchValue({\n [controlName]: this.toFormattedDate(control.value),\n });\n }\n }\n\n private toFormattedDate(date: any): string {\n return moment(new Date(date)).format('YYYY-MM-DD');\n }\n\n private openFileSubscription(): void {\n this._fileSubscription?.unsubscribe();\n if (this.file$) {\n this._fileSubscription = combineLatest([\n this.file$,\n this._supportedDocumentenApiFeatures$,\n ]).subscribe(([file, support]) => {\n if (file) {\n this.prefillForm(file);\n this.editDisabled$.next(\n !support.supportsUpdatingDefinitiveDocument &&\n file.status === 'definitief' &&\n this.isEditMode\n );\n }\n });\n }\n }\n\n public openDisabledSubscription(): void {\n this._subscriptions.add(\n this.disabled$?.subscribe(disabled => {\n if (disabled) {\n this.documentenApiMetadataForm.disable();\n } else {\n this.documentenApiMetadataForm.enable();\n }\n })\n );\n }\n\n private openFilenameSubscription() {\n this._subscriptions.add(\n this.bestandsnaam.valueChanges.subscribe(bestandsnaam => {\n if (bestandsnaam && this.filenameExtension) {\n let correctBestandsnaam =\n bestandsnaam.replace(/\\.[^/.]+$/, '') + '.' + this.filenameExtension;\n if (correctBestandsnaam != bestandsnaam) {\n this.documentenApiMetadataForm.patchValue({\n bestandsnaam: correctBestandsnaam,\n });\n }\n }\n })\n );\n }\n\n private openDocumentDefinitionSubscription() {\n this._subscriptions.add(\n combineLatest([this.route?.params || of(null), this.route?.firstChild?.params || of(null)])\n .pipe(\n map(\n ([params, firstChildParams]) =>\n (params?.caseDefinitionKey || firstChildParams?.caseDefinitionKey) as string\n ),\n filter(caseDefinitionKey => !!caseDefinitionKey)\n )\n .subscribe(caseDefinitionKey =>\n this.valtimoModalService.setCaseDefinitionKey(caseDefinitionKey)\n )\n );\n }\n\n private areAllFieldsHidden(): boolean {\n return (\n this.hideFields.includes('aanvullendeDatum') &&\n this.hideFields.includes('auteur') &&\n this.hideFields.includes('vertrouwelijkheidaanduiding') &&\n this.hideFields.includes('creatiedatum') &&\n this.hideFields.includes('beschrijving') &&\n this.hideFields.includes('titel') &&\n this.hideFields.includes('informatieobjecttype') &&\n this.hideFields.includes('bestandsnaam') &&\n this.hideFields.includes('taal') &&\n this.hideFields.includes('status') &&\n this.hideFields.includes('trefwoorden')\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #metadataModal\n *ngIf=\"{\n file: file$ | async,\n disabled: disabled$ | async,\n editDisabled: editDisabled$ | async,\n languageItems: languageItems$ | async,\n confidentialityLevelItems: confidentialityLevelItems$ | async,\n documentTypeItems: documentTypeItems$ | async,\n statusItems: statusItems$ | async,\n tagItems: tagItems$ | async,\n userEmail: userEmail$ | async,\n open: open$ | async,\n additionalDate: additionalDocumentDate$ | async,\n } as obs\"\n [maxWidthPx]=\"1280\"\n (closeEvent)=\"closeModal()\"\n [cdsLayer]=\"1\"\n>\n <div role=\"header\">\n @if (isEditMode) {\n <h3 cdsModalHeaderHeading>\n {{ 'document.editMetadata' | translate }}\n </h3>\n } @else {\n <h3 cdsModalHeaderHeading>\n {{ 'document.fillInMetadata' | translate }}\n </h3>\n }\n </div>\n\n <div role=\"content\">\n @if (obs.open) {\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n }\n </div>\n\n <div role=\"footer\" class=\"metadata-modal-footer\">\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [disabled]=\"obs.disabled\">\n {{ 'document.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n type=\"submit\"\n [disabled]=\"obs.disabled || !documentenApiMetadataForm.valid || obs.editDisabled\"\n (click)=\"save()\"\n >\n {{ 'document.save' | translate }}\n </button>\n </div>\n</v-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <form [formGroup]=\"documentenApiMetadataForm\">\n <div class=\"documenten-metadata-form-columns-container\">\n <div class=\"documenten-metadata-form-column\">\n @if (!hideFields.includes('bestandsnaam')) {\n <cds-text-label class=\"documenten-metada-form-input\">\n {{ 'document.filename' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.filenameTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <input\n [value]=\"defaultValues.bestandsnaam\"\n [placeholder]=\"'document.filenamePlaceholder' | translate\"\n cdsText\n type=\"text\"\n id=\"bestandsnaam\"\n formControlName=\"bestandsnaam\"\n />\n </cds-text-label>\n }\n @if (!hideFields.includes('auteur')) {\n <cds-text-label class=\"documenten-metada-form-input\">\n {{ 'document.author' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.authorTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <input\n [value]=\"defaultValues.auteur\"\n [placeholder]=\"'document.authorPlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n id=\"auteur\"\n formControlName=\"auteur\"\n />\n </cds-text-label>\n }\n @if (!hideFields.includes('taal')) {\n <cds-text-label>\n {{ 'document.language' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.languageTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <div class=\"documenten-metada-form-input\">\n <cds-dropdown\n [disabled]=\"obs.disabled || (languageDisabled$ | async)\"\n [appendInline]=\"true\"\n [placeholder]=\"'document.languagePlaceholder' | translate\"\n id=\"language\"\n (selected)=\"languageSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.languageItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n }\n @if (!hideFields.includes('vertrouwelijkheidaanduiding')) {\n <cds-label>\n {{ 'document.confidentialityLevel' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.confidentialityLevelTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-combo-box\n [placeholder]=\"'document.confidentialityPlaceholder' | translate\"\n id=\"vertrouwelijkheidaanduiding\"\n [appendInline]=\"true\"\n [disabled]=\"obs.disabled || (confidentialityLevelDisabled$ | async)\"\n (selected)=\"confidentialityLevelSelected($event)\"\n (clear)=\"confidentialityLevelFormControl.setValue(null)\"\n >\n <cds-dropdown-list [items]=\"obs.confidentialityLevelItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n }\n @if (!hideFields.includes('informatieobjecttype')) {\n <cds-label>\n {{ 'document.informatieobjecttype' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.informatieobjecttypeTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-combo-box\n [placeholder]=\"'document.informatieobjecttypePlaceholder' | translate\"\n [disabled]=\"obs.disabled || (informatieobjecttypeDisabled$ | async)\"\n id=\"informatieobjecttype\"\n [appendInline]=\"true\"\n (selected)=\"informatieobjecttypeSelected($event)\"\n (clear)=\"informatieobjecttypeFormControl.setValue(null)\"\n >\n <cds-dropdown-list [items]=\"obs.documentTypeItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n }\n @if (!hideFields.includes('aanvullendeDatum')) {\n <cds-text-label name=\"'additionalDate'\">\n {{ 'document.additionalDate' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.additionalDateTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <cds-radio-group [orientation]=\"'horizontal'\" class=\"documenten-metada-form-input\">\n <cds-radio\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n [value]=\"option.value\"\n [checked]=\"obs.additionalDate === option.value\"\n [required]=\"true\"\n (click)=\"setAdditionalDate(option.value)\"\n name=\"radio-inline\"\n >\n {{ option.translationKey | translate }}\n </cds-radio>\n </cds-radio-group>\n }\n @if (supportsTrefwoorden && !hideFields.includes('trefwoorden')) {\n <cds-text-label>\n {{ 'document.tags' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.tagsTooltip' | translate\"\n [align]=\"'bottom-left'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n <div class=\"documenten-metada-form-input\">\n <cds-combo-box\n [type]=\"'multi'\"\n [placeholder]=\"'document.tagsPlaceholder' | translate\"\n [disabled]=\"obs.disabled || obs.tagItems?.length === 0\"\n [appendInline]=\"true\"\n (selected)=\"tagsSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.tagItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n }\n </div>\n\n <div class=\"documenten-metadata-form-column\">\n @if (!hideFields.includes('titel')) {\n <cds-text-label>\n {{ 'document.inputTitle' | translate }}\n <input\n [placeholder]=\"'document.inputTitlePlaceholder' | translate\"\n [required]=\"true\"\n cdsText\n class=\"documenten-metada-form-input\"\n id=\"titel\"\n formControlName=\"titel\"\n />\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.inputTitleTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-text-label>\n }\n @if (!hideFields.includes('beschrijving')) {\n <cds-textarea-label>\n {{ 'document.inputDescription' | translate }}\n <textarea\n [placeholder]=\"'document.inputDescriptionPlaceholder' | translate\"\n [required]=\"false\"\n [rows]=\"5\"\n cdsTextArea\n class=\"documenten-metada-form-description-input documenten-metada-form-input\"\n id=\"beschrijving\"\n formControlName=\"beschrijving\"\n ></textarea>\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.inputDescriptionTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-textarea-label>\n }\n @if (!hideFields.includes('creatiedatum')) {\n <cds-label>\n {{ 'document.creationDate' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.creationDateTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n <div class=\"documenten-metada-form-input\">\n <cds-date-picker\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"creatiedatum\"\n formControlName=\"creatiedatum\"\n >\n </cds-date-picker>\n </div>\n </cds-label>\n }\n @if (!hideFields.includes('status')) {\n <cds-label>\n {{ 'document.status' | translate }}\n <cds-tooltip\n [isOpen]=\"false\"\n [description]=\"'document.statusTooltip' | translate\"\n [align]=\"'bottom'\"\n >\n <i class=\"mdi mdi-help-circle-outline\"></i>\n </cds-tooltip>\n </cds-label>\n <div class=\"documenten-metada-form-input\">\n <cds-combo-box\n [placeholder]=\"'document.statusPlaceholder' | translate\"\n [disabled]=\"obs.disabled || (statusDisabled$ | async)\"\n id=\"status\"\n [appendInline]=\"true\"\n (selected)=\"statusSelected($event)\"\n (clear)=\"statusFormControl.setValue(null)\"\n >\n <cds-dropdown-list [items]=\"obs.statusItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n }\n @if (!hideFields.includes('aanvullendeDatum')) {\n <cds-date-picker\n *ngIf=\"obs.additionalDate === 'received'\"\n [label]=\"'document.additionalDate' | translate\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"ontvangstdatum\"\n formControlName=\"ontvangstdatum\"\n ></cds-date-picker>\n <cds-date-picker\n *ngIf=\"obs.additionalDate === 'sent'\"\n [label]=\"'document.additionalDate' | translate\"\n [placeholder]=\"'DD-MM-YYYY'\"\n [dateFormat]=\"'d-m-Y'\"\n id=\"verzenddatum\"\n formControlName=\"verzenddatum\"\n ></cds-date-picker>\n }\n </div>\n </div>\n </form>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Filter16, TagGroup16, Upload16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {PermissionRequest, PermissionService} from '@valtimo/access-control';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n DEFAULT_PAGINATION,\n DEFAULT_PAGINATOR_CONFIG,\n DocumentenApiMetadata,\n Pagination,\n SortState,\n ViewType,\n} from '@valtimo/components';\nimport {CaseSettings, DocumentService} from '@valtimo/document';\nimport {\n CAN_CREATE_RESOURCE_PERMISSION,\n CAN_DELETE_RESOURCE_PERMISSION,\n CAN_MODIFY_RESOURCE_PERMISSION,\n CAN_VIEW_RESOURCE_PERMISSION,\n DownloadService,\n RESOURCE_PERMISSION_RESOURCE,\n UploadProviderService,\n} from '@valtimo/resource';\nimport {UserProviderService} from '@valtimo/security';\nimport {ConfigService, Direction} from '@valtimo/shared';\nimport {ButtonModule, DialogModule, IconModule, IconService} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n Observable,\n of,\n ReplaySubject,\n Subject,\n Subscription,\n} from 'rxjs';\nimport {catchError, filter, map, switchMap, take, tap, shareReplay} from 'rxjs/operators';\nimport {\n COLUMN_VIEW_TYPES,\n ConfiguredColumn,\n DOCUMENTEN_COLUMN_KEYS,\n DocumentenApiFilterModel,\n DocumentenApiRelatedFile,\n SupportedDocumentenApiFeatures,\n} from '../../models';\nimport {\n DocumentenApiUploadFieldDefaultValues,\n DocumentenApiUploadFields,\n} from '../../models/documenten-api-upload-field.model';\nimport {DocumentenApiColumnService, DocumentenApiVersionService} from '../../services';\nimport {DocumentenApiDocumentService} from '../../services/documenten-api-document.service';\nimport {DocumentenApiFilterComponent} from '../documenten-api-filter/documenten-api-filter.component';\nimport {DocumentenApiMetadataModalComponent} from '../documenten-api-metadata-modal/documenten-api-metadata-modal.component';\n\n@Component({\n selector: 'valtimo-case-detail-tab-documenten-api-documents',\n templateUrl: './documenten-api-documents.component.html',\n styleUrls: ['./documenten-api-documents.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n CarbonListModule,\n DocumentenApiMetadataModalComponent,\n ButtonModule,\n IconModule,\n TranslateModule,\n DocumentenApiFilterComponent,\n DialogModule,\n ConfirmationModalModule,\n ],\n})\nexport class CaseDetailTabDocumentenApiDocumentsComponent implements OnInit, OnDestroy {\n @ViewChild('fileInput') fileInput: ElementRef;\n @ViewChild('translationTemplate') translationTemplate: TemplateRef<any>;\n\n private readonly _caseDefinitionKey$ = this.route.params.pipe(\n map(params => params?.caseDefinitionKey ?? ''),\n filter((caseDefinitionKey: string) => !!caseDefinitionKey)\n );\n private readonly _caseSettings$ = this._caseDefinitionKey$.pipe(\n switchMap((caseDefinitionKey: string) =>\n this.documentService.getCaseSettings(caseDefinitionKey)\n )\n );\n\n public readonly supportedDocumentenApiFeatures$ =\n new BehaviorSubject<SupportedDocumentenApiFeatures | null>(null);\n\n private readonly _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this._caseDefinitionKey$.pipe(\n switchMap(caseDefinitionName =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionName)\n ),\n tap(supportedDocumentenApiFeatures =>\n this.supportedDocumentenApiFeatures$.next(supportedDocumentenApiFeatures)\n )\n );\n\n public readonly fields$: Observable<ColumnConfig[]> = this._caseDefinitionKey$.pipe(\n tap(() => this.fieldsLoading$.next(true)),\n switchMap(caseDefinitionKey =>\n combineLatest([\n this.documentenApiColumnService.getConfiguredColumns(caseDefinitionKey),\n this._supportedDocumentenApiFeatures$,\n this._sort$,\n ])\n ),\n map(([columns, supportedDocumentenApiFeatures, sort]) => {\n const defaultSortColumn: ConfiguredColumn | undefined = columns.find(\n (column: ConfiguredColumn) => !!column.defaultSort\n );\n if (\n !!defaultSortColumn &&\n !sort?.sort &&\n supportedDocumentenApiFeatures.supportsSortableColumns\n ) {\n this._sort$.next({sort: `${defaultSortColumn.key},${defaultSortColumn.defaultSort}`});\n }\n\n return columns.map((column: ConfiguredColumn) => ({\n key: column.key === DOCUMENTEN_COLUMN_KEYS.BESTANDSOMVANG ? 'size' : column.key,\n label: `zgw.documentColumns.${column.key}`,\n viewType: !COLUMN_VIEW_TYPES[column.key] ? ViewType.TEXT : COLUMN_VIEW_TYPES[column.key],\n ...(COLUMN_VIEW_TYPES[column.key] === ViewType.TEMPLATE && {\n template: this.translationTemplate,\n templateData: {key: column.key},\n }),\n ...(column.key === DOCUMENTEN_COLUMN_KEYS.CREATIEDATUM && {format: 'DD-MM-YYYY'}),\n sortable: column.sortable && supportedDocumentenApiFeatures.supportsSortableColumns,\n }));\n }),\n tap(() => this.fieldsLoading$.next(false))\n );\n public document: DocumentenApiRelatedFile;\n public actionItems: ActionItem[] = [\n {\n label: 'document.download',\n callback: this.onDownloadActionClick.bind(this),\n disabledCallback: this.downloadDisabled.bind(this),\n type: 'normal',\n },\n {\n label: 'document.edit',\n callback: this.onEditMetadata.bind(this),\n disabledCallback: this.editDisabled.bind(this),\n type: 'normal',\n },\n {\n label: 'document.delete',\n callback: this.onDeleteActionClick.bind(this),\n disabledCallback: this.deleteDisabled.bind(this),\n type: 'danger',\n },\n ];\n\n public readonly documentId$: Observable<string> = this.route.params.pipe(\n map(params => params?.documentId),\n filter(documentId => !!documentId)\n );\n\n public isAdmin: boolean;\n public showZaakLinkWarning: boolean;\n public uploadProcessLinkedSet = false;\n public uploadProcessLinked!: boolean;\n\n public isEditMode$ = new BehaviorSubject<boolean>(false);\n\n public readonly acceptedFiles: string | null =\n this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n\n public readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n public readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n public readonly showModal$ = new Subject<null>();\n public readonly showUploadModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteConfirmationModal$ = new BehaviorSubject<boolean>(false);\n\n public readonly uploading$ = new BehaviorSubject<boolean>(false);\n private readonly _itemsLoading$ = new BehaviorSubject<boolean>(true);\n public readonly fieldsLoading$ = new BehaviorSubject<boolean>(true);\n public readonly loading$ = combineLatest([this._itemsLoading$, this.fieldsLoading$]).pipe(\n map(([itemsLoading, fieldsLoading]) => itemsLoading || fieldsLoading)\n );\n\n public readonly filter$ = new ReplaySubject<DocumentenApiFilterModel | null>();\n public readonly pagination$ = new BehaviorSubject<Pagination>(DEFAULT_PAGINATION);\n private readonly _refetch$ = new BehaviorSubject<null>(null);\n private readonly _sort$ = new ReplaySubject<{sort: string} | null>();\n private readonly valtimoEndpointUri!: string;\n\n public readonly paginatorConfig = {\n ...DEFAULT_PAGINATOR_CONFIG,\n itemsPerPageOptions: [5, 10, 20, 50, 100],\n };\n\n public sortState$: Observable<SortState | null> = this._sort$.pipe(\n filter(sortValue => !!sortValue?.sort),\n map(sortValue => this.getSortStateFromSortString(sortValue?.sort))\n );\n\n public uploadFields$: Observable<DocumentenApiUploadFields> = this.documentId$.pipe(\n switchMap(documentId => this.documentenApiDocumentService.getPrefilledUploadFields(documentId)),\n map(uploadFields =>\n uploadFields.reduce(\n (acc, curr) => ({\n ...acc,\n [curr.key]: {\n key: curr.key,\n defaultValue: curr.defaultValue,\n visible: curr.visible,\n readonly: curr.readonly,\n },\n }),\n {}\n )\n )\n );\n\n public defaultValues$: Observable<DocumentenApiUploadFieldDefaultValues> =\n this.uploadFields$.pipe(\n map(formFields => ({\n auteur: formFields?.auteur?.defaultValue,\n vertrouwelijkheidaanduiding: formFields?.vertrouwelijkheidaanduiding?.defaultValue,\n beschrijving: formFields?.beschrijving?.defaultValue,\n titel: formFields?.titel?.defaultValue,\n informatieobjecttype: formFields?.informatieobjecttype?.defaultValue,\n bestandsnaam: formFields?.bestandsnaam?.defaultValue,\n taal: formFields?.taal?.defaultValue,\n status: formFields?.status?.defaultValue,\n trefwoorden: formFields?.trefwoorden?.defaultValue\n ?.split(',')\n ?.map(tag => tag.trim())\n ?.filter(tag => !!tag),\n }))\n );\n\n public hideFields$: Observable<Array<string>> = this.uploadFields$.pipe(\n map(formFields => {\n if (formFields) {\n return Object.keys(formFields).filter(field => !formFields[field]?.visible);\n }\n return [];\n })\n );\n\n public relatedFiles$: Observable<Array<DocumentenApiRelatedFile>> = combineLatest([\n this.documentId$,\n this.route.queryParamMap,\n this._refetch$,\n ]).pipe(\n tap(() => this._itemsLoading$.next(true)),\n switchMap(([documentId, queryParams]) =>\n combineLatest([\n this.documentenApiDocumentService.getFilteredZakenApiDocuments(\n documentId,\n queryParams['params']\n ),\n this.translateService.stream('key'),\n ])\n ),\n map(([relatedFiles]) => {\n this.pagination$.next({\n ...this.pagination$.getValue(),\n collectionSize: relatedFiles.totalElements,\n });\n const translatedFiles = relatedFiles?.content?.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n size: this.bytesToMegabytes(file.bestandsomvang),\n tags: file.trefwoorden?.map((trefwoord: string) => ({\n content: trefwoord,\n })),\n }));\n return translatedFiles || [];\n }),\n tap(() => {\n this._itemsLoading$.next(false);\n }),\n catchError(() => {\n this.showZaakLinkWarning = true;\n this._itemsLoading$.next(false);\n return of([]);\n }),\n shareReplay({bufferSize: 1, refCount: true})\n );\n\n public readonly enablePbacDocumentenApiDocuments$: Observable<boolean> =\n this.configService.getFeatureToggleObservable('enablePbacDocumentenApiDocuments');\n\n public filePermissions: {\n [fileId: string]: {canView: boolean; canModify: boolean; canDelete: boolean};\n } = {};\n\n public readonly canCreateResource$: Observable<boolean> = this.documentId$.pipe(\n switchMap(documentId =>\n this.getPermission(CAN_CREATE_RESOURCE_PERMISSION, {\n resource: RESOURCE_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier: documentId,\n })\n )\n );\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly configService: ConfigService,\n private readonly documentenApiColumnService: DocumentenApiColumnService,\n private readonly documentenApiDocumentService: DocumentenApiDocumentService,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly documentService: DocumentService,\n private readonly downloadService: DownloadService,\n private readonly iconService: IconService,\n private readonly permissionService: PermissionService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translateService: TranslateService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly userProviderService: UserProviderService\n ) {\n this.iconService.register(Filter16);\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public ngOnInit(): void {\n this.setInitialParams();\n this.setUploadProcessLinked();\n this.isUserAdmin();\n this.iconService.registerAll([Filter16, TagGroup16, Upload16]);\n this.registerPermissionSubscriptions();\n }\n\n public registerPermissionSubscriptions(): void {\n this._subscriptions.add(\n this.relatedFiles$\n .pipe(\n switchMap(files =>\n combineLatest({\n files: of(files),\n canView: this.getPermissions(files, CAN_VIEW_RESOURCE_PERMISSION),\n canModify: this.getPermissions(files, CAN_MODIFY_RESOURCE_PERMISSION),\n canDelete: this.getPermissions(files, CAN_DELETE_RESOURCE_PERMISSION),\n })\n )\n )\n .subscribe(permissions =>\n permissions.files.map(\n file =>\n (this.filePermissions[file.fileId] = {\n canView: permissions.canView[file.fileId],\n canModify: permissions.canModify[file.fileId],\n canDelete: permissions.canDelete[file.fileId],\n })\n )\n )\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onDeleteActionClick(item: DocumentenApiRelatedFile): void {\n this.document = item;\n this.showDeleteConfirmationModal$.next(true);\n }\n\n public deleteDocument(): void {\n this._itemsLoading$.next(true);\n this.documentenApiDocumentService.deleteDocument(this.document).subscribe(() => {\n this.refetchDocuments();\n });\n }\n\n public bytesToMegabytes(bytes: number | undefined): string {\n if (!bytes) return '';\n\n const megabytes = bytes / (1024 * 1024);\n if (megabytes < 1) {\n return `${Math.ceil(megabytes * 1000)} KB`;\n } else if (megabytes < 1000) {\n return megabytes.toFixed(2) + ' MB';\n }\n\n return (megabytes / 1000).toFixed(2) + ' GB';\n }\n\n public getUploadButtonTooltip(): string {\n if (this.uploadProcessLinkedSet && this.uploadProcessLinked) {\n return 'Upload';\n } else if (this.isAdmin) {\n return 'case.documenten.noProcessLinked.adminRole';\n }\n\n return 'case.documenten.noProcessLinked.regularUser';\n }\n\n public isUserAdmin() {\n this.userProviderService\n .getUserSubject()\n .pipe(take(1))\n .subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n () => {\n this.isAdmin = false;\n }\n );\n }\n\n public metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n\n combineLatest([this.fileToBeUploaded$, this.documentId$])\n .pipe(take(1))\n .pipe(\n tap(([file, documentId]) => {\n if (!file) return;\n if (this.isEditMode$.getValue()) {\n this.documentenApiDocumentService.updateDocument(file, metadata).subscribe(() => {\n this.refetchDocuments();\n this.uploading$.next(false);\n this.fileToBeUploaded$.next(null);\n });\n } else {\n this.uploadProviderService\n .uploadFileWithMetadata(file, documentId, metadata)\n .subscribe(() => {\n this.refetchDocuments();\n this.filter$.next(null);\n this.pagination$.next(DEFAULT_PAGINATION);\n this.uploading$.next(false);\n this.fileToBeUploaded$.next(null);\n });\n }\n })\n )\n .subscribe();\n }\n\n public onDownloadActionClick(file: DocumentenApiRelatedFile): void {\n this.downloadDocument(file, true);\n }\n\n public onEditMetadata(file: File): void {\n this.isEditMode$.next(true);\n this.fileToBeUploaded$.next(file);\n this.showUploadModal$.next(true);\n }\n\n public closeMetadataModal(): void {\n this.showUploadModal$.next(false);\n }\n\n public onFileSelected(event: any): void {\n this.isEditMode$.next(false);\n this.fileToBeUploaded$.next(event.target.files[0]);\n this.showUploadModal$.next(true);\n this.resetFileInput();\n }\n\n public onNavigateToCaseAdminClick(): void {\n this._caseSettings$.pipe(take(1)).subscribe((caseSettings: CaseSettings) => {\n this.router.navigate([\n `/case-management/case/${caseSettings.caseDefinitionKey}/version/${caseSettings.caseDefinitionVersionTag}/zgw`,\n ]);\n });\n }\n\n public onRowClick(event: any): void {\n if (this.filePermissions[event.fileId]?.canView) {\n this.downloadDocument(event, false);\n }\n }\n\n public onPaginationClicked(page: number): void {\n this.pagination$.next({...this.pagination$.getValue(), page});\n }\n\n public onPaginationSet(size: number): void {\n const {collectionSize, page} = this.pagination$.getValue();\n const resetPage: boolean = Math.ceil(+collectionSize / size) <= +page && +collectionSize > 0;\n this.pagination$.next({...this.pagination$.getValue(), size, ...(resetPage && {page: 1})});\n }\n\n public onUploadButtonClick(): void {\n this.fileInput.nativeElement.click();\n }\n\n public onFilterEvent(filter: DocumentenApiFilterModel | null): void {\n this.filter$.next(filter);\n this.pagination$.next({...this.pagination$.getValue(), ...DEFAULT_PAGINATION});\n }\n\n public onSortChanged(sortState: SortState): void {\n this._sort$.next(\n sortState.isSorting\n ? {\n sort: `${sortState.state.name === 'size' ? DOCUMENTEN_COLUMN_KEYS.BESTANDSOMVANG : sortState.state.name},${sortState.state.direction}`,\n }\n : null\n );\n }\n\n public refetchDocuments(): void {\n this._refetch$.next(null);\n }\n\n private downloadDisabled(file: DocumentenApiRelatedFile): boolean {\n return !this.filePermissions[file.fileId]?.canView;\n }\n\n private editDisabled(file: DocumentenApiRelatedFile): boolean {\n return (\n (!this.supportedDocumentenApiFeatures$.value.supportsUpdatingDefinitiveDocument &&\n file.status === 'definitief') ||\n !this.filePermissions[file.fileId]?.canModify\n );\n }\n\n private deleteDisabled(file: DocumentenApiRelatedFile): boolean {\n return !this.filePermissions[file.fileId]?.canDelete;\n }\n\n private downloadDocument(relatedFile: DocumentenApiRelatedFile, forceDownload: boolean): void {\n this.downloadService.downloadFile(\n `${this.valtimoEndpointUri}v1/documenten-api/${relatedFile.pluginConfigurationId}/files/${relatedFile.fileId}/download`,\n relatedFile.bestandsnaam ?? '',\n forceDownload\n );\n }\n\n private openQueryParamsSubscription(): void {\n this._subscriptions.add(\n combineLatest([\n this._caseDefinitionKey$,\n this.documentId$,\n this.filter$,\n this._sort$,\n this.pagination$,\n ]).subscribe(([definitionName, documentId, filter, sort, pagination]) => {\n const {size, page} = pagination;\n this.router.navigate([`/cases/${definitionName}/document/${documentId}/documents`], {\n queryParams: {...filter, ...sort, size, page: page - 1},\n });\n })\n );\n }\n\n private resetFileInput(): void {\n this.fileInput.nativeElement.value = '';\n }\n\n private setUploadProcessLinked(): void {\n this._caseDefinitionKey$\n .pipe(\n switchMap(caseDefinitionKey =>\n this.uploadProviderService.checkUploadProcessLink(caseDefinitionKey)\n ),\n take(1),\n tap(() => {\n this.uploadProcessLinkedSet = true;\n })\n )\n .subscribe((linked: boolean) => {\n this.uploadProcessLinked = linked;\n });\n }\n\n private setInitialParams(): void {\n this.route.queryParamMap\n .pipe(\n take(1),\n map(queryParams => {\n const {sort, size, page, ...filter} = queryParams['params'];\n return {sort, filter, size, page};\n })\n )\n .subscribe(({filter, sort, size, page}) => {\n this._sort$.next({sort});\n this.filter$.next(filter);\n this.pagination$.next({\n ...this.pagination$.getValue(),\n size: +size,\n page: +(page ?? 0) + 1,\n });\n this.openQueryParamsSubscription();\n });\n }\n\n private getSortStateFromSortString(sortString?: string): SortState | null {\n const splitString = sortString && sortString.split(',');\n if (splitString && splitString?.length > 1) {\n return {\n isSorting: true,\n state: {\n name: splitString[0],\n direction: splitString[1] as Direction,\n },\n };\n }\n\n return null;\n }\n\n private getPermissions(\n files: DocumentenApiRelatedFile[],\n permissionRequest: PermissionRequest\n ): Observable<{\n [key: string]: boolean;\n }> {\n return combineLatest(\n files.map(file =>\n this.getPermission(permissionRequest, {\n resource: RESOURCE_PERMISSION_RESOURCE.resourcePermission,\n identifier: file.fileId,\n }).pipe(map(available => ({[file.fileId]: available})))\n )\n ).pipe(\n map(permissions => permissions.reduce((acc, permission) => ({...acc, ...permission}), {}))\n );\n }\n\n private getPermission(permissionRequest: PermissionRequest, context?: any): Observable<boolean> {\n return this.enablePbacDocumentenApiDocuments$.pipe(\n switchMap(enabled => {\n if (!enabled) {\n return of(true);\n }\n return this.permissionService.requestPermission(permissionRequest, context);\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div\n class=\"carbon-document-table-wrapper\"\n *ngIf=\"{\n loading: loading$ | async,\n fieldsLoading: fieldsLoading$ | async,\n uploading: uploading$ | async,\n relatedFiles: relatedFiles$ | async,\n fields: fields$ | async,\n supportedDocumentenApiFeatures: supportedDocumentenApiFeatures$ | async,\n pagination: pagination$ | async,\n sortState: sortState$ | async,\n uploadFields: uploadFields$ | async,\n defaultValues: defaultValues$ | async,\n hideFields: hideFields$ | async,\n } as obs\"\n>\n @if ((!obs.fieldsLoading && obs.fields.length) || obs.fieldsLoading) {\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.relatedFiles\"\n [fields]=\"obs.fields\"\n [initialSortState]=\"obs.sortState\"\n [loading]=\"obs.loading\"\n [pagination]=\"obs.pagination\"\n [paginatorConfig]=\"paginatorConfig\"\n paginationIdentifier=\"documentenApi\"\n (rowClicked)=\"onRowClick($event)\"\n (sortChanged)=\"\n obs?.supportedDocumentenApiFeatures?.supportsSortableColumns && onSortChanged($event)\n \"\n (paginationClicked)=\"onPaginationClicked($event)\"\n (paginationSet)=\"onPaginationSet($event)\"\n hideColumnHeader\n >\n <div carbonToolbarContent>\n <input\n [accept]=\"acceptedFiles\"\n (change)=\"onFileSelected($event)\"\n hidden\n type=\"file\"\n #fileInput\n />\n\n <button\n *ngIf=\"obs?.supportedDocumentenApiFeatures?.supportsFilterableColumns\"\n [cdsOverflowMenu]=\"overflowFilter\"\n [customPane]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"noResults\"></ng-container>\n </valtimo-carbon-list>\n } @else {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n }\n\n <valtimo-documenten-api-metadata-modal\n [defaultValues]=\"obs.defaultValues\"\n [disableAuthor]=\"obs.uploadFields?.auteur?.readonly\"\n [disableConfidentialityLevel]=\"obs.uploadFields?.vertrouwelijkheidaanduiding?.readonly\"\n [disableCreationDate]=\"obs.uploadFields?.creatiedatum?.readonly\"\n [disableDescription]=\"obs.uploadFields?.beschrijving?.readonly\"\n [disableDocumentTitle]=\"obs.uploadFields?.titel?.readonly\"\n [disableDocumentType]=\"obs.uploadFields?.informatieobjecttype?.readonly\"\n [disableFilename]=\"obs.uploadFields?.bestandsnaam?.readonly\"\n [disableLanguage]=\"obs.uploadFields?.taal?.readonly\"\n [disableStatus]=\"obs.uploadFields?.status?.readonly\"\n [hideFields]=\"obs.hideFields\"\n [open]=\"showUploadModal$ | async\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [isEditMode]=\"isEditMode$ | async\"\n [supportsTrefwoorden]=\"obs?.supportedDocumentenApiFeatures?.supportsTrefwoorden\"\n (modalClose)=\"closeMetadataModal()\"\n (metadata)=\"metadataSet($event)\"\n ></valtimo-documenten-api-metadata-modal>\n</div>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n contentTranslationKey=\"case.documenten.deleteConfirmationModal.content\"\n confirmButtonType=\"danger\"\n titleTranslationKey=\"case.documenten.deleteConfirmationModal.title\"\n [showModalSubject$]=\"showDeleteConfirmationModal$\"\n (confirmEvent)=\"deleteDocument()\"\n>\n</valtimo-confirmation-modal>\n\n<ng-template #noResults>\n @if ((filter$ | async | keyvalue)?.length) {\n <valtimo-no-results\n [action]=\"resetFilterButton\"\n [description]=\"'zgw.documents.noResults.filterDescription' | translate\"\n [title]=\"'zgw.documents.noResults.filterTitle' | translate\"\n ></valtimo-no-results>\n } @else if (showZaakLinkWarning && isAdmin) {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'case.documenten.noZaakFound' | translate\"\n [title]=\"'case.documenten.noZaakFoundTitle' | translate\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n [description]=\"'case.documenten.noFiles' | translate\"\n [title]=\"'case.documenten.noFilesTitle' | translate\"\n ></valtimo-no-results>\n }\n</ng-template>\n\n<ng-template #overflowFilter>\n <valtimo-case-detail-tab-documenten-api-filter\n [prefillFilter]=\"filter$ | async\"\n (filterEvent)=\"onFilterEvent($event)\"\n ></valtimo-case-detail-tab-documenten-api-filter>\n</ng-template>\n\n<ng-template #resetFilterButton>\n <button cdsButton=\"primary\" (click)=\"onFilterEvent(null)\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #uploadButton let-disabled=\"disabled\">\n <button\n [disabled]=\"\n (uploadProcessLinkedSet && !uploadProcessLinked) ||\n showZaakLinkWarning ||\n disabled ||\n (canCreateResource$ | async) === false\n \"\n [vTooltip]=\"getUploadButtonTooltip() | translate\"\n (click)=\"onUploadButtonClick()\"\n cdsButton=\"primary\"\n >\n {{ 'Upload' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #translationTemplate let-data=\"data\">\n @if (data.item[data.key]) {\n {{ 'document.' + data.item[data.key] | translate }}\n } @else {\n -\n }\n</ng-template>\n\n<ng-template #navigateToCaseAdminButton>\n <button (click)=\"onNavigateToCaseAdminClick()\" cdsButton=\"primary\">\n {{ 'case.documenten.navigateToCaseAdmin' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n CaseManagementParams,\n ConfigService,\n getCaseManagementRouteParams,\n UploadProvider,\n ValtimoConfig,\n} from '@valtimo/shared';\nimport {ComboBoxModule, LayerModule, ListItem} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {DocumentenApiLinkProcessService, DocumentenApiVersionService} from '../../services';\n\n@Component({\n selector: 'valtimo-case-management-link-process',\n templateUrl: './case-management-link-process.component.html',\n styleUrl: './case-management-link-process.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, TranslateModule, ComboBoxModule, LayerModule],\n})\nexport class CaseManagementLinkProcessComponent implements OnInit, OnDestroy {\n @Input() isReadOnly$: Observable<boolean>;\n //Necessary to trigger outside click detection for combo-box\n @HostListener('document:click', ['$event'])\n public emptyCallback(): void {\n return;\n }\n public readonly documentenApiUploadProviders$ = new BehaviorSubject<boolean>(false);\n public readonly selectedProcessKey$ = new BehaviorSubject<string>('');\n public readonly processItems$: Observable<Array<ListItem>> = combineLatest([\n this.documentenApiLinkProcessService.getProcessDefinitions(),\n this.selectedProcessKey$,\n ]).pipe(\n map(([definitions, selectedProcessKey]) =>\n (definitions || [])\n .filter(definition => !!definition?.key)\n .map(process => ({\n content: process?.name || '-',\n id: process.key,\n selected: selectedProcessKey === process.key,\n }))\n ),\n tap(() => this.documentenApiVersionService.refresh())\n );\n\n private readonly _caseParams$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n private readonly _subscriptions = new Subscription();\n\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n constructor(\n private readonly configService: ConfigService,\n private readonly route: ActivatedRoute,\n private readonly documentenApiLinkProcessService: DocumentenApiLinkProcessService,\n private readonly documentenApiVersionService: DocumentenApiVersionService\n ) {}\n\n public ngOnInit(): void {\n this.setDocumentenApiUploaderProvider(this.configService.config);\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public selectProcess(item: {id: string}): void {\n const processDefinitionKey = item?.id;\n this.disabled$.next(true);\n const currentSelectionId = this.selectedProcessKey$.getValue();\n\n if (processDefinitionKey && processDefinitionKey !== currentSelectionId)\n this.updateProcess(processDefinitionKey);\n else if (!processDefinitionKey) this.deleteProcess();\n }\n\n private deleteProcess(): void {\n this._caseParams$\n .pipe(\n take(1),\n switchMap((params: CaseManagementParams | undefined) =>\n this.documentenApiLinkProcessService.deleteLinkedUploadProcess(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? ''\n )\n )\n )\n .subscribe(() => {\n this.selectedProcessKey$.next('');\n this.disabled$.next(false);\n });\n }\n\n private updateProcess(processDefinitionKey: string): void {\n this._caseParams$\n .pipe(\n take(1),\n switchMap((params: CaseManagementParams | undefined) =>\n this.documentenApiLinkProcessService.updateLinkedUploadProcess(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? '',\n processDefinitionKey\n )\n )\n )\n .subscribe(processLink => {\n this.selectedProcessKey$.next(processLink.processDefinitionKey);\n this.disabled$.next(false);\n });\n }\n\n private setDocumentenApiUploaderProvider(config: ValtimoConfig): void {\n const hasDocumentenApiUploadProvider = config.uploadProvider === UploadProvider.DOCUMENTEN_API;\n\n this.documentenApiUploadProviders$.next(hasDocumentenApiUploadProvider);\n if (hasDocumentenApiUploadProvider) this.getDefaultSelection();\n }\n\n private getDefaultSelection(): void {\n this._subscriptions.add(\n this._caseParams$\n .pipe(\n switchMap((params: CaseManagementParams | undefined) =>\n this.documentenApiLinkProcessService.getLinkedUploadProcess(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? ''\n )\n )\n )\n .subscribe(linkedUploadProcess => {\n this.selectedProcessKey$.next(linkedUploadProcess?.processDefinitionKey ?? '');\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n isReadOnly: isReadOnly$ | async,\n } as obs\"\n class=\"link-upload-process\"\n>\n <p class=\"link-upload-process__title\">\n {{ 'caseManagement.tabs.generalTab.linkUploadProcess.title' | translate }}\n </p>\n\n <cds-combo-box\n [cdsLayer]=\"1\"\n valtimoReadOnly\n [isReadOnly]=\"obs.isReadOnly\"\n [appendInline]=\"true\"\n [dropUp]=\"false\"\n [label]=\"'caseManagement.tabs.generalTab.linkUploadProcess.label' | translate\"\n [placeholder]=\"\n 'processLinkConfiguration.' + (obs.isReadOnly ? 'noProcess' : 'selectProcess') | translate\n \"\n [disabled]=\"obs.disabled || !obs.processItems || obs.isReadOnly\"\n (selected)=\"selectProcess($event)\"\n >\n <cds-dropdown-list [items]=\"obs.processItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {BehaviorSubject, Subscription} from 'rxjs';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\nimport {AbstractControl, FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n ButtonModule,\n DropdownModule,\n InputModule,\n LayerModule,\n ModalModule,\n TagModule,\n ToggleModule,\n} from 'carbon-components-angular';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CommonModule} from '@angular/common';\nimport {DocumentenApiTagService} from '../../services/documenten-api-tag.service';\n\n@Component({\n selector: 'valtimo-documenten-api-tag-modal',\n templateUrl: './documenten-api-tag-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ModalModule,\n TagModule,\n TranslateModule,\n InputModule,\n ReactiveFormsModule,\n ButtonModule,\n DropdownModule,\n ToggleModule,\n LayerModule,\n ],\n})\nexport class DocumentenApiTagModalComponent implements OnDestroy {\n @Input() public caseDefinitionKey!: string;\n @Input() public open = false;\n\n @Output() public closeModalEvent = new EventEmitter<DocumentenApiColumnModalTypeCloseEvent>();\n\n public readonly tagFormGroup = this.fb.group({\n value: this.fb.control('', [Validators.required, Validators.maxLength(50)]),\n });\n\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n public get value(): AbstractControl<string, string> {\n return this.tagFormGroup?.get('value');\n }\n\n public get invalid(): boolean {\n return !!this.tagFormGroup?.invalid;\n }\n\n public get pristine(): boolean {\n return !!this.tagFormGroup?.pristine;\n }\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly documentenApiTagService: DocumentenApiTagService\n ) {}\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onClose(): void {\n this.close();\n }\n\n public addTag(): void {\n this.disable();\n\n this.documentenApiTagService.createTag(this.caseDefinitionKey, this.value.value).subscribe({\n next: () => {\n this.enable();\n this.closeAndRefresh();\n this.resetForm();\n },\n error: () => {\n this.enable(false);\n },\n });\n }\n\n private resetForm(): void {\n this.tagFormGroup.reset();\n }\n\n private disable(): void {\n this.disabled$.next(true);\n this.tagFormGroup.disable();\n }\n\n private enable(delay = true): void {\n setTimeout(\n () => {\n this.disabled$.next(false);\n this.tagFormGroup.enable();\n },\n delay ? CARBON_CONSTANTS.modalAnimationMs : 0\n );\n }\n\n private close(): void {\n this.closeModalEvent.emit('close');\n this.resetForm();\n }\n\n private closeAndRefresh(): void {\n this.closeModalEvent.emit('closeAndRefresh');\n this.resetForm();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n [open]=\"open\"\n size=\"sm\"\n (close)=\"onClose()\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{ 'zgw.tags.addModal.header' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <form [formGroup]=\"tagFormGroup\" class=\"tag-form\">\n <cds-label\n [invalidText]=\"\n (value?.errors?.['required']\n ? 'zgw.tags.fields.valueRequired'\n : 'zgw.tags.fields.valueMaxLength'\n ) | translate: {maxlength: value?.errors?.maxlength?.requiredLength}\n \"\n [invalid]=\"value.dirty && value.invalid\"\n >\n {{ 'zgw.tags.fields.value' | translate }}\n\n <input\n cdsText\n formControlName=\"value\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"value.dirty && value.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\" [disabled]=\"obs.disabled\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"invalid || pristine || obs.disabled\" (click)=\"addTag()\">\n {{ 'interface.add' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListComponent,\n CarbonListItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {CaseManagementParams, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {Page} from '@valtimo/document';\nimport {ButtonModule, IconModule, TagModule} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n Subject,\n switchMap,\n tap,\n} from 'rxjs';\nimport {DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {DocumentenApiTag} from '../../models/documenten-api-tag.model';\nimport {DocumentenApiTagService} from '../../services/documenten-api-tag.service';\nimport {DocumentenApiTagModalComponent} from '../documenten-api-tag-modal/documenten-api-tag-modal.component';\n\n@Component({\n selector: 'valtimo-documenten-api-tags',\n templateUrl: './documenten-api-tags.component.html',\n styleUrls: ['./documenten-api-tags.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n ConfirmationModalModule,\n TagModule,\n ButtonModule,\n DocumentenApiTagModalComponent,\n IconModule,\n ],\n})\nexport class DocumentenApiTagsComponent {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n private readonly _reload$ = new BehaviorSubject<null | 'noAnimation'>(null);\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => params?.caseDefinitionKey ?? ''),\n filter((caseDefinitionKey: string) => !!caseDefinitionKey)\n );\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly fields$ = new BehaviorSubject<ColumnConfig[]>([]);\n public readonly addModalClosed$ = new BehaviorSubject<boolean>(true);\n public readonly showDeleteMultipleModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteModal$ = new Subject<boolean>();\n public readonly selectedRowKeys$ = new BehaviorSubject<Array<string>>([]);\n public readonly searchTerm$ = new BehaviorSubject<string>('');\n public readonly tagToDelete$ = new BehaviorSubject<DocumentenApiTag | null>(null);\n\n public readonly documentTags$: Observable<DocumentenApiTag[]> = combineLatest([\n this.caseDefinitionKey$,\n this.searchTerm$,\n this._reload$,\n ]).pipe(\n tap(([_1, _2, reload]) => {\n if (reload === null) this.loading$.next(true);\n }),\n switchMap(([caseDefinitionKey, searchTerm]) =>\n this.documentenApiTagService.getTagsForAdmin(caseDefinitionKey, {\n page: this.pagination.page - 1,\n size: this.pagination.size,\n search: searchTerm,\n })\n ),\n map((tagPage: Page<DocumentenApiTag>) => {\n this.pagination = {\n ...this.pagination,\n collectionSize: tagPage.totalElements,\n };\n\n return tagPage.content;\n }),\n startWith([]),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'interface.delete',\n callback: this.openDeleteModal.bind(this),\n type: 'danger',\n },\n ];\n\n public readonly FIELDS: ColumnConfig[] = [\n {\n key: 'value',\n label: 'zgw.tags.fields.value',\n viewType: ViewType.TEXT,\n },\n ];\n\n public pagination: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n };\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentenApiTagService: DocumentenApiTagService\n ) {}\n\n public openDeleteModal(tag: DocumentenApiTag): void {\n this.tagToDelete$.next(tag);\n this.showDeleteModal$.next(true);\n }\n\n public openAddModal(): void {\n this.addModalClosed$.next(false);\n }\n\n public closeModal(closeModalEvent: DocumentenApiColumnModalTypeCloseEvent): void {\n if (closeModalEvent === 'closeAndRefresh') this.reload();\n\n this.addModalClosed$.next(true);\n }\n\n public showDeleteMultipleModal(): void {\n this.setSelectedRoleKeys();\n this.showDeleteMultipleModal$.next(true);\n }\n\n private setSelectedRoleKeys(): void {\n this.selectedRowKeys$.next(\n this.carbonList.selectedItems.map((item: CarbonListItem) => item.value)\n );\n }\n\n public paginationClicked(page: number): void {\n this.pagination = {...this.pagination, page};\n this.reload();\n }\n\n public paginationSet(size: number): void {\n this.pagination = {...this.pagination, size};\n this.reload();\n }\n\n public confirmDeleteTag(tag: DocumentenApiTag): void {\n this.caseDefinitionKey$\n .pipe(\n switchMap(caseDefinitionKey =>\n this.documentenApiTagService.deleteTag(caseDefinitionKey, tag.value)\n )\n )\n .subscribe(() => {\n this.reload();\n });\n }\n\n public confirmDeleteMultipleTag(tagsToDelete: {\n caseDefinitionKey: string;\n tagIds: string[];\n itemsOnCurrentPage: number;\n }): void {\n this.documentenApiTagService\n .deleteTags(tagsToDelete.caseDefinitionKey, tagsToDelete.tagIds)\n .subscribe(() => {\n const lastPage = Math.ceil(\n (this.pagination.collectionSize as number) / this.pagination.size\n );\n if (\n tagsToDelete.itemsOnCurrentPage <= tagsToDelete.tagIds.length &&\n this.pagination.page > 1 &&\n this.pagination.page === lastPage\n ) {\n this.pagination = {...this.pagination, page: this.pagination.page - 1};\n }\n this.reload();\n });\n }\n\n public searchTermEntered(searchTerm: string): void {\n this.pagination = {...this.pagination, page: 1};\n this.searchTerm$.next(searchTerm);\n }\n\n private reload(noAnimation = false): void {\n this._reload$.next(noAnimation ? 'noAnimation' : null);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentTags: documentTags$ | async,\n addModalClosed: addModalClosed$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n selectedRowKeys: selectedRowKeys$ | async,\n searchTerm: searchTerm$ | async,\n showDeleteModal: showDeleteModal$ | async,\n tagToDelete: tagToDelete$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [items]=\"obs.documentTags\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [actionItems]=\"ACTION_ITEMS\"\n [showSelectionColumn]=\"true\"\n [isSearchable]=\"true\"\n [pagination]=\"pagination\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (search)=\"searchTermEntered($event)\"\n >\n <ng-container carbonToolbarContent *ngTemplateOutlet=\"addButtton\"></ng-container>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteMultipleModal()\">\n {{ 'interface.delete' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n *ngIf=\"obs.searchTerm === ''\"\n [action]=\"addButtton\"\n title=\"{{ 'zgw.tags.list.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.tags.list.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n\n <valtimo-no-results\n *ngIf=\"obs.searchTerm !== ''\"\n title=\"{{ 'zgw.tags.search.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.tags.search.noResultsDescription' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-tag-modal\n [open]=\"!obs.addModalClosed\"\n [caseDefinitionKey]=\"obs.caseDefinitionKey\"\n (closeModalEvent)=\"closeModal($event)\"\n ></valtimo-documenten-api-tag-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"zgw.tags.deleteText\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n [outputOnConfirm]=\"obs.tagToDelete\"\n (confirmEvent)=\"confirmDeleteTag($event)\"\n ></valtimo-confirmation-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n [contentTranslationKey]=\"\n obs.selectedRowKeys.length > 1 ? 'zgw.tags.deleteMultipleText' : 'zgw.tags.deleteText'\n \"\n [showModalSubject$]=\"showDeleteMultipleModal$\"\n titleTranslationKey=\"interface.delete\"\n [outputOnConfirm]=\"{\n caseDefinitionKey: obs.caseDefinitionKey,\n tagIds: obs.selectedRowKeys,\n itemsOnCurrentPage: obs.documentTags.length,\n }\"\n (confirmEvent)=\"confirmDeleteMultipleTag($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #addButtton>\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"openAddModal()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n {{ 'zgw.tags.add' | translate }}\n </button>\n </ng-template>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {\n CONFIDENTIALITY_LEVELS,\n DocumentenApiColumnModalTypeCloseEvent,\n LANGUAGE_ITEMS,\n STATUS_ITEMS,\n} from '../../models';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subscription, switchMap} from 'rxjs';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\nimport {AbstractControl, FormBuilder, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n ButtonModule,\n CheckboxModule,\n ComboBoxModule,\n InputModule,\n LayerModule,\n ListItem,\n ModalModule,\n ToggleModule,\n} from 'carbon-components-angular';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CommonModule} from '@angular/common';\nimport {DocumentenApiDocumentService} from '../../services';\nimport {DocumentenApiUploadField} from '../../models/documenten-api-upload-field.model';\nimport {DocumentService} from '@valtimo/document';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\nimport {ActivatedRoute} from '@angular/router';\n\n@Component({\n selector: 'valtimo-documenten-api-upload-field-modal',\n styleUrl: './documenten-api-upload-field-modal.component.scss',\n templateUrl: './documenten-api-upload-field-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ModalModule,\n TranslateModule,\n InputModule,\n ReactiveFormsModule,\n ButtonModule,\n ToggleModule,\n CheckboxModule,\n ComboBoxModule,\n LayerModule,\n ],\n})\nexport class DocumentenApiUploadFieldModalComponent implements OnDestroy {\n @Input() public caseDefinitionKey!: string;\n @Input() public type!: string;\n protected key: string;\n\n @Input() public set prefill(field: DocumentenApiUploadField) {\n if (field) {\n this.key = field.key;\n this.defaultValue.setValue(field.defaultValue);\n this.visible.setValue(field.visible);\n this.readonly.setValue(field.readonly);\n }\n }\n\n @Output() public closeModalEvent = new EventEmitter<DocumentenApiColumnModalTypeCloseEvent>();\n\n public readonly formGroup = this.fb.group({\n defaultValue: this.fb.control('', [Validators.maxLength(256)]),\n selectedDefaultValue: this.fb.control(null),\n visible: this.fb.control(true, [Validators.required]),\n readonly: this.fb.control(false, [Validators.required]),\n });\n\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n public readonly confidentialityLevelItems$: Observable<Array<ListItem>> = combineLatest([\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n map(([selectedItem]) =>\n CONFIDENTIALITY_LEVELS.map(item => ({\n id: item,\n content: this.translateService.instant(`document.${item}`),\n selected: selectedItem === item,\n }))\n )\n );\n public readonly languageItems$: Observable<Array<ListItem>> = combineLatest([\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n map(([selectedItem]) =>\n LANGUAGE_ITEMS.map(item => ({\n id: item,\n content: this.translateService.instant(`document.${item}`),\n selected: selectedItem === item,\n }))\n )\n );\n public readonly statusItems$: Observable<Array<ListItem>> = combineLatest([\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n map(([selectedItem]) =>\n STATUS_ITEMS.map(item => ({\n id: item,\n content: this.translateService.instant(`document.${item}`),\n selected: selectedItem === item,\n }))\n )\n );\n\n private readonly _context = getCaseManagementRouteParams(this.route);\n\n public readonly documentTypeItems$: Observable<Array<ListItem>> = combineLatest([\n this._context,\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n switchMap(([params, selectedItem]) =>\n combineLatest([\n this.documentService.getDocumentTypesForCase(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n ),\n of(selectedItem),\n ])\n ),\n map(([documentTypes, selectedItem]) =>\n documentTypes.map(item => ({\n id: item.url,\n content: item.name,\n selected: selectedItem === item.url,\n }))\n )\n );\n\n public get defaultValue(): AbstractControl<string> {\n return this.formGroup?.get('defaultValue');\n }\n\n public get selectedDefaultValue(): AbstractControl<ListItem> {\n return this.formGroup?.get('selectedDefaultValue');\n }\n\n public get visible(): AbstractControl<boolean> {\n return this.formGroup?.get('visible');\n }\n\n public get readonly(): AbstractControl<boolean> {\n return this.formGroup?.get('readonly');\n }\n\n public get invalid(): boolean {\n return !!this.formGroup?.invalid;\n }\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly documentenApiDocumentService: DocumentenApiDocumentService,\n private readonly translateService: TranslateService,\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onClose(): void {\n this.close();\n }\n\n public clear(): void {\n this.selectedDefaultValue.setValue(null);\n this.defaultValue.setValue(null);\n }\n\n public saveUploadField(): void {\n this.disable();\n\n const formField = {\n key: this.key,\n defaultValue: this.selectedDefaultValue?.value?.id || this.defaultValue.value,\n visible: this.visible.value,\n readonly: this.readonly.value,\n } as DocumentenApiUploadField;\n\n this.documentenApiDocumentService\n .updateUploadField(this.caseDefinitionKey, formField)\n .subscribe({\n next: () => {\n this.enable();\n this.closeAndRefresh();\n this.resetForm();\n },\n error: () => {\n this.enable(false);\n },\n });\n }\n\n private resetForm(): void {\n this.formGroup.reset();\n }\n\n private disable(): void {\n this.disabled$.next(true);\n this.formGroup.disable();\n }\n\n private enable(delay = true): void {\n setTimeout(\n () => {\n this.disabled$.next(false);\n this.formGroup.enable();\n },\n delay ? CARBON_CONSTANTS.modalAnimationMs : 0\n );\n }\n\n private close(): void {\n this.closeModalEvent.emit('close');\n this.resetForm();\n }\n\n private closeAndRefresh(): void {\n this.closeModalEvent.emit('closeAndRefresh');\n this.resetForm();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n disabled: disabled$ | async,\n languageItems: languageItems$ | async,\n confidentialityLevelItems: confidentialityLevelItems$ | async,\n statusItems: statusItems$ | async,\n documentTypeItems: documentTypeItems$ | async,\n } as obs\"\n [open]=\"type !== 'closed'\"\n size=\"sm\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onClose()\" [cdsLayer]=\"1\">\n <h3 cdsModalHeaderHeading>\n {{\n ('zgw.uploadFields.editModal.header' | translate) +\n ' - ' +\n ('zgw.uploadFields.keys.' + key | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <form [formGroup]=\"formGroup\" class=\"uploadField-form\">\n @if (key === 'taal') {\n <cds-combo-box\n formControlName=\"selectedDefaultValue\"\n [label]=\"'zgw.uploadFields.fields.defaultValue' | translate\"\n [dropUp]=\"false\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list [items]=\"obs.languageItems\"></cds-dropdown-list>\n </cds-combo-box>\n } @else if (key === 'vertrouwelijkheidaanduiding') {\n <cds-combo-box\n formControlName=\"selectedDefaultValue\"\n [label]=\"'zgw.uploadFields.fields.defaultValue' | translate\"\n [dropUp]=\"false\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list [items]=\"obs.confidentialityLevelItems\"></cds-dropdown-list>\n </cds-combo-box>\n } @else if (key === 'status') {\n <cds-combo-box\n formControlName=\"selectedDefaultValue\"\n [label]=\"'zgw.uploadFields.fields.defaultValue' | translate\"\n [dropUp]=\"false\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list [items]=\"obs.statusItems\"></cds-dropdown-list>\n </cds-combo-box>\n } @else if (key === 'informatieobjecttype') {\n <cds-combo-box\n formControlName=\"selectedDefaultValue\"\n [label]=\"'zgw.uploadFields.fields.defaultValue' | translate\"\n [dropUp]=\"false\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list [items]=\"obs.documentTypeItems\"></cds-dropdown-list>\n </cds-combo-box>\n } @else if (\n key === 'filename' ||\n key === 'bestandsnaam' ||\n key === 'titel' ||\n key === 'beschrijving' ||\n key === 'trefwoorden'\n ) {\n <cds-label>\n {{ 'zgw.uploadFields.fields.defaultValue' | translate }}\n <input cdsText formControlName=\"defaultValue\" />\n </cds-label>\n }\n <div class=\"toggle-group\">\n <cds-toggle\n formControlName=\"visible\"\n [label]=\"'zgw.uploadFields.fields.visible' | translate\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n ></cds-toggle>\n <cds-toggle\n formControlName=\"readonly\"\n [label]=\"'zgw.uploadFields.fields.readonly' | translate\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n ></cds-toggle>\n </div>\n </form>\n </section>\n\n <cds-modal-footer [cdsLayer]=\"1\">\n <button cdsButton=\"secondary\" (click)=\"onClose()\" [disabled]=\"obs.disabled\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"invalid || obs.disabled\" (click)=\"saveUploadField()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListComponent,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {\n CaseManagementParams,\n EditPermissionsService,\n getCaseManagementRouteParams,\n} from '@valtimo/shared';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n switchMap,\n tap,\n} from 'rxjs';\nimport {DocumentenApiColumnModalType, DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {DocumentenApiUploadField} from '../../models/documenten-api-upload-field.model';\nimport {DocumentenApiDocumentService} from '../../services';\nimport {DocumentenApiUploadFieldModalComponent} from '../documenten-api-upload-field-model/documenten-api-upload-field-modal.component';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-documenten-api-upload-fields',\n templateUrl: './documenten-api-upload-fields.component.html',\n styleUrls: ['./documenten-api-upload-fields.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n ConfirmationModalModule,\n ButtonModule,\n IconModule,\n DocumentenApiUploadFieldModalComponent,\n ],\n})\nexport class DocumentenApiUploadFieldsComponent {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent;\n\n private readonly _reload$ = new BehaviorSubject<null | 'noAnimation'>(null);\n\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => params?.caseDefinitionKey ?? ''),\n filter(caseDefinitionKey => !!caseDefinitionKey)\n );\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly fields$ = new BehaviorSubject<ColumnConfig[]>([]);\n public readonly uploadFieldModalType$ = new BehaviorSubject<DocumentenApiColumnModalType>(\n 'closed'\n );\n public readonly prefill$ = new BehaviorSubject<DocumentenApiUploadField | undefined>(undefined);\n\n public readonly documentUploadFields$: Observable<string[]> = combineLatest([\n this.caseDefinitionKey$,\n this._reload$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([_, reload]) => {\n if (reload === null) {\n this.loading$.next(true);\n }\n }),\n switchMap(([caseDefinitionKey]) =>\n this.documentenApiDocumentService.getUploadFields(caseDefinitionKey)\n ),\n map(fields =>\n fields.map(field => ({\n ...field,\n field: this.translateService.instant(`zgw.uploadFields.keys.${field.key}`),\n }))\n ),\n startWith([]),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly hasEditPermissions$: Observable<boolean> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n switchMap(params =>\n this.editPermissionsService.hasEditPermissions(\n params?.caseDefinitionKey,\n params?.caseDefinitionVersionTag\n )\n )\n );\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'interface.edit',\n callback: this.openEditModal.bind(this),\n type: 'normal',\n },\n ];\n\n public readonly FIELDS: ColumnConfig[] = [\n {\n key: 'field',\n label: 'zgw.uploadFields.fields.field',\n viewType: ViewType.TEXT,\n },\n {\n key: 'defaultValue',\n label: 'zgw.uploadFields.fields.defaultValue',\n viewType: ViewType.TEXT,\n },\n {\n key: 'visible',\n label: 'zgw.uploadFields.fields.visible',\n viewType: ViewType.BOOLEAN,\n },\n {\n key: 'readonly',\n label: 'zgw.uploadFields.fields.readonly',\n viewType: ViewType.BOOLEAN,\n },\n ];\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentenApiDocumentService: DocumentenApiDocumentService,\n private readonly translateService: TranslateService,\n private readonly editPermissionsService: EditPermissionsService\n ) {}\n\n public openEditModal(uploadField: DocumentenApiUploadField): void {\n this.hasEditPermissions$.pipe(take(1)).subscribe(hasPermission => {\n if (!hasPermission && uploadField.key !== 'informatieobjecttype') {\n return;\n }\n this.prefill$.next(uploadField);\n this.uploadFieldModalType$.next('edit');\n });\n }\n\n public closeModal(closeModalEvent: DocumentenApiColumnModalTypeCloseEvent): void {\n if (closeModalEvent === 'closeAndRefresh') {\n this.reload();\n }\n this.uploadFieldModalType$.next('closed');\n }\n\n private reload(noAnimation = false): void {\n this._reload$.next(noAnimation ? 'noAnimation' : null);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentUploadFields: documentUploadFields$ | async,\n uploadFieldModalType: uploadFieldModalType$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n prefill: prefill$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [items]=\"obs.documentUploadFields\"\n [fields]=\"FIELDS\"\n [header]=\"false\"\n [loading]=\"obs.loading\"\n [actionItems]=\"ACTION_ITEMS\"\n (rowClicked)=\"openEditModal($event)\"\n >\n <valtimo-no-results\n title=\"{{ 'zgw.uploadFields.list.noResultsTitle' | translate }}\"\n description=\"{{ 'zgw.uploadFields.list.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-documenten-api-upload-field-modal\n [prefill]=\"obs.prefill\"\n [caseDefinitionKey]=\"obs.caseDefinitionKey\"\n [type]=\"obs.uploadFieldModalType\"\n (closeModalEvent)=\"closeModal($event)\"\n ></valtimo-documenten-api-upload-field-modal>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {LoadingModule, NotificationModule, TilesModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, Observable, switchMap, tap} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentenApiManagementVersion} from '../../models';\nimport {DocumentenApiVersionService} from '../../services';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-documenten-api-version',\n templateUrl: './documenten-api-version.component.html',\n styleUrls: ['./documenten-api-version.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslateModule, LoadingModule, NotificationModule, TilesModule],\n})\nexport class DocumentenApiVersionComponent {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n public readonly caseManagementRouteParams$ = getCaseManagementRouteParams(this.route);\n\n public readonly documentenApiVersion$: Observable<DocumentenApiManagementVersion> = combineLatest(\n [this.caseManagementRouteParams$, this.documentenApiVersionService.refresh$]\n ).pipe(\n tap(() => this.loading$.next(true)),\n switchMap(([params]) =>\n this.documentenApiVersionService.getManagementApiVersion(params?.caseDefinitionKey ?? '')\n ),\n tap(() => this.loading$.next(false))\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentenApiVersionService: DocumentenApiVersionService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile\n *ngIf=\"{loading: loading$ | async, documentenApiVersion: documentenApiVersion$ | async} as obs\"\n>\n <h2 class=\"documenten-api-version__title\">{{ 'openZaak.documentenApi.title' | translate }}</h2>\n\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container\n *ngIf=\"obs.documentenApiVersion.selectedVersion; else noDocumentenApiVersionWarning\"\n >\n <ng-container\n *ngIf=\"\n obs.documentenApiVersion.detectedVersions.length === 1;\n else multipleDocumentenApiVersionsWarning\n \"\n >\n {{ 'openZaak.documentenApi.documentenApiVersion' | translate }}\n <strong> {{ obs.documentenApiVersion.selectedVersion }} </strong>\n </ng-container>\n </ng-container>\n </ng-container>\n</cds-tile>\n\n<ng-template #noDocumentenApiVersionWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.noVersionWarningTitle' | translate,\n message: 'openZaak.documentenApi.noVersionWarningMessage' | translate,\n showClose: false,\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #multipleDocumentenApiVersionsWarning>\n <div class=\"pb-2\">\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'openZaak.documentenApi.multipleVersionsWarningTitle' | translate,\n message: 'openZaak.documentenApi.multipleVersionsWarningMessage' | translate,\n showClose: false,\n }\"\n >\n </cds-notification>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-container pb-2\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-column-modal/documenten-api-column-modal.component';\nexport * from './documenten-api-columns/documenten-api-columns.component';\nexport * from './documenten-api-documents/documenten-api-documents.component';\nexport * from './documenten-api-filter/documenten-api-filter.component';\nexport * from './documenten-api-link-process/case-management-link-process.component';\nexport * from './documenten-api-metadata-modal/documenten-api-metadata-modal.component';\nexport * from './documenten-api-tag-modal/documenten-api-tag-modal.component';\nexport * from './documenten-api-tags/documenten-api-tags.component';\nexport * from './documenten-api-upload-field-model/documenten-api-upload-field-modal.component';\nexport * from './documenten-api-upload-fields/documenten-api-upload-fields.component';\nexport * from './documenten-api-version/documenten-api-version.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const documentenApiUploaderEditForm = () => ({\n components: [\n {key: 'type', type: 'hidden'},\n {\n type: 'textfield',\n input: true,\n key: 'label',\n label: 'Label',\n placeholder: 'Label',\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'validate.required',\n label: 'Required',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'key',\n label: 'Property Name',\n placeholder: 'Property Name',\n tooltip: 'The name of this field in the API endpoint.',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.title',\n label: 'Title',\n placeholder: 'Title',\n tooltip: 'Leave empty to use the default title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideTitle',\n label: 'Hide title',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.subtitle',\n label: 'Subtitle',\n placeholder: 'Title',\n tooltip: 'Leave empty to hide subtitle',\n validate: {\n required: false,\n },\n },\n {\n type: 'number',\n input: true,\n key: 'customOptions.maxFileSize',\n label: 'Maximum file size',\n placeholder: 'Maximum file size',\n defaultValue: 5,\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideMaxFileSize',\n label: 'Hide maximum file size',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.camera',\n label: 'Allow camera uploads',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'disabled',\n label: 'Disabled',\n tooltip: 'Disable the upload field',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h3>Process variables</h3>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentUrlProcessVariable',\n label: 'Document URL',\n tooltip:\n \"Specify the process variable name where the Documenten API document URL will be stored. Defaults to 'documentUrl' if left empty.\",\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h3>Documenten API metadata</h3>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Filename</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.filename',\n label: 'Default filename',\n tooltip: 'Leave empty to let the user input their own filename',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableFilename',\n label: 'Disable filename input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideFilename',\n label: 'Hide filename input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Title</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentTitle',\n label: 'Default document title',\n tooltip: 'Leave empty to let the user input their own title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentTitle',\n label: 'Disable document title input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideDocumentTitle',\n label: 'Hide document title input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Author</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.author',\n label: 'Default author',\n tooltip: 'Leave empty to let the user input their own author',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableAuthor',\n label: 'Disable author input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideAuthor',\n label: 'Hide author input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Description</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.description',\n label: 'Default description',\n tooltip: 'Leave empty to let the user input their own description',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDescription',\n label: 'Disable description input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideDescription',\n label: 'Hide description input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Language</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'select',\n label: 'Default language',\n key: 'customOptions.language',\n placeholder: 'Select a default language',\n data: {\n values: [\n {value: 'nld', label: 'Dutch'},\n {value: 'eng', label: 'English'},\n {value: 'deu', label: 'German'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableLanguage',\n label: 'Disable language input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideLanguage',\n label: 'Hide language input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Confidentiality level</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'select',\n label: 'Default confidentiality level',\n key: 'customOptions.confidentialityLevel',\n placeholder: 'Select a default confidentiality level',\n data: {\n values: [\n {value: 'openbaar', label: 'Public'},\n {value: 'beperkt_openbaar', label: 'Restricted public'},\n {value: 'intern', label: 'Internal'},\n {value: 'zaakvertrouwelijk', label: 'Case confidential'},\n {value: 'vertrouwelijk', label: 'Private'},\n {value: 'confidentieel', label: 'Confidential'},\n {value: 'geheim', label: 'Secret'},\n {value: 'zeer_geheim', label: 'Very secret'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableConfidentialityLevel',\n label: 'Disable confidentiality level input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideConfidentialityLevel',\n label: 'Hide confidentiality level input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Creation date</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableCreationDate',\n label: 'Disable creation date input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideCreationDate',\n label: 'Hide creation date input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Informatieobjecttype</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentType',\n label: 'Default informatieobjecttype url',\n tooltip:\n \"Sometimes referred to as the 'document-type'. Must match the informatieobjecttype url exactly. Leave empty to let the user input their own informatieobjecttype\",\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentType',\n label: 'Disable informatieobjecttype input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideDocumentType',\n label: 'Hide informatieobjecttype input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Status</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'select',\n label: 'Default status',\n key: 'customOptions.status',\n placeholder: 'Select a default status',\n data: {\n values: [\n {value: 'in_bewerking', label: 'In editing'},\n {value: 'ter_vaststelling', label: 'To be confirmed'},\n {value: 'definitief', label: 'Definitive'},\n {value: 'gearchiveerd', label: 'Archived'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableStatus',\n label: 'Disable status input',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideStatus',\n label: 'Hide status input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Additional date</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideAdditionalDate',\n label: 'Hide additional date input',\n validate: {\n required: false,\n },\n },\n {\n label: 'HTML',\n tag: 'div',\n content: '<h4>Tags</h4>',\n refreshOnChange: false,\n type: 'htmlelement',\n input: false,\n tableView: false,\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.tags',\n label: 'Default tags',\n tooltip: 'A comma separated list of tags. Leave empty to let the user input their own tags',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideTags',\n label: 'Hide tags input',\n validate: {\n required: false,\n },\n },\n ],\n});\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, signal} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {\n FormioCustomComponent,\n FormIoDomService,\n FormIoStateService,\n ValtimoModalService,\n} from '@valtimo/components';\nimport {DocumentenApiFileReference, UploadProviderService} from '@valtimo/resource';\nimport {UserProviderService} from '@valtimo/security';\nimport {\n BehaviorSubject,\n combineLatest,\n EMPTY,\n Observable,\n of,\n startWith,\n Subscription,\n switchMap,\n} from 'rxjs';\nimport {catchError, filter, map, take, tap} from 'rxjs/operators';\nimport {DocumentenApiMetadata, SupportedDocumentenApiFeatures} from '../../models';\nimport {DocumentenApiVersionService} from '../../services';\nimport {DocumentService} from '@valtimo/document';\n\n@Component({\n standalone: false,\n selector: 'valtimo-documenten-api-formio-uploader',\n templateUrl: './documenten-api-uploader.component.html',\n styleUrls: ['./documenten-api-uploader.component.scss'],\n})\nexport class DocumentenApiUploaderComponent\n implements FormioCustomComponent<Array<DocumentenApiFileReference>>, OnInit, OnDestroy\n{\n @Input() disabled: boolean;\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() maxFileSize: number;\n @Input() hideMaxFileSize: boolean;\n @Input() camera: boolean;\n\n @Input() set documentTitle(defaultValue: string) {\n this.defaultValues['titel'] = defaultValue;\n }\n\n @Input() set hideDocumentTitle(hide: boolean) {\n this.hideField(hide, 'titel');\n }\n\n @Input() disableDocumentTitle: boolean;\n\n @Input() set filename(defaultValue: string) {\n this.defaultValues['bestandsnaam'] = defaultValue;\n }\n\n @Input() set hideFilename(hide: boolean) {\n this.hideField(hide, 'bestandsnaam');\n }\n\n @Input() disableFilename: boolean;\n\n @Input() set author(defaultValue: string) {\n this.defaultValues['auteur'] = defaultValue;\n }\n\n @Input() set hideAuthor(hide: boolean) {\n this.hideField(hide, 'auteur');\n }\n\n @Input() disableAuthor: boolean;\n\n @Input() set status(defaultValue: string) {\n this.defaultValues['status'] = defaultValue;\n }\n\n @Input() set hideStatus(hide: boolean) {\n this.hideField(hide, 'status');\n }\n\n @Input() disableStatus: boolean;\n\n @Input() set language(defaultValue: string) {\n this.defaultValues['taal'] = defaultValue;\n }\n\n @Input() set hideLanguage(hide: boolean) {\n this.hideField(hide, 'taal');\n }\n\n @Input() disableLanguage: boolean;\n\n @Input() set documentType(defaultValue: string) {\n this.defaultValues['informatieobjecttype'] = defaultValue;\n this.stateService.documentDefinitionName$\n .pipe(\n filter(documentDefinitionName => !!documentDefinitionName),\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n switchMap(caseDefinition =>\n this.documentService.getDocumentTypesForCase(\n String(caseDefinition.caseDefinitionKey),\n String(caseDefinition.caseDefinitionVersionTag)\n )\n ),\n catchError(() => {\n this.defaultValues['informatieobjecttype'] = defaultValue;\n return EMPTY;\n })\n )\n .subscribe(documentTypes => {\n const foundDocumentType = documentTypes.find(\n documentType => documentType.name === defaultValue\n );\n foundDocumentType\n ? (this.defaultValues['informatieobjecttype'] = foundDocumentType.url)\n : (this.defaultValues['informatieobjecttype'] = defaultValue);\n });\n }\n\n @Input() set hideDocumentType(hide: boolean) {\n this.hideField(hide, 'informatieobjecttype');\n }\n\n @Input() disableDocumentType: boolean;\n\n @Input() set description(defaultValue: string) {\n this.defaultValues['beschrijving'] = defaultValue;\n }\n\n @Input() set hideDescription(hide: boolean) {\n this.hideField(hide, 'beschrijving');\n }\n\n @Input() disableDescription: boolean;\n\n @Input() set confidentialityLevel(defaultValue: string) {\n this.defaultValues['vertrouwelijkheidaanduiding'] = defaultValue;\n }\n\n @Input() set hideConfidentialityLevel(hide: boolean) {\n this.hideField(hide, 'vertrouwelijkheidaanduiding');\n }\n\n @Input() disableConfidentialityLevel: boolean;\n\n @Input() set hideCreationDate(hide: boolean) {\n this.hideField(hide, 'creatiedatum');\n }\n\n @Input() disableCreationDate: boolean;\n\n @Input() set hideAdditionalDate(hide: boolean) {\n this.hideField(hide, 'aanvullendeDatum');\n }\n\n @Input() set tags(tags: string) {\n let _tags = tags\n ?.split(',')\n ?.map(tag => tag.trim())\n ?.filter(tag => !!tag);\n if (_tags?.length === 0) {\n _tags = null;\n }\n this.defaultValues['trefwoorden'] = tags;\n }\n\n @Input() set hideTags(hide: boolean) {\n this.hideField(hide, 'trefwoorden');\n }\n\n @Input() documentUrlProcessVariable: string;\n\n @Output() valueChange = new EventEmitter<Array<DocumentenApiFileReference>>();\n\n public readonly uploading$ = new BehaviorSubject<boolean>(false);\n public readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n public readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n public readonly showModal = signal<boolean>(false);\n public readonly uploadProcessLinked$: Observable<boolean | string> =\n this.modalService.caseDefinitionKey$.pipe(\n switchMap(caseDefinitionKey =>\n this.uploadProviderService.checkUploadProcessLink(caseDefinitionKey)\n ),\n startWith('loading')\n );\n public readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles.includes('ROLE_ADMIN')));\n\n public readonly supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this.modalService.caseDefinitionKey$.pipe(\n switchMap(caseDefinitionKey =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionKey)\n )\n );\n\n public defaultValues: {} = {};\n public hideFields: Array<string> = [];\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly uploadProviderService: UploadProviderService,\n private readonly domService: FormIoDomService,\n private readonly modalService: ValtimoModalService,\n private readonly userProviderService: UserProviderService,\n private readonly route: ActivatedRoute,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly stateService: FormIoStateService,\n private readonly documentService: DocumentService\n ) {}\n\n public ngOnInit(): void {\n this.openCaseDefinitionKeySubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n _value: Array<DocumentenApiFileReference> = [];\n\n public get value(): Array<DocumentenApiFileReference> {\n return this._value;\n }\n\n @Input()\n public set value(value: Array<DocumentenApiFileReference>) {\n if (Array.isArray(value)) {\n this._value = value;\n }\n }\n\n public fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal.set(true);\n }\n\n public deleteFile(id: string): void {\n this.domService.toggleSubmitButton(true);\n this._value = this._value.filter((file: DocumentenApiFileReference) =>\n file?.id ? file?.id !== id : true\n );\n this.valueChange.emit(this._value);\n }\n\n public closeMetadataModal(): void {\n this.showModal.set(false);\n }\n\n public metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n this.showModal.set(false);\n this.domService.toggleSubmitButton(true);\n\n this.fileToBeUploaded$\n .pipe(\n take(1),\n switchMap(file =>\n this.uploadProviderService.uploadTempFileWithMetadata(file, {\n ...metadata,\n processInstanceId: this.stateService.processInstanceId,\n documentUrlProcessVariable: this.documentUrlProcessVariable || null,\n })\n ),\n tap(result => {\n this.domService.toggleSubmitButton(false);\n this.uploading$.next(false);\n this._value = [...this._value, result];\n this.valueChange.emit(this._value);\n })\n )\n .subscribe();\n }\n\n private openCaseDefinitionKeySubscription() {\n this._subscriptions.add(\n combineLatest([this.route?.params || of(null), this.route?.firstChild?.params || of(null)])\n .pipe(\n map(\n ([params, firstChildParams]) =>\n (params?.caseDefinitionKey || firstChildParams?.caseDefinitionKey) as string\n ),\n filter(caseDefinitionKey => !!caseDefinitionKey)\n )\n .subscribe(caseDefinitionKey => this.modalService.setCaseDefinitionKey(caseDefinitionKey))\n );\n }\n\n private hideField(hide: boolean, field: string) {\n const exists = this.hideFields.includes(field);\n if (!exists && hide) {\n this.hideFields.push(field);\n } else if (exists && !hide) {\n delete this.hideFields[field];\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'case.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'case.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n class=\"documenten-api-uploader-metadata-modal\"\n (metadata)=\"metadataSet($event)\"\n (modalClose)=\"closeMetadataModal()\"\n [defaultValues]=\"defaultValues\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableCreationDate]=\"disableCreationDate\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hideFields]=\"hideFields\"\n [supportsTrefwoorden]=\"(supportedDocumentenApiFeatures$ | async)?.supportsTrefwoorden\"\n [open]=\"showModal()\"\n></valtimo-documenten-api-metadata-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {FormioCustomComponentInfo, registerCustomFormioComponent} from '@valtimo/components';\nimport {DocumentenApiUploaderComponent} from './documenten-api-uploader.component';\nimport {documentenApiUploaderEditForm} from './documenten-api-uploader-edit-form';\n\nexport const customDocumentApiUploaderType = 'documenten-api-file';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: customDocumentApiUploaderType,\n selector: 'documenten-api-form-io-uploader',\n title: 'Documenten API File Upload',\n group: 'advanced',\n icon: 'upload',\n // set empty value to force formio to accept arrays as valid input value for this field type\n emptyValue: [],\n editForm: documentenApiUploaderEditForm,\n};\n\nexport function registerDocumentenApiFormioUploadComponent(injector: Injector) {\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponent(COMPONENT_OPTIONS, DocumentenApiUploaderComponent, injector);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-uploader-edit-form';\nexport * from './documenten-api-uploader.component';\nexport * from './documenten-api-uploader.formio';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-uploader';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './formio';\nexport * from './services';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormioForm} from '@formio/angular';\n\ninterface ZaakObjectType {\n name: string;\n url: string;\n}\n\ninterface ZaakObject {\n index: number;\n registrationAt: string;\n title: string | null;\n url: string;\n}\n\ninterface ZaakobjectFormResponse {\n documentMappedFields: Array<{\n defaultValue: string;\n input: boolean;\n key: string;\n label: string;\n type: string;\n }>;\n formDefinition: FormioForm;\n id: string;\n name: string;\n readOnly: boolean;\n}\n\nexport {ZaakObjectType, ZaakObject, ZaakobjectFormResponse};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ZaakObject, ZaakobjectFormResponse, ZaakObjectType} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZaakobjectenService {\n private readonly VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {}\n\n getDocumentObjectTypes(documentId: string): Observable<Array<ZaakObjectType>> {\n return this.http.get<Array<ZaakObjectType>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/objecttype`\n );\n }\n\n getDocumentObjectsOfType(documentId: string, typeUrl: string): Observable<Array<ZaakObject>> {\n return this.http.get<Array<ZaakObject>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/object?typeUrl=${typeUrl}`\n );\n }\n\n getObjectTypeForm(documentId: string, objectUrl: string): Observable<ZaakobjectFormResponse> {\n return this.http.get<ZaakobjectFormResponse>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/object/form?objectUrl=${objectUrl}`\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../services';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../models';\nimport {\n FormIoModule,\n InputLabelModule,\n ModalService,\n ParagraphModule,\n SelectItem,\n SelectModule,\n TableColumn,\n TableModule,\n VModalComponent,\n VModalModule,\n} from '@valtimo/components';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-case-detail-tab-zaakobjecten',\n templateUrl: './zaakobjecten.component.html',\n styleUrls: ['./zaakobjecten.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n SelectModule,\n InputLabelModule,\n ParagraphModule,\n TableModule,\n VModalModule,\n FormIoModule,\n TranslateModule,\n ],\n})\nexport class CaseDetailTabZaakobjectenComponent {\n @ViewChild('viewZaakobjectModal') viewZaakobjectModal: VModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objecttypeSelectItems$: Observable<Array<SelectItem>> = this.objecttypes$.pipe(\n map(objecttypes => objecttypes.map(type => ({id: type.url, text: type.name || '-'})))\n );\n\n readonly selectedObjecttypeUrl$ = new BehaviorSubject<string | null>(null);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService\n .getDocumentObjectsOfType(documentId, selectedObjecttypeUrl)\n .pipe(map(objects => objects.map(object => ({...object, title: object.title || '-'}))))\n : of(null)\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'case.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'case.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'case.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly objectName$ = new BehaviorSubject<string>('');\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n selectObjectType(objectTypeUrl: string): void {\n this.selectedObjecttypeUrl$.next(objectTypeUrl);\n }\n\n rowClicked(object: ZaakObject, objectTypeSelectItems: Array<SelectItem>): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n\n this.setModalData(objectTypeSelectItems, definition);\n },\n () => {\n this.setModalData(objectTypeSelectItems);\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectName$.next('');\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewZaakobjectModal);\n }\n\n private getObjectTypeName(objectTypeSelectItems: Array<SelectItem>): string {\n const selectedObjectTypeUrl = this.selectedObjecttypeUrl$.getValue();\n const currentTypeSelectItem = objectTypeSelectItems.find(\n selectItem => selectItem.id === selectedObjectTypeUrl\n );\n\n return currentTypeSelectItem.text;\n }\n\n private setModalData(objectTypeSelectItems: Array<SelectItem>, definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.objectName$.next(this.getObjectTypeName(objectTypeSelectItems));\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async,\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'case.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'case.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"case.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'case.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"case.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <h4>{{ objectName$ | async }}</h4>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'case.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../services';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../models';\nimport {\n FormIoModule,\n ModalService,\n ParagraphModule,\n TableColumn,\n TableModule,\n VModalComponent,\n VModalModule,\n} from '@valtimo/components';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n selector: 'valtimo-object-type',\n templateUrl: './object-type.component.html',\n styleUrls: ['./object-type.component.scss'],\n standalone: true,\n imports: [CommonModule, TableModule, ParagraphModule, VModalModule, FormIoModule],\n})\nexport class CaseDetailTabObjectTypeComponent {\n @ViewChild('viewObjectModal') viewObjectModal: VModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objectName$ = this.route.params.pipe(\n map(() => {\n const currentUrl = window.location.href;\n const splitUrl = currentUrl.split('/');\n const lastUrlPart = splitUrl[splitUrl.length - 1];\n\n return lastUrlPart;\n })\n );\n\n readonly selectedObjecttypeUrl$: Observable<string> = combineLatest([\n this.objecttypes$,\n this.objectName$,\n ]).pipe(\n map(([objectTypes, objectName]) => {\n const currentType = objectTypes?.find(\n type => type?.name.toLowerCase() === objectName?.toLowerCase()\n );\n\n const currentTypeUrl = currentType?.url;\n\n if (objectTypes && objectName && currentTypeUrl) return currentTypeUrl;\n\n return '';\n })\n );\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly hasData$ = new BehaviorSubject<boolean>(false);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService.getDocumentObjectsOfType(documentId, selectedObjecttypeUrl).pipe(\n map(objects => objects.map(object => ({...object, title: object.title || '-'}))),\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(true);\n })\n )\n : of(null).pipe(\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(false);\n })\n )\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'case.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'case.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'case.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n hasData: boolean;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n rowClicked(object: ZaakObject): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n this.setModalData(definition);\n },\n () => {\n this.setModalData();\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewObjectModal);\n }\n\n private setModalData(definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async,\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"case.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'case.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <h4>{{ objectName$ | async }}</h4>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'case.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten/zaakobjecten.component';\nexport * from './object-type/object-type.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './models';\nexport * from './services';\nexport * from './components';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {\n DocumentObjectenApiSync,\n DocumentObjectenApiSyncRequest,\n ObjectManagementConfiguration,\n} from '../models';\nimport {DocumentDefinition} from '@valtimo/document/public_api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentObjectenApiSyncService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getObjectManagementConfigurations(): Observable<Array<ObjectManagementConfiguration>> {\n return this.httpClient.get<Array<ObjectManagementConfiguration>>(\n this.getApiUrl(`/management/v1/object/management/configuration`)\n );\n }\n\n public getDocumentObjectenApiSync(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<DocumentObjectenApiSync> {\n return this.httpClient.get<DocumentObjectenApiSync>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/objecten-api-sync`\n )\n );\n }\n\n public updateDocumentObjectenApiSync(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n request: {\n objectManagementConfigurationId: string;\n enabled: boolean;\n }\n ): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/objecten-api-sync`\n ),\n request\n );\n }\n\n public deleteDocumentObjectenApiSync(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/objecten-api-sync`\n )\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, OnInit} from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {Edit16, TrashCan16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CaseManagementDraftWarningComponent} from '@valtimo/case-management';\nimport {\n CdsThemeService,\n FormModule,\n InputModule,\n RenderInBodyComponent,\n SelectItem,\n SelectModule,\n SpinnerModule,\n ValtimoCdsModalDirective,\n} from '@valtimo/components';\nimport {DocumentDefinition, DocumentService} from '@valtimo/document';\nimport {\n CaseManagementParams,\n DraftVersionService,\n getCaseManagementRouteParams,\n} from '@valtimo/shared';\nimport {\n ButtonModule,\n CheckboxModule,\n IconModule,\n IconService,\n LayerModule,\n ModalModule,\n TilesModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, map, Observable, switchMap, tap, of} from 'rxjs';\n\nimport {DocumentObjectenApiSync} from '../../models';\nimport {DocumentObjectenApiSyncService} from '../../services';\n\n@Component({\n selector: 'valtimo-document-objecten-api-sync',\n templateUrl: './document-objecten-api-sync.component.html',\n styleUrls: ['./document-objecten-api-sync.component.scss'],\n standalone: true,\n imports: [\n ButtonModule,\n CheckboxModule,\n CommonModule,\n FormModule,\n FormsModule,\n IconModule,\n InputModule,\n LayerModule,\n ModalModule,\n ReactiveFormsModule,\n SelectModule,\n SpinnerModule,\n TilesModule,\n TranslateModule,\n ValtimoCdsModalDirective,\n RenderInBodyComponent,\n CaseManagementDraftWarningComponent,\n ],\n})\nexport class DocumentObjectenApiSyncComponent implements OnInit {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n private readonly _params$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n private readonly _documentDefinition$: Observable<DocumentDefinition> = this._params$.pipe(\n switchMap(params =>\n this.documentService.getDocumentDefinitionByVersion(\n params?.caseDefinitionKey ?? '',\n params?.caseDefinitionVersionTag ?? ''\n )\n )\n );\n public readonly isDraftVersion$ = this._params$.pipe(\n switchMap((params: CaseManagementParams | undefined) =>\n !params\n ? of(false)\n : this.draftVersionService.isDraftVersion(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n )\n );\n public readonly documentObjectenApiSync$ = new BehaviorSubject<DocumentObjectenApiSync | null>(\n null\n );\n public readonly objectManagementConfigurationItems$: Observable<Array<SelectItem>> =\n this.documentObjectenApiSyncService.getObjectManagementConfigurations().pipe(\n map(results =>\n results?.map(configuration => ({\n id: configuration.id,\n text: configuration.title,\n }))\n )\n );\n public readonly modalShowing$ = new BehaviorSubject<boolean>(false);\n public readonly currentTheme$ = this.cdsThemeService.currentTheme$;\n public readonly formGroup = new FormGroup({\n objectManagementConfigurationId: new FormControl('', Validators.required),\n enabled: new FormControl(true),\n });\n\n public get objectManagementConfigurationId(): AbstractControl<string | null> | null {\n return this.formGroup.get('objectManagementConfigurationId') ?? null;\n }\n\n public get enabled(): AbstractControl<boolean | null> | null {\n return this.formGroup.get('enabled') ?? null;\n }\n\n public readonly valid$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentObjectenApiSyncService: DocumentObjectenApiSyncService,\n private readonly documentService: DocumentService,\n private readonly cdsThemeService: CdsThemeService,\n private readonly iconService: IconService,\n private readonly draftVersionService: DraftVersionService\n ) {\n this.iconService.registerAll([TrashCan16, Edit16]);\n }\n\n public ngOnInit(): void {\n this.loadDocumentenObjectenApiSync();\n }\n\n public loadDocumentenObjectenApiSync(): void {\n this._documentDefinition$\n .pipe(\n switchMap((documentDefinition: DocumentDefinition) =>\n this.documentObjectenApiSyncService.getDocumentObjectenApiSync(\n documentDefinition.id.caseDefinitionId.key,\n documentDefinition.id.caseDefinitionId.versionTag\n )\n )\n )\n .subscribe(documentObjectenApiSync => {\n this.loading$.next(false);\n this.configSelected(documentObjectenApiSync?.objectManagementConfigurationId);\n this.enabled?.patchValue(documentObjectenApiSync?.enabled);\n this.documentObjectenApiSync$.next(documentObjectenApiSync);\n });\n }\n\n public remove(): void {\n this._documentDefinition$\n .pipe(\n switchMap(documentDefinition =>\n this.documentObjectenApiSyncService.deleteDocumentObjectenApiSync(\n documentDefinition.id.caseDefinitionId.key,\n documentDefinition.id.caseDefinitionId.versionTag\n )\n ),\n tap(() => {\n this.documentObjectenApiSync$.next(null);\n })\n )\n .subscribe();\n }\n\n public submit(): void {\n const formValues = this.formGroup.getRawValue();\n this._documentDefinition$\n .pipe(\n switchMap(documentDefinition =>\n this.documentObjectenApiSyncService.updateDocumentObjectenApiSync(\n documentDefinition.id.caseDefinitionId.key,\n documentDefinition.id.caseDefinitionId.versionTag,\n {\n objectManagementConfigurationId: formValues.objectManagementConfigurationId ?? '',\n enabled: !!formValues.enabled,\n }\n )\n )\n )\n .subscribe(() => {\n this.loadDocumentenObjectenApiSync();\n this.hideModal();\n });\n }\n\n public onModalClose(): void {\n this.hideModal();\n }\n\n public showModal(): void {\n this.modalShowing$.next(true);\n }\n\n public configSelected(selectedId: string): void {\n if (!this.objectManagementConfigurationId) return;\n\n if (!selectedId) {\n this.objectManagementConfigurationId.patchValue('');\n } else {\n this.objectManagementConfigurationId.patchValue(selectedId);\n }\n }\n\n private hideModal(): void {\n this.modalShowing$.next(false);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile>\n <valtimo-case-management-draft-warning\n *ngIf=\"isDraftVersion$ | async\"\n [name]=\"'zaakdetails.title' | translate | lowercase\"\n ></valtimo-case-management-draft-warning>\n\n <h2 class=\"valtimo-objecten-sync__title\">{{ 'zaakdetails.title' | translate }}</h2>\n\n @if (loading$ | async) {\n <valtimo-spinner></valtimo-spinner>\n } @else {\n @if (documentObjectenApiSync$ | async; as documentObjectenApiSync) {\n <section class=\"valtimo-objecten-sync__card-header\">\n <span class=\"valtimo-objecten-sync__card-title\">\n {{ documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </span>\n\n <div class=\"valtimo-objecten-sync__card-controls\">\n <button cdsButton=\"tertiary\" (click)=\"showModal()\">\n {{ 'interface.edit' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </button>\n\n <button cdsButton=\"danger\" (click)=\"remove()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n </section>\n\n <section class=\"valtimo-objecten-sync__card-body\">\n <div>\n <strong>{{ 'zaakdetails.enabled' | translate }}</strong>\n\n {{\n documentObjectenApiSync.enabled\n ? ('zaakdetails.yes' | translate)\n : ('zaakdetails.no' | translate)\n }}\n </div>\n\n <div>\n <strong>{{ 'zaakdetails.objectManagementConfigurationTitle' | translate }}</strong>\n\n {{ documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n </section>\n } @else {\n <button cdsButton=\"primary\" (click)=\"showModal()\">\n {{ 'zaakdetails.submitButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n }\n }\n</cds-tile>\n\n<valtimo-render-in-body>\n <cds-modal\n valtimoCdsModal\n [title]=\"'zaakdetails.editModal.title' | translate\"\n [open]=\"modalShowing$ | async\"\n showFooter=\"true\"\n (close)=\"onModalClose()\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onModalClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'zaakdetails.editModal.title' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <form [formGroup]=\"formGroup\">\n <v-select\n *ngIf=\"objectManagementConfigurationItems$ | async as objectManagementConfigurations\"\n [appendInline]=\"false\"\n [dropUp]=\"false\"\n [items]=\"objectManagementConfigurations\"\n [defaultSelectionId]=\"objectManagementConfigurationId.getRawValue()\"\n [placeholder]=\"\n 'zaakdetails.editModal.objectManagementConfigurationPlaceholder' | translate\n \"\n [title]=\"'zaakdetails.editModal.objectManagementConfiguration' | translate\"\n [disabled]=\"false\"\n [margin]=\"true\"\n [required]=\"true\"\n name=\"objectManagementConfigurationId\"\n [carbonTheme]=\"currentTheme$ | async\"\n (selectedChange)=\"configSelected($event)\"\n ></v-select>\n\n <cds-checkbox formControlName=\"enabled\"\n >{{ 'zaakdetails.editModal.enabled' | translate }}\n </cds-checkbox>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onModalClose()\" [disabled]=\"false\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!formGroup.valid\" (click)=\"submit()\">\n {{ 'searchFieldsOverview.submit' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal>\n</valtimo-render-in-body>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync/document-objecten-api-sync.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './services';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {PluginConfiguration} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZakenApiZaaktypeLinkService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getPluginConfigurationsByPluginDefinitionKey(\n pluginDefinitionKey: string\n ): Observable<Array<PluginConfiguration>> {\n return this.httpClient.get<Array<PluginConfiguration>>(\n this.getApiUrl(`/v1/plugin/configuration?pluginDefinitionKey=${pluginDefinitionKey}`)\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, HostBinding, OnInit} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {Edit16, Save16, TrashCan16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {RenderInBodyComponent, SpinnerModule} from '@valtimo/components';\nimport {PluginConfiguration} from '@valtimo/plugin';\nimport {\n CreateZaakTypeLinkRequest,\n InformatieObjectType,\n OpenZaakService,\n ZaakType,\n ZaakTypeLink,\n} from '@valtimo/resource';\nimport {\n CaseManagementParams,\n getCaseManagementRouteParams,\n GlobalNotificationService,\n} from '@valtimo/shared';\nimport {\n ButtonModule,\n IconModule,\n IconService,\n InputModule,\n LayerModule,\n ModalModule,\n NotificationModule,\n SelectModule,\n TilesModule,\n ToggleModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, finalize, switchMap} from 'rxjs';\nimport {ZakenApiZaaktypeLinkService} from '../../services';\n\n@Component({\n selector: 'valtimo-zaken-api-zaaktype-link',\n templateUrl: './zaken-api-zaaktype-link.component.html',\n styleUrls: ['./zaken-api-zaaktype-link.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n NotificationModule,\n TranslateModule,\n ButtonModule,\n IconModule,\n TilesModule,\n LayerModule,\n SpinnerModule,\n ModalModule,\n SelectModule,\n InputModule,\n ToggleModule,\n RenderInBodyComponent,\n ],\n})\nexport class ZakenApiZaaktypeLinkComponent implements OnInit {\n public zaakTypes: ZaakType[];\n public pluginConfigurations: PluginConfiguration[];\n public zaakTypeLinkRequest: CreateZaakTypeLinkRequest;\n public informatieObjectTypes: InformatieObjectType[];\n public selectedZaakType: ZaakType | null = null;\n public selectedPluginConfiguration: PluginConfiguration | null = null;\n public selectedInformatieObjectTypeUrl: string | null = null;\n private _caseDefinitionKey: string;\n private _caseVersionTag: string;\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly zaakTypeLink$ = new BehaviorSubject<ZaakTypeLink | null>(null);\n public readonly modalOpen$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly iconService: IconService,\n private readonly openZaakService: OpenZaakService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly zakenApiZaaktypeLinkService: ZakenApiZaaktypeLinkService\n ) {\n this.iconService.registerAll([Edit16, TrashCan16, Save16]);\n }\n\n public ngOnInit(): void {\n getCaseManagementRouteParams(this.route)\n .pipe(\n switchMap((params: CaseManagementParams | undefined) => {\n this._caseDefinitionKey = params?.caseDefinitionKey ?? '';\n this._caseVersionTag = params?.caseDefinitionVersionTag ?? '';\n this.zaakTypeLinkRequest = {\n caseDefinitionKey: this._caseDefinitionKey,\n caseVersionTag: this._caseVersionTag,\n createWithDossier: false,\n };\n\n return this.openZaakService.getZaakTypeLink(\n this._caseDefinitionKey,\n this._caseVersionTag\n );\n })\n )\n .subscribe(zaakTypeLink => {\n if (zaakTypeLink !== null) {\n this.zaakTypeLinkRequest = {\n caseDefinitionKey: this._caseDefinitionKey,\n caseVersionTag: this._caseVersionTag,\n createWithDossier: zaakTypeLink?.createWithDossier,\n rsin: zaakTypeLink?.rsin,\n zakenApiPluginConfigurationId: zaakTypeLink?.zakenApiPluginConfigurationId,\n zaakTypeUrl: zaakTypeLink?.zaakTypeUrl,\n };\n }\n this.zaakTypeLink$.next(zaakTypeLink);\n this.loadZaakTypes();\n this.loadZakenApiPluginConfigurations();\n this.loading$.next(false);\n });\n }\n\n public loadZaakTypes(): void {\n this.openZaakService.getZaakTypes().subscribe((zaakTypes: ZaakType[]) => {\n this.zaakTypes = zaakTypes;\n this.findZaakType(this.zaakTypeLink$.getValue()?.zaakTypeUrl ?? '');\n this.loading$.next(false);\n });\n }\n\n public loadZakenApiPluginConfigurations(): void {\n this.zakenApiZaaktypeLinkService\n .getPluginConfigurationsByPluginDefinitionKey('zakenapi')\n .subscribe((plugins: PluginConfiguration[]) => {\n this.pluginConfigurations = plugins;\n this.findPluginConfiguration(\n this.zaakTypeLink$.getValue()?.zakenApiPluginConfigurationId ?? ''\n );\n });\n }\n\n public loadInformatieObjectTypeUrls(): void {\n this.openZaakService\n .getInformatieObjectTypes()\n .subscribe((informatieObjectTypes: InformatieObjectType[]) => {\n this.informatieObjectTypes = informatieObjectTypes;\n });\n }\n\n public closeModal(): void {\n this.modalOpen$.next(false);\n }\n\n public openModal(zaakTypeLink: ZaakTypeLink): void {\n this.zaakTypeLinkRequest = {\n caseDefinitionKey: this._caseDefinitionKey,\n caseVersionTag: this._caseVersionTag,\n createWithDossier: zaakTypeLink?.createWithDossier,\n rsin: zaakTypeLink?.rsin,\n zakenApiPluginConfigurationId: zaakTypeLink?.zakenApiPluginConfigurationId,\n zaakTypeUrl: zaakTypeLink?.zaakTypeUrl,\n };\n\n this.modalOpen$.next(true);\n }\n\n public onCheckedChange(checked: boolean): void {\n this.zaakTypeLinkRequest.createWithDossier = checked;\n }\n\n public removeZaakTypeLink(): void {\n this.openZaakService\n .deleteZaakTypeLink(this._caseDefinitionKey, this._caseVersionTag)\n .subscribe({\n next: () => {\n this.globalNotificationService.showToast({\n title: this.translateService.instant('openZaak.delinkSuccessful'),\n type: 'success',\n });\n this.zaakTypeLink$.next(null);\n },\n error: () => {\n this.globalNotificationService.showToast({\n title: this.translateService.instant('openZaak.delinkFailed'),\n type: 'error',\n });\n },\n });\n }\n\n public submit(): void {\n this.openZaakService\n .createZaakTypeLink(this.zaakTypeLinkRequest)\n .pipe(finalize(() => this.modalOpen$.next(false)))\n .subscribe({\n next: linkResult => {\n this.zaakTypeLink$.next(linkResult);\n this.zaakTypeLinkRequest = {\n caseDefinitionKey: this._caseDefinitionKey,\n caseVersionTag: this._caseVersionTag,\n createWithDossier: linkResult?.createWithDossier,\n rsin: linkResult?.rsin,\n zakenApiPluginConfigurationId: linkResult?.zakenApiPluginConfigurationId,\n zaakTypeUrl: linkResult?.zaakTypeUrl,\n };\n this.findZaakType(linkResult.zaakTypeUrl);\n this.findPluginConfiguration(linkResult.zakenApiPluginConfigurationId);\n this.globalNotificationService.showToast({\n title: this.translateService.instant('openZaak.linkSuccessful'),\n type: 'success',\n });\n },\n error: () => {\n this.globalNotificationService.showToast({\n title: this.translateService.instant('openZaak.linkFailed'),\n type: 'error',\n });\n },\n });\n }\n\n private findZaakType(zaakTypeUrl: string): void {\n this.selectedZaakType = this.zaakTypes.find(zaakType => zaakType.url === zaakTypeUrl) ?? null;\n }\n\n private findPluginConfiguration(pluginConfigurationId: string): void {\n this.selectedPluginConfiguration =\n this.pluginConfigurations.find(\n pluginConfiguration => pluginConfiguration.id === pluginConfigurationId\n ) ?? null;\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile>\n <h2 class=\"valtimo-zaak-type-link__title\">{{ 'openZaak.links' | translate }}</h2>\n\n @if (loading$ | async) {\n <valtimo-spinner></valtimo-spinner>\n } @else {\n @if (zaakTypeLink$ | async; as zaakTypeLink) {\n <section class=\"valtimo-zaak-type-link__card-header\">\n <span class=\"valtimo-zaak-type-link__card-title\">\n {{ this.selectedZaakType?.omschrijving || '-' }}\n </span>\n\n <div class=\"valtimo-zaak-type-link__card-controls\">\n <button cdsButton=\"tertiary\" (click)=\"openModal(zaakTypeLink)\">\n {{ 'interface.edit' | translate }}\n\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"danger\" (click)=\"removeZaakTypeLink()\">\n {{ 'interface.delete' | translate }}\n\n <svg cdsIcon=\"trash-can\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n </section>\n\n <section class=\"valtimo-zaak-type-link__card-body\">\n <div>\n <strong>{{ 'openZaak.autoCreateForCase' | translate }}</strong>\n\n {{\n zaakTypeLink?.createWithDossier\n ? ('viewTypeConverter.Yes' | translate)\n : ('viewTypeConverter.No' | translate)\n }}\n </div>\n\n <div>\n <strong>{{ 'openZaak.zakenApiPlugin' | translate }}</strong>\n\n {{ this.selectedPluginConfiguration?.title || '-' }}\n </div>\n\n <div>\n <strong>{{ 'openZaak.rsin' | translate }}</strong>\n\n {{ zaakTypeLink?.rsin || '-' }}\n </div>\n </section>\n } @else {\n <button\n cdsButton=\"primary\"\n class=\"valtimo-zaak-type-link__link-button\"\n (click)=\"openModal(null)\"\n >\n {{ 'openZaak.linkZaakType' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n }\n }\n</cds-tile>\n\n<valtimo-render-in-body>\n <cds-modal showFooter=\"true\" valtimoCdsModal [open]=\"modalOpen$ | async\" (close)=\"closeModal()\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>Zaak types</h3>\n\n <span> Connect Zaak type to Dossier</span>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-zaak-type-link-modal__content\">\n <cds-select\n [label]=\"'openZaak.selectZaakTypeForCase' | translate\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.zaakTypeUrl\"\n >\n <option value=\"default\">{{ 'openZaak.selectZaakType' | translate }}</option>\n\n @for (zaakType of zaakTypes; track zaakType.url) {\n <option [value]=\"zaakType.url\">\n {{ zaakType.omschrijving || '-' }}\n </option>\n }\n </cds-select>\n\n <cds-select\n [label]=\"'openZaak.selectZakenApiPluginForCase' | translate\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.zakenApiPluginConfigurationId\"\n >\n <option value=\"default\">{{ 'openZaak.selectZakenApiPlugin' | translate }}</option>\n\n @for (pluginConfiguration of pluginConfigurations; track pluginConfiguration.id) {\n <option [value]=\"pluginConfiguration.id\">\n {{ pluginConfiguration?.title || '-' }}\n </option>\n }\n </cds-select>\n\n <cds-text-label>\n {{ 'openZaak.rsin' | translate }}\n\n <input\n cdsText\n cdsLayer=\"1\"\n placeholder=\"RSIN\"\n type=\"text\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.rsin\"\n />\n </cds-text-label>\n\n <cds-toggle\n [label]=\"'openZaak.autoCreateForCase' | translate\"\n [checked]=\"this.zaakTypeLinkRequest.createWithDossier\"\n (checkedChange)=\"onCheckedChange($event)\"\n >\n </cds-toggle>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"!this.zaakTypeLinkRequest.zaakTypeUrl\"\n (click)=\"submit()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal>\n</valtimo-render-in-body>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link/zaken-api-zaaktype-link.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface PluginDefinition {\n key: string;\n description?: string;\n title?: string;\n}\n\ninterface PluginConfiguration {\n definitionKey?: string;\n pluginDefinition?: PluginDefinition;\n id?: string;\n newId?: string;\n title: string;\n properties: object;\n}\nexport {PluginConfiguration, PluginDefinition};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './services';\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 {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule, ModalModule} from 'carbon-components-angular';\nimport {FailedNotification} from '../../models';\nimport moment from 'moment';\n\n@Component({\n selector: 'valtimo-notificaties-api-failed-notification-detail',\n templateUrl: './failed-notification-detail.component.html',\n styleUrls: ['./failed-notification-detail.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslateModule, ModalModule, ButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FailedNotificationDetailComponent {\n @Input() public open = false;\n @Input() public notification: FailedNotification | null = null;\n @Input() public retryInProgress = false;\n\n @Output() public readonly closeModalEvent = new EventEmitter<void>();\n @Output() public readonly retryEvent = new EventEmitter<void>();\n\n public onClose(): void {\n this.closeModalEvent.emit();\n }\n\n public onRetry(): void {\n if (!this.retryInProgress) this.retryEvent.emit();\n }\n\n public get formattedPayload(): string {\n if (!this.notification?.payload) return '';\n\n try {\n return JSON.stringify(JSON.parse(this.notification.payload), null, 2);\n } catch (error) {\n return this.notification.payload;\n }\n }\n\n public formatDateValue(value?: string | null): string {\n if (!value) return '-';\n\n try {\n return moment(value)\n .locale(localStorage.getItem('langKey') ?? 'nl')\n .format('DD-MM-YYYY, HH:mm:ss');\n } catch (error) {\n return value;\n }\n }\n}\n","<cds-modal [open]=\"open\" size=\"lg\" valtimoCdsModal>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onClose()\">\n {{ 'zgw.notifications.failed.detail.title' | translate }}\n </cds-modal-header>\n\n <section cdsModalContent class=\"failed-notification-detail__content\">\n <h4 class=\"detail-heading\">\n {{ 'zgw.notifications.failed.detail.metadataTitle' | translate }}\n </h4>\n\n <dl class=\"detail-metadata\">\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.status' | translate }}</dt>\n <dd>{{ notification?.status || '-' }}</dd>\n </div>\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.pendingRetries' | translate }}</dt>\n <dd>{{ notification?.pendingRetries ?? '-' }}</dd>\n </div>\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.receivedAt' | translate }}</dt>\n <dd>{{ formatDateValue(notification?.receivedAt) }}</dd>\n </div>\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.lastProcessedAt' | translate }}</dt>\n <dd>{{ formatDateValue(notification?.lastProcessedAt) }}</dd>\n </div>\n </dl>\n\n <h4 class=\"detail-heading\">\n {{ 'zgw.notifications.failed.detail.payloadTitle' | translate }}\n </h4>\n <div class=\"detail-block\" *ngIf=\"formattedPayload; else noPayload\">\n <pre class=\"detail-pre\">{{ formattedPayload }}</pre>\n </div>\n <ng-template #noPayload>\n <div class=\"detail-block detail-block--empty\">\n {{ 'zgw.notifications.failed.detail.noPayload' | translate }}\n </div>\n </ng-template>\n\n <h4 class=\"detail-heading\">\n {{ 'zgw.notifications.failed.detail.errorTitle' | translate }}\n </h4>\n <div class=\"detail-block\" *ngIf=\"notification?.lastErrorMessage; else noError\">\n <pre class=\"detail-pre\">{{ notification?.lastErrorMessage }}</pre>\n </div>\n <ng-template #noError>\n <div class=\"detail-block detail-block--empty\">\n {{ 'zgw.notifications.failed.detail.noError' | translate }}\n </div>\n </ng-template>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" type=\"button\" (click)=\"onClose()\">\n {{ 'interface.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n type=\"button\"\n (click)=\"onRetry()\"\n [disabled]=\"retryInProgress || !notification\"\n >\n {{ 'zgw.notifications.failed.detail.retry' | 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 {HttpClient, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/shared';\nimport {map, Observable} from 'rxjs';\nimport {FailedNotification, FailedNotificationPageRequest} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FailedNotificationsService extends BaseApiService {\n constructor(\n protected override readonly httpClient: HttpClient,\n protected override readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getFailedNotifications(\n request: FailedNotificationPageRequest\n ): Observable<Page<FailedNotification>> {\n const params = new HttpParams({\n fromObject: {\n page: request.page,\n size: request.size,\n ...(request.sort ? {sort: request.sort} : {}),\n } as any,\n });\n\n return this.httpClient.get<Page<FailedNotification>>(\n this.getApiUrl('management/v1/notificatiesapi/inbound-events/failed'),\n {params}\n );\n }\n\n public retryFailedNotification(id: string): Observable<void> {\n return this.httpClient.post<void>(\n this.getApiUrl(`management/v1/notificatiesapi/inbound-events/${id}/retry`),\n {}\n );\n }\n\n public getFailedNotificationCount(): Observable<number> {\n return this.httpClient\n .get<{\n count: number;\n }>(this.getApiUrl('management/v1/notificatiesapi/inbound-events/failed/count'))\n .pipe(map(response => response.count ?? 0));\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n CarbonListModule,\n CarbonTag,\n ColumnConfig,\n DEFAULT_PAGINATION,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {BehaviorSubject, finalize, map, Observable, switchMap, tap} from 'rxjs';\nimport {FailedNotification, FailedNotificationPageRequest} from '../../models';\nimport {FailedNotificationsService} from '../../services';\nimport {FailedNotificationDetailComponent} from '../failed-notification-detail/failed-notification-detail.component';\nimport {GlobalNotificationService} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-notificaties-api-failed-notifications-page',\n templateUrl: './failed-notifications-page.component.html',\n styleUrls: ['./failed-notifications-page.component.scss'],\n standalone: true,\n imports: [CommonModule, TranslateModule, CarbonListModule, FailedNotificationDetailComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FailedNotificationsPageComponent {\n private readonly _DEFAULT_SORT = 'receivedAt,desc';\n\n public readonly loading$ = new BehaviorSubject<boolean>(false);\n public readonly pagination$ = new BehaviorSubject<Pagination>({...DEFAULT_PAGINATION});\n public readonly retryInProgress$ = new BehaviorSubject<boolean>(false);\n public readonly selectedNotification$ = new BehaviorSubject<FailedNotification | null>(null);\n\n private readonly _pageRequest$ = new BehaviorSubject<FailedNotificationPageRequest>({\n page: 0,\n size: DEFAULT_PAGINATION.size,\n sort: this._DEFAULT_SORT,\n });\n\n public readonly notifications$: Observable<FailedNotification[]> = this._pageRequest$.pipe(\n tap(() => this.loading$.next(true)),\n switchMap(request =>\n this.failedNotificationsService.getFailedNotifications(request).pipe(\n tap(page => {\n this.pagination$.next({\n ...this.pagination$.getValue(),\n page: request.page + 1,\n size: request.size,\n collectionSize: page.totalElements,\n });\n }),\n map(page => page.content),\n finalize(() => this.loading$.next(false))\n )\n )\n );\n\n public readonly FIELDS: ColumnConfig[] = [\n {\n key: 'receivedAt',\n label: 'zgw.notifications.failed.columns.receivedAt',\n viewType: ViewType.DATE_TIME,\n },\n {\n key: 'pendingRetries',\n label: 'zgw.notifications.failed.columns.pendingRetries',\n viewType: ViewType.NUMBER,\n },\n {\n key: 'lastProcessedAt',\n label: 'zgw.notifications.failed.columns.lastProcessedAt',\n viewType: ViewType.DATE_TIME,\n },\n {\n key: 'lastErrorMessage',\n label: 'zgw.notifications.failed.columns.lastErrorMessage',\n viewType: ViewType.TEXT,\n tooltipCharLimit: 160,\n },\n ];\n\n constructor(\n private readonly failedNotificationsService: FailedNotificationsService,\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly translateService: TranslateService\n ) {}\n\n public onPaginationClicked(page: number): void {\n const current = this._pageRequest$.getValue();\n this._pageRequest$.next({...current, page: Math.max(0, page - 1)});\n }\n\n public onPaginationSet(size: number): void {\n const current = this._pageRequest$.getValue();\n const updated: FailedNotificationPageRequest = {\n ...current,\n size,\n page: 0,\n };\n this._pageRequest$.next(updated);\n }\n\n public onRowClicked(row: FailedNotification & {ctrlClick: boolean; tags: CarbonTag[]}): void {\n const {ctrlClick: _ctrl, tags: _tags, ...notification} = row;\n this.selectedNotification$.next(notification);\n }\n\n public onCloseModal(): void {\n this.selectedNotification$.next(null);\n }\n\n public onRetry(): void {\n const notification = this.selectedNotification$.getValue();\n if (!notification) return;\n\n this.retryInProgress$.next(true);\n\n this.failedNotificationsService\n .retryFailedNotification(notification.id)\n .pipe(finalize(() => this.retryInProgress$.next(false)))\n .subscribe({\n next: () => {\n const message = this.translateService.instant('zgw.notifications.failed.retrySuccess');\n this.globalNotificationService.showToast({\n title: message,\n type: 'success',\n });\n this.selectedNotification$.next(null);\n this._pageRequest$.next({...this._pageRequest$.getValue()});\n },\n error: () => {\n const message = this.translateService.instant('zgw.notifications.failed.retryError');\n this.globalNotificationService.showToast({\n title: message,\n type: 'error',\n });\n },\n });\n }\n}\n","<div class=\"failed-notifications-page\">\n <valtimo-carbon-list\n *ngIf=\"{items: notifications$ | async} as obs\"\n [items]=\"obs.items || []\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n [pagination]=\"pagination$ | async\"\n paginationIdentifier=\"zgw-notificaties-api-failed\"\n (paginationClicked)=\"onPaginationClicked($event)\"\n (paginationSet)=\"onPaginationSet($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n >\n <valtimo-no-results\n [title]=\"'zgw.notifications.failed.noResults.title' | translate\"\n [description]=\"'zgw.notifications.failed.noResults.description' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-notificaties-api-failed-notification-detail\n [open]=\"(selectedNotification$ | async) !== null\"\n [notification]=\"selectedNotification$ | async\"\n [retryInProgress]=\"retryInProgress$ | async\"\n (closeModalEvent)=\"onCloseModal()\"\n (retryEvent)=\"onRetry()\"\n ></valtimo-notificaties-api-failed-notification-detail>\n</div>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum NotificatiesApiInboundEventStatus {\n RECEIVED = 'RECEIVED',\n PROCESSED = 'PROCESSED',\n FAILED = 'FAILED',\n}\n\ninterface FailedNotification {\n id: string;\n idempotenceKey: string;\n status: NotificatiesApiInboundEventStatus;\n pendingRetries: number | null;\n receivedAt: string;\n lastProcessedAt: string | null;\n lastErrorMessage: string | null;\n payload: string;\n}\n\ninterface FailedNotificationPageRequest {\n page: number;\n size: number;\n sort?: string;\n}\n\nexport {FailedNotification, FailedNotificationPageRequest, NotificatiesApiInboundEventStatus};\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 {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 {FailedNotificationsPageComponent} from './components';\n\nconst routes: Routes = [\n {\n path: 'notifications-api/notifications/failed',\n component: FailedNotificationsPageComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'zgw.notifications.failed.pageTitle',\n roles: [ROLE_ADMIN],\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class NotificatiesApiRoutingModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api';\nexport * from './objecten-api';\nexport * from './zaakdetails';\nexport * from './zaken-api';\nexport * from './notificaties-api';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {MuuriDirectiveModule} from '@valtimo/components';\nimport {\n DocumentenApiVersionComponent,\n DocumentObjectenApiSyncComponent,\n ZakenApiZaaktypeLinkComponent,\n} from '../../modules';\n\n@Component({\n templateUrl: './case-management-zgw-general.component.html',\n styleUrl: './case-management-zgw-general.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ZakenApiZaaktypeLinkComponent,\n DocumentObjectenApiSyncComponent,\n MuuriDirectiveModule,\n DocumentenApiVersionComponent,\n ],\n})\nexport class CaseManagementZgwGeneralComponent {}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"muuri-container\">\n <div muuri [columnMinWidth]=\"450\">\n <valtimo-muuri-item>\n <valtimo-document-objecten-api-sync></valtimo-document-objecten-api-sync>\n </valtimo-muuri-item>\n\n <valtimo-muuri-item>\n <valtimo-documenten-api-version></valtimo-documenten-api-version\n ></valtimo-muuri-item>\n\n <valtimo-muuri-item>\n <valtimo-zaken-api-zaaktype-link></valtimo-zaken-api-zaaktype-link>\n </valtimo-muuri-item>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, distinctUntilChanged, Observable} from 'rxjs';\nimport {ZgwTabEnum} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CaseManagementZgwService {\n public configuredTabKeys: string[];\n\n private readonly _DEFAULT_TAB: ZgwTabEnum = ZgwTabEnum.GENERAL;\n\n private _currentTab$ = new BehaviorSubject<ZgwTabEnum>(this._DEFAULT_TAB);\n public get currentTab$(): Observable<ZgwTabEnum> {\n return this._currentTab$.pipe(distinctUntilChanged());\n }\n public set currentTab(tab: ZgwTabEnum) {\n this._currentTab$.next(tab);\n }\n\n public resetToDefaultTab(): void {\n this._currentTab$.next(this._DEFAULT_TAB);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-management-zgw.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CaseManagementDraftWarningComponent} from '@valtimo/case-management';\nimport {\n CaseManagementParams,\n DraftVersionService,\n getCaseManagementRouteParams,\n} from '@valtimo/shared';\nimport {TabsModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {ZgwTab, ZgwTabEnum} from '../../models';\nimport {\n DocumentenApiColumnsComponent,\n DocumentenApiTagsComponent,\n DocumentenApiUploadFieldsComponent,\n DocumentenApiVersionService,\n SupportedDocumentenApiFeatures,\n} from '../../modules';\nimport {CaseManagementZgwService} from '../../services';\nimport {CaseManagementZgwGeneralComponent} from '../case-management-zgw-general/case-management-zgw-general.component';\n\n@Component({\n templateUrl: './case-management-zgw.component.html',\n styleUrl: './case-management-zgw.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, TabsModule, TranslateModule, CaseManagementDraftWarningComponent],\n})\nexport class CaseManagementZgwComponent implements AfterViewInit, OnDestroy {\n @ViewChild('zgwTabContent', {read: ViewContainerRef})\n private _zgwTabContent: ViewContainerRef;\n\n private readonly _viewInitialized$ = new BehaviorSubject<boolean>(false);\n\n private readonly _params$: Observable<CaseManagementParams | undefined> =\n getCaseManagementRouteParams(this.route);\n private readonly _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this._params$.pipe(\n map((params: CaseManagementParams | undefined) => params?.caseDefinitionKey ?? ''),\n filter((caseDefinitionKey: string) => !!caseDefinitionKey),\n switchMap((caseDefinitionKey: string) =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionKey ?? '')\n )\n );\n\n public readonly isDraftVersion$ = this._params$.pipe(\n switchMap((params: CaseManagementParams | undefined) =>\n !params\n ? of(false)\n : this.draftVersionService.isDraftVersion(\n params.caseDefinitionKey,\n params.caseDefinitionVersionTag\n )\n )\n );\n public readonly currentTab$ = this.caseManagementZgwService.currentTab$;\n public readonly zgwTabs$: Observable<ZgwTab[]> = combineLatest([\n this._viewInitialized$,\n this.currentTab$,\n this._supportedDocumentenApiFeatures$,\n ]).pipe(\n filter(([viewInitialized]) => viewInitialized),\n map(([_, currentTab, supportedDocumentenApiFeatures]) =>\n [\n {\n class: 'no-padding-left-right no-padding-top-bottom',\n headingTranslationKey: 'caseManagement.tabs.general',\n tab: ZgwTabEnum.GENERAL,\n component: CaseManagementZgwGeneralComponent,\n },\n {\n class: 'no-padding-left-right no-padding-top-bottom',\n headingTranslationKey: 'zgw.tabs.documentColumns',\n tab: ZgwTabEnum.DOCUMENTEN_API_COLUMNS,\n component: DocumentenApiColumnsComponent,\n },\n {\n class: 'no-padding-left-right no-padding-top-bottom',\n headingTranslationKey: 'zgw.tabs.documentUploadFields',\n tab: ZgwTabEnum.DOCUMENTEN_API_UPLOAD_FIELDS,\n component: DocumentenApiUploadFieldsComponent,\n },\n ...(supportedDocumentenApiFeatures.supportsTrefwoorden\n ? [\n {\n class: 'no-padding-left-right no-padding-top-bottom',\n headingTranslationKey: 'zgw.tabs.documentTags',\n tab: ZgwTabEnum.DOCUMENTEN_API_TAGS,\n component: DocumentenApiTagsComponent,\n },\n ]\n : []),\n ].map(zgwTab => ({...zgwTab, active: currentTab === zgwTab.tab}))\n ),\n tap(zgwTabs => {\n const activeTab = zgwTabs.length > 1 ? zgwTabs.find(tab => tab.active) : zgwTabs[0];\n if (!activeTab) return;\n\n this._zgwTabContent.clear();\n this._zgwTabContent.createComponent(activeTab.component);\n this.cdr.detectChanges();\n })\n );\n\n public readonly ZgwTabEnum = ZgwTabEnum;\n public readonly DRAFT_WARNING_MESSAGE = {\n [ZgwTabEnum.DOCUMENTEN_API_COLUMNS]: 'zgw.tabs.documentColumns',\n [ZgwTabEnum.DOCUMENTEN_API_UPLOAD_FIELDS]: 'zgw.tabs.documentUploadFields',\n [ZgwTabEnum.DOCUMENTEN_API_TAGS]: 'zgw.tabs.documentUploadFields',\n };\n\n constructor(\n private readonly caseManagementZgwService: CaseManagementZgwService,\n private readonly cdr: ChangeDetectorRef,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly draftVersionService: DraftVersionService,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngAfterViewInit(): void {\n this._viewInitialized$.next(true);\n }\n\n public ngOnDestroy(): void {\n this.caseManagementZgwService.resetToDefaultTab();\n }\n\n public displayTab(tab: ZgwTabEnum): void {\n this.caseManagementZgwService.currentTab = tab;\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (currentTab$ | async; as currentTab) {\n <valtimo-case-management-draft-warning\n *ngIf=\"(isDraftVersion$ | async) === true && currentTab !== ZgwTabEnum.GENERAL\"\n [name]=\"DRAFT_WARNING_MESSAGE[currentTab] | translate | lowercase\"\n ></valtimo-case-management-draft-warning>\n}\n\n<cds-tabs class=\"case-management-tabs\" type=\"contained\">\n @for (zgwTab of (zgwTabs$ | async) || []; track zgwTab.tab) {\n <cds-tab\n [class]=\"zgwTab.class\"\n [active]=\"zgwTab.active\"\n [heading]=\"zgwTab.headingTranslationKey | translate\"\n (selected)=\"displayTab(zgwTab.tab)\"\n ></cds-tab>\n }\n</cds-tabs>\n\n<ng-template #zgwTabContent></ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-management-zgw/case-management-zgw.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule} from '@angular/router';\nimport {FormioModule} from '@formio/angular';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DropzoneModule, FileSizeModule} from '@valtimo/components';\nimport {\n CASE_CONFIGURATION_EXTENSIONS_TOKEN,\n CASE_MANAGEMENT_TAB_TOKEN,\n ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN,\n ZGW_OBJECT_TYPE_COMPONENT_TOKEN,\n} from '@valtimo/shared';\nimport {DocumentModule} from '@valtimo/document';\nimport {ResourceModule} from '@valtimo/resource';\nimport {\n NotificatiesApiRoutingModule,\n CaseDetailTabDocumentenApiDocumentsComponent,\n CaseDetailTabObjectTypeComponent,\n CaseManagementLinkProcessComponent,\n DocumentenApiMetadataModalComponent,\n DocumentenApiUploaderComponent,\n} from './modules';\nimport {CaseManagementZgwComponent} from './components';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n DropzoneModule,\n TranslateModule,\n DocumentModule,\n FileSizeModule,\n ResourceModule,\n RouterModule,\n DocumentenApiMetadataModalComponent,\n NotificatiesApiRoutingModule,\n ],\n declarations: [DocumentenApiUploaderComponent],\n exports: [DocumentenApiUploaderComponent],\n providers: [\n {\n provide: CASE_MANAGEMENT_TAB_TOKEN,\n useValue: {\n translationKey: 'caseManagement.tabs.zgw',\n component: CaseManagementZgwComponent,\n tabRoute: 'zgw',\n },\n multi: true,\n },\n {\n provide: ZGW_OBJECT_TYPE_COMPONENT_TOKEN,\n useValue: CaseDetailTabObjectTypeComponent,\n },\n {\n provide: ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN,\n useValue: CaseDetailTabDocumentenApiDocumentsComponent,\n },\n {\n provide: CASE_CONFIGURATION_EXTENSIONS_TOKEN,\n useValue: [CaseManagementLinkProcessComponent],\n },\n ],\n})\nexport class ZgwModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of documenten-api\n */\n\nexport * from './lib/components';\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/modules';\nexport * from './lib/zgw.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3.DocumentenApiColumnService","i5","i2.DocumentenApiColumnService","i3","i7","i4","i6.DocumentenApiTagService","tap","take","i3.DocumentenApiTagService","i6","i3.DocumentenApiVersionService","i8","CarbonInputModule","InputModule","map","filter","switchMap","i3.DocumentenApiDocumentService","i2.DocumentenApiVersionService","i9","i11","i12","i3.DocumentenApiLinkProcessService","i2.DocumentenApiTagService","i2.DocumentenApiDocumentService","i5.DocumentenApiVersionService","i9.DocumentenApiMetadataModalComponent","i2.ZaakobjectenService","i2.DocumentObjectenApiSyncService","i6.ZakenApiZaaktypeLinkService","SelectModule","i1.FailedNotificationsService","i1.CaseManagementZgwService"],"mappings":"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"}