@valtimo/task 12.14.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/valtimo-task.mjs +218 -173
- package/fesm2022/valtimo-task.mjs.map +1 -1
- package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts +1 -1
- package/lib/components/task-detail-content/task-detail-content.component.d.ts +3 -4
- package/lib/components/task-detail-content/task-detail-content.component.d.ts.map +1 -1
- package/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.d.ts +5 -6
- package/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.d.ts.map +1 -1
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts +10 -4
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts.map +1 -1
- package/lib/components/task-list/task-list.component.d.ts +8 -4
- package/lib/components/task-list/task-list.component.d.ts.map +1 -1
- package/lib/models/index.d.ts +1 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/task-list.model.d.ts +2 -2
- package/lib/models/task-list.model.d.ts.map +1 -1
- package/lib/models/task-sse-event.model.d.ts +8 -0
- package/lib/models/task-sse-event.model.d.ts.map +1 -0
- package/lib/models/task.model.d.ts +1 -1
- package/lib/services/task-intermediate-save.service.d.ts +1 -1
- package/lib/services/task-intermediate-save.service.d.ts.map +1 -1
- package/lib/services/task-list-pagination.service.d.ts +1 -1
- package/lib/services/task-list-search.service.d.ts +1 -1
- package/lib/services/task-list-sort.service.d.ts +1 -1
- package/lib/services/task-list.service.d.ts +4 -7
- package/lib/services/task-list.service.d.ts.map +1 -1
- package/lib/services/task.service.d.ts +4 -4
- package/lib/services/task.service.d.ts.map +1 -1
- package/lib/task-permissions.d.ts +1 -1
- package/lib/task-permissions.d.ts.map +1 -1
- package/lib/task.module.d.ts +9 -10
- package/lib/task.module.d.ts.map +1 -1
- package/package.json +4 -7
- package/esm2022/lib/components/assign-user-to-task/assign-user-to-task.component.mjs +0 -210
- package/esm2022/lib/components/set-task-due-date/set-task-due-date.component.mjs +0 -128
- package/esm2022/lib/components/task-detail-content/task-detail-content.component.mjs +0 -398
- package/esm2022/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.mjs +0 -168
- package/esm2022/lib/components/task-detail-modal/task-detail-modal.component.mjs +0 -151
- package/esm2022/lib/components/task-list/task-list.component.mjs +0 -361
- package/esm2022/lib/constants/index.mjs +0 -17
- package/esm2022/lib/constants/task-list.constants.mjs +0 -22
- package/esm2022/lib/models/index.mjs +0 -21
- package/esm2022/lib/models/task-definition.model.mjs +0 -17
- package/esm2022/lib/models/task-intermediate-save.model.mjs +0 -17
- package/esm2022/lib/models/task-list-search-field.model.mjs +0 -43
- package/esm2022/lib/models/task-list.model.mjs +0 -22
- package/esm2022/lib/models/task.model.mjs +0 -17
- package/esm2022/lib/services/index.mjs +0 -23
- package/esm2022/lib/services/task-intermediate-save.service.mjs +0 -73
- package/esm2022/lib/services/task-list-column.service.mjs +0 -193
- package/esm2022/lib/services/task-list-pagination.service.mjs +0 -74
- package/esm2022/lib/services/task-list-query-param.service.mjs +0 -53
- package/esm2022/lib/services/task-list-search.service.mjs +0 -99
- package/esm2022/lib/services/task-list-sort.service.mjs +0 -116
- package/esm2022/lib/services/task-list.service.mjs +0 -60
- package/esm2022/lib/services/task.service.mjs +0 -104
- package/esm2022/lib/task-permissions.mjs +0 -44
- package/esm2022/lib/task-routing.module.mjs +0 -45
- package/esm2022/lib/task.module.mjs +0 -158
- package/esm2022/public_api.mjs +0 -31
- package/esm2022/valtimo-task.mjs +0 -5
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, EventEmitter, Input, Output, Component, ViewContainerRef, ViewChild, Optional, Inject, ChangeDetectionStrategy, signal, ViewEncapsulation, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import * as i9 from '@valtimo/components';
|
|
4
|
-
import { ViewType, SearchableDropdownSelectModule, RemoveClassnamesDirective, FormioOptionsImpl, FormIoModule, ConfirmationModalModule, TooltipModule, CarbonListModule, PageHeaderModule, WidgetModule, SpinnerModule, CamundaFormModule,
|
|
4
|
+
import { ViewType, SearchableDropdownSelectModule, RemoveClassnamesDirective, FormioOptionsImpl, FormIoModule, ConfirmationModalModule, TooltipModule, CarbonListModule, PageHeaderModule, WidgetModule, SpinnerModule, CamundaFormModule, RenderInPageHeaderDirective, SearchFieldsModule, ValtimoCdsModalDirective } from '@valtimo/components';
|
|
5
5
|
import { BehaviorSubject, combineLatest, tap, filter, switchMap, of, map as map$1, catchError, Subject, Subscription, take as take$1, distinctUntilChanged } from 'rxjs';
|
|
6
6
|
import * as i4 from '@angular/common';
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
|
-
import * as
|
|
8
|
+
import * as i10 from '@ngx-translate/core';
|
|
9
9
|
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
10
10
|
import * as i2 from 'carbon-components-angular';
|
|
11
11
|
import { ButtonModule, ToggletipModule, IconModule, LayerModule, DatePickerModule, ComboBoxModule, ModalModule, LinkModule, TabsModule, ContentSwitcherModule, DropdownModule, TooltipModule as TooltipModule$1 } from 'carbon-components-angular';
|
|
@@ -13,28 +13,27 @@ import { UserFollow16, RecentlyViewed16, CalendarAdd16 } from '@carbon/icons';
|
|
|
13
13
|
import { map, take, filter as filter$1, distinctUntilChanged as distinctUntilChanged$1 } from 'rxjs/operators';
|
|
14
14
|
import * as i1 from '@angular/common/http';
|
|
15
15
|
import { HttpParams, HttpHeaders, HttpClient } from '@angular/common/http';
|
|
16
|
-
import * as i1$1 from '@valtimo/
|
|
17
|
-
import { BaseApiService, TaskListTab, FORM_VIEW_MODEL_TOKEN, ROLE_USER, HttpLoaderFactory } from '@valtimo/
|
|
18
|
-
import { InterceptorSkip, AuthGuardService } from '@valtimo/security';
|
|
16
|
+
import * as i1$1 from '@valtimo/shared';
|
|
17
|
+
import { BaseApiService, TaskListTab, InterceptorSkip, FORM_VIEW_MODEL_TOKEN, ROLE_USER, HttpLoaderFactory } from '@valtimo/shared';
|
|
19
18
|
import { omit, isEqual } from 'lodash';
|
|
20
19
|
import * as i1$2 from '@angular/router';
|
|
21
20
|
import { RouterModule } from '@angular/router';
|
|
22
|
-
import * as
|
|
21
|
+
import * as i14 from 'carbon-components-angular/dropdown';
|
|
23
22
|
import * as i7 from '@valtimo/process-link';
|
|
24
23
|
import { FORM_CUSTOM_COMPONENT_TOKEN, ProcessLinkModule, formSizeToCarbonModalSizeMap } from '@valtimo/process-link';
|
|
25
|
-
import * as i2$
|
|
24
|
+
import * as i2$1 from '@valtimo/document';
|
|
26
25
|
import * as i4$1 from 'ngx-logger';
|
|
27
26
|
import * as i3 from '@valtimo/access-control';
|
|
28
|
-
import * as i10 from 'ngx-toastr';
|
|
29
|
-
import { ToastrModule } from 'ngx-toastr';
|
|
30
27
|
import moment from 'moment';
|
|
31
|
-
import * as
|
|
28
|
+
import * as i6 from '@valtimo/sse';
|
|
29
|
+
import * as i12 from '@ng-bootstrap/ng-bootstrap';
|
|
32
30
|
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
33
31
|
import { FormsModule } from '@angular/forms';
|
|
34
32
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
33
|
+
import { AuthGuardService } from '@valtimo/security';
|
|
35
34
|
|
|
36
35
|
/*
|
|
37
|
-
* Copyright 2015-
|
|
36
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
38
37
|
*
|
|
39
38
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
40
39
|
* you may not use this file except in compliance with the License.
|
|
@@ -65,20 +64,20 @@ class TaskService extends BaseApiService {
|
|
|
65
64
|
params,
|
|
66
65
|
});
|
|
67
66
|
}
|
|
68
|
-
queryTasksPageV3(assigneeFilter = TaskListTab.ALL, pageParams,
|
|
67
|
+
queryTasksPageV3(assigneeFilter = TaskListTab.ALL, pageParams, caseDefinitionKey, otherFilters) {
|
|
69
68
|
let httpParams = new HttpParams().set('page', pageParams.page).set('size', pageParams.size);
|
|
70
69
|
if (pageParams.sort) {
|
|
71
70
|
httpParams = httpParams.append('sort', pageParams.sort);
|
|
72
71
|
}
|
|
73
|
-
if (
|
|
74
|
-
return this.searchTasks(httpParams,
|
|
72
|
+
if (caseDefinitionKey && (otherFilters || []).length > 0) {
|
|
73
|
+
return this.searchTasks(httpParams, caseDefinitionKey, otherFilters, assigneeFilter);
|
|
75
74
|
}
|
|
76
75
|
httpParams = httpParams.append('filter', assigneeFilter.toUpperCase());
|
|
77
|
-
return this.httpClient.post(this.getApiUrl('/v3/task'), { ...(
|
|
76
|
+
return this.httpClient.post(this.getApiUrl('/v3/task'), { ...(caseDefinitionKey && { caseDefinitionKey }) }, { params: httpParams });
|
|
78
77
|
}
|
|
79
|
-
searchTasks(params,
|
|
80
|
-
return this.httpClient.post(this.getApiUrl(`/v1/document-definition/${
|
|
81
|
-
|
|
78
|
+
searchTasks(params, caseDefinitionKey, otherFilters, assigneeFilter = TaskListTab.ALL) {
|
|
79
|
+
return this.httpClient.post(this.getApiUrl(`/v1/document-definition/${caseDefinitionKey}/task/search`), {
|
|
80
|
+
caseDefinitionKey,
|
|
82
81
|
assigneeFilter: assigneeFilter.toUpperCase(),
|
|
83
82
|
...(otherFilters && { otherFilters }),
|
|
84
83
|
}, { params });
|
|
@@ -107,14 +106,14 @@ class TaskService extends BaseApiService {
|
|
|
107
106
|
getTaskProcessLink(taskId) {
|
|
108
107
|
return this.httpClient.get(this.getApiUrl(`/v2/process-link/task/${taskId}`), { headers: new HttpHeaders().set(InterceptorSkip, '404') });
|
|
109
108
|
}
|
|
110
|
-
getTaskListColumns(
|
|
111
|
-
return this.httpClient.get(this.getApiUrl(`/v1/case/${
|
|
109
|
+
getTaskListColumns(caseDefinitionKey) {
|
|
110
|
+
return this.httpClient.get(this.getApiUrl(`/v1/case/${caseDefinitionKey}/task-list-column`));
|
|
112
111
|
}
|
|
113
112
|
getConfigCustomTaskList() {
|
|
114
113
|
return this.configService.config.customTaskList;
|
|
115
114
|
}
|
|
116
|
-
getTaskListSearchFields(
|
|
117
|
-
return this.httpClient.get(this.getApiUrl(`v1/search/field/TaskListSearchColumns/${
|
|
115
|
+
getTaskListSearchFields(caseDefinitionKey) {
|
|
116
|
+
return this.httpClient.get(this.getApiUrl(`v1/search/field/TaskListSearchColumns/${caseDefinitionKey}`));
|
|
118
117
|
}
|
|
119
118
|
setTaskDueDate(taskId, setTaskDueDateRequest) {
|
|
120
119
|
return this.httpClient.post(this.getApiUrl(`/v1/task/${taskId}/set-due-date`), setTaskDueDateRequest);
|
|
@@ -122,16 +121,16 @@ class TaskService extends BaseApiService {
|
|
|
122
121
|
removeTaskDueDate(taskId) {
|
|
123
122
|
return this.httpClient.post(this.getApiUrl(`/v1/task/${taskId}/set-due-date`), null);
|
|
124
123
|
}
|
|
125
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
126
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskService, deps: [{ token: i1.HttpClient }, { token: i1$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
125
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskService, providedIn: 'root' }); }
|
|
127
126
|
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskService, decorators: [{
|
|
129
128
|
type: Injectable,
|
|
130
129
|
args: [{ providedIn: 'root' }]
|
|
131
130
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.ConfigService }] });
|
|
132
131
|
|
|
133
132
|
/*
|
|
134
|
-
* Copyright 2015-
|
|
133
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
135
134
|
*
|
|
136
135
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
137
136
|
* you may not use this file except in compliance with the License.
|
|
@@ -146,8 +145,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
146
145
|
* limitations under the License.
|
|
147
146
|
*/
|
|
148
147
|
class TaskListService {
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
constructor() {
|
|
149
|
+
this._ALL_CASES_ID = 'ALL_CASES';
|
|
150
|
+
this._caseDefinitionKey$ = new BehaviorSubject(null);
|
|
151
|
+
this._selectedTaskType$ = new BehaviorSubject(TaskListTab.MINE);
|
|
152
|
+
this._loadingStateForCaseDefinition$ = new BehaviorSubject(false);
|
|
153
|
+
}
|
|
154
|
+
get caseDefinitionKey$() {
|
|
155
|
+
return this._caseDefinitionKey$.asObservable();
|
|
151
156
|
}
|
|
152
157
|
get selectedTaskType$() {
|
|
153
158
|
return this._selectedTaskType$.asObservable();
|
|
@@ -161,32 +166,25 @@ class TaskListService {
|
|
|
161
166
|
get ALL_CASES_ID() {
|
|
162
167
|
return this._ALL_CASES_ID;
|
|
163
168
|
}
|
|
164
|
-
constructor(taskService) {
|
|
165
|
-
this.taskService = taskService;
|
|
166
|
-
this._ALL_CASES_ID = 'ALL_CASES';
|
|
167
|
-
this._caseDefinitionName$ = new BehaviorSubject(null);
|
|
168
|
-
this._selectedTaskType$ = new BehaviorSubject(TaskListTab.MINE);
|
|
169
|
-
this._loadingStateForCaseDefinition$ = new BehaviorSubject(false);
|
|
170
|
-
}
|
|
171
169
|
setSelectedTaskType(type) {
|
|
172
170
|
this._selectedTaskType$.next(type);
|
|
173
171
|
}
|
|
174
|
-
|
|
172
|
+
setCaseDefinitionKey(caseDefinitionKey) {
|
|
175
173
|
this._loadingStateForCaseDefinition$.next(true);
|
|
176
|
-
this.
|
|
174
|
+
this._caseDefinitionKey$.next(caseDefinitionKey);
|
|
177
175
|
}
|
|
178
176
|
setLoadingStateForCaseDefinition(loading) {
|
|
179
177
|
this._loadingStateForCaseDefinition$.next(loading);
|
|
180
178
|
}
|
|
181
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
182
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
179
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
180
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListService }); }
|
|
183
181
|
}
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListService, decorators: [{
|
|
185
183
|
type: Injectable
|
|
186
|
-
}]
|
|
184
|
+
}] });
|
|
187
185
|
|
|
188
186
|
/*
|
|
189
|
-
* Copyright 2015-
|
|
187
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
190
188
|
*
|
|
191
189
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
192
190
|
* you may not use this file except in compliance with the License.
|
|
@@ -287,15 +285,15 @@ class TaskListSortService {
|
|
|
287
285
|
getSortString(sort) {
|
|
288
286
|
return `${sort.state.name},${sort.state.direction}`;
|
|
289
287
|
}
|
|
290
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
291
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
288
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListSortService, deps: [{ token: TaskService }, { token: TaskListService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
289
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListSortService }); }
|
|
292
290
|
}
|
|
293
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
291
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListSortService, decorators: [{
|
|
294
292
|
type: Injectable
|
|
295
293
|
}], ctorParameters: () => [{ type: TaskService }, { type: TaskListService }] });
|
|
296
294
|
|
|
297
295
|
/*
|
|
298
|
-
* Copyright 2015-
|
|
296
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
299
297
|
*
|
|
300
298
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
301
299
|
* you may not use this file except in compliance with the License.
|
|
@@ -317,7 +315,7 @@ class TaskListColumnService {
|
|
|
317
315
|
return this._fields$.asObservable();
|
|
318
316
|
}
|
|
319
317
|
get taskListColumnsForCase$() {
|
|
320
|
-
return this.taskListService.
|
|
318
|
+
return this.taskListService.caseDefinitionKey$.pipe(tap(caseDefinitionName => {
|
|
321
319
|
if (caseDefinitionName === this.taskListService.ALL_CASES_ID) {
|
|
322
320
|
this.resetTaskListFields();
|
|
323
321
|
}
|
|
@@ -473,15 +471,15 @@ class TaskListColumnService {
|
|
|
473
471
|
return taskListColumnColumnDisplayType;
|
|
474
472
|
}
|
|
475
473
|
}
|
|
476
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
477
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
474
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListColumnService, deps: [{ token: TaskService }, { token: TaskListService }, { token: TaskListSortService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
475
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListColumnService }); }
|
|
478
476
|
}
|
|
479
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
477
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListColumnService, decorators: [{
|
|
480
478
|
type: Injectable
|
|
481
479
|
}], ctorParameters: () => [{ type: TaskService }, { type: TaskListService }, { type: TaskListSortService }] });
|
|
482
480
|
|
|
483
481
|
/*
|
|
484
|
-
* Copyright 2015-
|
|
482
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
485
483
|
*
|
|
486
484
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
487
485
|
* you may not use this file except in compliance with the License.
|
|
@@ -541,15 +539,15 @@ class TaskListPaginationService {
|
|
|
541
539
|
size: 10,
|
|
542
540
|
};
|
|
543
541
|
}
|
|
544
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
545
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
542
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListPaginationService, deps: [{ token: TaskListService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
543
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListPaginationService }); }
|
|
546
544
|
}
|
|
547
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
545
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListPaginationService, decorators: [{
|
|
548
546
|
type: Injectable
|
|
549
547
|
}], ctorParameters: () => [{ type: TaskListService }] });
|
|
550
548
|
|
|
551
549
|
/*
|
|
552
|
-
* Copyright 2015-
|
|
550
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
553
551
|
*
|
|
554
552
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
555
553
|
* you may not use this file except in compliance with the License.
|
|
@@ -576,7 +574,7 @@ class TaskListSearchService {
|
|
|
576
574
|
this.taskService = taskService;
|
|
577
575
|
this._loadingSearchFields$ = new BehaviorSubject(true);
|
|
578
576
|
this._otherFilters$ = new BehaviorSubject([]);
|
|
579
|
-
this.searchFields$ = this.taskListService.
|
|
577
|
+
this.searchFields$ = this.taskListService.caseDefinitionKey$.pipe(tap(() => this._loadingSearchFields$.next(true)), switchMap(caseDefinitionName => caseDefinitionName
|
|
580
578
|
? this.taskService.getTaskListSearchFields(caseDefinitionName)
|
|
581
579
|
: of([])), map$1(searchFields => searchFields.map(searchField => {
|
|
582
580
|
const fieldTypeLowerCase = searchField.fieldType?.toLowerCase();
|
|
@@ -634,15 +632,15 @@ class TaskListSearchService {
|
|
|
634
632
|
});
|
|
635
633
|
return filters;
|
|
636
634
|
}
|
|
637
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
638
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
635
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListSearchService, deps: [{ token: i1$1.ConfigService }, { token: TaskListService }, { token: TaskService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
636
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListSearchService }); }
|
|
639
637
|
}
|
|
640
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
638
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListSearchService, decorators: [{
|
|
641
639
|
type: Injectable
|
|
642
640
|
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: TaskListService }, { type: TaskService }] });
|
|
643
641
|
|
|
644
642
|
/*
|
|
645
|
-
* Copyright 2015-
|
|
643
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
646
644
|
*
|
|
647
645
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
648
646
|
* you may not use this file except in compliance with the License.
|
|
@@ -683,15 +681,15 @@ class TaskListQueryParamService {
|
|
|
683
681
|
parseBase64(base64string) {
|
|
684
682
|
return JSON.parse(atob(base64string));
|
|
685
683
|
}
|
|
686
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
687
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
684
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListQueryParamService, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
685
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListQueryParamService }); }
|
|
688
686
|
}
|
|
689
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
687
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListQueryParamService, decorators: [{
|
|
690
688
|
type: Injectable
|
|
691
689
|
}], ctorParameters: () => [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }] });
|
|
692
690
|
|
|
693
691
|
/*
|
|
694
|
-
* Copyright 2015-
|
|
692
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
695
693
|
*
|
|
696
694
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
697
695
|
* you may not use this file except in compliance with the License.
|
|
@@ -747,16 +745,16 @@ class TaskIntermediateSaveService extends BaseApiService {
|
|
|
747
745
|
setFormIoFormData(value) {
|
|
748
746
|
this._formIoFormData$.next(value);
|
|
749
747
|
}
|
|
750
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
751
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
748
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskIntermediateSaveService, deps: [{ token: i1.HttpClient }, { token: i1$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
749
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskIntermediateSaveService, providedIn: 'root' }); }
|
|
752
750
|
}
|
|
753
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
751
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskIntermediateSaveService, decorators: [{
|
|
754
752
|
type: Injectable,
|
|
755
753
|
args: [{ providedIn: 'root' }]
|
|
756
754
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.ConfigService }] });
|
|
757
755
|
|
|
758
756
|
/*
|
|
759
|
-
* Copyright 2015-
|
|
757
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
760
758
|
*
|
|
761
759
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
762
760
|
* you may not use this file except in compliance with the License.
|
|
@@ -772,7 +770,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
772
770
|
*/
|
|
773
771
|
|
|
774
772
|
/*
|
|
775
|
-
* Copyright 2015-
|
|
773
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
776
774
|
*
|
|
777
775
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
778
776
|
* you may not use this file except in compliance with the License.
|
|
@@ -939,10 +937,10 @@ class AssignUserToTaskComponent {
|
|
|
939
937
|
}
|
|
940
938
|
}));
|
|
941
939
|
}
|
|
942
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
943
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
940
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssignUserToTaskComponent, deps: [{ token: TaskService }, { token: i2.IconService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i9.CdsThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
941
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: AssignUserToTaskComponent, isStandalone: true, selector: "valtimo-assign-user-to-task", inputs: { taskId: "taskId", assigneeId: "assigneeId", canAssignUserToTask: "canAssignUserToTask" }, outputs: { assignmentOfTaskChanged: "assignmentOfTaskChanged" }, usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"\n (canAssignUserToTaskSet$ | async) && {\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async,\n mouseIsOverAssignee: mouseIsOverAssignee$ | async,\n assignedUserFullName: assignedUserFullName$ | async,\n selectedUserId: selectedUserId$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\n \"\n>\n <ng-container\n *ngIf=\"{hasSelection: obs.selectedUserId === obs.idOnServer && obs.idOnServer !== null} as vars\"\n >\n <div\n class=\"assign-user-container\"\n *ngIf=\"obs.canAssignUserToTask || (!obs.canAssignUserToTask && vars.hasSelection)\"\n (mouseenter)=\"onMouseEnterAssignee()\"\n (mouseleave)=\"onMouseLeaveAssignee()\"\n >\n <div\n class=\"assignee-text element\"\n [ngClass]=\"{\n active: obs.canAssignUserToTask\n ? vars.hasSelection && !obs.mouseIsOverAssignee\n : vars.hasSelection,\n }\"\n >\n <span class=\"bold\">{{ 'assignTask.assignedTo' | translate }}</span>\n\n \n\n <span class=\"name\">{{ obs.assignedUserFullName }}</span>\n </div>\n\n <button\n *ngIf=\"obs.canAssignUserToTask\"\n cdsButton=\"ghost\"\n class=\"element remove-button\"\n [ngClass]=\"{active: vars.hasSelection && obs.mouseIsOverAssignee}\"\n [disabled]=\"obs.disabled\"\n size=\"sm\"\n (click)=\"unassignTask()\"\n >\n {{ 'assignTask.remove' | translate }}\n </button>\n\n <cds-toggletip\n align=\"bottom\"\n class=\"element main\"\n [autoAlign]=\"true\"\n [isOpen]=\"open$ | async\"\n [ngClass]=\"{active: !vars.hasSelection}\"\n (onOpen)=\"clear()\"\n >\n <button\n cdsToggletipButton\n [removeClassnames]=\"['cds--toggletip-button']\"\n cdsButton=\"tertiary\"\n size=\"sm\"\n class=\"set-assignee-button\"\n >\n {{ 'assignTask.buttonText' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"user--follow\" size=\"16\"></svg>\n </button>\n\n <div\n cdsToggletipContent\n [attr.data-carbon-theme]=\"toggletipTheme$ | async\"\n class=\"assign-task-popover-content\"\n >\n <cds-combo-box\n *ngIf=\"!vars.hasSelection\"\n [label]=\"'assignTask.comboboxLabel' | translate\"\n [placeholder]=\"'assignTask.placeholder' | translate\"\n [appendInline]=\"true\"\n [dropUp]=\"false\"\n [cdsLayer]=\"1\"\n [items]=\"obs?.candidateUsers || []\"\n [disabled]=\"obs.disabled\"\n (selected)=\"onUserSelect($event)\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list onclick=\"event.stopPropagation()\"></cds-dropdown-list>\n </cds-combo-box>\n\n <button\n cdsButton\n class=\"submit-task-button\"\n [disabled]=\"!obs.selectedUserId || obs.disabled\"\n (click)=\"onSubmitButtonClick()\"\n >\n {{ 'assignTask.submitButtonText' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"user--follow\" size=\"16\"></svg>\n </button>\n </div>\n </cds-toggletip>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host ::ng-deep .cds--popover-content{max-inline-size:unset}.assign-user-container{display:flex;align-items:center;justify-content:center;position:relative;font-weight:400;font-size:14px;line-height:18px;letter-spacing:.16px;color:var(--cds-link-01)}.assign-user-container .bold{font-weight:700;flex-shrink:0}.assign-user-container .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remove-button{width:100%}.assignee-text{display:flex;justify-content:flex-start;align-items:center;width:100%}.element{opacity:0;visibility:hidden;position:absolute;transition:opacity .3s ease-in-out}.element.active{opacity:1;visibility:visible}.element.main{position:relative}.assign-task-popover-content{width:400px;max-inline-size:400px;display:flex;flex-direction:column;gap:16px}.assign-task-popover-content .cds--btn{width:100%;max-width:unset}.set-assignee-button{width:250px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SearchableDropdownSelectModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ToggletipModule }, { kind: "component", type: i2.Toggletip, selector: "cds-toggletip, ibm-toggletip", inputs: ["id", "isOpen"] }, { kind: "directive", type: i2.ToggletipButton, selector: "[cdsToggletipButton], [ibmToggletipButton]", inputs: ["ariaLabel"] }, { kind: "directive", type: i2.ToggletipContent, selector: "[cdsToggletipContent], [ibmToggletipContent]" }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "ngmodule", type: ComboBoxModule }, { kind: "component", type: i2.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "labelId", "items", "type", "size", "itemValueKey", "label", "hideLabel", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled", "readonly", "fluid"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i14.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "directive", type: RemoveClassnamesDirective, selector: "[removeClassnames]", inputs: ["removeClassnames"] }] }); }
|
|
944
942
|
}
|
|
945
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
943
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssignUserToTaskComponent, decorators: [{
|
|
946
944
|
type: Component,
|
|
947
945
|
args: [{ selector: 'valtimo-assign-user-to-task', standalone: true, imports: [
|
|
948
946
|
CommonModule,
|
|
@@ -955,7 +953,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
955
953
|
DatePickerModule,
|
|
956
954
|
ComboBoxModule,
|
|
957
955
|
RemoveClassnamesDirective,
|
|
958
|
-
], template: "<!--\n ~ Copyright 2015-
|
|
956
|
+
], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"\n (canAssignUserToTaskSet$ | async) && {\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async,\n mouseIsOverAssignee: mouseIsOverAssignee$ | async,\n assignedUserFullName: assignedUserFullName$ | async,\n selectedUserId: selectedUserId$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\n \"\n>\n <ng-container\n *ngIf=\"{hasSelection: obs.selectedUserId === obs.idOnServer && obs.idOnServer !== null} as vars\"\n >\n <div\n class=\"assign-user-container\"\n *ngIf=\"obs.canAssignUserToTask || (!obs.canAssignUserToTask && vars.hasSelection)\"\n (mouseenter)=\"onMouseEnterAssignee()\"\n (mouseleave)=\"onMouseLeaveAssignee()\"\n >\n <div\n class=\"assignee-text element\"\n [ngClass]=\"{\n active: obs.canAssignUserToTask\n ? vars.hasSelection && !obs.mouseIsOverAssignee\n : vars.hasSelection,\n }\"\n >\n <span class=\"bold\">{{ 'assignTask.assignedTo' | translate }}</span>\n\n \n\n <span class=\"name\">{{ obs.assignedUserFullName }}</span>\n </div>\n\n <button\n *ngIf=\"obs.canAssignUserToTask\"\n cdsButton=\"ghost\"\n class=\"element remove-button\"\n [ngClass]=\"{active: vars.hasSelection && obs.mouseIsOverAssignee}\"\n [disabled]=\"obs.disabled\"\n size=\"sm\"\n (click)=\"unassignTask()\"\n >\n {{ 'assignTask.remove' | translate }}\n </button>\n\n <cds-toggletip\n align=\"bottom\"\n class=\"element main\"\n [autoAlign]=\"true\"\n [isOpen]=\"open$ | async\"\n [ngClass]=\"{active: !vars.hasSelection}\"\n (onOpen)=\"clear()\"\n >\n <button\n cdsToggletipButton\n [removeClassnames]=\"['cds--toggletip-button']\"\n cdsButton=\"tertiary\"\n size=\"sm\"\n class=\"set-assignee-button\"\n >\n {{ 'assignTask.buttonText' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"user--follow\" size=\"16\"></svg>\n </button>\n\n <div\n cdsToggletipContent\n [attr.data-carbon-theme]=\"toggletipTheme$ | async\"\n class=\"assign-task-popover-content\"\n >\n <cds-combo-box\n *ngIf=\"!vars.hasSelection\"\n [label]=\"'assignTask.comboboxLabel' | translate\"\n [placeholder]=\"'assignTask.placeholder' | translate\"\n [appendInline]=\"true\"\n [dropUp]=\"false\"\n [cdsLayer]=\"1\"\n [items]=\"obs?.candidateUsers || []\"\n [disabled]=\"obs.disabled\"\n (selected)=\"onUserSelect($event)\"\n (clear)=\"clear()\"\n >\n <cds-dropdown-list onclick=\"event.stopPropagation()\"></cds-dropdown-list>\n </cds-combo-box>\n\n <button\n cdsButton\n class=\"submit-task-button\"\n [disabled]=\"!obs.selectedUserId || obs.disabled\"\n (click)=\"onSubmitButtonClick()\"\n >\n {{ 'assignTask.submitButtonText' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"user--follow\" size=\"16\"></svg>\n </button>\n </div>\n </cds-toggletip>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host ::ng-deep .cds--popover-content{max-inline-size:unset}.assign-user-container{display:flex;align-items:center;justify-content:center;position:relative;font-weight:400;font-size:14px;line-height:18px;letter-spacing:.16px;color:var(--cds-link-01)}.assign-user-container .bold{font-weight:700;flex-shrink:0}.assign-user-container .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remove-button{width:100%}.assignee-text{display:flex;justify-content:flex-start;align-items:center;width:100%}.element{opacity:0;visibility:hidden;position:absolute;transition:opacity .3s ease-in-out}.element.active{opacity:1;visibility:visible}.element.main{position:relative}.assign-task-popover-content{width:400px;max-inline-size:400px;display:flex;flex-direction:column;gap:16px}.assign-task-popover-content .cds--btn{width:100%;max-width:unset}.set-assignee-button{width:250px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
959
957
|
}], ctorParameters: () => [{ type: TaskService }, { type: i2.IconService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i9.CdsThemeService }], propDecorators: { taskId: [{
|
|
960
958
|
type: Input
|
|
961
959
|
}], assigneeId: [{
|
|
@@ -967,7 +965,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
967
965
|
}] } });
|
|
968
966
|
|
|
969
967
|
/*
|
|
970
|
-
* Copyright 2015-
|
|
968
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
971
969
|
*
|
|
972
970
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
973
971
|
* you may not use this file except in compliance with the License.
|
|
@@ -990,7 +988,7 @@ var PERMISSION_ACTION;
|
|
|
990
988
|
var TASK_DETAIL_PERMISSION_RESOURCE;
|
|
991
989
|
(function (TASK_DETAIL_PERMISSION_RESOURCE) {
|
|
992
990
|
TASK_DETAIL_PERMISSION_RESOURCE["jsonSchemaDocument"] = "com.ritense.document.domain.impl.JsonSchemaDocument";
|
|
993
|
-
TASK_DETAIL_PERMISSION_RESOURCE["task"] = "com.ritense.valtimo.
|
|
991
|
+
TASK_DETAIL_PERMISSION_RESOURCE["task"] = "com.ritense.valtimo.operaton.domain.OperatonTask";
|
|
994
992
|
})(TASK_DETAIL_PERMISSION_RESOURCE || (TASK_DETAIL_PERMISSION_RESOURCE = {}));
|
|
995
993
|
const CAN_ASSIGN_TASK_PERMISSION = {
|
|
996
994
|
action: PERMISSION_ACTION.assign,
|
|
@@ -1010,7 +1008,7 @@ const CAN_MODIFY_TASK_PERMISSION = {
|
|
|
1010
1008
|
};
|
|
1011
1009
|
|
|
1012
1010
|
/*
|
|
1013
|
-
* Copyright 2015-
|
|
1011
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1014
1012
|
*
|
|
1015
1013
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1016
1014
|
* you may not use this file except in compliance with the License.
|
|
@@ -1046,9 +1044,10 @@ class TaskDetailContentComponent {
|
|
|
1046
1044
|
get viewInitialized$() {
|
|
1047
1045
|
return this._viewInitialized$.pipe(filter(initialized => initialized));
|
|
1048
1046
|
}
|
|
1049
|
-
constructor(configService, documentService, iconService, logger, modalService, permissionService, processLinkService, router, stateService, taskIntermediateSaveService, taskService,
|
|
1047
|
+
constructor(configService, documentService, globalNotificationService, iconService, logger, modalService, permissionService, processLinkService, router, stateService, taskIntermediateSaveService, taskService, translateService, formViewModel, formCustomComponentConfig, urlResolverService) {
|
|
1050
1048
|
this.configService = configService;
|
|
1051
1049
|
this.documentService = documentService;
|
|
1050
|
+
this.globalNotificationService = globalNotificationService;
|
|
1052
1051
|
this.iconService = iconService;
|
|
1053
1052
|
this.logger = logger;
|
|
1054
1053
|
this.modalService = modalService;
|
|
@@ -1058,7 +1057,6 @@ class TaskDetailContentComponent {
|
|
|
1058
1057
|
this.stateService = stateService;
|
|
1059
1058
|
this.taskIntermediateSaveService = taskIntermediateSaveService;
|
|
1060
1059
|
this.taskService = taskService;
|
|
1061
|
-
this.toastr = toastr;
|
|
1062
1060
|
this.translateService = translateService;
|
|
1063
1061
|
this.formViewModel = formViewModel;
|
|
1064
1062
|
this.formCustomComponentConfig = formCustomComponentConfig;
|
|
@@ -1137,7 +1135,10 @@ class TaskDetailContentComponent {
|
|
|
1137
1135
|
completeTask(task) {
|
|
1138
1136
|
if (!task)
|
|
1139
1137
|
return;
|
|
1140
|
-
this.
|
|
1138
|
+
this.globalNotificationService.showToast({
|
|
1139
|
+
title: `${task.name} ${this.translateService.instant('taskDetail.taskCompleted')}`,
|
|
1140
|
+
type: 'success',
|
|
1141
|
+
});
|
|
1141
1142
|
this.task$.next(null);
|
|
1142
1143
|
this.formSubmit.emit();
|
|
1143
1144
|
this.closeModalEvent.emit();
|
|
@@ -1336,20 +1337,20 @@ class TaskDetailContentComponent {
|
|
|
1336
1337
|
}
|
|
1337
1338
|
setDocumentDefinitionNameInService(task) {
|
|
1338
1339
|
this.documentService
|
|
1339
|
-
.
|
|
1340
|
-
.subscribe(
|
|
1341
|
-
const
|
|
1342
|
-
this.modalService.
|
|
1343
|
-
this.stateService.setDocumentDefinitionName(
|
|
1340
|
+
.getProcessDefinitionCaseDefinitionFromProcessInstanceId(task.processInstanceId)
|
|
1341
|
+
.subscribe(ProcessDefinitionCaseDefinition => {
|
|
1342
|
+
const caseDefinitionKey = ProcessDefinitionCaseDefinition.id.caseDefinitionId.key;
|
|
1343
|
+
this.modalService.setCaseDefinitionKey(caseDefinitionKey);
|
|
1344
|
+
this.stateService.setDocumentDefinitionName(caseDefinitionKey);
|
|
1344
1345
|
});
|
|
1345
1346
|
}
|
|
1346
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1347
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1347
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskDetailContentComponent, deps: [{ token: i1$1.ConfigService }, { token: i2$1.DocumentService }, { token: i1$1.GlobalNotificationService }, { token: i2.IconService }, { token: i4$1.NGXLogger }, { token: i9.ValtimoModalService }, { token: i3.PermissionService }, { token: i7.ProcessLinkService }, { token: i1$2.Router }, { token: i9.FormIoStateService }, { token: TaskIntermediateSaveService }, { token: TaskService }, { token: i10.TranslateService }, { token: FORM_VIEW_MODEL_TOKEN, optional: true }, { token: FORM_CUSTOM_COMPONENT_TOKEN, optional: true }, { token: i7.UrlResolverService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1348
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: TaskDetailContentComponent, isStandalone: true, selector: "valtimo-task-detail-content", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink", modalClosed: "modalClosed" }, outputs: { closeModalEvent: "closeModalEvent", formSubmit: "formSubmit", activeChange: "activeChange" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "formFlow", first: true, predicate: ["formFlow"], descendants: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n>\n <valtimo-form-io\n #form\n *ngIf=\"\n obs.formDefinition &&\n obs.processLinkIsForm &&\n !obs.processLinkIsUiComponent &&\n !obs.processLinkIsFormViewModel\n \"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <div *ngIf=\"obs.loading\" class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n\n <div\n *ngIf=\"\n obs.loading === false &&\n !obs.formDefinition &&\n !obs.formFlowInstanceId &&\n !obs.errorMessage &&\n !obs.processLinkIsUiComponent\n \"\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n >\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div *ngIf=\"obs.errorMessage\" class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n\n <div class=\"m-2\">\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i9.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProcessLinkModule }, { kind: "component", type: i7.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1348
1349
|
}
|
|
1349
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1350
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskDetailContentComponent, decorators: [{
|
|
1350
1351
|
type: Component,
|
|
1351
|
-
args: [{ selector: 'valtimo-task-detail-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormIoModule, TranslateModule, ProcessLinkModule], template: "<!--\n ~ Copyright 2015-
|
|
1352
|
-
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i2$
|
|
1352
|
+
args: [{ selector: 'valtimo-task-detail-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormIoModule, TranslateModule, ProcessLinkModule], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n processLinkIsUiComponent: processLinkIsUiComponent$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n>\n <valtimo-form-io\n #form\n *ngIf=\"\n obs.formDefinition &&\n obs.processLinkIsForm &&\n !obs.processLinkIsUiComponent &&\n !obs.processLinkIsFormViewModel\n \"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <div *ngIf=\"obs.loading\" class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n\n <div\n *ngIf=\"\n obs.loading === false &&\n !obs.formDefinition &&\n !obs.formFlowInstanceId &&\n !obs.errorMessage &&\n !obs.processLinkIsUiComponent\n \"\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n >\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div *ngIf=\"obs.errorMessage\" class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n\n <div class=\"m-2\">\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n </div>\n</ng-container>\n" }]
|
|
1353
|
+
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i2$1.DocumentService }, { type: i1$1.GlobalNotificationService }, { type: i2.IconService }, { type: i4$1.NGXLogger }, { type: i9.ValtimoModalService }, { type: i3.PermissionService }, { type: i7.ProcessLinkService }, { type: i1$2.Router }, { type: i9.FormIoStateService }, { type: TaskIntermediateSaveService }, { type: TaskService }, { type: i10.TranslateService }, { type: undefined, decorators: [{
|
|
1353
1354
|
type: Optional
|
|
1354
1355
|
}, {
|
|
1355
1356
|
type: Inject,
|
|
@@ -1386,7 +1387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1386
1387
|
}] } });
|
|
1387
1388
|
|
|
1388
1389
|
/*
|
|
1389
|
-
* Copyright 2015-
|
|
1390
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1390
1391
|
*
|
|
1391
1392
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1392
1393
|
* you may not use this file except in compliance with the License.
|
|
@@ -1428,13 +1429,13 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1428
1429
|
});
|
|
1429
1430
|
this.getCurrentProgress(value.task);
|
|
1430
1431
|
}
|
|
1431
|
-
constructor(configService,
|
|
1432
|
+
constructor(configService, globalNotificationService, iconService, taskIntermediateSaveService, taskService, translateService) {
|
|
1432
1433
|
this.configService = configService;
|
|
1434
|
+
this.globalNotificationService = globalNotificationService;
|
|
1433
1435
|
this.iconService = iconService;
|
|
1434
|
-
this.translateService = translateService;
|
|
1435
1436
|
this.taskIntermediateSaveService = taskIntermediateSaveService;
|
|
1436
1437
|
this.taskService = taskService;
|
|
1437
|
-
this.
|
|
1438
|
+
this.translateService = translateService;
|
|
1438
1439
|
this.currentIntermediateSaveEvent = new EventEmitter();
|
|
1439
1440
|
this.showModalEvent = new EventEmitter();
|
|
1440
1441
|
this.formFlowInstanceId$ = new BehaviorSubject(undefined);
|
|
@@ -1460,12 +1461,18 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1460
1461
|
}), take$1(1))
|
|
1461
1462
|
.subscribe({
|
|
1462
1463
|
next: intermediateSubmission => {
|
|
1463
|
-
this.
|
|
1464
|
+
this.globalNotificationService.showToast({
|
|
1465
|
+
title: this.translateService.instant('formManagement.intermediateSave.success'),
|
|
1466
|
+
type: 'success',
|
|
1467
|
+
});
|
|
1464
1468
|
this.currentIntermediateSave = this.formatIntermediateSubmission(intermediateSubmission);
|
|
1465
1469
|
this.currentIntermediateSaveEvent.emit(this.currentIntermediateSave);
|
|
1466
1470
|
},
|
|
1467
1471
|
error: () => {
|
|
1468
|
-
this.
|
|
1472
|
+
this.globalNotificationService.showToast({
|
|
1473
|
+
title: this.translateService.instant('formManagement.intermediateSave.error'),
|
|
1474
|
+
type: 'error',
|
|
1475
|
+
});
|
|
1469
1476
|
},
|
|
1470
1477
|
});
|
|
1471
1478
|
}
|
|
@@ -1513,10 +1520,10 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1513
1520
|
this.currentIntermediateSaveEvent.emit(this.currentIntermediateSave);
|
|
1514
1521
|
});
|
|
1515
1522
|
}
|
|
1516
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1517
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1523
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskDetailIntermediateSaveComponent, deps: [{ token: i1$1.ConfigService }, { token: i1$1.GlobalNotificationService }, { token: i2.IconService }, { token: TaskIntermediateSaveService }, { token: TaskService }, { token: i10.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1524
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: TaskDetailIntermediateSaveComponent, isStandalone: true, selector: "valtimo-task-detail-intermediate-save", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink" }, outputs: { currentIntermediateSaveEvent: "currentIntermediateSaveEvent", showModalEvent: "showModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined) {\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n [vTooltip]=\"'formManagement.intermediateSave.save' | translate\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n [vTooltip]=\"'formManagement.intermediateSave.clear' | translate\"\n (click)=\"revertSaveClick()\"\n ></button>\n}\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n", styles: [":host{flex-shrink:0}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i9.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.TooltipDirective, selector: "[vTooltip]", inputs: ["vTooltip", "onBottom", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1518
1525
|
}
|
|
1519
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1526
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskDetailIntermediateSaveComponent, decorators: [{
|
|
1520
1527
|
type: Component,
|
|
1521
1528
|
args: [{ selector: 'valtimo-task-detail-intermediate-save', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1522
1529
|
CommonModule,
|
|
@@ -1526,8 +1533,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1526
1533
|
IconModule,
|
|
1527
1534
|
ModalModule,
|
|
1528
1535
|
TooltipModule,
|
|
1529
|
-
], template: "<!--\n ~ Copyright 2015-
|
|
1530
|
-
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type:
|
|
1536
|
+
], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined) {\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n [vTooltip]=\"'formManagement.intermediateSave.save' | translate\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n [vTooltip]=\"'formManagement.intermediateSave.clear' | translate\"\n (click)=\"revertSaveClick()\"\n ></button>\n}\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n", styles: [":host{flex-shrink:0}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
1537
|
+
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i1$1.GlobalNotificationService }, { type: i2.IconService }, { type: TaskIntermediateSaveService }, { type: TaskService }, { type: i10.TranslateService }], propDecorators: { task: [{
|
|
1531
1538
|
type: Input
|
|
1532
1539
|
}], taskAndProcessLink: [{
|
|
1533
1540
|
type: Input
|
|
@@ -1538,7 +1545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1538
1545
|
}] } });
|
|
1539
1546
|
|
|
1540
1547
|
/*
|
|
1541
|
-
* Copyright 2015-
|
|
1548
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1542
1549
|
*
|
|
1543
1550
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1544
1551
|
* you may not use this file except in compliance with the License.
|
|
@@ -1630,10 +1637,10 @@ class SetTaskDueDateComponent {
|
|
|
1630
1637
|
onMouseLeaveDueDate() {
|
|
1631
1638
|
this.mouseIsOverDueDate$.next(false);
|
|
1632
1639
|
}
|
|
1633
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1634
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1640
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SetTaskDueDateComponent, deps: [{ token: i2.IconService }, { token: TaskService }, { token: i9.CdsThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1641
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SetTaskDueDateComponent, isStandalone: true, selector: "valtimo-set-task-due-date", inputs: { canModifyTask: "canModifyTask", task: "task" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"\n (canModifyTaskSet$ | async) && {\n hasDueDate: hasDueDate$ | async,\n taskDueDate: taskDueDate$ | async,\n selectedDateString: selectedDateString$ | async,\n disabled: disabled$ | async,\n mouseIsOverDueDate: mouseIsOverDueDate$ | async,\n canModifyTask: canModifyTask$ | async,\n } as obs\n \"\n>\n <div\n *ngIf=\"obs.canModifyTask || (!obs.canModifyTask && obs.hasDueDate)\"\n class=\"due-date-container\"\n (mouseenter)=\"onMouseEnterDueDate()\"\n (mouseleave)=\"onMouseLeaveDueDate()\"\n >\n <div\n class=\"due-date-text element\"\n [ngClass]=\"{\n active: obs.canModifyTask ? obs.hasDueDate && !obs.mouseIsOverDueDate : obs.hasDueDate,\n }\"\n >\n <span class=\"bold\">{{ 'setTaskDueDate.dueDateText' | translate }}</span>\n\n \n\n {{ obs.taskDueDate | date: 'dd-MM-yyyy' }}\n </div>\n\n <button\n *ngIf=\"obs.canModifyTask\"\n cdsButton=\"ghost\"\n class=\"element remove-button\"\n [ngClass]=\"{active: obs.hasDueDate && obs.mouseIsOverDueDate}\"\n [disabled]=\"obs.disabled\"\n size=\"sm\"\n (click)=\"onRemoveButtonClick()\"\n >\n {{ 'setTaskDueDate.removeButtonText' | translate }}\n </button>\n\n <cds-toggletip\n align=\"bottom\"\n class=\"element main\"\n [autoAlign]=\"true\"\n [isOpen]=\"open$ | async\"\n [ngClass]=\"{active: !obs.hasDueDate}\"\n >\n <button\n cdsToggletipButton\n [removeClassnames]=\"['cds--toggletip-button']\"\n cdsButton=\"tertiary\"\n size=\"sm\"\n class=\"set-task-due-date-button\"\n >\n {{ 'setTaskDueDate.buttonText' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"calendar--add\" size=\"16\"></svg>\n </button>\n\n <div\n cdsToggletipContent\n [attr.data-carbon-theme]=\"toggletipTheme$ | async\"\n class=\"assign-due-date-popover-content\"\n >\n <cds-date-picker\n *ngIf=\"!obs.hasDueDate\"\n [cdsLayer]=\"1\"\n [label]=\"'Select date'\"\n [placeholder]=\"'dd-mm-jjjj'\"\n dateFormat=\"d/m/Y\"\n [disabled]=\"obs.disabled\"\n (valueChange)=\"onDateValueChange($event)\"\n ></cds-date-picker>\n\n <button\n cdsButton\n class=\"submit-due-date-button\"\n [disabled]=\"!obs.selectedDateString || obs.disabled\"\n (click)=\"onSubmitButtonClick()\"\n >\n {{ 'setTaskDueDate.submitButtonText' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"calendar--add\" size=\"16\"></svg>\n </button>\n </div>\n </cds-toggletip>\n </div>\n</ng-container>\n", styles: [":host ::ng-deep .cds--popover-content{max-inline-size:unset}.due-date-container{display:flex;align-items:center;justify-content:center;position:relative;font-weight:400;font-size:14px;line-height:18px;letter-spacing:.16px;color:var(--cds-link-01)}.due-date-container .bold{font-weight:700}.remove-button{width:100%}.due-date-text{display:flex;justify-content:flex-start;align-items:center;width:100%}.element{opacity:0;visibility:hidden;position:absolute;transition:opacity .3s ease-in-out}.element.active{opacity:1;visibility:visible}.element.main{position:relative}.assign-due-date-popover-content{width:400px;max-inline-size:400px;display:flex;flex-direction:column;gap:16px}.assign-due-date-popover-content .cds--btn{width:100%;max-width:unset}.assign-due-date-popover-content ::ng-deep .cds--date-picker-input__wrapper,.assign-due-date-popover-content ::ng-deep .cds--date-picker-input__wrapper>span,.assign-due-date-popover-content ::ng-deep .cds--date-picker-container,.assign-due-date-popover-content ::ng-deep .cds--date-picker,.assign-due-date-popover-content ::ng-deep .cds--date-picker__input{width:100%}.set-task-due-date-button{width:250px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ToggletipModule }, { kind: "component", type: i2.Toggletip, selector: "cds-toggletip, ibm-toggletip", inputs: ["id", "isOpen"] }, { kind: "directive", type: i2.ToggletipButton, selector: "[cdsToggletipButton], [ibmToggletipButton]", inputs: ["ariaLabel"] }, { kind: "directive", type: i2.ToggletipContent, selector: "[cdsToggletipContent], [ibmToggletipContent]" }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i2.DatePicker, selector: "cds-date-picker, ibm-date-picker", inputs: ["range", "dateFormat", "language", "label", "helperText", "rangeHelperText", "rangeLabel", "placeholder", "ariaLabel", "inputPattern", "id", "value", "theme", "disabled", "readonly", "invalid", "invalidText", "warn", "warnText", "size", "rangeInvalid", "rangeInvalidText", "rangeWarn", "rangeWarnText", "skeleton", "plugins", "flatpickrOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "directive", type: RemoveClassnamesDirective, selector: "[removeClassnames]", inputs: ["removeClassnames"] }] }); }
|
|
1635
1642
|
}
|
|
1636
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1643
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SetTaskDueDateComponent, decorators: [{
|
|
1637
1644
|
type: Component,
|
|
1638
1645
|
args: [{ selector: 'valtimo-set-task-due-date', standalone: true, imports: [
|
|
1639
1646
|
CommonModule,
|
|
@@ -1644,7 +1651,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1644
1651
|
DatePickerModule,
|
|
1645
1652
|
LayerModule,
|
|
1646
1653
|
RemoveClassnamesDirective,
|
|
1647
|
-
], template: "<!--\n ~ Copyright 2015-
|
|
1654
|
+
], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"\n (canModifyTaskSet$ | async) && {\n hasDueDate: hasDueDate$ | async,\n taskDueDate: taskDueDate$ | async,\n selectedDateString: selectedDateString$ | async,\n disabled: disabled$ | async,\n mouseIsOverDueDate: mouseIsOverDueDate$ | async,\n canModifyTask: canModifyTask$ | async,\n } as obs\n \"\n>\n <div\n *ngIf=\"obs.canModifyTask || (!obs.canModifyTask && obs.hasDueDate)\"\n class=\"due-date-container\"\n (mouseenter)=\"onMouseEnterDueDate()\"\n (mouseleave)=\"onMouseLeaveDueDate()\"\n >\n <div\n class=\"due-date-text element\"\n [ngClass]=\"{\n active: obs.canModifyTask ? obs.hasDueDate && !obs.mouseIsOverDueDate : obs.hasDueDate,\n }\"\n >\n <span class=\"bold\">{{ 'setTaskDueDate.dueDateText' | translate }}</span>\n\n \n\n {{ obs.taskDueDate | date: 'dd-MM-yyyy' }}\n </div>\n\n <button\n *ngIf=\"obs.canModifyTask\"\n cdsButton=\"ghost\"\n class=\"element remove-button\"\n [ngClass]=\"{active: obs.hasDueDate && obs.mouseIsOverDueDate}\"\n [disabled]=\"obs.disabled\"\n size=\"sm\"\n (click)=\"onRemoveButtonClick()\"\n >\n {{ 'setTaskDueDate.removeButtonText' | translate }}\n </button>\n\n <cds-toggletip\n align=\"bottom\"\n class=\"element main\"\n [autoAlign]=\"true\"\n [isOpen]=\"open$ | async\"\n [ngClass]=\"{active: !obs.hasDueDate}\"\n >\n <button\n cdsToggletipButton\n [removeClassnames]=\"['cds--toggletip-button']\"\n cdsButton=\"tertiary\"\n size=\"sm\"\n class=\"set-task-due-date-button\"\n >\n {{ 'setTaskDueDate.buttonText' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"calendar--add\" size=\"16\"></svg>\n </button>\n\n <div\n cdsToggletipContent\n [attr.data-carbon-theme]=\"toggletipTheme$ | async\"\n class=\"assign-due-date-popover-content\"\n >\n <cds-date-picker\n *ngIf=\"!obs.hasDueDate\"\n [cdsLayer]=\"1\"\n [label]=\"'Select date'\"\n [placeholder]=\"'dd-mm-jjjj'\"\n dateFormat=\"d/m/Y\"\n [disabled]=\"obs.disabled\"\n (valueChange)=\"onDateValueChange($event)\"\n ></cds-date-picker>\n\n <button\n cdsButton\n class=\"submit-due-date-button\"\n [disabled]=\"!obs.selectedDateString || obs.disabled\"\n (click)=\"onSubmitButtonClick()\"\n >\n {{ 'setTaskDueDate.submitButtonText' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"calendar--add\" size=\"16\"></svg>\n </button>\n </div>\n </cds-toggletip>\n </div>\n</ng-container>\n", styles: [":host ::ng-deep .cds--popover-content{max-inline-size:unset}.due-date-container{display:flex;align-items:center;justify-content:center;position:relative;font-weight:400;font-size:14px;line-height:18px;letter-spacing:.16px;color:var(--cds-link-01)}.due-date-container .bold{font-weight:700}.remove-button{width:100%}.due-date-text{display:flex;justify-content:flex-start;align-items:center;width:100%}.element{opacity:0;visibility:hidden;position:absolute;transition:opacity .3s ease-in-out}.element.active{opacity:1;visibility:visible}.element.main{position:relative}.assign-due-date-popover-content{width:400px;max-inline-size:400px;display:flex;flex-direction:column;gap:16px}.assign-due-date-popover-content .cds--btn{width:100%;max-width:unset}.assign-due-date-popover-content ::ng-deep .cds--date-picker-input__wrapper,.assign-due-date-popover-content ::ng-deep .cds--date-picker-input__wrapper>span,.assign-due-date-popover-content ::ng-deep .cds--date-picker-container,.assign-due-date-popover-content ::ng-deep .cds--date-picker,.assign-due-date-popover-content ::ng-deep .cds--date-picker__input{width:100%}.set-task-due-date-button{width:250px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
1648
1655
|
}], ctorParameters: () => [{ type: i2.IconService }, { type: TaskService }, { type: i9.CdsThemeService }], propDecorators: { canModifyTask: [{
|
|
1649
1656
|
type: Input
|
|
1650
1657
|
}], task: [{
|
|
@@ -1652,7 +1659,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1652
1659
|
}] } });
|
|
1653
1660
|
|
|
1654
1661
|
/*
|
|
1655
|
-
* Copyright 2015-
|
|
1662
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1656
1663
|
*
|
|
1657
1664
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1658
1665
|
* you may not use this file except in compliance with the License.
|
|
@@ -1672,12 +1679,14 @@ class TaskDetailModalComponent {
|
|
|
1672
1679
|
if (value)
|
|
1673
1680
|
this.size$.next(formSizeToCarbonModalSizeMap[value]);
|
|
1674
1681
|
}
|
|
1675
|
-
constructor(router, translateService, permissionService, logger, taskIntermediateSaveService) {
|
|
1682
|
+
constructor(router, translateService, permissionService, logger, taskIntermediateSaveService, sseService, cdr) {
|
|
1676
1683
|
this.router = router;
|
|
1677
1684
|
this.translateService = translateService;
|
|
1678
1685
|
this.permissionService = permissionService;
|
|
1679
1686
|
this.logger = logger;
|
|
1680
1687
|
this.taskIntermediateSaveService = taskIntermediateSaveService;
|
|
1688
|
+
this.sseService = sseService;
|
|
1689
|
+
this.cdr = cdr;
|
|
1681
1690
|
this.formSubmit = new EventEmitter();
|
|
1682
1691
|
this.assignmentOfTaskChanged = new EventEmitter();
|
|
1683
1692
|
this.currentIntermediateSave$ = new BehaviorSubject(null);
|
|
@@ -1692,9 +1701,17 @@ class TaskDetailModalComponent {
|
|
|
1692
1701
|
this.canAssignUserToTask$ = new BehaviorSubject(false);
|
|
1693
1702
|
this.canModifyTask$ = new BehaviorSubject(false);
|
|
1694
1703
|
this.modalCloseEvent$ = new BehaviorSubject(false);
|
|
1704
|
+
this.modalOpen$ = new BehaviorSubject(false);
|
|
1695
1705
|
this._subscriptions = new Subscription();
|
|
1696
1706
|
}
|
|
1697
1707
|
ngOnInit() {
|
|
1708
|
+
this.openTaskSubscription();
|
|
1709
|
+
this.openTaskUpdateSseEventSubscription();
|
|
1710
|
+
}
|
|
1711
|
+
ngOnDestroy() {
|
|
1712
|
+
this._subscriptions.unsubscribe();
|
|
1713
|
+
}
|
|
1714
|
+
openTaskSubscription() {
|
|
1698
1715
|
this._subscriptions.add(this.task$.subscribe(task => {
|
|
1699
1716
|
if (task) {
|
|
1700
1717
|
this.logger.debug('Checking if user allowed to assign a user to Task with id:', task.id);
|
|
@@ -1721,6 +1738,14 @@ class TaskDetailModalComponent {
|
|
|
1721
1738
|
}
|
|
1722
1739
|
}));
|
|
1723
1740
|
}
|
|
1741
|
+
openTaskUpdateSseEventSubscription() {
|
|
1742
|
+
this._subscriptions.add(combineLatest([
|
|
1743
|
+
this.task$,
|
|
1744
|
+
this.sseService.getSseEventObservable('TASK_UPDATE'),
|
|
1745
|
+
])
|
|
1746
|
+
.pipe(filter$1(([task, event]) => task?.id === event.taskId))
|
|
1747
|
+
.subscribe(() => this.closeModal()));
|
|
1748
|
+
}
|
|
1724
1749
|
clearCurrentProgress() {
|
|
1725
1750
|
this._intermediateSaveComponent.clearCurrentProgress();
|
|
1726
1751
|
}
|
|
@@ -1756,23 +1781,24 @@ class TaskDetailModalComponent {
|
|
|
1756
1781
|
this.showConfirmationModal$.next(true);
|
|
1757
1782
|
}
|
|
1758
1783
|
closeModal() {
|
|
1759
|
-
this.
|
|
1784
|
+
this.modalOpen$.next(false);
|
|
1760
1785
|
this.taskIntermediateSaveService.setSubmission({});
|
|
1761
1786
|
this.modalCloseEvent$.next(!this.modalCloseEvent$.getValue());
|
|
1762
1787
|
}
|
|
1763
1788
|
openModal() {
|
|
1764
|
-
this.
|
|
1789
|
+
this.modalOpen$.next(false);
|
|
1790
|
+
setTimeout(() => {
|
|
1791
|
+
this.modalOpen$.next(true);
|
|
1792
|
+
this.cdr.detectChanges();
|
|
1793
|
+
});
|
|
1765
1794
|
}
|
|
1766
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1767
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1795
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskDetailModalComponent, deps: [{ token: i1$2.Router }, { token: i10.TranslateService }, { token: i3.PermissionService }, { token: i4$1.NGXLogger }, { token: TaskIntermediateSaveService }, { token: i6.SseService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1796
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: TaskDetailModalComponent, isStandalone: false, selector: "valtimo-task-detail-modal", inputs: { modalSize: "modalSize" }, outputs: { formSubmit: "formSubmit", assignmentOfTaskChanged: "assignmentOfTaskChanged" }, viewQueries: [{ propertyName: "_intermediateSaveComponent", first: true, predicate: TaskDetailIntermediateSaveComponent, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n id=\"taskDetailModal\"\n [size]=\"size$ | async\"\n [open]=\"modalOpen$ | async\"\n (close)=\"closeModal()\"\n valtimoCdsModal\n [enableOverflow]=\"true\"\n>\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <div class=\"title-container\">\n <p class=\"cds--modal-header__heading cds--type-beta\">{{ (page$ | async)?.title }}</p>\n\n <p class=\"cds--modal-header__label cds--type-delta\">{{ (page$ | async)?.subtitle }}</p>\n\n <p\n class=\"cds--modal-header__label cds--type-delta\"\n *ngIf=\"currentIntermediateSave$ | async as currentIntermediateSave\"\n >\n {{ 'formManagement.intermediateSave.lastSavedBy' | translate }}:\n\n {{\n currentIntermediateSave?.editedBy\n ? currentIntermediateSave?.editedBy\n : currentIntermediateSave.createdBy\n }}\n\n {{ 'formManagement.intermediateSave.on' | translate }}:\n\n {{\n currentIntermediateSave?.editedOn\n ? currentIntermediateSave?.editedOn\n : currentIntermediateSave.createdOn\n }}\n </p>\n\n <ng-container *ngTemplateOutlet=\"assignUserToTask\"></ng-container>\n </div>\n\n @if (processLinkPreloaded$ | async) {\n <valtimo-task-detail-intermediate-save\n class=\"save-buttons-margin\"\n [taskAndProcessLink]=\"taskAndProcessLink$ | async\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n (showModalEvent)=\"onShowModalEvent()\"\n ></valtimo-task-detail-intermediate-save>\n } @else {\n <valtimo-task-detail-intermediate-save\n class=\"save-buttons-margin\"\n [task]=\"task$ | async\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n (showModalEvent)=\"onShowModalEvent()\"\n ></valtimo-task-detail-intermediate-save>\n }\n </cds-modal-header>\n\n <div body class=\"cds--modal-content pb-1\">\n @if (processLinkPreloaded$ | async) {\n <valtimo-task-detail-content\n [taskAndProcessLink]=\"taskAndProcessLink$ | async\"\n [modalClosed]=\"modalCloseEvent$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\n } @else {\n <valtimo-task-detail-content\n [task]=\"task$ | async\"\n [modalClosed]=\"modalCloseEvent$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\n }\n </div>\n</cds-modal>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n\n<ng-template #assignUserToTask>\n <div\n *ngIf=\"{\n task: task$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n canModifyTask: canModifyTask$ | async,\n } as obs\"\n class=\"task-actions\"\n >\n <valtimo-assign-user-to-task\n *ngIf=\"obs.task && assignmentOfTaskChanged\"\n [taskId]=\"obs.task.id\"\n [assigneeId]=\"obs.task.assignee\"\n [canAssignUserToTask]=\"obs.canAssignUserToTask\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n\n <valtimo-set-task-due-date\n [task]=\"obs.task\"\n [canModifyTask]=\"obs.canModifyTask\"\n ></valtimo-set-task-due-date>\n </div>\n</ng-template>\n", styles: ["#taskDetailModal .formio-component-submit{text-align:right}cds-modal-header .cds--modal-header{display:flex;justify-content:space-between}.save-buttons-margin{margin-top:-15px}.task-actions{display:flex;flex-wrap:wrap;width:100%;padding-top:8px;gap:8px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: AssignUserToTaskComponent, selector: "valtimo-assign-user-to-task", inputs: ["taskId", "assigneeId", "canAssignUserToTask"], outputs: ["assignmentOfTaskChanged"] }, { kind: "component", type: TaskDetailContentComponent, selector: "valtimo-task-detail-content", inputs: ["task", "taskAndProcessLink", "modalClosed"], outputs: ["closeModalEvent", "formSubmit", "activeChange"] }, { kind: "component", type: TaskDetailIntermediateSaveComponent, selector: "valtimo-task-detail-intermediate-save", inputs: ["task", "taskAndProcessLink"], outputs: ["currentIntermediateSaveEvent", "showModalEvent"] }, { kind: "component", type: SetTaskDueDateComponent, selector: "valtimo-set-task-due-date", inputs: ["canModifyTask", "task"] }, { kind: "directive", type: i9.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1768
1797
|
}
|
|
1769
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1798
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskDetailModalComponent, decorators: [{
|
|
1770
1799
|
type: Component,
|
|
1771
|
-
args: [{ selector: 'valtimo-task-detail-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-
|
|
1772
|
-
}], ctorParameters: () => [{ type: i1$2.Router }, { type:
|
|
1773
|
-
type: ViewChild,
|
|
1774
|
-
args: ['taskDetailModal']
|
|
1775
|
-
}], _intermediateSaveComponent: [{
|
|
1800
|
+
args: [{ standalone: false, selector: 'valtimo-task-detail-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n id=\"taskDetailModal\"\n [size]=\"size$ | async\"\n [open]=\"modalOpen$ | async\"\n (close)=\"closeModal()\"\n valtimoCdsModal\n [enableOverflow]=\"true\"\n>\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <div class=\"title-container\">\n <p class=\"cds--modal-header__heading cds--type-beta\">{{ (page$ | async)?.title }}</p>\n\n <p class=\"cds--modal-header__label cds--type-delta\">{{ (page$ | async)?.subtitle }}</p>\n\n <p\n class=\"cds--modal-header__label cds--type-delta\"\n *ngIf=\"currentIntermediateSave$ | async as currentIntermediateSave\"\n >\n {{ 'formManagement.intermediateSave.lastSavedBy' | translate }}:\n\n {{\n currentIntermediateSave?.editedBy\n ? currentIntermediateSave?.editedBy\n : currentIntermediateSave.createdBy\n }}\n\n {{ 'formManagement.intermediateSave.on' | translate }}:\n\n {{\n currentIntermediateSave?.editedOn\n ? currentIntermediateSave?.editedOn\n : currentIntermediateSave.createdOn\n }}\n </p>\n\n <ng-container *ngTemplateOutlet=\"assignUserToTask\"></ng-container>\n </div>\n\n @if (processLinkPreloaded$ | async) {\n <valtimo-task-detail-intermediate-save\n class=\"save-buttons-margin\"\n [taskAndProcessLink]=\"taskAndProcessLink$ | async\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n (showModalEvent)=\"onShowModalEvent()\"\n ></valtimo-task-detail-intermediate-save>\n } @else {\n <valtimo-task-detail-intermediate-save\n class=\"save-buttons-margin\"\n [task]=\"task$ | async\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n (showModalEvent)=\"onShowModalEvent()\"\n ></valtimo-task-detail-intermediate-save>\n }\n </cds-modal-header>\n\n <div body class=\"cds--modal-content pb-1\">\n @if (processLinkPreloaded$ | async) {\n <valtimo-task-detail-content\n [taskAndProcessLink]=\"taskAndProcessLink$ | async\"\n [modalClosed]=\"modalCloseEvent$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\n } @else {\n <valtimo-task-detail-content\n [task]=\"task$ | async\"\n [modalClosed]=\"modalCloseEvent$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\n }\n </div>\n</cds-modal>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n\n<ng-template #assignUserToTask>\n <div\n *ngIf=\"{\n task: task$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n canModifyTask: canModifyTask$ | async,\n } as obs\"\n class=\"task-actions\"\n >\n <valtimo-assign-user-to-task\n *ngIf=\"obs.task && assignmentOfTaskChanged\"\n [taskId]=\"obs.task.id\"\n [assigneeId]=\"obs.task.assignee\"\n [canAssignUserToTask]=\"obs.canAssignUserToTask\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n\n <valtimo-set-task-due-date\n [task]=\"obs.task\"\n [canModifyTask]=\"obs.canModifyTask\"\n ></valtimo-set-task-due-date>\n </div>\n</ng-template>\n", styles: ["#taskDetailModal .formio-component-submit{text-align:right}cds-modal-header .cds--modal-header{display:flex;justify-content:space-between}.save-buttons-margin{margin-top:-15px}.task-actions{display:flex;flex-wrap:wrap;width:100%;padding-top:8px;gap:8px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
1801
|
+
}], ctorParameters: () => [{ type: i1$2.Router }, { type: i10.TranslateService }, { type: i3.PermissionService }, { type: i4$1.NGXLogger }, { type: TaskIntermediateSaveService }, { type: i6.SseService }, { type: i0.ChangeDetectorRef }], propDecorators: { _intermediateSaveComponent: [{
|
|
1776
1802
|
type: ViewChild,
|
|
1777
1803
|
args: [TaskDetailIntermediateSaveComponent]
|
|
1778
1804
|
}], formSubmit: [{
|
|
@@ -1784,7 +1810,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1784
1810
|
}] } });
|
|
1785
1811
|
|
|
1786
1812
|
/*
|
|
1787
|
-
* Copyright 2015-
|
|
1813
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1788
1814
|
*
|
|
1789
1815
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1790
1816
|
* you may not use this file except in compliance with the License.
|
|
@@ -1805,7 +1831,7 @@ const TASK_LIST_NO_SEARCH_RESULTS_MESSAGE = {
|
|
|
1805
1831
|
};
|
|
1806
1832
|
|
|
1807
1833
|
/*
|
|
1808
|
-
* Copyright 2015-
|
|
1834
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1809
1835
|
*
|
|
1810
1836
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1811
1837
|
* you may not use this file except in compliance with the License.
|
|
@@ -1821,7 +1847,7 @@ const TASK_LIST_NO_SEARCH_RESULTS_MESSAGE = {
|
|
|
1821
1847
|
*/
|
|
1822
1848
|
|
|
1823
1849
|
/*
|
|
1824
|
-
* Copyright 2015-
|
|
1850
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1825
1851
|
*
|
|
1826
1852
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1827
1853
|
* you may not use this file except in compliance with the License.
|
|
@@ -1842,7 +1868,7 @@ class TaskListComponent {
|
|
|
1842
1868
|
this.setParamsFromQueryParams();
|
|
1843
1869
|
});
|
|
1844
1870
|
}
|
|
1845
|
-
constructor(configService, documentService, permissionService, router, taskService, taskListService, translateService, taskListColumnService, taskListPaginationService, taskListSortService, taskListSearchService, taskListQueryParamService, pageTitleService) {
|
|
1871
|
+
constructor(configService, documentService, permissionService, router, taskService, taskListService, translateService, taskListColumnService, taskListPaginationService, taskListSortService, taskListSearchService, taskListQueryParamService, pageTitleService, sseService) {
|
|
1846
1872
|
this.configService = configService;
|
|
1847
1873
|
this.documentService = documentService;
|
|
1848
1874
|
this.permissionService = permissionService;
|
|
@@ -1856,6 +1882,7 @@ class TaskListComponent {
|
|
|
1856
1882
|
this.taskListSearchService = taskListSearchService;
|
|
1857
1883
|
this.taskListQueryParamService = taskListQueryParamService;
|
|
1858
1884
|
this.pageTitleService = pageTitleService;
|
|
1885
|
+
this.sseService = sseService;
|
|
1859
1886
|
this.ALL_CASES_ID = this.taskListService.ALL_CASES_ID;
|
|
1860
1887
|
this.selectedTaskType$ = this.taskListService.selectedTaskType$;
|
|
1861
1888
|
this._overrideNoResultsMessage$ = new BehaviorSubject(null);
|
|
@@ -1876,24 +1903,24 @@ class TaskListComponent {
|
|
|
1876
1903
|
this.sortStateForCurrentTaskType$ = this.taskListSortService.sortStateForCurrentTaskType$;
|
|
1877
1904
|
this.overrideSortState$ = this.taskListSortService.overrideSortState$;
|
|
1878
1905
|
this._reload$ = new BehaviorSubject(true);
|
|
1879
|
-
this.
|
|
1906
|
+
this.caseDefinitionKey$ = this.taskListService.caseDefinitionKey$;
|
|
1880
1907
|
this.tasks$ = combineLatest([
|
|
1881
1908
|
this.taskListService.loadingStateForCaseDefinition$,
|
|
1882
1909
|
this.selectedTaskType$,
|
|
1883
1910
|
this.taskListPaginationService.paginationForCurrentTaskType$,
|
|
1884
1911
|
this.taskListSortService.sortStringForCurrentTaskType$,
|
|
1885
|
-
this.
|
|
1912
|
+
this.caseDefinitionKey$,
|
|
1886
1913
|
this._enableLoadingAnimation$,
|
|
1887
1914
|
this._reload$,
|
|
1888
1915
|
this.taskListSearchService.otherFilters$,
|
|
1889
1916
|
this.taskListSortService.overrideSortStateString$,
|
|
1890
|
-
]).pipe(filter$1(([loadingStateForCaseDefinition]) => loadingStateForCaseDefinition === false), map(([_, selectedTaskType, paginationForSelectedTaskType, sortStringForSelectedTaskType,
|
|
1917
|
+
]).pipe(filter$1(([loadingStateForCaseDefinition]) => loadingStateForCaseDefinition === false), map(([_, selectedTaskType, paginationForSelectedTaskType, sortStringForSelectedTaskType, caseDefinitionKey, enableLoadingAnimation, reload, otherFilters, overrideSortStateString,]) => this.getTaskListParams(paginationForSelectedTaskType, overrideSortStateString || sortStringForSelectedTaskType, selectedTaskType, caseDefinitionKey, enableLoadingAnimation, reload, otherFilters)), distinctUntilChanged$1((previous, current) => isEqual(previous.params, current.params)), tap(params => {
|
|
1891
1918
|
if (params.enableLoadingAnimation)
|
|
1892
1919
|
this.loadingTasks$.next(true);
|
|
1893
1920
|
this.taskListQueryParamService.setTaskListParams(params.params);
|
|
1894
1921
|
}), switchMap(({ params }) => combineLatest([
|
|
1895
|
-
this.taskService.queryTasksPageV3(params.selectedTaskType, params.params, params.
|
|
1896
|
-
of(!!params.
|
|
1922
|
+
this.taskService.queryTasksPageV3(params.selectedTaskType, params.params, params.caseDefinitionKey, params.otherFilters),
|
|
1923
|
+
of(!!params.caseDefinitionKey),
|
|
1897
1924
|
])), switchMap(([tasksResult, isSpecified]) => this.getTaskListPermissionsRequest(tasksResult, isSpecified)), map(([isSpecified, taskResult, canViewTaskPermissions, canViewCasePermissions]) => {
|
|
1898
1925
|
this.updateTaskListPaginationAfterResponse(Number(taskResult.totalElements));
|
|
1899
1926
|
return this.mapTasksForList(isSpecified, taskResult, canViewTaskPermissions, canViewCasePermissions);
|
|
@@ -1933,15 +1960,26 @@ class TaskListComponent {
|
|
|
1933
1960
|
];
|
|
1934
1961
|
this.setSearchFieldValuesSubject$ = new BehaviorSubject({});
|
|
1935
1962
|
this.clearSearchFieldValuesSubject$ = new Subject();
|
|
1963
|
+
this._subscriptions = new Subscription();
|
|
1936
1964
|
}
|
|
1937
1965
|
ngOnInit() {
|
|
1938
1966
|
this.taskListColumnService.resetTaskListFields();
|
|
1939
1967
|
this.setVisibleTabs();
|
|
1940
1968
|
this.pageTitleService.disableReset();
|
|
1941
1969
|
this.setParamsFromQueryParams();
|
|
1970
|
+
this.openTaskUpdateSseEventSubscription();
|
|
1971
|
+
}
|
|
1972
|
+
openTaskUpdateSseEventSubscription() {
|
|
1973
|
+
this._subscriptions.add(combineLatest([
|
|
1974
|
+
this.sseService.getSseEventObservable('TASK_UPDATE'),
|
|
1975
|
+
this.caseDefinitionKey$,
|
|
1976
|
+
])
|
|
1977
|
+
.pipe(filter$1(([event, caseDefinitionKey]) => caseDefinitionKey === null || event.caseDefinitionKey === caseDefinitionKey))
|
|
1978
|
+
.subscribe(() => this.reload()));
|
|
1942
1979
|
}
|
|
1943
1980
|
ngOnDestroy() {
|
|
1944
1981
|
this.pageTitleService.enableReset();
|
|
1982
|
+
this._subscriptions.unsubscribe();
|
|
1945
1983
|
}
|
|
1946
1984
|
paginationClicked(page, type) {
|
|
1947
1985
|
this.taskListPaginationService.updateTaskPagination(type, { page: page - 1 });
|
|
@@ -1978,7 +2016,7 @@ class TaskListComponent {
|
|
|
1978
2016
|
.pipe(take(1))
|
|
1979
2017
|
.subscribe(document => {
|
|
1980
2018
|
this.router.navigate([
|
|
1981
|
-
`/
|
|
2019
|
+
`/cases/${document.definitionId?.name}/document/${currentTask.businessKey}`,
|
|
1982
2020
|
]);
|
|
1983
2021
|
});
|
|
1984
2022
|
}
|
|
@@ -1995,7 +2033,7 @@ class TaskListComponent {
|
|
|
1995
2033
|
if (definition.item.id) {
|
|
1996
2034
|
this.taskListSortService.resetOverrideSortState();
|
|
1997
2035
|
this.loadingTasks$.next(true);
|
|
1998
|
-
this.taskListService.
|
|
2036
|
+
this.taskListService.setCaseDefinitionKey(definition.item.id);
|
|
1999
2037
|
}
|
|
2000
2038
|
}
|
|
2001
2039
|
reload() {
|
|
@@ -2034,7 +2072,7 @@ class TaskListComponent {
|
|
|
2034
2072
|
enableLoadingAnimation() {
|
|
2035
2073
|
this._enableLoadingAnimation$.next(true);
|
|
2036
2074
|
}
|
|
2037
|
-
getTaskListParams(paginationForSelectedTaskType, sortStringForSelectedTaskType, selectedTaskType,
|
|
2075
|
+
getTaskListParams(paginationForSelectedTaskType, sortStringForSelectedTaskType, selectedTaskType, caseDefinitionKey, enableLoadingAnimation, reload, otherFilters) {
|
|
2038
2076
|
const params = {
|
|
2039
2077
|
...paginationForSelectedTaskType,
|
|
2040
2078
|
...(sortStringForSelectedTaskType && { sort: sortStringForSelectedTaskType }),
|
|
@@ -2045,7 +2083,8 @@ class TaskListComponent {
|
|
|
2045
2083
|
reload,
|
|
2046
2084
|
selectedTaskType,
|
|
2047
2085
|
params,
|
|
2048
|
-
...(
|
|
2086
|
+
...(caseDefinitionKey &&
|
|
2087
|
+
caseDefinitionKey !== this.ALL_CASES_ID && { caseDefinitionKey: caseDefinitionKey }),
|
|
2049
2088
|
...(otherFilters && { otherFilters }),
|
|
2050
2089
|
},
|
|
2051
2090
|
enableLoadingAnimation,
|
|
@@ -2107,9 +2146,9 @@ class TaskListComponent {
|
|
|
2107
2146
|
}
|
|
2108
2147
|
setParamsFromQueryParams() {
|
|
2109
2148
|
const decodedParams = this.taskListQueryParamService.getTaskListQueryParams();
|
|
2110
|
-
if (decodedParams.
|
|
2111
|
-
this.taskListService.
|
|
2112
|
-
this._selectedCaseDefinitionId$.next(decodedParams.
|
|
2149
|
+
if (decodedParams.caseDefinitionKey) {
|
|
2150
|
+
this.taskListService.setCaseDefinitionKey(decodedParams.caseDefinitionKey);
|
|
2151
|
+
this._selectedCaseDefinitionId$.next(decodedParams.caseDefinitionKey);
|
|
2113
2152
|
}
|
|
2114
2153
|
if (decodedParams.otherFilters?.length > 0) {
|
|
2115
2154
|
const searchFieldValues = this.taskListSearchService.mapOtherFilterToSearchValues(decodedParams.otherFilters);
|
|
@@ -2128,27 +2167,27 @@ class TaskListComponent {
|
|
|
2128
2167
|
if (decodedParams.params)
|
|
2129
2168
|
this.taskListPaginationService.updateTaskPagination(this.taskListService.selectedTaskType, decodedParams.params);
|
|
2130
2169
|
}
|
|
2131
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2170
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListComponent, deps: [{ token: i1$1.ConfigService }, { token: i2$1.DocumentService }, { token: i3.PermissionService }, { token: i1$2.Router }, { token: TaskService }, { token: TaskListService }, { token: i10.TranslateService }, { token: TaskListColumnService }, { token: TaskListPaginationService }, { token: TaskListSortService }, { token: TaskListSearchService }, { token: TaskListQueryParamService }, { token: i9.PageTitleService }, { token: i6.SseService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2171
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: TaskListComponent, isStandalone: false, selector: "valtimo-task-list", host: { listeners: { "window:popstate": "onPopState($event)" } }, providers: [
|
|
2133
2172
|
TaskListService,
|
|
2134
2173
|
TaskListColumnService,
|
|
2135
2174
|
TaskListPaginationService,
|
|
2136
2175
|
TaskListSortService,
|
|
2137
2176
|
TaskListSearchService,
|
|
2138
2177
|
TaskListQueryParamService,
|
|
2139
|
-
], viewQueries: [{ propertyName: "_taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\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 overrideSortState: overrideSortState$ | async,\n searchFields: searchFields$ | async,\n loadingSearchFields: loadingSearchFields$ | async,\n caseDefinitionName: caseDefinitionName$ | async,\n noResultsMessage: noResultsMessage$ | async,\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n @if (obs.caseDefinitionName && obs.caseDefinitionName !== ALL_CASES_ID) {\n <ng-container\n *ngTemplateOutlet=\"\n searchFields;\n context: {\n obs: obs,\n }\n \"\n ></ng-container>\n }\n\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 [attr.data-testid]=\"'task-list-tab-' + tab\"\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 [sortState]=\"obs.overrideSortState || 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]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | 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-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n [inputDisabled]=\"obs.loadingSearchFields\"\n [documentDefinitionName]=\"obs.caseDefinitionName\"\n [setValuesSubject$]=\"setSearchFieldValuesSubject$\"\n [clearValuesSubject$]=\"clearSearchFieldValuesSubject$\"\n (doSearch)=\"search($event)\"\n >\n </valtimo-search-fields>\n </div>\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 [attr.data-testid]=\"'task-list-case-dropdown'\"\n [disabled]=\"obs.loadingCaseListItems || (obs.caseListItems || []).length === 1\"\n [skeleton]=\"obs.loadingCaseListItems\"\n (selected)=\"setCaseDefinition($event)\"\n >\n <cds-dropdown-list [items]=\"obs.caseListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-template>\n</ng-container>\n", styles: [".cds--link--disabled{cursor:not-allowed;pointer-events:auto!important;outline:0!important}.case-definition-selection{display:flex;width:250px}\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"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i9.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i9.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i2.Link, selector: "[cdsLink], [ibmLink]", inputs: ["inline", "disabled"] }, { kind: "component", type: i2.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i2.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "directive", type: i9.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i13.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i13.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i9.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "clearValuesSubject$", "defaultValues", "inputDisabled", "externalSearchField"], outputs: ["doSearch"] }, { kind: "component", type: TaskDetailModalComponent, selector: "valtimo-task-detail-modal", inputs: ["modalSize"], outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2178
|
+
], viewQueries: [{ propertyName: "_taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\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 overrideSortState: overrideSortState$ | async,\n searchFields: searchFields$ | async,\n loadingSearchFields: loadingSearchFields$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n noResultsMessage: noResultsMessage$ | async,\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n @if (obs.caseDefinitionKey && obs.caseDefinitionKey !== ALL_CASES_ID) {\n <ng-container\n *ngTemplateOutlet=\"\n searchFields;\n context: {\n obs: obs,\n }\n \"\n ></ng-container>\n }\n\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 [attr.data-testid]=\"'task-list-tab-' + tab\"\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 [sortState]=\"obs.overrideSortState || 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]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | 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-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n [inputDisabled]=\"obs.loadingSearchFields\"\n [caseDefinitionKey]=\"obs.caseDefinitionKey\"\n [setValuesSubject$]=\"setSearchFieldValuesSubject$\"\n [clearValuesSubject$]=\"clearSearchFieldValuesSubject$\"\n (doSearch)=\"search($event)\"\n >\n </valtimo-search-fields>\n </div>\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 [attr.data-testid]=\"'task-list-case-dropdown'\"\n [disabled]=\"obs.loadingCaseListItems || (obs.caseListItems || []).length === 1\"\n [skeleton]=\"obs.loadingCaseListItems\"\n (selected)=\"setCaseDefinition($event)\"\n >\n <cds-dropdown-list [items]=\"obs.caseListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-template>\n</ng-container>\n", styles: [".cds--link--disabled{cursor:not-allowed;pointer-events:auto!important;outline:0!important}.case-definition-selection{display:flex;width:250px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i9.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "showActionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i9.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i12.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i2.Link, selector: "[cdsLink], [ibmLink]", inputs: ["inline", "disabled"] }, { kind: "component", type: i2.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i2.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "directive", type: i9.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i14.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i14.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i9.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "caseDefinitionKey", "setValuesSubject$", "clearValuesSubject$", "defaultValues", "inputDisabled", "externalSearchField"], outputs: ["doSearch"] }, { kind: "component", type: TaskDetailModalComponent, selector: "valtimo-task-detail-modal", inputs: ["modalSize"], outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
2140
2179
|
}
|
|
2141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListComponent, decorators: [{
|
|
2142
2181
|
type: Component,
|
|
2143
|
-
args: [{ selector: 'valtimo-task-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
2182
|
+
args: [{ standalone: false, selector: 'valtimo-task-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
2144
2183
|
TaskListService,
|
|
2145
2184
|
TaskListColumnService,
|
|
2146
2185
|
TaskListPaginationService,
|
|
2147
2186
|
TaskListSortService,
|
|
2148
2187
|
TaskListSearchService,
|
|
2149
2188
|
TaskListQueryParamService,
|
|
2150
|
-
], template: "<!--\n ~ Copyright 2015-
|
|
2151
|
-
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i2$
|
|
2189
|
+
], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\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 overrideSortState: overrideSortState$ | async,\n searchFields: searchFields$ | async,\n loadingSearchFields: loadingSearchFields$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n noResultsMessage: noResultsMessage$ | async,\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n @if (obs.caseDefinitionKey && obs.caseDefinitionKey !== ALL_CASES_ID) {\n <ng-container\n *ngTemplateOutlet=\"\n searchFields;\n context: {\n obs: obs,\n }\n \"\n ></ng-container>\n }\n\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 [attr.data-testid]=\"'task-list-tab-' + tab\"\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 [sortState]=\"obs.overrideSortState || 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]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | 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-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n [inputDisabled]=\"obs.loadingSearchFields\"\n [caseDefinitionKey]=\"obs.caseDefinitionKey\"\n [setValuesSubject$]=\"setSearchFieldValuesSubject$\"\n [clearValuesSubject$]=\"clearSearchFieldValuesSubject$\"\n (doSearch)=\"search($event)\"\n >\n </valtimo-search-fields>\n </div>\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 [attr.data-testid]=\"'task-list-case-dropdown'\"\n [disabled]=\"obs.loadingCaseListItems || (obs.caseListItems || []).length === 1\"\n [skeleton]=\"obs.loadingCaseListItems\"\n (selected)=\"setCaseDefinition($event)\"\n >\n <cds-dropdown-list [items]=\"obs.caseListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-template>\n</ng-container>\n", styles: [".cds--link--disabled{cursor:not-allowed;pointer-events:auto!important;outline:0!important}.case-definition-selection{display:flex;width:250px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
2190
|
+
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i2$1.DocumentService }, { type: i3.PermissionService }, { type: i1$2.Router }, { type: TaskService }, { type: TaskListService }, { type: i10.TranslateService }, { type: TaskListColumnService }, { type: TaskListPaginationService }, { type: TaskListSortService }, { type: TaskListSearchService }, { type: TaskListQueryParamService }, { type: i9.PageTitleService }, { type: i6.SseService }], propDecorators: { _taskDetail: [{
|
|
2152
2191
|
type: ViewChild,
|
|
2153
2192
|
args: ['taskDetail']
|
|
2154
2193
|
}], onPopState: [{
|
|
@@ -2157,7 +2196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2157
2196
|
}] } });
|
|
2158
2197
|
|
|
2159
2198
|
/*
|
|
2160
|
-
* Copyright 2015-
|
|
2199
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2161
2200
|
*
|
|
2162
2201
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2163
2202
|
* you may not use this file except in compliance with the License.
|
|
@@ -2173,7 +2212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2173
2212
|
*/
|
|
2174
2213
|
|
|
2175
2214
|
/*
|
|
2176
|
-
* Copyright 2015-
|
|
2215
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2177
2216
|
*
|
|
2178
2217
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2179
2218
|
* you may not use this file except in compliance with the License.
|
|
@@ -2189,7 +2228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2189
2228
|
*/
|
|
2190
2229
|
|
|
2191
2230
|
/*
|
|
2192
|
-
* Copyright 2015-
|
|
2231
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2193
2232
|
*
|
|
2194
2233
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2195
2234
|
* you may not use this file except in compliance with the License.
|
|
@@ -2210,7 +2249,7 @@ var TaskListColumnDefaultSort;
|
|
|
2210
2249
|
})(TaskListColumnDefaultSort || (TaskListColumnDefaultSort = {}));
|
|
2211
2250
|
|
|
2212
2251
|
/*
|
|
2213
|
-
* Copyright 2015-
|
|
2252
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2214
2253
|
*
|
|
2215
2254
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2216
2255
|
* you may not use this file except in compliance with the License.
|
|
@@ -2226,7 +2265,7 @@ var TaskListColumnDefaultSort;
|
|
|
2226
2265
|
*/
|
|
2227
2266
|
|
|
2228
2267
|
/*
|
|
2229
|
-
* Copyright 2015-
|
|
2268
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2230
2269
|
*
|
|
2231
2270
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2232
2271
|
* you may not use this file except in compliance with the License.
|
|
@@ -2268,7 +2307,23 @@ var TaskListSearchDropdownDataProvider;
|
|
|
2268
2307
|
})(TaskListSearchDropdownDataProvider || (TaskListSearchDropdownDataProvider = {}));
|
|
2269
2308
|
|
|
2270
2309
|
/*
|
|
2271
|
-
* Copyright 2015-
|
|
2310
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2311
|
+
*
|
|
2312
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2313
|
+
* you may not use this file except in compliance with the License.
|
|
2314
|
+
* You may obtain a copy of the License at
|
|
2315
|
+
*
|
|
2316
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2317
|
+
*
|
|
2318
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2319
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2320
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2321
|
+
* See the License for the specific language governing permissions and
|
|
2322
|
+
* limitations under the License.
|
|
2323
|
+
*/
|
|
2324
|
+
|
|
2325
|
+
/*
|
|
2326
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2272
2327
|
*
|
|
2273
2328
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2274
2329
|
* you may not use this file except in compliance with the License.
|
|
@@ -2284,7 +2339,7 @@ var TaskListSearchDropdownDataProvider;
|
|
|
2284
2339
|
*/
|
|
2285
2340
|
|
|
2286
2341
|
/*
|
|
2287
|
-
* Copyright 2015-
|
|
2342
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2288
2343
|
*
|
|
2289
2344
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2290
2345
|
* you may not use this file except in compliance with the License.
|
|
@@ -2307,11 +2362,11 @@ const routes = [
|
|
|
2307
2362
|
},
|
|
2308
2363
|
];
|
|
2309
2364
|
class TaskRoutingModule {
|
|
2310
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2311
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2312
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2365
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2366
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, i1$2.RouterModule], exports: [RouterModule] }); }
|
|
2367
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
2313
2368
|
}
|
|
2314
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2369
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskRoutingModule, decorators: [{
|
|
2315
2370
|
type: NgModule,
|
|
2316
2371
|
args: [{
|
|
2317
2372
|
declarations: [],
|
|
@@ -2321,7 +2376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2321
2376
|
}] });
|
|
2322
2377
|
|
|
2323
2378
|
/*
|
|
2324
|
-
* Copyright 2015-
|
|
2379
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2325
2380
|
*
|
|
2326
2381
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2327
2382
|
* you may not use this file except in compliance with the License.
|
|
@@ -2336,8 +2391,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2336
2391
|
* limitations under the License.
|
|
2337
2392
|
*/
|
|
2338
2393
|
class TaskModule {
|
|
2339
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2340
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2394
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2395
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: TaskModule, declarations: [TaskListComponent, TaskDetailModalComponent], imports: [CommonModule,
|
|
2341
2396
|
TaskRoutingModule,
|
|
2342
2397
|
CarbonListModule,
|
|
2343
2398
|
PageHeaderModule,
|
|
@@ -2346,14 +2401,14 @@ class TaskModule {
|
|
|
2346
2401
|
SearchableDropdownSelectModule,
|
|
2347
2402
|
CamundaFormModule,
|
|
2348
2403
|
BrowserAnimationsModule,
|
|
2349
|
-
FormsModule, i10.
|
|
2404
|
+
FormsModule, i10.TranslateModule, NgbModule,
|
|
2350
2405
|
FormIoModule,
|
|
2351
2406
|
ModalModule,
|
|
2352
2407
|
LinkModule,
|
|
2353
2408
|
ProcessLinkModule,
|
|
2354
2409
|
TabsModule,
|
|
2355
2410
|
ContentSwitcherModule,
|
|
2356
|
-
|
|
2411
|
+
RenderInPageHeaderDirective,
|
|
2357
2412
|
DropdownModule,
|
|
2358
2413
|
ButtonModule,
|
|
2359
2414
|
IconModule,
|
|
@@ -2364,8 +2419,8 @@ class TaskModule {
|
|
|
2364
2419
|
TaskDetailContentComponent,
|
|
2365
2420
|
TaskDetailIntermediateSaveComponent,
|
|
2366
2421
|
SetTaskDueDateComponent,
|
|
2367
|
-
|
|
2368
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2422
|
+
ValtimoCdsModalDirective], exports: [TaskListComponent, TaskDetailModalComponent] }); }
|
|
2423
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskModule, imports: [CommonModule,
|
|
2369
2424
|
TaskRoutingModule,
|
|
2370
2425
|
CarbonListModule,
|
|
2371
2426
|
PageHeaderModule,
|
|
@@ -2375,10 +2430,6 @@ class TaskModule {
|
|
|
2375
2430
|
CamundaFormModule,
|
|
2376
2431
|
BrowserAnimationsModule,
|
|
2377
2432
|
FormsModule,
|
|
2378
|
-
ToastrModule.forRoot({
|
|
2379
|
-
positionClass: 'toast-bottom-full-width',
|
|
2380
|
-
preventDuplicates: true,
|
|
2381
|
-
}),
|
|
2382
2433
|
TranslateModule.forRoot({
|
|
2383
2434
|
loader: {
|
|
2384
2435
|
provide: TranslateLoader,
|
|
@@ -2393,7 +2444,6 @@ class TaskModule {
|
|
|
2393
2444
|
ProcessLinkModule,
|
|
2394
2445
|
TabsModule,
|
|
2395
2446
|
ContentSwitcherModule,
|
|
2396
|
-
RenderInPageHeaderDirectiveModule,
|
|
2397
2447
|
DropdownModule,
|
|
2398
2448
|
ButtonModule,
|
|
2399
2449
|
IconModule,
|
|
@@ -2403,10 +2453,9 @@ class TaskModule {
|
|
|
2403
2453
|
AssignUserToTaskComponent,
|
|
2404
2454
|
TaskDetailContentComponent,
|
|
2405
2455
|
TaskDetailIntermediateSaveComponent,
|
|
2406
|
-
SetTaskDueDateComponent
|
|
2407
|
-
ValtimoCdsModalDirectiveModule] }); }
|
|
2456
|
+
SetTaskDueDateComponent] }); }
|
|
2408
2457
|
}
|
|
2409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2458
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskModule, decorators: [{
|
|
2410
2459
|
type: NgModule,
|
|
2411
2460
|
args: [{
|
|
2412
2461
|
declarations: [TaskListComponent, TaskDetailModalComponent],
|
|
@@ -2421,10 +2470,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2421
2470
|
CamundaFormModule,
|
|
2422
2471
|
BrowserAnimationsModule,
|
|
2423
2472
|
FormsModule,
|
|
2424
|
-
ToastrModule.forRoot({
|
|
2425
|
-
positionClass: 'toast-bottom-full-width',
|
|
2426
|
-
preventDuplicates: true,
|
|
2427
|
-
}),
|
|
2428
2473
|
TranslateModule.forRoot({
|
|
2429
2474
|
loader: {
|
|
2430
2475
|
provide: TranslateLoader,
|
|
@@ -2439,7 +2484,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2439
2484
|
ProcessLinkModule,
|
|
2440
2485
|
TabsModule,
|
|
2441
2486
|
ContentSwitcherModule,
|
|
2442
|
-
|
|
2487
|
+
RenderInPageHeaderDirective,
|
|
2443
2488
|
DropdownModule,
|
|
2444
2489
|
ButtonModule,
|
|
2445
2490
|
IconModule,
|
|
@@ -2450,14 +2495,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2450
2495
|
TaskDetailContentComponent,
|
|
2451
2496
|
TaskDetailIntermediateSaveComponent,
|
|
2452
2497
|
SetTaskDueDateComponent,
|
|
2453
|
-
|
|
2498
|
+
ValtimoCdsModalDirective,
|
|
2454
2499
|
],
|
|
2455
2500
|
exports: [TaskListComponent, TaskDetailModalComponent],
|
|
2456
2501
|
}]
|
|
2457
2502
|
}] });
|
|
2458
2503
|
|
|
2459
2504
|
/*
|
|
2460
|
-
* Copyright 2015-
|
|
2505
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2461
2506
|
*
|
|
2462
2507
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2463
2508
|
* you may not use this file except in compliance with the License.
|