@valtimo/task 11.3.2 → 12.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/esm2022/lib/components/assign-user-to-task/assign-user-to-task.component.mjs +122 -0
  2. package/esm2022/lib/components/task-detail-modal/task-detail-modal.component.mjs +202 -0
  3. package/esm2022/lib/components/task-list/task-list.component.mjs +287 -0
  4. package/esm2022/lib/models/index.mjs +2 -2
  5. package/esm2022/lib/models/task-definition.model.mjs +2 -2
  6. package/esm2022/lib/models/task-list.model.mjs +8 -14
  7. package/esm2022/lib/models/task.model.mjs +2 -2
  8. package/esm2022/lib/services/index.mjs +20 -0
  9. package/esm2022/lib/services/task-list-column.service.mjs +192 -0
  10. package/esm2022/lib/services/task-list-pagination.service.mjs +74 -0
  11. package/esm2022/lib/services/task-list-sort.service.mjs +90 -0
  12. package/esm2022/lib/services/task-list.service.mjs +60 -0
  13. package/esm2022/lib/services/task.service.mjs +94 -0
  14. package/esm2022/lib/task-permissions.mjs +2 -2
  15. package/esm2022/lib/task-routing.module.mjs +7 -7
  16. package/esm2022/lib/task.module.mjs +23 -17
  17. package/esm2022/public_api.mjs +6 -6
  18. package/fesm2022/valtimo-task.mjs +749 -316
  19. package/fesm2022/valtimo-task.mjs.map +1 -1
  20. package/lib/{assign-user-to-task → components/assign-user-to-task}/assign-user-to-task.component.d.ts +7 -7
  21. package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts.map +1 -0
  22. package/lib/{task-detail-modal → components/task-detail-modal}/task-detail-modal.component.d.ts +3 -4
  23. package/lib/components/task-detail-modal/task-detail-modal.component.d.ts.map +1 -0
  24. package/lib/components/task-list/task-list.component.d.ts +65 -0
  25. package/lib/components/task-list/task-list.component.d.ts.map +1 -0
  26. package/lib/models/task-list.model.d.ts +45 -8
  27. package/lib/models/task-list.model.d.ts.map +1 -1
  28. package/lib/models/task.model.d.ts +22 -1
  29. package/lib/models/task.model.d.ts.map +1 -1
  30. package/lib/services/index.d.ts +5 -0
  31. package/lib/services/index.d.ts.map +1 -0
  32. package/lib/services/task-list-column.service.d.ts +27 -0
  33. package/lib/services/task-list-column.service.d.ts.map +1 -0
  34. package/lib/services/task-list-pagination.service.d.ts +20 -0
  35. package/lib/services/task-list-pagination.service.d.ts.map +1 -0
  36. package/lib/services/task-list-sort.service.d.ts +23 -0
  37. package/lib/services/task-list-sort.service.d.ts.map +1 -0
  38. package/lib/services/task-list.service.d.ts +23 -0
  39. package/lib/services/task-list.service.d.ts.map +1 -0
  40. package/lib/{task.service.d.ts → services/task.service.d.ts} +9 -8
  41. package/lib/services/task.service.d.ts.map +1 -0
  42. package/lib/task.module.d.ts +5 -5
  43. package/lib/task.module.d.ts.map +1 -1
  44. package/package.json +7 -6
  45. package/public_api.d.ts +4 -4
  46. package/public_api.d.ts.map +1 -1
  47. package/esm2022/lib/assign-user-to-task/assign-user-to-task.component.mjs +0 -122
  48. package/esm2022/lib/task-detail-modal/task-detail-modal.component.mjs +0 -219
  49. package/esm2022/lib/task-list/task-list.component.mjs +0 -259
  50. package/esm2022/lib/task.service.mjs +0 -72
  51. package/lib/assign-user-to-task/assign-user-to-task.component.d.ts.map +0 -1
  52. package/lib/task-detail-modal/task-detail-modal.component.d.ts.map +0 -1
  53. package/lib/task-list/task-list.component.d.ts +0 -54
  54. package/lib/task-list/task-list.component.d.ts.map +0 -1
  55. package/lib/task.service.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-task.mjs","sources":["../../../../projects/valtimo/task/src/lib/models/task.model.ts","../../../../projects/valtimo/task/src/lib/models/task-definition.model.ts","../../../../projects/valtimo/task/src/lib/models/task-list.model.ts","../../../../projects/valtimo/task/src/lib/models/index.ts","../../../../projects/valtimo/task/src/lib/task.service.ts","../../../../projects/valtimo/task/src/lib/assign-user-to-task/assign-user-to-task.component.ts","../../../../projects/valtimo/task/src/lib/assign-user-to-task/assign-user-to-task.component.html","../../../../projects/valtimo/task/src/lib/task-detail-modal/task-detail-modal.component.ts","../../../../projects/valtimo/task/src/lib/task-detail-modal/task-detail-modal.component.html","../../../../projects/valtimo/task/src/lib/task-permissions.ts","../../../../projects/valtimo/task/src/lib/task-list/task-list.component.ts","../../../../projects/valtimo/task/src/lib/task-list/task-list.component.html","../../../../projects/valtimo/task/src/lib/task-routing.module.ts","../../../../projects/valtimo/task/src/lib/task.module.ts","../../../../projects/valtimo/task/src/public_api.ts","../../../../projects/valtimo/task/src/valtimo-task.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 {User} from '@valtimo/config';\n\ninterface Task {\n assignee: string;\n caseDefinitionId: string;\n caseExecutionId: string;\n caseInstanceId: string;\n created: string;\n delegationState: any;\n description: string;\n due: string;\n executionId: string;\n followUp: any;\n formKey: string;\n formless: boolean;\n id: string;\n listItemFields: ListItemField[];\n name: string;\n owner: string;\n parentTaskId: string;\n priority: number;\n processDefinitionId: string;\n processInstanceId: string;\n suspended: boolean;\n taskDefinitionKey: string;\n tenantId: string;\n formLocation: string;\n businessKey: string;\n processDefinitionKey: string;\n valtimoAssignee: User;\n locked?: boolean;\n caseLocked?: boolean;\n}\n\ninterface ListItemField {\n key: string;\n value: string;\n label: string;\n}\n\ninterface AssigneeRequest {\n assignee: string;\n}\n\ntype TaskProcessLinkType = 'form' | 'form-flow';\n\ninterface TaskProcessLinkResult {\n processLinkId: string;\n type: TaskProcessLinkType;\n properties: {\n formFlowInstanceId?: string;\n formDefinitionId?: string;\n prefilledForm?: any;\n };\n}\n\nexport {AssigneeRequest, ListItemField, Task, TaskProcessLinkResult, TaskProcessLinkType};\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 {FormDefinition} from '@valtimo/form-management';\n\nexport interface TaskDefinition {\n id: string;\n name: string;\n formDefinition: FormDefinition | null;\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 class TaskList {\n public tasks = [];\n fields = [];\n pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n };\n page = 0;\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 './task.model';\nexport * from './task-definition.model';\nexport * from './task-list.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 {Injectable} from '@angular/core';\nimport {HttpClient, HttpResponse} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {AssigneeRequest, Task, TaskProcessLinkResult} from './models';\nimport {ConfigService, CustomTaskList, NamedUser} from '@valtimo/config';\nimport {InterceptorSkip} from '@valtimo/security';\n\n@Injectable({providedIn: 'root'})\nexport class TaskService {\n private valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n private readonly configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n queryTasks(params?: any): Observable<HttpResponse<Array<Task>>> {\n return this.http.get<Array<Task>>(`${this.valtimoEndpointUri}v1/task`, {\n observe: 'response',\n params,\n });\n }\n\n getTasks(): Observable<Task[]> {\n return this.http.get<Task[]>(`${this.valtimoEndpointUri}v1/task?filter=all`);\n }\n\n getTask(id: string): Observable<any> {\n return this.http.get(this.valtimoEndpointUri + 'v1/task/' + id);\n }\n\n getCandidateUsers(id: string): Observable<NamedUser[]> {\n return this.http.get<NamedUser[]>(\n this.valtimoEndpointUri + 'v2/task/' + id + '/candidate-user'\n );\n }\n\n assignTask(id: string, assigneeRequest: AssigneeRequest): Observable<any> {\n return this.http.post(this.valtimoEndpointUri + 'v1/task/' + id + '/assign', assigneeRequest);\n }\n\n unassignTask(id: string): Observable<any> {\n return this.http.post(this.valtimoEndpointUri + 'v1/task/' + id + '/unassign', null);\n }\n\n completeTask(id: string, variables: Map<string, any>): Observable<any> {\n return this.http.post(this.valtimoEndpointUri + 'v1/task/' + id + '/complete', {\n variables,\n filesToDelete: [],\n });\n }\n\n getTaskProcessLink(taskId: string): Observable<TaskProcessLinkResult> {\n return this.http.get<TaskProcessLinkResult>(\n `${this.valtimoEndpointUri}v2/process-link/task/${taskId}`,\n {\n headers: {[InterceptorSkip]: ''},\n }\n );\n }\n\n getTaskProcessLinkV1(taskId: string): Observable<TaskProcessLinkResult> {\n return this.http.get<TaskProcessLinkResult>(\n `${this.valtimoEndpointUri}v1/process-link/task/${taskId}`\n );\n }\n\n getConfigCustomTaskList(): CustomTaskList {\n return this.configService.config.customTaskList;\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 {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {DropdownItem} from '@valtimo/components';\nimport {BehaviorSubject, combineLatest, Subscription, take, tap} from 'rxjs';\nimport {TaskService} from '../task.service';\nimport {NamedUser} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-assign-user-to-task',\n templateUrl: './assign-user-to-task.component.html',\n styleUrls: ['./assign-user-to-task.component.scss'],\n})\nexport class AssignUserToTaskComponent implements OnInit, OnChanges, OnDestroy {\n @Input() taskId: string;\n @Input() assigneeEmail: string;\n @Output() assignmentOfTaskChanged = new EventEmitter();\n\n public assignedEmailOnServer$ = new BehaviorSubject<string | null>(null);\n public assignedUserFullName$ = new BehaviorSubject<string | null>(null);\n public candidateUsersForTask$ = new BehaviorSubject<NamedUser[] | undefined>(undefined);\n public disabled$ = new BehaviorSubject<boolean>(true);\n public userEmailToAssign: string | null = null;\n private _subscriptions = new Subscription();\n\n constructor(private taskService: TaskService) {}\n\n public ngOnInit(): void {\n this._subscriptions.add(\n this.taskService.getCandidateUsers(this.taskId).subscribe(candidateUsers => {\n this.candidateUsersForTask$.next(candidateUsers);\n if (this.assigneeEmail) {\n this.assignedEmailOnServer$.next(this.assigneeEmail);\n this.userEmailToAssign = this.assigneeEmail;\n this.assignedUserFullName$.next(\n this.getAssignedUserName(candidateUsers, this.assigneeEmail)\n );\n }\n this.enable();\n })\n );\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.candidateUsersForTask$.pipe(take(1)).subscribe(candidateUsers => {\n const currentUserEmail = changes.assigneeEmail?.currentValue || this.assigneeEmail;\n this.assignedEmailOnServer$.next(currentUserEmail || null);\n this.userEmailToAssign = currentUserEmail || null;\n this.assignedUserFullName$.next(\n this.getAssignedUserName(candidateUsers ?? [], currentUserEmail)\n );\n });\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public assignTask(userEmail: string): void {\n this.disable();\n combineLatest([\n this.candidateUsersForTask$,\n this.taskService.assignTask(this.taskId, {assignee: userEmail}),\n ])\n .pipe(\n take(1),\n tap(([candidateUsers]) => {\n this.userEmailToAssign = userEmail;\n this.assignedEmailOnServer$.next(userEmail);\n this.assignedUserFullName$.next(\n this.getAssignedUserName(candidateUsers ?? [], userEmail)\n );\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n public unassignTask(): void {\n this.disable();\n this.taskService\n .unassignTask(this.taskId)\n .pipe(\n tap(() => {\n this.clear();\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n public getAssignedUserName(users: NamedUser[], userEmail: string): string {\n if (users && userEmail) {\n const findUser = users.find(user => user.email === userEmail);\n return findUser ? findUser.label : userEmail;\n }\n return userEmail || '-';\n }\n\n public mapUsersForDropdown(users: NamedUser[]): DropdownItem[] {\n return (\n users &&\n users\n .map(user => ({...user, lastName: user.lastName?.split(' ').splice(-1)[0] || ''}))\n .sort((a, b) => a.lastName.localeCompare(b.lastName))\n .map(user => ({text: user.label, id: user.email}))\n );\n }\n\n private clear(): void {\n this.assignedEmailOnServer$.next(null);\n this.userEmailToAssign = null;\n }\n\n private emitChange(): void {\n this.assignmentOfTaskChanged.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<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n emailOnServer: assignedEmailOnServer$ | async\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"row mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <valtimo-searchable-dropdown-select\n *ngIf=\"obs.candidateUsers; else loading\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userEmailToAssign === obs.emailOnServer && obs.emailOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignTask.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 {\n AfterViewInit,\n Component,\n EventEmitter,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormIoStateService,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n ValtimoModalService,\n} from '@valtimo/components';\nimport {Task, TaskProcessLinkType} from '../models';\nimport {FormFlowComponent, FormSubmissionResult, ProcessLinkService} from '@valtimo/form-link';\nimport {FormioForm} from '@formio/angular';\nimport moment from 'moment';\nimport {ToastrService} from 'ngx-toastr';\nimport {map, take} from 'rxjs/operators';\nimport {TaskService} from '../task.service';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n Observable,\n Subscription,\n tap,\n} from 'rxjs';\nimport {UserProviderService} from '@valtimo/security';\nimport {DocumentService} from '@valtimo/document';\nimport {TranslateService} from '@ngx-translate/core';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-task-detail-modal',\n templateUrl: './task-detail-modal.component.html',\n styleUrls: ['./task-detail-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TaskDetailModalComponent implements AfterViewInit, OnDestroy {\n @ViewChild('form') form: FormioComponent;\n @ViewChild('formFlow') formFlow: FormFlowComponent;\n @ViewChild('taskDetailModal') modal: ModalComponent;\n @Output() formSubmit = new EventEmitter();\n @Output() assignmentOfTaskChanged = new EventEmitter();\n\n public readonly task$ = new BehaviorSubject<Task | null>(null);\n public readonly formDefinition$ = new BehaviorSubject<FormioForm>(undefined);\n public readonly formFlowInstanceId$ = new BehaviorSubject<string>(undefined);\n public readonly page$ = new BehaviorSubject<any>(null);\n public readonly formioOptions$ = new BehaviorSubject<ValtimoFormioOptions>(null);\n public readonly errorMessage$ = new BehaviorSubject<string>(undefined);\n public readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));\n public readonly formIoFormData$ = new BehaviorSubject<any>(null);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n private readonly taskProcessLinkType$ = new BehaviorSubject<TaskProcessLinkType | null>(null);\n public readonly processLinkIsForm$ = this.taskProcessLinkType$.pipe(map(type => type === 'form'));\n public readonly processLinkIsFormFlow$ = this.taskProcessLinkType$.pipe(\n map(type => type === 'form-flow')\n );\n\n private readonly processLinkId$ = new BehaviorSubject<string>(undefined);\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly toastr: ToastrService,\n private readonly processLinkService: ProcessLinkService,\n private readonly router: Router,\n private readonly taskService: TaskService,\n private readonly userProviderService: UserProviderService,\n private readonly modalService: ValtimoModalService,\n private readonly stateService: FormIoStateService,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService\n ) {\n const options = new FormioOptionsImpl();\n options.disableAlerts = true;\n this.formioOptions$.next(options);\n }\n\n public ngAfterViewInit(): void {\n this._subscriptions.add(\n this.modal.modalShowing$\n .pipe(\n distinctUntilChanged(),\n tap(modalShowing => {\n if (!modalShowing) {\n if (this.formFlow) {\n this.formFlow.saveData();\n }\n }\n })\n )\n .subscribe()\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public openTaskDetails(task: Task): void {\n this.resetTaskProcessLinkType();\n this.resetFormDefinition();\n this.getTaskProcessLink(task.id);\n this.setDocumentDefinitionNameInService(task);\n const documentId = task.businessKey;\n this.stateService.setDocumentId(documentId);\n\n this.task$.next(task);\n this.page$.next({\n title: task.name,\n subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${task.created}`,\n });\n\n //only load from formlink when process link failed for backwards compatibility\n if (!this.taskProcessLinkType$.getValue()) {\n this.modal.show();\n }\n }\n\n public gotoProcessLinkScreen(): void {\n this.modal.hide();\n this.router.navigate(['process-links']);\n }\n\n public onChange(event: any): void {\n if (event.data) {\n this.formIoFormData$.next(event.data);\n }\n }\n\n public onSubmit(submission: FormioSubmission): void {\n if (submission.data) {\n this.formIoFormData$.next(submission.data);\n }\n\n combineLatest([this.processLinkId$, this.taskProcessLinkType$, this.task$])\n .pipe(take(1))\n .subscribe(([processLinkId, taskProcessLinkType, task]) => {\n if (taskProcessLinkType === 'form') {\n if (processLinkId) {\n this.processLinkService\n .submitForm(processLinkId, submission.data, task.businessKey, task.id)\n .subscribe({\n next: (_: FormSubmissionResult) => {\n this.completeTask();\n },\n error: errors => {\n this.form.showErrors(errors);\n },\n });\n }\n }\n });\n }\n\n public completeTask(): void {\n this.task$.pipe(take(1)).subscribe(task => {\n this.toastr.success(\n `${task.name} ${this.translateService.instant('taskDetail.taskCompleted')}`\n );\n this.modal.hide();\n this.task$.next(null);\n this.formSubmit.emit();\n });\n }\n\n private resetFormDefinition(): void {\n this.formDefinition$.next(null);\n this.loading$.next(true);\n }\n\n private getTaskProcessLink(taskId: string): void {\n this.taskService.getTaskProcessLink(taskId).subscribe({\n next: res => {\n if (res != null) {\n switch (res?.type) {\n case 'form':\n this.taskProcessLinkType$.next('form');\n this.processLinkId$.next(res.processLinkId);\n this.setFormDefinitionAndOpenModal(res.properties.prefilledForm);\n break;\n case 'form-flow':\n this.taskProcessLinkType$.next('form-flow');\n this.formFlowInstanceId$.next(res.properties.formFlowInstanceId);\n break;\n }\n this.loading$.next(false);\n } else {\n this.getLegacyTaskProcessLink(taskId);\n }\n },\n error: _ => {\n this.getLegacyTaskProcessLink(taskId);\n },\n });\n }\n\n private getLegacyTaskProcessLink(taskId: string): void {\n this.taskService.getTaskProcessLinkV1(taskId).subscribe(resV1 => {\n switch (resV1?.type) {\n case 'form':\n this.taskProcessLinkType$.next('form');\n break;\n case 'form-flow':\n this.taskProcessLinkType$.next('form-flow');\n this.formFlowInstanceId$.next(resV1.properties.formFlowInstanceId);\n break;\n }\n this.loading$.next(false);\n });\n }\n\n private resetTaskProcessLinkType(): void {\n this.taskProcessLinkType$.next(null);\n this.processLinkId$.next(null);\n }\n\n private setFormDefinitionAndOpenModal(formDefinition: any): void {\n this.taskProcessLinkType$.next('form');\n this.formDefinition$.next(formDefinition);\n this.modal.show();\n }\n\n private setDocumentDefinitionNameInService(task: Task): void {\n this.documentService\n .getProcessDocumentDefinitionFromProcessInstanceId(task.processInstanceId)\n .subscribe(processDocumentDefinition => {\n const documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.modalService.setDocumentDefinitionName(documentDefinitionName);\n this.stateService.setDocumentDefinitionName(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\n<valtimo-modal\n #taskDetailModal\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n formDefinition: formDefinition$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async\n } as obs\"\n elementId=\"taskDetailModal\"\n [title]=\"obs.page?.title\"\n [subtitle]=\"obs.page?.subtitle\"\n [templateBelowSubtitle]=\"assignUserToTask\"\n>\n <div body *ngIf=\"obs.formDefinition && obs.processLinkIsForm\">\n <valtimo-form-io\n #form\n [form]=\"obs.formDefinition\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n </div>\n <div body *ngIf=\"obs.processLinkIsFormFlow\">\n <valtimo-form-flow\n #formFlow\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"obs.loading\">\n <div class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n </div>\n <div\n body\n *ngIf=\"\n obs.loading === false && !obs.formDefinition && !obs.formFlowInstanceId && !obs.errorMessage\n \"\n >\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>\n <div body *ngIf=\"obs.errorMessage\">\n <div class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n </div>\n <div footer>\n <div class=\"mb-0 p-3 text-center\" *ngIf=\"!!obs.formDefinition\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoProcessLinkScreen()\"\n id=\"process-link-button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n\n<ng-template #assignUserToTask>\n <ng-container *ngIf=\"task$ | async as task\">\n <valtimo-assign-user-to-task\n *ngIf=\"task && assignmentOfTaskChanged\"\n [taskId]=\"task.id\"\n [assigneeEmail]=\"task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\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 */\n\nimport {PermissionRequest} from '@valtimo/access-control';\n\nenum PERMISSION_ACTION {\n assign = 'assign',\n view = 'view',\n}\n\nenum TASK_DETAIL_PERMISSION_RESOURCE {\n jsonSchemaDocument = 'com.ritense.document.domain.impl.JsonSchemaDocument',\n task = 'com.ritense.valtimo.camunda.domain.CamundaTask',\n}\n\nconst CAN_ASSIGN_TASK_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.assign,\n resource: TASK_DETAIL_PERMISSION_RESOURCE.task,\n};\n\nconst CAN_VIEW_TASK_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.view,\n resource: TASK_DETAIL_PERMISSION_RESOURCE.task,\n};\n\nconst CAN_VIEW_CASE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.view,\n resource: TASK_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n};\n\nexport {\n CAN_ASSIGN_TASK_PERMISSION,\n CAN_VIEW_TASK_PERMISSION,\n CAN_VIEW_CASE_PERMISSION,\n TASK_DETAIL_PERMISSION_RESOURCE,\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, OnDestroy, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {TaskService} from '../task.service';\nimport moment from 'moment';\nimport {Task, TaskList} from '../models';\nimport {NGXLogger} from 'ngx-logger';\nimport {TaskDetailModalComponent} from '../task-detail-modal/task-detail-modal.component';\nimport {TranslateService} from '@ngx-translate/core';\nimport {\n BehaviorSubject,\n combineLatest,\n defaultIfEmpty,\n forkJoin,\n of,\n Subscription,\n switchMap,\n} from 'rxjs';\nimport {ConfigService, SortState, TaskListTab} from '@valtimo/config';\nimport {DocumentService} from '@valtimo/document';\nimport {take} from 'rxjs/operators';\nimport {PermissionService} from '@valtimo/access-control';\nimport {\n CAN_VIEW_TASK_PERMISSION,\n CAN_VIEW_CASE_PERMISSION,\n TASK_DETAIL_PERMISSION_RESOURCE,\n} from '../task-permissions';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-task-list',\n templateUrl: './task-list.component.html',\n styleUrls: ['./task-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TaskListComponent implements OnDestroy {\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n public tasks = {\n mine: new TaskList(),\n open: new TaskList(),\n all: new TaskList(),\n };\n public visibleTabs: Array<TaskListTab> | null = null;\n public currentTaskType = 'mine';\n public listTitle: string | null = null;\n public listDescription: string | null = null;\n public sortState: SortState | null = null;\n public readonly loadingTasks$ = new BehaviorSubject<boolean>(true);\n public readonly activeTab$ = new BehaviorSubject<string>('');\n private _translationSubscription!: Subscription;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly logger: NGXLogger,\n private readonly permissionService: PermissionService,\n private readonly router: Router,\n private readonly taskService: TaskService,\n private readonly translateService: TranslateService\n ) {\n this.visibleTabs = this.configService.config?.visibleTaskListTabs || null;\n if (this.visibleTabs) {\n this.currentTaskType = this.visibleTabs[0];\n }\n this.setDefaultSorting();\n }\n\n public ngOnDestroy(): void {\n this.closeTranslationSubscription();\n }\n\n public paginationClicked(page: number, type: string): void {\n this.tasks[type].page = page - 1;\n this.tasks[type].pagination.page = page;\n this.getTasks(type);\n }\n\n public paginationSet(size: number): void {\n this.tasks.mine.pagination.size =\n this.tasks.all.pagination.size =\n this.tasks.open.pagination.size =\n size;\n this.getTasks(this.currentTaskType);\n }\n\n public tabChange(tab: string): void {\n this.clearPagination(this.currentTaskType);\n this.getTasks(tab);\n }\n\n public showTask(task: Task): void {\n this.router.navigate(['tasks', task.id]);\n }\n\n public getTasks(type: string): void {\n this.loadingTasks$.next(true);\n this.activeTab$.next(type);\n\n let params: any;\n\n this.closeTranslationSubscription();\n\n this._translationSubscription = combineLatest([\n this.translateService.stream(`task-list.${type}.title`),\n this.translateService.stream(`task-list.${type}.description`),\n ]).subscribe(([title, description]) => {\n this.listTitle = title;\n this.listDescription = description;\n });\n\n switch (type) {\n case 'mine':\n params = {\n page: this.tasks.mine.page,\n size: this.tasks.mine.pagination.size,\n filter: 'mine',\n };\n this.currentTaskType = 'mine';\n break;\n case 'open':\n params = {\n page: this.tasks.open.page,\n size: this.tasks.open.pagination.size,\n filter: 'open',\n };\n this.currentTaskType = 'open';\n break;\n case 'all':\n params = {page: this.tasks.all.page, size: this.tasks.open.pagination.size, filter: 'all'};\n this.currentTaskType = 'all';\n break;\n default:\n this.logger.fatal('Unreachable case');\n }\n\n if (this.sortState) {\n params.sort = this.getSortString(this.sortState);\n }\n\n this.taskService\n .queryTasks(params)\n .pipe(\n switchMap(tasksResult =>\n combineLatest([\n of(tasksResult),\n forkJoin(\n tasksResult.body.map(task =>\n this.permissionService\n .requestPermission(CAN_VIEW_TASK_PERMISSION, {\n resource: TASK_DETAIL_PERMISSION_RESOURCE.task,\n identifier: task.id,\n })\n .pipe(take(1))\n )\n ).pipe(defaultIfEmpty(null)),\n forkJoin(\n tasksResult.body.map(task =>\n this.permissionService\n .requestPermission(CAN_VIEW_CASE_PERMISSION, {\n resource: TASK_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier: task.businessKey,\n })\n .pipe(take(1))\n )\n ).pipe(defaultIfEmpty(null)),\n ])\n )\n )\n .subscribe(([tasksResult, taskPermissions, taskCasePermissions]) => {\n this.tasks[type].pagination = {\n ...this.tasks[type].pagination,\n collectionSize: tasksResult.headers.get('x-total-count'),\n };\n this.tasks[type].tasks = tasksResult.body;\n this.tasks[type].tasks.map((task, taskIndex) => {\n task.created = moment(task.created).format('DD MMM YYYY HH:mm');\n if (task.due) {\n task.due = moment(task.due).format('DD MMM YYYY HH:mm');\n }\n task.locked = !taskPermissions[taskIndex];\n task.caseLocked = !taskCasePermissions[taskIndex];\n });\n\n if (this.taskService.getConfigCustomTaskList()) {\n this.customTaskListFields(type);\n } else {\n this.defaultTaskListFields(type);\n }\n\n this.loadingTasks$.next(false);\n });\n }\n\n public openRelatedCase(event: MouseEvent, index: number): void {\n event.stopPropagation();\n\n const tasks = this.tasks[this.currentTaskType].tasks;\n const currentTask = tasks && tasks[index];\n\n if (currentTask && !currentTask.caseLocked) {\n this.documentService\n .getDocument(currentTask.businessKey)\n .pipe(take(1))\n .subscribe(document => {\n this.router.navigate([\n `/dossiers/${document.definitionId?.name}/document/${currentTask.businessKey}`,\n ]);\n });\n }\n }\n\n public defaultTaskListFields(type): void {\n this.closeTranslationSubscription();\n this._translationSubscription = combineLatest([\n this.translateService.stream(`task-list.fieldLabels.created`),\n this.translateService.stream(`task-list.fieldLabels.name`),\n this.translateService.stream(`task-list.fieldLabels.valtimoAssignee.fullName`),\n this.translateService.stream(`task-list.fieldLabels.due`),\n this.translateService.stream(`task-list.fieldLabels.context`),\n ]).subscribe(([created, name, assignee, due, context]) => {\n this.tasks[type].fields = [\n {\n key: 'created',\n label: created,\n },\n {\n key: 'name',\n label: name,\n },\n {\n key: 'valtimoAssignee.fullName',\n label: assignee,\n },\n {\n key: 'due',\n label: due,\n },\n {\n key: 'context',\n label: context,\n },\n ];\n });\n }\n\n public customTaskListFields(type): void {\n const customTaskListFields = this.taskService.getConfigCustomTaskList().fields;\n\n this.closeTranslationSubscription();\n this._translationSubscription = combineLatest(\n customTaskListFields.map(column =>\n this.translateService.stream(`task-list.fieldLabels.${column.translationKey}`)\n )\n ).subscribe(labels => {\n this.tasks[type].fields = customTaskListFields.map((column, index) => ({\n key: column.propertyName,\n label: labels[index],\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n ...(column.enum && {enum: column.enum}),\n }));\n });\n }\n\n public rowOpenTaskClick(task): void | boolean {\n if (!task.endTime && !task.locked) {\n this.taskDetail.openTaskDetails(task);\n } else {\n return false;\n }\n }\n\n public setDefaultSorting(): void {\n this.sortState = this.taskService.getConfigCustomTaskList()?.defaultSortedColumn || null;\n }\n\n public sortChanged(sortState: SortState): void {\n this.sortState = sortState;\n this.getTasks(this.currentTaskType);\n }\n\n public getSortString(sort: SortState): string {\n return `${sort.state.name},${sort.state.direction}`;\n }\n\n private clearPagination(type: string): void {\n this.tasks[type].page = 0;\n }\n\n private closeTranslationSubscription(): void {\n this._translationSubscription?.unsubscribe();\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=\"main-content\"\n *ngIf=\"{loadingTasks: loadingTasks$ | async, activeTab: activeTab$ | async} as obs\"\n>\n <div class=\"container-fluid\">\n <ng-container\n *ngTemplateOutlet=\"tasksList; context: {show: !obs.loadingTasks, activeTab: obs.activeTab}\"\n ></ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksListLoading;\n context: {show: obs.loadingTasks, activeTab: obs.activeTab}\n \"\n ></ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"getTasks(currentTaskType)\"\n (assignmentOfTaskChanged)=\"getTasks(currentTaskType)\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n<ng-template #configuredTabs let-activeTab=\"activeTab\">\n <cds-tabs type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"activeTab === tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n</ng-template>\n\n<ng-template #caseLink let-data=\"data\">\n <div *ngIf=\"tasks[currentTaskType].tasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link--disabled\"\n cdsLink\n href=\"javascript:void(0)\"\n ngbTooltip=\"{{ 'task-list.caseLocked' | translate }}\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n <div *ngIf=\"!tasks[currentTaskType].tasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n</ng-template>\n\n<ng-template #tasksList let-show=\"show\" let-activeTab=\"activeTab\">\n <valtimo-carbon-list\n [ngClass]=\"{'hide-tasks-list': !show}\"\n [fields]=\"tasks[currentTaskType].fields\"\n [header]=\"false\"\n [items]=\"tasks[currentTaskType].tasks\"\n [lastColumnTemplate]=\"caseLink\"\n [pagination]=\"tasks[currentTaskType].pagination\"\n paginationIdentifier=\"taskList\"\n lockedTooltipTranslationKey=\"task-list.rowLocked\"\n (paginationClicked)=\"paginationClicked($event, currentTaskType)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div tabs>\n <cds-tabs\n *ngIf=\"visibleTabs === null; else configuredTabs; context: {activeTab: activeTab}\"\n type=\"contained\"\n class=\"valtimo-carbon-list__tabs\"\n >\n <cds-tab\n [heading]=\"'task-list.mine.title' | translate\"\n (selected)=\"tabChange('mine')\"\n [active]=\"activeTab === 'mine'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.open.title' | translate\"\n (selected)=\"tabChange('open')\"\n [active]=\"activeTab === 'open'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.all.title' | translate\"\n (selected)=\"tabChange('all')\"\n [active]=\"activeTab === 'all'\"\n >\n </cds-tab>\n </cds-tabs>\n </div>\n\n <valtimo-no-results\n [description]=\"'task-list.' + currentTaskType + '.noResultsDescription' | translate\"\n [title]=\"'task-list.' + currentTaskType + '.noResultsTitle' | translate\"\n >\n </valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tasksListLoading let-show=\"show\" let-activeTab=\"activeTab\">\n <valtimo-carbon-list [ngClass]=\"{'hide-tasks-list': !show}\" [loading]=\"true\">\n <div tabs>\n <cds-tabs *ngIf=\"visibleTabs === null\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab [heading]=\"'task-list.mine.title' | translate\" [active]=\"activeTab === 'mine'\">\n </cds-tab>\n\n <cds-tab [heading]=\"'task-list.open.title' | translate\" [active]=\"activeTab === 'open'\">\n </cds-tab>\n\n <cds-tab [heading]=\"'task-list.all.title' | translate\" [active]=\"activeTab === 'all'\">\n </cds-tab>\n </cds-tabs>\n\n <cds-tabs type=\"contained\" class=\"valtimo-carbon-list__tabs\" *ngIf=\"visibleTabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"activeTab === tab\"\n ></cds-tab>\n </cds-tabs>\n </div>\n </valtimo-carbon-list>\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 {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {TaskListComponent} from './task-list/task-list.component';\nimport {ROLE_USER} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'tasks',\n component: TaskListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Tasks', roles: [ROLE_USER]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TaskRoutingModule {}\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 {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {\n CamundaFormModule,\n CarbonListModule,\n FormIoModule,\n ModalModule,\n PageHeaderModule,\n SearchableDropdownSelectModule,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {HttpLoaderFactory} from '@valtimo/config';\nimport {FormLinkModule} from '@valtimo/form-link';\nimport {ContentSwitcherModule, LinkModule, TabsModule} from 'carbon-components-angular';\nimport {ToastrModule} from 'ngx-toastr';\nimport {AssignUserToTaskComponent} from './assign-user-to-task/assign-user-to-task.component';\nimport {TaskDetailModalComponent} from './task-detail-modal/task-detail-modal.component';\nimport {TaskListComponent} from './task-list/task-list.component';\nimport {TaskRoutingModule} from './task-routing.module';\n\n@NgModule({\n declarations: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],\n imports: [\n CommonModule,\n TaskRoutingModule,\n CarbonListModule,\n PageHeaderModule,\n WidgetModule,\n SpinnerModule,\n SearchableDropdownSelectModule,\n CamundaFormModule,\n BrowserAnimationsModule,\n FormsModule,\n ToastrModule.forRoot({\n positionClass: 'toast-bottom-full-width',\n preventDuplicates: true,\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n NgbModule,\n FormIoModule,\n ModalModule,\n LinkModule,\n FormLinkModule,\n TabsModule,\n ContentSwitcherModule,\n ],\n exports: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],\n})\nexport class TaskModule {}\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 task\n */\n\nexport * from './lib/models';\nexport * from './lib/task.service';\nexport * from './lib/task.module';\nexport * from './lib/task-detail-modal/task-detail-modal.component';\nexport * from './lib/task-list/task-list.component';\nexport * from './lib/assign-user-to-task/assign-user-to-task.component';\nexport * from './lib/task-permissions';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.TaskService","i2","i3","i4","take","i1","i4.TaskService","i8","i9","i10.AssignUserToTaskComponent","i5","i6.TaskService","i7","i12.TaskDetailModalComponent"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-task.mjs","sources":["../../../../projects/valtimo/task/src/lib/models/task.model.ts","../../../../projects/valtimo/task/src/lib/models/task-definition.model.ts","../../../../projects/valtimo/task/src/lib/models/task-list.model.ts","../../../../projects/valtimo/task/src/lib/models/index.ts","../../../../projects/valtimo/task/src/lib/services/task.service.ts","../../../../projects/valtimo/task/src/lib/services/task-list.service.ts","../../../../projects/valtimo/task/src/lib/services/task-list-sort.service.ts","../../../../projects/valtimo/task/src/lib/services/task-list-column.service.ts","../../../../projects/valtimo/task/src/lib/services/task-list-pagination.service.ts","../../../../projects/valtimo/task/src/lib/services/index.ts","../../../../projects/valtimo/task/src/lib/components/assign-user-to-task/assign-user-to-task.component.ts","../../../../projects/valtimo/task/src/lib/components/assign-user-to-task/assign-user-to-task.component.html","../../../../projects/valtimo/task/src/lib/components/task-detail-modal/task-detail-modal.component.ts","../../../../projects/valtimo/task/src/lib/components/task-detail-modal/task-detail-modal.component.html","../../../../projects/valtimo/task/src/lib/task-permissions.ts","../../../../projects/valtimo/task/src/lib/components/task-list/task-list.component.ts","../../../../projects/valtimo/task/src/lib/components/task-list/task-list.component.html","../../../../projects/valtimo/task/src/lib/task-routing.module.ts","../../../../projects/valtimo/task/src/lib/task.module.ts","../../../../projects/valtimo/task/src/public_api.ts","../../../../projects/valtimo/task/src/valtimo-task.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {User} from '@valtimo/config';\n\ninterface Task {\n assignee: string;\n caseDefinitionId: string;\n caseExecutionId: string;\n caseInstanceId: string;\n created: string;\n delegationState: any;\n description: string;\n due: string;\n executionId: string;\n followUp: any;\n formKey: string;\n formless: boolean;\n id: string;\n listItemFields: ListItemField[];\n name: string;\n owner: string;\n parentTaskId: string;\n priority: number;\n processDefinitionId: string;\n processInstanceId: string;\n suspended: boolean;\n taskDefinitionKey: string;\n tenantId: string;\n formLocation: string;\n businessKey: string;\n processDefinitionKey: string;\n valtimoAssignee: User;\n locked?: boolean;\n caseLocked?: boolean;\n}\n\ninterface ListItemField {\n key: string;\n value: string;\n label: string;\n}\n\ninterface AssigneeRequest {\n assignee: string;\n}\n\ntype TaskProcessLinkType = 'form' | 'form-flow';\n\ninterface TaskProcessLinkResult {\n processLinkId: string;\n type: TaskProcessLinkType;\n properties: {\n formFlowInstanceId?: string;\n formDefinitionId?: string;\n prefilledForm?: any;\n };\n}\n\ninterface SpecifiedTask {\n id: string;\n businessKey: string;\n processInstanceId: string;\n name: string;\n created: Date;\n items: {key: string; value: any}[];\n}\n\ninterface MappedSpecifiedTask {\n id: string;\n businessKey: string;\n processInstanceId: string;\n name: string;\n created?: string;\n locked?: boolean;\n caseLocked?: boolean;\n [key: string]: any;\n}\n\nexport {\n AssigneeRequest,\n ListItemField,\n Task,\n TaskProcessLinkResult,\n TaskProcessLinkType,\n SpecifiedTask,\n MappedSpecifiedTask,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormDefinition} from '@valtimo/form-management';\n\nexport interface TaskDefinition {\n id: string;\n name: string;\n formDefinition: FormDefinition | null;\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ListItem} from 'carbon-components-angular/dropdown/list-item.interface';\nimport {TaskListTab} from '@valtimo/config';\n\ninterface TaskPageParams {\n page: number;\n size: number;\n collectionSize?: number;\n sort?: string;\n}\n\nenum TaskListColumnDefaultSort {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\ninterface TaskListColumnEnum {\n [key: string]: string;\n}\n\ninterface TaskListColumnDisplayTypeParameters {\n enum?: TaskListColumnEnum;\n dateFormat?: string;\n}\n\ninterface TaskListColumnDisplayType {\n type: string;\n displayTypeParameters?: TaskListColumnDisplayTypeParameters;\n}\n\ninterface TaskListColumn {\n title?: string;\n key: string;\n path: string;\n displayType: TaskListColumnDisplayType;\n sortable: boolean;\n defaultSort?: TaskListColumnDefaultSort;\n order?: number;\n}\n\ntype TaskListColumnModalType = 'edit' | 'add';\n\ntype TaskListColumnModalCloseEvent = 'close' | 'refresh';\n\ninterface TaskListColumnListItem extends ListItem {\n key: string;\n}\n\ninterface TaskListParams {\n params: {\n selectedTaskType: TaskListTab;\n params: TaskPageParams;\n caseDefinitionName?: string;\n reload: boolean;\n };\n enableLoadingAnimation: boolean;\n}\n\nexport {\n TaskListColumn,\n TaskListColumnDisplayType,\n TaskListColumnDefaultSort,\n TaskListColumnModalType,\n TaskListColumnListItem,\n TaskListColumnModalCloseEvent,\n TaskListColumnDisplayTypeParameters,\n TaskListColumnEnum,\n TaskPageParams,\n TaskListParams,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './task.model';\nexport * from './task-definition.model';\nexport * from './task-list.model';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpParams, HttpResponse} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {\n AssigneeRequest,\n SpecifiedTask,\n Task,\n TaskListColumn,\n TaskPageParams,\n TaskProcessLinkResult,\n} from '../models';\nimport {\n BaseApiService,\n ConfigService,\n CustomTaskList,\n NamedUser,\n Page,\n TaskListTab,\n} from '@valtimo/config';\nimport {InterceptorSkip} from '@valtimo/security';\n\n@Injectable({providedIn: 'root'})\nexport class TaskService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public queryTasks(params?: any): Observable<HttpResponse<Array<Task>>> {\n return this.httpClient.get<Array<Task>>(this.getApiUrl('/v1/task'), {\n observe: 'response',\n params,\n });\n }\n\n public queryTasksPage(params?: any): Observable<Page<Task>> {\n return this.httpClient.get<Page<Task>>(this.getApiUrl('/v2/task'), {\n params,\n });\n }\n\n public queryTasksPageV3(\n assigneeFilter: TaskListTab = TaskListTab.ALL,\n pageParams: TaskPageParams,\n caseDefinitionName?: string\n ): Observable<Page<Task> | Page<SpecifiedTask>> {\n let httpParams = new HttpParams()\n .set('filter', assigneeFilter.toUpperCase())\n .set('page', pageParams.page)\n .set('size', pageParams.size);\n\n if (pageParams.sort) {\n httpParams = httpParams.append('sort', pageParams.sort);\n }\n\n if (caseDefinitionName) {\n return this.httpClient.post<Page<SpecifiedTask>>(\n this.getApiUrl('/v3/task'),\n {\n caseDefinitionName,\n },\n {params: httpParams}\n );\n }\n\n return this.httpClient.post<Page<Task>>(this.getApiUrl('/v3/task'), {}, {params: httpParams});\n }\n\n public getTasks(): Observable<Task[]> {\n return this.httpClient.get<Task[]>(this.getApiUrl('/v1/task?filter=all`'));\n }\n\n public getTask(id: string): Observable<any> {\n return this.httpClient.get(this.getApiUrl(`/v1/task/${id}`));\n }\n\n public getCandidateUsers(id: string): Observable<NamedUser[]> {\n return this.httpClient.get<NamedUser[]>(this.getApiUrl(`/v2/task/${id}/candidate-user`));\n }\n\n public assignTask(id: string, assigneeRequest: AssigneeRequest): Observable<any> {\n return this.httpClient.post(this.getApiUrl(`/v1/task/${id}/assign`), assigneeRequest);\n }\n\n public unassignTask(id: string): Observable<any> {\n return this.httpClient.post(this.getApiUrl(`/v1/task/${id}/unassign`), null);\n }\n\n public completeTask(id: string, variables: Map<string, any>): Observable<any> {\n return this.httpClient.post(this.getApiUrl(`/v1/task/${id}/complete`), {\n variables,\n filesToDelete: [],\n });\n }\n\n public getTaskProcessLink(taskId: string): Observable<TaskProcessLinkResult> {\n return this.httpClient.get<TaskProcessLinkResult>(\n this.getApiUrl(`/v2/process-link/task/${taskId}`),\n {\n headers: {[InterceptorSkip]: '404'},\n }\n );\n }\n\n public getTaskListColumns(caseDefinitionName: string): Observable<TaskListColumn[]> {\n return this.httpClient.get<TaskListColumn[]>(\n this.getApiUrl(`/v1/case/${caseDefinitionName}/task-list-column`)\n );\n }\n\n public getConfigCustomTaskList(): CustomTaskList {\n return this.configService.config.customTaskList;\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {TaskService} from './task.service';\nimport {TaskListTab} from '@valtimo/config';\n\n@Injectable()\nexport class TaskListService {\n private readonly _ALL_CASES_ID = 'ALL_CASES';\n private readonly _caseDefinitionName$ = new BehaviorSubject<string | null>(null);\n private readonly _selectedTaskType$ = new BehaviorSubject<TaskListTab>(TaskListTab.MINE);\n private readonly _loadingStateForCaseDefinition$ = new BehaviorSubject<boolean>(false);\n\n public get caseDefinitionName$(): Observable<string | null> {\n return this._caseDefinitionName$.asObservable();\n }\n\n public get selectedTaskType$(): Observable<TaskListTab> {\n return this._selectedTaskType$.asObservable();\n }\n\n public get selectedTaskType(): TaskListTab {\n return this._selectedTaskType$.getValue();\n }\n\n public get loadingStateForCaseDefinition$(): Observable<boolean> {\n return this._loadingStateForCaseDefinition$.asObservable();\n }\n\n public get ALL_CASES_ID(): string {\n return this._ALL_CASES_ID;\n }\n\n constructor(private readonly taskService: TaskService) {}\n\n public setSelectedTaskType(type: TaskListTab): void {\n this._selectedTaskType$.next(type);\n }\n\n public setCaseDefinitionName(caseDefinitionName: string): void {\n this._loadingStateForCaseDefinition$.next(true);\n this._caseDefinitionName$.next(caseDefinitionName);\n }\n\n public setLoadingStateForCaseDefinition(loading: boolean): void {\n this._loadingStateForCaseDefinition$.next(loading);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {SortState, TaskListTab} from '@valtimo/config';\nimport {TaskService} from './task.service';\nimport {map, take} from 'rxjs/operators';\nimport {TaskListService} from './task-list.service';\n\n@Injectable()\nexport class TaskListSortService {\n private readonly _sortState$ = new BehaviorSubject<{[key in TaskListTab]: SortState | null}>({\n [TaskListTab.ALL]: this._defaultSortState,\n [TaskListTab.MINE]: this._defaultSortState,\n [TaskListTab.OPEN]: this._defaultSortState,\n });\n\n private readonly _sortStateForCurrentTaskType$: Observable<SortState> = combineLatest([\n this.taskListService.selectedTaskType$,\n this._sortState$,\n ]).pipe(map(([selectedTaskType, sortStates]) => sortStates[selectedTaskType]));\n\n public get sortStateForCurrentTaskType$(): Observable<SortState> {\n return this._sortStateForCurrentTaskType$;\n }\n\n public get sortStringForCurrentTaskType$(): Observable<string | null> {\n return this.sortStateForCurrentTaskType$.pipe(\n map(sortState => (sortState ? this.getSortString(sortState) : null))\n );\n }\n\n private get _defaultSortState(): SortState | null {\n return this.taskService.getConfigCustomTaskList()?.defaultSortedColumn || null;\n }\n\n constructor(\n private readonly taskService: TaskService,\n private readonly taskListService: TaskListService\n ) {}\n\n public updateSortState(taskType: TaskListTab, updatedSortState: SortState): void {\n this._sortState$.pipe(take(1)).subscribe(sortState => {\n this._sortState$.next({\n ...sortState,\n [taskType]: {...sortState[taskType], ...updatedSortState},\n });\n });\n }\n\n public updateSortStates(updatedSortState: SortState): void {\n this._sortState$.pipe(take(1)).subscribe(sortStates => {\n const sortStatesCopy = {...sortStates};\n\n Object.keys(sortStates).forEach(taskType => {\n sortStatesCopy[taskType] = {...sortStatesCopy[taskType], ...updatedSortState};\n });\n\n this._sortState$.next(sortStatesCopy);\n });\n }\n\n public clearSortStates(): void {\n this._sortState$.pipe(take(1)).subscribe(sortStates => {\n const sortStatesCopy = {...sortStates};\n\n Object.keys(sortStates).forEach(taskType => {\n sortStatesCopy[taskType] = null;\n });\n\n this._sortState$.next(sortStatesCopy);\n });\n }\n\n public resetDefaultSortStates(): void {\n this._sortState$.pipe(take(1)).subscribe(sortStates => {\n const sortStatesCopy = {...sortStates};\n\n Object.keys(sortStates).forEach(taskType => {\n sortStatesCopy[taskType] = this._defaultSortState;\n });\n\n this._sortState$.next(sortStatesCopy);\n });\n }\n\n private getSortString(sort: SortState | null): string {\n return `${sort.state.name},${sort.state.direction}`;\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ColumnConfig, ViewType} from '@valtimo/components';\nimport {BehaviorSubject, filter, Observable, switchMap, tap} from 'rxjs';\nimport {TaskService} from './task.service';\nimport {TaskListColumn} from '../models';\nimport {TaskListService} from './task-list.service';\nimport {TaskListSortService} from './task-list-sort.service';\n\n@Injectable()\nexport class TaskListColumnService {\n private readonly _DEFAULT_TASK_LIST_FIELDS: ColumnConfig[] = [\n {\n key: 'created',\n label: `task-list.fieldLabels.created`,\n viewType: ViewType.TEXT,\n sortable: true,\n },\n {\n key: 'name',\n label: `task-list.fieldLabels.name`,\n viewType: ViewType.TEXT,\n sortable: true,\n },\n {\n key: 'valtimoAssignee.fullName',\n label: `task-list.fieldLabels.valtimoAssignee.fullName`,\n viewType: ViewType.TEXT,\n },\n {\n key: 'due',\n label: `task-list.fieldLabels.due`,\n viewType: ViewType.TEXT,\n sortable: true,\n },\n {\n key: 'context',\n label: `task-list.fieldLabels.context`,\n viewType: ViewType.TEXT,\n },\n ];\n\n private readonly _DEFAULT_SPECIFIED_TASK_LIST_FIELDS: ColumnConfig[] = [\n {\n key: 'createTime',\n label: `task-list.fieldLabels.created`,\n viewType: ViewType.TEXT,\n sortable: true,\n },\n {\n key: 'name',\n label: `task-list.fieldLabels.name`,\n viewType: ViewType.TEXT,\n sortable: true,\n },\n {\n key: 'assignee',\n label: `task-list.fieldLabels.valtimoAssignee.fullName`,\n viewType: ViewType.TEXT,\n },\n {\n key: 'dueDate',\n label: `task-list.fieldLabels.due`,\n viewType: ViewType.TEXT,\n sortable: true,\n },\n ];\n\n private readonly _fields$ = new BehaviorSubject<ColumnConfig[]>(this._DEFAULT_TASK_LIST_FIELDS);\n\n private get hasCustomConfigTaskList(): boolean {\n return !!this.taskService.getConfigCustomTaskList();\n }\n\n public get fields$(): Observable<ColumnConfig[]> {\n return this._fields$.asObservable();\n }\n\n public get taskListColumnsForCase$(): Observable<TaskListColumn[]> {\n return this.taskListService.caseDefinitionName$.pipe(\n tap(caseDefinitionName => {\n if (caseDefinitionName === this.taskListService.ALL_CASES_ID) {\n this.resetTaskListFields();\n }\n }),\n filter(\n caseDefinitionName =>\n !!caseDefinitionName && caseDefinitionName !== this.taskListService.ALL_CASES_ID\n ),\n switchMap(caseDefinitionName => this.taskService.getTaskListColumns(caseDefinitionName)),\n tap(taskListColumns => {\n if (taskListColumns.length === 0) {\n this.taskListSortService.updateSortStates({\n isSorting: true,\n state: {\n name: this._DEFAULT_SPECIFIED_TASK_LIST_FIELDS[0].key,\n direction: 'DESC',\n },\n });\n this._fields$.next(this._DEFAULT_SPECIFIED_TASK_LIST_FIELDS);\n } else {\n this._fields$.next(this.mapTaskListColumnToColumnConfig(taskListColumns));\n }\n }),\n tap(() => this.taskListService.setLoadingStateForCaseDefinition(false))\n );\n }\n\n constructor(\n private readonly taskService: TaskService,\n private readonly taskListService: TaskListService,\n private readonly taskListSortService: TaskListSortService\n ) {}\n\n public resetTaskListFields(): void {\n if (this.hasCustomConfigTaskList) {\n this.setFieldsToCustomTaskListFields();\n } else {\n this.setFieldsToDefaultTaskListFields();\n }\n\n this.taskListSortService.resetDefaultSortStates();\n this.taskListService.setLoadingStateForCaseDefinition(false);\n }\n\n private setFieldsToCustomTaskListFields(): void {\n const customTaskListFields = this.taskService.getConfigCustomTaskList().fields;\n\n if (customTaskListFields) {\n this._fields$.next(\n customTaskListFields.map((column, index) => ({\n key: column.propertyName,\n label: `task-list.fieldLabels.${column.translationKey}`,\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n ...(column.enum && {enum: column.enum}),\n }))\n );\n }\n }\n\n private setFieldsToDefaultTaskListFields(): void {\n this._fields$.next(this._DEFAULT_TASK_LIST_FIELDS);\n }\n\n private mapTaskListColumnToColumnConfig(\n taskListColumns: Array<TaskListColumn>\n ): Array<ColumnConfig> {\n const hasDefaultSort = !!taskListColumns.find(column => column.defaultSort);\n const firstSortableColumn = taskListColumns.find(column => column.sortable);\n\n if (!hasDefaultSort && firstSortableColumn) {\n this.taskListSortService.updateSortStates({\n isSorting: true,\n state: {\n name: firstSortableColumn.key,\n direction: 'DESC',\n },\n });\n }\n\n if (!hasDefaultSort && !firstSortableColumn) {\n this.taskListSortService.clearSortStates();\n }\n\n return taskListColumns.map(column => {\n if (column.defaultSort) {\n this.taskListSortService.updateSortStates({\n isSorting: true,\n state: {\n name: column.key,\n direction: column.defaultSort,\n },\n });\n }\n\n return {\n viewType: this.getViewType(column.displayType.type),\n key: column.key,\n label: column.title || column.key,\n sortable: column.sortable,\n ...(column?.displayType?.displayTypeParameters?.enum && {\n enum: column?.displayType?.displayTypeParameters?.enum,\n }),\n ...(column?.displayType?.displayTypeParameters?.dateFormat && {\n format: column?.displayType?.displayTypeParameters?.dateFormat,\n }),\n };\n });\n }\n\n private getViewType(taskListColumnColumnDisplayType: string): string {\n switch (taskListColumnColumnDisplayType) {\n case 'arrayCount':\n return 'relatedFiles';\n case 'underscoresToSpaces':\n return 'stringReplaceUnderscore';\n default:\n return taskListColumnColumnDisplayType;\n }\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {TaskPageParams} from '../models';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {TaskListTab} from '@valtimo/config';\nimport {map, take} from 'rxjs/operators';\nimport {TaskListService} from './task-list.service';\n\n@Injectable()\nexport class TaskListPaginationService {\n private readonly _pagination$ = new BehaviorSubject<{[key in TaskListTab]: TaskPageParams}>({\n [TaskListTab.ALL]: this.getDefaultPagination(),\n [TaskListTab.MINE]: this.getDefaultPagination(),\n [TaskListTab.OPEN]: this.getDefaultPagination(),\n });\n\n private readonly _paginationForCurrentTaskType$: Observable<TaskPageParams> = combineLatest([\n this.taskListService.selectedTaskType$,\n this._pagination$,\n ]).pipe(map(([selectedTaskType, pagination]) => pagination[selectedTaskType]));\n\n public get paginationForCurrentTaskType$(): Observable<TaskPageParams> {\n return this._paginationForCurrentTaskType$;\n }\n\n public get paginationForCurrentTaskTypeForList$(): Observable<TaskPageParams> {\n return this._paginationForCurrentTaskType$.pipe(\n map(pagination => ({...pagination, page: pagination?.page + 1 || 1}))\n );\n }\n\n constructor(private readonly taskListService: TaskListService) {}\n\n public updateTaskPagination(\n taskType: TaskListTab,\n updatedPagination: Partial<TaskPageParams>\n ): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n const currentPagination = pagination[taskType];\n this._pagination$.next({\n ...pagination,\n [taskType]: {...currentPagination, ...updatedPagination},\n });\n });\n }\n\n public getLastAvailablePage(page: number, size: number, collectionSize: number): number {\n if (this.isNumber(page) && this.isNumber(size) && this.isNumber(collectionSize) && page !== 0) {\n const amountOfPages = Math.ceil(collectionSize / size);\n\n if (page + 1 > amountOfPages) {\n return amountOfPages - 1;\n }\n }\n\n return page;\n }\n\n private isNumber(value: any): boolean {\n return typeof value === 'number';\n }\n\n private getDefaultPagination(): TaskPageParams {\n return {\n page: 0,\n size: 10,\n };\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './task.service';\nexport * from './task-list.service';\nexport * from './task-list-column.service';\nexport * from './task-list-pagination.service';\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {DropdownItem} from '@valtimo/components';\nimport {BehaviorSubject, combineLatest, Subscription, take, tap} from 'rxjs';\nimport {TaskService} from '../../services';\nimport {NamedUser} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-assign-user-to-task',\n templateUrl: './assign-user-to-task.component.html',\n styleUrls: ['./assign-user-to-task.component.scss'],\n})\nexport class AssignUserToTaskComponent implements OnInit, OnChanges, OnDestroy {\n @Input() taskId: string;\n @Input() assigneeId: string;\n @Output() assignmentOfTaskChanged = new EventEmitter();\n\n public assignedIdOnServer$ = new BehaviorSubject<string | null>(null);\n public assignedUserFullName$ = new BehaviorSubject<string | null>(null);\n public candidateUsersForTask$ = new BehaviorSubject<NamedUser[] | undefined>(undefined);\n public disabled$ = new BehaviorSubject<boolean>(true);\n public userIdToAssign: string | null = null;\n private _subscriptions = new Subscription();\n\n constructor(private taskService: TaskService) {}\n\n public ngOnInit(): void {\n this._subscriptions.add(\n this.taskService.getCandidateUsers(this.taskId).subscribe(candidateUsers => {\n this.candidateUsersForTask$.next(candidateUsers);\n if (this.assigneeId) {\n this.assignedIdOnServer$.next(this.assigneeId);\n this.userIdToAssign = this.assigneeId;\n this.assignedUserFullName$.next(\n this.getAssignedUserName(candidateUsers, this.assigneeId)\n );\n }\n this.enable();\n })\n );\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.candidateUsersForTask$.pipe(take(1)).subscribe(candidateUsers => {\n const currentUserId = changes.assigneeId?.currentValue || this.assigneeId;\n this.assignedIdOnServer$.next(currentUserId || null);\n this.userIdToAssign = currentUserId || null;\n this.assignedUserFullName$.next(\n this.getAssignedUserName(candidateUsers ?? [], currentUserId)\n );\n });\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public assignTask(userId: string): void {\n this.disable();\n combineLatest([\n this.candidateUsersForTask$,\n this.taskService.assignTask(this.taskId, {assignee: userId}),\n ])\n .pipe(\n take(1),\n tap(([candidateUsers]) => {\n this.userIdToAssign = userId;\n this.assignedIdOnServer$.next(userId);\n this.assignedUserFullName$.next(this.getAssignedUserName(candidateUsers ?? [], userId));\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n public unassignTask(): void {\n this.disable();\n this.taskService\n .unassignTask(this.taskId)\n .pipe(\n tap(() => {\n this.clear();\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n public getAssignedUserName(users: NamedUser[], userId: string): string {\n if (users && userId) {\n const findUser = users.find(user => user.id === userId);\n return findUser ? findUser.label : userId;\n }\n return userId || '-';\n }\n\n public mapUsersForDropdown(users: NamedUser[]): DropdownItem[] {\n return (\n users &&\n users\n .map(user => ({...user, lastName: user.lastName?.split(' ').splice(-1)[0] || ''}))\n .sort((a, b) => a.lastName.localeCompare(b.lastName))\n .map(user => ({text: user.label, id: user.id}))\n );\n }\n\n private clear(): void {\n this.assignedIdOnServer$.next(null);\n this.userIdToAssign = null;\n }\n\n private emitChange(): void {\n this.assignmentOfTaskChanged.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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"row mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <valtimo-searchable-dropdown-select\n *ngIf=\"obs.candidateUsers; else loading\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userIdToAssign === obs.idOnServer && obs.idOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignTask.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormIoStateService,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n ValtimoModalService,\n} from '@valtimo/components';\nimport {Task, TaskProcessLinkType} from '../../models';\nimport {FormFlowComponent, FormSubmissionResult, ProcessLinkService} from '@valtimo/process-link';\nimport {FormioForm} from '@formio/angular';\nimport moment from 'moment';\nimport {ToastrService} from 'ngx-toastr';\nimport {map, take} from 'rxjs/operators';\nimport {TaskService} from '../../services/task.service';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n Observable,\n Subscription,\n tap,\n} from 'rxjs';\nimport {UserProviderService} from '@valtimo/security';\nimport {DocumentService} from '@valtimo/document';\nimport {TranslateService} from '@ngx-translate/core';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-task-detail-modal',\n templateUrl: './task-detail-modal.component.html',\n styleUrls: ['./task-detail-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TaskDetailModalComponent implements AfterViewInit, OnDestroy {\n @ViewChild('form') form: FormioComponent;\n @ViewChild('formFlow') formFlow: FormFlowComponent;\n @ViewChild('taskDetailModal') modal: ModalComponent;\n @Output() formSubmit = new EventEmitter();\n @Output() assignmentOfTaskChanged = new EventEmitter();\n\n public readonly task$ = new BehaviorSubject<Task | null>(null);\n public readonly formDefinition$ = new BehaviorSubject<FormioForm>(undefined);\n public readonly formFlowInstanceId$ = new BehaviorSubject<string>(undefined);\n public readonly page$ = new BehaviorSubject<any>(null);\n public readonly formioOptions$ = new BehaviorSubject<ValtimoFormioOptions>(null);\n public readonly errorMessage$ = new BehaviorSubject<string>(undefined);\n public readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));\n public readonly formIoFormData$ = new BehaviorSubject<any>(null);\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n\n private readonly taskProcessLinkType$ = new BehaviorSubject<TaskProcessLinkType | null>(null);\n public readonly processLinkIsForm$ = this.taskProcessLinkType$.pipe(map(type => type === 'form'));\n public readonly processLinkIsFormFlow$ = this.taskProcessLinkType$.pipe(\n map(type => type === 'form-flow')\n );\n\n private readonly processLinkId$ = new BehaviorSubject<string>(undefined);\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly toastr: ToastrService,\n private readonly processLinkService: ProcessLinkService,\n private readonly router: Router,\n private readonly taskService: TaskService,\n private readonly userProviderService: UserProviderService,\n private readonly modalService: ValtimoModalService,\n private readonly stateService: FormIoStateService,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService\n ) {\n const options = new FormioOptionsImpl();\n options.disableAlerts = true;\n this.formioOptions$.next(options);\n }\n\n public ngAfterViewInit(): void {\n this._subscriptions.add(\n this.modal.modalShowing$\n .pipe(\n distinctUntilChanged(),\n tap(modalShowing => {\n if (!modalShowing) {\n if (this.formFlow) {\n this.formFlow.saveData();\n }\n }\n })\n )\n .subscribe()\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public openTaskDetails(task: Task): void {\n this.resetTaskProcessLinkType();\n this.resetFormDefinition();\n this.getTaskProcessLink(task.id);\n this.setDocumentDefinitionNameInService(task);\n const documentId = task.businessKey;\n this.stateService.setDocumentId(documentId);\n\n this.task$.next(task);\n this.page$.next({\n title: task.name,\n subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${task.created}`,\n });\n\n //only load from formlink when process link failed for backwards compatibility\n if (!this.taskProcessLinkType$.getValue()) {\n this.modal.show();\n }\n }\n\n public gotoProcessLinkScreen(): void {\n this.modal.hide();\n this.router.navigate(['process-links']);\n }\n\n public onChange(event: any): void {\n if (event.data) {\n this.formIoFormData$.next(event.data);\n }\n }\n\n public onSubmit(submission: FormioSubmission): void {\n if (submission.data) {\n this.formIoFormData$.next(submission.data);\n }\n\n combineLatest([this.processLinkId$, this.taskProcessLinkType$, this.task$])\n .pipe(take(1))\n .subscribe(([processLinkId, taskProcessLinkType, task]) => {\n if (taskProcessLinkType === 'form') {\n if (processLinkId) {\n this.processLinkService\n .submitForm(processLinkId, submission.data, task.businessKey, task.id)\n .subscribe({\n next: (_: FormSubmissionResult) => {\n this.completeTask();\n },\n error: errors => {\n this.form.showErrors(errors);\n },\n });\n }\n }\n });\n }\n\n public completeTask(): void {\n this.task$.pipe(take(1)).subscribe(task => {\n this.toastr.success(\n `${task.name} ${this.translateService.instant('taskDetail.taskCompleted')}`\n );\n this.modal.hide();\n this.task$.next(null);\n this.formSubmit.emit();\n });\n }\n\n private resetFormDefinition(): void {\n this.formDefinition$.next(null);\n this.loading$.next(true);\n }\n\n private getTaskProcessLink(taskId: string): void {\n this.taskService.getTaskProcessLink(taskId).subscribe({\n next: res => {\n if (res != null) {\n switch (res?.type) {\n case 'form':\n this.taskProcessLinkType$.next('form');\n this.processLinkId$.next(res.processLinkId);\n this.setFormDefinitionAndOpenModal(res.properties.prefilledForm);\n break;\n case 'form-flow':\n this.taskProcessLinkType$.next('form-flow');\n this.formFlowInstanceId$.next(res.properties.formFlowInstanceId);\n break;\n }\n this.loading$.next(false);\n }\n },\n error: _ => {\n this.loading$.next(false);\n },\n });\n }\n\n private resetTaskProcessLinkType(): void {\n this.taskProcessLinkType$.next(null);\n this.processLinkId$.next(null);\n }\n\n private setFormDefinitionAndOpenModal(formDefinition: any): void {\n this.taskProcessLinkType$.next('form');\n this.formDefinition$.next(formDefinition);\n this.modal.show();\n }\n\n private setDocumentDefinitionNameInService(task: Task): void {\n this.documentService\n .getProcessDocumentDefinitionFromProcessInstanceId(task.processInstanceId)\n .subscribe(processDocumentDefinition => {\n const documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.modalService.setDocumentDefinitionName(documentDefinitionName);\n this.stateService.setDocumentDefinitionName(documentDefinitionName);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #taskDetailModal\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n formDefinition: formDefinition$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async\n } as obs\"\n elementId=\"taskDetailModal\"\n [title]=\"obs.page?.title\"\n [subtitle]=\"obs.page?.subtitle\"\n [templateBelowSubtitle]=\"assignUserToTask\"\n>\n <div body *ngIf=\"obs.formDefinition && obs.processLinkIsForm\">\n <valtimo-form-io\n #form\n [form]=\"obs.formDefinition\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n </div>\n <div body *ngIf=\"obs.processLinkIsFormFlow\">\n <valtimo-form-flow\n #formFlow\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"obs.loading\">\n <div class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n </div>\n <div\n body\n *ngIf=\"\n obs.loading === false && !obs.formDefinition && !obs.formFlowInstanceId && !obs.errorMessage\n \"\n >\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>\n <div body *ngIf=\"obs.errorMessage\">\n <div class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n </div>\n <div footer>\n <div class=\"mb-0 p-3 text-center\" *ngIf=\"!!obs.formDefinition\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoProcessLinkScreen()\"\n id=\"process-link-button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n\n<ng-template #assignUserToTask>\n <ng-container *ngIf=\"task$ | async as task\">\n <valtimo-assign-user-to-task\n *ngIf=\"task && assignmentOfTaskChanged\"\n [taskId]=\"task.id\"\n [assigneeId]=\"task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n </ng-container>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {PermissionRequest} from '@valtimo/access-control';\n\nenum PERMISSION_ACTION {\n assign = 'assign',\n view = 'view',\n}\n\nenum TASK_DETAIL_PERMISSION_RESOURCE {\n jsonSchemaDocument = 'com.ritense.document.domain.impl.JsonSchemaDocument',\n task = 'com.ritense.valtimo.camunda.domain.CamundaTask',\n}\n\nconst CAN_ASSIGN_TASK_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.assign,\n resource: TASK_DETAIL_PERMISSION_RESOURCE.task,\n};\n\nconst CAN_VIEW_TASK_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.view,\n resource: TASK_DETAIL_PERMISSION_RESOURCE.task,\n};\n\nconst CAN_VIEW_CASE_PERMISSION: PermissionRequest = {\n action: PERMISSION_ACTION.view,\n resource: TASK_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n};\n\nexport {\n CAN_ASSIGN_TASK_PERMISSION,\n CAN_VIEW_TASK_PERMISSION,\n CAN_VIEW_CASE_PERMISSION,\n TASK_DETAIL_PERMISSION_RESOURCE,\n};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {TaskService} from '../../services/task.service';\nimport moment from 'moment';\nimport {\n MappedSpecifiedTask,\n SpecifiedTask,\n Task,\n TaskListParams,\n TaskPageParams,\n} from '../../models';\nimport {TaskDetailModalComponent} from '../task-detail-modal/task-detail-modal.component';\nimport {BehaviorSubject, combineLatest, Observable, of, switchMap, tap} from 'rxjs';\nimport {ConfigService, Page, SortState, TaskListTab} from '@valtimo/config';\nimport {DocumentService} from '@valtimo/document';\nimport {distinctUntilChanged, filter, map, take} from 'rxjs/operators';\nimport {PermissionService} from '@valtimo/access-control';\nimport {\n CAN_VIEW_CASE_PERMISSION,\n CAN_VIEW_TASK_PERMISSION,\n TASK_DETAIL_PERMISSION_RESOURCE,\n} from '../../task-permissions';\nimport {TaskListColumnService, TaskListPaginationService, TaskListService} from '../../services';\nimport {isEqual} from 'lodash';\nimport {ListItem} from 'carbon-components-angular';\nimport {TranslateService} from '@ngx-translate/core';\nimport {TaskListSortService} from '../../services/task-list-sort.service';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-task-list',\n templateUrl: './task-list.component.html',\n styleUrls: ['./task-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TaskListService,\n TaskListColumnService,\n TaskListPaginationService,\n TaskListSortService,\n ],\n})\nexport class TaskListComponent implements OnInit {\n @ViewChild('taskDetail') private readonly _taskDetail: TaskDetailModalComponent;\n\n public readonly selectedTaskType$ = this.taskListService.selectedTaskType$;\n public readonly fields$ = this.taskListColumnService.fields$;\n public readonly loadingTasks$ = new BehaviorSubject<boolean>(true);\n public readonly visibleTabs$ = new BehaviorSubject<Array<TaskListTab> | null>(null);\n\n private _enableLoadingAnimation$ = new BehaviorSubject<boolean>(true);\n\n public readonly cachedTasks$ = new BehaviorSubject<Task[] | MappedSpecifiedTask[] | null>(null);\n\n public readonly paginationForCurrentTaskTypeForList$ =\n this.taskListPaginationService.paginationForCurrentTaskTypeForList$;\n\n public readonly sortStateForCurrentTaskType$ =\n this.taskListSortService.sortStateForCurrentTaskType$;\n\n private readonly _reload$ = new BehaviorSubject<boolean>(true);\n\n public readonly tasks$: Observable<Task[] | MappedSpecifiedTask[]> = combineLatest([\n this.taskListService.loadingStateForCaseDefinition$,\n this.selectedTaskType$,\n this.taskListPaginationService.paginationForCurrentTaskType$,\n this.taskListSortService.sortStringForCurrentTaskType$,\n this.taskListService.caseDefinitionName$,\n this._enableLoadingAnimation$,\n this._reload$,\n ]).pipe(\n filter(([loadingStateForCaseDefinition]) => loadingStateForCaseDefinition === false),\n map(\n ([\n _,\n selectedTaskType,\n paginationForSelectedTaskType,\n sortStringForSelectedTaskType,\n caseDefinitionName,\n enableLoadingAnimation,\n reload,\n ]) =>\n this.getTaskListParams(\n paginationForSelectedTaskType,\n sortStringForSelectedTaskType,\n selectedTaskType,\n caseDefinitionName,\n enableLoadingAnimation,\n reload\n )\n ),\n distinctUntilChanged((previous, current) => isEqual(previous.params, current.params)),\n tap(({enableLoadingAnimation}) => {\n if (enableLoadingAnimation) this.loadingTasks$.next(true);\n }),\n switchMap(({params}) =>\n combineLatest([\n this.taskService.queryTasksPageV3(\n params.selectedTaskType,\n params.params,\n params.caseDefinitionName\n ),\n of(!!params.caseDefinitionName),\n ])\n ),\n switchMap(([tasksResult, isSpecified]) =>\n this.getTaskListPermissionsRequest(tasksResult, isSpecified)\n ),\n map(([isSpecified, taskResult, canViewTaskPermissions, canViewCasePermissions]) => {\n this.updateTaskListPaginationAfterResponse(Number(taskResult.totalElements));\n\n return this.mapTasksForList(\n isSpecified,\n taskResult,\n canViewTaskPermissions,\n canViewCasePermissions\n );\n }),\n tap(tasks => {\n this.cachedTasks$.next(tasks);\n this.loadingTasks$.next(false);\n this.disableLoadingAnimation();\n })\n );\n\n public readonly loadingCaseListItems$ = new BehaviorSubject<boolean>(true);\n private readonly _selectedCaseDefinitionId$ = new BehaviorSubject<string>(\n this.taskListService.ALL_CASES_ID\n );\n public readonly caseListItems$: Observable<ListItem[]> = combineLatest([\n this.documentService.getAllDefinitions(),\n this._selectedCaseDefinitionId$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([documentDefinitionRes, selectedCaseDefinitionId]) => [\n {\n content: this.translateService.instant('task-list.allCases'),\n id: this.taskListService.ALL_CASES_ID,\n selected: selectedCaseDefinitionId === this.taskListService.ALL_CASES_ID,\n },\n ...documentDefinitionRes.content.map(documentDefinition => ({\n id: documentDefinition.id.name,\n content: documentDefinition?.schema?.title,\n selected: documentDefinition.id.name === selectedCaseDefinitionId,\n })),\n ]),\n tap(() => this.loadingCaseListItems$.next(false))\n );\n\n public readonly taskListColumnsForCase$ = this.taskListColumnService.taskListColumnsForCase$;\n\n private readonly _DEFAULT_TASK_LIST_TABS: TaskListTab[] = [\n TaskListTab.MINE,\n TaskListTab.OPEN,\n TaskListTab.ALL,\n ];\n\n constructor(\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly permissionService: PermissionService,\n private readonly router: Router,\n private readonly taskService: TaskService,\n private readonly taskListService: TaskListService,\n private readonly translateService: TranslateService,\n private readonly taskListColumnService: TaskListColumnService,\n private readonly taskListPaginationService: TaskListPaginationService,\n private readonly taskListSortService: TaskListSortService\n ) {}\n\n public ngOnInit(): void {\n this.taskListColumnService.resetTaskListFields();\n this.setVisibleTabs();\n }\n\n public paginationClicked(page: number, type: TaskListTab | string): void {\n this.taskListPaginationService.updateTaskPagination(type as TaskListTab, {page: page - 1});\n }\n\n public paginationSet(newSize: number): void {\n combineLatest([\n this.taskListPaginationService.paginationForCurrentTaskType$,\n this.taskListService.selectedTaskType$,\n ])\n .pipe(take(1))\n .subscribe(([pagination, selectedTaskType]) => {\n this.taskListPaginationService.updateTaskPagination(selectedTaskType, {\n size: Number(newSize),\n page: this.taskListPaginationService.getLastAvailablePage(\n pagination.page,\n Number(newSize),\n pagination.collectionSize\n ),\n });\n });\n }\n\n public tabChange(tab: TaskListTab | string): void {\n this.taskListService.selectedTaskType$.pipe(take(1)).subscribe(selectedTaskType => {\n if (selectedTaskType !== tab) {\n this.enableLoadingAnimation();\n this.taskListService.setSelectedTaskType(tab as TaskListTab);\n this.taskListPaginationService.updateTaskPagination(tab as TaskListTab, {page: 0});\n }\n });\n }\n\n public openRelatedCase(event: MouseEvent, index: number): void {\n event.stopPropagation();\n\n this.cachedTasks$.pipe(take(1)).subscribe(cachedTasks => {\n const currentTask = cachedTasks && cachedTasks[index];\n\n if (currentTask && !currentTask.caseLocked) {\n this.documentService\n .getDocument(currentTask.businessKey)\n .pipe(take(1))\n .subscribe(document => {\n this.router.navigate([\n `/dossiers/${document.definitionId?.name}/document/${currentTask.businessKey}`,\n ]);\n });\n }\n });\n }\n\n public rowOpenTaskClick(task): void | boolean {\n return !task.endTime && !task.locked ? this._taskDetail.openTaskDetails(task) : false;\n }\n\n public sortChanged(sortState: SortState): void {\n this.taskListSortService.updateSortState(this.taskListService.selectedTaskType, sortState);\n }\n\n public setCaseDefinition(definition: {item: {id: string}}): void {\n if (definition.item.id) {\n this.loadingTasks$.next(true);\n this.taskListService.setCaseDefinitionName(definition.item.id);\n }\n }\n\n public reload(): void {\n this.enableLoadingAnimation();\n this._reload$.next(!this._reload$.getValue());\n }\n\n private updateTaskListPaginationAfterResponse(newCollectionSize: number): void {\n this.taskListPaginationService.paginationForCurrentTaskType$\n .pipe(take(1))\n .subscribe(currentPagination => {\n this.taskListPaginationService.updateTaskPagination(this.taskListService.selectedTaskType, {\n collectionSize: Number(newCollectionSize),\n page: this.taskListPaginationService.getLastAvailablePage(\n currentPagination.page,\n currentPagination.size,\n newCollectionSize\n ),\n });\n });\n }\n\n private setVisibleTabs(): void {\n const visibleTabs = this.configService.config?.visibleTaskListTabs;\n\n if (visibleTabs) {\n this.visibleTabs$.next(visibleTabs);\n this.taskListService.setSelectedTaskType(visibleTabs[0]);\n } else {\n this.visibleTabs$.next(this._DEFAULT_TASK_LIST_TABS);\n this.taskListService.setSelectedTaskType(this._DEFAULT_TASK_LIST_TABS[0]);\n }\n }\n\n private disableLoadingAnimation(): void {\n this._enableLoadingAnimation$.next(false);\n }\n\n private enableLoadingAnimation(): void {\n this._enableLoadingAnimation$.next(true);\n }\n\n private getTaskListParams(\n paginationForSelectedTaskType: TaskPageParams,\n sortStringForSelectedTaskType: string,\n selectedTaskType: TaskListTab,\n caseDefinitionName: string,\n enableLoadingAnimation: boolean,\n reload: boolean\n ): TaskListParams {\n const params = {\n ...paginationForSelectedTaskType,\n ...(sortStringForSelectedTaskType && {sort: sortStringForSelectedTaskType}),\n };\n\n delete params.collectionSize;\n\n return {\n params: {\n reload,\n selectedTaskType,\n params,\n ...(caseDefinitionName &&\n caseDefinitionName !== this.taskListService.ALL_CASES_ID && {caseDefinitionName}),\n },\n enableLoadingAnimation,\n };\n }\n\n private getTaskListPermissionsRequest(\n tasksResult: Page<Task> | Page<SpecifiedTask>,\n isSpecified: boolean\n ) {\n const taskResults = tasksResult.content;\n const hasTaskResults = Array.isArray(taskResults) && taskResults.length > 0;\n\n return combineLatest([\n of(isSpecified),\n of(tasksResult),\n hasTaskResults\n ? combineLatest(\n taskResults.map(task =>\n this.permissionService.requestPermission(CAN_VIEW_TASK_PERMISSION, {\n resource: TASK_DETAIL_PERMISSION_RESOURCE.task,\n identifier: !isSpecified ? (task as Task).id : (task as SpecifiedTask).id,\n })\n )\n )\n : of(null),\n hasTaskResults\n ? combineLatest(\n taskResults.map(task =>\n this.permissionService.requestPermission(CAN_VIEW_CASE_PERMISSION, {\n resource: TASK_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,\n identifier: task.businessKey,\n })\n )\n )\n : of(null),\n ]);\n }\n\n private mapTasksForList(\n isSpecified: boolean,\n tasks: Page<Task> | Page<SpecifiedTask>,\n canViewTaskPermissions: boolean[] | null,\n canViewCasePermissions: boolean[] | null\n ): Task[] | MappedSpecifiedTask[] {\n const MOMENT_FORMAT = 'DD MMM YYYY HH:mm';\n\n if (isSpecified) {\n return (tasks as Page<SpecifiedTask>).content.map((specifiedTask, specifiedTaskIndex) =>\n specifiedTask.items.reduce(\n (acc, curr) =>\n ({\n id: specifiedTask.id,\n businessKey: specifiedTask.businessKey,\n processInstanceId: specifiedTask.processInstanceId,\n name: specifiedTask.name,\n ...(moment(specifiedTask.created).isValid() && {\n created: moment(specifiedTask.created).format(MOMENT_FORMAT),\n }),\n ...(canViewTaskPermissions && {locked: !canViewTaskPermissions[specifiedTaskIndex]}),\n ...(canViewCasePermissions && {\n caseLocked: !canViewCasePermissions[specifiedTaskIndex],\n }),\n ...acc,\n [curr.key]: curr.value,\n }) as MappedSpecifiedTask,\n {}\n )\n ) as MappedSpecifiedTask[];\n }\n\n return (tasks as Page<Task>)?.content?.map((task, taskIndex) => {\n const createdDate = moment(task.created);\n const dueDate = moment(task.due);\n const taskCopy = {...task};\n\n if (task.due && dueDate.isValid()) taskCopy.due = dueDate.format(MOMENT_FORMAT);\n if (createdDate.isValid()) taskCopy.created = createdDate.format(MOMENT_FORMAT);\n if (canViewTaskPermissions) taskCopy.locked = !canViewTaskPermissions[taskIndex];\n if (canViewCasePermissions) taskCopy.caseLocked = !canViewCasePermissions[taskIndex];\n\n return taskCopy;\n }) as Task[];\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n loading: loadingTasks$ | async,\n selectedTaskType: selectedTaskType$ | async,\n tasks: tasks$ | async,\n fields: fields$ | async,\n visibleTabs: visibleTabs$ | async,\n pagination: paginationForCurrentTaskTypeForList$ | async,\n taskListColumnsForCase: taskListColumnsForCase$ | async,\n sortState: sortStateForCurrentTaskType$ | async\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n <ng-container\n *ngTemplateOutlet=\"\n tasksList;\n context: {\n obs: obs\n }\n \"\n ></ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksListLoading;\n context: {\n obs: obs\n }\n \"\n ></ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"reload()\"\n (assignmentOfTaskChanged)=\"reload()\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n<ng-template #configuredTabs let-selectedTaskType=\"selectedTaskType\" let-visibleTabs=\"visibleTabs\">\n <cds-tabs *ngIf=\"visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"selectedTaskType === tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n</ng-template>\n\n<ng-template #caseLink let-data=\"data\">\n <ng-container *ngIf=\"cachedTasks$ | async as cachedTasks\">\n <div *ngIf=\"cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link--disabled\"\n cdsLink\n href=\"javascript:void(0)\"\n ngbTooltip=\"{{ 'task-list.caseLocked' | translate }}\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n <div *ngIf=\"!cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tasksList let-obs=\"obs\">\n <valtimo-carbon-list\n *ngIf=\"!obs.loading\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [items]=\"obs.tasks\"\n [lastColumnTemplate]=\"caseLink\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"taskList\"\n lockedTooltipTranslationKey=\"task-list.rowLocked\"\n [initialSortState]=\"obs.sortState\"\n (paginationClicked)=\"paginationClicked($event, obs.selectedTaskType)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div tabs>\n <ng-container *ngIf=\"obs.visibleTabs\">\n <ng-container\n *ngTemplateOutlet=\"\n configuredTabs;\n context: {selectedTaskType: obs.selectedTaskType, visibleTabs: obs.visibleTabs}\n \"\n ></ng-container>\n </ng-container>\n </div>\n\n <valtimo-no-results\n [description]=\"'task-list.' + obs.selectedTaskType + '.noResultsDescription' | translate\"\n [title]=\"'task-list.' + obs.selectedTaskType + '.noResultsTitle' | translate\"\n >\n </valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tasksListLoading let-obs=\"obs\">\n <valtimo-carbon-list *ngIf=\"obs.loading\" [loading]=\"true\">\n <div tabs>\n <cds-tabs *ngIf=\"!obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n [heading]=\"'task-list.mine.title' | translate\"\n [active]=\"obs.selectedTaskType === 'mine'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.open.title' | translate\"\n [active]=\"obs.selectedTaskType === 'open'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.all.title' | translate\"\n [active]=\"obs.selectedTaskType === 'all'\"\n >\n </cds-tab>\n </cds-tabs>\n\n <cds-tabs *ngIf=\"obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of obs.visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"obs.selectedTaskType === tab\"\n ></cds-tab>\n </cds-tabs>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <cds-dropdown\n class=\"case-definition-selection\"\n *ngIf=\"{\n loadingCaseListItems: loadingCaseListItems$ | async,\n caseListItems: caseListItems$ | async\n } as obs\"\n [disabled]=\"obs.loadingCaseListItems || (obs.caseListItems || []).length === 1\"\n [skeleton]=\"obs.loadingCaseListItems\"\n (selected)=\"setCaseDefinition($event)\"\n >\n <cds-dropdown-list\n [items]=\"obs.caseListItems || []\"\n ></cds-dropdown-list></cds-dropdown></ng-template\n></ng-container>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {TaskListComponent} from './components/task-list/task-list.component';\nimport {ROLE_USER} from '@valtimo/config';\n\nconst routes: Routes = [\n {\n path: 'tasks',\n component: TaskListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Tasks', roles: [ROLE_USER]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TaskRoutingModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {\n CamundaFormModule,\n CarbonListModule,\n FormIoModule,\n ModalModule,\n PageHeaderModule,\n RenderInPageHeaderDirectiveModule,\n SearchableDropdownSelectModule,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {HttpLoaderFactory} from '@valtimo/config';\nimport {ProcessLinkModule} from '@valtimo/process-link';\nimport {\n ContentSwitcherModule,\n DropdownModule,\n LinkModule,\n TabsModule,\n} from 'carbon-components-angular';\nimport {ToastrModule} from 'ngx-toastr';\nimport {AssignUserToTaskComponent} from './components/assign-user-to-task/assign-user-to-task.component';\nimport {TaskDetailModalComponent} from './components/task-detail-modal/task-detail-modal.component';\nimport {TaskListComponent} from './components/task-list/task-list.component';\nimport {TaskRoutingModule} from './task-routing.module';\n\n@NgModule({\n declarations: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],\n imports: [\n CommonModule,\n TaskRoutingModule,\n CarbonListModule,\n PageHeaderModule,\n WidgetModule,\n SpinnerModule,\n SearchableDropdownSelectModule,\n CamundaFormModule,\n BrowserAnimationsModule,\n FormsModule,\n ToastrModule.forRoot({\n positionClass: 'toast-bottom-full-width',\n preventDuplicates: true,\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n NgbModule,\n FormIoModule,\n ModalModule,\n LinkModule,\n ProcessLinkModule,\n TabsModule,\n ContentSwitcherModule,\n RenderInPageHeaderDirectiveModule,\n DropdownModule,\n ],\n exports: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],\n})\nexport class TaskModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 task\n */\n\nexport * from './lib/models';\nexport * from './lib/services/task.service';\nexport * from './lib/task.module';\nexport * from './lib/components/task-detail-modal/task-detail-modal.component';\nexport * from './lib/components/task-list/task-list.component';\nexport * from './lib/components/assign-user-to-task/assign-user-to-task.component';\nexport * from './lib/task-permissions';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.TaskService","i2.TaskListService","i3.TaskListSortService","i1.TaskListService","take","i2","i3","i4","i1","i4.TaskService","i10.AssignUserToTaskComponent","filter","distinctUntilChanged","i5.TaskService","i6.TaskListService","i7","i6.TaskListColumnService","i6.TaskListPaginationService","i8.TaskListSortService","i10","i13.TaskDetailModalComponent"],"mappings":"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"}
@@ -1,33 +1,33 @@
1
1
  import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { DropdownItem } from '@valtimo/components';
3
3
  import { BehaviorSubject } from 'rxjs';
4
- import { TaskService } from '../task.service';
4
+ import { TaskService } from '../../services';
5
5
  import { NamedUser } from '@valtimo/config';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class AssignUserToTaskComponent implements OnInit, OnChanges, OnDestroy {
8
8
  private taskService;
9
9
  taskId: string;
10
- assigneeEmail: string;
10
+ assigneeId: string;
11
11
  assignmentOfTaskChanged: EventEmitter<any>;
12
- assignedEmailOnServer$: BehaviorSubject<string>;
12
+ assignedIdOnServer$: BehaviorSubject<string>;
13
13
  assignedUserFullName$: BehaviorSubject<string>;
14
14
  candidateUsersForTask$: BehaviorSubject<NamedUser[]>;
15
15
  disabled$: BehaviorSubject<boolean>;
16
- userEmailToAssign: string | null;
16
+ userIdToAssign: string | null;
17
17
  private _subscriptions;
18
18
  constructor(taskService: TaskService);
19
19
  ngOnInit(): void;
20
20
  ngOnChanges(changes: SimpleChanges): void;
21
21
  ngOnDestroy(): void;
22
- assignTask(userEmail: string): void;
22
+ assignTask(userId: string): void;
23
23
  unassignTask(): void;
24
- getAssignedUserName(users: NamedUser[], userEmail: string): string;
24
+ getAssignedUserName(users: NamedUser[], userId: string): string;
25
25
  mapUsersForDropdown(users: NamedUser[]): DropdownItem[];
26
26
  private clear;
27
27
  private emitChange;
28
28
  private enable;
29
29
  private disable;
30
30
  static ɵfac: i0.ɵɵFactoryDeclaration<AssignUserToTaskComponent, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<AssignUserToTaskComponent, "valtimo-assign-user-to-task", never, { "taskId": { "alias": "taskId"; "required": false; }; "assigneeEmail": { "alias": "assigneeEmail"; "required": false; }; }, { "assignmentOfTaskChanged": "assignmentOfTaskChanged"; }, never, never, false, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<AssignUserToTaskComponent, "valtimo-assign-user-to-task", never, { "taskId": { "alias": "taskId"; "required": false; }; "assigneeId": { "alias": "assigneeId"; "required": false; }; }, { "assignmentOfTaskChanged": "assignmentOfTaskChanged"; }, never, never, false, never>;
32
32
  }
33
33
  //# sourceMappingURL=assign-user-to-task.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assign-user-to-task.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/task/src/lib/components/assign-user-to-task/assign-user-to-task.component.ts"],"names":[],"mappings":"AAeA,OAAO,EAEL,YAAY,EAEZ,SAAS,EACT,SAAS,EACT,MAAM,EAEN,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAyC,MAAM,MAAM,CAAC;AAC7E,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;;AAE1C,qBAKa,yBAA0B,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAYhE,OAAO,CAAC,WAAW;IAXtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAClB,uBAAuB,oBAAsB;IAEhD,mBAAmB,0BAA4C;IAC/D,qBAAqB,0BAA4C;IACjE,sBAAsB,+BAA2D;IACjF,SAAS,2BAAsC;IAC/C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,OAAO,CAAC,cAAc,CAAsB;gBAExB,WAAW,EAAE,WAAW;IAErC,QAAQ,IAAI,IAAI;IAgBhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAWzC,WAAW,IAAI,IAAI;IAInB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBhC,YAAY,IAAI,IAAI;IAcpB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAQ/D,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE;IAU9D,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;yCA7GJ,yBAAyB;2CAAzB,yBAAyB;CAgHrC"}
@@ -1,11 +1,11 @@
1
1
  import { AfterViewInit, EventEmitter, OnDestroy } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
3
  import { FormioComponent, FormIoStateService, FormioSubmission, ModalComponent, ValtimoFormioOptions, ValtimoModalService } from '@valtimo/components';
4
- import { Task } from '../models';
5
- import { FormFlowComponent, ProcessLinkService } from '@valtimo/form-link';
4
+ import { Task } from '../../models';
5
+ import { FormFlowComponent, ProcessLinkService } from '@valtimo/process-link';
6
6
  import { FormioForm } from '@formio/angular';
7
7
  import { ToastrService } from 'ngx-toastr';
8
- import { TaskService } from '../task.service';
8
+ import { TaskService } from '../../services/task.service';
9
9
  import { BehaviorSubject, Observable } from 'rxjs';
10
10
  import { UserProviderService } from '@valtimo/security';
11
11
  import { DocumentService } from '@valtimo/document';
@@ -50,7 +50,6 @@ export declare class TaskDetailModalComponent implements AfterViewInit, OnDestro
50
50
  completeTask(): void;
51
51
  private resetFormDefinition;
52
52
  private getTaskProcessLink;
53
- private getLegacyTaskProcessLink;
54
53
  private resetTaskProcessLinkType;
55
54
  private setFormDefinitionAndOpenModal;
56
55
  private setDocumentDefinitionNameInService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-detail-modal.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/task/src/lib/components/task-detail-modal/task-detail-modal.component.ts"],"names":[],"mappings":"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"}