@valtimo/zgw 12.15.1 → 12.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-zgw.mjs","sources":["../../../../projects/valtimo/zgw/src/lib/models/dossier-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-upload-process/dossier-management-link-process.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-link-upload-process/dossier-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/contactmomenten/models/contact-moment.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/services/contact-moment.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/components/contact-moments/contact-moments.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/components/contact-moments/contact-moments.component.html","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/services/customer.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/models/customer.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/models/case.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/components/customer-list/customer-list.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/components/customer-list/customer-list.component.html","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/components/cases-list/cases-list.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/components/cases-list/cases-list.component.html","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/customer-routing.module.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/customer.module.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/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/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/services/dossier-management-zgw.service.ts","../../../../projects/valtimo/zgw/src/lib/services/index.ts","../../../../projects/valtimo/zgw/src/lib/components/dossier-management-zgw/dossier-management-zgw.component.ts","../../../../projects/valtimo/zgw/src/lib/components/dossier-management-zgw/dossier-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-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 {Type} from '@angular/core';\n\nenum ZgwTabEnum {\n DOCUMENTEN_API_COLUMNS = 'documentenApiColumns',\n DOCUMENTEN_API_TAGS = 'documentenApiTags',\n DOCUMENTEN_API_UPLOAD_FIELDS = 'documentenApiUploadFields',\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-management-zgw.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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(caseDefinitionName: string): Observable<ConfiguredColumn[]> {\n return this.http.get<ConfiguredColumn[]>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/config';\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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(documentDefinitionName: string): Observable<UploadProcessLink> {\n return this.httpClient.get<UploadProcessLink>(\n this.getApiUrl(`/v1/process-document/demo/${documentDefinitionName}/process`)\n );\n }\n\n public updateLinkedUploadProcess(\n documentDefinitionName: string,\n processDefinitionKey: string\n ): Observable<UploadProcessLink> {\n return this.httpClient.put<UploadProcessLink>(\n this.getApiUrl(`/v1/process-document/demo/${documentDefinitionName}/process`),\n {\n processDefinitionKey,\n linkType: 'DOCUMENT_UPLOAD',\n }\n );\n }\n\n public deleteLinkedUploadProcess(documentDefinitionName: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(`/v1/process-document/demo/${documentDefinitionName}/process`)\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/config';\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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 caseDefinitionName: string\n ): Observable<SupportedDocumentenApiFeatures> {\n return this.httpClient.get<SupportedDocumentenApiFeatures>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/documenten-api/version`)\n );\n }\n\n public refresh(): void {\n this._refresh$.next(null);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {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 {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';\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 private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.name),\n filter(docDefName => !!docDefName)\n );\n\n public get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$;\n }\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n public readonly configuredColumns$: Observable<ConfiguredColumn[]> = combineLatest([\n this._documentDefinitionName$,\n this._reload$,\n ]).pipe(\n tap(([_, reload]) => {\n if (reload === null) this.loading$.next(true);\n }),\n switchMap(([documentDefinitionName]) =>\n this.zgwDocumentColumnService.getAdminConfiguredColumns(documentDefinitionName)\n ),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly configurableColumns$: Observable<ConfiguredColumn[]> =\n this.documentDefinitionName$.pipe(\n switchMap((documentDefinitionName: string) =>\n combineLatest([\n this.zgwDocumentColumnService.getAdminConfigurableColumns(documentDefinitionName),\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 CARBON_THEME = 'g10';\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 ) {}\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.prefillColumn$.next(column);\n this.columnModalType$.next('edit');\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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n columnModalType: columnModalType$ | async,\n columnToUpdate: columnToUpdate$ | async,\n documentDefinitionName: documentDefinitionName$ | 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 [movingRowsEnabled]=\"true\"\n (itemsReordered)=\"onItemsReordered(obs.documentDefinitionName, $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.documentDefinitionName\"\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.documentDefinitionName)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"openAddModal()\">\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-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\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}\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-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 {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-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 {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-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\ntype DocumentenApiColumnModalType = 'edit' | 'add' | 'closed';\n\ntype DocumentenApiColumnModalTypeCloseEvent = 'close' | 'closeAndRefresh';\n\nexport {DocumentenApiColumnModalType, DocumentenApiColumnModalTypeCloseEvent};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface 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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface 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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport 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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './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","import {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';\n\n@Component({\n selector: 'valtimo-dossier-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 public readonly informationObjectTypes$: Observable<ListItem[]> = this.route.paramMap.pipe(\n filter((paramMap: ParamMap) => !!paramMap.get('documentDefinitionName')),\n switchMap((paramMap: ParamMap) =>\n combineLatest([\n this.documentService.getDocumentTypes(paramMap.get('documentDefinitionName') ?? ''),\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('documentDefinitionName')),\n switchMap((paramMap: ParamMap) =>\n combineLatest([\n this.documentenApiTagService.getTags(paramMap.get('documentDefinitionName') ?? ''),\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","<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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\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 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.documentDefinitionName$,\n this.tagFormControl.valueChanges.pipe(startWith(this.tagFormControl.value)),\n ]).pipe(\n filter(([documentDefinitionName]) => !!documentDefinitionName),\n switchMap(([documentDefinitionName, tagFormControlValue]) =>\n combineLatest([\n this.documentenApiTagService.getTags(documentDefinitionName),\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 documentTypeItems$: Observable<Array<ListItem>> = combineLatest([\n this.valtimoModalService.documentDefinitionName$,\n this.informatieobjecttypeFormControl.valueChanges.pipe(\n startWith(this.informatieobjecttypeFormControl.value)\n ),\n ]).pipe(\n switchMap(([documentDefinitionName, informatieobjecttypeValue]) =>\n combineLatest([\n this.documentService.getDocumentTypes(documentDefinitionName),\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.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiVersionService.getSupportedApiFeatures(documentDefinitionName)\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 ) {}\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 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 prefillStatus = status || this.defaultValues.status;\n const validPrefillStatus = this.STATUSES.includes(prefillStatus) ? prefillStatus : '';\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,\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?.documentDefinitionName || firstChildParams?.documentDefinitionName) as string\n ),\n filter(documentDefinitionName => !!documentDefinitionName)\n )\n .subscribe(documentDefinitionName =>\n this.valtimoModalService.setDocumentDefinitionName(documentDefinitionName)\n )\n );\n }\n\n private setAdditionalDate(value: AdditionalDocumentDate): void {\n this.additionalDocumentDate$.next(value);\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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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 >\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {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 {\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 {ConfigService, Direction} from '@valtimo/config';\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 {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} from 'rxjs/operators';\nimport {\n COLUMN_VIEW_TYPES,\n ConfiguredColumn,\n DOCUMENTEN_COLUMN_KEYS,\n DocumentenApiFilterModel,\n DocumentenApiRelatedFile,\n SupportedDocumentenApiFeatures,\n} from '../../models';\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';\nimport {\n DocumentenApiUploadFieldDefaultValues,\n DocumentenApiUploadFields,\n} from '../../models/documenten-api-upload-field.model';\nimport {PermissionRequest, PermissionService} from '@valtimo/access-control';\n\n@Component({\n selector: 'valtimo-dossier-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 DossierDetailTabDocumentenApiDocumentsComponent implements OnInit, OnDestroy {\n @ViewChild('fileInput') fileInput: ElementRef;\n @ViewChild('translationTemplate') translationTemplate: TemplateRef<any>;\n\n private readonly _documentDefinitionName$ = this.route.params.pipe(\n map(params => params?.documentDefinitionName),\n filter(caseDefinitionName => !!caseDefinitionName)\n );\n\n public readonly supportedDocumentenApiFeatures$ =\n new BehaviorSubject<SupportedDocumentenApiFeatures | null>(null);\n\n private readonly _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this._documentDefinitionName$.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._documentDefinitionName$.pipe(\n tap(() => this.fieldsLoading$.next(true)),\n switchMap(documentDefinitionName =>\n combineLatest([\n this.documentenApiColumnService.getConfiguredColumns(documentDefinitionName),\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 documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.documentDefinitionName),\n filter(documentDefinitionName => !!documentDefinitionName)\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 );\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 route: ActivatedRoute,\n private readonly router: Router,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly userProviderService: UserProviderService,\n private readonly iconService: IconService,\n private readonly documentenApiDocumentService: DocumentenApiDocumentService,\n private readonly documentenApiColumnService: DocumentenApiColumnService,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly permissionService: PermissionService\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 'dossier.documenten.noProcessLinked.adminRole';\n }\n\n return 'dossier.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.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n this.router.navigate([`/dossier-management/dossier/${documentDefinitionName}`]);\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.documentDefinitionName$,\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([`/dossiers/${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.documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.uploadProviderService.checkUploadProcessLink(documentDefinitionName)\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-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<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 [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" 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=\"dossier.documenten.deleteConfirmationModal.content\"\n confirmButtonType=\"danger\"\n titleTranslationKey=\"dossier.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]=\"'dossier.documenten.noZaakFound' | translate\"\n [title]=\"'dossier.documenten.noZaakFoundTitle' | translate\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n [description]=\"'dossier.documenten.noFiles' | translate\"\n [title]=\"'dossier.documenten.noFilesTitle' | translate\"\n ></valtimo-no-results>\n }\n</ng-template>\n\n<ng-template #overflowFilter>\n <valtimo-dossier-detail-tab-documenten-api-filter\n [prefillFilter]=\"filter$ | async\"\n (filterEvent)=\"onFilterEvent($event)\"\n ></valtimo-dossier-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 {{ 'dossier.documenten.navigateToCaseAdmin' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnInit} from '@angular/core';\nimport {ConfigService, UploadProvider, ValtimoConfig} from '@valtimo/config';\nimport {BehaviorSubject, combineLatest, map, Observable, switchMap, tap} from 'rxjs';\nimport {ParagraphModule} from '@valtimo/components';\nimport {ActivatedRoute} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {filter} from 'rxjs/operators';\nimport {DocumentenApiLinkProcessService, DocumentenApiVersionService} from '../../services';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ComboBoxModule, ListItem} from 'carbon-components-angular';\n\n@Component({\n selector: 'valtimo-dossier-management-link-process',\n templateUrl: './dossier-management-link-process.component.html',\n standalone: true,\n imports: [CommonModule, ParagraphModule, TranslateModule, ComboBoxModule],\n})\nexport class DossierManagementLinkProcessComponent implements OnInit {\n public readonly documentenApiUploadProviders$ = new BehaviorSubject<boolean>(false);\n\n private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.name),\n filter(name => !!name)\n );\n\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 public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\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 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.disabled$.next(true);\n this._documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiLinkProcessService.updateLinkedUploadProcess(\n documentDefinitionName,\n processDefinitionKey\n )\n )\n )\n .subscribe(processLink => {\n this.selectedProcessKey$.next(processLink.processDefinitionKey);\n this.disabled$.next(false);\n });\n } else if (!processDefinitionKey) {\n this._documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiLinkProcessService.deleteLinkedUploadProcess(documentDefinitionName)\n )\n )\n .subscribe(() => {\n this.selectedProcessKey$.next('');\n this.disabled$.next(false);\n });\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._documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiLinkProcessService.getLinkedUploadProcess(documentDefinitionName)\n )\n )\n .subscribe(linkedUploadProcess => {\n if (linkedUploadProcess) {\n this.selectedProcessKey$.next(linkedUploadProcess.processDefinitionKey);\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProviders$ | async\">\n <h2 class=\"mb-4\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n >\n <cds-combo-box\n [appendInline]=\"true\"\n (selected)=\"selectProcess($event)\"\n [disabled]=\"obs.disabled || !obs.processItems\"\n >\n <cds-dropdown-list [items]=\"obs.processItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </ng-container>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\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 documentDefinitionName!: 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\n .createTag(this.documentDefinitionName, this.value.value)\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.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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n [open]=\"open\"\n size=\"sm\"\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n Subject,\n switchMap,\n tap,\n} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {\n ActionItem,\n CarbonListComponent,\n CarbonListItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule, IconModule, TagModule} from 'carbon-components-angular';\nimport {DocumentenApiTagService} from '../../services/documenten-api-tag.service';\nimport {DocumentenApiTag} from '../../models/documenten-api-tag.model';\nimport {DocumentenApiTagModalComponent} from '../documenten-api-tag-modal/documenten-api-tag-modal.component';\nimport {Page} from '@valtimo/document';\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 private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.name),\n filter(docDefName => !!docDefName)\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 get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$;\n }\n\n public readonly documentTags$: Observable<DocumentenApiTag[]> = combineLatest([\n this._documentDefinitionName$,\n this.searchTerm$,\n this._reload$,\n ]).pipe(\n tap(([_1, _2, reload]) => {\n if (reload === null) {\n this.loading$.next(true);\n }\n }),\n switchMap(([documentDefinitionName, searchTerm]) =>\n this.documentenApiTagService.getTagsForAdmin(documentDefinitionName, {\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') {\n 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.documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiTagService.deleteTag(documentDefinitionName, tag.value)\n )\n )\n .subscribe(() => {\n this.reload();\n });\n }\n\n public confirmDeleteMultipleTag(tagsToDelete: {\n documentDefinitionName: string;\n tagIds: string[];\n itemsOnCurrentPage: number;\n }): void {\n this.documentenApiTagService\n .deleteTags(tagsToDelete.documentDefinitionName, 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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentTags: documentTags$ | async,\n addModalClosed: addModalClosed$ | async,\n documentDefinitionName: documentDefinitionName$ | 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 [documentDefinitionName]=\"obs.documentDefinitionName\"\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 documentDefinitionName: obs.documentDefinitionName,\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n 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';\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 documentDefinitionName!: 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 public readonly documentTypeItems$: Observable<Array<ListItem>> = combineLatest([\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n switchMap(([selectedItem]) =>\n combineLatest([\n this.documentService.getDocumentTypes(this.documentDefinitionName),\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 ) {}\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.documentDefinitionName, 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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {DocumentenApiColumnModalType, DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n Subject,\n switchMap,\n tap,\n} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {\n ActionItem,\n CarbonListComponent,\n CarbonListItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\nimport {\n DOCUMENTEN_API_UPLOAD_KEYS,\n DocumentenApiUploadField,\n} 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';\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 private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.name),\n filter(docDefName => !!docDefName)\n );\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 get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$;\n }\n\n public readonly documentUploadFields$: Observable<string[]> = combineLatest([\n this._documentDefinitionName$,\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(([documentDefinitionName]) =>\n this.documentenApiDocumentService.getUploadFields(documentDefinitionName)\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 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 ) {}\n\n public openEditModal(uploadField: DocumentenApiUploadField): void {\n this.prefill$.next(uploadField);\n this.uploadFieldModalType$.next('edit');\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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentUploadFields: documentUploadFields$ | async,\n uploadFieldModalType: uploadFieldModalType$ | async,\n documentDefinitionName: documentDefinitionName$ | 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 >\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 [documentDefinitionName]=\"obs.documentDefinitionName\"\n [type]=\"obs.uploadFieldModalType\"\n (closeModalEvent)=\"closeModal($event)\"\n ></valtimo-documenten-api-upload-field-modal>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {LoadingModule, NotificationModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, map, Observable, switchMap, tap} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {filter} from 'rxjs/operators';\n\nimport {DocumentenApiManagementVersion} from '../../models';\nimport {DocumentenApiVersionService} from '../../services';\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],\n})\nexport class DocumentenApiVersionComponent {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n public readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || ''),\n filter(documentDefinitionName => !!documentDefinitionName)\n );\n\n public readonly documentenApiVersion$: Observable<DocumentenApiManagementVersion> = combineLatest(\n [this.documentDefinitionName$, this.documentenApiVersionService.refresh$]\n ).pipe(\n tap(() => this.loading$.next(true)),\n switchMap(([documentDefinitionName]) =>\n this.documentenApiVersionService.getManagementApiVersion(documentDefinitionName)\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-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<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.documentenApi.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentenApiVersion: documentenApiVersion$ | async,\n } as obs\"\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</ng-container>\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './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-upload-process/dossier-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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport 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>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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, 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 {DocumentService} from '@valtimo/document';\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';\n\n@Component({\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 switchMap(documentDefinitionName =>\n this.documentService.getDocumentTypes(documentDefinitionName)\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 @Output() valueChange = new EventEmitter<Array<DocumentenApiFileReference>>();\n\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n readonly showModal = signal<boolean>(false);\n readonly uploadProcessLinked$: Observable<boolean | string> =\n this.modalService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.uploadProviderService.checkUploadProcessLink(documentDefinitionName)\n ),\n startWith('loading')\n );\n 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.documentDefinitionName$.pipe(\n switchMap(caseDefinitionName =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionName)\n )\n );\n\n public defaultValues: {} = {};\n public hideFields: Array<string> = [];\n\n private _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.openDocumentDefinitionSubscription();\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 fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal.set(true);\n }\n\n 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 closeMetadataModal(): void {\n this.showModal.set(false);\n }\n\n 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 => this.uploadProviderService.uploadTempFileWithMetadata(file, metadata)),\n tap(result => {\n this.domService.toggleSubmitButton(false);\n this.uploading$.next(false);\n this._value.push(result);\n this.valueChange.emit(this._value);\n })\n )\n .subscribe();\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?.documentDefinitionName || firstChildParams?.documentDefinitionName) as string\n ),\n filter(documentDefinitionName => !!documentDefinitionName)\n )\n .subscribe(documentDefinitionName =>\n this.modalService.setDocumentDefinitionName(documentDefinitionName)\n )\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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.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]=\"'dossier.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-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 {Injector} from '@angular/core';\nimport {\n createCustomFormioComponent,\n FormioCustomComponentInfo,\n registerCustomFormioComponentWithClass,\n} 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 const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);\n\n // override setValue function to allow for setting an array value\n class UploaderComponent extends originalUploadComponent {\n setValue(value): boolean {\n if (!this._customAngularElement) {\n return false;\n }\n\n this._customAngularElement.value = value;\n return true;\n }\n }\n\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponentWithClass(\n COMPONENT_OPTIONS,\n DocumentenApiUploaderComponent,\n UploaderComponent,\n injector\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-uploader-edit-form';\nexport * from './documenten-api-uploader.component';\nexport * from './documenten-api-uploader.formio';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-uploader';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './formio';\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 {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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, 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 TitleModule,\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-dossier-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 TitleModule,\n FormIoModule,\n TranslateModule,\n ],\n})\nexport class DossierDetailTabZaakobjectenComponent {\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: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n 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]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.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=\"dossier.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 <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\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 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-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 {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 TitleModule,\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, TitleModule, FormIoModule],\n})\nexport class DossierDetailTabObjectTypeComponent {\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: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n 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=\"dossier.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 'dossier.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 <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\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 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-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\nexport * from './zaakobjecten/zaakobjecten.component';\nexport * from './object-type/object-type.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './models';\nexport * from './services';\nexport * from './components';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Contactmoment {\n registratiedatum?: string;\n kanaal?: string;\n tekst?: string;\n medewerkerIdentificatie?: MedewerkerIdentificatie;\n}\n\nexport interface MedewerkerIdentificatie {\n achternaam?: string;\n}\n\nexport interface CreateContactMomentRequest {\n kanaal: string;\n tekst: string;\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './contact-moment.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\nimport {Contactmoment, CreateContactMomentRequest} from '../models';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ContactMomentService {\n private valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n getContactMoments(): Observable<Contactmoment[]> {\n return this.http.get<Contactmoment[]>(`${this.valtimoEndpointUri}v1/contactmoment`);\n }\n\n saveContactMoment(contactMomentRequest: CreateContactMomentRequest): Observable<Contactmoment> {\n return this.http.post(`${this.valtimoEndpointUri}v1/contactmoment`, contactMomentRequest);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './contact-moment.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ContactMomentService} from '../../services';\nimport moment from 'moment';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {\n AlertService,\n ModalComponent,\n ModalModule,\n SpinnerModule,\n TimelineItem,\n TimelineItemImpl,\n TimelineModule,\n} from '@valtimo/components';\nimport {map, switchMap, take} from 'rxjs/operators';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-contact-moments',\n templateUrl: './contact-moments.component.html',\n styleUrls: ['./contact-moments.component.scss'],\n standalone: true,\n imports: [CommonModule, ModalModule, TranslateModule, FormsModule, SpinnerModule, TimelineModule],\n})\nexport class DossierDetailTabContactMomentsComponent {\n @ViewChild('contactMomentsNoteModal') modal: ModalComponent;\n\n readonly refetchContactMoments$ = new BehaviorSubject('');\n readonly contactMoments$: Observable<Array<TimelineItem>> = this.refetchContactMoments$.pipe(\n switchMap(() => this.contactMomentService.getContactMoments()),\n map(contactMoments =>\n contactMoments.map(contactMoment => {\n const registratieDatum = moment(contactMoment.registratiedatum);\n return new TimelineItemImpl(\n registratieDatum.format('DD MMM YYYY'),\n registratieDatum.format('HH:mm'),\n contactMoment.medewerkerIdentificatie.achternaam,\n contactMoment.kanaal,\n contactMoment.tekst,\n null\n );\n })\n )\n );\n\n readonly text$ = new BehaviorSubject<string>('');\n readonly channel$ = new BehaviorSubject<string>('MAIL');\n readonly requestData$: Observable<Array<string>> = combineLatest([this.text$, this.channel$]);\n readonly valid$: Observable<boolean> = this.requestData$.pipe(\n map(([text, channel]) => !!(text && channel))\n );\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly contactMomentService: ContactMomentService,\n private readonly alertService: AlertService,\n private readonly translateService: TranslateService\n ) {}\n\n textChange(text: string): void {\n this.text$.next(text);\n }\n\n buttonClick(): void {\n this.modal.show();\n }\n\n saveNote(): void {\n this.disable();\n\n this.requestData$.pipe(take(1)).subscribe(([text, channel]) => {\n this.contactMomentService.saveContactMoment({kanaal: channel, tekst: text}).subscribe(\n () => {\n this.alertService.success(\n this.translateService.instant('dossier.contactMoments.saveSuccess')\n );\n this.enable();\n this.clear();\n this.modal.hide();\n this.refetchContactMoments();\n },\n () => {\n this.enable();\n }\n );\n });\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private clear(): void {\n this.text$.next('');\n }\n\n private refetchContactMoments(): void {\n this.refetchContactMoments$.next('');\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './contact-moments/contact-moments.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './models';\nexport * from './components';\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 {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\nimport {Customer, CustomerCase, CustomerSearchRequest} from '../models';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerService {\n private valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n getCustomers(request: CustomerSearchRequest): Observable<Array<Customer>> {\n return this.http.post<Array<Customer>>(\n `${this.valtimoEndpointUri}v1/haalcentraal/personen`,\n request\n );\n }\n\n getCustomerCases(bsn: string): Observable<Array<CustomerCase>> {\n return this.http.get<Array<CustomerCase>>(`${this.valtimoEndpointUri}v1/zaken/${bsn}`);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './customer.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface Customer {\n burgerservicenummer: string;\n geboorteDatum: string;\n geslachtsnaam: string;\n voorletters: string;\n voornamen: string;\n}\n\ninterface MappedCustomer {\n citizenServiceNumber: string;\n name: string;\n dateOfBirth: string;\n}\n\ninterface CustomerBsnSearchRequest {\n bsn: string;\n}\n\ninterface CustomerDataSearchRequest {\n geslachtsnaam: string;\n geboortedatum: string;\n}\n\ntype CustomerSearchRequest = CustomerBsnSearchRequest | CustomerDataSearchRequest;\n\nexport {\n CustomerBsnSearchRequest,\n CustomerDataSearchRequest,\n CustomerSearchRequest,\n Customer,\n MappedCustomer,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface CustomerCase {\n zaakNummer: string;\n zaakStatus: string;\n zaakType: string;\n zaakId: string;\n}\n\nexport {CustomerCase};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './customer';\nexport * from './case';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {CustomerService} from '../../services/customer.service';\nimport {BehaviorSubject, combineLatest, Observable, of} from 'rxjs';\nimport {catchError, debounceTime, map, switchMap, tap} from 'rxjs/operators';\nimport {TranslateService} from '@ngx-translate/core';\nimport {\n Customer,\n CustomerBsnSearchRequest,\n CustomerDataSearchRequest,\n CustomerSearchRequest,\n MappedCustomer,\n} from '../../models';\nimport {ConfigService} from '@valtimo/config';\nimport {Router} from '@angular/router';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@Component({\n selector: 'valtimo-customer-list',\n templateUrl: './customer-list.component.html',\n styleUrls: ['./customer-list.component.scss'],\n})\nexport class CustomerListComponent {\n fields$: Observable<Array<{key: string; label: string}>> = combineLatest([\n this.translateService.stream('customers.name'),\n this.translateService.stream('customers.citizenServiceNumber'),\n this.translateService.stream('customers.dateOfBirth'),\n ]).pipe(\n map(([nameLabel, numberLabel, dateOfBirthLabel]) => [\n {\n label: numberLabel,\n key: 'citizenServiceNumber',\n },\n {\n label: nameLabel,\n key: 'name',\n },\n {\n label: dateOfBirthLabel,\n key: 'dateOfBirth',\n },\n ])\n );\n\n readonly bsn$ = new BehaviorSubject<string>('');\n readonly bsnValid$: Observable<boolean> = this.bsn$.pipe(\n map(bsn => {\n const regex = new RegExp(/^[0-9]{9}$/gm);\n return regex.test(bsn);\n })\n );\n readonly dateOfBirth$ = new BehaviorSubject<string>('');\n readonly dateOfBirthValid$: Observable<boolean> = this.dateOfBirth$.pipe(\n map(dateOfBirth => {\n const regex = new RegExp(/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/gm);\n return regex.test(dateOfBirth);\n })\n );\n readonly familyName$ = new BehaviorSubject<string>('');\n\n private readonly searchParameters$: Observable<CustomerSearchRequest | undefined> = combineLatest(\n [this.bsn$, this.dateOfBirth$, this.familyName$, this.bsnValid$, this.dateOfBirthValid$]\n ).pipe(\n map(([bsn, dateOfBirth, familyName, bsnValid, dateOfBirthValid]) => {\n if (bsn && bsnValid) {\n this.loading$.next(true);\n\n return {bsn};\n } else if (dateOfBirth && familyName && dateOfBirthValid) {\n this.loading$.next(true);\n\n return {\n geslachtsnaam: familyName,\n geboortedatum: dateOfBirth,\n };\n }\n\n return undefined;\n })\n );\n\n customers$: Observable<Array<MappedCustomer>> = this.searchParameters$.pipe(\n debounceTime(500),\n switchMap(searchParameters => {\n if (\n (searchParameters as CustomerBsnSearchRequest)?.bsn ||\n ((searchParameters as CustomerDataSearchRequest)?.geslachtsnaam &&\n (searchParameters as CustomerDataSearchRequest)?.geboortedatum)\n ) {\n return this.customerService\n .getCustomers(searchParameters as CustomerSearchRequest)\n .pipe(catchError(() => of([])));\n }\n\n return of([]);\n }),\n map(customers =>\n (customers as Array<Customer>).map(customer => ({\n citizenServiceNumber: customer.burgerservicenummer,\n dateOfBirth: customer.geboorteDatum,\n name: `${customer.geslachtsnaam}, ${customer.voornamen} ${customer.voorletters}`,\n }))\n ),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n constructor(\n private readonly customerService: CustomerService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly router: Router\n ) {}\n\n bsnChange(bsn: string): void {\n this.clearDateOfBirth();\n this.clearFamilyName();\n this.bsn$.next(bsn);\n }\n\n dateOfBirthChange(dateOfBirth: string): void {\n this.clearBsn();\n this.dateOfBirth$.next(dateOfBirth);\n }\n\n familyNameChange(familyName: string): void {\n this.clearBsn();\n this.familyName$.next(familyName);\n }\n\n public rowClick(customer: MappedCustomer) {\n const config = this.configService.config;\n const bsn = customer?.citizenServiceNumber;\n\n if (bsn && config?.featureToggles?.enableHackathonCasesPage) {\n this.router.navigate([`/klanten/klant/${bsn}`]);\n }\n }\n\n private clearBsn(): void {\n this.bsn$.next('');\n }\n\n private clearDateOfBirth(): void {\n this.dateOfBirth$.next('');\n }\n\n private clearFamilyName(): void {\n this.familyName$.next('');\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngTemplateOutlet=\"sidebar\"></ng-container>\n\n<div\n class=\"main-content pt-0\"\n *ngIf=\"{customers: customers$ | async, fields: fields$ | async} as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"(loading$ | async) === false; else loading\">\n <ng-container\n *ngTemplateOutlet=\"list; context: {customers: obs.customers, fields: obs.fields}\"\n ></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #list let-customers=\"customers\" let-fields=\"fields\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"customers\"\n [fields]=\"fields\"\n [header]=\"true\"\n (rowClicked)=\"rowClick($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'customers.title' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'customers.subtitle' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar>\n <h4 class=\"title\">{{ 'customers.searchBasedOn' | translate }}</h4>\n <div class=\"tab-container\">\n <ul class=\"nav nav-tabs nav-tabs-classic\" role=\"tablist\">\n <li class=\"nav-item\">\n <a\n class=\"nav-link active\"\n href=\"#search_bsn\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"true\"\n ><b>{{ 'customers.citizenServiceNumber' | translate }}</b></a\n >\n </li>\n <li class=\"nav-item\">\n <a\n class=\"nav-link\"\n href=\"#search_birth_data\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"false\"\n ><b>{{ 'customers.lastNameAndDateOfBirth' | translate }}</b></a\n >\n </li>\n </ul>\n <div class=\"tab-content\">\n <div class=\"tab-pane active\" id=\"search_bsn\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"bsnTab\"></ng-container>\n </div>\n <div class=\"tab-pane\" id=\"search_birth_data\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"birthDataTab\"></ng-container>\n </div>\n </div>\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n\n<ng-template #bsnTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputBsn\">{{ 'customers.citizenServiceNumber' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputBsn\"\n type=\"text\"\n name=\"bsn\"\n [placeholder]=\"'customers.citizenServiceNumberPlaceholder' | translate\"\n [ngModel]=\"bsn$ | async\"\n (ngModelChange)=\"bsnChange($event)\"\n [ngClass]=\"{'is-valid': bsnValid$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n\n<ng-template #birthDataTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputDateOfBirth\">{{ 'customers.dateOfBirth' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputDateOfBirth\"\n type=\"text\"\n name=\"dateOfBirth\"\n [placeholder]=\"'customers.dateOfBirthPlaceholder' | translate\"\n [ngModel]=\"dateOfBirth$ | async\"\n (ngModelChange)=\"dateOfBirthChange($event)\"\n [ngClass]=\"{'is-valid': dateOfBirthValid$ | async}\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"inputFamilyName\">{{ 'customers.familyName' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputFamilyName\"\n type=\"text\"\n name=\"familyName\"\n [placeholder]=\"'customers.familyNamePlaceholder' | translate\"\n [ngModel]=\"familyName$ | async\"\n (ngModelChange)=\"familyNameChange($event)\"\n [ngClass]=\"{'is-valid': familyName$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {BehaviorSubject, Observable, of} from 'rxjs';\nimport {switchMap, tap} from 'rxjs/operators';\nimport {CustomerCase} from '../../models';\nimport {CustomerService} from '../../services/customer.service';\nimport {TableColumn} from '@valtimo/components';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@Component({\n selector: 'valtimo-cases-list',\n templateUrl: './cases-list.component.html',\n styleUrls: ['./cases-list.component.scss'],\n})\nexport class CasesListComponent {\n readonly customerCases$: Observable<Array<CustomerCase>> = this.route.params.pipe(\n switchMap(params => (params?.bsn ? this.customerService.getCustomerCases(params.bsn) : of([]))),\n tap(() => this.loading$.next(false))\n );\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'customerCases.labels.zaakNummer',\n dataKey: 'zaakNummer',\n },\n {\n labelTranslationKey: 'customerCases.labels.zaakStatus',\n dataKey: 'zaakStatus',\n },\n {\n labelTranslationKey: 'customerCases.labels.zaakType',\n dataKey: 'zaakType',\n },\n ]);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly customerService: CustomerService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-page-container\n *ngIf=\"{\n customerCases: customerCases$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.customercases.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.customercases.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.customerCases\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"false\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'customerCases.tableItemsText'\"\n [showPagination]=\"false\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_USER} from '@valtimo/config';\nimport {CustomerListComponent} from './components/customer-list/customer-list.component';\nimport {CasesListComponent} from './components/cases-list/cases-list.component';\n\nconst routes: Routes = [\n {\n path: 'klanten',\n component: CustomerListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Customers', roles: [ROLE_USER]},\n },\n {\n path: 'klanten/klant/:bsn',\n component: CasesListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'customerCases', roles: [ROLE_USER]},\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class CustomerRoutingModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CustomerListComponent} from './components/customer-list/customer-list.component';\nimport {\n WidgetModule,\n ListModule,\n SpinnerModule,\n FilterSidebarModule,\n PageModule,\n ParagraphModule,\n TableModule,\n TitleModule,\n} from '@valtimo/components';\nimport {CustomerRoutingModule} from './customer-routing.module';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {FormsModule} from '@angular/forms';\nimport {CasesListComponent} from './components/cases-list/cases-list.component';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@NgModule({\n imports: [\n CommonModule,\n WidgetModule,\n CustomerRoutingModule,\n ListModule,\n SpinnerModule,\n TranslateModule,\n FilterSidebarModule,\n FormsModule,\n PageModule,\n TitleModule,\n ParagraphModule,\n TableModule,\n ],\n declarations: [CustomerListComponent, CasesListComponent],\n exports: [CustomerListComponent, CasesListComponent],\n})\nexport class CustomerModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './services';\nexport * from './models';\nexport * from './customer.module';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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 getDocumentDefinition(documentDefinitionName: string): Observable<DocumentDefinition> {\n return this.httpClient.get<DocumentDefinition>(\n this.getApiUrl(`/v1/document-definition/${documentDefinitionName}`)\n );\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 documentDefinitionName: string,\n documentDefinitionVersion: number\n ): Observable<DocumentObjectenApiSync> {\n return this.httpClient.get<DocumentObjectenApiSync>(\n this.getApiUrl(\n `/management/v1/document-definition/${documentDefinitionName}/version/${documentDefinitionVersion}/objecten-api-sync`\n )\n );\n }\n\n public updateDocumentObjectenApiSync(\n documentDefinitionName: string,\n documentDefinitionVersion: number,\n request: {\n objectManagementConfigurationId: string;\n enabled: boolean;\n }\n ): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(\n `/management/v1/document-definition/${documentDefinitionName}/version/${documentDefinitionVersion}/objecten-api-sync`\n ),\n request\n );\n }\n\n public deleteDocumentObjectenApiSync(\n documentDefinitionName: string,\n documentDefinitionVersion: number\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/management/v1/document-definition/${documentDefinitionName}/version/${documentDefinitionVersion}/objecten-api-sync`\n )\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, 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 {\n CdsThemeService,\n FormModule,\n InputModule,\n SelectItem,\n SelectModule,\n SpinnerModule,\n ValtimoCdsModalDirectiveModule,\n} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {BehaviorSubject, map, Observable, switchMap, tap} from 'rxjs';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule, CheckboxModule, ModalModule} from 'carbon-components-angular';\nimport {DocumentObjectenApiSyncService} from '../../services';\nimport {DocumentObjectenApiSync} from '../../models';\nimport {DocumentDefinition} from '@valtimo/document';\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 CommonModule,\n FormsModule,\n TranslateModule,\n SpinnerModule,\n FormModule,\n InputModule,\n SelectModule,\n ValtimoCdsModalDirectiveModule,\n CheckboxModule,\n ReactiveFormsModule,\n ButtonModule,\n ModalModule,\n ],\n})\nexport class DocumentObjectenApiSyncComponent implements OnInit {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n private readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || '')\n );\n private readonly documentDefinition$: Observable<DocumentDefinition> =\n this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentObjectenApiSyncService.getDocumentDefinition(documentDefinitionName)\n )\n );\n public readonly documentObjectenApiSync$ = new BehaviorSubject<DocumentObjectenApiSync>(null);\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 private 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> {\n return this.formGroup.get('objectManagementConfigurationId');\n }\n\n public get enabled(): AbstractControl<boolean> {\n return this.formGroup.get('enabled');\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 cdsThemeService: CdsThemeService\n ) {}\n\n public ngOnInit(): void {\n this.loadDocumentenObjectenApiSync();\n }\n\n public loadDocumentenObjectenApiSync(): void {\n this.documentDefinition$\n .pipe(\n switchMap(documentDefinition =>\n this.documentObjectenApiSyncService.getDocumentObjectenApiSync(\n documentDefinition.id.name,\n documentDefinition.id.version\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.name,\n documentDefinition.id.version\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.name,\n documentDefinition.id.version,\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 (!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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'zaakdetails.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentObjectenApiSync: documentObjectenApiSync$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.documentObjectenApiSync; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"remove()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.enabled' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.documentObjectenApiSync?.enabled\n ? ('zaakdetails.yes' | translate)\n : ('zaakdetails.no' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.objectManagementConfigurationTitle' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'zaakdetails.submitButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <cds-modal\n valtimoCdsModal\n [title]=\"'zaakdetails.editModal.title' | translate\"\n [open]=\"modalShowing$ | async\"\n [showFooter]=\"true\"\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>\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 <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </cds-modal-footer>\n </cds-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\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</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'zaakdetails.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync/document-objecten-api-sync.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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 {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit, ViewChild} from '@angular/core';\nimport {\n CreateInformatieObjectTypeLinkRequest,\n CreateZaakTypeLinkRequest,\n InformatieObjectType,\n OpenZaakService,\n ZaakType,\n ZaakTypeLink,\n} from '@valtimo/resource';\nimport {FormsModule} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {AlertService, ModalComponent, ModalModule} from '@valtimo/components';\nimport {ToastrService} from 'ngx-toastr';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {BehaviorSubject, map, Observable} from 'rxjs';\nimport {ConfigService, UploadProvider} from '@valtimo/config';\nimport {PluginConfiguration} from '@valtimo/plugin';\nimport {CommonModule} from '@angular/common';\nimport {NotificationModule} from 'carbon-components-angular';\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: [CommonModule, FormsModule, ModalModule, NotificationModule, TranslateModule],\n})\nexport class ZakenApiZaaktypeLinkComponent implements OnInit {\n public zaakTypes: ZaakType[];\n public pluginConfigurations: PluginConfiguration[];\n public zaakTypeLinkRequest: CreateZaakTypeLinkRequest;\n public informatieObjectTypeSelectionEnabled: boolean;\n public informatieObjectTypes: InformatieObjectType[];\n public selectedZaakType: ZaakType = null;\n public selectedPluginConfiguration: PluginConfiguration = null;\n public selectedInformatieObjectTypeUrl: string = null;\n private readonly documentDefinitionName: string;\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly zaakTypeLink$ = new BehaviorSubject<ZaakTypeLink>(null);\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || '')\n );\n\n @ViewChild('openZaakTypeLinkModal') modal: ModalComponent;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly openZaakService: OpenZaakService,\n private readonly alertService: AlertService,\n private readonly toasterService: ToastrService,\n private readonly translateService: TranslateService,\n private readonly zakenApiZaaktypeLinkService: ZakenApiZaaktypeLinkService,\n private readonly configService: ConfigService\n ) {\n this.documentDefinitionName = this.route.snapshot.paramMap.get('name');\n this.informatieObjectTypeSelectionEnabled =\n this.configService.config.uploadProvider === UploadProvider.OPEN_ZAAK;\n }\n\n public ngOnInit(): void {\n this.zaakTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\n createWithDossier: false,\n };\n this.openZaakService.getZaakTypeLink(this.documentDefinitionName).subscribe(zaakTypeLink => {\n if (zaakTypeLink !== null) {\n this.zaakTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\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 });\n this.loading$.next(false);\n }\n\n private findZaakType(zaakTypeUrl: string) {\n this.selectedZaakType = this.zaakTypes.find(zaakType => zaakType.url === zaakTypeUrl);\n }\n\n private findPluginConfiguration(pluginConfigurationId: string) {\n this.selectedPluginConfiguration = this.pluginConfigurations.find(\n pluginConfiguration => pluginConfiguration.id === pluginConfigurationId\n );\n }\n\n loadZaakTypes() {\n return 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 loadZakenApiPluginConfigurations() {\n return this.zakenApiZaaktypeLinkService\n .getPluginConfigurationsByPluginDefinitionKey('zakenapi')\n .subscribe((plugins: PluginConfiguration[]) => {\n this.pluginConfigurations = plugins;\n this.findPluginConfiguration(this.zaakTypeLink$.getValue()?.zakenApiPluginConfigurationId);\n });\n }\n\n loadInformatieObjectTypeUrls() {\n this.openZaakService\n .getInformatieObjectTypes()\n .subscribe((informatieObjectTypes: InformatieObjectType[]) => {\n this.informatieObjectTypes = informatieObjectTypes;\n });\n }\n\n openModal(zaakTypeLink: ZaakTypeLink) {\n this.zaakTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\n createWithDossier: zaakTypeLink?.createWithDossier,\n rsin: zaakTypeLink?.rsin,\n zakenApiPluginConfigurationId: zaakTypeLink?.zakenApiPluginConfigurationId,\n zaakTypeUrl: zaakTypeLink?.zaakTypeUrl,\n };\n if (this.informatieObjectTypeSelectionEnabled) {\n this.openZaakService.getOpenZaakConfig().subscribe(config => {\n if (config === null) {\n this.alertService.error(this.translateService.instant('openZaak.error.configNotFound'));\n } else {\n this.loadInformatieObjectTypeUrls();\n this.openZaakService\n .getInformatieObjectTypeLink(this.documentDefinitionName)\n .subscribe(informatieObjectTypeLink => {\n if (informatieObjectTypeLink !== null) {\n this.selectedInformatieObjectTypeUrl =\n informatieObjectTypeLink.informatieObjectType;\n }\n });\n }\n this.modal.show();\n });\n } else {\n this.modal.show();\n }\n }\n\n removeZaakTypeLink() {\n this.openZaakService.deleteZaakTypeLink(this.documentDefinitionName).subscribe(\n () => {\n if (this.selectedInformatieObjectTypeUrl !== null) {\n this.openZaakService.deleteInformatieObjectTypeLink(this.documentDefinitionName);\n }\n this.toasterService.success('Successfully de-linked zaaktype');\n this.zaakTypeLink$.next(null);\n },\n () => {\n this.toasterService.error('Failed to de-link zaaktype');\n }\n );\n }\n\n submit() {\n const requestInformatieObjectTypeLink: CreateInformatieObjectTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\n zaakType: this.zaakTypeLinkRequest.zaakTypeUrl,\n informatieObjectType: this.selectedInformatieObjectTypeUrl,\n };\n this.openZaakService.createZaakTypeLink(this.zaakTypeLinkRequest).subscribe(\n linkResult => {\n this.zaakTypeLink$.next(linkResult);\n this.zaakTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\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 if (requestInformatieObjectTypeLink.informatieObjectType !== null) {\n this.openZaakService\n .createInformatieObjectTypeLink(requestInformatieObjectTypeLink)\n .subscribe(() => {\n this.toasterService.success('Successfully linked object informatie type to dossier');\n });\n }\n this.toasterService.success('Successfully linked zaaktype to dossier');\n },\n err => {\n this.toasterService.error('Failed to link zaaktype to dossier');\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.links' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n zaakTypeLink: zaakTypeLink$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.zaakTypeLink; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ this.selectedZaakType?.omschrijving || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"openModal(obs.zaakTypeLink)\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"removeZaakTypeLink()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.autoCreateForCase' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.zaakTypeLink?.createWithDossier\n ? ('viewTypeConverter.Yes' | translate)\n : ('viewTypeConverter.No' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.zakenApiPlugin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ this.selectedPluginConfiguration?.title || '-' }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.rsin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.zaakTypeLink?.rsin || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"openModal(null)\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'openZaak.linkZaakType' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-modal\n #openZaakTypeLinkModal\n elementId=\"openZaakTypeLinkModal\"\n [title]=\"'Zaak types'\"\n subtitle=\"Connect Zaak type to Dossier\"\n showFooter=\"true\"\n>\n <div body>\n <p>{{ 'openZaak.selectZaakTypeForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"this.zaakTypeLinkRequest.zaakTypeUrl\">\n <option [ngValue]=\"null\">{{ 'openZaak.selectZaakType' | translate }}</option>\n <option *ngFor=\"let zaakType of zaakTypes\" [ngValue]=\"zaakType.url\">\n {{ zaakType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.selectZakenApiPluginForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select\n class=\"form-control\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.zakenApiPluginConfigurationId\"\n >\n <option [ngValue]=\"null\">{{ 'openZaak.selectZakenApiPlugin' | translate }}</option>\n <option\n *ngFor=\"let pluginConfiguration of pluginConfigurations\"\n [ngValue]=\"pluginConfiguration.id\"\n >\n {{ pluginConfiguration?.title || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.rsin' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <input\n type=\"text\"\n id=\"name\"\n class=\"form-control\"\n placeholder=\"RSIN\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.rsin\"\n />\n </div>\n\n <div class=\"setting-row\">\n <p>{{ 'openZaak.autoCreateForCase' | translate }}</p>\n <div class=\"controls\">\n <div class=\"switch-button switch-button-success\">\n <input\n type=\"checkbox\"\n [checked]=\"this.zaakTypeLinkRequest.createWithDossier\"\n name=\"createWithDossier\"\n id=\"createWithDossier\"\n (change)=\"\n this.zaakTypeLinkRequest.createWithDossier =\n !this.zaakTypeLinkRequest.createWithDossier\n \"\n />\n <span><label for=\"createWithDossier\"></label></span>\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"informatieObjectTypeSelectionEnabled && selectedZaakType\"\n class=\"input-group mb-3 align-items-center\"\n >\n <select class=\"form-control\" [(ngModel)]=\"selectedInformatieObjectTypeUrl\">\n <option [ngValue]=\"null\" selected>{{ 'openZaak.selectInfoObjectType' | translate }}</option>\n <option\n *ngFor=\"let informatieObjectType of informatieObjectTypes\"\n [ngValue]=\"informatieObjectType.url\"\n >\n {{ informatieObjectType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!this.zaakTypeLinkRequest.zaakTypeUrl\"\n >\n <i class=\"icon mdi mdi-save\"></i>\n {{ 'openZaak.save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'openZaak.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link/zaken-api-zaaktype-link.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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\nexport * from './documenten-api';\nexport * from './objecten-api';\nexport * from './contactmomenten';\nexport * from './haalcentraal-brp';\nexport * from './zaakdetails';\nexport * from './zaken-api';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, distinctUntilChanged, Observable} from 'rxjs';\nimport {ZgwTabEnum} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DossierManagementZgwService {\n public configuredTabKeys: string[];\n\n private readonly _DEFAULT_TAB: ZgwTabEnum = ZgwTabEnum.DOCUMENTEN_API_COLUMNS;\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-management-zgw.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {TabsModule} from 'carbon-components-angular';\nimport {DossierManagementZgwService} from '../../services';\nimport {ZgwTab, ZgwTabEnum} from '../../models';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CommonModule} from '@angular/common';\nimport {\n DocumentenApiColumnsComponent,\n DocumentenApiTagsComponent,\n DocumentenApiUploadFieldsComponent,\n DocumentenApiVersionService,\n SupportedDocumentenApiFeatures,\n} from '../../modules';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, switchMap, tap} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\n\n@Component({\n templateUrl: './dossier-management-zgw.component.html',\n styleUrls: ['./dossier-management-zgw.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, TabsModule, TranslateModule],\n})\nexport class DossierManagementZgwComponent 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 _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this.route.params.pipe(\n map(params => params?.name),\n filter(caseDefinitionName => !!caseDefinitionName),\n switchMap(caseDefinitionName =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionName)\n )\n );\n\n public readonly zgwTabs$: Observable<ZgwTab[]> = combineLatest([\n this._viewInitialized$,\n this.dossierManagementZgwService.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: '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 this._zgwTabContent.clear();\n this._zgwTabContent.createComponent(activeTab.component);\n this.cdr.detectChanges();\n })\n );\n\n constructor(\n private readonly dossierManagementZgwService: DossierManagementZgwService,\n private readonly cdr: ChangeDetectorRef,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngAfterViewInit(): void {\n this._viewInitialized$.next(true);\n }\n\n public ngOnDestroy(): void {\n this.dossierManagementZgwService.resetToDefaultTab();\n }\n\n public displayTab(tab: ZgwTabEnum): void {\n this.dossierManagementZgwService.currentTab = tab;\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tabs class=\"dossier-management-tabs\">\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<div class=\"dossier-management-zgw__content\">\n <ng-template #zgwTabContent></ng-template>\n</div>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-management-zgw/dossier-management-zgw.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\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_MANAGEMENT_TAB_TOKEN,\n ZGW_CASE_CONFIGURATION_EXTENSIONS_TOKEN,\n ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN,\n ZGW_OBJECT_TYPE_COMPONENT_TOKEN,\n} from '@valtimo/config';\nimport {DocumentModule} from '@valtimo/document';\nimport {ResourceModule} from '@valtimo/resource';\nimport {DossierManagementZgwComponent} from './components';\nimport {\n CustomerModule,\n DocumentenApiMetadataModalComponent,\n DocumentenApiUploaderComponent,\n DocumentenApiVersionComponent,\n DossierDetailTabDocumentenApiDocumentsComponent,\n DossierDetailTabObjectTypeComponent,\n DossierManagementLinkProcessComponent,\n DocumentObjectenApiSyncComponent,\n ZakenApiZaaktypeLinkComponent,\n} from './modules';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n DropzoneModule,\n TranslateModule,\n DocumentModule,\n FileSizeModule,\n ResourceModule,\n RouterModule,\n DocumentenApiMetadataModalComponent,\n CustomerModule,\n ],\n declarations: [DocumentenApiUploaderComponent],\n exports: [DocumentenApiUploaderComponent],\n providers: [\n {\n provide: CASE_MANAGEMENT_TAB_TOKEN,\n useValue: {\n translationKey: 'dossierManagement.tabs.zgw',\n component: DossierManagementZgwComponent,\n },\n multi: true,\n },\n {\n provide: ZGW_OBJECT_TYPE_COMPONENT_TOKEN,\n useValue: DossierDetailTabObjectTypeComponent,\n },\n {\n provide: ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN,\n useValue: DossierDetailTabDocumentenApiDocumentsComponent,\n },\n {\n provide: ZGW_CASE_CONFIGURATION_EXTENSIONS_TOKEN,\n useValue: [\n DossierManagementLinkProcessComponent,\n DocumentenApiVersionComponent,\n DocumentObjectenApiSyncComponent,\n ZakenApiZaaktypeLinkComponent,\n ],\n },\n ],\n})\nexport class ZgwModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of 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// haalcentraal-brp\nexport * from './lib/modules/haalcentraal-brp/components/cases-list/cases-list.component';\nexport * from './lib/modules/haalcentraal-brp/components/customer-list/customer-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3.DocumentenApiColumnService","i5","i2.DocumentenApiColumnService","i3","i4","i6.DocumentenApiTagService","i7","tap","i3.DocumentenApiTagService","i6","i8.DocumentenApiVersionService","i9","CarbonInputModule","InputModule","map","filter","switchMap","take","i7.DocumentenApiDocumentService","i8.DocumentenApiColumnService","i10","i11","i3.DocumentenApiLinkProcessService","i3.DocumentenApiVersionService","i2.DocumentenApiTagService","i2.DocumentenApiDocumentService","i2.DocumentenApiVersionService","i5.DocumentenApiVersionService","i8","i9.DocumentenApiMetadataModalComponent","i2.ZaakobjectenService","i1.ContactMomentService","ModalModule","debounceTime","i1.CustomerService","i2.CustomerService","i2.DocumentObjectenApiSyncService","i6.ZakenApiZaaktypeLinkService","i1.DossierManagementZgwService"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-zgw.mjs","sources":["../../../../projects/valtimo/zgw/src/lib/models/dossier-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-upload-process/dossier-management-link-process.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/documenten-api/components/documenten-api-link-upload-process/dossier-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/contactmomenten/models/contact-moment.model.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/services/contact-moment.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/components/contact-moments/contact-moments.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/components/contact-moments/contact-moments.component.html","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/components/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/contactmomenten/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/services/customer.service.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/services/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/models/customer.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/models/case.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/models/index.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/components/customer-list/customer-list.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/components/customer-list/customer-list.component.html","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/components/cases-list/cases-list.component.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/components/cases-list/cases-list.component.html","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/customer-routing.module.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/customer.module.ts","../../../../projects/valtimo/zgw/src/lib/modules/haalcentraal-brp/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/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/services/dossier-management-zgw.service.ts","../../../../projects/valtimo/zgw/src/lib/services/index.ts","../../../../projects/valtimo/zgw/src/lib/components/dossier-management-zgw/dossier-management-zgw.component.ts","../../../../projects/valtimo/zgw/src/lib/components/dossier-management-zgw/dossier-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-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 {Type} from '@angular/core';\n\nenum ZgwTabEnum {\n DOCUMENTEN_API_COLUMNS = 'documentenApiColumns',\n DOCUMENTEN_API_TAGS = 'documentenApiTags',\n DOCUMENTEN_API_UPLOAD_FIELDS = 'documentenApiUploadFields',\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-management-zgw.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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(caseDefinitionName: string): Observable<ConfiguredColumn[]> {\n return this.http.get<ConfiguredColumn[]>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/config';\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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(documentDefinitionName: string): Observable<UploadProcessLink> {\n return this.httpClient.get<UploadProcessLink>(\n this.getApiUrl(`/v1/process-document/demo/${documentDefinitionName}/process`)\n );\n }\n\n public updateLinkedUploadProcess(\n documentDefinitionName: string,\n processDefinitionKey: string\n ): Observable<UploadProcessLink> {\n return this.httpClient.put<UploadProcessLink>(\n this.getApiUrl(`/v1/process-document/demo/${documentDefinitionName}/process`),\n {\n processDefinitionKey,\n linkType: 'DOCUMENT_UPLOAD',\n }\n );\n }\n\n public deleteLinkedUploadProcess(documentDefinitionName: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(`/v1/process-document/demo/${documentDefinitionName}/process`)\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService, Page} from '@valtimo/config';\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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 caseDefinitionName: string\n ): Observable<SupportedDocumentenApiFeatures> {\n return this.httpClient.get<SupportedDocumentenApiFeatures>(\n this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/documenten-api/version`)\n );\n }\n\n public refresh(): void {\n this._refresh$.next(null);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {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 {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';\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 private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.name),\n filter(docDefName => !!docDefName)\n );\n\n public get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$;\n }\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n public readonly configuredColumns$: Observable<ConfiguredColumn[]> = combineLatest([\n this._documentDefinitionName$,\n this._reload$,\n ]).pipe(\n tap(([_, reload]) => {\n if (reload === null) this.loading$.next(true);\n }),\n switchMap(([documentDefinitionName]) =>\n this.zgwDocumentColumnService.getAdminConfiguredColumns(documentDefinitionName)\n ),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n public readonly configurableColumns$: Observable<ConfiguredColumn[]> =\n this.documentDefinitionName$.pipe(\n switchMap((documentDefinitionName: string) =>\n combineLatest([\n this.zgwDocumentColumnService.getAdminConfigurableColumns(documentDefinitionName),\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 CARBON_THEME = 'g10';\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 ) {}\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.prefillColumn$.next(column);\n this.columnModalType$.next('edit');\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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n columnModalType: columnModalType$ | async,\n columnToUpdate: columnToUpdate$ | async,\n documentDefinitionName: documentDefinitionName$ | 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 [movingRowsEnabled]=\"true\"\n (itemsReordered)=\"onItemsReordered(obs.documentDefinitionName, $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.documentDefinitionName\"\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.documentDefinitionName)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"openAddModal()\">\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-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\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}\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-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 {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-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 {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-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\ntype DocumentenApiColumnModalType = 'edit' | 'add' | 'closed';\n\ntype DocumentenApiColumnModalTypeCloseEvent = 'close' | 'closeAndRefresh';\n\nexport {DocumentenApiColumnModalType, DocumentenApiColumnModalTypeCloseEvent};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface 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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface 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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport 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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './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","import {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';\n\n@Component({\n selector: 'valtimo-dossier-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 public readonly informationObjectTypes$: Observable<ListItem[]> = this.route.paramMap.pipe(\n filter((paramMap: ParamMap) => !!paramMap.get('documentDefinitionName')),\n switchMap((paramMap: ParamMap) =>\n combineLatest([\n this.documentService.getDocumentTypes(paramMap.get('documentDefinitionName') ?? ''),\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('documentDefinitionName')),\n switchMap((paramMap: ParamMap) =>\n combineLatest([\n this.documentenApiTagService.getTags(paramMap.get('documentDefinitionName') ?? ''),\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","<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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\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 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.documentDefinitionName$,\n this.tagFormControl.valueChanges.pipe(startWith(this.tagFormControl.value)),\n ]).pipe(\n filter(([documentDefinitionName]) => !!documentDefinitionName),\n switchMap(([documentDefinitionName, tagFormControlValue]) =>\n combineLatest([\n this.documentenApiTagService.getTags(documentDefinitionName),\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 documentTypeItems$: Observable<Array<ListItem>> = combineLatest([\n this.valtimoModalService.documentDefinitionName$,\n this.informatieobjecttypeFormControl.valueChanges.pipe(\n startWith(this.informatieobjecttypeFormControl.value)\n ),\n ]).pipe(\n switchMap(([documentDefinitionName, informatieobjecttypeValue]) =>\n combineLatest([\n this.documentService.getDocumentTypes(documentDefinitionName),\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.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiVersionService.getSupportedApiFeatures(documentDefinitionName)\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 ) {}\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 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 = 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?.documentDefinitionName || firstChildParams?.documentDefinitionName) as string\n ),\n filter(documentDefinitionName => !!documentDefinitionName)\n )\n .subscribe(documentDefinitionName =>\n this.valtimoModalService.setDocumentDefinitionName(documentDefinitionName)\n )\n );\n }\n\n private setAdditionalDate(value: AdditionalDocumentDate): void {\n this.additionalDocumentDate$.next(value);\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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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 >\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {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 {\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 {ConfigService, Direction} from '@valtimo/config';\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 {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} from 'rxjs/operators';\nimport {\n COLUMN_VIEW_TYPES,\n ConfiguredColumn,\n DOCUMENTEN_COLUMN_KEYS,\n DocumentenApiFilterModel,\n DocumentenApiRelatedFile,\n SupportedDocumentenApiFeatures,\n} from '../../models';\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';\nimport {\n DocumentenApiUploadFieldDefaultValues,\n DocumentenApiUploadFields,\n} from '../../models/documenten-api-upload-field.model';\nimport {PermissionRequest, PermissionService} from '@valtimo/access-control';\n\n@Component({\n selector: 'valtimo-dossier-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 DossierDetailTabDocumentenApiDocumentsComponent implements OnInit, OnDestroy {\n @ViewChild('fileInput') fileInput: ElementRef;\n @ViewChild('translationTemplate') translationTemplate: TemplateRef<any>;\n\n private readonly _documentDefinitionName$ = this.route.params.pipe(\n map(params => params?.documentDefinitionName),\n filter(caseDefinitionName => !!caseDefinitionName)\n );\n\n public readonly supportedDocumentenApiFeatures$ =\n new BehaviorSubject<SupportedDocumentenApiFeatures | null>(null);\n\n private readonly _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this._documentDefinitionName$.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._documentDefinitionName$.pipe(\n tap(() => this.fieldsLoading$.next(true)),\n switchMap(documentDefinitionName =>\n combineLatest([\n this.documentenApiColumnService.getConfiguredColumns(documentDefinitionName),\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 documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.documentDefinitionName),\n filter(documentDefinitionName => !!documentDefinitionName)\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 );\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 route: ActivatedRoute,\n private readonly router: Router,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly userProviderService: UserProviderService,\n private readonly iconService: IconService,\n private readonly documentenApiDocumentService: DocumentenApiDocumentService,\n private readonly documentenApiColumnService: DocumentenApiColumnService,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly permissionService: PermissionService\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 'dossier.documenten.noProcessLinked.adminRole';\n }\n\n return 'dossier.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.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n this.router.navigate([`/dossier-management/dossier/${documentDefinitionName}`]);\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.documentDefinitionName$,\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([`/dossiers/${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.documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.uploadProviderService.checkUploadProcessLink(documentDefinitionName)\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-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<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 [iconOnly]=\"true\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 47}\"\n cdsButton=\"ghost\"\n placement=\"bottom\"\n >\n <svg class=\"cds--btn__icon\" 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=\"dossier.documenten.deleteConfirmationModal.content\"\n confirmButtonType=\"danger\"\n titleTranslationKey=\"dossier.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]=\"'dossier.documenten.noZaakFound' | translate\"\n [title]=\"'dossier.documenten.noZaakFoundTitle' | translate\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n [description]=\"'dossier.documenten.noFiles' | translate\"\n [title]=\"'dossier.documenten.noFilesTitle' | translate\"\n ></valtimo-no-results>\n }\n</ng-template>\n\n<ng-template #overflowFilter>\n <valtimo-dossier-detail-tab-documenten-api-filter\n [prefillFilter]=\"filter$ | async\"\n (filterEvent)=\"onFilterEvent($event)\"\n ></valtimo-dossier-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 {{ 'dossier.documenten.navigateToCaseAdmin' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnInit} from '@angular/core';\nimport {ConfigService, UploadProvider, ValtimoConfig} from '@valtimo/config';\nimport {BehaviorSubject, combineLatest, map, Observable, switchMap, tap} from 'rxjs';\nimport {ParagraphModule} from '@valtimo/components';\nimport {ActivatedRoute} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {filter} from 'rxjs/operators';\nimport {DocumentenApiLinkProcessService, DocumentenApiVersionService} from '../../services';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ComboBoxModule, ListItem} from 'carbon-components-angular';\n\n@Component({\n selector: 'valtimo-dossier-management-link-process',\n templateUrl: './dossier-management-link-process.component.html',\n standalone: true,\n imports: [CommonModule, ParagraphModule, TranslateModule, ComboBoxModule],\n})\nexport class DossierManagementLinkProcessComponent implements OnInit {\n public readonly documentenApiUploadProviders$ = new BehaviorSubject<boolean>(false);\n\n private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.name),\n filter(name => !!name)\n );\n\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 public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\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 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.disabled$.next(true);\n this._documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiLinkProcessService.updateLinkedUploadProcess(\n documentDefinitionName,\n processDefinitionKey\n )\n )\n )\n .subscribe(processLink => {\n this.selectedProcessKey$.next(processLink.processDefinitionKey);\n this.disabled$.next(false);\n });\n } else if (!processDefinitionKey) {\n this._documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiLinkProcessService.deleteLinkedUploadProcess(documentDefinitionName)\n )\n )\n .subscribe(() => {\n this.selectedProcessKey$.next('');\n this.disabled$.next(false);\n });\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._documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiLinkProcessService.getLinkedUploadProcess(documentDefinitionName)\n )\n )\n .subscribe(linkedUploadProcess => {\n if (linkedUploadProcess) {\n this.selectedProcessKey$.next(linkedUploadProcess.processDefinitionKey);\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"documentenApiUploadProviders$ | async\">\n <h2 class=\"mb-4\">{{ 'dossierManagement.linkProcess.title' | translate }}</h2>\n\n <v-paragraph [margin]=\"true\">{{\n 'dossierManagement.linkProcess.description' | translate\n }}</v-paragraph>\n\n <ng-container\n *ngIf=\"{\n processItems: processItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n >\n <cds-combo-box\n [appendInline]=\"true\"\n (selected)=\"selectProcess($event)\"\n [disabled]=\"obs.disabled || !obs.processItems\"\n >\n <cds-dropdown-list [items]=\"obs.processItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n </ng-container>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\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 documentDefinitionName!: 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\n .createTag(this.documentDefinitionName, this.value.value)\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.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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n *ngIf=\"{\n disabled: disabled$ | async,\n } as obs\"\n [open]=\"open\"\n size=\"sm\"\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n Subject,\n switchMap,\n tap,\n} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {\n ActionItem,\n CarbonListComponent,\n CarbonListItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule, IconModule, TagModule} from 'carbon-components-angular';\nimport {DocumentenApiTagService} from '../../services/documenten-api-tag.service';\nimport {DocumentenApiTag} from '../../models/documenten-api-tag.model';\nimport {DocumentenApiTagModalComponent} from '../documenten-api-tag-modal/documenten-api-tag-modal.component';\nimport {Page} from '@valtimo/document';\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 private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.name),\n filter(docDefName => !!docDefName)\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 get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$;\n }\n\n public readonly documentTags$: Observable<DocumentenApiTag[]> = combineLatest([\n this._documentDefinitionName$,\n this.searchTerm$,\n this._reload$,\n ]).pipe(\n tap(([_1, _2, reload]) => {\n if (reload === null) {\n this.loading$.next(true);\n }\n }),\n switchMap(([documentDefinitionName, searchTerm]) =>\n this.documentenApiTagService.getTagsForAdmin(documentDefinitionName, {\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') {\n 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.documentDefinitionName$\n .pipe(\n switchMap(documentDefinitionName =>\n this.documentenApiTagService.deleteTag(documentDefinitionName, tag.value)\n )\n )\n .subscribe(() => {\n this.reload();\n });\n }\n\n public confirmDeleteMultipleTag(tagsToDelete: {\n documentDefinitionName: string;\n tagIds: string[];\n itemsOnCurrentPage: number;\n }): void {\n this.documentenApiTagService\n .deleteTags(tagsToDelete.documentDefinitionName, 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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentTags: documentTags$ | async,\n addModalClosed: addModalClosed$ | async,\n documentDefinitionName: documentDefinitionName$ | 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 [documentDefinitionName]=\"obs.documentDefinitionName\"\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 documentDefinitionName: obs.documentDefinitionName,\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n 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';\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 documentDefinitionName!: 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 public readonly documentTypeItems$: Observable<Array<ListItem>> = combineLatest([\n this.defaultValue.valueChanges,\n this.translateService.stream('key'),\n ]).pipe(\n switchMap(([selectedItem]) =>\n combineLatest([\n this.documentService.getDocumentTypes(this.documentDefinitionName),\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 ) {}\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.documentDefinitionName, 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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, ViewChild} from '@angular/core';\nimport {DocumentenApiColumnModalType, DocumentenApiColumnModalTypeCloseEvent} from '../../models';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n startWith,\n Subject,\n switchMap,\n tap,\n} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {\n ActionItem,\n CarbonListComponent,\n CarbonListItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\nimport {\n DOCUMENTEN_API_UPLOAD_KEYS,\n DocumentenApiUploadField,\n} 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';\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 private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.name),\n filter(docDefName => !!docDefName)\n );\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 get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$;\n }\n\n public readonly documentUploadFields$: Observable<string[]> = combineLatest([\n this._documentDefinitionName$,\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(([documentDefinitionName]) =>\n this.documentenApiDocumentService.getUploadFields(documentDefinitionName)\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 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 ) {}\n\n public openEditModal(uploadField: DocumentenApiUploadField): void {\n this.prefill$.next(uploadField);\n this.uploadFieldModalType$.next('edit');\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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentUploadFields: documentUploadFields$ | async,\n uploadFieldModalType: uploadFieldModalType$ | async,\n documentDefinitionName: documentDefinitionName$ | 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 >\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 [documentDefinitionName]=\"obs.documentDefinitionName\"\n [type]=\"obs.uploadFieldModalType\"\n (closeModalEvent)=\"closeModal($event)\"\n ></valtimo-documenten-api-upload-field-modal>\n</ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {LoadingModule, NotificationModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, map, Observable, switchMap, tap} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\nimport {filter} from 'rxjs/operators';\n\nimport {DocumentenApiManagementVersion} from '../../models';\nimport {DocumentenApiVersionService} from '../../services';\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],\n})\nexport class DocumentenApiVersionComponent {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n public readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || ''),\n filter(documentDefinitionName => !!documentDefinitionName)\n );\n\n public readonly documentenApiVersion$: Observable<DocumentenApiManagementVersion> = combineLatest(\n [this.documentDefinitionName$, this.documentenApiVersionService.refresh$]\n ).pipe(\n tap(() => this.loading$.next(true)),\n switchMap(([documentDefinitionName]) =>\n this.documentenApiVersionService.getManagementApiVersion(documentDefinitionName)\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-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<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.documentenApi.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentenApiVersion: documentenApiVersion$ | async,\n } as obs\"\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</ng-container>\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './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-upload-process/dossier-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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport 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>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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, 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 {DocumentService} from '@valtimo/document';\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';\n\n@Component({\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 switchMap(documentDefinitionName =>\n this.documentService.getDocumentTypes(documentDefinitionName)\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 @Output() valueChange = new EventEmitter<Array<DocumentenApiFileReference>>();\n\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n readonly showModal = signal<boolean>(false);\n readonly uploadProcessLinked$: Observable<boolean | string> =\n this.modalService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.uploadProviderService.checkUploadProcessLink(documentDefinitionName)\n ),\n startWith('loading')\n );\n 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.documentDefinitionName$.pipe(\n switchMap(caseDefinitionName =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionName)\n )\n );\n\n public defaultValues: {} = {};\n public hideFields: Array<string> = [];\n\n private _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.openDocumentDefinitionSubscription();\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 fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal.set(true);\n }\n\n 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 closeMetadataModal(): void {\n this.showModal.set(false);\n }\n\n 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 => this.uploadProviderService.uploadTempFileWithMetadata(file, metadata)),\n tap(result => {\n this.domService.toggleSubmitButton(false);\n this.uploading$.next(false);\n this._value.push(result);\n this.valueChange.emit(this._value);\n })\n )\n .subscribe();\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?.documentDefinitionName || firstChildParams?.documentDefinitionName) as string\n ),\n filter(documentDefinitionName => !!documentDefinitionName)\n )\n .subscribe(documentDefinitionName =>\n this.modalService.setDocumentDefinitionName(documentDefinitionName)\n )\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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.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]=\"'dossier.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-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 {Injector} from '@angular/core';\nimport {\n createCustomFormioComponent,\n FormioCustomComponentInfo,\n registerCustomFormioComponentWithClass,\n} 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 const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);\n\n // override setValue function to allow for setting an array value\n class UploaderComponent extends originalUploadComponent {\n setValue(value): boolean {\n if (!this._customAngularElement) {\n return false;\n }\n\n this._customAngularElement.value = value;\n return true;\n }\n }\n\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponentWithClass(\n COMPONENT_OPTIONS,\n DocumentenApiUploaderComponent,\n UploaderComponent,\n injector\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-uploader-edit-form';\nexport * from './documenten-api-uploader.component';\nexport * from './documenten-api-uploader.formio';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './documenten-api-uploader';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './formio';\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 {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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaakobjecten.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, 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 TitleModule,\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-dossier-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 TitleModule,\n FormIoModule,\n TranslateModule,\n ],\n})\nexport class DossierDetailTabZaakobjectenComponent {\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: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n 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]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.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=\"dossier.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 <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\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 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-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 {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 TitleModule,\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, TitleModule, FormIoModule],\n})\nexport class DossierDetailTabObjectTypeComponent {\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: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n 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=\"dossier.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 'dossier.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 <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\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 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-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\nexport * from './zaakobjecten/zaakobjecten.component';\nexport * from './object-type/object-type.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './models';\nexport * from './services';\nexport * from './components';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Contactmoment {\n registratiedatum?: string;\n kanaal?: string;\n tekst?: string;\n medewerkerIdentificatie?: MedewerkerIdentificatie;\n}\n\nexport interface MedewerkerIdentificatie {\n achternaam?: string;\n}\n\nexport interface CreateContactMomentRequest {\n kanaal: string;\n tekst: string;\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './contact-moment.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\nimport {Contactmoment, CreateContactMomentRequest} from '../models';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ContactMomentService {\n private valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n getContactMoments(): Observable<Contactmoment[]> {\n return this.http.get<Contactmoment[]>(`${this.valtimoEndpointUri}v1/contactmoment`);\n }\n\n saveContactMoment(contactMomentRequest: CreateContactMomentRequest): Observable<Contactmoment> {\n return this.http.post(`${this.valtimoEndpointUri}v1/contactmoment`, contactMomentRequest);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './contact-moment.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ContactMomentService} from '../../services';\nimport moment from 'moment';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {\n AlertService,\n ModalComponent,\n ModalModule,\n SpinnerModule,\n TimelineItem,\n TimelineItemImpl,\n TimelineModule,\n} from '@valtimo/components';\nimport {map, switchMap, take} from 'rxjs/operators';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-contact-moments',\n templateUrl: './contact-moments.component.html',\n styleUrls: ['./contact-moments.component.scss'],\n standalone: true,\n imports: [CommonModule, ModalModule, TranslateModule, FormsModule, SpinnerModule, TimelineModule],\n})\nexport class DossierDetailTabContactMomentsComponent {\n @ViewChild('contactMomentsNoteModal') modal: ModalComponent;\n\n readonly refetchContactMoments$ = new BehaviorSubject('');\n readonly contactMoments$: Observable<Array<TimelineItem>> = this.refetchContactMoments$.pipe(\n switchMap(() => this.contactMomentService.getContactMoments()),\n map(contactMoments =>\n contactMoments.map(contactMoment => {\n const registratieDatum = moment(contactMoment.registratiedatum);\n return new TimelineItemImpl(\n registratieDatum.format('DD MMM YYYY'),\n registratieDatum.format('HH:mm'),\n contactMoment.medewerkerIdentificatie.achternaam,\n contactMoment.kanaal,\n contactMoment.tekst,\n null\n );\n })\n )\n );\n\n readonly text$ = new BehaviorSubject<string>('');\n readonly channel$ = new BehaviorSubject<string>('MAIL');\n readonly requestData$: Observable<Array<string>> = combineLatest([this.text$, this.channel$]);\n readonly valid$: Observable<boolean> = this.requestData$.pipe(\n map(([text, channel]) => !!(text && channel))\n );\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly contactMomentService: ContactMomentService,\n private readonly alertService: AlertService,\n private readonly translateService: TranslateService\n ) {}\n\n textChange(text: string): void {\n this.text$.next(text);\n }\n\n buttonClick(): void {\n this.modal.show();\n }\n\n saveNote(): void {\n this.disable();\n\n this.requestData$.pipe(take(1)).subscribe(([text, channel]) => {\n this.contactMomentService.saveContactMoment({kanaal: channel, tekst: text}).subscribe(\n () => {\n this.alertService.success(\n this.translateService.instant('dossier.contactMoments.saveSuccess')\n );\n this.enable();\n this.clear();\n this.modal.hide();\n this.refetchContactMoments();\n },\n () => {\n this.enable();\n }\n );\n });\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private clear(): void {\n this.text$.next('');\n }\n\n private refetchContactMoments(): void {\n this.refetchContactMoments$.next('');\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './contact-moments/contact-moments.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './models';\nexport * from './components';\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 {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\nimport {Customer, CustomerCase, CustomerSearchRequest} from '../models';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerService {\n private valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n getCustomers(request: CustomerSearchRequest): Observable<Array<Customer>> {\n return this.http.post<Array<Customer>>(\n `${this.valtimoEndpointUri}v1/haalcentraal/personen`,\n request\n );\n }\n\n getCustomerCases(bsn: string): Observable<Array<CustomerCase>> {\n return this.http.get<Array<CustomerCase>>(`${this.valtimoEndpointUri}v1/zaken/${bsn}`);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './customer.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface Customer {\n burgerservicenummer: string;\n geboorteDatum: string;\n geslachtsnaam: string;\n voorletters: string;\n voornamen: string;\n}\n\ninterface MappedCustomer {\n citizenServiceNumber: string;\n name: string;\n dateOfBirth: string;\n}\n\ninterface CustomerBsnSearchRequest {\n bsn: string;\n}\n\ninterface CustomerDataSearchRequest {\n geslachtsnaam: string;\n geboortedatum: string;\n}\n\ntype CustomerSearchRequest = CustomerBsnSearchRequest | CustomerDataSearchRequest;\n\nexport {\n CustomerBsnSearchRequest,\n CustomerDataSearchRequest,\n CustomerSearchRequest,\n Customer,\n MappedCustomer,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface CustomerCase {\n zaakNummer: string;\n zaakStatus: string;\n zaakType: string;\n zaakId: string;\n}\n\nexport {CustomerCase};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './customer';\nexport * from './case';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {CustomerService} from '../../services/customer.service';\nimport {BehaviorSubject, combineLatest, Observable, of} from 'rxjs';\nimport {catchError, debounceTime, map, switchMap, tap} from 'rxjs/operators';\nimport {TranslateService} from '@ngx-translate/core';\nimport {\n Customer,\n CustomerBsnSearchRequest,\n CustomerDataSearchRequest,\n CustomerSearchRequest,\n MappedCustomer,\n} from '../../models';\nimport {ConfigService} from '@valtimo/config';\nimport {Router} from '@angular/router';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@Component({\n selector: 'valtimo-customer-list',\n templateUrl: './customer-list.component.html',\n styleUrls: ['./customer-list.component.scss'],\n})\nexport class CustomerListComponent {\n fields$: Observable<Array<{key: string; label: string}>> = combineLatest([\n this.translateService.stream('customers.name'),\n this.translateService.stream('customers.citizenServiceNumber'),\n this.translateService.stream('customers.dateOfBirth'),\n ]).pipe(\n map(([nameLabel, numberLabel, dateOfBirthLabel]) => [\n {\n label: numberLabel,\n key: 'citizenServiceNumber',\n },\n {\n label: nameLabel,\n key: 'name',\n },\n {\n label: dateOfBirthLabel,\n key: 'dateOfBirth',\n },\n ])\n );\n\n readonly bsn$ = new BehaviorSubject<string>('');\n readonly bsnValid$: Observable<boolean> = this.bsn$.pipe(\n map(bsn => {\n const regex = new RegExp(/^[0-9]{9}$/gm);\n return regex.test(bsn);\n })\n );\n readonly dateOfBirth$ = new BehaviorSubject<string>('');\n readonly dateOfBirthValid$: Observable<boolean> = this.dateOfBirth$.pipe(\n map(dateOfBirth => {\n const regex = new RegExp(/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/gm);\n return regex.test(dateOfBirth);\n })\n );\n readonly familyName$ = new BehaviorSubject<string>('');\n\n private readonly searchParameters$: Observable<CustomerSearchRequest | undefined> = combineLatest(\n [this.bsn$, this.dateOfBirth$, this.familyName$, this.bsnValid$, this.dateOfBirthValid$]\n ).pipe(\n map(([bsn, dateOfBirth, familyName, bsnValid, dateOfBirthValid]) => {\n if (bsn && bsnValid) {\n this.loading$.next(true);\n\n return {bsn};\n } else if (dateOfBirth && familyName && dateOfBirthValid) {\n this.loading$.next(true);\n\n return {\n geslachtsnaam: familyName,\n geboortedatum: dateOfBirth,\n };\n }\n\n return undefined;\n })\n );\n\n customers$: Observable<Array<MappedCustomer>> = this.searchParameters$.pipe(\n debounceTime(500),\n switchMap(searchParameters => {\n if (\n (searchParameters as CustomerBsnSearchRequest)?.bsn ||\n ((searchParameters as CustomerDataSearchRequest)?.geslachtsnaam &&\n (searchParameters as CustomerDataSearchRequest)?.geboortedatum)\n ) {\n return this.customerService\n .getCustomers(searchParameters as CustomerSearchRequest)\n .pipe(catchError(() => of([])));\n }\n\n return of([]);\n }),\n map(customers =>\n (customers as Array<Customer>).map(customer => ({\n citizenServiceNumber: customer.burgerservicenummer,\n dateOfBirth: customer.geboorteDatum,\n name: `${customer.geslachtsnaam}, ${customer.voornamen} ${customer.voorletters}`,\n }))\n ),\n tap(() => {\n this.loading$.next(false);\n })\n );\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n constructor(\n private readonly customerService: CustomerService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly router: Router\n ) {}\n\n bsnChange(bsn: string): void {\n this.clearDateOfBirth();\n this.clearFamilyName();\n this.bsn$.next(bsn);\n }\n\n dateOfBirthChange(dateOfBirth: string): void {\n this.clearBsn();\n this.dateOfBirth$.next(dateOfBirth);\n }\n\n familyNameChange(familyName: string): void {\n this.clearBsn();\n this.familyName$.next(familyName);\n }\n\n public rowClick(customer: MappedCustomer) {\n const config = this.configService.config;\n const bsn = customer?.citizenServiceNumber;\n\n if (bsn && config?.featureToggles?.enableHackathonCasesPage) {\n this.router.navigate([`/klanten/klant/${bsn}`]);\n }\n }\n\n private clearBsn(): void {\n this.bsn$.next('');\n }\n\n private clearDateOfBirth(): void {\n this.dateOfBirth$.next('');\n }\n\n private clearFamilyName(): void {\n this.familyName$.next('');\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngTemplateOutlet=\"sidebar\"></ng-container>\n\n<div\n class=\"main-content pt-0\"\n *ngIf=\"{customers: customers$ | async, fields: fields$ | async} as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"(loading$ | async) === false; else loading\">\n <ng-container\n *ngTemplateOutlet=\"list; context: {customers: obs.customers, fields: obs.fields}\"\n ></ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #list let-customers=\"customers\" let-fields=\"fields\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"customers\"\n [fields]=\"fields\"\n [header]=\"true\"\n (rowClicked)=\"rowClick($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'customers.title' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'customers.subtitle' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #sidebar>\n <valtimo-filter-sidebar>\n <h4 class=\"title\">{{ 'customers.searchBasedOn' | translate }}</h4>\n <div class=\"tab-container\">\n <ul class=\"nav nav-tabs nav-tabs-classic\" role=\"tablist\">\n <li class=\"nav-item\">\n <a\n class=\"nav-link active\"\n href=\"#search_bsn\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"true\"\n ><b>{{ 'customers.citizenServiceNumber' | translate }}</b></a\n >\n </li>\n <li class=\"nav-item\">\n <a\n class=\"nav-link\"\n href=\"#search_birth_data\"\n data-toggle=\"tab\"\n role=\"tab\"\n aria-selected=\"false\"\n ><b>{{ 'customers.lastNameAndDateOfBirth' | translate }}</b></a\n >\n </li>\n </ul>\n <div class=\"tab-content\">\n <div class=\"tab-pane active\" id=\"search_bsn\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"bsnTab\"></ng-container>\n </div>\n <div class=\"tab-pane\" id=\"search_birth_data\" role=\"tabpanel\">\n <ng-container *ngTemplateOutlet=\"birthDataTab\"></ng-container>\n </div>\n </div>\n </div>\n </valtimo-filter-sidebar>\n</ng-template>\n\n<ng-template #bsnTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputBsn\">{{ 'customers.citizenServiceNumber' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputBsn\"\n type=\"text\"\n name=\"bsn\"\n [placeholder]=\"'customers.citizenServiceNumberPlaceholder' | translate\"\n [ngModel]=\"bsn$ | async\"\n (ngModelChange)=\"bsnChange($event)\"\n [ngClass]=\"{'is-valid': bsnValid$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n\n<ng-template #birthDataTab>\n <form>\n <div class=\"form-group pt-2\">\n <label for=\"inputDateOfBirth\">{{ 'customers.dateOfBirth' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputDateOfBirth\"\n type=\"text\"\n name=\"dateOfBirth\"\n [placeholder]=\"'customers.dateOfBirthPlaceholder' | translate\"\n [ngModel]=\"dateOfBirth$ | async\"\n (ngModelChange)=\"dateOfBirthChange($event)\"\n [ngClass]=\"{'is-valid': dateOfBirthValid$ | async}\"\n />\n </div>\n <div class=\"form-group\">\n <label for=\"inputFamilyName\">{{ 'customers.familyName' | translate }}</label>\n <input\n class=\"form-control\"\n id=\"inputFamilyName\"\n type=\"text\"\n name=\"familyName\"\n [placeholder]=\"'customers.familyNamePlaceholder' | translate\"\n [ngModel]=\"familyName$ | async\"\n (ngModelChange)=\"familyNameChange($event)\"\n [ngClass]=\"{'is-valid': familyName$ | async}\"\n />\n </div>\n </form>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {BehaviorSubject, Observable, of} from 'rxjs';\nimport {switchMap, tap} from 'rxjs/operators';\nimport {CustomerCase} from '../../models';\nimport {CustomerService} from '../../services/customer.service';\nimport {TableColumn} from '@valtimo/components';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@Component({\n selector: 'valtimo-cases-list',\n templateUrl: './cases-list.component.html',\n styleUrls: ['./cases-list.component.scss'],\n})\nexport class CasesListComponent {\n readonly customerCases$: Observable<Array<CustomerCase>> = this.route.params.pipe(\n switchMap(params => (params?.bsn ? this.customerService.getCustomerCases(params.bsn) : of([]))),\n tap(() => this.loading$.next(false))\n );\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'customerCases.labels.zaakNummer',\n dataKey: 'zaakNummer',\n },\n {\n labelTranslationKey: 'customerCases.labels.zaakStatus',\n dataKey: 'zaakStatus',\n },\n {\n labelTranslationKey: 'customerCases.labels.zaakType',\n dataKey: 'zaakType',\n },\n ]);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly customerService: CustomerService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-page-container\n *ngIf=\"{\n customerCases: customerCases$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.customercases.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.customercases.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.customerCases\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"false\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'customerCases.tableItemsText'\"\n [showPagination]=\"false\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_USER} from '@valtimo/config';\nimport {CustomerListComponent} from './components/customer-list/customer-list.component';\nimport {CasesListComponent} from './components/cases-list/cases-list.component';\n\nconst routes: Routes = [\n {\n path: 'klanten',\n component: CustomerListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Customers', roles: [ROLE_USER]},\n },\n {\n path: 'klanten/klant/:bsn',\n component: CasesListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'customerCases', roles: [ROLE_USER]},\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class CustomerRoutingModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CustomerListComponent} from './components/customer-list/customer-list.component';\nimport {\n WidgetModule,\n ListModule,\n SpinnerModule,\n FilterSidebarModule,\n PageModule,\n ParagraphModule,\n TableModule,\n TitleModule,\n} from '@valtimo/components';\nimport {CustomerRoutingModule} from './customer-routing.module';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {FormsModule} from '@angular/forms';\nimport {CasesListComponent} from './components/cases-list/cases-list.component';\n\n/**\n * @deprecated Will be replace by new plugins\n */\n@NgModule({\n imports: [\n CommonModule,\n WidgetModule,\n CustomerRoutingModule,\n ListModule,\n SpinnerModule,\n TranslateModule,\n FilterSidebarModule,\n FormsModule,\n PageModule,\n TitleModule,\n ParagraphModule,\n TableModule,\n ],\n declarations: [CustomerListComponent, CasesListComponent],\n exports: [CustomerListComponent, CasesListComponent],\n})\nexport class CustomerModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './services';\nexport * from './models';\nexport * from './customer.module';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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 getDocumentDefinition(documentDefinitionName: string): Observable<DocumentDefinition> {\n return this.httpClient.get<DocumentDefinition>(\n this.getApiUrl(`/v1/document-definition/${documentDefinitionName}`)\n );\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 documentDefinitionName: string,\n documentDefinitionVersion: number\n ): Observable<DocumentObjectenApiSync> {\n return this.httpClient.get<DocumentObjectenApiSync>(\n this.getApiUrl(\n `/management/v1/document-definition/${documentDefinitionName}/version/${documentDefinitionVersion}/objecten-api-sync`\n )\n );\n }\n\n public updateDocumentObjectenApiSync(\n documentDefinitionName: string,\n documentDefinitionVersion: number,\n request: {\n objectManagementConfigurationId: string;\n enabled: boolean;\n }\n ): Observable<void> {\n return this.httpClient.put<void>(\n this.getApiUrl(\n `/management/v1/document-definition/${documentDefinitionName}/version/${documentDefinitionVersion}/objecten-api-sync`\n ),\n request\n );\n }\n\n public deleteDocumentObjectenApiSync(\n documentDefinitionName: string,\n documentDefinitionVersion: number\n ): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/management/v1/document-definition/${documentDefinitionName}/version/${documentDefinitionVersion}/objecten-api-sync`\n )\n );\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, 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 {\n CdsThemeService,\n FormModule,\n InputModule,\n SelectItem,\n SelectModule,\n SpinnerModule,\n ValtimoCdsModalDirectiveModule,\n} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {BehaviorSubject, map, Observable, switchMap, tap} from 'rxjs';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule, CheckboxModule, ModalModule} from 'carbon-components-angular';\nimport {DocumentObjectenApiSyncService} from '../../services';\nimport {DocumentObjectenApiSync} from '../../models';\nimport {DocumentDefinition} from '@valtimo/document';\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 CommonModule,\n FormsModule,\n TranslateModule,\n SpinnerModule,\n FormModule,\n InputModule,\n SelectModule,\n ValtimoCdsModalDirectiveModule,\n CheckboxModule,\n ReactiveFormsModule,\n ButtonModule,\n ModalModule,\n ],\n})\nexport class DocumentObjectenApiSyncComponent implements OnInit {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n private readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || '')\n );\n private readonly documentDefinition$: Observable<DocumentDefinition> =\n this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentObjectenApiSyncService.getDocumentDefinition(documentDefinitionName)\n )\n );\n public readonly documentObjectenApiSync$ = new BehaviorSubject<DocumentObjectenApiSync>(null);\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 private 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> {\n return this.formGroup.get('objectManagementConfigurationId');\n }\n\n public get enabled(): AbstractControl<boolean> {\n return this.formGroup.get('enabled');\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 cdsThemeService: CdsThemeService\n ) {}\n\n public ngOnInit(): void {\n this.loadDocumentenObjectenApiSync();\n }\n\n public loadDocumentenObjectenApiSync(): void {\n this.documentDefinition$\n .pipe(\n switchMap(documentDefinition =>\n this.documentObjectenApiSyncService.getDocumentObjectenApiSync(\n documentDefinition.id.name,\n documentDefinition.id.version\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.name,\n documentDefinition.id.version\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.name,\n documentDefinition.id.version,\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 (!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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'zaakdetails.title' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n documentObjectenApiSync: documentObjectenApiSync$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.documentObjectenApiSync; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"remove()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.enabled' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.documentObjectenApiSync?.enabled\n ? ('zaakdetails.yes' | translate)\n : ('zaakdetails.no' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'zaakdetails.objectManagementConfigurationTitle' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.documentObjectenApiSync.objectManagementConfigurationTitle || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"modal; context: {obs: obs}\"></ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"showModal()\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'zaakdetails.submitButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #modal let-obs=\"obs\">\n <cds-modal\n valtimoCdsModal\n [title]=\"'zaakdetails.editModal.title' | translate\"\n [open]=\"modalShowing$ | async\"\n [showFooter]=\"true\"\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>\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 <ng-container *ngTemplateOutlet=\"buttonsFooterModal; context: {obs: obs}\"></ng-container>\n </cds-modal-footer>\n </cds-modal>\n</ng-template>\n\n<ng-template #buttonsFooterModal let-obs=\"obs\">\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</ng-template>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'zaakdetails.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync/document-objecten-api-sync.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './document-objecten-api-sync.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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 {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/config';\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit, ViewChild} from '@angular/core';\nimport {\n CreateInformatieObjectTypeLinkRequest,\n CreateZaakTypeLinkRequest,\n InformatieObjectType,\n OpenZaakService,\n ZaakType,\n ZaakTypeLink,\n} from '@valtimo/resource';\nimport {FormsModule} from '@angular/forms';\nimport {ActivatedRoute} from '@angular/router';\nimport {AlertService, ModalComponent, ModalModule} from '@valtimo/components';\nimport {ToastrService} from 'ngx-toastr';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {BehaviorSubject, map, Observable} from 'rxjs';\nimport {ConfigService, UploadProvider} from '@valtimo/config';\nimport {PluginConfiguration} from '@valtimo/plugin';\nimport {CommonModule} from '@angular/common';\nimport {NotificationModule} from 'carbon-components-angular';\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: [CommonModule, FormsModule, ModalModule, NotificationModule, TranslateModule],\n})\nexport class ZakenApiZaaktypeLinkComponent implements OnInit {\n public zaakTypes: ZaakType[];\n public pluginConfigurations: PluginConfiguration[];\n public zaakTypeLinkRequest: CreateZaakTypeLinkRequest;\n public informatieObjectTypeSelectionEnabled: boolean;\n public informatieObjectTypes: InformatieObjectType[];\n public selectedZaakType: ZaakType = null;\n public selectedPluginConfiguration: PluginConfiguration = null;\n public selectedInformatieObjectTypeUrl: string = null;\n private readonly documentDefinitionName: string;\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly zaakTypeLink$ = new BehaviorSubject<ZaakTypeLink>(null);\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.name || '')\n );\n\n @ViewChild('openZaakTypeLinkModal') modal: ModalComponent;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly openZaakService: OpenZaakService,\n private readonly alertService: AlertService,\n private readonly toasterService: ToastrService,\n private readonly translateService: TranslateService,\n private readonly zakenApiZaaktypeLinkService: ZakenApiZaaktypeLinkService,\n private readonly configService: ConfigService\n ) {\n this.documentDefinitionName = this.route.snapshot.paramMap.get('name');\n this.informatieObjectTypeSelectionEnabled =\n this.configService.config.uploadProvider === UploadProvider.OPEN_ZAAK;\n }\n\n public ngOnInit(): void {\n this.zaakTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\n createWithDossier: false,\n };\n this.openZaakService.getZaakTypeLink(this.documentDefinitionName).subscribe(zaakTypeLink => {\n if (zaakTypeLink !== null) {\n this.zaakTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\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 });\n this.loading$.next(false);\n }\n\n private findZaakType(zaakTypeUrl: string) {\n this.selectedZaakType = this.zaakTypes.find(zaakType => zaakType.url === zaakTypeUrl);\n }\n\n private findPluginConfiguration(pluginConfigurationId: string) {\n this.selectedPluginConfiguration = this.pluginConfigurations.find(\n pluginConfiguration => pluginConfiguration.id === pluginConfigurationId\n );\n }\n\n loadZaakTypes() {\n return 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 loadZakenApiPluginConfigurations() {\n return this.zakenApiZaaktypeLinkService\n .getPluginConfigurationsByPluginDefinitionKey('zakenapi')\n .subscribe((plugins: PluginConfiguration[]) => {\n this.pluginConfigurations = plugins;\n this.findPluginConfiguration(this.zaakTypeLink$.getValue()?.zakenApiPluginConfigurationId);\n });\n }\n\n loadInformatieObjectTypeUrls() {\n this.openZaakService\n .getInformatieObjectTypes()\n .subscribe((informatieObjectTypes: InformatieObjectType[]) => {\n this.informatieObjectTypes = informatieObjectTypes;\n });\n }\n\n openModal(zaakTypeLink: ZaakTypeLink) {\n this.zaakTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\n createWithDossier: zaakTypeLink?.createWithDossier,\n rsin: zaakTypeLink?.rsin,\n zakenApiPluginConfigurationId: zaakTypeLink?.zakenApiPluginConfigurationId,\n zaakTypeUrl: zaakTypeLink?.zaakTypeUrl,\n };\n if (this.informatieObjectTypeSelectionEnabled) {\n this.openZaakService.getOpenZaakConfig().subscribe(config => {\n if (config === null) {\n this.alertService.error(this.translateService.instant('openZaak.error.configNotFound'));\n } else {\n this.loadInformatieObjectTypeUrls();\n this.openZaakService\n .getInformatieObjectTypeLink(this.documentDefinitionName)\n .subscribe(informatieObjectTypeLink => {\n if (informatieObjectTypeLink !== null) {\n this.selectedInformatieObjectTypeUrl =\n informatieObjectTypeLink.informatieObjectType;\n }\n });\n }\n this.modal.show();\n });\n } else {\n this.modal.show();\n }\n }\n\n removeZaakTypeLink() {\n this.openZaakService.deleteZaakTypeLink(this.documentDefinitionName).subscribe(\n () => {\n if (this.selectedInformatieObjectTypeUrl !== null) {\n this.openZaakService.deleteInformatieObjectTypeLink(this.documentDefinitionName);\n }\n this.toasterService.success('Successfully de-linked zaaktype');\n this.zaakTypeLink$.next(null);\n },\n () => {\n this.toasterService.error('Failed to de-link zaaktype');\n }\n );\n }\n\n submit() {\n const requestInformatieObjectTypeLink: CreateInformatieObjectTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\n zaakType: this.zaakTypeLinkRequest.zaakTypeUrl,\n informatieObjectType: this.selectedInformatieObjectTypeUrl,\n };\n this.openZaakService.createZaakTypeLink(this.zaakTypeLinkRequest).subscribe(\n linkResult => {\n this.zaakTypeLink$.next(linkResult);\n this.zaakTypeLinkRequest = {\n documentDefinitionName: this.documentDefinitionName,\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 if (requestInformatieObjectTypeLink.informatieObjectType !== null) {\n this.openZaakService\n .createInformatieObjectTypeLink(requestInformatieObjectTypeLink)\n .subscribe(() => {\n this.toasterService.success('Successfully linked object informatie type to dossier');\n });\n }\n this.toasterService.success('Successfully linked zaaktype to dossier');\n },\n err => {\n this.toasterService.error('Failed to link zaaktype to dossier');\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"input-group mt-4 mb-2 align-items-center\">\n <div>\n <h2>{{ 'openZaak.links' | translate }}</h2>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n zaakTypeLink: zaakTypeLink$ | async,\n } as obs\"\n>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngIf=\"obs.zaakTypeLink; else addSync\">\n <div class=\"card card-border card-contrast\">\n <div class=\"card-header card-header-contrast card-header-featured\">\n <div>\n {{ this.selectedZaakType?.omschrijving || '-' }}\n </div>\n <div class=\"controls\">\n <button class=\"btn btn-danger ml-3\" (click)=\"openModal(obs.zaakTypeLink)\">\n <i class=\"icon mdi mdi-pencil\"></i>\n </button>\n <button class=\"btn btn-danger ml-3\" (click)=\"removeZaakTypeLink()\">\n <i class=\"icon mdi mdi-delete\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.autoCreateForCase' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{\n obs.zaakTypeLink?.createWithDossier\n ? ('viewTypeConverter.Yes' | translate)\n : ('viewTypeConverter.No' | translate)\n }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.zakenApiPlugin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ this.selectedPluginConfiguration?.title || '-' }}\n </div>\n </div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-3\">\n <strong>{{ 'openZaak.rsin' | translate }}</strong>\n </div>\n <div class=\"col-3\">\n {{ obs.zaakTypeLink?.rsin || '-' }}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #addSync>\n <div class=\"text-right mt-5\">\n <button class=\"btn btn-primary\" (click)=\"openModal(null)\">\n <i class=\"icon mdi mdi-plus mr-1\"></i>{{ 'openZaak.linkZaakType' | translate }}\n </button>\n </div>\n</ng-template>\n\n<valtimo-modal\n #openZaakTypeLinkModal\n elementId=\"openZaakTypeLinkModal\"\n [title]=\"'Zaak types'\"\n subtitle=\"Connect Zaak type to Dossier\"\n showFooter=\"true\"\n>\n <div body>\n <p>{{ 'openZaak.selectZaakTypeForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select class=\"form-control\" [(ngModel)]=\"this.zaakTypeLinkRequest.zaakTypeUrl\">\n <option [ngValue]=\"null\">{{ 'openZaak.selectZaakType' | translate }}</option>\n <option *ngFor=\"let zaakType of zaakTypes\" [ngValue]=\"zaakType.url\">\n {{ zaakType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.selectZakenApiPluginForCase' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <select\n class=\"form-control\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.zakenApiPluginConfigurationId\"\n >\n <option [ngValue]=\"null\">{{ 'openZaak.selectZakenApiPlugin' | translate }}</option>\n <option\n *ngFor=\"let pluginConfiguration of pluginConfigurations\"\n [ngValue]=\"pluginConfiguration.id\"\n >\n {{ pluginConfiguration?.title || '-' }}\n </option>\n </select>\n </div>\n\n <p>{{ 'openZaak.rsin' | translate }}</p>\n <div class=\"input-group mb-3 mr-3 align-items-center\">\n <input\n type=\"text\"\n id=\"name\"\n class=\"form-control\"\n placeholder=\"RSIN\"\n [(ngModel)]=\"this.zaakTypeLinkRequest.rsin\"\n />\n </div>\n\n <div class=\"setting-row\">\n <p>{{ 'openZaak.autoCreateForCase' | translate }}</p>\n <div class=\"controls\">\n <div class=\"switch-button switch-button-success\">\n <input\n type=\"checkbox\"\n [checked]=\"this.zaakTypeLinkRequest.createWithDossier\"\n name=\"createWithDossier\"\n id=\"createWithDossier\"\n (change)=\"\n this.zaakTypeLinkRequest.createWithDossier =\n !this.zaakTypeLinkRequest.createWithDossier\n \"\n />\n <span><label for=\"createWithDossier\"></label></span>\n </div>\n </div>\n </div>\n\n <div\n *ngIf=\"informatieObjectTypeSelectionEnabled && selectedZaakType\"\n class=\"input-group mb-3 align-items-center\"\n >\n <select class=\"form-control\" [(ngModel)]=\"selectedInformatieObjectTypeUrl\">\n <option [ngValue]=\"null\" selected>{{ 'openZaak.selectInfoObjectType' | translate }}</option>\n <option\n *ngFor=\"let informatieObjectType of informatieObjectTypes\"\n [ngValue]=\"informatieObjectType.url\"\n >\n {{ informatieObjectType?.omschrijving || '-' }}\n </option>\n </select>\n </div>\n </div>\n <div footer>\n <button\n (click)=\"submit()\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\"\n [disabled]=\"!this.zaakTypeLinkRequest.zaakTypeUrl\"\n >\n <i class=\"icon mdi mdi-save\"></i>\n {{ 'openZaak.save' | translate }}\n </button>\n </div>\n</valtimo-modal>\n\n<ng-template #loading>\n <div class=\"mb-8\">\n <valtimo-spinner></valtimo-spinner>\n </div>\n</ng-template>\n\n<ng-template #noConfigAvailable>\n <div class=\"mb-8\">\n <h4>{{ 'openZaak.error.configNotFound' | translate }}</h4>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link/zaken-api-zaaktype-link.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zaken-api-zaaktype-link.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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\nexport * from './documenten-api';\nexport * from './objecten-api';\nexport * from './contactmomenten';\nexport * from './haalcentraal-brp';\nexport * from './zaakdetails';\nexport * from './zaken-api';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, distinctUntilChanged, Observable} from 'rxjs';\nimport {ZgwTabEnum} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DossierManagementZgwService {\n public configuredTabKeys: string[];\n\n private readonly _DEFAULT_TAB: ZgwTabEnum = ZgwTabEnum.DOCUMENTEN_API_COLUMNS;\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-management-zgw.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {TabsModule} from 'carbon-components-angular';\nimport {DossierManagementZgwService} from '../../services';\nimport {ZgwTab, ZgwTabEnum} from '../../models';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CommonModule} from '@angular/common';\nimport {\n DocumentenApiColumnsComponent,\n DocumentenApiTagsComponent,\n DocumentenApiUploadFieldsComponent,\n DocumentenApiVersionService,\n SupportedDocumentenApiFeatures,\n} from '../../modules';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, switchMap, tap} from 'rxjs';\nimport {ActivatedRoute} from '@angular/router';\n\n@Component({\n templateUrl: './dossier-management-zgw.component.html',\n styleUrls: ['./dossier-management-zgw.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, TabsModule, TranslateModule],\n})\nexport class DossierManagementZgwComponent 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 _supportedDocumentenApiFeatures$: Observable<SupportedDocumentenApiFeatures> =\n this.route.params.pipe(\n map(params => params?.name),\n filter(caseDefinitionName => !!caseDefinitionName),\n switchMap(caseDefinitionName =>\n this.documentenApiVersionService.getSupportedApiFeatures(caseDefinitionName)\n )\n );\n\n public readonly zgwTabs$: Observable<ZgwTab[]> = combineLatest([\n this._viewInitialized$,\n this.dossierManagementZgwService.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: '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 this._zgwTabContent.clear();\n this._zgwTabContent.createComponent(activeTab.component);\n this.cdr.detectChanges();\n })\n );\n\n constructor(\n private readonly dossierManagementZgwService: DossierManagementZgwService,\n private readonly cdr: ChangeDetectorRef,\n private readonly documentenApiVersionService: DocumentenApiVersionService,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngAfterViewInit(): void {\n this._viewInitialized$.next(true);\n }\n\n public ngOnDestroy(): void {\n this.dossierManagementZgwService.resetToDefaultTab();\n }\n\n public displayTab(tab: ZgwTabEnum): void {\n this.dossierManagementZgwService.currentTab = tab;\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tabs class=\"dossier-management-tabs\">\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<div class=\"dossier-management-zgw__content\">\n <ng-template #zgwTabContent></ng-template>\n</div>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-management-zgw/dossier-management-zgw.component';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\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_MANAGEMENT_TAB_TOKEN,\n ZGW_CASE_CONFIGURATION_EXTENSIONS_TOKEN,\n ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN,\n ZGW_OBJECT_TYPE_COMPONENT_TOKEN,\n} from '@valtimo/config';\nimport {DocumentModule} from '@valtimo/document';\nimport {ResourceModule} from '@valtimo/resource';\nimport {DossierManagementZgwComponent} from './components';\nimport {\n CustomerModule,\n DocumentenApiMetadataModalComponent,\n DocumentenApiUploaderComponent,\n DocumentenApiVersionComponent,\n DossierDetailTabDocumentenApiDocumentsComponent,\n DossierDetailTabObjectTypeComponent,\n DossierManagementLinkProcessComponent,\n DocumentObjectenApiSyncComponent,\n ZakenApiZaaktypeLinkComponent,\n} from './modules';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n DropzoneModule,\n TranslateModule,\n DocumentModule,\n FileSizeModule,\n ResourceModule,\n RouterModule,\n DocumentenApiMetadataModalComponent,\n CustomerModule,\n ],\n declarations: [DocumentenApiUploaderComponent],\n exports: [DocumentenApiUploaderComponent],\n providers: [\n {\n provide: CASE_MANAGEMENT_TAB_TOKEN,\n useValue: {\n translationKey: 'dossierManagement.tabs.zgw',\n component: DossierManagementZgwComponent,\n },\n multi: true,\n },\n {\n provide: ZGW_OBJECT_TYPE_COMPONENT_TOKEN,\n useValue: DossierDetailTabObjectTypeComponent,\n },\n {\n provide: ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN,\n useValue: DossierDetailTabDocumentenApiDocumentsComponent,\n },\n {\n provide: ZGW_CASE_CONFIGURATION_EXTENSIONS_TOKEN,\n useValue: [\n DossierManagementLinkProcessComponent,\n DocumentenApiVersionComponent,\n DocumentObjectenApiSyncComponent,\n ZakenApiZaaktypeLinkComponent,\n ],\n },\n ],\n})\nexport class ZgwModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of 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// haalcentraal-brp\nexport * from './lib/modules/haalcentraal-brp/components/cases-list/cases-list.component';\nexport * from './lib/modules/haalcentraal-brp/components/customer-list/customer-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3.DocumentenApiColumnService","i5","i2.DocumentenApiColumnService","i3","i4","i6.DocumentenApiTagService","i7","tap","i3.DocumentenApiTagService","i6","i8.DocumentenApiVersionService","i9","CarbonInputModule","InputModule","map","filter","switchMap","take","i7.DocumentenApiDocumentService","i8.DocumentenApiColumnService","i10","i11","i3.DocumentenApiLinkProcessService","i3.DocumentenApiVersionService","i2.DocumentenApiTagService","i2.DocumentenApiDocumentService","i2.DocumentenApiVersionService","i5.DocumentenApiVersionService","i8","i9.DocumentenApiMetadataModalComponent","i2.ZaakobjectenService","i1.ContactMomentService","ModalModule","debounceTime","i1.CustomerService","i2.CustomerService","i2.DocumentObjectenApiSyncService","i6.ZakenApiZaaktypeLinkService","i1.DossierManagementZgwService"],"mappings":"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"}