@valtimo/dossier 11.1.0 → 11.1.4

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-dossier.mjs","sources":["../../../../projects/valtimo/dossier/src/lib/services/dossier-bulk-assign.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-column.service.ts","../../../../projects/valtimo/dossier/src/lib/services/zaakobjecten.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-parameter.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list-assignee.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list-pagination.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list-search.service.ts","../../../../projects/valtimo/dossier/src/lib/models/candidate-user.model.ts","../../../../projects/valtimo/dossier/src/lib/models/dossier-parameters.model.ts","../../../../projects/valtimo/dossier/src/lib/models/search.model.ts","../../../../projects/valtimo/dossier/src/lib/models/tabs.model.ts","../../../../projects/valtimo/dossier/src/lib/models/zaakobjecten.model.ts","../../../../projects/valtimo/dossier/src/lib/models/dossier-detail-tab.model.ts","../../../../projects/valtimo/dossier/src/lib/models/tab-api.model.ts","../../../../projects/valtimo/dossier/src/lib/models/index.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/summary/summary.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/summary/summary.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/progress/progress.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/progress/progress.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/audit/audit.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/audit/audit.component.html","../../../../projects/valtimo/dossier/src/lib/services/file-sort.service.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/documents/documents.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/documents/documents.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.html","../../../../projects/valtimo/dossier/src/lib/permissions/dossier-detail.permissions.ts","../../../../projects/valtimo/dossier/src/lib/permissions/index.ts","../../../../projects/valtimo/dossier/src/lib/services/notes.service.ts","../../../../projects/valtimo/dossier/src/lib/components/note-modal/note-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/components/note-modal/note-modal.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/notes/notes.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/notes/notes.component.html","../../../../projects/valtimo/dossier/src/lib/constants/tab.ts","../../../../projects/valtimo/dossier/src/lib/constants/case-tab-token.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/object-type/object-type.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/object-type/object-type.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/formio/formio.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/formio/formio.component.html","../../../../projects/valtimo/dossier/src/lib/services/dossier-tab-api.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-tab.service.ts","../../../../projects/valtimo/dossier/src/lib/services/index.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-assign-user/dossier-assign-user.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-assign-user/dossier-assign-user.component.html","../../../../projects/valtimo/dossier/src/lib/pipes/tab-translate/tab-translate.pipe.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/dossier-detail.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/dossier-detail.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-list-actions/dossier-list-actions.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-list-actions/dossier-list-actions.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-list/dossier-list.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-list/dossier-list.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-update/dossier-update.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-update/dossier-update.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-routing.module.ts","../../../../projects/valtimo/dossier/src/lib/pipes/tab-translate/tab-translate-pipe.module.ts","../../../../projects/valtimo/dossier/src/lib/pipes/tab-translate/index.ts","../../../../projects/valtimo/dossier/src/lib/pipes/index.ts","../../../../projects/valtimo/dossier/src/lib/dossier.module.ts","../../../../projects/valtimo/dossier/src/public_api.ts","../../../../projects/valtimo/dossier/src/valtimo-dossier.ts"],"sourcesContent":["/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {BehaviorSubject, Observable, take} from 'rxjs';\nimport {CandidateUser} from '../models';\n\n@Injectable()\nexport class DossierBulkAssignService {\n public readonly candidateUsers$ = new BehaviorSubject<CandidateUser[]>([]);\n\n private _valtimoEndpointUri: string;\n\n constructor(\n private configService: ConfigService,\n private http: HttpClient\n ) {\n this._valtimoEndpointUri = `${this.configService.config.valtimoApi.endpointUri}v1/document/`;\n }\n\n public bulkAssign(assigneeId: string, documentIds: string[]): Observable<void> {\n return this.http.post<void>(`${this._valtimoEndpointUri}assign`, {assigneeId, documentIds});\n }\n\n public loadCandidateUsers(documentIds: string[]): void {\n this.http\n .post<CandidateUser[]>(`${this._valtimoEndpointUri}candidate-user`, {documentIds})\n .pipe(take(1))\n .subscribe({\n next: (candidateUsers: CandidateUser[]) => {\n this.candidateUsers$.next(candidateUsers);\n },\n error: error => {\n console.error(error);\n },\n });\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService, DefinitionColumn} from '@valtimo/config';\nimport {map, Observable} from 'rxjs';\nimport {CaseListColumn, DocumentService} from '@valtimo/document';\nimport {ListField} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Injectable()\nexport class DossierColumnService {\n constructor(\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService\n ) {}\n\n getDefinitionColumns(\n documentDefinitionName: string\n ): Observable<{columns: Array<DefinitionColumn>; hasApiConfig: boolean}> {\n const config = this.configService.config;\n const customDefinitionTable = config.customDefinitionTables[documentDefinitionName];\n const defaultDefinitionTable = config.defaultDefinitionTable;\n\n return this.documentService.getCaseList(documentDefinitionName).pipe(\n map(caseListColumns => {\n const apiCaseListColumns =\n config?.featureToggles?.caseListColumn &&\n caseListColumns &&\n Array.isArray(caseListColumns) &&\n caseListColumns.length > 0 &&\n this.mapCaseListColumnsToDefinitionColumns(caseListColumns);\n\n return {\n columns: customDefinitionTable || apiCaseListColumns || defaultDefinitionTable,\n hasApiConfig: !!apiCaseListColumns,\n };\n })\n );\n }\n\n hasEnvironmentConfig(documentDefinitionName: string): boolean {\n return !!this.configService.config?.customDefinitionTables[documentDefinitionName];\n }\n\n mapDefinitionColumnsToListFields(\n columns: Array<DefinitionColumn>,\n hasEnvColumnConfig: boolean,\n hasApiColumnConfig: boolean\n ): Array<ListField> {\n return columns.map(column => {\n const translationKey = `fieldLabels.${column.translationKey}`;\n const translation = this.translateService.instant(translationKey);\n const validTranslation = translation !== translationKey && translation;\n return {\n key:\n hasEnvColumnConfig || !hasApiColumnConfig ? column.propertyName : column.translationKey,\n label: column.title || validTranslation || column.translationKey,\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n ...(column.enum && {enum: column.enum}),\n ...(column.format && {format: column.format}),\n ...(column.default && {default: column.default}),\n };\n });\n }\n\n private mapCaseListColumnsToDefinitionColumns(\n caseListColumns: Array<CaseListColumn>\n ): Array<DefinitionColumn> {\n return caseListColumns.map(caseListColumn => ({\n translationKey: caseListColumn.key,\n sortable: caseListColumn.sortable,\n default: caseListColumn.defaultSort,\n viewType: this.getViewType(caseListColumn.displayType.type),\n propertyName: this.getPropertyName(caseListColumn.path),\n ...(caseListColumn.title && {title: caseListColumn.title}),\n ...(caseListColumn?.displayType?.displayTypeParameters?.enum && {\n enum: caseListColumn.displayType.displayTypeParameters.enum as any,\n }),\n ...(caseListColumn.displayType?.displayTypeParameters?.dateFormat && {\n format: caseListColumn.displayType?.displayTypeParameters?.dateFormat,\n }),\n }));\n }\n\n private getViewType(caseListColumnDisplayType: string): string {\n switch (caseListColumnDisplayType) {\n case 'arrayCount':\n return 'relatedFiles';\n case 'underscoresToSpaces':\n return 'stringReplaceUnderscore';\n default:\n return caseListColumnDisplayType;\n }\n }\n\n private getPropertyName(caseListColumnPath: string): string {\n return caseListColumnPath.replace('doc:', '$.').replace('case:', '');\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {DossierParameters} from '../models';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n map,\n Observable,\n Subscription,\n take,\n} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {AssigneeFilter, Direction, SearchFieldValues} from '@valtimo/config';\nimport {Pagination} from '@valtimo/components';\n\n@Injectable()\nexport class DossierParameterService implements OnDestroy {\n private readonly _dossierParameters$ = new BehaviorSubject<DossierParameters>(undefined);\n private readonly _searchFieldValues$ = new BehaviorSubject<SearchFieldValues>({});\n\n get dossierParameters$(): Observable<DossierParameters> {\n return this._dossierParameters$.asObservable();\n }\n\n get searchFieldValues$(): Observable<SearchFieldValues> {\n return this._searchFieldValues$.asObservable();\n }\n\n get querySearchParams$(): Observable<SearchFieldValues> {\n return this.route.queryParams.pipe(\n map(params => {\n if (params.search) {\n return JSON.parse(atob(params.search)) as SearchFieldValues;\n }\n return {};\n }),\n distinctUntilChanged(\n (prevParams, currParams) => JSON.stringify(prevParams) === JSON.stringify(currParams)\n )\n );\n }\n\n get queryPaginationParams$(): Observable<Pagination | null> {\n return this.route.queryParams.pipe(\n map(params => {\n const paramsCopy = {...params} as any as DossierParameters;\n\n if (paramsCopy.search) {\n delete paramsCopy.search;\n }\n\n return paramsCopy.collectionSize\n ? {\n collectionSize: Number(paramsCopy.collectionSize),\n page: Number(paramsCopy.page),\n size: Number(paramsCopy.size),\n ...(paramsCopy.isSorting === 'true' && {\n sort: {\n isSorting: !!(paramsCopy.isSorting === 'true'),\n state: {\n name: paramsCopy.sortStateName,\n direction: paramsCopy.sortStateDirection as Direction,\n },\n },\n }),\n }\n : null;\n }),\n distinctUntilChanged(\n (prevParams, currParams) => JSON.stringify(prevParams) === JSON.stringify(currParams)\n )\n );\n }\n\n get queryAssigneeParam$(): Observable<AssigneeFilter> {\n return this.route.queryParams.pipe(\n map(params => {\n if (params?.assignee) {\n return params?.assignee?.toUpperCase();\n }\n return '';\n }),\n distinctUntilChanged((prevParams, currParams) => prevParams === currParams)\n );\n }\n\n dossierParametersSubscription!: Subscription;\n\n constructor(\n private readonly router: Router,\n private readonly route: ActivatedRoute\n ) {\n this.setDossierParameters();\n }\n\n ngOnDestroy(): void {\n this.dossierParametersSubscription?.unsubscribe();\n }\n\n setSearchFieldValues(searchFieldValues: SearchFieldValues): void {\n this._searchFieldValues$.next(searchFieldValues);\n }\n\n setSearchParameters(searchParameters: SearchFieldValues): void {\n this._dossierParameters$.pipe(take(1)).subscribe(dossierParameters => {\n if (Object.keys(searchParameters || {}).length > 0) {\n this._dossierParameters$.next({\n ...dossierParameters,\n search: this.objectToBase64(searchParameters),\n });\n } else {\n if (dossierParameters?.search) {\n delete dossierParameters.search;\n }\n this._dossierParameters$.next(dossierParameters);\n }\n });\n }\n\n setPaginationParameters(pagination: Pagination): void {\n if (pagination) {\n this._dossierParameters$.pipe(take(1)).subscribe(dossierParameters => {\n this._dossierParameters$.next({\n ...dossierParameters,\n size: `${pagination.size}`,\n collectionSize: `${pagination.collectionSize}`,\n page: `${pagination.page}`,\n isSorting: pagination.sort?.isSorting ? 'true' : 'false',\n ...(pagination.sort?.state?.name && {sortStateName: `${pagination.sort?.state.name}`}),\n ...(pagination.sort?.state?.direction && {\n sortStateDirection: `${pagination.sort?.state.direction}`,\n }),\n });\n });\n }\n }\n\n setAssigneeParameter(assigneeFilter: AssigneeFilter): void {\n this._dossierParameters$.pipe(take(1)).subscribe(dossierParameters => {\n this._dossierParameters$.next({\n ...dossierParameters,\n assignee: assigneeFilter.toLowerCase(),\n });\n });\n }\n\n clearSearchFieldValues(): void {\n this._searchFieldValues$.next({});\n }\n\n clearParameters(): void {\n this._dossierParameters$.next(undefined);\n this.router.navigate([this.getUrlWithoutParams()]);\n }\n\n private openDossierParametersSubscription(): void {\n this.dossierParametersSubscription = this.dossierParameters$.subscribe(dossierParams => {\n this.router.navigate([this.getUrlWithoutParams()], {queryParams: dossierParams});\n });\n }\n\n private objectToBase64(jsObject: object): string {\n return btoa(JSON.stringify(jsObject));\n }\n\n private getUrlWithoutParams(): string {\n const urlTree = this.router.parseUrl(this.router.url);\n urlTree.queryParams = {};\n urlTree.fragment = null;\n return urlTree.toString();\n }\n\n private setDossierParameters(): void {\n combineLatest([this.queryPaginationParams$, this.querySearchParams$, this.queryAssigneeParam$])\n .pipe(take(1))\n .subscribe(([paginationParams, searchParams, assigneeParams]) => {\n if (paginationParams) {\n this.setPaginationParameters(paginationParams);\n }\n if (searchParams) {\n this.setSearchParameters(searchParams);\n this.setSearchFieldValues(searchParams);\n }\n if (assigneeParams) {\n this.setAssigneeParameter(assigneeParams);\n }\n\n this.openDossierParametersSubscription();\n });\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, map, Observable, take} from 'rxjs';\nimport {DossierColumnService} from '../services';\nimport {Documents, SpecifiedDocuments} from '@valtimo/document';\n\n@Injectable()\nexport class DossierListService {\n private readonly _documentDefinitionName$ = new BehaviorSubject<string>('');\n\n private readonly _hasEnvColumnConfig$: Observable<boolean> = this.documentDefinitionName$.pipe(\n map(documentDefinitionName =>\n this.dossierColumnService.hasEnvironmentConfig(documentDefinitionName)\n )\n );\n\n private readonly _checkRefresh$ = new BehaviorSubject<boolean>(false);\n private readonly _forceRefresh$ = new BehaviorSubject<boolean>(false);\n\n public get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$.asObservable();\n }\n\n public get hasEnvColumnConfig$(): Observable<boolean> {\n return this._hasEnvColumnConfig$;\n }\n\n get checkRefresh$(): Observable<boolean> {\n return this._checkRefresh$.asObservable();\n }\n\n get forceRefresh$(): Observable<boolean> {\n return this._forceRefresh$.asObservable();\n }\n\n constructor(private readonly dossierColumnService: DossierColumnService) {}\n\n public setDocumentDefinitionName(documentDefinitionName: string): void {\n this._documentDefinitionName$.next(documentDefinitionName);\n }\n\n public mapDocuments(\n documents: Documents | SpecifiedDocuments,\n hasEnvColumnConfig: boolean,\n hasApiColumnConfig: boolean\n ) {\n if (hasEnvColumnConfig || !hasApiColumnConfig) {\n return (documents as Documents).content.map(document => {\n const {content, ...others} = document;\n return {...content, ...others};\n });\n }\n\n return (documents as SpecifiedDocuments).content.reduce((acc, curr) => {\n const propsObject = {id: curr.id};\n curr.items?.forEach(item => {\n propsObject[item.key] = item.value;\n });\n return [...acc, propsObject];\n }, []);\n }\n\n public forceRefresh(): void {\n this._forceRefresh$.pipe(take(1)).subscribe(forceRefresh => {\n this._forceRefresh$.next(!forceRefresh);\n });\n }\n\n public checkRefresh(): void {\n this._checkRefresh$.pipe(take(1)).subscribe(checkRefresh => {\n this._checkRefresh$.next(!checkRefresh);\n });\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Subject, map, Observable, switchMap, take, tap, combineLatest} from 'rxjs';\nimport {DossierListService} from './dossier-list.service';\nimport {DocumentService} from '@valtimo/document';\nimport {AssigneeFilter, ConfigService, DefinitionColumn} from '@valtimo/config';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ListField} from '@valtimo/components';\nimport {DossierParameterService} from './dossier-parameter.service';\n\n@Injectable()\nexport class DossierListAssigneeService {\n private readonly ASSIGNEE_KEY = 'assigneeFullName';\n private readonly _defaultAssigneeFilter$ = new Subject<AssigneeFilter>();\n private readonly _assigneeFilter$ = new BehaviorSubject<AssigneeFilter | null>(null);\n\n public readonly canHaveAssignee$: Observable<boolean> =\n this.dossierListService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n map(caseSettings => caseSettings?.canHaveAssignee),\n tap(canHaveAssignee => {\n const visibleTabs: AssigneeFilter[] = this.configService.config.visibleDossierListTabs;\n\n this._defaultAssigneeFilter$.next(\n !!visibleTabs && canHaveAssignee ? visibleTabs[0] : 'ALL'\n );\n })\n );\n\n public get assigneeFilter$(): Observable<AssigneeFilter> {\n return this._assigneeFilter$.asObservable();\n }\n\n constructor(\n private readonly configService: ConfigService,\n private readonly dossierListService: DossierListService,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly dossierParameterService: DossierParameterService\n ) {}\n\n public resetAssigneeFilter(): void {\n combineLatest([this.dossierParameterService.queryAssigneeParam$, this._defaultAssigneeFilter$])\n .pipe(take(1))\n .subscribe(([assigneeParam, defaultAssigneeFilter]) => {\n if (assigneeParam) {\n this._assigneeFilter$.next(assigneeParam);\n this.dossierParameterService.setAssigneeParameter(assigneeParam);\n } else {\n this._assigneeFilter$.next(defaultAssigneeFilter);\n this.dossierParameterService.setAssigneeParameter(defaultAssigneeFilter);\n }\n });\n }\n\n public setAssigneeFilter(assigneeFilter: AssigneeFilter): void {\n this._assigneeFilter$.next(assigneeFilter);\n this.dossierParameterService.setAssigneeParameter(assigneeFilter);\n }\n\n public filterAssigneeColumns(\n columns: Array<DefinitionColumn>,\n canHaveAssignee: boolean\n ): Array<DefinitionColumn> {\n return columns.filter(column => {\n if (column?.key === this.ASSIGNEE_KEY && !canHaveAssignee) {\n return false;\n }\n return true;\n });\n }\n\n public addAssigneeListField(\n columns: Array<DefinitionColumn>,\n listFields: Array<ListField>,\n canHaveAssignee: boolean\n ): Array<ListField> {\n return [\n ...listFields,\n ...(canHaveAssignee && !columns.find(column => column.propertyName === this.ASSIGNEE_KEY)\n ? [\n {\n key: this.ASSIGNEE_KEY,\n label: this.translateService.instant(`fieldLabels.${this.ASSIGNEE_KEY}`),\n sortable: true,\n viewType: 'string',\n },\n ]\n : []),\n ];\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Injectable} from '@angular/core';\nimport {Direction, SortState} from '@valtimo/components';\nimport {ConfigService, DefinitionColumn} from '@valtimo/config';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DossierService {\n private readonly definitions: any;\n private readonly _refreshDocument$ = new BehaviorSubject<null>(null);\n\n constructor(private readonly configService: ConfigService) {\n this.definitions = configService.config.definitions;\n }\n\n public getImplementationEnvironmentDefinitions(name: string) {\n return this.definitions.dossiers.find(definition => definition.name === name);\n }\n\n public getInitialSortState(columns: Array<DefinitionColumn>): SortState {\n const defaultColumn = columns.find(column => column.default);\n const isSorting = defaultColumn?.default === 'ASC' || defaultColumn?.default === 'DESC';\n const direction: Direction =\n typeof !defaultColumn || defaultColumn.default === 'boolean'\n ? 'DESC'\n : (defaultColumn.default as any as Direction);\n\n return {\n isSorting,\n state: {\n name: defaultColumn ? defaultColumn.propertyName : columns[0].propertyName,\n direction,\n },\n };\n }\n\n public get refreshDocument$(): Observable<any> {\n return this._refreshDocument$.asObservable();\n }\n\n public refresh(): void {\n this._refreshDocument$.next(null);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, filter, map, Observable, take, tap} from 'rxjs';\nimport {Pagination} from '@valtimo/components';\nimport {NGXLogger} from 'ngx-logger';\nimport {DossierParameterService} from './dossier-parameter.service';\nimport {DefinitionColumn} from '@valtimo/config';\nimport {DossierService} from './dossier.service';\nimport {Documents, SortState, SpecifiedDocuments} from '@valtimo/document';\n\n@Injectable()\nexport class DossierListPaginationService {\n private readonly DEFAULT_PAGINATION: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n sort: undefined,\n };\n\n private readonly _pagination$ = new BehaviorSubject<Pagination | undefined>(undefined);\n\n private readonly _paginationCopy$ = this._pagination$.pipe(\n filter(pagination => !!pagination),\n map(pagination => pagination && JSON.parse(JSON.stringify(pagination))),\n tap(pagination => this.dossierParameterService.setPaginationParameters(pagination))\n );\n\n get pagination$(): Observable<Pagination> {\n return this._paginationCopy$;\n }\n\n constructor(\n private readonly logger: NGXLogger,\n private readonly dossierParameterService: DossierParameterService,\n private readonly dossierService: DossierService\n ) {}\n\n pageChange(newPage: number): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.page !== newPage) {\n this.logger.debug(`Page change: ${newPage}`);\n this._pagination$.next({...pagination, page: newPage});\n }\n });\n }\n\n pageSizeChange(newPageSize: number): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.size !== newPageSize) {\n const amountOfAvailablePages = Math.ceil(+pagination.collectionSize / newPageSize);\n const newPage =\n amountOfAvailablePages < pagination.page ? amountOfAvailablePages : pagination.page;\n\n this.logger.debug(`Page size change. New Page: ${newPage} New page size: ${newPageSize}`);\n this._pagination$.next({...pagination, size: newPageSize, page: newPage});\n }\n });\n }\n\n sortChanged(newSortState: SortState): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && JSON.stringify(pagination.sort) !== JSON.stringify(newSortState)) {\n this.logger.debug(`Sort state change: ${JSON.stringify(newSortState)}`);\n this._pagination$.next({...pagination, sort: newSortState});\n }\n });\n }\n\n setPage(newPageNumber: number): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n this._pagination$.next({...pagination, page: newPageNumber});\n });\n }\n\n setCollectionSize(documents: Documents | SpecifiedDocuments): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.collectionSize !== documents.totalElements) {\n this._pagination$.next({...pagination, collectionSize: documents.totalElements});\n }\n });\n }\n\n checkPage(documents: Documents | SpecifiedDocuments): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination) {\n const amountOfItems = documents.totalElements;\n const amountOfPages = Math.ceil(amountOfItems / pagination.size);\n const currentPage = pagination.page;\n\n if (!!amountOfItems && !currentPage) {\n this._pagination$.next({...pagination, page: 1});\n return;\n }\n\n if (currentPage > amountOfPages) {\n this._pagination$.next({...pagination, page: amountOfPages});\n }\n }\n });\n }\n\n clearPagination(): void {\n this._pagination$.next(undefined);\n }\n\n setPagination(columns: Array<DefinitionColumn>): void {\n this.dossierParameterService.queryPaginationParams$\n .pipe(take(1))\n .subscribe(queryPaginationParams => {\n const defaultPagination: Pagination = this.getDefaultPagination(columns);\n const paginationToUse = queryPaginationParams || defaultPagination;\n\n this.logger.debug(`Set pagination: ${JSON.stringify(paginationToUse)}`);\n\n this._pagination$.next(paginationToUse);\n });\n }\n\n private getDefaultPagination(columns: Array<DefinitionColumn>): Pagination {\n const defaultSortState = this.dossierService.getInitialSortState(columns);\n\n return {\n ...this.DEFAULT_PAGINATION,\n sort: defaultSortState,\n };\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, switchMap} from 'rxjs';\nimport {SearchField, SearchFieldValues, SearchFilter, SearchFilterRange} from '@valtimo/config';\nimport {DossierListService} from './dossier-list.service';\nimport {DocumentService} from '@valtimo/document';\nimport {DossierParameterService} from './dossier-parameter.service';\n\n@Injectable()\nexport class DossierListSearchService {\n private readonly _documentSearchFields$: Observable<Array<SearchField> | null> =\n this.dossierListService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentSearchFields(documentDefinitionName)\n )\n );\n\n get documentSearchFields$(): Observable<Array<SearchField> | null> {\n return this._documentSearchFields$;\n }\n\n constructor(\n private readonly dossierListService: DossierListService,\n private readonly documentService: DocumentService,\n private readonly dossierParameterService: DossierParameterService\n ) {}\n\n search(searchFieldValues: SearchFieldValues): void {\n this.dossierParameterService.setSearchFieldValues(searchFieldValues || {});\n this.dossierParameterService.setSearchParameters(searchFieldValues);\n this.dossierListService.checkRefresh();\n }\n\n mapSearchValuesToFilters(values: SearchFieldValues): Array<SearchFilter | SearchFilterRange> {\n const filters: Array<SearchFilter | SearchFilterRange> = [];\n\n Object.keys(values).forEach(valueKey => {\n const searchValue = values[valueKey] as any;\n if (searchValue.start) {\n filters.push({key: valueKey, rangeFrom: searchValue.start, rangeTo: searchValue.end});\n } else if (Array.isArray(searchValue)) {\n filters.push({key: valueKey, values: searchValue});\n } else {\n filters.push({key: valueKey, values: [searchValue]});\n }\n });\n\n return filters;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface CandidateUser {\n id: string;\n firstName: string;\n lastName: string;\n}\n\nexport {CandidateUser};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface PaginationParameters {\n collectionSize: string;\n page: string;\n size: string;\n sortStateName: string;\n sortStateDirection: string;\n isSorting: 'true' | 'false';\n}\n\ninterface DossierParameters extends PaginationParameters {\n search?: string;\n assignee?: string;\n}\n\nexport {DossierParameters};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype CaseSearchFieldDataType = 'text' | 'number' | 'date' | 'datetime' | 'boolean';\n\ntype CaseSearchFieldFieldType = 'single' | 'multiple' | 'range';\n\ntype CaseSearchFieldMatchType = 'exact' | 'like';\n\ninterface CaseSearchField {\n key: string;\n datatype: CaseSearchFieldDataType;\n fieldtype: CaseSearchFieldFieldType;\n matchtype: CaseSearchFieldMatchType;\n}\n\nexport {\n CaseSearchFieldDataType,\n CaseSearchFieldFieldType,\n CaseSearchFieldMatchType,\n CaseSearchField,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, ComponentRef, ViewContainerRef} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {take} from 'rxjs';\n\nexport interface TabLoader<T_TAB extends Tab> {\n tabs: T_TAB[];\n\n initial(tabName?: string): void;\n\n load(tabToLoad: T_TAB): void;\n}\n\nexport class TabLoaderImpl implements TabLoader<TabImpl> {\n private readonly _tabs: TabImpl[] = null;\n private readonly _componentFactoryResolver: ComponentFactoryResolver = null;\n private readonly _viewContainerRef: ViewContainerRef = null;\n private _activeComponent: ComponentRef<any> = null;\n private _activeTab: TabImpl = null;\n private _router: Router;\n private _route: ActivatedRoute;\n\n constructor(\n tabs: TabImpl[],\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n router: Router,\n route: ActivatedRoute\n ) {\n this._tabs = tabs;\n this._componentFactoryResolver = componentFactoryResolver;\n this._viewContainerRef = viewContainerRef;\n this._router = router;\n this._route = route;\n }\n\n public get tabs(): TabImpl[] {\n return this._tabs;\n }\n\n public initial(tabName?: string): void {\n let initialTab!: TabImpl;\n\n if (tabName) {\n initialTab =\n this._tabs.find(tab => tab.name === tabName) ||\n this._tabs.find(tab => tab.contentKey === tabName);\n }\n\n if (!initialTab) {\n initialTab = this._tabs[0] || null;\n }\n\n this.load(initialTab);\n }\n\n public load(newTab: TabImpl): void {\n if (newTab !== this._activeTab) {\n this._tabs.forEach(tab => tab.deactivate());\n this.replaceView(newTab);\n this.replaceUrlState(newTab);\n this.setActive(newTab);\n }\n }\n\n public refreshView() {\n this.replaceView(this._activeTab);\n }\n\n private replaceView(tab: TabImpl): void {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(tab.component);\n this._viewContainerRef.clear();\n if (this._activeTab !== null) {\n this._activeComponent.destroy();\n }\n this._activeComponent = this._viewContainerRef.createComponent(componentFactory);\n }\n\n private replaceUrlState(nextTab: TabImpl): void {\n this._route.params.pipe(take(1)).subscribe(params => {\n const currentUrl = this._router.url;\n const currentDocumentId = params?.documentId;\n const queryParams = currentUrl.split('?')[1] || '';\n const urlBeforeDocumentId = currentUrl.split(currentDocumentId)[0];\n\n this._router.navigateByUrl(\n `${urlBeforeDocumentId}${currentDocumentId}/${nextTab.name}${\n queryParams ? `?${queryParams}` : ''\n }`\n );\n });\n }\n\n private setActive(tab: TabImpl): void {\n tab.activate();\n this._activeTab = tab;\n }\n}\n\nexport interface Tab {\n name: string;\n sequence: number;\n component: any;\n title: string;\n contentKey: string;\n\n activate(): void;\n\n deactivate(): void;\n\n isActive(): boolean;\n}\n\nexport class TabImpl implements Tab {\n private readonly _name: string;\n private readonly _sequence: number;\n private readonly _component: any;\n private readonly _contentKey: string;\n private readonly _title: string;\n private _active = false;\n\n constructor(name: string, sequence: number, component: any, contentKey?: string, title?: string) {\n this._name = name;\n this._sequence = sequence;\n this._component = component;\n\n if (contentKey) {\n this._contentKey = contentKey;\n }\n\n if (title) {\n this._title = title;\n }\n }\n\n public get name(): string {\n return this._name;\n }\n\n public get sequence(): number {\n return this._sequence;\n }\n\n public get component(): any {\n return this._component;\n }\n\n public get contentKey(): string {\n return this._contentKey;\n }\n\n public get title(): string {\n return this._title;\n }\n\n public activate(): void {\n this._active = true;\n }\n\n public deactivate(): void {\n this._active = false;\n }\n\n public isActive(): boolean {\n return this._active;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormioForm} from '@formio/angular/formio.common';\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\n\nenum DefaultTabs {\n summary = 'summary',\n progress = 'progress',\n audit = 'audit',\n documents = 'documents',\n contactMoments = 'contact-moments',\n zaakobjecten = 'zaakobjecten',\n notes = 'notes',\n}\n\ntype DefaultTabComponents = {\n [key in DefaultTabs]: Type<any>;\n};\n\ninterface CaseTabConfig {\n [tabKey: string]: Type<any>;\n}\n\nexport {DefaultTabs, DefaultTabComponents, CaseTabConfig};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum ApiTabType {\n STANDARD = 'standard',\n FORMIO = 'formio',\n CUSTOM = 'custom',\n}\n\ninterface ApiTabItem {\n name: string | null;\n key: string;\n type: ApiTabType;\n contentKey: string;\n}\n\nexport {ApiTabType, ApiTabItem};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './candidate-user.model';\nexport * from './dossier-parameters.model';\nexport * from './search.model';\nexport * from './tabs.model';\nexport * from './zaakobjecten.model';\nexport * from './dossier-detail-tab.model';\nexport * from './tab-api.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ProcessInstanceTask, ProcessService} from '@valtimo/process';\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\nimport {Document, DocumentService, ProcessDocumentInstance} from '@valtimo/document';\nimport {\n CAN_VIEW_TASK_PERMISSION,\n TASK_DETAIL_PERMISSION_RESOURCE,\n TaskDetailModalComponent,\n TaskService,\n} from '@valtimo/task';\nimport {FormService} from '@valtimo/form';\nimport {FormioOptionsImpl, ValtimoFormioOptions} from '@valtimo/components';\nimport moment from 'moment';\nimport {FormioForm} from '@formio/angular';\nimport {UserProviderService} from '@valtimo/security';\nimport {BehaviorSubject, combineLatest, of, Subscription, switchMap} from 'rxjs';\nimport {PermissionService} from '@valtimo/access-control';\nimport {catchError} from 'rxjs/operators';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-summary',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierDetailTabSummaryComponent implements OnInit, OnDestroy {\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n public readonly documentDefinitionName: string;\n public document: Document;\n public documentId: string;\n public processDocumentInstances: ProcessDocumentInstance[] = [];\n private snapshot: ParamMap;\n public tasks: ProcessInstanceTask[] = [];\n public moment;\n public formDefinition: FormioForm = null;\n public options: ValtimoFormioOptions;\n public roles: string[] = [];\n public readonly loadingTasks$ = new BehaviorSubject<boolean>(true);\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly router: Router,\n private readonly documentService: DocumentService,\n private readonly taskService: TaskService,\n private readonly processService: ProcessService,\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n private readonly route: ActivatedRoute,\n private readonly formService: FormService,\n private readonly userProviderService: UserProviderService,\n private readonly permissionService: PermissionService\n ) {\n this.snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';\n this.documentId = this.snapshot.get('documentId') || '';\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n }\n\n public ngOnInit(): void {\n this.moment = moment;\n this.init();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n public init(): void {\n this._subscriptions.add(\n this.documentService.getDocument(this.documentId).subscribe(document => {\n this.document = document;\n })\n );\n\n this._subscriptions.add(\n this.formService\n .getFormDefinitionByNamePreFilled(`${this.documentDefinitionName}.summary`, this.documentId)\n .subscribe(formDefinition => {\n this.formDefinition = formDefinition;\n })\n );\n\n this._subscriptions.add(\n this.userProviderService.getUserSubject().subscribe(user => {\n this.roles = user.roles;\n this.tasks = [];\n this.loadProcessDocumentInstances(this.documentId);\n })\n );\n }\n\n public loadProcessDocumentInstances(documentId: string): void {\n this._subscriptions.add(\n this.documentService\n .findProcessDocumentInstances(documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances;\n this.processDocumentInstances.forEach(instance => {\n this.loadProcessInstanceTasks(instance.id.processInstanceId);\n });\n })\n );\n }\n\n public rowTaskClick(task: any): void {\n this.taskDetail.openTaskDetails(task);\n }\n\n private loadProcessInstanceTasks(processInstanceId: string): void {\n this._subscriptions.add(\n this.processService\n .getProcessInstanceTasks(processInstanceId)\n .pipe(\n switchMap(tasks =>\n combineLatest([\n of(tasks),\n ...tasks.map(task =>\n this.permissionService.requestPermission(CAN_VIEW_TASK_PERMISSION, {\n resource: TASK_DETAIL_PERMISSION_RESOURCE.task,\n identifier: task.id,\n })\n ),\n ])\n ),\n catchError(() => {\n this.loadingTasks$.next(false);\n return of(null);\n })\n )\n .subscribe(res => {\n const tasks = res[0];\n const permissions = res.filter((_, index) => index !== 0);\n\n if (tasks != null) {\n tasks.forEach((task, taskIndex) => {\n task.createdUnix = this.moment(task.created).unix();\n task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');\n task.isLocked = !permissions[taskIndex];\n });\n this.tasks = this.tasks.concat(tasks);\n this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);\n }\n\n this.loadingTasks$.next(false);\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"container-fluid\" *ngIf=\"{loadingTasks: loadingTasks$ | async} as obs\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">{{ 'summary.userTasks' | translate }}</h4>\n <ng-container *ngIf=\"!obs.loadingTasks; else loadingTasksTemplate\">\n <ng-container *ngIf=\"(tasks | isArray: 1) === false\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n\n <ng-container *ngIf=\"tasks | isArray: 1\">\n <valtimo-widget *ngFor=\"let task of tasks\">\n <div\n *ngIf=\"!task.isLocked\"\n class=\"p-3 clickable hoverable\"\n (click)=\"rowTaskClick(task)\"\n >\n <span class=\"float-right badge badge-pill badge-primary\">{{\n 'summary.taskOpen' | translate\n }}</span>\n <strong>{{ task.name }}</strong>\n <div class=\"mt-1\">{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n </ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n\n<ng-template #loadingTasksTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {ProcessDocumentInstance} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-progress',\n templateUrl: './progress.component.html',\n styleUrls: ['./progress.component.css'],\n})\nexport class DossierDetailTabProgressComponent implements OnInit {\n public processDocumentInstances: ProcessDocumentInstance[];\n public selectedProcessInstanceId: string;\n public readonly documentId: string;\n\n constructor(\n private route: ActivatedRoute,\n private documentService: DocumentService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n ngOnInit() {\n this.documentService\n .findProcessDocumentInstances(this.documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances.sort((a, b) =>\n a.isActive === b.isActive ? 0 : a.isActive ? -1 : 1\n );\n if (processDocumentInstances.length > 0) {\n this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;\n }\n });\n }\n\n public loadProcessInstance(processInstanceId: string) {\n this.selectedProcessInstanceId = processInstanceId;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"full-height-tab-content\"\n *ngIf=\"\n processDocumentInstances && processDocumentInstances.length > 0;\n else emptyProcessDocumentInstances\n \"\n>\n <div class=\"col-3\">\n <label><strong>Process</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option\n *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\"\n >\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram\n [processInstanceId]=\"selectedProcessInstanceId\"\n ></valtimo-process-diagram>\n</div>\n\n<ng-template #emptyProcessDocumentInstances>\n <span> {{ 'progress.noProcessDocumentInstances' | translate }}</span>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport moment from 'moment';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, AuditEvent} from '@valtimo/document';\nimport {NgxSpinnerService} from 'ngx-spinner';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-audit',\n templateUrl: './audit.component.html',\n styleUrls: ['./audit.component.css'],\n})\nexport class DossierDetailTabAuditComponent implements OnInit {\n @Output() paginationClicked: EventEmitter<any> = new EventEmitter();\n\n public timelineItems: TimelineItem[];\n private readonly documentId: string;\n public pagination: any;\n private defaultAuditPage = 0;\n private currentAuditPage: number;\n\n constructor(\n private route: ActivatedRoute,\n private documentService: DocumentService,\n private spinnerService: NgxSpinnerService\n ) {\n this.spinnerService.show('auditSpinner');\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n private static getTranslationKey(auditEvent: AuditEvent) {\n const classNameArray = auditEvent.className.split('.');\n const eventName = classNameArray[classNameArray.length - 1];\n return 'events.' + eventName;\n }\n\n ngOnInit() {\n this.loadAuditPage(this.defaultAuditPage);\n }\n\n public loadAuditPage(pageNumber: number) {\n this.documentService.getAuditLog(this.documentId, pageNumber).subscribe(page => {\n const timelineItems = [];\n page.content.forEach(auditRecord => {\n const occurredOn = moment(auditRecord.metaData.occurredOn);\n const fromNow = occurredOn.fromNow();\n timelineItems.push(\n new TimelineItemImpl(\n occurredOn.format('DD MMM YYYY'),\n occurredOn.format('HH:mm'),\n auditRecord.metaData.user,\n fromNow,\n DossierDetailTabAuditComponent.getTranslationKey(auditRecord.auditEvent),\n auditRecord.auditEvent\n )\n );\n });\n this.timelineItems = timelineItems;\n this.spinnerService.hide('auditSpinner');\n this.pagination = page;\n this.pagination.number += 1;\n });\n }\n\n public onChangePagination(page) {\n this.paginationClicked.emit(page);\n this.currentAuditPage = page - 1;\n this.loadAuditPage(this.currentAuditPage);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n</div>\n<valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n>\n</valtimo-spinner>\n<div\n class=\"pagination-holder audit-pagination bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && pagination.totalElements > pagination.size\"\n>\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.number, total: pagination.totalPages}\n }}</strong>\n <br />\n {{\n pagination.totalElements === 1\n ? ('list.showingResult' | translate: {number: pagination.content.length})\n : ('list.showingResults'\n | translate: {number: pagination.content.length, total: pagination.totalElements})\n }}\n </div>\n <div class=\"col-8\">\n <ngb-pagination\n *ngIf=\"pagination.totalElements > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.totalElements\"\n [(page)]=\"pagination.number\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"onChangePagination(pagination.number)\"\n ></ngb-pagination>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {RelatedFile} from '@valtimo/document';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FileSortService {\n constructor(private readonly configService: ConfigService) {}\n\n sortRelatedFilesByDateDescending(relatedFiles: Array<RelatedFile>): Array<RelatedFile> {\n const sortByDate = this.configService.config?.featureToggles?.sortFilesByDate;\n\n if (sortByDate) {\n return relatedFiles.sort(\n (a, b) => new Date(b.createdOn).getTime() - new Date(a.createdOn).getTime()\n );\n }\n\n return relatedFiles;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, RelatedFile, RelatedFileListItem} from '@valtimo/document';\nimport {DownloadService, UploadProviderService} from '@valtimo/resource';\nimport {ToastrService} from 'ngx-toastr';\nimport {catchError, map, switchMap, take, tap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable, of, Subject} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/config';\nimport {DocumentenApiMetadata, PromptService} from '@valtimo/components';\nimport {UserProviderService} from '@valtimo/security';\nimport {FileSortService} from '../../../../services/file-sort.service';\nimport moment from 'moment';\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})\nexport class DossierDetailTabDocumentenApiDocumentsComponent implements OnInit {\n public readonly documentId: string;\n public readonly documentDefinitionName: string;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n public readonly acceptedFiles: string =\n this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public fields = [\n {key: 'fileName', label: 'File name'},\n {key: 'sizeInBytes', label: 'Size in bytes'},\n {key: 'createdOn', label: 'Created on'},\n {key: 'createdBy', label: 'Created by'},\n ];\n\n public showZaakLinkWarning: boolean;\n public isAdmin: boolean;\n public uploadProcessLinkedSet = false;\n public uploadProcessLinked!: boolean;\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new Subject<null>();\n readonly hideModal$ = new Subject<null>();\n readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n readonly loading$ = new BehaviorSubject<boolean>(true);\n private readonly refetch$ = new BehaviorSubject<null>(null);\n\n public relatedFiles$: Observable<Array<RelatedFileListItem>> = this.refetch$.pipe(\n switchMap(() =>\n combineLatest([\n this.documentService.getZakenApiDocuments(this.documentId),\n this.translateService.stream('key'),\n ])\n ),\n map(([relatedFiles]) => {\n const translatedFiles = relatedFiles?.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n }));\n\n return translatedFiles || [];\n }),\n map(relatedFiles => this.fileSortService.sortRelatedFilesByDateDescending(relatedFiles)),\n map(relatedFiles => {\n moment.locale(this.translateService.currentLang);\n\n return relatedFiles.map(file => ({\n ...file,\n createdOn: moment(new Date(file.createdOn)).format('L'),\n }));\n }),\n tap(() => this.loading$.next(false)),\n catchError(() => {\n this.showZaakLinkWarning = true;\n return of([]);\n })\n );\n\n readonly downloadingFileIndexes$ = new BehaviorSubject<Array<number>>([]);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly toastrService: ToastrService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly promptService: PromptService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly userProviderService: UserProviderService,\n private readonly fileSortService: FileSortService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n }\n\n ngOnInit(): void {\n this.refetchDocuments();\n this.setUploadProcessLinked();\n this.isUserAdmin();\n }\n\n fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal$.next(null);\n }\n\n downloadDocument(relatedFile: RelatedFile, index: number): void {\n this.downloadingFileIndexes$.pipe(take(1)).subscribe(indexes => {\n this.downloadingFileIndexes$.next([...indexes, index]);\n\n const finished$: Observable<null> = this.downloadService.downloadFile(\n `/api/v1/documenten-api/${relatedFile.pluginConfigurationId}/files/${relatedFile.fileId}/download`,\n relatedFile.fileName\n );\n\n finished$.pipe(take(1)).subscribe(() => {\n this.downloadingFileIndexes$.next(\n this.downloadingFileIndexes$.getValue().filter(downloadIndex => downloadIndex !== index)\n );\n });\n });\n }\n\n metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n this.hideModal$.next(null);\n\n this.fileToBeUploaded$\n .pipe(take(1))\n .pipe(\n tap(file => {\n this.uploadProviderService\n .uploadFileWithMetadata(file, this.documentId, metadata)\n .subscribe(res => {\n this.refetchDocuments();\n this.uploading$.next(false);\n this.fileToBeUploaded$.next(null);\n });\n })\n )\n .subscribe();\n }\n\n indexesIncludeIndex(indexes: Array<number>, index: number): boolean {\n return indexes.includes(index);\n }\n\n public isUserAdmin() {\n this.userProviderService.getUserSubject().subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n error => {\n this.isAdmin = false;\n }\n );\n }\n\n private refetchDocuments(): void {\n this.refetch$.next(null);\n }\n\n private setUploadProcessLinked(): void {\n this.uploadProviderService.checkUploadProcessLink(this.documentDefinitionName).subscribe(\n linked => {\n this.uploadProcessLinked = linked;\n this.uploadProcessLinkedSet = true;\n },\n () => {\n this.uploadProcessLinkedSet = true;\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{loading: loading$ | async} as obs\">\n <div *ngIf=\"uploadProcessLinkedSet && !uploadProcessLinked\">\n <div\n *ngIf=\"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=\"!isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <div *ngIf=\"showZaakLinkWarning\">\n <div\n [translate]=\"'dossier.documenten.noZaakFound'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n\n <valtimo-dropzone\n *ngIf=\"!obs.loading\"\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [camera]=\"false\"\n [disabled]=\"\n !uploadProcessLinkedSet || !uploadProcessLinked || obs.loading || showZaakLinkWarning\n \"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"true\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n\n <valtimo-widget>\n <valtimo-list\n [ngClass]=\"{hidden: obs.loading}\"\n [fields]=\"fields\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [items]=\"relatedFiles$ | async\"\n [viewMode]=\"true\"\n [lastColumnTemplate]=\"downloadButton\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n <ng-container *ngTemplateOutlet=\"loading; context: {loading: obs.loading}\"></ng-container>\n </valtimo-widget>\n</ng-container>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hide$]=\"hideModal$\"\n [show$]=\"showModal$\"\n></valtimo-documenten-api-metadata-modal>\n\n<ng-template #loading let-loading=\"loading\">\n <div *ngIf=\"loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #downloadButton let-index=\"index\" let-item=\"item\">\n <div\n class=\"download-button-container\"\n *ngIf=\"{isDownloading: indexesIncludeIndex(downloadingFileIndexes$ | async, index)} as vars\"\n >\n <button\n *ngIf=\"!vars.isDownloading\"\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"downloadDocument(item, index)\"\n >\n {{ 'interface.download' | translate\n }}<svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n <cds-loading size=\"sm\" *ngIf=\"vars.isDownloading\"></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, RelatedFile} from '@valtimo/document';\nimport {DownloadService, ResourceDto, UploadProviderService} from '@valtimo/resource';\nimport {ToastrService} from 'ngx-toastr';\nimport {map, switchMap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/config';\nimport {PromptService} from '@valtimo/components';\nimport {FileSortService} from '../../../../services/file-sort.service';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-s3-documents',\n templateUrl: './s3-documents.component.html',\n styleUrls: ['./s3-documents.component.scss'],\n})\nexport class DossierDetailTabS3DocumentsComponent implements OnInit {\n public readonly documentId: string;\n public readonly documentDefinitionName: string;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n public readonly acceptedFiles: string =\n this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public fields = [\n {key: 'fileName', label: 'File name'},\n {key: 'sizeInBytes', label: 'Size in bytes'},\n {key: 'createdOn', label: 'Created on', viewType: 'date'},\n {key: 'createdBy', label: 'Created by'},\n ];\n public actions = [\n {\n columnName: '',\n iconClass: 'mdi mdi-open-in-new',\n callback: this.downloadDocument.bind(this),\n },\n {\n columnName: '',\n iconClass: 'mdi mdi-delete',\n callback: this.removeRelatedFile.bind(this),\n },\n ];\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n private readonly refetch$ = new BehaviorSubject<null>(null);\n public relatedFiles$: Observable<Array<RelatedFile>> = this.refetch$.pipe(\n switchMap(() =>\n combineLatest([\n this.documentService.getDocument(this.documentId),\n this.translateService.stream('key'),\n ])\n ),\n map(([document]) => {\n const relatedFiles = document?.relatedFiles || [];\n const translatedFiles = relatedFiles.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n }));\n\n return translatedFiles || [];\n }),\n map(relatedFiles => this.fileSortService.sortRelatedFilesByDateDescending(relatedFiles))\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly toastrService: ToastrService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly promptService: PromptService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly fileSortService: FileSortService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n }\n\n ngOnInit(): void {\n this.refetchDocuments();\n }\n\n fileSelected(file: File): void {\n this.uploading$.next(true);\n\n this.uploadProviderService\n .uploadFile(file, this.documentDefinitionName, this.documentId)\n .pipe(\n switchMap(resourceFile =>\n this.documentService.assignResource(this.documentId, resourceFile.data.resourceId)\n )\n )\n .subscribe({\n next: () => {\n this.toastrService.success('Successfully uploaded document to dossier');\n this.refetchDocuments();\n this.uploading$.next(false);\n },\n error: () => {\n this.toastrService.error('Failed to upload document to dossier');\n this.uploading$.next(false);\n },\n });\n }\n\n downloadDocument(relatedFile: RelatedFile): void {\n this.uploadProviderService\n .getResource(relatedFile.fileId)\n .subscribe((resource: ResourceDto) => {\n this.downloadService.downloadFile(resource.url, resource.resource.name);\n });\n }\n\n removeRelatedFile(relatedFile: RelatedFile) {\n this.promptService.openPrompt({\n headerText: this.translateService.instant('dossier.deleteConfirmation.title'),\n bodyText: this.translateService.instant('dossier.deleteConfirmation.description'),\n cancelButtonText: this.translateService.instant('dossier.deleteConfirmation.cancel'),\n confirmButtonText: this.translateService.instant('dossier.deleteConfirmation.delete'),\n cancelMdiIcon: 'cancel',\n confirmMdiIcon: 'delete',\n cancelButtonType: 'secondary',\n confirmButtonType: 'primary',\n closeOnConfirm: true,\n closeOnCancel: true,\n confirmCallBackFunction: () => {\n this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(\n () => {\n this.toastrService.success('Successfully removed document from dossier');\n this.refetchDocuments();\n },\n () => {\n this.toastrService.error('Failed to remove document from dossier');\n }\n );\n },\n });\n }\n\n private refetchDocuments(): void {\n this.refetch$.next(null);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ConfigService, UploadProvider, ValtimoConfig} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-documents',\n templateUrl: './documents.component.html',\n styleUrls: ['./documents.component.css'],\n})\nexport class DossierDetailTabDocumentsComponent {\n openZaakUploadProvider!: boolean;\n s3UploadProvider!: boolean;\n documentenApiUploadProvider!: boolean;\n\n constructor(private readonly configService: ConfigService) {\n this.setConfig(configService.config);\n }\n\n private setConfig(config: ValtimoConfig): void {\n const uploadProvider = config.uploadProvider;\n this.openZaakUploadProvider = uploadProvider === UploadProvider.OPEN_ZAAK;\n this.documentenApiUploadProvider = uploadProvider === UploadProvider.DOCUMENTEN_API;\n this.s3UploadProvider = config.uploadProvider === UploadProvider.S3;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dossier-detail-tab-s3-documents\n *ngIf=\"s3UploadProvider || openZaakUploadProvider\"\n></valtimo-dossier-detail-tab-s3-documents>\n<valtimo-dossier-detail-tab-documenten-api-documents *ngIf=\"documentenApiUploadProvider\">\n</valtimo-dossier-detail-tab-documenten-api-documents>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ContactMomentService} from '@valtimo/contact-moment';\nimport moment from 'moment';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {ModalComponent, TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport {map, switchMap, take} from 'rxjs/operators';\nimport {AlertService} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../../models';\nimport {VModalComponent, ModalService, SelectItem, TableColumn} from '@valtimo/components';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-zaakobjecten',\n templateUrl: './zaakobjecten.component.html',\n styleUrls: ['./zaakobjecten.component.scss'],\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {PermissionRequest} from '@valtimo/access-control';\n\nenum PERMISSION_ACTION {\n add = 'create',\n assign = 'assign',\n claim = 'claim',\n delete = 'delete',\n edit = 'modify',\n}\n\nenum DOSSIER_DETAIL_PERMISSION_RESOURCE {\n jsonSchemaDocument = 'com.ritense.document.domain.impl.JsonSchemaDocument',\n note = 'com.ritense.note.domain.Note',\n jsonSchemaDocumentDefinition = 'com.ritense.document.domain.impl.JsonSchemaDocumentDefinition',\n}\n\nconst CAN_CLAIM_CASE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.claim,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n};\n\nconst CAN_ADD_NOTE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.add,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n};\n\nconst CAN_DELETE_NOTE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.delete,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n};\n\nconst CAN_EDIT_NOTE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.edit,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n};\n\nconst CAN_ASSIGN_CASE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.assign,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n};\n\nconst CAN_CREATE_CASE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.add,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n};\n\nexport {\n CAN_ADD_NOTE_PERMISSION,\n CAN_ASSIGN_CASE_PERMISSION,\n CAN_CLAIM_CASE_PERMISSION,\n CAN_DELETE_NOTE_PERMISSION,\n CAN_EDIT_NOTE_PERMISSION,\n DOSSIER_DETAIL_PERMISSION_RESOURCE,\n CAN_CREATE_CASE_PERMISSION,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-detail.permissions';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService, ConnectorModal, Page} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\nimport {Note, NoteCreateRequest, NoteUpdateRequest} from '../models/notes.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotesService {\n private readonly VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n private readonly _showModal$ = new Subject();\n private readonly _hideModal$ = new Subject();\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _modalType$ = new BehaviorSubject<ConnectorModal>('add');\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {}\n\n getDocumentNotes(documentId: string, params?: any): Observable<Page<Note>> {\n return this.http.get<Page<Note>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`,\n {params}\n );\n }\n\n createDocumentNote(documentId: string, request: NoteCreateRequest): Observable<Note> {\n return this.http.post<Note>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`,\n request\n );\n }\n\n updateNote(noteId: string, request: NoteUpdateRequest): Observable<Note> {\n return this.http.put<Note>(`${this.VALTIMO_API_ENDPOINT_URI}v1/note/${noteId}`, request);\n }\n\n deleteNote(noteId: string): Observable<Note> {\n return this.http.delete<Note>(`${this.VALTIMO_API_ENDPOINT_URI}v1/note/${noteId}`);\n }\n\n get showModal$(): Observable<any> {\n return this._showModal$.asObservable();\n }\n\n get hideModal$(): Observable<any> {\n return this._hideModal$.asObservable();\n }\n\n get refresh$(): Observable<any> {\n return this._refresh$.asObservable();\n }\n\n get modalType$(): Observable<ConnectorModal> {\n return this._modalType$.asObservable();\n }\n\n showModal(): void {\n this._showModal$.next(null);\n }\n\n hideModal(): void {\n this._hideModal$.next(null);\n }\n\n refresh(): void {\n this._refresh$.next(null);\n }\n\n setModalType(type: ConnectorModal): void {\n this._modalType$.next(type);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {VModalComponent, ModalService} from '@valtimo/components';\nimport {BehaviorSubject, combineLatest, Observable, Subject, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {NotesService} from '../../services/notes.service';\n\n@Component({\n selector: 'valtimo-note-modal',\n templateUrl: './note-modal.component.html',\n styleUrls: ['./note-modal.component.scss'],\n})\nexport class NoteModalComponent implements AfterViewInit, OnDestroy {\n @ViewChild('noteModal') noteModal: VModalComponent;\n @Input() customData;\n @Output() createNoteEvent: EventEmitter<any> = new EventEmitter();\n @Output() editNoteEvent: EventEmitter<any> = new EventEmitter();\n\n readonly disabled$!: Observable<boolean>;\n readonly valid$ = new BehaviorSubject<boolean>(false);\n readonly showForm$: Observable<boolean> = this.modalService.modalVisible$;\n readonly formData$ = new BehaviorSubject<any>(null);\n readonly modalType$: Observable<string> = this.notesService.modalType$;\n\n showSubscription!: Subscription;\n hideSubscription!: Subscription;\n\n readonly returnToFirstStepSubject$ = new Subject<boolean>();\n\n constructor(\n private readonly notesService: NotesService,\n private readonly modalService: ModalService\n ) {}\n\n ngAfterViewInit(): void {\n this.openShowSubscription();\n this.openHideSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription?.unsubscribe();\n this.hideSubscription?.unsubscribe();\n }\n\n hide(): void {\n this.formData$.next(null);\n this.valid$.next(false);\n this.modalService.closeModal();\n }\n\n cancel(): void {\n this.hide();\n }\n\n save(): void {\n combineLatest([this.valid$, this.formData$])\n .pipe(take(1))\n .subscribe(([valid, formData]) => {\n if (valid) {\n this.createNoteEvent.emit(formData);\n }\n });\n }\n\n emitNoteData(): void {\n combineLatest([this.valid$, this.formData$, this.modalType$])\n .pipe(take(1))\n .subscribe(([valid, formData, modalType]) => {\n if (valid) {\n if (modalType === 'add') {\n this.createNoteEvent.emit(formData);\n } else {\n this.editNoteEvent.emit({formData, data: this.customData});\n }\n }\n });\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.notesService.showModal$.subscribe(() => {\n this.show();\n });\n }\n\n private openHideSubscription(): void {\n this.hideSubscription = this.notesService.hideModal$.subscribe(() => {\n this.hide();\n });\n }\n\n private show(): void {\n this.notesService.modalType$.pipe(take(1)).subscribe(() => {\n this.modalService.openModal(this.noteModal);\n });\n }\n\n formValueChange(data: any): void {\n this.formData$.next(data);\n this.setValid(data);\n }\n\n private setValid(data: any): void {\n this.valid$.next(!!data.content);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #noteModal\n *ngIf=\"{disabled: disabled$ | async, valid: valid$ | async, modalType: modalType$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"add-note-title\">\n <v-title [margin]=\"false\">{{\n (obs.modalType === 'add' ? 'dossier.notes.addNote' : 'dossier.notes.modifyNote') | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'document.cancel' | translate }}\n </v-button>\n <ng-container\n *ngTemplateOutlet=\"\n obs.modalType === 'add' ? addNoteButton : editNoteButton;\n context: {obs: obs}\n \"\n ></ng-container>\n </div>\n </div>\n</v-modal>\n\n<ng-template #addNoteButton let-obs=\"obs\">\n <v-button\n (clickEvent)=\"emitNoteData()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n </v-button>\n</ng-template>\n<ng-template #editNoteButton let-obs=\"obs\">\n <v-button\n [disabled]=\"obs.disabled || !obs.valid\"\n (clickEvent)=\"emitNoteData()\"\n mdiIcon=\"pencil\"\n type=\"success\"\n >\n {{ 'dossier.notes.modifyNote' | translate }}\n </v-button>\n</ng-template>\n\n<ng-template #form>\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n type=\"textarea\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'dossier.notes.input.content' | translate\"\n name=\"content\"\n [fullWidth]=\"true\"\n [rows]=\"10\"\n [defaultValue]=\"customData?.summaryTranslationKey || ''\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PermissionService} from '@valtimo/access-control';\nimport {Pagination, TimelineItem, TimelineItemImpl, PromptService} from '@valtimo/components';\nimport {Page} from '@valtimo/config';\nimport moment from 'moment';\nimport {ToastrService} from 'ngx-toastr';\nimport {BehaviorSubject, combineLatest, map, Observable, of} from 'rxjs';\nimport {switchMap, take, tap} from 'rxjs/operators';\nimport {Note} from '../../../../models/notes.model';\nimport {\n CAN_ADD_NOTE_PERMISSION,\n CAN_DELETE_NOTE_PERMISSION,\n CAN_EDIT_NOTE_PERMISSION,\n DOSSIER_DETAIL_PERMISSION_RESOURCE,\n} from '../../../../permissions';\nimport {NotesService} from '../../../../services/notes.service';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-notes',\n templateUrl: './notes.component.html',\n styleUrls: ['./notes.component.scss'],\n})\nexport class DossierDetailTabNotesComponent implements OnInit {\n public timelineItems: TimelineItem[] = [];\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly fields$ = new BehaviorSubject<Array<{key: string; label: string}>>([]);\n public readonly customData$ = new BehaviorSubject<object>({});\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n public readonly actions = [\n {id: 'edit', label: 'Edit', icon: 'mdi-pencil', callback: this.editNote.bind(this)},\n {id: 'delete', label: 'Delete', icon: 'mdi-delete', callback: this.deleteNote.bind(this)},\n ];\n\n public readonly canAdd$: Observable<boolean> = this.documentId$.pipe(\n switchMap((identifier: string) =>\n this.permissionService.requestPermission(CAN_ADD_NOTE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier,\n })\n )\n );\n\n public readonly currentPageAndSize$ = new BehaviorSubject<Partial<Pagination>>({\n page: 0,\n size: 10,\n });\n\n public readonly pageSizes$ = new BehaviorSubject<Partial<Pagination>>({\n collectionSize: 0,\n });\n\n public readonly pagination$: Observable<Pagination> = combineLatest([\n this.currentPageAndSize$,\n this.pageSizes$,\n ]).pipe(\n map(\n ([currentPage, sizes]) =>\n ({...currentPage, ...sizes, page: (currentPage.page ?? 0) + 1}) as Pagination\n )\n );\n\n public readonly notes$: Observable<Array<Note>> = combineLatest([\n this.documentId$,\n this.currentPageAndSize$,\n this.notesService.refresh$,\n this.notesService.refresh$,\n ]).pipe(\n tap(() => (this.timelineItems = [])),\n switchMap(([documentId, currentPage]) =>\n this.notesService.getDocumentNotes(documentId, {\n page: currentPage.page,\n size: currentPage.size,\n })\n ),\n tap((res: Page<Note>) => {\n this.timelineItems = [];\n this.pageSizes$.pipe(take(1)).subscribe(sizes => {\n this.pageSizes$.next({...sizes, collectionSize: res.totalElements});\n });\n }),\n switchMap(res =>\n combineLatest([\n of(res),\n ...res.content.map(note =>\n this.permissionService.requestPermission(CAN_DELETE_NOTE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n identifier: note.id,\n })\n ),\n ...res.content.map(note =>\n this.permissionService.requestPermission(CAN_EDIT_NOTE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n identifier: note.id,\n })\n ),\n ])\n ),\n map(combinedResults => {\n const permissionResults = combinedResults.filter((curr, index) => index !== 0);\n const halfIndex = Math.ceil(permissionResults.length / 2);\n const deletePermissions = permissionResults.slice(0, halfIndex);\n const editPermissions = permissionResults.slice(halfIndex);\n\n return combinedResults[0].content.map((note: Note, index) => {\n const noteCreatedDate = moment(note.createdDate).locale(this.translateService.currentLang);\n this.timelineItems.push(\n new TimelineItemImpl(\n noteCreatedDate.format('DD MMM YYYY'),\n noteCreatedDate.format('HH:mm'),\n note.createdByUserFullName,\n noteCreatedDate.fromNow(),\n note.content,\n {},\n {id: note.id},\n [\n ...(deletePermissions[index] ? ['delete'] : []),\n ...(editPermissions[index] ? ['edit'] : []),\n ]\n )\n );\n return {\n ...note,\n };\n });\n }),\n tap(() => this.loading$.next(false))\n );\n\n constructor(\n private readonly notesService: NotesService,\n private readonly permissionService: PermissionService,\n private readonly promptService: PromptService,\n private readonly route: ActivatedRoute,\n private readonly toastrService: ToastrService,\n private readonly translateService: TranslateService\n ) {}\n\n public ngOnInit(): void {\n this.translateService.onLangChange.subscribe(() => {\n this.notesService.refresh();\n });\n }\n\n public paginationClicked(newPageNumber): void {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, page: newPageNumber - 1});\n });\n }\n\n public showAddModal(): void {\n this.customData$.next({});\n this.notesService.setModalType('add');\n this.notesService.showModal();\n }\n\n public createNewNote(content): void {\n this.documentId$\n .pipe(\n take(1),\n switchMap((documentId: string) => this.notesService.createDocumentNote(documentId, content))\n )\n .subscribe(() => {\n this.notesService.refresh();\n this.notesService.hideModal();\n });\n }\n\n public editNoteEvent(content): void {\n this.notesService.updateNote(content.data.customData.id, content.formData).subscribe(() => {\n this.notesService.refresh();\n this.notesService.hideModal();\n this.toastrService.success(this.translateService.instant('dossier.notes.editedMessage'));\n });\n }\n\n public editNote(data): void {\n this.customData$.next(data);\n this.notesService.setModalType('modify');\n this.notesService.showModal();\n }\n\n public deleteNote(data): void {\n this.promptService.openPrompt({\n headerText: this.translateService.instant('dossier.notes.deleteConfirmation.title'),\n bodyText: this.translateService.instant('dossier.notes.deleteConfirmation.description'),\n cancelButtonText: this.translateService.instant('dossier.deleteConfirmation.cancel'),\n confirmButtonText: this.translateService.instant('dossier.deleteConfirmation.delete'),\n cancelMdiIcon: 'cancel',\n confirmMdiIcon: 'delete',\n cancelButtonType: 'secondary',\n confirmButtonType: 'primary',\n closeOnConfirm: true,\n closeOnCancel: true,\n confirmCallBackFunction: () => {\n this.notesService.deleteNote(data.customData.id).subscribe(() => {\n this.notesService.refresh();\n this.toastrService.success(\n this.translateService.instant('dossier.notes.deleteConfirmation.deletedMessage')\n );\n });\n },\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div\n *ngIf=\"{\n canAdd: canAdd$ | async,\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n class=\"notes\"\n>\n <button\n *ngIf=\"obs.canAdd\"\n [disabled]=\"obs.loading\"\n (click)=\"showAddModal()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n class=\"btn btn-space btn-primary mr-1 add-note\"\n type=\"button\"\n >\n <span>{{ 'dossier.notes.addNote' | translate }}</span>\n\n <i class=\"ml-1 icon mdi mdi-plus\"></i>\n </button>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline [actions]=\"actions\" [items]=\"timelineItems\"></valtimo-timeline>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div *ngIf=\"obs.pagination\" class=\"d-flex justify-content-end row mr-0 ml-0\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxSize]=\"obs.pagination.size\"\n [pageSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n [(page)]=\"obs.pagination.page\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</div>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (createNoteEvent)=\"createNewNote($event)\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n></valtimo-note-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {DossierDetailTabSummaryComponent} from '../components/dossier-detail/tab/summary/summary.component';\nimport {DossierDetailTabProgressComponent} from '../components/dossier-detail/tab/progress/progress.component';\nimport {DossierDetailTabAuditComponent} from '../components/dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabDocumentsComponent} from '../components/dossier-detail/tab/documents/documents.component';\nimport {DefaultTabComponents, DefaultTabs} from '../models';\nimport {DossierDetailTabContactMomentsComponent} from '../components/dossier-detail/tab/contact-moments/contact-moments.component';\nimport {DossierDetailTabZaakobjectenComponent} from '../components/dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nimport {DossierDetailTabNotesComponent} from '../components/dossier-detail/tab/notes/notes.component';\n\nconst TAB_MAP = new InjectionToken<Map<string, object>>('TabMap');\n\nconst DEFAULT_TABS = new Map<string, object>([\n [DefaultTabs.summary, DossierDetailTabSummaryComponent],\n [DefaultTabs.progress, DossierDetailTabProgressComponent],\n [DefaultTabs.audit, DossierDetailTabAuditComponent],\n [DefaultTabs.documents, DossierDetailTabDocumentsComponent],\n]);\n\nconst DEFAULT_TAB_COMPONENTS: DefaultTabComponents = {\n [DefaultTabs.summary]: DossierDetailTabSummaryComponent,\n [DefaultTabs.progress]: DossierDetailTabProgressComponent,\n [DefaultTabs.audit]: DossierDetailTabAuditComponent,\n [DefaultTabs.documents]: DossierDetailTabDocumentsComponent,\n [DefaultTabs.contactMoments]: DossierDetailTabContactMomentsComponent,\n [DefaultTabs.zaakobjecten]: DossierDetailTabZaakobjectenComponent,\n [DefaultTabs.notes]: DossierDetailTabNotesComponent,\n};\n\nexport {TAB_MAP, DEFAULT_TABS, DEFAULT_TAB_COMPONENTS};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CaseTabConfig} from '../models';\n\nconst CASE_TAB_TOKEN = new InjectionToken<CaseTabConfig>(\n 'Specify a component to display per configured tab key.'\n);\n\nexport {CASE_TAB_TOKEN};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../../models';\nimport {VModalComponent, ModalService, TableColumn} from '@valtimo/components';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-object-type',\n templateUrl: './object-type.component.html',\n styleUrls: ['./object-type.component.scss'],\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {DossierTabService} from '../../../../services';\nimport {ActivatedRoute} from '@angular/router';\nimport {FormService} from '@valtimo/form';\nimport {BehaviorSubject, combineLatest, Observable, of, switchMap, tap} from 'rxjs';\nimport {FormioForm} from '@formio/angular';\nimport {catchError} from 'rxjs/operators';\n\n@Component({\n templateUrl: './formio.component.html',\n styleUrls: ['./formio.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DossierDetailTabFormioComponent {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly formNotFound$ = new BehaviorSubject<string>('');\n public readonly noFormSpecified$ = new BehaviorSubject<boolean>(false);\n private _formDefinitionName!: string;\n public readonly prefilledForm$: Observable<FormioForm | null> = combineLatest([\n this.tabService.tabs$,\n this.route.params,\n ]).pipe(\n switchMap(([tabs, params]) => {\n const currentTabName = params?.tab;\n const documentId = params?.documentId;\n const currentTab = tabs.find(tab => tab.name === currentTabName);\n\n if (!documentId || !currentTab?.contentKey) {\n this.noFormSpecified$.next(true);\n return of(null);\n }\n\n this._formDefinitionName = currentTab.contentKey;\n return this.formService.getFormDefinitionByNamePreFilled(currentTab.contentKey, documentId);\n }),\n tap(() => this.loading$.next(false)),\n catchError(() => {\n this.formNotFound$.next(this._formDefinitionName);\n this.loading$.next(false);\n return of(null);\n })\n );\n\n constructor(\n private readonly tabService: DossierTabService,\n private readonly route: ActivatedRoute,\n private readonly formService: FormService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n prefilledForm: prefilledForm$ | async,\n loading: loading$ | async,\n formNotFound: formNotFound$ | async,\n noFormSpecified: noFormSpecified$ | async\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <p *ngIf=\"obs.formNotFound\" class=\"error-message\">\n {{ 'dossier.formio.formNotFound' | translate: {formDefinitionName: obs.formNotFound} }}\n </p>\n\n <p *ngIf=\"obs.noFormSpecified\" class=\"error-message\">\n {{ 'dossier.formio.noFormSpecified' | translate }}\n </p>\n\n <valtimo-form-io *ngIf=\"obs.prefilledForm\" [form]=\"obs.prefilledForm\"> </valtimo-form-io>\n</ng-container>\n","import {Injectable} from '@angular/core';\nimport {ConfigService, Page} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {Note} from '../models/notes.model';\nimport {ApiTabItem} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DossierTabApiService {\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 public getDossierTabs(documentDefinitionName): Observable<Array<ApiTabItem>> {\n return this.http.get<Array<ApiTabItem>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/case-definition/${documentDefinitionName}/tab`\n );\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {ApiTabItem, ApiTabType, CaseTabConfig, TabImpl} from '../models';\nimport {CASE_TAB_TOKEN, DEFAULT_TAB_COMPONENTS, DEFAULT_TABS, TAB_MAP} from '../constants';\nimport {ConfigService} from '@valtimo/config';\nimport {ActivatedRoute} from '@angular/router';\nimport {DossierDetailTabObjectTypeComponent} from '../components/dossier-detail/tab/object-type/object-type.component';\nimport {DossierTabApiService} from './dossier-tab-api.service';\nimport {BehaviorSubject, filter, map, Observable, Subscription} from 'rxjs';\nimport {DossierDetailTabFormioComponent} from '../components/dossier-detail/tab/formio/formio.component';\n\n@Injectable()\nexport class DossierTabService implements OnDestroy {\n private readonly _tabManagementEnabled!: boolean;\n private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.documentDefinitionName),\n filter(documentDefinitionName => !!documentDefinitionName)\n );\n private readonly _tabs$ = new BehaviorSubject<Array<TabImpl> | null>(null);\n private readonly _subscriptions = new Subscription();\n\n public get tabs$(): Observable<Array<TabImpl>> {\n return this._tabs$.pipe(filter(tabs => !!tabs));\n }\n\n constructor(\n @Inject(TAB_MAP) private readonly tabMap: Map<string, object> = DEFAULT_TABS,\n @Optional() @Inject(CASE_TAB_TOKEN) private readonly caseTabConfig: CaseTabConfig,\n private readonly configService: ConfigService,\n private readonly route: ActivatedRoute,\n private readonly dossierTabApiService: DossierTabApiService\n ) {\n this._tabManagementEnabled = this.configService.config?.featureToggles?.enableTabManagement;\n this.openDocumentDefinitionNameSubscription();\n }\n\n public ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n\n private getConfigurableTabs(documentDefinitionName: string): Map<string, object> {\n const tabMap = new Map<string, object>();\n\n if (this.configService?.config?.caseObjectTypes) {\n const allNamesObjects = this.configService?.config?.caseObjectTypes[documentDefinitionName];\n\n allNamesObjects?.forEach(name => {\n tabMap.set(name, DossierDetailTabObjectTypeComponent);\n });\n }\n\n return tabMap;\n }\n\n private getAllEnvironmentTabs(extraTabs: Map<string, object>): Array<TabImpl> {\n let i = 0;\n const tabMap = extraTabs\n ? new Map([...Array.from(this.tabMap.entries()), ...Array.from(extraTabs.entries())])\n : this.tabMap;\n const tabs: Array<TabImpl> = [];\n\n tabMap.forEach((component, name) => {\n tabs.push(new TabImpl(name, i, component));\n i++;\n });\n\n return tabs;\n }\n\n private openDocumentDefinitionNameSubscription(): void {\n this._subscriptions.add(\n this._documentDefinitionName$.subscribe(documentDefinitionName => {\n if (this._tabManagementEnabled) {\n this.setApiTabs(documentDefinitionName);\n } else {\n this.setEnvironmentTabs(documentDefinitionName);\n }\n })\n );\n }\n\n private setEnvironmentTabs(documentDefinitionName: string): void {\n const configurableTabs = this.getConfigurableTabs(documentDefinitionName);\n const allEnvironmentTabs = this.getAllEnvironmentTabs(configurableTabs);\n this._tabs$.next(allEnvironmentTabs);\n }\n\n private setApiTabs(documentDefinitionName: string): void {\n this.dossierTabApiService.getDossierTabs(documentDefinitionName).subscribe({\n next: tabs => {\n const supportedTabs = tabs.filter(tab => this.filterTab(tab));\n const mappedTabs = supportedTabs.map((tab, index) => this.mapTab(tab, index));\n this._tabs$.next(mappedTabs.filter(tab => !!tab));\n },\n error: () => {\n this._tabs$.next([]);\n },\n });\n }\n\n private filterTab(tab: ApiTabItem): boolean {\n switch (tab.type) {\n case ApiTabType.STANDARD:\n return !!DEFAULT_TAB_COMPONENTS[tab.contentKey];\n case ApiTabType.CUSTOM:\n return !!(this.caseTabConfig || {})[tab.contentKey];\n default:\n return true;\n }\n }\n\n private mapTab(tab: ApiTabItem, index: number): TabImpl | null {\n switch (tab.type) {\n case ApiTabType.STANDARD:\n return new TabImpl(\n tab.key,\n index,\n DEFAULT_TAB_COMPONENTS[tab.contentKey],\n tab.contentKey,\n tab.name\n );\n case ApiTabType.FORMIO:\n return new TabImpl(\n tab.key,\n index,\n DossierDetailTabFormioComponent,\n tab.contentKey,\n tab.name\n );\n case ApiTabType.CUSTOM:\n return new TabImpl(\n tab.key,\n index,\n this.caseTabConfig[tab.contentKey],\n tab.contentKey,\n tab.name\n );\n default:\n return null;\n }\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-bulk-assign.service';\nexport * from './dossier-column.service';\nexport * from './zaakobjecten.service';\nexport * from './dossier-parameter.service';\nexport * from './dossier-list.service';\nexport * from './dossier-list-assignee.service';\nexport * from './dossier-list-pagination.service';\nexport * from './dossier-list-search.service';\nexport * from './dossier-tab.service';\nexport * from './dossier.service';\nexport * from './dossier-tab-api.service';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {ListItem} from 'carbon-components-angular';\nimport {map, Observable} from 'rxjs';\nimport {CandidateUser} from '../../models';\nimport {DossierBulkAssignService} from '../../services';\n\n@Component({\n selector: 'valtimo-dossier-bulk-assign-modal',\n templateUrl: './dossier-bulk-assign-modal.component.html',\n styleUrls: ['./dossier-bulk-assign-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DossierBulkAssignModalComponent {\n @HostBinding('class') public modalClass = 'valtimo-dossier-bulk-assign-modal';\n\n @Input() public set documentIds(value: string[]) {\n if (!value.length) {\n return;\n }\n this.bulkAssignService.loadCandidateUsers(value);\n }\n @Input() open = false;\n\n @Output() closeEvent = new EventEmitter<string | null>();\n\n public candidateUsers$: Observable<ListItem[]> = this.bulkAssignService.candidateUsers$.pipe(\n map((candidateUsers: CandidateUser[]) =>\n candidateUsers.map((candidateUser: CandidateUser) => ({\n id: candidateUser.id,\n content: `${candidateUser.firstName} ${candidateUser.lastName}`,\n selected: this.formGroup.get('assignee')?.value?.id === candidateUser.id,\n }))\n )\n );\n\n public formGroup: FormGroup = this.fb.group({\n assignee: this.fb.control({id: '', content: '', selected: false}, Validators.required),\n });\n\n constructor(\n private bulkAssignService: DossierBulkAssignService,\n private fb: FormBuilder\n ) {}\n\n public closeModal(confirm?: boolean): void {\n const assignee: ListItem | null = this.formGroup.get('assignee')?.value ?? null;\n if (!assignee) {\n this.closeEvent.emit(null);\n return;\n }\n\n this.closeEvent.emit(confirm ? assignee.id : null);\n this.formGroup.reset();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"open\" (close)=\"closeModal()\" showFooter=\"true\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dossier.bulkAssign.modal.title' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form *ngIf=\"candidateUsers$ | async as candidateUsers\" [formGroup]=\"formGroup\">\n <cds-combo-box\n formControlName=\"assignee\"\n [dropUp]=\"false\"\n [items]=\"candidateUsers\"\n [label]=\"'dossier.bulkAssign.modal.selectLabel' | translate\"\n [placeholder]=\"'dossier.bulkAssign.modal.selectPlaceholder' | translate\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">{{ 'interface.cancel' | translate }}</button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"closeModal(true)\">\n {{ 'dossier.bulkAssign.modal.confirm' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormioBeforeSubmit, FormioForm} from '@formio/angular';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {FormFlowService, FormSubmissionResult, ProcessLinkService} from '@valtimo/form-link';\nimport {NGXLogger} from 'ngx-logger';\nimport {noop, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {UserProviderService} from '@valtimo/security';\n\n@Component({\n selector: 'valtimo-dossier-supporting-process-start-modal',\n templateUrl: './dossier-supporting-process-start-modal.component.html',\n styleUrls: ['./dossier-supporting-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierSupportingProcessStartModalComponent {\n public processDefinitionKey: string;\n public documentDefinitionName: string;\n public processName: string;\n public formDefinition: FormioForm;\n public formioSubmission: FormioSubmission;\n private processLinkId: string;\n public options: ValtimoFormioOptions;\n public submission: object;\n public processDefinitionId: string;\n public formFlowInstanceId: string;\n\n readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));\n\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('supportingProcessStartModal', {static: false}) modal: ModalComponent;\n @Output() formSubmit = new EventEmitter();\n\n private documentId: string;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private processService: ProcessService,\n private processLinkService: ProcessLinkService,\n private documentService: DocumentService,\n private formFlowService: FormFlowService,\n private logger: NGXLogger,\n private readonly userProviderService: UserProviderService\n ) {}\n\n private loadProcessLink() {\n this.processLinkId = null;\n this.formDefinition = null;\n this.formFlowInstanceId = null;\n this.processService\n .getProcessDefinitionStartProcessLink(this.processDefinitionId, this.documentId, null)\n .pipe(take(1))\n .subscribe(startProcessResult => {\n if (startProcessResult) {\n switch (startProcessResult.type) {\n case 'form':\n this.formDefinition = startProcessResult.properties.prefilledForm;\n this.processLinkId = startProcessResult.processLinkId;\n break;\n case 'form-flow':\n this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;\n break;\n }\n }\n this.modal.show();\n });\n }\n\n openModal(processDocumentDefinition: ProcessDocumentDefinition, documentId: string) {\n this.documentId = documentId;\n this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;\n this.processDefinitionId = processDocumentDefinition.latestVersionId;\n this.processName = processDocumentDefinition.processName;\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n this.options.setHooks(formioBeforeSubmit);\n this.loadProcessLink();\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formioSubmission = submission;\n this.processLinkService\n .submitForm(this.processLinkId, submission.data, this.documentId)\n .subscribe({\n next: (formSubmissionResult: FormSubmissionResult) => {\n this.formSubmitted();\n },\n error: errors => {\n this.form.showErrors(errors);\n },\n });\n }\n\n public formSubmitted() {\n this.modal.hide();\n this.formSubmit.emit();\n }\n\n public gotoProcessLinkScreen(): void {\n this.modal.hide();\n this.router.navigate(['process-links'], {queryParams: {process: this.processDefinitionKey}});\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"\n (processDefinitionKey | translate) !== processDefinitionKey\n ? (processDefinitionKey | translate)\n : processName\n \"\n>\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formDefinition && !formFlowInstanceId\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {DropdownItem} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {BehaviorSubject, filter, map, Observable, of, switchMap} from 'rxjs';\nimport {NamedUser} from '@valtimo/config';\nimport {tap} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dossier-assign-user',\n templateUrl: './dossier-assign-user.component.html',\n styleUrls: ['./dossier-assign-user.component.css'],\n})\nexport class DossierAssignUserComponent {\n @Input() set documentId(value: string) {\n this.documentId$.next(value);\n }\n @Input() set assigneeId(value: string) {\n this.assigneeId$.next(value);\n }\n @Input() set assigneeFullName(value: string) {\n this.assigneeFullName$.next(value);\n }\n @Input() hasPermission = true;\n @Output() assignmentOfDocumentChanged = new EventEmitter();\n\n public readonly disabled$ = new BehaviorSubject<boolean>(true);\n public readonly documentId$ = new BehaviorSubject<string>('');\n public readonly userItems$: Observable<Array<DropdownItem>> = this.documentId$.pipe(\n filter(documentId => !!documentId),\n switchMap(documentId =>\n this.hasPermission ? this.documentService.getCandidateUsers(documentId) : of([])\n ),\n map(candidateUsers => this.mapUsersForDropdown(candidateUsers)),\n tap(() => this.enable())\n );\n public readonly assigneeId$ = new BehaviorSubject<string>('');\n public readonly assigneeFullName$ = new BehaviorSubject<string>('');\n\n constructor(private readonly documentService: DocumentService) {}\n\n public assignDocument(userId: string): void {\n this.disable();\n\n this.documentId$\n .pipe(\n switchMap(documentId => this.documentService.assignHandlerToDocument(documentId, userId))\n )\n .subscribe(() => {\n this.emitChange();\n this.enable();\n });\n }\n\n public unassignDocument(): void {\n this.disable();\n\n this.documentId$\n .pipe(switchMap(documentId => this.documentService.unassignHandlerFromDocument(documentId)))\n .subscribe(() => {\n this.emitChange();\n this.enable();\n });\n }\n\n private mapUsersForDropdown(users: NamedUser[]): DropdownItem[] {\n return users\n .sort((a, b) => {\n if (a.lastName && b.lastName) {\n return a.lastName.localeCompare(b.lastName);\n }\n\n return 0;\n })\n .map(user => ({text: user.label, id: user.id}));\n }\n\n private emitChange(): void {\n this.assignmentOfDocumentChanged.emit();\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <ng-container *ngTemplateOutlet=\"content\"> </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n assigneeFullName: assigneeFullName$ | async,\n assigneeId: assigneeId$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"!hasPermission && obs.assigneeFullName\">\n <ng-container *ngTemplateOutlet=\"fullName; context: {obs: obs}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"hasPermission\">\n <ng-container *ngTemplateOutlet=\"selectUser; context: {obs: obs}\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #fullName let-obs=\"obs\">\n <valtimo-searchable-dropdown-select\n [buttonText]=\"'assignDocument.header' | translate\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [hasPermission]=\"false\"\n [hasSelection]=\"true\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [selectedTextValue]=\"obs.assigneeFullName\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [style]=\"'underlinedText'\"\n [width]=\"250\"\n class=\"dossier-candidates-dropdown\"\n >\n </valtimo-searchable-dropdown-select>\n</ng-template>\n\n<ng-template #selectUser let-obs=\"obs\">\n <ng-container *ngIf=\"userItems$ | async as userItems; else loadingUsers\">\n <valtimo-searchable-dropdown-select\n [buttonText]=\"'assignDocument.header' | translate\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [disabled]=\"obs.disabled\"\n [hasPermission]=\"hasPermission\"\n [hasSelection]=\"obs.assigneeId\"\n [items]=\"userItems\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [selectedTextValue]=\"obs.assigneeFullName\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [style]=\"'underlinedText'\"\n [width]=\"250\"\n (clearSelection)=\"unassignDocument()\"\n (itemSelected)=\"assignDocument($event)\"\n class=\"dossier-candidates-dropdown\"\n >\n </valtimo-searchable-dropdown-select>\n </ng-container>\n</ng-template>\n\n<ng-template #loadingUsers>\n <h5>\n <b>{{ 'assignDocument.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {map, Observable, of} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {TabImpl} from '../../models';\n\n@Pipe({\n name: 'tabTranslate',\n})\nexport class TabTranslatePipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n transform(tab: TabImpl): Observable<string> {\n const translationId = 'dossier.tabs.' + tab.name;\n\n return tab.title\n ? of(tab.title)\n : this.translateService\n .stream(translationId)\n .pipe(map(translation => (translationId !== translation ? translation : tab.name)));\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Location} from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ComponentFactoryResolver,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {ActivatedRoute, ParamMap, Params, Router} from '@angular/router';\nimport {PermissionService} from '@valtimo/access-control';\nimport {BreadcrumbService} from '@valtimo/components';\nimport {ConfigService} from '@valtimo/config';\nimport {Document, DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {KeycloakService} from 'keycloak-angular';\nimport moment from 'moment';\nimport {NGXLogger} from 'ngx-logger';\nimport {\n BehaviorSubject,\n combineLatest,\n from,\n map,\n Observable,\n of,\n startWith,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {DossierSupportingProcessStartModalComponent} from '../dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {TabLoaderImpl} from '../../models';\nimport {\n CAN_ASSIGN_CASE_PERMISSION,\n CAN_CLAIM_CASE_PERMISSION,\n DOSSIER_DETAIL_PERMISSION_RESOURCE,\n} from '../../permissions';\nimport {DossierService, DossierTabService} from '../../services';\n\n@Component({\n selector: 'valtimo-dossier-detail',\n templateUrl: './dossier-detail.component.html',\n styleUrls: ['./dossier-detail.component.css'],\n providers: [DossierTabService],\n})\nexport class DossierDetailComponent implements AfterViewInit, OnDestroy {\n @ViewChild('supportingProcessStartModal')\n supportingProcessStart: DossierSupportingProcessStartModalComponent;\n\n @ViewChild('tabContainer', {read: ViewContainerRef})\n viewContainerRef: ViewContainerRef;\n\n public customDossierHeaderItems: Array<any> = [];\n public document: Document | null = null;\n public documentDefinitionName: string;\n public documentDefinitionNameTitle: string;\n public documentId: string;\n public processDefinitionListFields: Array<any> = [];\n public processDocumentDefinitions: ProcessDocumentDefinition[] = [];\n public tabLoader: TabLoaderImpl | null = null;\n\n public readonly assigneeId$ = new BehaviorSubject<string>('');\n\n public readonly document$: Observable<Document | null> =\n this.dossierService.refreshDocument$.pipe(\n switchMap(() => this.route.params),\n map((params: Params) => params?.documentId),\n switchMap((documentId: string) =>\n documentId ? this.documentService.getDocument(this.documentId) : of(null)\n ),\n tap((document: Document | null) => {\n if (document) {\n this.assigneeId$.next(document.assigneeId);\n this.document = document;\n\n if (\n this.configService.config.customDossierHeader?.hasOwnProperty(\n this.documentDefinitionName.toLowerCase()\n ) &&\n this.customDossierHeaderItems.length === 0\n ) {\n this.configService.config.customDossierHeader[\n this.documentDefinitionName.toLowerCase()\n ]?.forEach(item => this.getCustomDossierHeaderItem(item));\n }\n }\n })\n );\n\n public readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.documentDefinitionName || '')\n );\n\n public readonly userId$: Observable<string | undefined> = from(\n this.keyCloakService.isLoggedIn()\n ).pipe(\n switchMap(() => this.keyCloakService.loadUserProfile()),\n map(profile => profile?.id)\n );\n\n public readonly isAssigning$ = new BehaviorSubject<boolean>(false);\n public readonly isAssignedToCurrentUser$: Observable<boolean> = combineLatest([\n this.assigneeId$,\n this.userId$,\n ]).pipe(\n map(([assigneeId, userId]) => !!assigneeId && !!userId && assigneeId === userId),\n startWith(true)\n );\n\n public readonly canHaveAssignee$: Observable<boolean> = this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n map(caseSettings => caseSettings?.canHaveAssignee)\n );\n\n public readonly canAssignLoaded$ = new BehaviorSubject<boolean>(false);\n public readonly canAssign$: Observable<boolean> = this.route.paramMap.pipe(\n switchMap((params: ParamMap) =>\n this.permissionService.requestPermission(CAN_ASSIGN_CASE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier: params.get('documentId') ?? '',\n })\n ),\n tap(() => {\n this.canAssignLoaded$.next(true);\n })\n );\n\n public readonly canClaim$: Observable<boolean> = this.route.paramMap.pipe(\n switchMap((params: ParamMap) =>\n this.permissionService.requestPermission(CAN_CLAIM_CASE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier: params.get('documentId') ?? '',\n })\n )\n );\n\n public readonly loadingTabs$ = new BehaviorSubject<boolean>(true);\n public readonly noTabsConfigured$ = new BehaviorSubject<boolean>(false);\n\n private _snapshot: ParamMap;\n private _initialTabName: string;\n\n constructor(\n private readonly breadcrumbService: BreadcrumbService,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly keyCloakService: KeycloakService,\n private readonly location: Location,\n private readonly logger: NGXLogger,\n private readonly permissionService: PermissionService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly dossierTabService: DossierTabService,\n private readonly dossierService: DossierService\n ) {\n this._snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this._snapshot.get('documentDefinitionName') || '';\n this.documentId = this._snapshot.get('documentId') || '';\n }\n\n public ngAfterViewInit(): void {\n this.initTabLoader();\n this.initBreadcrumb();\n this.getAllAssociatedProcessDefinitions();\n }\n\n public ngOnDestroy(): void {\n this.breadcrumbService.clearSecondBreadcrumb();\n }\n\n public getAllAssociatedProcessDefinitions(): void {\n this.documentService\n .findProcessDocumentDefinitions(this.documentDefinitionName)\n .subscribe((processDocumentDefinitions: ProcessDocumentDefinition[]) => {\n this.processDocumentDefinitions = processDocumentDefinitions.filter(\n processDocumentDefinition => processDocumentDefinition.startableByUser\n );\n\n this.processDefinitionListFields = [\n {\n key: 'processName',\n label: 'Proces',\n },\n ];\n });\n }\n\n public startProcess(processDocumentDefinition: ProcessDocumentDefinition): void {\n this.supportingProcessStart.openModal(processDocumentDefinition, this.documentId);\n }\n\n public claimAssignee(): void {\n this.isAssigning$.next(true);\n\n this.userId$\n .pipe(\n take(1),\n switchMap((userId: string | undefined) =>\n this.documentService.assignHandlerToDocument(this.documentId, userId ?? '')\n )\n )\n .subscribe({\n next: (): void => {\n this.isAssigning$.next(false);\n this.dossierService.refresh();\n },\n error: (): void => {\n this.isAssigning$.next(false);\n this.logger.debug('Something went wrong while assigning user to case');\n },\n });\n }\n\n private initBreadcrumb(): void {\n this.documentService\n .getDocumentDefinition(this.documentDefinitionName)\n .subscribe(definition => {\n this.documentDefinitionNameTitle = definition.schema.title;\n this.setBreadcrumb();\n });\n }\n\n private initTabLoader(): void {\n this.dossierTabService.tabs$.pipe(take(1)).subscribe(tabs => {\n if (tabs?.length > 0) {\n this._initialTabName = this._snapshot.get('tab') ?? '';\n this.tabLoader = new TabLoaderImpl(\n tabs,\n this.componentFactoryResolver,\n this.viewContainerRef,\n this.router,\n this.route\n );\n this.tabLoader.initial(this._initialTabName);\n this.loadingTabs$.next(false);\n } else {\n this.noTabsConfigured$.next(true);\n this.loadingTabs$.next(false);\n }\n });\n }\n\n public assignmentOfDocumentChanged(): void {\n this.dossierService.refresh();\n }\n\n private getCustomDossierHeaderItem(item): void {\n this.customDossierHeaderItems.push({\n label: item['labelTranslationKey'] || '',\n columnSize: item['columnSize'] || 3,\n textSize: item['textSize'] || 'md',\n customClass: item['customClass'] || '',\n modifier: item['modifier'] || '',\n value: item['propertyPaths']?.reduce(\n (prev, curr) => prev + this.getStringFromDocumentPath(item, curr),\n ''\n ),\n });\n }\n\n private getStringFromDocumentPath(item, path): string {\n const prefix = item['propertyPaths'].indexOf(path) > 0 ? ' ' : '';\n let string =\n path.split('.').reduce((o, i) => o[i], this.document?.content) || item['noValueText'] || '';\n const dateFormats = [moment.ISO_8601, 'MM-DD-YYYY', 'DD-MM-YYYY', 'YYYY-MM-DD'];\n switch (item['modifier']) {\n case 'age': {\n if (moment(string, dateFormats, true).isValid()) {\n string = moment().diff(string, 'years');\n }\n break;\n }\n default: {\n if (moment(string, dateFormats, true).isValid()) {\n string = moment(string).format('DD-MM-YYYY');\n }\n }\n }\n return prefix + string;\n }\n\n private setBreadcrumb(): void {\n this.breadcrumbService.setSecondBreadcrumb({\n route: [`/dossiers/${this.documentDefinitionName}`],\n content: this.documentDefinitionNameTitle,\n href: `/dossiers/${this.documentDefinitionName}`,\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div\n *ngIf=\"{\n canAssign: canAssign$ | async,\n canClaim: canClaim$ | async,\n canHaveAssignee: canHaveAssignee$ | async,\n document: document$ | async\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"card-header bg-light card-header-divider pb-2\">\n <div class=\"row\">\n <div class=\"col\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailHeader;\n context: {\n canHaveAssignee: obs.canHaveAssignee,\n document: obs.document,\n canAssign: obs.canAssign\n }\n \"\n ></ng-container>\n </div>\n\n <div class=\"btn-group mt-m3px mb-3 col-auto\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n\n <ng-container\n *ngTemplateOutlet=\"\n claimButton;\n context: {canClaim: obs.canClaim, canHaveAssignee: obs.canHaveAssignee}\n \"\n ></ng-container>\n\n <div class=\"dropdown\">\n <button\n [disabled]=\"processDocumentDefinitions.length === 0\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n class=\"btn btn-primary dropdown-toggle\"\n data-toggle=\"dropdown\"\n id=\"startProcessDropdown\"\n placement=\"bottom\"\n type=\"button\"\n >\n <span>{{ 'dossier.startSubProcess' | translate }}</span>\n\n <i class=\"ml-1 mdi mdi-chevron-down\"></i>\n </button>\n\n <div\n aria-labelledby=\"startProcessDropdown\"\n class=\"dropdown-menu dropdown-menu-right\"\n >\n <button\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n (click)=\"startProcess(processDocumentDefinition)\"\n class=\"dropdown-item p\"\n href=\"#\"\n >\n {{\n (processDocumentDefinition?.id?.processDefinitionKey | translate) !==\n processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName\n }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ul *ngIf=\"tabLoader\" class=\"nav nav-tabs\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabLoader.tabs\">\n <a\n [ngClass]=\"{active: tab.isActive()}\"\n (click)=\"tabLoader.load(tab)\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n id=\"{{ tab.name }}-tab\"\n >\n {{ tab | tabTranslate | async }}\n </a>\n </li>\n </ul>\n\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <div *ngIf=\"loadingTabs$ | async\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <valtimo-no-results\n *ngIf=\"noTabsConfigured$ | async\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n\n <ng-template #tabContainer></ng-template>\n\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </div>\n\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template\n #caseDetailHeader\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div class=\"row\" *ngIf=\"customDossierHeaderItems.length > 0; else defaultTitle\">\n <span\n *ngFor=\"let item of customDossierHeaderItems\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n class=\"mb-0 mt-0 pb-2 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n\n <span *ngIf=\"item.label && item.value\">: </span>\n\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document, canAssign: canAssign}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n <div class=\"row ml-0 mr-0\">{{ documentDefinitionNameTitle?.trim() }}</div>\n</ng-template>\n\n<ng-template\n #caseDetailAssignee\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div class=\"row ml-0 mr-0 mt-1 mb-1\" *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"user-full-name\" *ngIf=\"canClaim && canHaveAssignee\">\n <button\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n class=\"btn btn-space btn-primary mr-1\"\n placement=\"bottom\"\n type=\"button\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </button>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {FormFlowService, FormSubmissionResult, ProcessLinkService} from '@valtimo/form-link';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {FormioBeforeSubmit} from '@formio/angular/formio.common';\nimport {FormioForm} from '@formio/angular';\nimport {NGXLogger} from 'ngx-logger';\nimport {UserProviderService} from '@valtimo/security';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dossier-process-start-modal',\n templateUrl: './dossier-process-start-modal.component.html',\n styleUrls: ['./dossier-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierProcessStartModalComponent implements OnInit {\n public processDefinitionKey: string;\n public processDefinitionId: string;\n public documentDefinitionName: string;\n public processName: string;\n public formDefinition: FormioForm;\n public formFlowInstanceId: string;\n public formioSubmission: FormioSubmission;\n private processLinkId: string;\n public options: ValtimoFormioOptions;\n public isAdmin: boolean;\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('processStartModal', {static: false}) modal: ModalComponent;\n @Output() formFlowComplete = new EventEmitter();\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private processService: ProcessService,\n private documentService: DocumentService,\n private processLinkService: ProcessLinkService,\n private formFlowService: FormFlowService,\n private userProviderService: UserProviderService,\n private logger: NGXLogger\n ) {}\n\n ngOnInit() {\n this.isUserAdmin();\n }\n\n private loadProcessLink() {\n this.processLinkId = null;\n this.formDefinition = null;\n this.formFlowInstanceId = null;\n this.processService\n .getProcessDefinitionStartProcessLink(\n this.processDefinitionId,\n null,\n this.documentDefinitionName\n )\n .pipe(take(1))\n .subscribe(startProcessResult => {\n if (startProcessResult) {\n switch (startProcessResult.type) {\n case 'form':\n this.formDefinition = startProcessResult.properties.prefilledForm;\n this.processLinkId = startProcessResult.processLinkId;\n break;\n case 'form-flow':\n this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;\n break;\n }\n }\n this.modal.show();\n });\n }\n\n public gotoProcessLinkScreen(): void {\n this.modal.hide();\n this.router.navigate(['process-links'], {queryParams: {process: this.processDefinitionKey}});\n }\n\n public get modalTitle() {\n return `Start - ${this.processName}`;\n }\n\n openModal(processDocumentDefinition: ProcessDocumentDefinition) {\n this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;\n this.processDefinitionId = processDocumentDefinition.latestVersionId;\n this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.processName = processDocumentDefinition.processName;\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n this.options.setHooks(formioBeforeSubmit);\n this.loadProcessLink();\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formioSubmission = submission;\n\n this.processLinkService.submitForm(this.processLinkId, submission.data).subscribe({\n next: (formSubmissionResult: FormSubmissionResult) => {\n this.submitCompleted(formSubmissionResult);\n },\n error: errors => {\n this.form.showErrors(errors);\n },\n });\n }\n\n public formFlowSubmitted(): void {\n this.formFlowComplete.emit(null);\n this.modal.hide();\n }\n\n public isUserAdmin(): void {\n this.userProviderService.getUserSubject().subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n error => {\n this.isAdmin = false;\n }\n );\n }\n\n private submitCompleted(formSubmissionResult: FormSubmissionResult): void {\n this.modal.hide();\n this.router.navigate([\n 'dossiers',\n this.documentDefinitionName,\n 'document',\n formSubmissionResult.documentId,\n ]);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && !isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {map, Observable, of, switchMap, tap} from 'rxjs';\nimport {DossierListService} from '../../services';\nimport {DossierProcessStartModalComponent} from '../dossier-process-start-modal/dossier-process-start-modal.component';\n\ndeclare const $;\n\n@Component({\n selector: 'valtimo-dossier-list-actions',\n templateUrl: './dossier-list-actions.component.html',\n styleUrls: ['./dossier-list-actions.component.scss'],\n})\nexport class DossierListActionsComponent implements OnInit {\n @ViewChild('processStartModal') processStart: DossierProcessStartModalComponent;\n\n @Input() loading!: boolean;\n\n @Output() formFlowComplete = new EventEmitter();\n\n public readonly associatedProcessDocumentDefinitions$: Observable<\n Array<ProcessDocumentDefinition>\n > = this.listService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n documentDefinitionName\n ? this.documentService.findProcessDocumentDefinitions(documentDefinitionName)\n : of([])\n ),\n map(processDocumentDefinitions =>\n processDocumentDefinitions.filter(definition => definition.canInitializeDocument)\n ),\n tap(processDocumentDefinitions => {\n this._cachedAssociatedProcessDocumentDefinitions = processDocumentDefinitions;\n })\n );\n\n public readonly disableStartDossierButton$: Observable<boolean> =\n this.associatedProcessDocumentDefinitions$.pipe(\n map(definitions => definitions.length === 0 || this.loading)\n );\n\n private selectedProcessDocumentDefinition: ProcessDocumentDefinition | null = null;\n\n private modalListenerAdded = false;\n\n private _cachedAssociatedProcessDocumentDefinitions: Array<ProcessDocumentDefinition> = [];\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly listService: DossierListService\n ) {}\n\n public ngOnInit(): void {\n this.modalListenerAdded = false;\n }\n\n public startDossier(): void {\n const associatedProcessDocumentDefinitions = this._cachedAssociatedProcessDocumentDefinitions;\n\n if (associatedProcessDocumentDefinitions.length > 1) {\n $('#startProcess').modal('show');\n } else {\n this.selectedProcessDocumentDefinition = associatedProcessDocumentDefinitions[0];\n this.showStartProcessModal();\n }\n }\n\n public selectProcess(processDocumentDefinition: ProcessDocumentDefinition): void {\n const modal = $('#startProcess');\n if (!this.modalListenerAdded) {\n modal.on('hidden.bs.modal', this.showStartProcessModal.bind(this));\n this.modalListenerAdded = true;\n }\n this.selectedProcessDocumentDefinition = processDocumentDefinition;\n modal.modal('hide');\n }\n\n public onFormFlowComplete(): void {\n this.formFlowComplete.emit(null);\n }\n\n private showStartProcessModal(): void {\n if (this.selectedProcessDocumentDefinition !== null) {\n this.processStart.openModal(this.selectedProcessDocumentDefinition);\n this.selectedProcessDocumentDefinition = null;\n }\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\">\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of associatedProcessDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<valtimo-dossier-process-start-modal\n #processStartModal\n (formFlowComplete)=\"onFormFlowComplete()\"\n></valtimo-dossier-process-start-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PermissionService} from '@valtimo/access-control';\nimport {\n BreadcrumbService,\n CarbonListComponent,\n CarbonListTranslations,\n CarbonPaginationSelection,\n ListField,\n PageTitleService,\n Pagination,\n} from '@valtimo/components';\nimport {\n AssigneeFilter,\n ConfigService,\n DefinitionColumn,\n Direction,\n DossierListTab,\n SearchField,\n SearchFieldValues,\n SortState,\n} from '@valtimo/config';\nimport {\n AdvancedDocumentSearchRequest,\n AdvancedDocumentSearchRequestImpl,\n Document,\n Documents,\n DocumentService,\n SpecifiedDocuments,\n} from '@valtimo/document';\nimport {Tab, Tabs} from 'carbon-components-angular';\nimport {isEqual} from 'lodash';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n forkJoin,\n map,\n Observable,\n of,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {DossierListActionsComponent} from '../dossier-list-actions/dossier-list-actions.component';\nimport {CAN_CREATE_CASE_PERMISSION, DOSSIER_DETAIL_PERMISSION_RESOURCE} from '../../permissions';\nimport {\n DossierBulkAssignService,\n DossierColumnService,\n DossierListAssigneeService,\n DossierListPaginationService,\n DossierListSearchService,\n DossierListService,\n DossierParameterService,\n} from '../../services';\nimport { DefaultTabs } from '../../models';\n\n@Component({\n selector: 'valtimo-dossier-list',\n templateUrl: './dossier-list.component.html',\n styleUrls: ['./dossier-list.component.scss'],\n providers: [\n DossierListService,\n DossierColumnService,\n DossierListAssigneeService,\n DossierParameterService,\n DossierListPaginationService,\n DossierListSearchService,\n ],\n})\nexport class DossierListComponent implements OnInit, OnDestroy {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent<Document>;\n @ViewChild(DossierListActionsComponent) listActionsComponent: DossierListActionsComponent;\n @ViewChild(Tabs) tabsComponent: Tabs;\n\n public activeTab: DossierListTab = null;\n public loadingFields = true;\n public loadingPagination = true;\n public loadingSearchFields = true;\n public loadingAssigneeFilter = true;\n public loadingDocumentItems = true;\n public pagination!: Pagination;\n public canHaveAssignee!: boolean;\n public visibleDossierTabs: Array<DossierListTab> | null = null;\n\n public readonly defaultTabs: DossierListTab[] = [\n DossierListTab.ALL,\n DossierListTab.MINE,\n DossierListTab.OPEN,\n ];\n\n public readonly tableTranslations: CarbonListTranslations = {\n select: {\n single: 'dossier.select.single',\n multiple: 'dossier.select.multiple',\n },\n pagination: {\n itemsPerPage: 'dossier.pagination.itemsPerPage',\n totalItem: 'dossier.pagination.totalItem',\n totalItems: 'dossier.pagination.totalItems',\n },\n };\n\n public readonly noResultsMessage$ = new BehaviorSubject<{\n description: string;\n isSearchResult: boolean;\n title: string;\n }>({\n description: 'dossier.noResults.ALL.description',\n isSearchResult: false,\n title: 'dossier.noResults.ALL.title',\n });\n public readonly showAssignModal$ = new BehaviorSubject<boolean>(false);\n public readonly showChangePageModal$ = new BehaviorSubject<boolean>(false);\n public readonly showChangeTabModal$ = new BehaviorSubject<boolean>(false);\n\n public readonly searchFields$: Observable<Array<SearchField> | null> =\n this.searchService.documentSearchFields$.pipe(\n tap(() => {\n this.loadingSearchFields = false;\n })\n );\n\n public readonly documentDefinitionName$ = this.listService.documentDefinitionName$;\n\n public readonly canCreateDocument$: Observable<boolean> = this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.permissionService.requestPermission(CAN_CREATE_CASE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocumentDefinition,\n identifier: documentDefinitionName,\n })\n )\n );\n public readonly selectedDocumentIds$ = new BehaviorSubject<string[]>([]);\n\n public readonly schema$ = this.listService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentDefinition(documentDefinitionName)\n ),\n map(documentDefinition => documentDefinition?.schema),\n tap(schema => {\n if (schema?.title) {\n this.pageTitleService.setCustomPageTitle(schema?.title, true);\n }\n })\n );\n\n public readonly searchFieldValues$ = this.parameterService.searchFieldValues$;\n public readonly assigneeFilter$: Observable<AssigneeFilter> =\n this.assigneeService.assigneeFilter$.pipe(\n tap(assigneeFilter => (this.activeTab = assigneeFilter as DossierListTab))\n );\n public readonly paginationChange$ = new BehaviorSubject<CarbonPaginationSelection | null>(null);\n public readonly tabChange$ = new BehaviorSubject<DossierListTab | null>(null);\n private readonly _pagination$ = this.paginationService.pagination$.pipe(\n tap(pagination => {\n this.pagination = pagination;\n this.loadingPagination = false;\n })\n );\n private readonly _hasEnvColumnConfig$: Observable<boolean> = this.listService.hasEnvColumnConfig$;\n private readonly _hasApiColumnConfig$ = new BehaviorSubject<boolean>(false);\n private readonly _canHaveAssignee$: Observable<boolean> = this.assigneeService.canHaveAssignee$;\n private readonly _columns$: Observable<Array<DefinitionColumn>> =\n this.listService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.columnService.getDefinitionColumns(documentDefinitionName)\n ),\n map(res => {\n this._hasApiColumnConfig$.next(res.hasApiConfig);\n return res.columns;\n }),\n tap(columns => {\n this.listService.documentDefinitionName$.pipe(take(1)).subscribe(_ => {\n this.paginationService.setPagination(columns);\n });\n })\n );\n\n public readonly fields$: Observable<Array<ListField>> = combineLatest([\n this._canHaveAssignee$,\n this._columns$,\n this._hasEnvColumnConfig$,\n this._hasApiColumnConfig$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([canHaveAssignee]) => {\n this.canHaveAssignee = canHaveAssignee;\n }),\n map(([canHaveAssignee, columns, hasEnvConfig, hasApiConfig]) => {\n const filteredAssigneeColumns = this.assigneeService.filterAssigneeColumns(\n columns,\n canHaveAssignee\n );\n const listFields = this.columnService.mapDefinitionColumnsToListFields(\n filteredAssigneeColumns,\n hasEnvConfig,\n hasApiConfig\n );\n const fieldsToReturn = this.assigneeService.addAssigneeListField(\n columns,\n listFields,\n canHaveAssignee\n );\n\n return fieldsToReturn;\n }),\n tap(listFields => {\n const defaultListField = listFields.find(field => field.default);\n // set default sort state if no pagination query parameters for sorting are available\n this.parameterService.queryPaginationParams$\n .pipe(take(1))\n .subscribe(queryPaginationParams => {\n if (defaultListField && !queryPaginationParams?.sort?.isSorting) {\n const sortDirection =\n typeof defaultListField.default === 'string' ? defaultListField.default : 'DESC';\n this.paginationService.sortChanged({\n isSorting: true,\n state: {name: defaultListField.key, direction: sortDirection as Direction},\n });\n }\n });\n }),\n tap(() => {\n this.loadingFields = false;\n })\n );\n\n private readonly _documentSearchRequest$: Observable<AdvancedDocumentSearchRequest> =\n combineLatest([this._pagination$, this.listService.documentDefinitionName$]).pipe(\n filter(([pagination]) => !!pagination),\n map(([pagination, documentDefinitionName]) => {\n const page = pagination.page - 1;\n\n return new AdvancedDocumentSearchRequestImpl(\n documentDefinitionName,\n page >= 0 ? page : 0,\n pagination.size,\n pagination.sort\n );\n })\n );\n\n public readonly documentItems$: Observable<any[]> = this.listService.checkRefresh$.pipe(\n switchMap(() =>\n combineLatest([\n this._documentSearchRequest$,\n this.assigneeFilter$,\n this.searchFieldValues$,\n this.listService.forceRefresh$,\n this._hasEnvColumnConfig$,\n this._hasApiColumnConfig$,\n ])\n ),\n distinctUntilChanged(\n (\n [prevSearchRequest, prevAssigneeFilter, prevSearchFieldValues, prevForceRefresh],\n [currSearchRequest, currAssigneeFilter, currSearchFieldValues, currForceRefresh]\n ) =>\n isEqual(\n {\n ...prevSearchRequest,\n assignee: prevAssigneeFilter,\n ...prevSearchFieldValues,\n forceRefresh: prevForceRefresh,\n },\n {\n ...currSearchRequest,\n assignee: currAssigneeFilter,\n ...currSearchFieldValues,\n forceRefresh: currForceRefresh,\n }\n )\n ),\n switchMap(\n ([\n documentSearchRequest,\n assigneeFilter,\n searchValues,\n _,\n hasEnvColumnConfig,\n hasApiColumnConfig,\n ]) => {\n const obsEnv: Observable<boolean> = of(hasEnvColumnConfig);\n const obsApi: Observable<boolean> = of(hasApiColumnConfig);\n\n if ((Object.keys(searchValues) || []).length > 0) {\n return forkJoin({\n documents:\n hasEnvColumnConfig || !hasApiColumnConfig\n ? this.documentService.getDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter,\n this.searchService.mapSearchValuesToFilters(searchValues)\n )\n : this.documentService.getSpecifiedDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter,\n this.searchService.mapSearchValuesToFilters(searchValues)\n ),\n hasEnvColumnConfig: obsEnv,\n hasApiColumnConfig: obsApi,\n isSearchResult: of(true),\n });\n }\n\n return forkJoin({\n documents:\n hasEnvColumnConfig || !hasApiColumnConfig\n ? this.documentService.getDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter\n )\n : this.documentService.getSpecifiedDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter\n ),\n hasEnvColumnConfig: obsEnv,\n hasApiColumnConfig: obsApi,\n isSearchResult: of(false),\n });\n }\n ),\n map(\n (res: {\n documents: Documents | SpecifiedDocuments;\n hasEnvColumnConfig: boolean;\n hasApiColumnConfig: boolean;\n isSearchResult: boolean;\n }) => {\n this.paginationService.setCollectionSize(res.documents);\n this.paginationService.checkPage(res.documents);\n this.updateNoResultsMessage(res.isSearchResult);\n\n return this.listService.mapDocuments(\n res.documents,\n res.hasEnvColumnConfig,\n res.hasApiColumnConfig\n );\n }\n ),\n tap(() => {\n this.loadingAssigneeFilter = false;\n this.loadingDocumentItems = false;\n })\n );\n\n private _previousDocumentDefinitionName!: string;\n private _documentDefinitionNameSubscription!: Subscription;\n\n constructor(\n private readonly assigneeService: DossierListAssigneeService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly bulkAssignService: DossierBulkAssignService,\n private readonly columnService: DossierColumnService,\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly listService: DossierListService,\n private readonly pageTitleService: PageTitleService,\n private readonly paginationService: DossierListPaginationService,\n private readonly parameterService: DossierParameterService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly searchService: DossierListSearchService,\n private readonly translateService: TranslateService,\n private readonly permissionService: PermissionService\n ) {}\n\n public ngOnInit(): void {\n this.setVisibleTabs();\n this.openDocumentDefinitionNameSubscription();\n }\n\n public ngOnDestroy(): void {\n this._documentDefinitionNameSubscription?.unsubscribe();\n this.pageTitleService.enableReset();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n public search(searchFieldValues: SearchFieldValues): void {\n this.searchService.search(searchFieldValues);\n }\n\n public rowClick(document: any): void {\n this.listService.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n this.breadcrumbService.cacheQueryParams(\n `/dossiers/${documentDefinitionName}`,\n this.route.snapshot.queryParams\n );\n this.router.navigate([\n `/dossiers/${documentDefinitionName}/document/${document.id}`,\n ]);\n });\n }\n\n public tabChange(tab: DossierListTab): void {\n if (!this.activeTab) {\n this.activeTab = tab;\n this.updateNoResultsMessage(false);\n return;\n }\n\n if (this.activeTab.toLowerCase() === tab.toLowerCase()) {\n return;\n }\n\n if (this.carbonList.model.selectedRowsCount()) {\n this.showChangeTabModal$.next(true);\n this.tabChange$.next(tab);\n return;\n }\n\n this.onChangeTabConfirm(tab);\n }\n\n public onChangeTabCancel(): void {\n if (!this.tabsComponent) {\n return;\n }\n\n const prevTab: Tab | undefined = this.tabsComponent.tabs.find(\n (tab: Tab) => tab.id === this.activeTab\n );\n\n if (!prevTab) {\n return;\n }\n\n this.tabsComponent.tabs.find((tab: Tab) => tab.active).active = false;\n prevTab.active = true;\n }\n\n public pageChange(page: number): void {\n if (this.carbonList?.model.selectedRowsCount()) {\n this.showChangePageModal$.next(true);\n this.paginationChange$.next({page, size: this.pagination.size});\n return;\n }\n this.paginationService.pageChange(page);\n }\n\n public pageSizeChange(size: number): void {\n if (this.carbonList?.model.selectedRowsCount()) {\n this.showChangePageModal$.next(true);\n this.paginationChange$.next({page: this.pagination.page, size});\n return;\n }\n this.paginationService.pageSizeChange(size);\n }\n\n public sortChanged(newSortState: SortState): void {\n this.paginationService.sortChanged(newSortState);\n }\n\n private onChangeTabConfirm(tab: DossierListTab): void {\n this.loadingAssigneeFilter = true;\n this.activeTab = tab;\n this.updateNoResultsMessage(false);\n this.paginationService.setPage(1);\n this.assigneeService.setAssigneeFilter(tab);\n }\n\n public showAssignModal(): void {\n this.selectedDocumentIds$.next(\n this.carbonList.selectedItems.map((document: Document) => document.id)\n );\n this.showAssignModal$.next(true);\n }\n\n public onCloseEvent(assigneeId: null | string, documentIds: string[]): void {\n this.showAssignModal$.next(false);\n if (!assigneeId) {\n return;\n }\n\n this.bulkAssignService.bulkAssign(assigneeId, documentIds).subscribe(() => {\n this.forceRefresh();\n });\n }\n\n public onChangePageConfirm(pagination: CarbonPaginationSelection): void {\n if (pagination.size !== this.pagination.size) {\n this.paginationService.pageSizeChange(pagination.size);\n return;\n }\n\n this.paginationService.pageChange(pagination.page);\n }\n\n public startDossier(): void {\n this.listActionsComponent.startDossier();\n }\n\n public forceRefresh(): void {\n this.listService.forceRefresh();\n }\n\n private openDocumentDefinitionNameSubscription(): void {\n this._documentDefinitionNameSubscription = this.route.params\n .pipe(\n map((params: Params) => params?.documentDefinitionName),\n filter(docDefName => !!docDefName),\n distinctUntilChanged()\n )\n .subscribe(documentDefinitonName => {\n if (this._previousDocumentDefinitionName) {\n this.parameterService.clearParameters();\n this.parameterService.clearSearchFieldValues();\n }\n this._previousDocumentDefinitionName = documentDefinitonName;\n this.setLoading();\n this.paginationService.clearPagination();\n this.assigneeService.resetAssigneeFilter();\n this.listService.setDocumentDefinitionName(documentDefinitonName);\n });\n }\n\n private setLoading(): void {\n this.loadingFields = true;\n this.loadingPagination = true;\n this.loadingSearchFields = true;\n this.loadingAssigneeFilter = true;\n this.loadingDocumentItems = true;\n }\n\n private setVisibleTabs(): void {\n this.visibleDossierTabs = this.configService.config?.visibleDossierListTabs || null;\n }\n\n private updateNoResultsMessage(isSearchResult: boolean): void {\n this.noResultsMessage$.next(\n isSearchResult\n ? {\n description: 'dossier.noResults.search.description',\n isSearchResult,\n title: 'dossier.noResults.search.title',\n }\n : {\n description: `dossier.noResults.${this.activeTab ?? 'ALL'}.description`,\n isSearchResult,\n title: `dossier.noResults.${this.activeTab ?? 'ALL'}.title`,\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n fields: fields$ | async,\n documentItems: documentItems$ | async,\n noResultsMessage: noResultsMessage$ | async,\n searchFields: searchFields$ | async,\n schema: schema$ | async,\n showAssignModal: showAssignModal$ | async,\n selectedDocumentIds: selectedDocumentIds$ | async,\n loaded:\n !loadingFields &&\n !loadingPagination &&\n !loadingSearchFields &&\n !loadingAssigneeFilter &&\n !loadingDocumentItems\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-dossier-list-actions\n [loading]=\"!obs.loaded\"\n (formFlowComplete)=\"forceRefresh()\"\n ></valtimo-dossier-list-actions>\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngIf=\"obs.loaded; else loading\">\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n\n <ng-container *ngTemplateOutlet=\"bulkAssignModal; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changePageModal\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changeTabModal\"></ng-container>\n</ng-container>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [defaultValues]=\"searchFieldValues$ | async\"\n [inputDisabled]=\"!obs.loaded\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [initialSortState]=\"pagination.sort\"\n [items]=\"obs.documentItems\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierList\"\n [showSelectionColumn]=\"canHaveAssignee\"\n [tableTranslations]=\"tableTranslations\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n (rowClicked)=\"rowClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showAssignModal()\">\n {{ 'dossier.bulkAssign.assign' | translate }}\n </button>\n </ng-container>\n\n <div carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"dossierListActions\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"obs.noResultsMessage.isSearchResult ? null : dossierListActions\"\n [description]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | translate\"\n ></valtimo-no-results>\n\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs\n *ngIf=\"!visibleDossierTabs; else configuredTabs\"\n type=\"contained\"\n data-carbon-theme=\"g10\"\n class=\"dossier-list-tabs\"\n >\n <cds-tab\n *ngFor=\"let tab of defaultTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #configuredTabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs type=\"contained\" class=\"dossier-list-tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleDossierTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #loading\n ><valtimo-carbon-list [loading]=\"true\">\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div> </valtimo-carbon-list\n></ng-template>\n\n<ng-template #bulkAssignModal let-obs=\"obs\">\n <valtimo-dossier-bulk-assign-modal\n [documentIds]=\"obs.selectedDocumentIds\"\n [open]=\"obs.showAssignModal\"\n (closeEvent)=\"onCloseEvent($event, obs.selectedDocumentIds)\"\n ></valtimo-dossier-bulk-assign-modal>\n</ng-template>\n\n<ng-template #changePageModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changePageModal.confirm\"\n contentTranslationKey=\"dossier.changePageModal.content\"\n [outputOnConfirm]=\"paginationChange$ | async\"\n [showModalSubject$]=\"showChangePageModal$\"\n titleTranslationKey=\"dossier.changePageModal.title\"\n (confirmEvent)=\"onChangePageConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #changeTabModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changeTabModal.confirm\"\n contentTranslationKey=\"dossier.changeTabModal.content\"\n [outputOnConfirm]=\"tabChange$ | async\"\n [showModalSubject$]=\"showChangeTabModal$\"\n titleTranslationKey=\"dossier.changeTabModal.title\"\n (cancelEvent)=\"onChangeTabCancel()\"\n (confirmEvent)=\"onChangeTabConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #dossierListActions>\n <button\n cdsButton=\"primary\"\n [disabled]=\"listActionsComponent?.disableStartDossierButton$ | async\"\n (click)=\"startDossier()\"\n >\n {{ 'Start Dossier' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {TaskService} from '@valtimo/task';\nimport {ActivatedRoute} from '@angular/router';\nimport {ToastrService} from 'ngx-toastr';\nimport {Location} from '@angular/common';\nimport moment from 'moment';\nimport {DocumentService} from '@valtimo/document';\nimport {DossierService} from '../../services/dossier.service';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-update',\n templateUrl: './dossier-update.component.html',\n styleUrls: ['./dossier-update.component.css'],\n})\nexport class DossierUpdateComponent implements OnInit {\n public task: any;\n public taskId: string;\n public schema: any;\n public documentId: string;\n public document: any;\n public page: any;\n public documentDefinitionName: string;\n public implementationDefinitions: any;\n public customDefinitions: any = {};\n\n constructor(\n private taskService: TaskService,\n private documentService: DocumentService,\n private route: ActivatedRoute,\n private toastr: ToastrService,\n private location: Location,\n dossierService: DossierService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n this.documentId = snapshot.get('documentId') || '';\n this.taskId = snapshot.get('taskId') || '';\n this.implementationDefinitions = dossierService.getImplementationEnvironmentDefinitions(\n this.documentDefinitionName\n );\n this.loadDocumentDefinition(this.documentDefinitionName);\n this.loadDocument(this.documentId);\n }\n\n ngOnInit() {\n this.getTask(this.taskId);\n if (this.implementationDefinitions.definitions.detail.summary) {\n this.customDefinitions = this.implementationDefinitions.definitions.detail.summary;\n }\n }\n\n private loadDocumentDefinition(name: string) {\n this.documentService.getDocumentDefinition(name).subscribe(definition => {\n this.schema = definition.schema;\n });\n }\n\n private loadDocument(id: string) {\n this.documentService.getDocument(id).subscribe(document => {\n this.document = document;\n });\n }\n\n public getTask(id: string) {\n this.taskService.getTask(id).subscribe(task => {\n this.task = task;\n this.task.task.created = moment(this.task.task.created).format('DD MMM YYYY HH:mm');\n this.page = {\n title: this.task.task.name,\n subtitle: `Created ${moment(this.task.task.created).fromNow()}`,\n };\n });\n }\n\n public reset() {\n this.loadDocument(this.documentId);\n }\n\n public back() {\n this.location.back();\n }\n\n public save() {\n const document = {\n documentId: this.document.id,\n content: this.document.content,\n versionBasedOn: this.document.version,\n };\n this.documentService.modifyDocument(document).subscribe(result => {\n this.document = result.document;\n this.toastr.success('Document aangepast');\n this.location.back();\n });\n }\n\n public submit(data: object) {\n // merge document content with formdata\n const mergedData = Object.assign({}, this.document.content, data);\n const documentData = {\n request: {\n documentId: this.document.id,\n content: mergedData,\n versionBasedOn: this.document.version,\n },\n taskId: this.task.task.id,\n };\n\n this.documentService.modifyDocumentAndCompleteTask(documentData).subscribe(result => {\n this.toastr.success(this.task.task.name + ' has successfully been completed');\n this.location.back();\n });\n }\n\n public returnZero() {\n return 0;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget [title]=\"page?.title\" [subtitle]=\"page?.subtitle\" [divider]=\"true\">\n <div class=\"card-body\">\n <!--view with custom definitions-->\n <div *ngIf=\"this.customDefinitions\">\n <div\n class=\"mb-4\"\n *ngFor=\"let definition of this.customDefinitions | keyvalue: returnZero\"\n ></div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"button\"\n (click)=\"save()\"\n id=\"save-button\"\n >\n Save\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"submit\"\n (click)=\"submit({})\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <valtimo-camunda-form\n *ngIf=\"task?.formFields && !this.customDefinitions\"\n (submitted)=\"submit($event)\"\n [formFields]=\"task.formFields\"\n [componentName]=\"task.formLocation\"\n ></valtimo-camunda-form>\n </div>\n </valtimo-widget>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {DossierDetailComponent} from './components/dossier-detail/dossier-detail.component';\nimport {DossierUpdateComponent} from './components/dossier-update/dossier-update.component';\nimport {ROLE_USER} from '@valtimo/config';\nimport {DossierListComponent} from './components/dossier-list/dossier-list.component';\n\nconst routes: Routes = [\n {\n path: 'dossiers/:documentDefinitionName',\n component: DossierListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossiers', roles: [ROLE_USER], customPageTitle: true},\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n component: DossierDetailComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Dossier details',\n parentPath: 'dossiers/:documentDefinitionName',\n roles: [ROLE_USER],\n },\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId',\n component: DossierDetailComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Dossier details',\n parentPath: 'dossiers/:documentDefinitionName',\n roles: [ROLE_USER],\n },\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab/tasks/:taskId',\n component: DossierUpdateComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Task details',\n parentPath: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n roles: [ROLE_USER],\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DossierRoutingModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TabTranslatePipe} from './tab-translate.pipe';\nimport {NgModule} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n imports: [TranslateModule],\n declarations: [TabTranslatePipe],\n exports: [TabTranslatePipe],\n})\nexport class TabTranslatePipeModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './tab-translate.pipe';\nexport * from './tab-translate-pipe.module';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './tab-translate';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {HttpClient} from '@angular/common/http';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n NgbButtonsModule,\n NgbModule,\n NgbPaginationModule,\n NgbTooltipModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {\n BpmnJsDiagramModule,\n ButtonModule,\n CamundaFormModule,\n CarbonListModule,\n ConfirmationModalModule,\n DataListModule,\n DocumentenApiMetadataModalModule,\n DropzoneModule,\n FilterSidebarModule,\n FormIoModule,\n FormModule as VFormModule,\n InputLabelModule,\n InputModule,\n IsArrayPipe,\n ListModule,\n ModalModule,\n PageModule,\n ParagraphModule,\n SearchableDropdownSelectModule,\n SearchFieldsModule,\n SelectModule,\n SpinnerModule,\n TableModule,\n TimelineModule,\n TitleModule,\n UploaderModule,\n VModalModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {ConfigModule, HttpLoaderFactory} from '@valtimo/config';\nimport {FormModule} from '@valtimo/form';\nimport {FormLinkModule} from '@valtimo/form-link';\nimport {ProcessModule} from '@valtimo/process';\nimport {TaskModule} from '@valtimo/task';\nimport {\n ButtonModule as CarbonButtonModule,\n ComboBoxModule,\n DropdownModule,\n IconModule,\n LoadingModule,\n ModalModule as CarbonModalModule,\n SelectModule as CarbonSelectModule,\n TabsModule,\n} from 'carbon-components-angular';\nimport {NoteModalComponent} from './components/note-modal/note-modal.component';\nimport {DossierAssignUserComponent} from './components/dossier-assign-user/dossier-assign-user.component';\nimport {DossierBulkAssignModalComponent} from './components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component';\nimport {DossierDetailComponent} from './components/dossier-detail/dossier-detail.component';\nimport {DossierDetailTabAuditComponent} from './components/dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabContactMomentsComponent} from './components/dossier-detail/tab/contact-moments/contact-moments.component';\nimport {DossierDetailTabDocumentenApiDocumentsComponent} from './components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component';\nimport {DossierDetailTabDocumentsComponent} from './components/dossier-detail/tab/documents/documents.component';\nimport {DossierDetailTabNotesComponent} from './components/dossier-detail/tab/notes/notes.component';\nimport {DossierDetailTabObjectTypeComponent} from './components/dossier-detail/tab/object-type/object-type.component';\nimport {DossierDetailTabProgressComponent} from './components/dossier-detail/tab/progress/progress.component';\nimport {DossierDetailTabS3DocumentsComponent} from './components/dossier-detail/tab/s3-documents/s3-documents.component';\nimport {DossierDetailTabSummaryComponent} from './components/dossier-detail/tab/summary/summary.component';\nimport {DossierDetailTabZaakobjectenComponent} from './components/dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nimport {DossierListActionsComponent} from './components/dossier-list-actions/dossier-list-actions.component';\nimport {DossierListComponent} from './components/dossier-list/dossier-list.component';\nimport {DossierProcessStartModalComponent} from './components/dossier-process-start-modal/dossier-process-start-modal.component';\nimport {DossierRoutingModule} from './dossier-routing.module';\nimport {DossierSupportingProcessStartModalComponent} from './components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {DossierUpdateComponent} from './components/dossier-update/dossier-update.component';\nimport {TAB_MAP} from './constants';\nimport {DossierBulkAssignService, DossierService} from './services';\nimport {DossierDetailTabFormioComponent} from './components/dossier-detail/tab/formio/formio.component';\nimport {TabTranslatePipeModule} from './pipes';\n\nexport type TabsFactory = () => Map<string, object>;\n\n@NgModule({\n declarations: [\n DossierBulkAssignModalComponent,\n DossierListComponent,\n DossierListActionsComponent,\n DossierDetailComponent,\n DossierDetailTabSummaryComponent,\n DossierDetailTabProgressComponent,\n DossierDetailTabAuditComponent,\n DossierDetailTabDocumentsComponent,\n DossierDetailTabContactMomentsComponent,\n DossierDetailTabZaakobjectenComponent,\n DossierDetailTabNotesComponent,\n DossierUpdateComponent,\n DossierProcessStartModalComponent,\n DossierSupportingProcessStartModalComponent,\n DossierDetailTabObjectTypeComponent,\n DossierDetailTabDocumentenApiDocumentsComponent,\n DossierDetailTabS3DocumentsComponent,\n DossierAssignUserComponent,\n NoteModalComponent,\n DossierDetailTabFormioComponent,\n ],\n imports: [\n CommonModule,\n DossierRoutingModule,\n ListModule,\n WidgetModule,\n BpmnJsDiagramModule,\n TimelineModule,\n CamundaFormModule,\n ProcessModule,\n FilterSidebarModule,\n NgbButtonsModule,\n DataListModule,\n FormsModule,\n ReactiveFormsModule,\n FormModule,\n FormIoModule,\n ModalModule,\n SpinnerModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n TaskModule,\n ModalModule,\n NgbTooltipModule,\n UploaderModule,\n DropzoneModule,\n NgbPaginationModule,\n ConfigModule,\n SelectModule,\n InputLabelModule,\n ParagraphModule,\n TableModule,\n VModalModule,\n TitleModule,\n ButtonModule,\n DocumentenApiMetadataModalModule,\n SearchableDropdownSelectModule,\n SearchFieldsModule,\n PageModule,\n FormModule,\n InputModule,\n VFormModule,\n NgbModule,\n LoadingModule,\n CarbonButtonModule,\n IconModule,\n FormLinkModule,\n CarbonModalModule,\n CarbonSelectModule,\n ConfirmationModalModule,\n DropdownModule,\n TabsModule,\n ComboBoxModule,\n TabTranslatePipeModule,\n CarbonListModule,\n IsArrayPipe,\n ],\n exports: [DossierListComponent, DossierDetailComponent],\n})\nexport class DossierModule {\n static forRoot(tabsFactory: TabsFactory): ModuleWithProviders<DossierModule> {\n return {\n ngModule: DossierModule,\n providers: [\n DossierService,\n DossierBulkAssignService,\n {\n provide: TAB_MAP,\n useFactory: tabsFactory,\n },\n ],\n };\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of dossier\n */\n\nexport * from './lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component';\nexport * from './lib/components/dossier-detail/dossier-detail.component';\nexport * from './lib/components/dossier-detail/tab/audit/audit.component';\nexport * from './lib/components/dossier-detail/tab/contact-moments/contact-moments.component';\nexport * from './lib/components/dossier-detail/tab/documents/documents.component';\nexport * from './lib/components/dossier-detail/tab/notes/notes.component';\nexport * from './lib/components/dossier-detail/tab/progress/progress.component';\nexport * from './lib/components/dossier-detail/tab/summary/summary.component';\nexport * from './lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nexport * from './lib/components/dossier-list/dossier-list.component';\nexport * from './lib/constants';\nexport * from './lib/dossier.module';\nexport * from './lib/services/dossier.service';\nexport * from './lib/models';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3","i1","i1.DossierColumnService","i2.DossierListService","i4","i5.DossierParameterService","i2.DossierParameterService","i3.DossierService","i1.DossierListService","i3.DossierParameterService","i6","i8","i9","i11","i12","i5","i7","switchMap","map","tap","take","i9.FileSortService","i10","i8.FileSortService","i3.DossierDetailTabDocumentenApiDocumentsComponent","i4.DossierDetailTabS3DocumentsComponent","i2.ZaakobjectenService","i1.NotesService","i9.NoteModalComponent","i1.DossierTabService","i3.DossierTabApiService","i1.DossierBulkAssignService","i9.DossierTabService","i9.DossierService","i12.DossierSupportingProcessStartModalComponent","i13.DossierAssignUserComponent","i14","i15.TabTranslatePipe","i4.DossierProcessStartModalComponent","i1.DossierListAssigneeService","i1.DossierListPaginationService","i1.DossierParameterService","i1.DossierListSearchService","i10.DossierBulkAssignModalComponent","i11.DossierListActionsComponent","i6.DossierService","VFormModule","CarbonButtonModule","CarbonModalModule","CarbonSelectModule"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-dossier.mjs","sources":["../../../../projects/valtimo/dossier/src/lib/services/dossier-bulk-assign.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-column.service.ts","../../../../projects/valtimo/dossier/src/lib/services/zaakobjecten.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-parameter.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list-assignee.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list-pagination.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list-search.service.ts","../../../../projects/valtimo/dossier/src/lib/models/candidate-user.model.ts","../../../../projects/valtimo/dossier/src/lib/models/dossier-parameters.model.ts","../../../../projects/valtimo/dossier/src/lib/models/search.model.ts","../../../../projects/valtimo/dossier/src/lib/models/tabs.model.ts","../../../../projects/valtimo/dossier/src/lib/models/zaakobjecten.model.ts","../../../../projects/valtimo/dossier/src/lib/models/dossier-detail-tab.model.ts","../../../../projects/valtimo/dossier/src/lib/models/tab-api.model.ts","../../../../projects/valtimo/dossier/src/lib/models/index.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/summary/summary.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/summary/summary.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/progress/progress.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/progress/progress.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/audit/audit.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/audit/audit.component.html","../../../../projects/valtimo/dossier/src/lib/services/file-sort.service.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/documents/documents.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/documents/documents.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.html","../../../../projects/valtimo/dossier/src/lib/permissions/dossier-detail.permissions.ts","../../../../projects/valtimo/dossier/src/lib/permissions/index.ts","../../../../projects/valtimo/dossier/src/lib/services/notes.service.ts","../../../../projects/valtimo/dossier/src/lib/components/note-modal/note-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/components/note-modal/note-modal.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/notes/notes.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/notes/notes.component.html","../../../../projects/valtimo/dossier/src/lib/constants/tab.ts","../../../../projects/valtimo/dossier/src/lib/constants/case-tab-token.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/object-type/object-type.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/object-type/object-type.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/formio/formio.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/tab/formio/formio.component.html","../../../../projects/valtimo/dossier/src/lib/services/dossier-tab-api.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-tab.service.ts","../../../../projects/valtimo/dossier/src/lib/services/index.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-assign-user/dossier-assign-user.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-assign-user/dossier-assign-user.component.html","../../../../projects/valtimo/dossier/src/lib/pipes/tab-translate/tab-translate.pipe.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/dossier-detail.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-detail/dossier-detail.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-list-actions/dossier-list-actions.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-list-actions/dossier-list-actions.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-list/dossier-list.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-list/dossier-list.component.html","../../../../projects/valtimo/dossier/src/lib/components/dossier-update/dossier-update.component.ts","../../../../projects/valtimo/dossier/src/lib/components/dossier-update/dossier-update.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-routing.module.ts","../../../../projects/valtimo/dossier/src/lib/pipes/tab-translate/tab-translate-pipe.module.ts","../../../../projects/valtimo/dossier/src/lib/pipes/tab-translate/index.ts","../../../../projects/valtimo/dossier/src/lib/pipes/index.ts","../../../../projects/valtimo/dossier/src/lib/dossier.module.ts","../../../../projects/valtimo/dossier/src/public_api.ts","../../../../projects/valtimo/dossier/src/valtimo-dossier.ts"],"sourcesContent":["/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {BehaviorSubject, Observable, take} from 'rxjs';\nimport {CandidateUser} from '../models';\n\n@Injectable()\nexport class DossierBulkAssignService {\n public readonly candidateUsers$ = new BehaviorSubject<CandidateUser[]>([]);\n\n private _valtimoEndpointUri: string;\n\n constructor(\n private configService: ConfigService,\n private http: HttpClient\n ) {\n this._valtimoEndpointUri = `${this.configService.config.valtimoApi.endpointUri}v1/document/`;\n }\n\n public bulkAssign(assigneeId: string, documentIds: string[]): Observable<void> {\n return this.http.post<void>(`${this._valtimoEndpointUri}assign`, {assigneeId, documentIds});\n }\n\n public loadCandidateUsers(documentIds: string[]): void {\n this.http\n .post<CandidateUser[]>(`${this._valtimoEndpointUri}candidate-user`, {documentIds})\n .pipe(take(1))\n .subscribe({\n next: (candidateUsers: CandidateUser[]) => {\n this.candidateUsers$.next(candidateUsers);\n },\n error: error => {\n console.error(error);\n },\n });\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService, DefinitionColumn} from '@valtimo/config';\nimport {map, Observable} from 'rxjs';\nimport {CaseListColumn, DocumentService} from '@valtimo/document';\nimport {ListField} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Injectable()\nexport class DossierColumnService {\n constructor(\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService\n ) {}\n\n getDefinitionColumns(\n documentDefinitionName: string\n ): Observable<{columns: Array<DefinitionColumn>; hasApiConfig: boolean}> {\n const config = this.configService.config;\n const customDefinitionTable = config.customDefinitionTables[documentDefinitionName];\n const defaultDefinitionTable = config.defaultDefinitionTable;\n\n return this.documentService.getCaseList(documentDefinitionName).pipe(\n map(caseListColumns => {\n const apiCaseListColumns =\n config?.featureToggles?.caseListColumn &&\n caseListColumns &&\n Array.isArray(caseListColumns) &&\n caseListColumns.length > 0 &&\n this.mapCaseListColumnsToDefinitionColumns(caseListColumns);\n\n return {\n columns: customDefinitionTable || apiCaseListColumns || defaultDefinitionTable,\n hasApiConfig: !!apiCaseListColumns,\n };\n })\n );\n }\n\n hasEnvironmentConfig(documentDefinitionName: string): boolean {\n return !!this.configService.config?.customDefinitionTables[documentDefinitionName];\n }\n\n mapDefinitionColumnsToListFields(\n columns: Array<DefinitionColumn>,\n hasEnvColumnConfig: boolean,\n hasApiColumnConfig: boolean\n ): Array<ListField> {\n return columns.map(column => {\n const translationKey = `fieldLabels.${column.translationKey}`;\n const translation = this.translateService.instant(translationKey);\n const validTranslation = translation !== translationKey && translation;\n return {\n key:\n hasEnvColumnConfig || !hasApiColumnConfig ? column.propertyName : column.translationKey,\n label: column.title || validTranslation || column.translationKey,\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n ...(column.enum && {enum: column.enum}),\n ...(column.format && {format: column.format}),\n ...(column.default && {default: column.default}),\n };\n });\n }\n\n private mapCaseListColumnsToDefinitionColumns(\n caseListColumns: Array<CaseListColumn>\n ): Array<DefinitionColumn> {\n return caseListColumns.map(caseListColumn => ({\n translationKey: caseListColumn.key,\n sortable: caseListColumn.sortable,\n default: caseListColumn.defaultSort,\n viewType: this.getViewType(caseListColumn.displayType.type),\n propertyName: this.getPropertyName(caseListColumn.path),\n ...(caseListColumn.title && {title: caseListColumn.title}),\n ...(caseListColumn?.displayType?.displayTypeParameters?.enum && {\n enum: caseListColumn.displayType.displayTypeParameters.enum as any,\n }),\n ...(caseListColumn.displayType?.displayTypeParameters?.dateFormat && {\n format: caseListColumn.displayType?.displayTypeParameters?.dateFormat,\n }),\n }));\n }\n\n private getViewType(caseListColumnDisplayType: string): string {\n switch (caseListColumnDisplayType) {\n case 'arrayCount':\n return 'relatedFiles';\n case 'underscoresToSpaces':\n return 'stringReplaceUnderscore';\n default:\n return caseListColumnDisplayType;\n }\n }\n\n private getPropertyName(caseListColumnPath: string): string {\n return caseListColumnPath.replace('doc:', '$.').replace('case:', '');\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {DossierParameters} from '../models';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n map,\n Observable,\n Subscription,\n take,\n} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {AssigneeFilter, Direction, SearchFieldValues} from '@valtimo/config';\nimport {Pagination} from '@valtimo/components';\n\n@Injectable()\nexport class DossierParameterService implements OnDestroy {\n private readonly _dossierParameters$ = new BehaviorSubject<DossierParameters>(undefined);\n private readonly _searchFieldValues$ = new BehaviorSubject<SearchFieldValues>({});\n\n get dossierParameters$(): Observable<DossierParameters> {\n return this._dossierParameters$.asObservable();\n }\n\n get searchFieldValues$(): Observable<SearchFieldValues> {\n return this._searchFieldValues$.asObservable();\n }\n\n get querySearchParams$(): Observable<SearchFieldValues> {\n return this.route.queryParams.pipe(\n map(params => {\n if (params.search) {\n return JSON.parse(atob(params.search)) as SearchFieldValues;\n }\n return {};\n }),\n distinctUntilChanged(\n (prevParams, currParams) => JSON.stringify(prevParams) === JSON.stringify(currParams)\n )\n );\n }\n\n get queryPaginationParams$(): Observable<Pagination | null> {\n return this.route.queryParams.pipe(\n map(params => {\n const paramsCopy = {...params} as any as DossierParameters;\n\n if (paramsCopy.search) {\n delete paramsCopy.search;\n }\n\n return paramsCopy.collectionSize\n ? {\n collectionSize: Number(paramsCopy.collectionSize),\n page: Number(paramsCopy.page),\n size: Number(paramsCopy.size),\n ...(paramsCopy.isSorting === 'true' && {\n sort: {\n isSorting: !!(paramsCopy.isSorting === 'true'),\n state: {\n name: paramsCopy.sortStateName,\n direction: paramsCopy.sortStateDirection as Direction,\n },\n },\n }),\n }\n : null;\n }),\n distinctUntilChanged(\n (prevParams, currParams) => JSON.stringify(prevParams) === JSON.stringify(currParams)\n )\n );\n }\n\n get queryAssigneeParam$(): Observable<AssigneeFilter> {\n return this.route.queryParams.pipe(\n map(params => {\n if (params?.assignee) {\n return params?.assignee?.toUpperCase();\n }\n return '';\n }),\n distinctUntilChanged((prevParams, currParams) => prevParams === currParams)\n );\n }\n\n dossierParametersSubscription!: Subscription;\n\n constructor(\n private readonly router: Router,\n private readonly route: ActivatedRoute\n ) {\n this.setDossierParameters();\n }\n\n ngOnDestroy(): void {\n this.dossierParametersSubscription?.unsubscribe();\n }\n\n setSearchFieldValues(searchFieldValues: SearchFieldValues): void {\n this._searchFieldValues$.next(searchFieldValues);\n }\n\n setSearchParameters(searchParameters: SearchFieldValues): void {\n this._dossierParameters$.pipe(take(1)).subscribe(dossierParameters => {\n if (Object.keys(searchParameters || {}).length > 0) {\n this._dossierParameters$.next({\n ...dossierParameters,\n search: this.objectToBase64(searchParameters),\n });\n } else {\n if (dossierParameters?.search) {\n delete dossierParameters.search;\n }\n this._dossierParameters$.next(dossierParameters);\n }\n });\n }\n\n setPaginationParameters(pagination: Pagination): void {\n if (pagination) {\n this._dossierParameters$.pipe(take(1)).subscribe(dossierParameters => {\n this._dossierParameters$.next({\n ...dossierParameters,\n size: `${pagination.size}`,\n collectionSize: `${pagination.collectionSize}`,\n page: `${pagination.page}`,\n isSorting: pagination.sort?.isSorting ? 'true' : 'false',\n ...(pagination.sort?.state?.name && {sortStateName: `${pagination.sort?.state.name}`}),\n ...(pagination.sort?.state?.direction && {\n sortStateDirection: `${pagination.sort?.state.direction}`,\n }),\n });\n });\n }\n }\n\n setAssigneeParameter(assigneeFilter: AssigneeFilter): void {\n this._dossierParameters$.pipe(take(1)).subscribe(dossierParameters => {\n this._dossierParameters$.next({\n ...dossierParameters,\n assignee: assigneeFilter.toLowerCase(),\n });\n });\n }\n\n clearSearchFieldValues(): void {\n this._searchFieldValues$.next({});\n }\n\n clearParameters(): void {\n this._dossierParameters$.next(undefined);\n this.router.navigate([this.getUrlWithoutParams()]);\n }\n\n private openDossierParametersSubscription(): void {\n this.dossierParametersSubscription = this.dossierParameters$.subscribe(dossierParams => {\n this.router.navigate([this.getUrlWithoutParams()], {queryParams: dossierParams});\n });\n }\n\n private objectToBase64(jsObject: object): string {\n return btoa(JSON.stringify(jsObject));\n }\n\n private getUrlWithoutParams(): string {\n const urlTree = this.router.parseUrl(this.router.url);\n urlTree.queryParams = {};\n urlTree.fragment = null;\n return urlTree.toString();\n }\n\n private setDossierParameters(): void {\n combineLatest([this.queryPaginationParams$, this.querySearchParams$, this.queryAssigneeParam$])\n .pipe(take(1))\n .subscribe(([paginationParams, searchParams, assigneeParams]) => {\n if (paginationParams) {\n this.setPaginationParameters(paginationParams);\n }\n if (searchParams) {\n this.setSearchParameters(searchParams);\n this.setSearchFieldValues(searchParams);\n }\n if (assigneeParams) {\n this.setAssigneeParameter(assigneeParams);\n }\n\n this.openDossierParametersSubscription();\n });\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, map, Observable, take} from 'rxjs';\nimport {DossierColumnService} from '../services';\nimport {Documents, SpecifiedDocuments} from '@valtimo/document';\n\n@Injectable()\nexport class DossierListService {\n private readonly _documentDefinitionName$ = new BehaviorSubject<string>('');\n\n private readonly _hasEnvColumnConfig$: Observable<boolean> = this.documentDefinitionName$.pipe(\n map(documentDefinitionName =>\n this.dossierColumnService.hasEnvironmentConfig(documentDefinitionName)\n )\n );\n\n private readonly _checkRefresh$ = new BehaviorSubject<boolean>(false);\n private readonly _forceRefresh$ = new BehaviorSubject<boolean>(false);\n\n public get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$.asObservable();\n }\n\n public get hasEnvColumnConfig$(): Observable<boolean> {\n return this._hasEnvColumnConfig$;\n }\n\n get checkRefresh$(): Observable<boolean> {\n return this._checkRefresh$.asObservable();\n }\n\n get forceRefresh$(): Observable<boolean> {\n return this._forceRefresh$.asObservable();\n }\n\n constructor(private readonly dossierColumnService: DossierColumnService) {}\n\n public setDocumentDefinitionName(documentDefinitionName: string): void {\n this._documentDefinitionName$.next(documentDefinitionName);\n }\n\n public mapDocuments(\n documents: Documents | SpecifiedDocuments,\n hasEnvColumnConfig: boolean,\n hasApiColumnConfig: boolean\n ) {\n if (hasEnvColumnConfig || !hasApiColumnConfig) {\n return (documents as Documents).content.map(document => {\n const {content, ...others} = document;\n return {...content, ...others};\n });\n }\n\n return (documents as SpecifiedDocuments).content.reduce((acc, curr) => {\n const propsObject = {id: curr.id};\n curr.items?.forEach(item => {\n propsObject[item.key] = item.value;\n });\n return [...acc, propsObject];\n }, []);\n }\n\n public forceRefresh(): void {\n this._forceRefresh$.pipe(take(1)).subscribe(forceRefresh => {\n this._forceRefresh$.next(!forceRefresh);\n });\n }\n\n public checkRefresh(): void {\n this._checkRefresh$.pipe(take(1)).subscribe(checkRefresh => {\n this._checkRefresh$.next(!checkRefresh);\n });\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Subject, map, Observable, switchMap, take, tap, combineLatest} from 'rxjs';\nimport {DossierListService} from './dossier-list.service';\nimport {DocumentService} from '@valtimo/document';\nimport {AssigneeFilter, ConfigService, DefinitionColumn} from '@valtimo/config';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ListField} from '@valtimo/components';\nimport {DossierParameterService} from './dossier-parameter.service';\n\n@Injectable()\nexport class DossierListAssigneeService {\n private readonly ASSIGNEE_KEY = 'assigneeFullName';\n private readonly _defaultAssigneeFilter$ = new Subject<AssigneeFilter>();\n private readonly _assigneeFilter$ = new BehaviorSubject<AssigneeFilter | null>(null);\n\n public readonly canHaveAssignee$: Observable<boolean> =\n this.dossierListService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n map(caseSettings => caseSettings?.canHaveAssignee),\n tap(canHaveAssignee => {\n const visibleTabs: AssigneeFilter[] = this.configService.config.visibleDossierListTabs;\n\n this._defaultAssigneeFilter$.next(\n !!visibleTabs && canHaveAssignee ? visibleTabs[0] : 'ALL'\n );\n })\n );\n\n public get assigneeFilter$(): Observable<AssigneeFilter> {\n return this._assigneeFilter$.asObservable();\n }\n\n constructor(\n private readonly configService: ConfigService,\n private readonly dossierListService: DossierListService,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly dossierParameterService: DossierParameterService\n ) {}\n\n public resetAssigneeFilter(): void {\n combineLatest([this.dossierParameterService.queryAssigneeParam$, this._defaultAssigneeFilter$])\n .pipe(take(1))\n .subscribe(([assigneeParam, defaultAssigneeFilter]) => {\n if (assigneeParam) {\n this._assigneeFilter$.next(assigneeParam);\n this.dossierParameterService.setAssigneeParameter(assigneeParam);\n } else {\n this._assigneeFilter$.next(defaultAssigneeFilter);\n this.dossierParameterService.setAssigneeParameter(defaultAssigneeFilter);\n }\n });\n }\n\n public setAssigneeFilter(assigneeFilter: AssigneeFilter): void {\n this._assigneeFilter$.next(assigneeFilter);\n this.dossierParameterService.setAssigneeParameter(assigneeFilter);\n }\n\n public filterAssigneeColumns(\n columns: Array<DefinitionColumn>,\n canHaveAssignee: boolean\n ): Array<DefinitionColumn> {\n return columns.filter(column => {\n if (column?.key === this.ASSIGNEE_KEY && !canHaveAssignee) {\n return false;\n }\n return true;\n });\n }\n\n public addAssigneeListField(\n columns: Array<DefinitionColumn>,\n listFields: Array<ListField>,\n canHaveAssignee: boolean\n ): Array<ListField> {\n return [\n ...listFields,\n ...(canHaveAssignee && !columns.find(column => column.propertyName === this.ASSIGNEE_KEY)\n ? [\n {\n key: this.ASSIGNEE_KEY,\n label: this.translateService.instant(`fieldLabels.${this.ASSIGNEE_KEY}`),\n sortable: true,\n viewType: 'string',\n },\n ]\n : []),\n ];\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Injectable} from '@angular/core';\nimport {Direction, SortState} from '@valtimo/components';\nimport {ConfigService, DefinitionColumn} from '@valtimo/config';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DossierService {\n private readonly definitions: any;\n private readonly _refreshDocument$ = new BehaviorSubject<null>(null);\n\n constructor(private readonly configService: ConfigService) {\n this.definitions = configService.config.definitions;\n }\n\n public getImplementationEnvironmentDefinitions(name: string) {\n return this.definitions.dossiers.find(definition => definition.name === name);\n }\n\n public getInitialSortState(columns: Array<DefinitionColumn>): SortState {\n const defaultColumn = columns.find(column => column.default);\n const isSorting = defaultColumn?.default === 'ASC' || defaultColumn?.default === 'DESC';\n const direction: Direction =\n typeof !defaultColumn || defaultColumn.default === 'boolean'\n ? 'DESC'\n : (defaultColumn.default as any as Direction);\n\n return {\n isSorting,\n state: {\n name: defaultColumn ? defaultColumn.propertyName : columns[0].propertyName,\n direction,\n },\n };\n }\n\n public get refreshDocument$(): Observable<any> {\n return this._refreshDocument$.asObservable();\n }\n\n public refresh(): void {\n this._refreshDocument$.next(null);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, filter, map, Observable, take, tap} from 'rxjs';\nimport {Pagination} from '@valtimo/components';\nimport {NGXLogger} from 'ngx-logger';\nimport {DossierParameterService} from './dossier-parameter.service';\nimport {DefinitionColumn} from '@valtimo/config';\nimport {DossierService} from './dossier.service';\nimport {Documents, SortState, SpecifiedDocuments} from '@valtimo/document';\n\n@Injectable()\nexport class DossierListPaginationService {\n private readonly DEFAULT_PAGINATION: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n sort: undefined,\n };\n\n private readonly _pagination$ = new BehaviorSubject<Pagination | undefined>(undefined);\n\n private readonly _paginationCopy$ = this._pagination$.pipe(\n filter(pagination => !!pagination),\n map(pagination => pagination && JSON.parse(JSON.stringify(pagination))),\n tap(pagination => this.dossierParameterService.setPaginationParameters(pagination))\n );\n\n get pagination$(): Observable<Pagination> {\n return this._paginationCopy$;\n }\n\n constructor(\n private readonly logger: NGXLogger,\n private readonly dossierParameterService: DossierParameterService,\n private readonly dossierService: DossierService\n ) {}\n\n pageChange(newPage: number): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.page !== newPage) {\n this.logger.debug(`Page change: ${newPage}`);\n this._pagination$.next({...pagination, page: newPage});\n }\n });\n }\n\n pageSizeChange(newPageSize: number): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.size !== newPageSize) {\n const amountOfAvailablePages = Math.ceil(+pagination.collectionSize / newPageSize);\n const newPage =\n amountOfAvailablePages < pagination.page ? amountOfAvailablePages : pagination.page;\n\n this.logger.debug(`Page size change. New Page: ${newPage} New page size: ${newPageSize}`);\n this._pagination$.next({...pagination, size: newPageSize, page: newPage});\n }\n });\n }\n\n sortChanged(newSortState: SortState): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && JSON.stringify(pagination.sort) !== JSON.stringify(newSortState)) {\n this.logger.debug(`Sort state change: ${JSON.stringify(newSortState)}`);\n this._pagination$.next({...pagination, sort: newSortState});\n }\n });\n }\n\n setPage(newPageNumber: number): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n this._pagination$.next({...pagination, page: newPageNumber});\n });\n }\n\n setCollectionSize(documents: Documents | SpecifiedDocuments): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.collectionSize !== documents.totalElements) {\n this._pagination$.next({...pagination, collectionSize: documents.totalElements});\n }\n });\n }\n\n checkPage(documents: Documents | SpecifiedDocuments): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination) {\n const amountOfItems = documents.totalElements;\n const amountOfPages = Math.ceil(amountOfItems / pagination.size);\n const currentPage = pagination.page;\n\n if (!!amountOfItems && !currentPage) {\n this._pagination$.next({...pagination, page: 1});\n return;\n }\n\n if (currentPage > amountOfPages) {\n this._pagination$.next({...pagination, page: amountOfPages});\n }\n }\n });\n }\n\n clearPagination(): void {\n this._pagination$.next(undefined);\n }\n\n setPagination(columns: Array<DefinitionColumn>): void {\n this.dossierParameterService.queryPaginationParams$\n .pipe(take(1))\n .subscribe(queryPaginationParams => {\n const defaultPagination: Pagination = this.getDefaultPagination(columns);\n const paginationToUse = queryPaginationParams || defaultPagination;\n\n this.logger.debug(`Set pagination: ${JSON.stringify(paginationToUse)}`);\n\n this._pagination$.next(paginationToUse);\n });\n }\n\n private getDefaultPagination(columns: Array<DefinitionColumn>): Pagination {\n const defaultSortState = this.dossierService.getInitialSortState(columns);\n\n return {\n ...this.DEFAULT_PAGINATION,\n sort: defaultSortState,\n };\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, switchMap} from 'rxjs';\nimport {SearchField, SearchFieldValues, SearchFilter, SearchFilterRange} from '@valtimo/config';\nimport {DossierListService} from './dossier-list.service';\nimport {DocumentService} from '@valtimo/document';\nimport {DossierParameterService} from './dossier-parameter.service';\n\n@Injectable()\nexport class DossierListSearchService {\n private readonly _documentSearchFields$: Observable<Array<SearchField> | null> =\n this.dossierListService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentSearchFields(documentDefinitionName)\n )\n );\n\n get documentSearchFields$(): Observable<Array<SearchField> | null> {\n return this._documentSearchFields$;\n }\n\n constructor(\n private readonly dossierListService: DossierListService,\n private readonly documentService: DocumentService,\n private readonly dossierParameterService: DossierParameterService\n ) {}\n\n search(searchFieldValues: SearchFieldValues): void {\n this.dossierParameterService.setSearchFieldValues(searchFieldValues || {});\n this.dossierParameterService.setSearchParameters(searchFieldValues);\n this.dossierListService.checkRefresh();\n }\n\n mapSearchValuesToFilters(values: SearchFieldValues): Array<SearchFilter | SearchFilterRange> {\n const filters: Array<SearchFilter | SearchFilterRange> = [];\n\n Object.keys(values).forEach(valueKey => {\n const searchValue = values[valueKey] as any;\n if (searchValue.start) {\n filters.push({key: valueKey, rangeFrom: searchValue.start, rangeTo: searchValue.end});\n } else if (Array.isArray(searchValue)) {\n filters.push({key: valueKey, values: searchValue});\n } else {\n filters.push({key: valueKey, values: [searchValue]});\n }\n });\n\n return filters;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface CandidateUser {\n id: string;\n firstName: string;\n lastName: string;\n}\n\nexport {CandidateUser};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface PaginationParameters {\n collectionSize: string;\n page: string;\n size: string;\n sortStateName: string;\n sortStateDirection: string;\n isSorting: 'true' | 'false';\n}\n\ninterface DossierParameters extends PaginationParameters {\n search?: string;\n assignee?: string;\n}\n\nexport {DossierParameters};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype CaseSearchFieldDataType = 'text' | 'number' | 'date' | 'datetime' | 'boolean';\n\ntype CaseSearchFieldFieldType = 'single' | 'multiple' | 'range';\n\ntype CaseSearchFieldMatchType = 'exact' | 'like';\n\ninterface CaseSearchField {\n key: string;\n datatype: CaseSearchFieldDataType;\n fieldtype: CaseSearchFieldFieldType;\n matchtype: CaseSearchFieldMatchType;\n}\n\nexport {\n CaseSearchFieldDataType,\n CaseSearchFieldFieldType,\n CaseSearchFieldMatchType,\n CaseSearchField,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, ComponentRef, ViewContainerRef} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {take} from 'rxjs';\n\nexport interface TabLoader<T_TAB extends Tab> {\n tabs: T_TAB[];\n\n initial(tabName?: string): void;\n\n load(tabToLoad: T_TAB): void;\n}\n\nexport class TabLoaderImpl implements TabLoader<TabImpl> {\n private readonly _tabs: TabImpl[] = null;\n private readonly _componentFactoryResolver: ComponentFactoryResolver = null;\n private readonly _viewContainerRef: ViewContainerRef = null;\n private _activeComponent: ComponentRef<any> = null;\n private _activeTab: TabImpl = null;\n private _router: Router;\n private _route: ActivatedRoute;\n\n constructor(\n tabs: TabImpl[],\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n router: Router,\n route: ActivatedRoute\n ) {\n this._tabs = tabs;\n this._componentFactoryResolver = componentFactoryResolver;\n this._viewContainerRef = viewContainerRef;\n this._router = router;\n this._route = route;\n }\n\n public get tabs(): TabImpl[] {\n return this._tabs;\n }\n\n public initial(tabName?: string): void {\n let initialTab!: TabImpl;\n\n if (tabName) {\n initialTab =\n this._tabs.find(tab => tab.name === tabName) ||\n this._tabs.find(tab => tab.contentKey === tabName);\n }\n\n if (!initialTab) {\n initialTab = this._tabs[0] || null;\n }\n\n this.load(initialTab);\n }\n\n public load(newTab: TabImpl): void {\n if (newTab !== this._activeTab) {\n this._tabs.forEach(tab => tab.deactivate());\n this.replaceView(newTab);\n this.replaceUrlState(newTab);\n this.setActive(newTab);\n }\n }\n\n public refreshView() {\n this.replaceView(this._activeTab);\n }\n\n private replaceView(tab: TabImpl): void {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(tab.component);\n this._viewContainerRef.clear();\n if (this._activeTab !== null) {\n this._activeComponent.destroy();\n }\n this._activeComponent = this._viewContainerRef.createComponent(componentFactory);\n }\n\n private replaceUrlState(nextTab: TabImpl): void {\n this._route.params.pipe(take(1)).subscribe(params => {\n const currentUrl = this._router.url;\n const currentDocumentId = params?.documentId;\n const queryParams = currentUrl.split('?')[1] || '';\n const urlBeforeDocumentId = currentUrl.split(currentDocumentId)[0];\n\n this._router.navigateByUrl(\n `${urlBeforeDocumentId}${currentDocumentId}/${nextTab.name}${\n queryParams ? `?${queryParams}` : ''\n }`\n );\n });\n }\n\n private setActive(tab: TabImpl): void {\n tab.activate();\n this._activeTab = tab;\n }\n}\n\nexport interface Tab {\n name: string;\n sequence: number;\n component: any;\n title: string;\n contentKey: string;\n\n activate(): void;\n\n deactivate(): void;\n\n isActive(): boolean;\n}\n\nexport class TabImpl implements Tab {\n private readonly _name: string;\n private readonly _sequence: number;\n private readonly _component: any;\n private readonly _contentKey: string;\n private readonly _title: string;\n private _active = false;\n\n constructor(name: string, sequence: number, component: any, contentKey?: string, title?: string) {\n this._name = name;\n this._sequence = sequence;\n this._component = component;\n\n if (contentKey) {\n this._contentKey = contentKey;\n }\n\n if (title) {\n this._title = title;\n }\n }\n\n public get name(): string {\n return this._name;\n }\n\n public get sequence(): number {\n return this._sequence;\n }\n\n public get component(): any {\n return this._component;\n }\n\n public get contentKey(): string {\n return this._contentKey;\n }\n\n public get title(): string {\n return this._title;\n }\n\n public activate(): void {\n this._active = true;\n }\n\n public deactivate(): void {\n this._active = false;\n }\n\n public isActive(): boolean {\n return this._active;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormioForm} from '@formio/angular/formio.common';\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\n\nenum DefaultTabs {\n summary = 'summary',\n progress = 'progress',\n audit = 'audit',\n documents = 'documents',\n contactMoments = 'contact-moments',\n zaakobjecten = 'zaakobjecten',\n notes = 'notes',\n}\n\ntype DefaultTabComponents = {\n [key in DefaultTabs]: Type<any>;\n};\n\ninterface CaseTabConfig {\n [tabKey: string]: Type<any>;\n}\n\nexport {DefaultTabs, DefaultTabComponents, CaseTabConfig};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum ApiTabType {\n STANDARD = 'standard',\n FORMIO = 'formio',\n CUSTOM = 'custom',\n}\n\ninterface ApiTabItem {\n name: string | null;\n key: string;\n type: ApiTabType;\n contentKey: string;\n}\n\nexport {ApiTabType, ApiTabItem};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './candidate-user.model';\nexport * from './dossier-parameters.model';\nexport * from './search.model';\nexport * from './tabs.model';\nexport * from './zaakobjecten.model';\nexport * from './dossier-detail-tab.model';\nexport * from './tab-api.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ProcessInstanceTask, ProcessService} from '@valtimo/process';\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\nimport {Document, DocumentService, ProcessDocumentInstance} from '@valtimo/document';\nimport {\n CAN_VIEW_TASK_PERMISSION,\n TASK_DETAIL_PERMISSION_RESOURCE,\n TaskDetailModalComponent,\n TaskService,\n} from '@valtimo/task';\nimport {FormService} from '@valtimo/form';\nimport {FormioOptionsImpl, ValtimoFormioOptions} from '@valtimo/components';\nimport moment from 'moment';\nimport {FormioForm} from '@formio/angular';\nimport {UserProviderService} from '@valtimo/security';\nimport {BehaviorSubject, combineLatest, of, Subscription, switchMap} from 'rxjs';\nimport {PermissionService} from '@valtimo/access-control';\nimport {catchError} from 'rxjs/operators';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-summary',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierDetailTabSummaryComponent implements OnInit, OnDestroy {\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n public readonly documentDefinitionName: string;\n public document: Document;\n public documentId: string;\n public processDocumentInstances: ProcessDocumentInstance[] = [];\n private snapshot: ParamMap;\n public tasks: ProcessInstanceTask[] = [];\n public moment;\n public formDefinition: FormioForm = null;\n public options: ValtimoFormioOptions;\n public roles: string[] = [];\n public readonly loadingTasks$ = new BehaviorSubject<boolean>(true);\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly router: Router,\n private readonly documentService: DocumentService,\n private readonly taskService: TaskService,\n private readonly processService: ProcessService,\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n private readonly route: ActivatedRoute,\n private readonly formService: FormService,\n private readonly userProviderService: UserProviderService,\n private readonly permissionService: PermissionService\n ) {\n this.snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';\n this.documentId = this.snapshot.get('documentId') || '';\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n }\n\n public ngOnInit(): void {\n this.moment = moment;\n this.init();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n public init(): void {\n this._subscriptions.add(\n this.documentService.getDocument(this.documentId).subscribe(document => {\n this.document = document;\n })\n );\n\n this._subscriptions.add(\n this.formService\n .getFormDefinitionByNamePreFilled(`${this.documentDefinitionName}.summary`, this.documentId)\n .subscribe(formDefinition => {\n this.formDefinition = formDefinition;\n })\n );\n\n this._subscriptions.add(\n this.userProviderService.getUserSubject().subscribe(user => {\n this.roles = user.roles;\n this.tasks = [];\n this.loadProcessDocumentInstances(this.documentId);\n })\n );\n }\n\n public loadProcessDocumentInstances(documentId: string): void {\n this._subscriptions.add(\n this.documentService\n .findProcessDocumentInstances(documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances;\n this.processDocumentInstances.forEach(instance => {\n this.loadProcessInstanceTasks(instance.id.processInstanceId);\n });\n })\n );\n }\n\n public rowTaskClick(task: any): void {\n this.taskDetail.openTaskDetails(task);\n }\n\n private loadProcessInstanceTasks(processInstanceId: string): void {\n this._subscriptions.add(\n this.processService\n .getProcessInstanceTasks(processInstanceId)\n .pipe(\n switchMap(tasks =>\n combineLatest([\n of(tasks),\n ...tasks.map(task =>\n this.permissionService.requestPermission(CAN_VIEW_TASK_PERMISSION, {\n resource: TASK_DETAIL_PERMISSION_RESOURCE.task,\n identifier: task.id,\n })\n ),\n ])\n ),\n catchError(() => {\n this.loadingTasks$.next(false);\n return of(null);\n })\n )\n .subscribe(res => {\n const tasks = res?.[0];\n const permissions = res?.filter((_, index) => index !== 0);\n\n if (!!tasks) {\n tasks.forEach((task, taskIndex) => {\n task.createdUnix = this.moment(task.created).unix();\n task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');\n task.isLocked = !permissions[taskIndex];\n });\n this.tasks = this.tasks.concat(tasks);\n this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);\n }\n\n this.loadingTasks$.next(false);\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"container-fluid\" *ngIf=\"{loadingTasks: loadingTasks$ | async} as obs\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">{{ 'summary.userTasks' | translate }}</h4>\n <ng-container *ngIf=\"!obs.loadingTasks; else loadingTasksTemplate\">\n <ng-container *ngIf=\"(tasks | isArray: 1) === false\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n\n <ng-container *ngIf=\"tasks | isArray: 1\">\n <valtimo-widget *ngFor=\"let task of tasks\">\n <div\n *ngIf=\"!task.isLocked\"\n class=\"p-3 clickable hoverable\"\n (click)=\"rowTaskClick(task)\"\n >\n <span class=\"float-right badge badge-pill badge-primary\">{{\n 'summary.taskOpen' | translate\n }}</span>\n <strong>{{ task.name }}</strong>\n <div class=\"mt-1\">{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n </ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n\n<ng-template #loadingTasksTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {ProcessDocumentInstance} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-progress',\n templateUrl: './progress.component.html',\n styleUrls: ['./progress.component.css'],\n})\nexport class DossierDetailTabProgressComponent implements OnInit {\n public processDocumentInstances: ProcessDocumentInstance[];\n public selectedProcessInstanceId: string;\n public readonly documentId: string;\n\n constructor(\n private route: ActivatedRoute,\n private documentService: DocumentService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n ngOnInit() {\n this.documentService\n .findProcessDocumentInstances(this.documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances.sort((a, b) =>\n a.isActive === b.isActive ? 0 : a.isActive ? -1 : 1\n );\n if (processDocumentInstances.length > 0) {\n this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;\n }\n });\n }\n\n public loadProcessInstance(processInstanceId: string) {\n this.selectedProcessInstanceId = processInstanceId;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"full-height-tab-content\"\n *ngIf=\"\n processDocumentInstances && processDocumentInstances.length > 0;\n else emptyProcessDocumentInstances\n \"\n>\n <div class=\"col-3\">\n <label><strong>Process</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option\n *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\"\n >\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram\n [processInstanceId]=\"selectedProcessInstanceId\"\n ></valtimo-process-diagram>\n</div>\n\n<ng-template #emptyProcessDocumentInstances>\n <span> {{ 'progress.noProcessDocumentInstances' | translate }}</span>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport moment from 'moment';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, AuditEvent} from '@valtimo/document';\nimport {NgxSpinnerService} from 'ngx-spinner';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-audit',\n templateUrl: './audit.component.html',\n styleUrls: ['./audit.component.css'],\n})\nexport class DossierDetailTabAuditComponent implements OnInit {\n @Output() paginationClicked: EventEmitter<any> = new EventEmitter();\n\n public timelineItems: TimelineItem[];\n private readonly documentId: string;\n public pagination: any;\n private defaultAuditPage = 0;\n private currentAuditPage: number;\n\n constructor(\n private route: ActivatedRoute,\n private documentService: DocumentService,\n private spinnerService: NgxSpinnerService\n ) {\n this.spinnerService.show('auditSpinner');\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n private static getTranslationKey(auditEvent: AuditEvent) {\n const classNameArray = auditEvent.className.split('.');\n const eventName = classNameArray[classNameArray.length - 1];\n return 'events.' + eventName;\n }\n\n ngOnInit() {\n this.loadAuditPage(this.defaultAuditPage);\n }\n\n public loadAuditPage(pageNumber: number) {\n this.documentService.getAuditLog(this.documentId, pageNumber).subscribe(page => {\n const timelineItems = [];\n page.content.forEach(auditRecord => {\n const occurredOn = moment(auditRecord.metaData.occurredOn);\n const fromNow = occurredOn.fromNow();\n timelineItems.push(\n new TimelineItemImpl(\n occurredOn.format('DD MMM YYYY'),\n occurredOn.format('HH:mm'),\n auditRecord.metaData.user,\n fromNow,\n DossierDetailTabAuditComponent.getTranslationKey(auditRecord.auditEvent),\n auditRecord.auditEvent\n )\n );\n });\n this.timelineItems = timelineItems;\n this.spinnerService.hide('auditSpinner');\n this.pagination = page;\n this.pagination.number += 1;\n });\n }\n\n public onChangePagination(page) {\n this.paginationClicked.emit(page);\n this.currentAuditPage = page - 1;\n this.loadAuditPage(this.currentAuditPage);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n</div>\n<valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n>\n</valtimo-spinner>\n<div\n class=\"pagination-holder audit-pagination bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && pagination.totalElements > pagination.size\"\n>\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate: {current: pagination.number, total: pagination.totalPages}\n }}</strong>\n <br />\n {{\n pagination.totalElements === 1\n ? ('list.showingResult' | translate: {number: pagination.content.length})\n : ('list.showingResults'\n | translate: {number: pagination.content.length, total: pagination.totalElements})\n }}\n </div>\n <div class=\"col-8\">\n <ngb-pagination\n *ngIf=\"pagination.totalElements > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.totalElements\"\n [(page)]=\"pagination.number\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"onChangePagination(pagination.number)\"\n ></ngb-pagination>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {RelatedFile} from '@valtimo/document';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FileSortService {\n constructor(private readonly configService: ConfigService) {}\n\n sortRelatedFilesByDateDescending(relatedFiles: Array<RelatedFile>): Array<RelatedFile> {\n const sortByDate = this.configService.config?.featureToggles?.sortFilesByDate;\n\n if (sortByDate) {\n return relatedFiles.sort(\n (a, b) => new Date(b.createdOn).getTime() - new Date(a.createdOn).getTime()\n );\n }\n\n return relatedFiles;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, RelatedFile, RelatedFileListItem} from '@valtimo/document';\nimport {DownloadService, UploadProviderService} from '@valtimo/resource';\nimport {ToastrService} from 'ngx-toastr';\nimport {catchError, map, switchMap, take, tap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable, of, Subject} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/config';\nimport {DocumentenApiMetadata, PromptService} from '@valtimo/components';\nimport {UserProviderService} from '@valtimo/security';\nimport {FileSortService} from '../../../../services/file-sort.service';\nimport moment from 'moment';\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})\nexport class DossierDetailTabDocumentenApiDocumentsComponent implements OnInit {\n public readonly documentId: string;\n public readonly documentDefinitionName: string;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n public readonly acceptedFiles: string =\n this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public fields = [\n {key: 'fileName', label: 'File name'},\n {key: 'sizeInBytes', label: 'Size in bytes'},\n {key: 'createdOn', label: 'Created on'},\n {key: 'createdBy', label: 'Created by'},\n ];\n\n public showZaakLinkWarning: boolean;\n public isAdmin: boolean;\n public uploadProcessLinkedSet = false;\n public uploadProcessLinked!: boolean;\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new Subject<null>();\n readonly hideModal$ = new Subject<null>();\n readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n readonly loading$ = new BehaviorSubject<boolean>(true);\n private readonly refetch$ = new BehaviorSubject<null>(null);\n\n public relatedFiles$: Observable<Array<RelatedFileListItem>> = this.refetch$.pipe(\n switchMap(() =>\n combineLatest([\n this.documentService.getZakenApiDocuments(this.documentId),\n this.translateService.stream('key'),\n ])\n ),\n map(([relatedFiles]) => {\n const translatedFiles = relatedFiles?.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n }));\n\n return translatedFiles || [];\n }),\n map(relatedFiles => this.fileSortService.sortRelatedFilesByDateDescending(relatedFiles)),\n map(relatedFiles => {\n moment.locale(this.translateService.currentLang);\n\n return relatedFiles.map(file => ({\n ...file,\n createdOn: moment(new Date(file.createdOn)).format('L'),\n }));\n }),\n tap(() => this.loading$.next(false)),\n catchError(() => {\n this.showZaakLinkWarning = true;\n return of([]);\n })\n );\n\n readonly downloadingFileIndexes$ = new BehaviorSubject<Array<number>>([]);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly toastrService: ToastrService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly promptService: PromptService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly userProviderService: UserProviderService,\n private readonly fileSortService: FileSortService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n }\n\n ngOnInit(): void {\n this.refetchDocuments();\n this.setUploadProcessLinked();\n this.isUserAdmin();\n }\n\n fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal$.next(null);\n }\n\n downloadDocument(relatedFile: RelatedFile, index: number): void {\n this.downloadingFileIndexes$.pipe(take(1)).subscribe(indexes => {\n this.downloadingFileIndexes$.next([...indexes, index]);\n\n const finished$: Observable<null> = this.downloadService.downloadFile(\n `/api/v1/documenten-api/${relatedFile.pluginConfigurationId}/files/${relatedFile.fileId}/download`,\n relatedFile.fileName\n );\n\n finished$.pipe(take(1)).subscribe(() => {\n this.downloadingFileIndexes$.next(\n this.downloadingFileIndexes$.getValue().filter(downloadIndex => downloadIndex !== index)\n );\n });\n });\n }\n\n metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n this.hideModal$.next(null);\n\n this.fileToBeUploaded$\n .pipe(take(1))\n .pipe(\n tap(file => {\n this.uploadProviderService\n .uploadFileWithMetadata(file, this.documentId, metadata)\n .subscribe(res => {\n this.refetchDocuments();\n this.uploading$.next(false);\n this.fileToBeUploaded$.next(null);\n });\n })\n )\n .subscribe();\n }\n\n indexesIncludeIndex(indexes: Array<number>, index: number): boolean {\n return indexes.includes(index);\n }\n\n public isUserAdmin() {\n this.userProviderService.getUserSubject().subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n error => {\n this.isAdmin = false;\n }\n );\n }\n\n private refetchDocuments(): void {\n this.refetch$.next(null);\n }\n\n private setUploadProcessLinked(): void {\n this.uploadProviderService.checkUploadProcessLink(this.documentDefinitionName).subscribe(\n linked => {\n this.uploadProcessLinked = linked;\n this.uploadProcessLinkedSet = true;\n },\n () => {\n this.uploadProcessLinkedSet = true;\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{loading: loading$ | async} as obs\">\n <div *ngIf=\"uploadProcessLinkedSet && !uploadProcessLinked\">\n <div\n *ngIf=\"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=\"!isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <div *ngIf=\"showZaakLinkWarning\">\n <div\n [translate]=\"'dossier.documenten.noZaakFound'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n\n <valtimo-dropzone\n *ngIf=\"!obs.loading\"\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [camera]=\"false\"\n [disabled]=\"\n !uploadProcessLinkedSet || !uploadProcessLinked || obs.loading || showZaakLinkWarning\n \"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"true\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n\n <valtimo-widget>\n <valtimo-list\n [ngClass]=\"{hidden: obs.loading}\"\n [fields]=\"fields\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [items]=\"relatedFiles$ | async\"\n [viewMode]=\"true\"\n [lastColumnTemplate]=\"downloadButton\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n <ng-container *ngTemplateOutlet=\"loading; context: {loading: obs.loading}\"></ng-container>\n </valtimo-widget>\n</ng-container>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hide$]=\"hideModal$\"\n [show$]=\"showModal$\"\n></valtimo-documenten-api-metadata-modal>\n\n<ng-template #loading let-loading=\"loading\">\n <div *ngIf=\"loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #downloadButton let-index=\"index\" let-item=\"item\">\n <div\n class=\"download-button-container\"\n *ngIf=\"{isDownloading: indexesIncludeIndex(downloadingFileIndexes$ | async, index)} as vars\"\n >\n <button\n *ngIf=\"!vars.isDownloading\"\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"downloadDocument(item, index)\"\n >\n {{ 'interface.download' | translate\n }}<svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n <cds-loading size=\"sm\" *ngIf=\"vars.isDownloading\"></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, RelatedFile} from '@valtimo/document';\nimport {DownloadService, ResourceDto, UploadProviderService} from '@valtimo/resource';\nimport {ToastrService} from 'ngx-toastr';\nimport {map, switchMap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/config';\nimport {PromptService} from '@valtimo/components';\nimport {FileSortService} from '../../../../services/file-sort.service';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-s3-documents',\n templateUrl: './s3-documents.component.html',\n styleUrls: ['./s3-documents.component.scss'],\n})\nexport class DossierDetailTabS3DocumentsComponent implements OnInit {\n public readonly documentId: string;\n public readonly documentDefinitionName: string;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n public readonly acceptedFiles: string =\n this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public fields = [\n {key: 'fileName', label: 'File name'},\n {key: 'sizeInBytes', label: 'Size in bytes'},\n {key: 'createdOn', label: 'Created on', viewType: 'date'},\n {key: 'createdBy', label: 'Created by'},\n ];\n public actions = [\n {\n columnName: '',\n iconClass: 'mdi mdi-open-in-new',\n callback: this.downloadDocument.bind(this),\n },\n {\n columnName: '',\n iconClass: 'mdi mdi-delete',\n callback: this.removeRelatedFile.bind(this),\n },\n ];\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n private readonly refetch$ = new BehaviorSubject<null>(null);\n public relatedFiles$: Observable<Array<RelatedFile>> = this.refetch$.pipe(\n switchMap(() =>\n combineLatest([\n this.documentService.getDocument(this.documentId),\n this.translateService.stream('key'),\n ])\n ),\n map(([document]) => {\n const relatedFiles = document?.relatedFiles || [];\n const translatedFiles = relatedFiles.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n }));\n\n return translatedFiles || [];\n }),\n map(relatedFiles => this.fileSortService.sortRelatedFilesByDateDescending(relatedFiles))\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly toastrService: ToastrService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly promptService: PromptService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly fileSortService: FileSortService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n }\n\n ngOnInit(): void {\n this.refetchDocuments();\n }\n\n fileSelected(file: File): void {\n this.uploading$.next(true);\n\n this.uploadProviderService\n .uploadFile(file, this.documentDefinitionName, this.documentId)\n .pipe(\n switchMap(resourceFile =>\n this.documentService.assignResource(this.documentId, resourceFile.data.resourceId)\n )\n )\n .subscribe({\n next: () => {\n this.toastrService.success('Successfully uploaded document to dossier');\n this.refetchDocuments();\n this.uploading$.next(false);\n },\n error: () => {\n this.toastrService.error('Failed to upload document to dossier');\n this.uploading$.next(false);\n },\n });\n }\n\n downloadDocument(relatedFile: RelatedFile): void {\n this.uploadProviderService\n .getResource(relatedFile.fileId)\n .subscribe((resource: ResourceDto) => {\n this.downloadService.downloadFile(resource.url, resource.resource.name);\n });\n }\n\n removeRelatedFile(relatedFile: RelatedFile) {\n this.promptService.openPrompt({\n headerText: this.translateService.instant('dossier.deleteConfirmation.title'),\n bodyText: this.translateService.instant('dossier.deleteConfirmation.description'),\n cancelButtonText: this.translateService.instant('dossier.deleteConfirmation.cancel'),\n confirmButtonText: this.translateService.instant('dossier.deleteConfirmation.delete'),\n cancelMdiIcon: 'cancel',\n confirmMdiIcon: 'delete',\n cancelButtonType: 'secondary',\n confirmButtonType: 'primary',\n closeOnConfirm: true,\n closeOnCancel: true,\n confirmCallBackFunction: () => {\n this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(\n () => {\n this.toastrService.success('Successfully removed document from dossier');\n this.refetchDocuments();\n },\n () => {\n this.toastrService.error('Failed to remove document from dossier');\n }\n );\n },\n });\n }\n\n private refetchDocuments(): void {\n this.refetch$.next(null);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ConfigService, UploadProvider, ValtimoConfig} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-documents',\n templateUrl: './documents.component.html',\n styleUrls: ['./documents.component.css'],\n})\nexport class DossierDetailTabDocumentsComponent {\n openZaakUploadProvider!: boolean;\n s3UploadProvider!: boolean;\n documentenApiUploadProvider!: boolean;\n\n constructor(private readonly configService: ConfigService) {\n this.setConfig(configService.config);\n }\n\n private setConfig(config: ValtimoConfig): void {\n const uploadProvider = config.uploadProvider;\n this.openZaakUploadProvider = uploadProvider === UploadProvider.OPEN_ZAAK;\n this.documentenApiUploadProvider = uploadProvider === UploadProvider.DOCUMENTEN_API;\n this.s3UploadProvider = config.uploadProvider === UploadProvider.S3;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dossier-detail-tab-s3-documents\n *ngIf=\"s3UploadProvider || openZaakUploadProvider\"\n></valtimo-dossier-detail-tab-s3-documents>\n<valtimo-dossier-detail-tab-documenten-api-documents *ngIf=\"documentenApiUploadProvider\">\n</valtimo-dossier-detail-tab-documenten-api-documents>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ContactMomentService} from '@valtimo/contact-moment';\nimport moment from 'moment';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {ModalComponent, TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport {map, switchMap, take} from 'rxjs/operators';\nimport {AlertService} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../../models';\nimport {VModalComponent, ModalService, SelectItem, TableColumn} from '@valtimo/components';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-zaakobjecten',\n templateUrl: './zaakobjecten.component.html',\n styleUrls: ['./zaakobjecten.component.scss'],\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {PermissionRequest} from '@valtimo/access-control';\n\nenum PERMISSION_ACTION {\n add = 'create',\n assign = 'assign',\n claim = 'claim',\n delete = 'delete',\n edit = 'modify',\n}\n\nenum DOSSIER_DETAIL_PERMISSION_RESOURCE {\n jsonSchemaDocument = 'com.ritense.document.domain.impl.JsonSchemaDocument',\n note = 'com.ritense.note.domain.Note',\n jsonSchemaDocumentDefinition = 'com.ritense.document.domain.impl.JsonSchemaDocumentDefinition',\n}\n\nconst CAN_CLAIM_CASE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.claim,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n};\n\nconst CAN_ADD_NOTE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.add,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n};\n\nconst CAN_DELETE_NOTE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.delete,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n};\n\nconst CAN_EDIT_NOTE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.edit,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n};\n\nconst CAN_ASSIGN_CASE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.assign,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n};\n\nconst CAN_CREATE_CASE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.add,\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n};\n\nexport {\n CAN_ADD_NOTE_PERMISSION,\n CAN_ASSIGN_CASE_PERMISSION,\n CAN_CLAIM_CASE_PERMISSION,\n CAN_DELETE_NOTE_PERMISSION,\n CAN_EDIT_NOTE_PERMISSION,\n DOSSIER_DETAIL_PERMISSION_RESOURCE,\n CAN_CREATE_CASE_PERMISSION,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-detail.permissions';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService, ConnectorModal, Page} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\nimport {Note, NoteCreateRequest, NoteUpdateRequest} from '../models/notes.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotesService {\n private readonly VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n private readonly _showModal$ = new Subject();\n private readonly _hideModal$ = new Subject();\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _modalType$ = new BehaviorSubject<ConnectorModal>('add');\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {}\n\n getDocumentNotes(documentId: string, params?: any): Observable<Page<Note>> {\n return this.http.get<Page<Note>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`,\n {params}\n );\n }\n\n createDocumentNote(documentId: string, request: NoteCreateRequest): Observable<Note> {\n return this.http.post<Note>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`,\n request\n );\n }\n\n updateNote(noteId: string, request: NoteUpdateRequest): Observable<Note> {\n return this.http.put<Note>(`${this.VALTIMO_API_ENDPOINT_URI}v1/note/${noteId}`, request);\n }\n\n deleteNote(noteId: string): Observable<Note> {\n return this.http.delete<Note>(`${this.VALTIMO_API_ENDPOINT_URI}v1/note/${noteId}`);\n }\n\n get showModal$(): Observable<any> {\n return this._showModal$.asObservable();\n }\n\n get hideModal$(): Observable<any> {\n return this._hideModal$.asObservable();\n }\n\n get refresh$(): Observable<any> {\n return this._refresh$.asObservable();\n }\n\n get modalType$(): Observable<ConnectorModal> {\n return this._modalType$.asObservable();\n }\n\n showModal(): void {\n this._showModal$.next(null);\n }\n\n hideModal(): void {\n this._hideModal$.next(null);\n }\n\n refresh(): void {\n this._refresh$.next(null);\n }\n\n setModalType(type: ConnectorModal): void {\n this._modalType$.next(type);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {VModalComponent, ModalService} from '@valtimo/components';\nimport {BehaviorSubject, combineLatest, Observable, Subject, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {NotesService} from '../../services/notes.service';\n\n@Component({\n selector: 'valtimo-note-modal',\n templateUrl: './note-modal.component.html',\n styleUrls: ['./note-modal.component.scss'],\n})\nexport class NoteModalComponent implements AfterViewInit, OnDestroy {\n @ViewChild('noteModal') noteModal: VModalComponent;\n @Input() customData;\n @Output() createNoteEvent: EventEmitter<any> = new EventEmitter();\n @Output() editNoteEvent: EventEmitter<any> = new EventEmitter();\n\n readonly disabled$!: Observable<boolean>;\n readonly valid$ = new BehaviorSubject<boolean>(false);\n readonly showForm$: Observable<boolean> = this.modalService.modalVisible$;\n readonly formData$ = new BehaviorSubject<any>(null);\n readonly modalType$: Observable<string> = this.notesService.modalType$;\n\n showSubscription!: Subscription;\n hideSubscription!: Subscription;\n\n readonly returnToFirstStepSubject$ = new Subject<boolean>();\n\n constructor(\n private readonly notesService: NotesService,\n private readonly modalService: ModalService\n ) {}\n\n ngAfterViewInit(): void {\n this.openShowSubscription();\n this.openHideSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription?.unsubscribe();\n this.hideSubscription?.unsubscribe();\n }\n\n hide(): void {\n this.formData$.next(null);\n this.valid$.next(false);\n this.modalService.closeModal();\n }\n\n cancel(): void {\n this.hide();\n }\n\n save(): void {\n combineLatest([this.valid$, this.formData$])\n .pipe(take(1))\n .subscribe(([valid, formData]) => {\n if (valid) {\n this.createNoteEvent.emit(formData);\n }\n });\n }\n\n emitNoteData(): void {\n combineLatest([this.valid$, this.formData$, this.modalType$])\n .pipe(take(1))\n .subscribe(([valid, formData, modalType]) => {\n if (valid) {\n if (modalType === 'add') {\n this.createNoteEvent.emit(formData);\n } else {\n this.editNoteEvent.emit({formData, data: this.customData});\n }\n }\n });\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.notesService.showModal$.subscribe(() => {\n this.show();\n });\n }\n\n private openHideSubscription(): void {\n this.hideSubscription = this.notesService.hideModal$.subscribe(() => {\n this.hide();\n });\n }\n\n private show(): void {\n this.notesService.modalType$.pipe(take(1)).subscribe(() => {\n this.modalService.openModal(this.noteModal);\n });\n }\n\n formValueChange(data: any): void {\n this.formData$.next(data);\n this.setValid(data);\n }\n\n private setValid(data: any): void {\n this.valid$.next(!!data.content);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #noteModal\n *ngIf=\"{disabled: disabled$ | async, valid: valid$ | async, modalType: modalType$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"add-note-title\">\n <v-title [margin]=\"false\">{{\n (obs.modalType === 'add' ? 'dossier.notes.addNote' : 'dossier.notes.modifyNote') | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'document.cancel' | translate }}\n </v-button>\n <ng-container\n *ngTemplateOutlet=\"\n obs.modalType === 'add' ? addNoteButton : editNoteButton;\n context: {obs: obs}\n \"\n ></ng-container>\n </div>\n </div>\n</v-modal>\n\n<ng-template #addNoteButton let-obs=\"obs\">\n <v-button\n (clickEvent)=\"emitNoteData()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n </v-button>\n</ng-template>\n<ng-template #editNoteButton let-obs=\"obs\">\n <v-button\n [disabled]=\"obs.disabled || !obs.valid\"\n (clickEvent)=\"emitNoteData()\"\n mdiIcon=\"pencil\"\n type=\"success\"\n >\n {{ 'dossier.notes.modifyNote' | translate }}\n </v-button>\n</ng-template>\n\n<ng-template #form>\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n type=\"textarea\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'dossier.notes.input.content' | translate\"\n name=\"content\"\n [fullWidth]=\"true\"\n [rows]=\"10\"\n [defaultValue]=\"customData?.summaryTranslationKey || ''\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PermissionService} from '@valtimo/access-control';\nimport {Pagination, TimelineItem, TimelineItemImpl, PromptService} from '@valtimo/components';\nimport {Page} from '@valtimo/config';\nimport moment from 'moment';\nimport {ToastrService} from 'ngx-toastr';\nimport {BehaviorSubject, combineLatest, map, Observable, of} from 'rxjs';\nimport {switchMap, take, tap} from 'rxjs/operators';\nimport {Note} from '../../../../models/notes.model';\nimport {\n CAN_ADD_NOTE_PERMISSION,\n CAN_DELETE_NOTE_PERMISSION,\n CAN_EDIT_NOTE_PERMISSION,\n DOSSIER_DETAIL_PERMISSION_RESOURCE,\n} from '../../../../permissions';\nimport {NotesService} from '../../../../services/notes.service';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-notes',\n templateUrl: './notes.component.html',\n styleUrls: ['./notes.component.scss'],\n})\nexport class DossierDetailTabNotesComponent implements OnInit {\n public timelineItems: TimelineItem[] = [];\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly fields$ = new BehaviorSubject<Array<{key: string; label: string}>>([]);\n public readonly customData$ = new BehaviorSubject<object>({});\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n public readonly actions = [\n {id: 'edit', label: 'Edit', icon: 'mdi-pencil', callback: this.editNote.bind(this)},\n {id: 'delete', label: 'Delete', icon: 'mdi-delete', callback: this.deleteNote.bind(this)},\n ];\n\n public readonly canAdd$: Observable<boolean> = this.documentId$.pipe(\n switchMap((identifier: string) =>\n this.permissionService.requestPermission(CAN_ADD_NOTE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier,\n })\n )\n );\n\n public readonly currentPageAndSize$ = new BehaviorSubject<Partial<Pagination>>({\n page: 0,\n size: 10,\n });\n\n public readonly pageSizes$ = new BehaviorSubject<Partial<Pagination>>({\n collectionSize: 0,\n });\n\n public readonly pagination$: Observable<Pagination> = combineLatest([\n this.currentPageAndSize$,\n this.pageSizes$,\n ]).pipe(\n map(\n ([currentPage, sizes]) =>\n ({...currentPage, ...sizes, page: (currentPage.page ?? 0) + 1}) as Pagination\n )\n );\n\n public readonly notes$: Observable<Array<Note>> = combineLatest([\n this.documentId$,\n this.currentPageAndSize$,\n this.notesService.refresh$,\n this.notesService.refresh$,\n ]).pipe(\n tap(() => (this.timelineItems = [])),\n switchMap(([documentId, currentPage]) =>\n this.notesService.getDocumentNotes(documentId, {\n page: currentPage.page,\n size: currentPage.size,\n })\n ),\n tap((res: Page<Note>) => {\n this.timelineItems = [];\n this.pageSizes$.pipe(take(1)).subscribe(sizes => {\n this.pageSizes$.next({...sizes, collectionSize: res.totalElements});\n });\n }),\n switchMap(res =>\n combineLatest([\n of(res),\n ...res.content.map(note =>\n this.permissionService.requestPermission(CAN_DELETE_NOTE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n identifier: note.id,\n })\n ),\n ...res.content.map(note =>\n this.permissionService.requestPermission(CAN_EDIT_NOTE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.note,\n identifier: note.id,\n })\n ),\n ])\n ),\n map(combinedResults => {\n const permissionResults = combinedResults.filter((curr, index) => index !== 0);\n const halfIndex = Math.ceil(permissionResults.length / 2);\n const deletePermissions = permissionResults.slice(0, halfIndex);\n const editPermissions = permissionResults.slice(halfIndex);\n\n return combinedResults[0].content.map((note: Note, index) => {\n const noteCreatedDate = moment(note.createdDate).locale(this.translateService.currentLang);\n this.timelineItems.push(\n new TimelineItemImpl(\n noteCreatedDate.format('DD MMM YYYY'),\n noteCreatedDate.format('HH:mm'),\n note.createdByUserFullName,\n noteCreatedDate.fromNow(),\n note.content,\n {},\n {id: note.id},\n [\n ...(deletePermissions[index] ? ['delete'] : []),\n ...(editPermissions[index] ? ['edit'] : []),\n ]\n )\n );\n return {\n ...note,\n };\n });\n }),\n tap(() => this.loading$.next(false))\n );\n\n constructor(\n private readonly notesService: NotesService,\n private readonly permissionService: PermissionService,\n private readonly promptService: PromptService,\n private readonly route: ActivatedRoute,\n private readonly toastrService: ToastrService,\n private readonly translateService: TranslateService\n ) {}\n\n public ngOnInit(): void {\n this.translateService.onLangChange.subscribe(() => {\n this.notesService.refresh();\n });\n }\n\n public paginationClicked(newPageNumber): void {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, page: newPageNumber - 1});\n });\n }\n\n public showAddModal(): void {\n this.customData$.next({});\n this.notesService.setModalType('add');\n this.notesService.showModal();\n }\n\n public createNewNote(content): void {\n this.documentId$\n .pipe(\n take(1),\n switchMap((documentId: string) => this.notesService.createDocumentNote(documentId, content))\n )\n .subscribe(() => {\n this.notesService.refresh();\n this.notesService.hideModal();\n });\n }\n\n public editNoteEvent(content): void {\n this.notesService.updateNote(content.data.customData.id, content.formData).subscribe(() => {\n this.notesService.refresh();\n this.notesService.hideModal();\n this.toastrService.success(this.translateService.instant('dossier.notes.editedMessage'));\n });\n }\n\n public editNote(data): void {\n this.customData$.next(data);\n this.notesService.setModalType('modify');\n this.notesService.showModal();\n }\n\n public deleteNote(data): void {\n this.promptService.openPrompt({\n headerText: this.translateService.instant('dossier.notes.deleteConfirmation.title'),\n bodyText: this.translateService.instant('dossier.notes.deleteConfirmation.description'),\n cancelButtonText: this.translateService.instant('dossier.deleteConfirmation.cancel'),\n confirmButtonText: this.translateService.instant('dossier.deleteConfirmation.delete'),\n cancelMdiIcon: 'cancel',\n confirmMdiIcon: 'delete',\n cancelButtonType: 'secondary',\n confirmButtonType: 'primary',\n closeOnConfirm: true,\n closeOnCancel: true,\n confirmCallBackFunction: () => {\n this.notesService.deleteNote(data.customData.id).subscribe(() => {\n this.notesService.refresh();\n this.toastrService.success(\n this.translateService.instant('dossier.notes.deleteConfirmation.deletedMessage')\n );\n });\n },\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n canAdd: canAdd$ | async,\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <button\n *ngIf=\"obs.canAdd\"\n [disabled]=\"obs.loading\"\n (click)=\"showAddModal()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n class=\"btn btn-space btn-primary mr-1 add-note\"\n type=\"button\"\n >\n <span>{{ 'dossier.notes.addNote' | translate }}</span>\n\n <i class=\"ml-1 icon mdi mdi-plus\"></i>\n </button>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline [actions]=\"actions\" [items]=\"timelineItems\"></valtimo-timeline>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div *ngIf=\"obs.pagination\" class=\"d-flex justify-content-end row mr-0 ml-0\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxSize]=\"obs.pagination.size\"\n [pageSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n [(page)]=\"obs.pagination.page\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</ng-container>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (createNoteEvent)=\"createNewNote($event)\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n></valtimo-note-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {DossierDetailTabSummaryComponent} from '../components/dossier-detail/tab/summary/summary.component';\nimport {DossierDetailTabProgressComponent} from '../components/dossier-detail/tab/progress/progress.component';\nimport {DossierDetailTabAuditComponent} from '../components/dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabDocumentsComponent} from '../components/dossier-detail/tab/documents/documents.component';\nimport {DefaultTabComponents, DefaultTabs} from '../models';\nimport {DossierDetailTabContactMomentsComponent} from '../components/dossier-detail/tab/contact-moments/contact-moments.component';\nimport {DossierDetailTabZaakobjectenComponent} from '../components/dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nimport {DossierDetailTabNotesComponent} from '../components/dossier-detail/tab/notes/notes.component';\n\nconst TAB_MAP = new InjectionToken<Map<string, object>>('TabMap');\n\nconst DEFAULT_TABS = new Map<string, object>([\n [DefaultTabs.summary, DossierDetailTabSummaryComponent],\n [DefaultTabs.progress, DossierDetailTabProgressComponent],\n [DefaultTabs.audit, DossierDetailTabAuditComponent],\n [DefaultTabs.documents, DossierDetailTabDocumentsComponent],\n]);\n\nconst DEFAULT_TAB_COMPONENTS: DefaultTabComponents = {\n [DefaultTabs.summary]: DossierDetailTabSummaryComponent,\n [DefaultTabs.progress]: DossierDetailTabProgressComponent,\n [DefaultTabs.audit]: DossierDetailTabAuditComponent,\n [DefaultTabs.documents]: DossierDetailTabDocumentsComponent,\n [DefaultTabs.contactMoments]: DossierDetailTabContactMomentsComponent,\n [DefaultTabs.zaakobjecten]: DossierDetailTabZaakobjectenComponent,\n [DefaultTabs.notes]: DossierDetailTabNotesComponent,\n};\n\nexport {TAB_MAP, DEFAULT_TABS, DEFAULT_TAB_COMPONENTS};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CaseTabConfig} from '../models';\n\nconst CASE_TAB_TOKEN = new InjectionToken<CaseTabConfig>(\n 'Specify a component to display per configured tab key.'\n);\n\nexport {CASE_TAB_TOKEN};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../../models';\nimport {VModalComponent, ModalService, TableColumn} from '@valtimo/components';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-object-type',\n templateUrl: './object-type.component.html',\n styleUrls: ['./object-type.component.scss'],\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {DossierTabService} from '../../../../services';\nimport {ActivatedRoute} from '@angular/router';\nimport {FormService} from '@valtimo/form';\nimport {BehaviorSubject, combineLatest, Observable, of, switchMap, tap} from 'rxjs';\nimport {FormioForm} from '@formio/angular';\nimport {catchError} from 'rxjs/operators';\n\n@Component({\n templateUrl: './formio.component.html',\n styleUrls: ['./formio.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DossierDetailTabFormioComponent {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly formNotFound$ = new BehaviorSubject<string>('');\n public readonly noFormSpecified$ = new BehaviorSubject<boolean>(false);\n private _formDefinitionName!: string;\n public readonly prefilledForm$: Observable<FormioForm | null> = combineLatest([\n this.tabService.tabs$,\n this.route.params,\n ]).pipe(\n switchMap(([tabs, params]) => {\n const currentTabName = params?.tab;\n const documentId = params?.documentId;\n const currentTab = tabs.find(tab => tab.name === currentTabName);\n\n if (!documentId || !currentTab?.contentKey) {\n this.noFormSpecified$.next(true);\n return of(null);\n }\n\n this._formDefinitionName = currentTab.contentKey;\n return this.formService.getFormDefinitionByNamePreFilled(currentTab.contentKey, documentId);\n }),\n tap(() => this.loading$.next(false)),\n catchError(() => {\n this.formNotFound$.next(this._formDefinitionName);\n this.loading$.next(false);\n return of(null);\n })\n );\n\n constructor(\n private readonly tabService: DossierTabService,\n private readonly route: ActivatedRoute,\n private readonly formService: FormService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n prefilledForm: prefilledForm$ | async,\n loading: loading$ | async,\n formNotFound: formNotFound$ | async,\n noFormSpecified: noFormSpecified$ | async\n } as obs\"\n>\n <div *ngIf=\"obs.loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <p *ngIf=\"obs.formNotFound\" class=\"error-message\">\n {{ 'dossier.formio.formNotFound' | translate: {formDefinitionName: obs.formNotFound} }}\n </p>\n\n <p *ngIf=\"obs.noFormSpecified\" class=\"error-message\">\n {{ 'dossier.formio.noFormSpecified' | translate }}\n </p>\n\n <valtimo-form-io *ngIf=\"obs.prefilledForm\" [form]=\"obs.prefilledForm\"> </valtimo-form-io>\n</ng-container>\n","import {Injectable} from '@angular/core';\nimport {ConfigService, Page} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {Note} from '../models/notes.model';\nimport {ApiTabItem} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DossierTabApiService {\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 public getDossierTabs(documentDefinitionName): Observable<Array<ApiTabItem>> {\n return this.http.get<Array<ApiTabItem>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/case-definition/${documentDefinitionName}/tab`\n );\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {ApiTabItem, ApiTabType, CaseTabConfig, TabImpl} from '../models';\nimport {CASE_TAB_TOKEN, DEFAULT_TAB_COMPONENTS, DEFAULT_TABS, TAB_MAP} from '../constants';\nimport {ConfigService} from '@valtimo/config';\nimport {ActivatedRoute} from '@angular/router';\nimport {DossierDetailTabObjectTypeComponent} from '../components/dossier-detail/tab/object-type/object-type.component';\nimport {DossierTabApiService} from './dossier-tab-api.service';\nimport {BehaviorSubject, filter, map, Observable, Subscription} from 'rxjs';\nimport {DossierDetailTabFormioComponent} from '../components/dossier-detail/tab/formio/formio.component';\n\n@Injectable()\nexport class DossierTabService implements OnDestroy {\n private readonly _tabManagementEnabled!: boolean;\n private readonly _documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params?.documentDefinitionName),\n filter(documentDefinitionName => !!documentDefinitionName)\n );\n private readonly _tabs$ = new BehaviorSubject<Array<TabImpl> | null>(null);\n private readonly _subscriptions = new Subscription();\n\n public get tabs$(): Observable<Array<TabImpl>> {\n return this._tabs$.pipe(filter(tabs => !!tabs));\n }\n\n constructor(\n @Inject(TAB_MAP) private readonly tabMap: Map<string, object> = DEFAULT_TABS,\n @Optional() @Inject(CASE_TAB_TOKEN) private readonly caseTabConfig: CaseTabConfig,\n private readonly configService: ConfigService,\n private readonly route: ActivatedRoute,\n private readonly dossierTabApiService: DossierTabApiService\n ) {\n this._tabManagementEnabled = this.configService.config?.featureToggles?.enableTabManagement;\n this.openDocumentDefinitionNameSubscription();\n }\n\n public ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n\n private getConfigurableTabs(documentDefinitionName: string): Map<string, object> {\n const tabMap = new Map<string, object>();\n\n if (this.configService?.config?.caseObjectTypes) {\n const allNamesObjects = this.configService?.config?.caseObjectTypes[documentDefinitionName];\n\n allNamesObjects?.forEach(name => {\n tabMap.set(name, DossierDetailTabObjectTypeComponent);\n });\n }\n\n return tabMap;\n }\n\n private getAllEnvironmentTabs(extraTabs: Map<string, object>): Array<TabImpl> {\n let i = 0;\n const tabMap = extraTabs\n ? new Map([...Array.from(this.tabMap.entries()), ...Array.from(extraTabs.entries())])\n : this.tabMap;\n const tabs: Array<TabImpl> = [];\n\n tabMap.forEach((component, name) => {\n tabs.push(new TabImpl(name, i, component));\n i++;\n });\n\n return tabs;\n }\n\n private openDocumentDefinitionNameSubscription(): void {\n this._subscriptions.add(\n this._documentDefinitionName$.subscribe(documentDefinitionName => {\n if (this._tabManagementEnabled) {\n this.setApiTabs(documentDefinitionName);\n } else {\n this.setEnvironmentTabs(documentDefinitionName);\n }\n })\n );\n }\n\n private setEnvironmentTabs(documentDefinitionName: string): void {\n const configurableTabs = this.getConfigurableTabs(documentDefinitionName);\n const allEnvironmentTabs = this.getAllEnvironmentTabs(configurableTabs);\n this._tabs$.next(allEnvironmentTabs);\n }\n\n private setApiTabs(documentDefinitionName: string): void {\n this.dossierTabApiService.getDossierTabs(documentDefinitionName).subscribe({\n next: tabs => {\n const supportedTabs = tabs.filter(tab => this.filterTab(tab));\n const mappedTabs = supportedTabs.map((tab, index) => this.mapTab(tab, index));\n this._tabs$.next(mappedTabs.filter(tab => !!tab));\n },\n error: () => {\n this._tabs$.next([]);\n },\n });\n }\n\n private filterTab(tab: ApiTabItem): boolean {\n switch (tab.type) {\n case ApiTabType.STANDARD:\n return !!DEFAULT_TAB_COMPONENTS[tab.contentKey];\n case ApiTabType.CUSTOM:\n return !!(this.caseTabConfig || {})[tab.contentKey];\n default:\n return true;\n }\n }\n\n private mapTab(tab: ApiTabItem, index: number): TabImpl | null {\n switch (tab.type) {\n case ApiTabType.STANDARD:\n return new TabImpl(\n tab.key,\n index,\n DEFAULT_TAB_COMPONENTS[tab.contentKey],\n tab.contentKey,\n tab.name\n );\n case ApiTabType.FORMIO:\n return new TabImpl(\n tab.key,\n index,\n DossierDetailTabFormioComponent,\n tab.contentKey,\n tab.name\n );\n case ApiTabType.CUSTOM:\n return new TabImpl(\n tab.key,\n index,\n this.caseTabConfig[tab.contentKey],\n tab.contentKey,\n tab.name\n );\n default:\n return null;\n }\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-bulk-assign.service';\nexport * from './dossier-column.service';\nexport * from './zaakobjecten.service';\nexport * from './dossier-parameter.service';\nexport * from './dossier-list.service';\nexport * from './dossier-list-assignee.service';\nexport * from './dossier-list-pagination.service';\nexport * from './dossier-list-search.service';\nexport * from './dossier-tab.service';\nexport * from './dossier.service';\nexport * from './dossier-tab-api.service';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\nimport {ListItem} from 'carbon-components-angular';\nimport {map, Observable} from 'rxjs';\nimport {CandidateUser} from '../../models';\nimport {DossierBulkAssignService} from '../../services';\n\n@Component({\n selector: 'valtimo-dossier-bulk-assign-modal',\n templateUrl: './dossier-bulk-assign-modal.component.html',\n styleUrls: ['./dossier-bulk-assign-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DossierBulkAssignModalComponent {\n @HostBinding('class') public modalClass = 'valtimo-dossier-bulk-assign-modal';\n\n @Input() public set documentIds(value: string[]) {\n if (!value.length) {\n return;\n }\n this.bulkAssignService.loadCandidateUsers(value);\n }\n @Input() open = false;\n\n @Output() closeEvent = new EventEmitter<string | null>();\n\n public candidateUsers$: Observable<ListItem[]> = this.bulkAssignService.candidateUsers$.pipe(\n map((candidateUsers: CandidateUser[]) =>\n candidateUsers.map((candidateUser: CandidateUser) => ({\n id: candidateUser.id,\n content: `${candidateUser.firstName} ${candidateUser.lastName}`,\n selected: this.formGroup.get('assignee')?.value?.id === candidateUser.id,\n }))\n )\n );\n\n public formGroup: FormGroup = this.fb.group({\n assignee: this.fb.control({id: '', content: '', selected: false}, Validators.required),\n });\n\n constructor(\n private bulkAssignService: DossierBulkAssignService,\n private fb: FormBuilder\n ) {}\n\n public closeModal(confirm?: boolean): void {\n const assignee: ListItem | null = this.formGroup.get('assignee')?.value ?? null;\n if (!assignee) {\n this.closeEvent.emit(null);\n return;\n }\n\n this.closeEvent.emit(confirm ? assignee.id : null);\n this.formGroup.reset();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal valtimoCdsModal [open]=\"open\" (close)=\"closeModal()\" showFooter=\"true\">\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dossier.bulkAssign.modal.title' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form *ngIf=\"candidateUsers$ | async as candidateUsers\" [formGroup]=\"formGroup\">\n <cds-combo-box\n formControlName=\"assignee\"\n [dropUp]=\"false\"\n [items]=\"candidateUsers\"\n [label]=\"'dossier.bulkAssign.modal.selectLabel' | translate\"\n [placeholder]=\"'dossier.bulkAssign.modal.selectPlaceholder' | translate\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">{{ 'interface.cancel' | translate }}</button>\n\n <button cdsButton=\"primary\" [disabled]=\"formGroup.invalid\" (click)=\"closeModal(true)\">\n {{ 'dossier.bulkAssign.modal.confirm' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormioBeforeSubmit, FormioForm} from '@formio/angular';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {ProcessDocumentDefinition} from '@valtimo/document';\nimport {FormSubmissionResult, ProcessLinkService} from '@valtimo/form-link';\nimport {BehaviorSubject, combineLatest, Observable, switchMap} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {UserProviderService} from '@valtimo/security';\n\n@Component({\n selector: 'valtimo-dossier-supporting-process-start-modal',\n templateUrl: './dossier-supporting-process-start-modal.component.html',\n styleUrls: ['./dossier-supporting-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierSupportingProcessStartModalComponent {\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('supportingProcessStartModal', {static: false}) modal: ModalComponent;\n\n @Output() formSubmit = new EventEmitter();\n\n public readonly processDefinitionKey$ = new BehaviorSubject<string>('');\n public readonly documentDefinitionName$ = new BehaviorSubject<string>('');\n public readonly processName$ = new BehaviorSubject<string>('');\n public readonly formDefinition$ = new BehaviorSubject<FormioForm>(undefined);\n public readonly formioSubmission$ = new BehaviorSubject<FormioSubmission>(undefined);\n public readonly processLinkId$ = new BehaviorSubject<string>('');\n public readonly options$ = new BehaviorSubject<ValtimoFormioOptions>(undefined);\n public readonly submission$ = new BehaviorSubject<object>(undefined);\n public readonly processDefinitionId$ = new BehaviorSubject<string>(undefined);\n public readonly formFlowInstanceId$ = new BehaviorSubject<string>(undefined);\n public readonly documentId$ = new BehaviorSubject<string>(undefined);\n\n public readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));\n\n constructor(\n private readonly router: Router,\n private readonly processService: ProcessService,\n private readonly processLinkService: ProcessLinkService,\n private readonly userProviderService: UserProviderService\n ) {}\n\n private loadProcessLink(): void {\n combineLatest([this.processDefinitionId$, this.documentId$])\n .pipe(\n take(1),\n switchMap(([processDefinitionId, documentId]) =>\n this.processService.getProcessDefinitionStartProcessLink(\n processDefinitionId,\n documentId,\n null\n )\n )\n )\n .subscribe(startProcessResult => {\n if (startProcessResult) {\n switch (startProcessResult.type) {\n case 'form':\n this.formDefinition$.next(startProcessResult.properties.prefilledForm);\n this.processLinkId$.next(startProcessResult.processLinkId);\n break;\n case 'form-flow':\n this.formFlowInstanceId$.next(startProcessResult.properties.formFlowInstanceId);\n break;\n }\n this.modal.show();\n }\n });\n }\n\n public openModal(processDocumentDefinition: ProcessDocumentDefinition, documentId: string): void {\n this.documentId$.next(documentId);\n this.documentDefinitionName$.next(processDocumentDefinition.id.documentDefinitionId.name);\n this.processDefinitionKey$.next(processDocumentDefinition.id.processDefinitionKey);\n this.processDefinitionId$.next(processDocumentDefinition.latestVersionId);\n this.processName$.next(processDocumentDefinition.processName);\n\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n\n const options = new FormioOptionsImpl();\n options.disableAlerts = true;\n options.setHooks(formioBeforeSubmit);\n\n this.options$.next(options);\n\n this.loadProcessLink();\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.formioSubmission$.next(submission);\n\n if (this.processLinkId$.getValue()) {\n combineLatest([this.processLinkId$, this.documentId$])\n .pipe(\n take(1),\n switchMap(([processLinkId, documentId]) =>\n this.processLinkService.submitForm(processLinkId, submission.data, documentId)\n )\n )\n .subscribe({\n next: (formSubmissionResult: FormSubmissionResult) => {\n this.formSubmitted();\n },\n error: errors => {\n this.form.showErrors(errors);\n },\n });\n }\n }\n\n public formSubmitted(): void {\n this.modal.hide();\n this.formSubmit.emit();\n }\n\n public gotoFormLinkScreen(): void {\n this.modal.hide();\n this.router.navigate(['form-links'], {\n queryParams: {process: this.processDefinitionKey$.getValue()},\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n *ngIf=\"{\n processDefinitionKey: processDefinitionKey$ | async,\n processName: processName$ | async\n } as vars\"\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"\n (vars.processDefinitionKey | translate) !== vars.processDefinitionKey\n ? (vars.processDefinitionKey | translate)\n : vars.processName\n \"\n>\n <div body *ngIf=\"formDefinition$ | async as formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission$ | async\"\n [form]=\"formDefinition\"\n [options]=\"options$ | async\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId$ | async as formFlowInstanceId\">\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n </div>\n\n <ng-container\n *ngIf=\"{\n formDefinition: formDefinition$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async\n } as obs\"\n >\n <div body *ngIf=\"!obs.formDefinition && !obs.formFlowInstanceId\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n </ng-container>\n</valtimo-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {DropdownItem} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {BehaviorSubject, filter, map, Observable, of, switchMap} from 'rxjs';\nimport {NamedUser} from '@valtimo/config';\nimport {tap} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dossier-assign-user',\n templateUrl: './dossier-assign-user.component.html',\n styleUrls: ['./dossier-assign-user.component.css'],\n})\nexport class DossierAssignUserComponent {\n @Input() set documentId(value: string) {\n this.documentId$.next(value);\n }\n @Input() set assigneeId(value: string) {\n this.assigneeId$.next(value);\n }\n @Input() set assigneeFullName(value: string) {\n this.assigneeFullName$.next(value);\n }\n @Input() hasPermission = true;\n @Output() assignmentOfDocumentChanged = new EventEmitter();\n\n public readonly disabled$ = new BehaviorSubject<boolean>(true);\n public readonly documentId$ = new BehaviorSubject<string>('');\n public readonly userItems$: Observable<Array<DropdownItem>> = this.documentId$.pipe(\n filter(documentId => !!documentId),\n switchMap(documentId =>\n this.hasPermission ? this.documentService.getCandidateUsers(documentId) : of([])\n ),\n map(candidateUsers => this.mapUsersForDropdown(candidateUsers)),\n tap(() => this.enable())\n );\n public readonly assigneeId$ = new BehaviorSubject<string>('');\n public readonly assigneeFullName$ = new BehaviorSubject<string>('');\n\n constructor(private readonly documentService: DocumentService) {}\n\n public assignDocument(userId: string): void {\n this.disable();\n\n this.documentId$\n .pipe(\n switchMap(documentId => this.documentService.assignHandlerToDocument(documentId, userId))\n )\n .subscribe(() => {\n this.emitChange();\n this.enable();\n });\n }\n\n public unassignDocument(): void {\n this.disable();\n\n this.documentId$\n .pipe(switchMap(documentId => this.documentService.unassignHandlerFromDocument(documentId)))\n .subscribe(() => {\n this.emitChange();\n this.enable();\n });\n }\n\n private mapUsersForDropdown(users: NamedUser[]): DropdownItem[] {\n return users\n .sort((a, b) => {\n if (a.lastName && b.lastName) {\n return a.lastName.localeCompare(b.lastName);\n }\n\n return 0;\n })\n .map(user => ({text: user.label, id: user.id}));\n }\n\n private emitChange(): void {\n this.assignmentOfDocumentChanged.emit();\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <ng-container *ngTemplateOutlet=\"content\"> </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n assigneeFullName: assigneeFullName$ | async,\n assigneeId: assigneeId$ | async\n } as obs\"\n >\n <ng-container *ngIf=\"!hasPermission && obs.assigneeFullName\">\n <ng-container *ngTemplateOutlet=\"fullName; context: {obs: obs}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"hasPermission\">\n <ng-container *ngTemplateOutlet=\"selectUser; context: {obs: obs}\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #fullName let-obs=\"obs\">\n <valtimo-searchable-dropdown-select\n [buttonText]=\"'assignDocument.header' | translate\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [hasPermission]=\"false\"\n [hasSelection]=\"true\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [selectedTextValue]=\"obs.assigneeFullName\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [style]=\"'underlinedText'\"\n [width]=\"250\"\n class=\"dossier-candidates-dropdown\"\n >\n </valtimo-searchable-dropdown-select>\n</ng-template>\n\n<ng-template #selectUser let-obs=\"obs\">\n <ng-container *ngIf=\"userItems$ | async as userItems; else loadingUsers\">\n <valtimo-searchable-dropdown-select\n [buttonText]=\"'assignDocument.header' | translate\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [disabled]=\"obs.disabled\"\n [hasPermission]=\"hasPermission\"\n [hasSelection]=\"obs.assigneeId\"\n [items]=\"userItems\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [selectedTextValue]=\"obs.assigneeFullName\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [style]=\"'underlinedText'\"\n [width]=\"250\"\n (clearSelection)=\"unassignDocument()\"\n (itemSelected)=\"assignDocument($event)\"\n class=\"dossier-candidates-dropdown\"\n >\n </valtimo-searchable-dropdown-select>\n </ng-container>\n</ng-template>\n\n<ng-template #loadingUsers>\n <h5>\n <b>{{ 'assignDocument.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {map, Observable, of} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {TabImpl} from '../../models';\n\n@Pipe({\n name: 'tabTranslate',\n})\nexport class TabTranslatePipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n transform(tab: TabImpl): Observable<string> {\n const translationId = 'dossier.tabs.' + tab.name;\n\n return tab.title\n ? of(tab.title)\n : this.translateService\n .stream(translationId)\n .pipe(map(translation => (translationId !== translation ? translation : tab.name)));\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Location} from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ComponentFactoryResolver,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {ActivatedRoute, ParamMap, Params, Router} from '@angular/router';\nimport {PermissionService} from '@valtimo/access-control';\nimport {BreadcrumbService} from '@valtimo/components';\nimport {ConfigService} from '@valtimo/config';\nimport {Document, DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {KeycloakService} from 'keycloak-angular';\nimport moment from 'moment';\nimport {NGXLogger} from 'ngx-logger';\nimport {\n BehaviorSubject,\n combineLatest,\n from,\n map,\n Observable,\n of,\n startWith,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {DossierSupportingProcessStartModalComponent} from '../dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {TabLoaderImpl} from '../../models';\nimport {\n CAN_ASSIGN_CASE_PERMISSION,\n CAN_CLAIM_CASE_PERMISSION,\n DOSSIER_DETAIL_PERMISSION_RESOURCE,\n} from '../../permissions';\nimport {DossierService, DossierTabService} from '../../services';\n\n@Component({\n selector: 'valtimo-dossier-detail',\n templateUrl: './dossier-detail.component.html',\n styleUrls: ['./dossier-detail.component.css'],\n providers: [DossierTabService],\n})\nexport class DossierDetailComponent implements AfterViewInit, OnDestroy {\n @ViewChild('supportingProcessStartModal')\n supportingProcessStart: DossierSupportingProcessStartModalComponent;\n\n @ViewChild('tabContainer', {read: ViewContainerRef})\n viewContainerRef: ViewContainerRef;\n\n public customDossierHeaderItems: Array<any> = [];\n public document: Document | null = null;\n public documentDefinitionName: string;\n public documentDefinitionNameTitle: string;\n public documentId: string;\n public processDefinitionListFields: Array<any> = [];\n public processDocumentDefinitions: ProcessDocumentDefinition[] = [];\n public tabLoader: TabLoaderImpl | null = null;\n\n public readonly assigneeId$ = new BehaviorSubject<string>('');\n\n public readonly document$: Observable<Document | null> =\n this.dossierService.refreshDocument$.pipe(\n switchMap(() => this.route.params),\n map((params: Params) => params?.documentId),\n switchMap((documentId: string) =>\n documentId ? this.documentService.getDocument(this.documentId) : of(null)\n ),\n tap((document: Document | null) => {\n if (document) {\n this.assigneeId$.next(document.assigneeId);\n this.document = document;\n\n if (\n this.configService.config.customDossierHeader?.hasOwnProperty(\n this.documentDefinitionName.toLowerCase()\n ) &&\n this.customDossierHeaderItems.length === 0\n ) {\n this.configService.config.customDossierHeader[\n this.documentDefinitionName.toLowerCase()\n ]?.forEach(item => this.getCustomDossierHeaderItem(item));\n }\n }\n })\n );\n\n public readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.documentDefinitionName || '')\n );\n\n public readonly userId$: Observable<string | undefined> = from(\n this.keyCloakService.isLoggedIn()\n ).pipe(\n switchMap(() => this.keyCloakService.loadUserProfile()),\n map(profile => profile?.id)\n );\n\n public readonly isAssigning$ = new BehaviorSubject<boolean>(false);\n public readonly isAssignedToCurrentUser$: Observable<boolean> = combineLatest([\n this.assigneeId$,\n this.userId$,\n ]).pipe(\n map(([assigneeId, userId]) => !!assigneeId && !!userId && assigneeId === userId),\n startWith(true)\n );\n\n public readonly canHaveAssignee$: Observable<boolean> = this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n map(caseSettings => caseSettings?.canHaveAssignee)\n );\n\n public readonly canAssignLoaded$ = new BehaviorSubject<boolean>(false);\n public readonly canAssign$: Observable<boolean> = this.route.paramMap.pipe(\n switchMap((params: ParamMap) =>\n this.permissionService.requestPermission(CAN_ASSIGN_CASE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier: params.get('documentId') ?? '',\n })\n ),\n tap(() => {\n this.canAssignLoaded$.next(true);\n })\n );\n\n public readonly canClaim$: Observable<boolean> = this.route.paramMap.pipe(\n switchMap((params: ParamMap) =>\n this.permissionService.requestPermission(CAN_CLAIM_CASE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier: params.get('documentId') ?? '',\n })\n )\n );\n\n public readonly loadingTabs$ = new BehaviorSubject<boolean>(true);\n public readonly noTabsConfigured$ = new BehaviorSubject<boolean>(false);\n\n private _snapshot: ParamMap;\n private _initialTabName: string;\n\n constructor(\n private readonly breadcrumbService: BreadcrumbService,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly keyCloakService: KeycloakService,\n private readonly location: Location,\n private readonly logger: NGXLogger,\n private readonly permissionService: PermissionService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly dossierTabService: DossierTabService,\n private readonly dossierService: DossierService\n ) {\n this._snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this._snapshot.get('documentDefinitionName') || '';\n this.documentId = this._snapshot.get('documentId') || '';\n }\n\n public ngAfterViewInit(): void {\n this.initTabLoader();\n this.initBreadcrumb();\n this.getAllAssociatedProcessDefinitions();\n }\n\n public ngOnDestroy(): void {\n this.breadcrumbService.clearSecondBreadcrumb();\n }\n\n public getAllAssociatedProcessDefinitions(): void {\n this.documentService\n .findProcessDocumentDefinitions(this.documentDefinitionName)\n .subscribe((processDocumentDefinitions: ProcessDocumentDefinition[]) => {\n this.processDocumentDefinitions = processDocumentDefinitions.filter(\n processDocumentDefinition => processDocumentDefinition.startableByUser\n );\n\n this.processDefinitionListFields = [\n {\n key: 'processName',\n label: 'Proces',\n },\n ];\n });\n }\n\n public startProcess(processDocumentDefinition: ProcessDocumentDefinition): void {\n this.supportingProcessStart.openModal(processDocumentDefinition, this.documentId);\n }\n\n public claimAssignee(): void {\n this.isAssigning$.next(true);\n\n this.userId$\n .pipe(\n take(1),\n switchMap((userId: string | undefined) =>\n this.documentService.assignHandlerToDocument(this.documentId, userId ?? '')\n )\n )\n .subscribe({\n next: (): void => {\n this.isAssigning$.next(false);\n this.dossierService.refresh();\n },\n error: (): void => {\n this.isAssigning$.next(false);\n this.logger.debug('Something went wrong while assigning user to case');\n },\n });\n }\n\n private initBreadcrumb(): void {\n this.documentService\n .getDocumentDefinition(this.documentDefinitionName)\n .subscribe(definition => {\n this.documentDefinitionNameTitle = definition.schema.title;\n this.setBreadcrumb();\n });\n }\n\n private initTabLoader(): void {\n this.dossierTabService.tabs$.pipe(take(1)).subscribe(tabs => {\n if (tabs?.length > 0) {\n this._initialTabName = this._snapshot.get('tab') ?? '';\n this.tabLoader = new TabLoaderImpl(\n tabs,\n this.componentFactoryResolver,\n this.viewContainerRef,\n this.router,\n this.route\n );\n this.tabLoader.initial(this._initialTabName);\n this.loadingTabs$.next(false);\n } else {\n this.noTabsConfigured$.next(true);\n this.loadingTabs$.next(false);\n }\n });\n }\n\n public assignmentOfDocumentChanged(): void {\n this.dossierService.refresh();\n }\n\n private getCustomDossierHeaderItem(item): void {\n this.customDossierHeaderItems.push({\n label: item['labelTranslationKey'] || '',\n columnSize: item['columnSize'] || 3,\n textSize: item['textSize'] || 'md',\n customClass: item['customClass'] || '',\n modifier: item['modifier'] || '',\n value: item['propertyPaths']?.reduce(\n (prev, curr) => prev + this.getStringFromDocumentPath(item, curr),\n ''\n ),\n });\n }\n\n private getStringFromDocumentPath(item, path): string {\n const prefix = item['propertyPaths'].indexOf(path) > 0 ? ' ' : '';\n let string = this.getNestedProperty(this.document.content, path, item['noValueText']) || '';\n const dateFormats = [moment.ISO_8601, 'MM-DD-YYYY', 'DD-MM-YYYY', 'YYYY-MM-DD'];\n switch (item['modifier']) {\n case 'age': {\n if (moment(string, dateFormats, true).isValid()) {\n string = moment().diff(string, 'years');\n }\n break;\n }\n default: {\n if (moment(string, dateFormats, true).isValid()) {\n string = moment(string).format('DD-MM-YYYY');\n }\n }\n }\n return prefix + string;\n }\n\n private getNestedProperty(obj: any, path: string, defaultValue: any): any {\n return path.split('.').reduce((currentObject, key) => currentObject?.[key], obj) || defaultValue;\n }\n\n private setBreadcrumb(): void {\n this.breadcrumbService.setSecondBreadcrumb({\n route: [`/dossiers/${this.documentDefinitionName}`],\n content: this.documentDefinitionNameTitle,\n href: `/dossiers/${this.documentDefinitionName}`,\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div\n *ngIf=\"{\n canAssign: canAssign$ | async,\n canClaim: canClaim$ | async,\n canHaveAssignee: canHaveAssignee$ | async,\n document: document$ | async\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"card-header bg-light card-header-divider pb-2\">\n <div class=\"row\">\n <div class=\"col\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailHeader;\n context: {\n canHaveAssignee: obs.canHaveAssignee,\n document: obs.document,\n canAssign: obs.canAssign\n }\n \"\n ></ng-container>\n </div>\n\n <div class=\"btn-group mt-m3px mb-3 col-auto\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n\n <ng-container\n *ngTemplateOutlet=\"\n claimButton;\n context: {canClaim: obs.canClaim, canHaveAssignee: obs.canHaveAssignee}\n \"\n ></ng-container>\n\n <div class=\"dropdown\">\n <button\n [disabled]=\"processDocumentDefinitions.length === 0\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n class=\"btn btn-primary dropdown-toggle\"\n data-toggle=\"dropdown\"\n id=\"startProcessDropdown\"\n placement=\"bottom\"\n type=\"button\"\n >\n <span>{{ 'dossier.startSubProcess' | translate }}</span>\n\n <i class=\"ml-1 mdi mdi-chevron-down\"></i>\n </button>\n\n <div\n aria-labelledby=\"startProcessDropdown\"\n class=\"dropdown-menu dropdown-menu-right\"\n >\n <button\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n (click)=\"startProcess(processDocumentDefinition)\"\n class=\"dropdown-item p\"\n href=\"#\"\n >\n {{\n (processDocumentDefinition?.id?.processDefinitionKey | translate) !==\n processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName\n }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ul *ngIf=\"tabLoader\" class=\"nav nav-tabs\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabLoader.tabs\">\n <a\n [ngClass]=\"{active: tab.isActive()}\"\n (click)=\"tabLoader.load(tab)\"\n class=\"nav-link clickable\"\n data-toggle=\"tab\"\n id=\"{{ tab.name }}-tab\"\n >\n {{ tab | tabTranslate | async }}\n </a>\n </li>\n </ul>\n\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <div *ngIf=\"loadingTabs$ | async\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <valtimo-no-results\n *ngIf=\"noTabsConfigured$ | async\"\n [description]=\"'dossier.tabs.noResultsDescription' | translate\"\n [title]=\"'dossier.tabs.noResults' | translate\"\n ></valtimo-no-results>\n\n <ng-template #tabContainer></ng-template>\n\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </div>\n\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template\n #caseDetailHeader\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div class=\"row\" *ngIf=\"customDossierHeaderItems.length > 0; else defaultTitle\">\n <span\n *ngFor=\"let item of customDossierHeaderItems\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n class=\"mb-0 mt-0 pb-2 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n\n <span *ngIf=\"item.label && item.value\">: </span>\n\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document, canAssign: canAssign}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n <div class=\"row ml-0 mr-0\">{{ documentDefinitionNameTitle?.trim() }}</div>\n</ng-template>\n\n<ng-template\n #caseDetailAssignee\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div class=\"row ml-0 mr-0 mt-1 mb-1\" *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"user-full-name\" *ngIf=\"canClaim && canHaveAssignee\">\n <button\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n class=\"btn btn-space btn-primary mr-1\"\n placement=\"bottom\"\n type=\"button\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </button>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {FormFlowService, FormSubmissionResult, ProcessLinkService} from '@valtimo/form-link';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {FormioBeforeSubmit} from '@formio/angular/formio.common';\nimport {FormioForm} from '@formio/angular';\nimport {NGXLogger} from 'ngx-logger';\nimport {UserProviderService} from '@valtimo/security';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dossier-process-start-modal',\n templateUrl: './dossier-process-start-modal.component.html',\n styleUrls: ['./dossier-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierProcessStartModalComponent implements OnInit {\n public processDefinitionKey: string;\n public processDefinitionId: string;\n public documentDefinitionName: string;\n public processName: string;\n public formDefinition: FormioForm;\n public formFlowInstanceId: string;\n public formioSubmission: FormioSubmission;\n private processLinkId: string;\n public options: ValtimoFormioOptions;\n public isAdmin: boolean;\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('processStartModal', {static: false}) modal: ModalComponent;\n @Output() formFlowComplete = new EventEmitter();\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private processService: ProcessService,\n private documentService: DocumentService,\n private processLinkService: ProcessLinkService,\n private formFlowService: FormFlowService,\n private userProviderService: UserProviderService,\n private logger: NGXLogger\n ) {}\n\n ngOnInit() {\n this.isUserAdmin();\n }\n\n private loadProcessLink() {\n this.processLinkId = null;\n this.formDefinition = null;\n this.formFlowInstanceId = null;\n this.processService\n .getProcessDefinitionStartProcessLink(\n this.processDefinitionId,\n null,\n this.documentDefinitionName\n )\n .pipe(take(1))\n .subscribe(startProcessResult => {\n if (startProcessResult) {\n switch (startProcessResult.type) {\n case 'form':\n this.formDefinition = startProcessResult.properties.prefilledForm;\n this.processLinkId = startProcessResult.processLinkId;\n break;\n case 'form-flow':\n this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;\n break;\n }\n }\n this.modal.show();\n });\n }\n\n public gotoProcessLinkScreen(): void {\n this.modal.hide();\n this.router.navigate(['process-links'], {queryParams: {process: this.processDefinitionKey}});\n }\n\n public get modalTitle() {\n return `Start - ${this.processName}`;\n }\n\n openModal(processDocumentDefinition: ProcessDocumentDefinition) {\n this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;\n this.processDefinitionId = processDocumentDefinition.latestVersionId;\n this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.processName = processDocumentDefinition.processName;\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n this.options.setHooks(formioBeforeSubmit);\n this.loadProcessLink();\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formioSubmission = submission;\n\n this.processLinkService.submitForm(this.processLinkId, submission.data).subscribe({\n next: (formSubmissionResult: FormSubmissionResult) => {\n this.submitCompleted(formSubmissionResult);\n },\n error: errors => {\n this.form.showErrors(errors);\n },\n });\n }\n\n public formFlowSubmitted(): void {\n this.formFlowComplete.emit(null);\n this.modal.hide();\n }\n\n public isUserAdmin(): void {\n this.userProviderService.getUserSubject().subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n error => {\n this.isAdmin = false;\n }\n );\n }\n\n private submitCompleted(formSubmissionResult: FormSubmissionResult): void {\n this.modal.hide();\n this.router.navigate([\n 'dossiers',\n this.documentDefinitionName,\n 'document',\n formSubmissionResult.documentId,\n ]);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n (click)=\"gotoProcessLinkScreen()\"\n class=\"btn btn-secondary btn-space\"\n id=\"process-link-button\"\n type=\"button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && !isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {map, Observable, of, switchMap, tap} from 'rxjs';\nimport {DossierListService} from '../../services';\nimport {DossierProcessStartModalComponent} from '../dossier-process-start-modal/dossier-process-start-modal.component';\n\ndeclare const $;\n\n@Component({\n selector: 'valtimo-dossier-list-actions',\n templateUrl: './dossier-list-actions.component.html',\n styleUrls: ['./dossier-list-actions.component.scss'],\n})\nexport class DossierListActionsComponent implements OnInit {\n @ViewChild('processStartModal') processStart: DossierProcessStartModalComponent;\n\n @Input() loading!: boolean;\n\n @Output() formFlowComplete = new EventEmitter();\n\n public readonly associatedProcessDocumentDefinitions$: Observable<\n Array<ProcessDocumentDefinition>\n > = this.listService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n documentDefinitionName\n ? this.documentService.findProcessDocumentDefinitions(documentDefinitionName)\n : of([])\n ),\n map(processDocumentDefinitions =>\n processDocumentDefinitions.filter(definition => definition.canInitializeDocument)\n ),\n tap(processDocumentDefinitions => {\n this._cachedAssociatedProcessDocumentDefinitions = processDocumentDefinitions;\n })\n );\n\n public readonly disableStartDossierButton$: Observable<boolean> =\n this.associatedProcessDocumentDefinitions$.pipe(\n map(definitions => definitions.length === 0 || this.loading)\n );\n\n private selectedProcessDocumentDefinition: ProcessDocumentDefinition | null = null;\n\n private modalListenerAdded = false;\n\n private _cachedAssociatedProcessDocumentDefinitions: Array<ProcessDocumentDefinition> = [];\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly listService: DossierListService\n ) {}\n\n public ngOnInit(): void {\n this.modalListenerAdded = false;\n }\n\n public startDossier(): void {\n const associatedProcessDocumentDefinitions = this._cachedAssociatedProcessDocumentDefinitions;\n\n if (associatedProcessDocumentDefinitions.length > 1) {\n $('#startProcess').modal('show');\n } else {\n this.selectedProcessDocumentDefinition = associatedProcessDocumentDefinitions[0];\n this.showStartProcessModal();\n }\n }\n\n public selectProcess(processDocumentDefinition: ProcessDocumentDefinition): void {\n const modal = $('#startProcess');\n if (!this.modalListenerAdded) {\n modal.on('hidden.bs.modal', this.showStartProcessModal.bind(this));\n this.modalListenerAdded = true;\n }\n this.selectedProcessDocumentDefinition = processDocumentDefinition;\n modal.modal('hide');\n }\n\n public onFormFlowComplete(): void {\n this.formFlowComplete.emit(null);\n }\n\n private showStartProcessModal(): void {\n if (this.selectedProcessDocumentDefinition !== null) {\n this.processStart.openModal(this.selectedProcessDocumentDefinition);\n this.selectedProcessDocumentDefinition = null;\n }\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\">\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of associatedProcessDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<valtimo-dossier-process-start-modal\n #processStartModal\n (formFlowComplete)=\"onFormFlowComplete()\"\n></valtimo-dossier-process-start-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Params, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PermissionService} from '@valtimo/access-control';\nimport {\n BreadcrumbService,\n CarbonListComponent,\n CarbonListTranslations,\n CarbonPaginationSelection,\n ListField,\n PageTitleService,\n Pagination,\n} from '@valtimo/components';\nimport {\n AssigneeFilter,\n ConfigService,\n DefinitionColumn,\n Direction,\n DossierListTab,\n SearchField,\n SearchFieldValues,\n SortState,\n} from '@valtimo/config';\nimport {\n AdvancedDocumentSearchRequest,\n AdvancedDocumentSearchRequestImpl,\n Document,\n Documents,\n DocumentService,\n SpecifiedDocuments,\n} from '@valtimo/document';\nimport {Tab, Tabs} from 'carbon-components-angular';\nimport {isEqual} from 'lodash';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n forkJoin,\n map,\n Observable,\n of,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {DossierListActionsComponent} from '../dossier-list-actions/dossier-list-actions.component';\nimport {CAN_CREATE_CASE_PERMISSION, DOSSIER_DETAIL_PERMISSION_RESOURCE} from '../../permissions';\nimport {\n DossierBulkAssignService,\n DossierColumnService,\n DossierListAssigneeService,\n DossierListPaginationService,\n DossierListSearchService,\n DossierListService,\n DossierParameterService,\n} from '../../services';\nimport { DefaultTabs } from '../../models';\n\n@Component({\n selector: 'valtimo-dossier-list',\n templateUrl: './dossier-list.component.html',\n styleUrls: ['./dossier-list.component.scss'],\n providers: [\n DossierListService,\n DossierColumnService,\n DossierListAssigneeService,\n DossierParameterService,\n DossierListPaginationService,\n DossierListSearchService,\n ],\n})\nexport class DossierListComponent implements OnInit, OnDestroy {\n @ViewChild(CarbonListComponent) carbonList: CarbonListComponent<Document>;\n @ViewChild(DossierListActionsComponent) listActionsComponent: DossierListActionsComponent;\n @ViewChild(Tabs) tabsComponent: Tabs;\n\n public activeTab: DossierListTab = null;\n public loadingFields = true;\n public loadingPagination = true;\n public loadingSearchFields = true;\n public loadingAssigneeFilter = true;\n public loadingDocumentItems = true;\n public pagination!: Pagination;\n public canHaveAssignee!: boolean;\n public visibleDossierTabs: Array<DossierListTab> | null = null;\n\n public readonly defaultTabs: DossierListTab[] = [\n DossierListTab.ALL,\n DossierListTab.MINE,\n DossierListTab.OPEN,\n ];\n\n public readonly tableTranslations: CarbonListTranslations = {\n select: {\n single: 'dossier.select.single',\n multiple: 'dossier.select.multiple',\n },\n pagination: {\n itemsPerPage: 'dossier.pagination.itemsPerPage',\n totalItem: 'dossier.pagination.totalItem',\n totalItems: 'dossier.pagination.totalItems',\n },\n };\n\n public readonly noResultsMessage$ = new BehaviorSubject<{\n description: string;\n isSearchResult: boolean;\n title: string;\n }>({\n description: 'dossier.noResults.ALL.description',\n isSearchResult: false,\n title: 'dossier.noResults.ALL.title',\n });\n public readonly showAssignModal$ = new BehaviorSubject<boolean>(false);\n public readonly showChangePageModal$ = new BehaviorSubject<boolean>(false);\n public readonly showChangeTabModal$ = new BehaviorSubject<boolean>(false);\n\n public readonly searchFields$: Observable<Array<SearchField> | null> =\n this.searchService.documentSearchFields$.pipe(\n tap(() => {\n this.loadingSearchFields = false;\n })\n );\n\n public readonly documentDefinitionName$ = this.listService.documentDefinitionName$;\n\n public readonly canCreateDocument$: Observable<boolean> = this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.permissionService.requestPermission(CAN_CREATE_CASE_PERMISSION, {\n resource: DOSSIER_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocumentDefinition,\n identifier: documentDefinitionName,\n })\n )\n );\n public readonly selectedDocumentIds$ = new BehaviorSubject<string[]>([]);\n\n public readonly schema$ = this.listService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentDefinition(documentDefinitionName)\n ),\n map(documentDefinition => documentDefinition?.schema),\n tap(schema => {\n if (schema?.title) {\n this.pageTitleService.setCustomPageTitle(schema?.title, true);\n }\n })\n );\n\n public readonly searchFieldValues$ = this.parameterService.searchFieldValues$;\n public readonly assigneeFilter$: Observable<AssigneeFilter> =\n this.assigneeService.assigneeFilter$.pipe(\n tap(assigneeFilter => (this.activeTab = assigneeFilter as DossierListTab))\n );\n public readonly paginationChange$ = new BehaviorSubject<CarbonPaginationSelection | null>(null);\n public readonly tabChange$ = new BehaviorSubject<DossierListTab | null>(null);\n private readonly _pagination$ = this.paginationService.pagination$.pipe(\n tap(pagination => {\n this.pagination = pagination;\n this.loadingPagination = false;\n })\n );\n private readonly _hasEnvColumnConfig$: Observable<boolean> = this.listService.hasEnvColumnConfig$;\n private readonly _hasApiColumnConfig$ = new BehaviorSubject<boolean>(false);\n private readonly _canHaveAssignee$: Observable<boolean> = this.assigneeService.canHaveAssignee$;\n private readonly _columns$: Observable<Array<DefinitionColumn>> =\n this.listService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.columnService.getDefinitionColumns(documentDefinitionName)\n ),\n map(res => {\n this._hasApiColumnConfig$.next(res.hasApiConfig);\n return res.columns;\n }),\n tap(columns => {\n this.listService.documentDefinitionName$.pipe(take(1)).subscribe(_ => {\n this.paginationService.setPagination(columns);\n });\n })\n );\n\n public readonly fields$: Observable<Array<ListField>> = combineLatest([\n this._canHaveAssignee$,\n this._columns$,\n this._hasEnvColumnConfig$,\n this._hasApiColumnConfig$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([canHaveAssignee]) => {\n this.canHaveAssignee = canHaveAssignee;\n }),\n map(([canHaveAssignee, columns, hasEnvConfig, hasApiConfig]) => {\n const filteredAssigneeColumns = this.assigneeService.filterAssigneeColumns(\n columns,\n canHaveAssignee\n );\n const listFields = this.columnService.mapDefinitionColumnsToListFields(\n filteredAssigneeColumns,\n hasEnvConfig,\n hasApiConfig\n );\n const fieldsToReturn = this.assigneeService.addAssigneeListField(\n columns,\n listFields,\n canHaveAssignee\n );\n\n return fieldsToReturn;\n }),\n tap(listFields => {\n const defaultListField = listFields.find(field => field.default);\n // set default sort state if no pagination query parameters for sorting are available\n this.parameterService.queryPaginationParams$\n .pipe(take(1))\n .subscribe(queryPaginationParams => {\n if (defaultListField && !queryPaginationParams?.sort?.isSorting) {\n const sortDirection =\n typeof defaultListField.default === 'string' ? defaultListField.default : 'DESC';\n this.paginationService.sortChanged({\n isSorting: true,\n state: {name: defaultListField.key, direction: sortDirection as Direction},\n });\n }\n });\n }),\n tap(() => {\n this.loadingFields = false;\n })\n );\n\n private readonly _documentSearchRequest$: Observable<AdvancedDocumentSearchRequest> =\n combineLatest([this._pagination$, this.listService.documentDefinitionName$]).pipe(\n filter(([pagination]) => !!pagination),\n map(([pagination, documentDefinitionName]) => {\n const page = pagination.page - 1;\n\n return new AdvancedDocumentSearchRequestImpl(\n documentDefinitionName,\n page >= 0 ? page : 0,\n pagination.size,\n pagination.sort\n );\n })\n );\n\n public readonly documentItems$: Observable<any[]> = this.listService.checkRefresh$.pipe(\n switchMap(() =>\n combineLatest([\n this._documentSearchRequest$,\n this.assigneeFilter$,\n this.searchFieldValues$,\n this.listService.forceRefresh$,\n this._hasEnvColumnConfig$,\n this._hasApiColumnConfig$,\n ])\n ),\n distinctUntilChanged(\n (\n [prevSearchRequest, prevAssigneeFilter, prevSearchFieldValues, prevForceRefresh],\n [currSearchRequest, currAssigneeFilter, currSearchFieldValues, currForceRefresh]\n ) =>\n isEqual(\n {\n ...prevSearchRequest,\n assignee: prevAssigneeFilter,\n ...prevSearchFieldValues,\n forceRefresh: prevForceRefresh,\n },\n {\n ...currSearchRequest,\n assignee: currAssigneeFilter,\n ...currSearchFieldValues,\n forceRefresh: currForceRefresh,\n }\n )\n ),\n switchMap(\n ([\n documentSearchRequest,\n assigneeFilter,\n searchValues,\n _,\n hasEnvColumnConfig,\n hasApiColumnConfig,\n ]) => {\n const obsEnv: Observable<boolean> = of(hasEnvColumnConfig);\n const obsApi: Observable<boolean> = of(hasApiColumnConfig);\n\n if ((Object.keys(searchValues) || []).length > 0) {\n return forkJoin({\n documents:\n hasEnvColumnConfig || !hasApiColumnConfig\n ? this.documentService.getDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter,\n this.searchService.mapSearchValuesToFilters(searchValues)\n )\n : this.documentService.getSpecifiedDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter,\n this.searchService.mapSearchValuesToFilters(searchValues)\n ),\n hasEnvColumnConfig: obsEnv,\n hasApiColumnConfig: obsApi,\n isSearchResult: of(true),\n });\n }\n\n return forkJoin({\n documents:\n hasEnvColumnConfig || !hasApiColumnConfig\n ? this.documentService.getDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter\n )\n : this.documentService.getSpecifiedDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter\n ),\n hasEnvColumnConfig: obsEnv,\n hasApiColumnConfig: obsApi,\n isSearchResult: of(false),\n });\n }\n ),\n map(\n (res: {\n documents: Documents | SpecifiedDocuments;\n hasEnvColumnConfig: boolean;\n hasApiColumnConfig: boolean;\n isSearchResult: boolean;\n }) => {\n this.paginationService.setCollectionSize(res.documents);\n this.paginationService.checkPage(res.documents);\n this.updateNoResultsMessage(res.isSearchResult);\n\n return this.listService.mapDocuments(\n res.documents,\n res.hasEnvColumnConfig,\n res.hasApiColumnConfig\n );\n }\n ),\n tap(() => {\n this.loadingAssigneeFilter = false;\n this.loadingDocumentItems = false;\n })\n );\n\n private _previousDocumentDefinitionName!: string;\n private _documentDefinitionNameSubscription!: Subscription;\n\n constructor(\n private readonly assigneeService: DossierListAssigneeService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly bulkAssignService: DossierBulkAssignService,\n private readonly columnService: DossierColumnService,\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly listService: DossierListService,\n private readonly pageTitleService: PageTitleService,\n private readonly paginationService: DossierListPaginationService,\n private readonly parameterService: DossierParameterService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly searchService: DossierListSearchService,\n private readonly translateService: TranslateService,\n private readonly permissionService: PermissionService\n ) {}\n\n public ngOnInit(): void {\n this.setVisibleTabs();\n this.openDocumentDefinitionNameSubscription();\n }\n\n public ngOnDestroy(): void {\n this._documentDefinitionNameSubscription?.unsubscribe();\n this.pageTitleService.enableReset();\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n public search(searchFieldValues: SearchFieldValues): void {\n this.searchService.search(searchFieldValues);\n }\n\n public rowClick(document: any): void {\n this.listService.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n this.breadcrumbService.cacheQueryParams(\n `/dossiers/${documentDefinitionName}`,\n this.route.snapshot.queryParams\n );\n this.router.navigate([\n `/dossiers/${documentDefinitionName}/document/${document.id}`,\n ]);\n });\n }\n\n public tabChange(tab: DossierListTab): void {\n if (!this.activeTab) {\n this.activeTab = tab;\n this.updateNoResultsMessage(false);\n return;\n }\n\n if (this.activeTab.toLowerCase() === tab.toLowerCase()) {\n return;\n }\n\n if (this.carbonList.model.selectedRowsCount()) {\n this.showChangeTabModal$.next(true);\n this.tabChange$.next(tab);\n return;\n }\n\n this.onChangeTabConfirm(tab);\n }\n\n public onChangeTabCancel(): void {\n if (!this.tabsComponent) {\n return;\n }\n\n const prevTab: Tab | undefined = this.tabsComponent.tabs.find(\n (tab: Tab) => tab.id === this.activeTab\n );\n\n if (!prevTab) {\n return;\n }\n\n this.tabsComponent.tabs.find((tab: Tab) => tab.active).active = false;\n prevTab.active = true;\n }\n\n public pageChange(page: number): void {\n if (this.carbonList?.model.selectedRowsCount()) {\n this.showChangePageModal$.next(true);\n this.paginationChange$.next({page, size: this.pagination.size});\n return;\n }\n this.paginationService.pageChange(page);\n }\n\n public pageSizeChange(size: number): void {\n if (this.carbonList?.model.selectedRowsCount()) {\n this.showChangePageModal$.next(true);\n this.paginationChange$.next({page: this.pagination.page, size});\n return;\n }\n this.paginationService.pageSizeChange(size);\n }\n\n public sortChanged(newSortState: SortState): void {\n this.paginationService.sortChanged(newSortState);\n }\n\n private onChangeTabConfirm(tab: DossierListTab): void {\n this.loadingAssigneeFilter = true;\n this.activeTab = tab;\n this.updateNoResultsMessage(false);\n this.paginationService.setPage(1);\n this.assigneeService.setAssigneeFilter(tab);\n }\n\n public showAssignModal(): void {\n this.selectedDocumentIds$.next(\n this.carbonList.selectedItems.map((document: Document) => document.id)\n );\n this.showAssignModal$.next(true);\n }\n\n public onCloseEvent(assigneeId: null | string, documentIds: string[]): void {\n this.showAssignModal$.next(false);\n if (!assigneeId) {\n return;\n }\n\n this.bulkAssignService.bulkAssign(assigneeId, documentIds).subscribe(() => {\n this.forceRefresh();\n });\n }\n\n public onChangePageConfirm(pagination: CarbonPaginationSelection): void {\n if (pagination.size !== this.pagination.size) {\n this.paginationService.pageSizeChange(pagination.size);\n return;\n }\n\n this.paginationService.pageChange(pagination.page);\n }\n\n public startDossier(): void {\n this.listActionsComponent.startDossier();\n }\n\n public forceRefresh(): void {\n this.listService.forceRefresh();\n }\n\n private openDocumentDefinitionNameSubscription(): void {\n this._documentDefinitionNameSubscription = this.route.params\n .pipe(\n map((params: Params) => params?.documentDefinitionName),\n filter(docDefName => !!docDefName),\n distinctUntilChanged()\n )\n .subscribe(documentDefinitonName => {\n if (this._previousDocumentDefinitionName) {\n this.parameterService.clearParameters();\n this.parameterService.clearSearchFieldValues();\n }\n this._previousDocumentDefinitionName = documentDefinitonName;\n this.setLoading();\n this.paginationService.clearPagination();\n this.assigneeService.resetAssigneeFilter();\n this.listService.setDocumentDefinitionName(documentDefinitonName);\n });\n }\n\n private setLoading(): void {\n this.loadingFields = true;\n this.loadingPagination = true;\n this.loadingSearchFields = true;\n this.loadingAssigneeFilter = true;\n this.loadingDocumentItems = true;\n }\n\n private setVisibleTabs(): void {\n this.visibleDossierTabs = this.configService.config?.visibleDossierListTabs || null;\n }\n\n private updateNoResultsMessage(isSearchResult: boolean): void {\n this.noResultsMessage$.next(\n isSearchResult\n ? {\n description: 'dossier.noResults.search.description',\n isSearchResult,\n title: 'dossier.noResults.search.title',\n }\n : {\n description: `dossier.noResults.${this.activeTab ?? 'ALL'}.description`,\n isSearchResult,\n title: `dossier.noResults.${this.activeTab ?? 'ALL'}.title`,\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n fields: fields$ | async,\n documentItems: documentItems$ | async,\n noResultsMessage: noResultsMessage$ | async,\n searchFields: searchFields$ | async,\n schema: schema$ | async,\n showAssignModal: showAssignModal$ | async,\n selectedDocumentIds: selectedDocumentIds$ | async,\n loaded:\n !loadingFields &&\n !loadingPagination &&\n !loadingSearchFields &&\n !loadingAssigneeFilter &&\n !loadingDocumentItems\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-dossier-list-actions\n [loading]=\"!obs.loaded\"\n (formFlowComplete)=\"forceRefresh()\"\n ></valtimo-dossier-list-actions>\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngIf=\"obs.loaded; else loading\">\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n\n <ng-container *ngTemplateOutlet=\"bulkAssignModal; context: {obs: obs}\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changePageModal\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"changeTabModal\"></ng-container>\n</ng-container>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [defaultValues]=\"searchFieldValues$ | async\"\n [inputDisabled]=\"!obs.loaded\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [initialSortState]=\"pagination.sort\"\n [items]=\"obs.documentItems\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierList\"\n [showSelectionColumn]=\"canHaveAssignee\"\n [tableTranslations]=\"tableTranslations\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n (rowClicked)=\"rowClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showAssignModal()\">\n {{ 'dossier.bulkAssign.assign' | translate }}\n </button>\n </ng-container>\n\n <div carbonToolbarContent>\n <ng-container *ngTemplateOutlet=\"dossierListActions\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"obs.noResultsMessage.isSearchResult ? null : dossierListActions\"\n [description]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | translate\"\n ></valtimo-no-results>\n\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs\n *ngIf=\"!visibleDossierTabs; else configuredTabs\"\n type=\"contained\"\n data-carbon-theme=\"g10\"\n class=\"dossier-list-tabs\"\n >\n <cds-tab\n *ngFor=\"let tab of defaultTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #configuredTabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <cds-tabs type=\"contained\" class=\"dossier-list-tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleDossierTabs; trackBy: trackByIndex\"\n [active]=\"assigneeFilter === tab\"\n heading=\"{{ 'dossier.tabs.' + tab | translate }}\"\n [id]=\"tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n</ng-template>\n\n<ng-template #loading\n ><valtimo-carbon-list [loading]=\"true\">\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div> </valtimo-carbon-list\n></ng-template>\n\n<ng-template #bulkAssignModal let-obs=\"obs\">\n <valtimo-dossier-bulk-assign-modal\n [documentIds]=\"obs.selectedDocumentIds\"\n [open]=\"obs.showAssignModal\"\n (closeEvent)=\"onCloseEvent($event, obs.selectedDocumentIds)\"\n ></valtimo-dossier-bulk-assign-modal>\n</ng-template>\n\n<ng-template #changePageModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changePageModal.confirm\"\n contentTranslationKey=\"dossier.changePageModal.content\"\n [outputOnConfirm]=\"paginationChange$ | async\"\n [showModalSubject$]=\"showChangePageModal$\"\n titleTranslationKey=\"dossier.changePageModal.title\"\n (confirmEvent)=\"onChangePageConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #changeTabModal>\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dossier.changeTabModal.confirm\"\n contentTranslationKey=\"dossier.changeTabModal.content\"\n [outputOnConfirm]=\"tabChange$ | async\"\n [showModalSubject$]=\"showChangeTabModal$\"\n titleTranslationKey=\"dossier.changeTabModal.title\"\n (cancelEvent)=\"onChangeTabCancel()\"\n (confirmEvent)=\"onChangeTabConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-template>\n\n<ng-template #dossierListActions>\n <button\n cdsButton=\"primary\"\n [disabled]=\"listActionsComponent?.disableStartDossierButton$ | async\"\n (click)=\"startDossier()\"\n >\n {{ 'Start Dossier' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {TaskService} from '@valtimo/task';\nimport {ActivatedRoute} from '@angular/router';\nimport {ToastrService} from 'ngx-toastr';\nimport {Location} from '@angular/common';\nimport moment from 'moment';\nimport {DocumentService} from '@valtimo/document';\nimport {DossierService} from '../../services/dossier.service';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-update',\n templateUrl: './dossier-update.component.html',\n styleUrls: ['./dossier-update.component.css'],\n})\nexport class DossierUpdateComponent implements OnInit {\n public task: any;\n public taskId: string;\n public schema: any;\n public documentId: string;\n public document: any;\n public page: any;\n public documentDefinitionName: string;\n public implementationDefinitions: any;\n public customDefinitions: any = {};\n\n constructor(\n private taskService: TaskService,\n private documentService: DocumentService,\n private route: ActivatedRoute,\n private toastr: ToastrService,\n private location: Location,\n dossierService: DossierService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n this.documentId = snapshot.get('documentId') || '';\n this.taskId = snapshot.get('taskId') || '';\n this.implementationDefinitions = dossierService.getImplementationEnvironmentDefinitions(\n this.documentDefinitionName\n );\n this.loadDocumentDefinition(this.documentDefinitionName);\n this.loadDocument(this.documentId);\n }\n\n ngOnInit() {\n this.getTask(this.taskId);\n if (this.implementationDefinitions.definitions.detail.summary) {\n this.customDefinitions = this.implementationDefinitions.definitions.detail.summary;\n }\n }\n\n private loadDocumentDefinition(name: string) {\n this.documentService.getDocumentDefinition(name).subscribe(definition => {\n this.schema = definition.schema;\n });\n }\n\n private loadDocument(id: string) {\n this.documentService.getDocument(id).subscribe(document => {\n this.document = document;\n });\n }\n\n public getTask(id: string) {\n this.taskService.getTask(id).subscribe(task => {\n this.task = task;\n this.task.task.created = moment(this.task.task.created).format('DD MMM YYYY HH:mm');\n this.page = {\n title: this.task.task.name,\n subtitle: `Created ${moment(this.task.task.created).fromNow()}`,\n };\n });\n }\n\n public reset() {\n this.loadDocument(this.documentId);\n }\n\n public back() {\n this.location.back();\n }\n\n public save() {\n const document = {\n documentId: this.document.id,\n content: this.document.content,\n versionBasedOn: this.document.version,\n };\n this.documentService.modifyDocument(document).subscribe(result => {\n this.document = result.document;\n this.toastr.success('Document aangepast');\n this.location.back();\n });\n }\n\n public submit(data: object) {\n // merge document content with formdata\n const mergedData = Object.assign({}, this.document.content, data);\n const documentData = {\n request: {\n documentId: this.document.id,\n content: mergedData,\n versionBasedOn: this.document.version,\n },\n taskId: this.task.task.id,\n };\n\n this.documentService.modifyDocumentAndCompleteTask(documentData).subscribe(result => {\n this.toastr.success(this.task.task.name + ' has successfully been completed');\n this.location.back();\n });\n }\n\n public returnZero() {\n return 0;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget [title]=\"page?.title\" [subtitle]=\"page?.subtitle\" [divider]=\"true\">\n <div class=\"card-body\">\n <!--view with custom definitions-->\n <div *ngIf=\"this.customDefinitions\">\n <div\n class=\"mb-4\"\n *ngFor=\"let definition of this.customDefinitions | keyvalue: returnZero\"\n ></div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"button\"\n (click)=\"save()\"\n id=\"save-button\"\n >\n Save\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"submit\"\n (click)=\"submit({})\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <valtimo-camunda-form\n *ngIf=\"task?.formFields && !this.customDefinitions\"\n (submitted)=\"submit($event)\"\n [formFields]=\"task.formFields\"\n [componentName]=\"task.formLocation\"\n ></valtimo-camunda-form>\n </div>\n </valtimo-widget>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {DossierDetailComponent} from './components/dossier-detail/dossier-detail.component';\nimport {DossierUpdateComponent} from './components/dossier-update/dossier-update.component';\nimport {ROLE_USER} from '@valtimo/config';\nimport {DossierListComponent} from './components/dossier-list/dossier-list.component';\n\nconst routes: Routes = [\n {\n path: 'dossiers/:documentDefinitionName',\n component: DossierListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossiers', roles: [ROLE_USER], customPageTitle: true},\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n component: DossierDetailComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Dossier details',\n parentPath: 'dossiers/:documentDefinitionName',\n roles: [ROLE_USER],\n },\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId',\n component: DossierDetailComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Dossier details',\n parentPath: 'dossiers/:documentDefinitionName',\n roles: [ROLE_USER],\n },\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab/tasks/:taskId',\n component: DossierUpdateComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Task details',\n parentPath: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n roles: [ROLE_USER],\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DossierRoutingModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TabTranslatePipe} from './tab-translate.pipe';\nimport {NgModule} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n imports: [TranslateModule],\n declarations: [TabTranslatePipe],\n exports: [TabTranslatePipe],\n})\nexport class TabTranslatePipeModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './tab-translate.pipe';\nexport * from './tab-translate-pipe.module';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './tab-translate';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {HttpClient} from '@angular/common/http';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {\n NgbButtonsModule,\n NgbModule,\n NgbPaginationModule,\n NgbTooltipModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {\n BpmnJsDiagramModule,\n ButtonModule,\n CamundaFormModule,\n CarbonListModule,\n ConfirmationModalModule,\n DataListModule,\n DocumentenApiMetadataModalModule,\n DropzoneModule,\n FilterSidebarModule,\n FormIoModule,\n FormModule as VFormModule,\n InputLabelModule,\n InputModule,\n IsArrayPipe,\n ListModule,\n ModalModule,\n PageModule,\n ParagraphModule,\n SearchableDropdownSelectModule,\n SearchFieldsModule,\n SelectModule,\n SpinnerModule,\n TableModule,\n TimelineModule,\n TitleModule,\n UploaderModule,\n VModalModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {ConfigModule, HttpLoaderFactory} from '@valtimo/config';\nimport {FormModule} from '@valtimo/form';\nimport {FormLinkModule} from '@valtimo/form-link';\nimport {ProcessModule} from '@valtimo/process';\nimport {TaskModule} from '@valtimo/task';\nimport {\n ButtonModule as CarbonButtonModule,\n ComboBoxModule,\n DropdownModule,\n IconModule,\n LoadingModule,\n ModalModule as CarbonModalModule,\n SelectModule as CarbonSelectModule,\n TabsModule,\n} from 'carbon-components-angular';\nimport {NoteModalComponent} from './components/note-modal/note-modal.component';\nimport {DossierAssignUserComponent} from './components/dossier-assign-user/dossier-assign-user.component';\nimport {DossierBulkAssignModalComponent} from './components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component';\nimport {DossierDetailComponent} from './components/dossier-detail/dossier-detail.component';\nimport {DossierDetailTabAuditComponent} from './components/dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabContactMomentsComponent} from './components/dossier-detail/tab/contact-moments/contact-moments.component';\nimport {DossierDetailTabDocumentenApiDocumentsComponent} from './components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component';\nimport {DossierDetailTabDocumentsComponent} from './components/dossier-detail/tab/documents/documents.component';\nimport {DossierDetailTabNotesComponent} from './components/dossier-detail/tab/notes/notes.component';\nimport {DossierDetailTabObjectTypeComponent} from './components/dossier-detail/tab/object-type/object-type.component';\nimport {DossierDetailTabProgressComponent} from './components/dossier-detail/tab/progress/progress.component';\nimport {DossierDetailTabS3DocumentsComponent} from './components/dossier-detail/tab/s3-documents/s3-documents.component';\nimport {DossierDetailTabSummaryComponent} from './components/dossier-detail/tab/summary/summary.component';\nimport {DossierDetailTabZaakobjectenComponent} from './components/dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nimport {DossierListActionsComponent} from './components/dossier-list-actions/dossier-list-actions.component';\nimport {DossierListComponent} from './components/dossier-list/dossier-list.component';\nimport {DossierProcessStartModalComponent} from './components/dossier-process-start-modal/dossier-process-start-modal.component';\nimport {DossierRoutingModule} from './dossier-routing.module';\nimport {DossierSupportingProcessStartModalComponent} from './components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {DossierUpdateComponent} from './components/dossier-update/dossier-update.component';\nimport {TAB_MAP} from './constants';\nimport {DossierBulkAssignService, DossierService} from './services';\nimport {DossierDetailTabFormioComponent} from './components/dossier-detail/tab/formio/formio.component';\nimport {TabTranslatePipeModule} from './pipes';\n\nexport type TabsFactory = () => Map<string, object>;\n\n@NgModule({\n declarations: [\n DossierBulkAssignModalComponent,\n DossierListComponent,\n DossierListActionsComponent,\n DossierDetailComponent,\n DossierDetailTabSummaryComponent,\n DossierDetailTabProgressComponent,\n DossierDetailTabAuditComponent,\n DossierDetailTabDocumentsComponent,\n DossierDetailTabContactMomentsComponent,\n DossierDetailTabZaakobjectenComponent,\n DossierDetailTabNotesComponent,\n DossierUpdateComponent,\n DossierProcessStartModalComponent,\n DossierSupportingProcessStartModalComponent,\n DossierDetailTabObjectTypeComponent,\n DossierDetailTabDocumentenApiDocumentsComponent,\n DossierDetailTabS3DocumentsComponent,\n DossierAssignUserComponent,\n NoteModalComponent,\n DossierDetailTabFormioComponent,\n ],\n imports: [\n CommonModule,\n DossierRoutingModule,\n ListModule,\n WidgetModule,\n BpmnJsDiagramModule,\n TimelineModule,\n CamundaFormModule,\n ProcessModule,\n FilterSidebarModule,\n NgbButtonsModule,\n DataListModule,\n FormsModule,\n ReactiveFormsModule,\n FormModule,\n FormIoModule,\n ModalModule,\n SpinnerModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n TaskModule,\n ModalModule,\n NgbTooltipModule,\n UploaderModule,\n DropzoneModule,\n NgbPaginationModule,\n ConfigModule,\n SelectModule,\n InputLabelModule,\n ParagraphModule,\n TableModule,\n VModalModule,\n TitleModule,\n ButtonModule,\n DocumentenApiMetadataModalModule,\n SearchableDropdownSelectModule,\n SearchFieldsModule,\n PageModule,\n FormModule,\n InputModule,\n VFormModule,\n NgbModule,\n LoadingModule,\n CarbonButtonModule,\n IconModule,\n FormLinkModule,\n CarbonModalModule,\n CarbonSelectModule,\n ConfirmationModalModule,\n DropdownModule,\n TabsModule,\n ComboBoxModule,\n TabTranslatePipeModule,\n CarbonListModule,\n IsArrayPipe,\n ],\n exports: [DossierListComponent, DossierDetailComponent],\n})\nexport class DossierModule {\n static forRoot(tabsFactory: TabsFactory): ModuleWithProviders<DossierModule> {\n return {\n ngModule: DossierModule,\n providers: [\n DossierService,\n DossierBulkAssignService,\n {\n provide: TAB_MAP,\n useFactory: tabsFactory,\n },\n ],\n };\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of dossier\n */\n\nexport * from './lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component';\nexport * from './lib/components/dossier-detail/dossier-detail.component';\nexport * from './lib/components/dossier-detail/tab/audit/audit.component';\nexport * from './lib/components/dossier-detail/tab/contact-moments/contact-moments.component';\nexport * from './lib/components/dossier-detail/tab/documents/documents.component';\nexport * from './lib/components/dossier-detail/tab/notes/notes.component';\nexport * from './lib/components/dossier-detail/tab/progress/progress.component';\nexport * from './lib/components/dossier-detail/tab/summary/summary.component';\nexport * from './lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nexport * from './lib/components/dossier-list/dossier-list.component';\nexport * from './lib/constants';\nexport * from './lib/dossier.module';\nexport * from './lib/services/dossier.service';\nexport * from './lib/models';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3","i1","i1.DossierColumnService","i2.DossierListService","i4","i5.DossierParameterService","i2.DossierParameterService","i3.DossierService","i1.DossierListService","i3.DossierParameterService","i6","i8","i9","i11","i12","i5","i7","switchMap","map","tap","take","i9.FileSortService","i10","i8.FileSortService","i3.DossierDetailTabDocumentenApiDocumentsComponent","i4.DossierDetailTabS3DocumentsComponent","i2.ZaakobjectenService","i1.NotesService","i9.NoteModalComponent","i1.DossierTabService","i3.DossierTabApiService","i1.DossierBulkAssignService","i9.DossierTabService","i9.DossierService","i12.DossierSupportingProcessStartModalComponent","i13.DossierAssignUserComponent","i14","i15.TabTranslatePipe","i4.DossierProcessStartModalComponent","i1.DossierListAssigneeService","i1.DossierListPaginationService","i1.DossierParameterService","i1.DossierListSearchService","i10.DossierBulkAssignModalComponent","i11.DossierListActionsComponent","i6.DossierService","VFormModule","CarbonButtonModule","CarbonModalModule","CarbonSelectModule"],"mappings":"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"}