@valtimo/task 12.14.1 → 13.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/valtimo-task.mjs +229 -178
- package/fesm2022/valtimo-task.mjs.map +1 -1
- package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts +3 -2
- package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts.map +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.
|
|
@@ -787,6 +785,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
787
785
|
* limitations under the License.
|
|
788
786
|
*/
|
|
789
787
|
class AssignUserToTaskComponent {
|
|
788
|
+
set taskId(value) {
|
|
789
|
+
if (this._taskId === value)
|
|
790
|
+
return;
|
|
791
|
+
this._taskId = value;
|
|
792
|
+
this.fetchCandidateUsers(value);
|
|
793
|
+
}
|
|
790
794
|
set canAssignUserToTask(value) {
|
|
791
795
|
this.canAssignUserToTaskSet$.next(true);
|
|
792
796
|
this.canAssignUserToTask$.next(value);
|
|
@@ -818,7 +822,6 @@ class AssignUserToTaskComponent {
|
|
|
818
822
|
this.iconService.registerAll([UserFollow16]);
|
|
819
823
|
}
|
|
820
824
|
ngOnInit() {
|
|
821
|
-
this.fetchCandidateUsers();
|
|
822
825
|
this.openHideElementSubscription();
|
|
823
826
|
}
|
|
824
827
|
ngOnChanges(changes) {
|
|
@@ -836,7 +839,7 @@ class AssignUserToTaskComponent {
|
|
|
836
839
|
this.disable();
|
|
837
840
|
combineLatest([
|
|
838
841
|
this._candidateUsersForTask$,
|
|
839
|
-
this.taskService.assignTask(this.
|
|
842
|
+
this.taskService.assignTask(this._taskId, { assignee: userId }),
|
|
840
843
|
])
|
|
841
844
|
.pipe(take$1(1))
|
|
842
845
|
.subscribe({
|
|
@@ -856,7 +859,7 @@ class AssignUserToTaskComponent {
|
|
|
856
859
|
unassignTask() {
|
|
857
860
|
this.disable();
|
|
858
861
|
this.taskService
|
|
859
|
-
.unassignTask(this.
|
|
862
|
+
.unassignTask(this._taskId)
|
|
860
863
|
.pipe(tap(() => {
|
|
861
864
|
this.emitChange();
|
|
862
865
|
this.enable();
|
|
@@ -910,11 +913,12 @@ class AssignUserToTaskComponent {
|
|
|
910
913
|
this.open$.next(true);
|
|
911
914
|
setTimeout(() => this.open$.next(false));
|
|
912
915
|
}
|
|
913
|
-
fetchCandidateUsers() {
|
|
916
|
+
fetchCandidateUsers(taskId) {
|
|
917
|
+
this.disable();
|
|
914
918
|
this.canAssignUserToTask$
|
|
915
919
|
.pipe(filter$1(allowed => !!allowed), take$1(1))
|
|
916
920
|
.subscribe(() => {
|
|
917
|
-
this.taskService.getCandidateUsers(
|
|
921
|
+
this.taskService.getCandidateUsers(taskId).subscribe(candidateUsers => {
|
|
918
922
|
this._candidateUsersForTask$.next(candidateUsers);
|
|
919
923
|
if (this.assigneeId) {
|
|
920
924
|
this.assignedIdOnServer$.next(this.assigneeId);
|
|
@@ -939,10 +943,10 @@ class AssignUserToTaskComponent {
|
|
|
939
943
|
}
|
|
940
944
|
}));
|
|
941
945
|
}
|
|
942
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
943
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
946
|
+
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 }); }
|
|
947
|
+
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
948
|
}
|
|
945
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
949
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: AssignUserToTaskComponent, decorators: [{
|
|
946
950
|
type: Component,
|
|
947
951
|
args: [{ selector: 'valtimo-assign-user-to-task', standalone: true, imports: [
|
|
948
952
|
CommonModule,
|
|
@@ -955,7 +959,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
955
959
|
DatePickerModule,
|
|
956
960
|
ComboBoxModule,
|
|
957
961
|
RemoveClassnamesDirective,
|
|
958
|
-
], template: "<!--\n ~ Copyright 2015-
|
|
962
|
+
], 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
963
|
}], ctorParameters: () => [{ type: TaskService }, { type: i2.IconService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i9.CdsThemeService }], propDecorators: { taskId: [{
|
|
960
964
|
type: Input
|
|
961
965
|
}], assigneeId: [{
|
|
@@ -967,7 +971,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
967
971
|
}] } });
|
|
968
972
|
|
|
969
973
|
/*
|
|
970
|
-
* Copyright 2015-
|
|
974
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
971
975
|
*
|
|
972
976
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
973
977
|
* you may not use this file except in compliance with the License.
|
|
@@ -990,7 +994,7 @@ var PERMISSION_ACTION;
|
|
|
990
994
|
var TASK_DETAIL_PERMISSION_RESOURCE;
|
|
991
995
|
(function (TASK_DETAIL_PERMISSION_RESOURCE) {
|
|
992
996
|
TASK_DETAIL_PERMISSION_RESOURCE["jsonSchemaDocument"] = "com.ritense.document.domain.impl.JsonSchemaDocument";
|
|
993
|
-
TASK_DETAIL_PERMISSION_RESOURCE["task"] = "com.ritense.valtimo.
|
|
997
|
+
TASK_DETAIL_PERMISSION_RESOURCE["task"] = "com.ritense.valtimo.operaton.domain.OperatonTask";
|
|
994
998
|
})(TASK_DETAIL_PERMISSION_RESOURCE || (TASK_DETAIL_PERMISSION_RESOURCE = {}));
|
|
995
999
|
const CAN_ASSIGN_TASK_PERMISSION = {
|
|
996
1000
|
action: PERMISSION_ACTION.assign,
|
|
@@ -1010,7 +1014,7 @@ const CAN_MODIFY_TASK_PERMISSION = {
|
|
|
1010
1014
|
};
|
|
1011
1015
|
|
|
1012
1016
|
/*
|
|
1013
|
-
* Copyright 2015-
|
|
1017
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1014
1018
|
*
|
|
1015
1019
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1016
1020
|
* you may not use this file except in compliance with the License.
|
|
@@ -1046,9 +1050,10 @@ class TaskDetailContentComponent {
|
|
|
1046
1050
|
get viewInitialized$() {
|
|
1047
1051
|
return this._viewInitialized$.pipe(filter(initialized => initialized));
|
|
1048
1052
|
}
|
|
1049
|
-
constructor(configService, documentService, iconService, logger, modalService, permissionService, processLinkService, router, stateService, taskIntermediateSaveService, taskService,
|
|
1053
|
+
constructor(configService, documentService, globalNotificationService, iconService, logger, modalService, permissionService, processLinkService, router, stateService, taskIntermediateSaveService, taskService, translateService, formViewModel, formCustomComponentConfig, urlResolverService) {
|
|
1050
1054
|
this.configService = configService;
|
|
1051
1055
|
this.documentService = documentService;
|
|
1056
|
+
this.globalNotificationService = globalNotificationService;
|
|
1052
1057
|
this.iconService = iconService;
|
|
1053
1058
|
this.logger = logger;
|
|
1054
1059
|
this.modalService = modalService;
|
|
@@ -1058,7 +1063,6 @@ class TaskDetailContentComponent {
|
|
|
1058
1063
|
this.stateService = stateService;
|
|
1059
1064
|
this.taskIntermediateSaveService = taskIntermediateSaveService;
|
|
1060
1065
|
this.taskService = taskService;
|
|
1061
|
-
this.toastr = toastr;
|
|
1062
1066
|
this.translateService = translateService;
|
|
1063
1067
|
this.formViewModel = formViewModel;
|
|
1064
1068
|
this.formCustomComponentConfig = formCustomComponentConfig;
|
|
@@ -1137,7 +1141,10 @@ class TaskDetailContentComponent {
|
|
|
1137
1141
|
completeTask(task) {
|
|
1138
1142
|
if (!task)
|
|
1139
1143
|
return;
|
|
1140
|
-
this.
|
|
1144
|
+
this.globalNotificationService.showToast({
|
|
1145
|
+
title: `${task.name} ${this.translateService.instant('taskDetail.taskCompleted')}`,
|
|
1146
|
+
type: 'success',
|
|
1147
|
+
});
|
|
1141
1148
|
this.task$.next(null);
|
|
1142
1149
|
this.formSubmit.emit();
|
|
1143
1150
|
this.closeModalEvent.emit();
|
|
@@ -1336,20 +1343,20 @@ class TaskDetailContentComponent {
|
|
|
1336
1343
|
}
|
|
1337
1344
|
setDocumentDefinitionNameInService(task) {
|
|
1338
1345
|
this.documentService
|
|
1339
|
-
.
|
|
1340
|
-
.subscribe(
|
|
1341
|
-
const
|
|
1342
|
-
this.modalService.
|
|
1343
|
-
this.stateService.setDocumentDefinitionName(
|
|
1346
|
+
.getProcessDefinitionCaseDefinitionFromProcessInstanceId(task.processInstanceId)
|
|
1347
|
+
.subscribe(ProcessDefinitionCaseDefinition => {
|
|
1348
|
+
const caseDefinitionKey = ProcessDefinitionCaseDefinition.id.caseDefinitionId.key;
|
|
1349
|
+
this.modalService.setCaseDefinitionKey(caseDefinitionKey);
|
|
1350
|
+
this.stateService.setDocumentDefinitionName(caseDefinitionKey);
|
|
1344
1351
|
});
|
|
1345
1352
|
}
|
|
1346
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1347
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1353
|
+
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 }); }
|
|
1354
|
+
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
1355
|
}
|
|
1349
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1356
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskDetailContentComponent, decorators: [{
|
|
1350
1357
|
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$
|
|
1358
|
+
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" }]
|
|
1359
|
+
}], 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
1360
|
type: Optional
|
|
1354
1361
|
}, {
|
|
1355
1362
|
type: Inject,
|
|
@@ -1386,7 +1393,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1386
1393
|
}] } });
|
|
1387
1394
|
|
|
1388
1395
|
/*
|
|
1389
|
-
* Copyright 2015-
|
|
1396
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1390
1397
|
*
|
|
1391
1398
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1392
1399
|
* you may not use this file except in compliance with the License.
|
|
@@ -1428,13 +1435,13 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1428
1435
|
});
|
|
1429
1436
|
this.getCurrentProgress(value.task);
|
|
1430
1437
|
}
|
|
1431
|
-
constructor(configService,
|
|
1438
|
+
constructor(configService, globalNotificationService, iconService, taskIntermediateSaveService, taskService, translateService) {
|
|
1432
1439
|
this.configService = configService;
|
|
1440
|
+
this.globalNotificationService = globalNotificationService;
|
|
1433
1441
|
this.iconService = iconService;
|
|
1434
|
-
this.translateService = translateService;
|
|
1435
1442
|
this.taskIntermediateSaveService = taskIntermediateSaveService;
|
|
1436
1443
|
this.taskService = taskService;
|
|
1437
|
-
this.
|
|
1444
|
+
this.translateService = translateService;
|
|
1438
1445
|
this.currentIntermediateSaveEvent = new EventEmitter();
|
|
1439
1446
|
this.showModalEvent = new EventEmitter();
|
|
1440
1447
|
this.formFlowInstanceId$ = new BehaviorSubject(undefined);
|
|
@@ -1460,12 +1467,18 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1460
1467
|
}), take$1(1))
|
|
1461
1468
|
.subscribe({
|
|
1462
1469
|
next: intermediateSubmission => {
|
|
1463
|
-
this.
|
|
1470
|
+
this.globalNotificationService.showToast({
|
|
1471
|
+
title: this.translateService.instant('formManagement.intermediateSave.success'),
|
|
1472
|
+
type: 'success',
|
|
1473
|
+
});
|
|
1464
1474
|
this.currentIntermediateSave = this.formatIntermediateSubmission(intermediateSubmission);
|
|
1465
1475
|
this.currentIntermediateSaveEvent.emit(this.currentIntermediateSave);
|
|
1466
1476
|
},
|
|
1467
1477
|
error: () => {
|
|
1468
|
-
this.
|
|
1478
|
+
this.globalNotificationService.showToast({
|
|
1479
|
+
title: this.translateService.instant('formManagement.intermediateSave.error'),
|
|
1480
|
+
type: 'error',
|
|
1481
|
+
});
|
|
1469
1482
|
},
|
|
1470
1483
|
});
|
|
1471
1484
|
}
|
|
@@ -1513,10 +1526,10 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1513
1526
|
this.currentIntermediateSaveEvent.emit(this.currentIntermediateSave);
|
|
1514
1527
|
});
|
|
1515
1528
|
}
|
|
1516
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1517
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1529
|
+
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 }); }
|
|
1530
|
+
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
1531
|
}
|
|
1519
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1532
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskDetailIntermediateSaveComponent, decorators: [{
|
|
1520
1533
|
type: Component,
|
|
1521
1534
|
args: [{ selector: 'valtimo-task-detail-intermediate-save', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1522
1535
|
CommonModule,
|
|
@@ -1526,8 +1539,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1526
1539
|
IconModule,
|
|
1527
1540
|
ModalModule,
|
|
1528
1541
|
TooltipModule,
|
|
1529
|
-
], template: "<!--\n ~ Copyright 2015-
|
|
1530
|
-
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type:
|
|
1542
|
+
], 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"] }]
|
|
1543
|
+
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i1$1.GlobalNotificationService }, { type: i2.IconService }, { type: TaskIntermediateSaveService }, { type: TaskService }, { type: i10.TranslateService }], propDecorators: { task: [{
|
|
1531
1544
|
type: Input
|
|
1532
1545
|
}], taskAndProcessLink: [{
|
|
1533
1546
|
type: Input
|
|
@@ -1538,7 +1551,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1538
1551
|
}] } });
|
|
1539
1552
|
|
|
1540
1553
|
/*
|
|
1541
|
-
* Copyright 2015-
|
|
1554
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1542
1555
|
*
|
|
1543
1556
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1544
1557
|
* you may not use this file except in compliance with the License.
|
|
@@ -1630,10 +1643,10 @@ class SetTaskDueDateComponent {
|
|
|
1630
1643
|
onMouseLeaveDueDate() {
|
|
1631
1644
|
this.mouseIsOverDueDate$.next(false);
|
|
1632
1645
|
}
|
|
1633
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1634
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1646
|
+
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 }); }
|
|
1647
|
+
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
1648
|
}
|
|
1636
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1649
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SetTaskDueDateComponent, decorators: [{
|
|
1637
1650
|
type: Component,
|
|
1638
1651
|
args: [{ selector: 'valtimo-set-task-due-date', standalone: true, imports: [
|
|
1639
1652
|
CommonModule,
|
|
@@ -1644,7 +1657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1644
1657
|
DatePickerModule,
|
|
1645
1658
|
LayerModule,
|
|
1646
1659
|
RemoveClassnamesDirective,
|
|
1647
|
-
], template: "<!--\n ~ Copyright 2015-
|
|
1660
|
+
], 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
1661
|
}], ctorParameters: () => [{ type: i2.IconService }, { type: TaskService }, { type: i9.CdsThemeService }], propDecorators: { canModifyTask: [{
|
|
1649
1662
|
type: Input
|
|
1650
1663
|
}], task: [{
|
|
@@ -1652,7 +1665,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1652
1665
|
}] } });
|
|
1653
1666
|
|
|
1654
1667
|
/*
|
|
1655
|
-
* Copyright 2015-
|
|
1668
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1656
1669
|
*
|
|
1657
1670
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1658
1671
|
* you may not use this file except in compliance with the License.
|
|
@@ -1672,12 +1685,14 @@ class TaskDetailModalComponent {
|
|
|
1672
1685
|
if (value)
|
|
1673
1686
|
this.size$.next(formSizeToCarbonModalSizeMap[value]);
|
|
1674
1687
|
}
|
|
1675
|
-
constructor(router, translateService, permissionService, logger, taskIntermediateSaveService) {
|
|
1688
|
+
constructor(router, translateService, permissionService, logger, taskIntermediateSaveService, sseService, cdr) {
|
|
1676
1689
|
this.router = router;
|
|
1677
1690
|
this.translateService = translateService;
|
|
1678
1691
|
this.permissionService = permissionService;
|
|
1679
1692
|
this.logger = logger;
|
|
1680
1693
|
this.taskIntermediateSaveService = taskIntermediateSaveService;
|
|
1694
|
+
this.sseService = sseService;
|
|
1695
|
+
this.cdr = cdr;
|
|
1681
1696
|
this.formSubmit = new EventEmitter();
|
|
1682
1697
|
this.assignmentOfTaskChanged = new EventEmitter();
|
|
1683
1698
|
this.currentIntermediateSave$ = new BehaviorSubject(null);
|
|
@@ -1692,9 +1707,17 @@ class TaskDetailModalComponent {
|
|
|
1692
1707
|
this.canAssignUserToTask$ = new BehaviorSubject(false);
|
|
1693
1708
|
this.canModifyTask$ = new BehaviorSubject(false);
|
|
1694
1709
|
this.modalCloseEvent$ = new BehaviorSubject(false);
|
|
1710
|
+
this.modalOpen$ = new BehaviorSubject(false);
|
|
1695
1711
|
this._subscriptions = new Subscription();
|
|
1696
1712
|
}
|
|
1697
1713
|
ngOnInit() {
|
|
1714
|
+
this.openTaskSubscription();
|
|
1715
|
+
this.openTaskUpdateSseEventSubscription();
|
|
1716
|
+
}
|
|
1717
|
+
ngOnDestroy() {
|
|
1718
|
+
this._subscriptions.unsubscribe();
|
|
1719
|
+
}
|
|
1720
|
+
openTaskSubscription() {
|
|
1698
1721
|
this._subscriptions.add(this.task$.subscribe(task => {
|
|
1699
1722
|
if (task) {
|
|
1700
1723
|
this.logger.debug('Checking if user allowed to assign a user to Task with id:', task.id);
|
|
@@ -1721,6 +1744,14 @@ class TaskDetailModalComponent {
|
|
|
1721
1744
|
}
|
|
1722
1745
|
}));
|
|
1723
1746
|
}
|
|
1747
|
+
openTaskUpdateSseEventSubscription() {
|
|
1748
|
+
this._subscriptions.add(combineLatest([
|
|
1749
|
+
this.task$,
|
|
1750
|
+
this.sseService.getSseEventObservable('TASK_UPDATE'),
|
|
1751
|
+
])
|
|
1752
|
+
.pipe(filter$1(([task, event]) => task?.id === event.taskId))
|
|
1753
|
+
.subscribe(() => this.closeModal()));
|
|
1754
|
+
}
|
|
1724
1755
|
clearCurrentProgress() {
|
|
1725
1756
|
this._intermediateSaveComponent.clearCurrentProgress();
|
|
1726
1757
|
}
|
|
@@ -1756,23 +1787,24 @@ class TaskDetailModalComponent {
|
|
|
1756
1787
|
this.showConfirmationModal$.next(true);
|
|
1757
1788
|
}
|
|
1758
1789
|
closeModal() {
|
|
1759
|
-
this.
|
|
1790
|
+
this.modalOpen$.next(false);
|
|
1760
1791
|
this.taskIntermediateSaveService.setSubmission({});
|
|
1761
1792
|
this.modalCloseEvent$.next(!this.modalCloseEvent$.getValue());
|
|
1762
1793
|
}
|
|
1763
1794
|
openModal() {
|
|
1764
|
-
this.
|
|
1795
|
+
this.modalOpen$.next(false);
|
|
1796
|
+
setTimeout(() => {
|
|
1797
|
+
this.modalOpen$.next(true);
|
|
1798
|
+
this.cdr.detectChanges();
|
|
1799
|
+
});
|
|
1765
1800
|
}
|
|
1766
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1767
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1801
|
+
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 }); }
|
|
1802
|
+
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 [minContentHeight]=\"480\"\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: ["minContentHeight"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1768
1803
|
}
|
|
1769
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1804
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskDetailModalComponent, decorators: [{
|
|
1770
1805
|
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: [{
|
|
1806
|
+
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 [minContentHeight]=\"480\"\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"] }]
|
|
1807
|
+
}], 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
1808
|
type: ViewChild,
|
|
1777
1809
|
args: [TaskDetailIntermediateSaveComponent]
|
|
1778
1810
|
}], formSubmit: [{
|
|
@@ -1784,7 +1816,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1784
1816
|
}] } });
|
|
1785
1817
|
|
|
1786
1818
|
/*
|
|
1787
|
-
* Copyright 2015-
|
|
1819
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1788
1820
|
*
|
|
1789
1821
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1790
1822
|
* you may not use this file except in compliance with the License.
|
|
@@ -1805,7 +1837,7 @@ const TASK_LIST_NO_SEARCH_RESULTS_MESSAGE = {
|
|
|
1805
1837
|
};
|
|
1806
1838
|
|
|
1807
1839
|
/*
|
|
1808
|
-
* Copyright 2015-
|
|
1840
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1809
1841
|
*
|
|
1810
1842
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1811
1843
|
* you may not use this file except in compliance with the License.
|
|
@@ -1821,7 +1853,7 @@ const TASK_LIST_NO_SEARCH_RESULTS_MESSAGE = {
|
|
|
1821
1853
|
*/
|
|
1822
1854
|
|
|
1823
1855
|
/*
|
|
1824
|
-
* Copyright 2015-
|
|
1856
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
1825
1857
|
*
|
|
1826
1858
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1827
1859
|
* you may not use this file except in compliance with the License.
|
|
@@ -1842,7 +1874,7 @@ class TaskListComponent {
|
|
|
1842
1874
|
this.setParamsFromQueryParams();
|
|
1843
1875
|
});
|
|
1844
1876
|
}
|
|
1845
|
-
constructor(configService, documentService, permissionService, router, taskService, taskListService, translateService, taskListColumnService, taskListPaginationService, taskListSortService, taskListSearchService, taskListQueryParamService, pageTitleService) {
|
|
1877
|
+
constructor(configService, documentService, permissionService, router, taskService, taskListService, translateService, taskListColumnService, taskListPaginationService, taskListSortService, taskListSearchService, taskListQueryParamService, pageTitleService, sseService) {
|
|
1846
1878
|
this.configService = configService;
|
|
1847
1879
|
this.documentService = documentService;
|
|
1848
1880
|
this.permissionService = permissionService;
|
|
@@ -1856,6 +1888,7 @@ class TaskListComponent {
|
|
|
1856
1888
|
this.taskListSearchService = taskListSearchService;
|
|
1857
1889
|
this.taskListQueryParamService = taskListQueryParamService;
|
|
1858
1890
|
this.pageTitleService = pageTitleService;
|
|
1891
|
+
this.sseService = sseService;
|
|
1859
1892
|
this.ALL_CASES_ID = this.taskListService.ALL_CASES_ID;
|
|
1860
1893
|
this.selectedTaskType$ = this.taskListService.selectedTaskType$;
|
|
1861
1894
|
this._overrideNoResultsMessage$ = new BehaviorSubject(null);
|
|
@@ -1876,24 +1909,24 @@ class TaskListComponent {
|
|
|
1876
1909
|
this.sortStateForCurrentTaskType$ = this.taskListSortService.sortStateForCurrentTaskType$;
|
|
1877
1910
|
this.overrideSortState$ = this.taskListSortService.overrideSortState$;
|
|
1878
1911
|
this._reload$ = new BehaviorSubject(true);
|
|
1879
|
-
this.
|
|
1912
|
+
this.caseDefinitionKey$ = this.taskListService.caseDefinitionKey$;
|
|
1880
1913
|
this.tasks$ = combineLatest([
|
|
1881
1914
|
this.taskListService.loadingStateForCaseDefinition$,
|
|
1882
1915
|
this.selectedTaskType$,
|
|
1883
1916
|
this.taskListPaginationService.paginationForCurrentTaskType$,
|
|
1884
1917
|
this.taskListSortService.sortStringForCurrentTaskType$,
|
|
1885
|
-
this.
|
|
1918
|
+
this.caseDefinitionKey$,
|
|
1886
1919
|
this._enableLoadingAnimation$,
|
|
1887
1920
|
this._reload$,
|
|
1888
1921
|
this.taskListSearchService.otherFilters$,
|
|
1889
1922
|
this.taskListSortService.overrideSortStateString$,
|
|
1890
|
-
]).pipe(filter$1(([loadingStateForCaseDefinition]) => loadingStateForCaseDefinition === false), map(([_, selectedTaskType, paginationForSelectedTaskType, sortStringForSelectedTaskType,
|
|
1923
|
+
]).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
1924
|
if (params.enableLoadingAnimation)
|
|
1892
1925
|
this.loadingTasks$.next(true);
|
|
1893
1926
|
this.taskListQueryParamService.setTaskListParams(params.params);
|
|
1894
1927
|
}), switchMap(({ params }) => combineLatest([
|
|
1895
|
-
this.taskService.queryTasksPageV3(params.selectedTaskType, params.params, params.
|
|
1896
|
-
of(!!params.
|
|
1928
|
+
this.taskService.queryTasksPageV3(params.selectedTaskType, params.params, params.caseDefinitionKey, params.otherFilters),
|
|
1929
|
+
of(!!params.caseDefinitionKey),
|
|
1897
1930
|
])), switchMap(([tasksResult, isSpecified]) => this.getTaskListPermissionsRequest(tasksResult, isSpecified)), map(([isSpecified, taskResult, canViewTaskPermissions, canViewCasePermissions]) => {
|
|
1898
1931
|
this.updateTaskListPaginationAfterResponse(Number(taskResult.totalElements));
|
|
1899
1932
|
return this.mapTasksForList(isSpecified, taskResult, canViewTaskPermissions, canViewCasePermissions);
|
|
@@ -1933,15 +1966,26 @@ class TaskListComponent {
|
|
|
1933
1966
|
];
|
|
1934
1967
|
this.setSearchFieldValuesSubject$ = new BehaviorSubject({});
|
|
1935
1968
|
this.clearSearchFieldValuesSubject$ = new Subject();
|
|
1969
|
+
this._subscriptions = new Subscription();
|
|
1936
1970
|
}
|
|
1937
1971
|
ngOnInit() {
|
|
1938
1972
|
this.taskListColumnService.resetTaskListFields();
|
|
1939
1973
|
this.setVisibleTabs();
|
|
1940
1974
|
this.pageTitleService.disableReset();
|
|
1941
1975
|
this.setParamsFromQueryParams();
|
|
1976
|
+
this.openTaskUpdateSseEventSubscription();
|
|
1977
|
+
}
|
|
1978
|
+
openTaskUpdateSseEventSubscription() {
|
|
1979
|
+
this._subscriptions.add(combineLatest([
|
|
1980
|
+
this.sseService.getSseEventObservable('TASK_UPDATE'),
|
|
1981
|
+
this.caseDefinitionKey$,
|
|
1982
|
+
])
|
|
1983
|
+
.pipe(filter$1(([event, caseDefinitionKey]) => caseDefinitionKey === null || event.caseDefinitionKey === caseDefinitionKey))
|
|
1984
|
+
.subscribe(() => this.reload()));
|
|
1942
1985
|
}
|
|
1943
1986
|
ngOnDestroy() {
|
|
1944
1987
|
this.pageTitleService.enableReset();
|
|
1988
|
+
this._subscriptions.unsubscribe();
|
|
1945
1989
|
}
|
|
1946
1990
|
paginationClicked(page, type) {
|
|
1947
1991
|
this.taskListPaginationService.updateTaskPagination(type, { page: page - 1 });
|
|
@@ -1978,7 +2022,7 @@ class TaskListComponent {
|
|
|
1978
2022
|
.pipe(take(1))
|
|
1979
2023
|
.subscribe(document => {
|
|
1980
2024
|
this.router.navigate([
|
|
1981
|
-
`/
|
|
2025
|
+
`/cases/${document.definitionId?.name}/document/${currentTask.businessKey}`,
|
|
1982
2026
|
]);
|
|
1983
2027
|
});
|
|
1984
2028
|
}
|
|
@@ -1995,7 +2039,7 @@ class TaskListComponent {
|
|
|
1995
2039
|
if (definition.item.id) {
|
|
1996
2040
|
this.taskListSortService.resetOverrideSortState();
|
|
1997
2041
|
this.loadingTasks$.next(true);
|
|
1998
|
-
this.taskListService.
|
|
2042
|
+
this.taskListService.setCaseDefinitionKey(definition.item.id);
|
|
1999
2043
|
}
|
|
2000
2044
|
}
|
|
2001
2045
|
reload() {
|
|
@@ -2034,7 +2078,7 @@ class TaskListComponent {
|
|
|
2034
2078
|
enableLoadingAnimation() {
|
|
2035
2079
|
this._enableLoadingAnimation$.next(true);
|
|
2036
2080
|
}
|
|
2037
|
-
getTaskListParams(paginationForSelectedTaskType, sortStringForSelectedTaskType, selectedTaskType,
|
|
2081
|
+
getTaskListParams(paginationForSelectedTaskType, sortStringForSelectedTaskType, selectedTaskType, caseDefinitionKey, enableLoadingAnimation, reload, otherFilters) {
|
|
2038
2082
|
const params = {
|
|
2039
2083
|
...paginationForSelectedTaskType,
|
|
2040
2084
|
...(sortStringForSelectedTaskType && { sort: sortStringForSelectedTaskType }),
|
|
@@ -2045,7 +2089,8 @@ class TaskListComponent {
|
|
|
2045
2089
|
reload,
|
|
2046
2090
|
selectedTaskType,
|
|
2047
2091
|
params,
|
|
2048
|
-
...(
|
|
2092
|
+
...(caseDefinitionKey &&
|
|
2093
|
+
caseDefinitionKey !== this.ALL_CASES_ID && { caseDefinitionKey: caseDefinitionKey }),
|
|
2049
2094
|
...(otherFilters && { otherFilters }),
|
|
2050
2095
|
},
|
|
2051
2096
|
enableLoadingAnimation,
|
|
@@ -2107,9 +2152,9 @@ class TaskListComponent {
|
|
|
2107
2152
|
}
|
|
2108
2153
|
setParamsFromQueryParams() {
|
|
2109
2154
|
const decodedParams = this.taskListQueryParamService.getTaskListQueryParams();
|
|
2110
|
-
if (decodedParams.
|
|
2111
|
-
this.taskListService.
|
|
2112
|
-
this._selectedCaseDefinitionId$.next(decodedParams.
|
|
2155
|
+
if (decodedParams.caseDefinitionKey) {
|
|
2156
|
+
this.taskListService.setCaseDefinitionKey(decodedParams.caseDefinitionKey);
|
|
2157
|
+
this._selectedCaseDefinitionId$.next(decodedParams.caseDefinitionKey);
|
|
2113
2158
|
}
|
|
2114
2159
|
if (decodedParams.otherFilters?.length > 0) {
|
|
2115
2160
|
const searchFieldValues = this.taskListSearchService.mapOtherFilterToSearchValues(decodedParams.otherFilters);
|
|
@@ -2128,27 +2173,27 @@ class TaskListComponent {
|
|
|
2128
2173
|
if (decodedParams.params)
|
|
2129
2174
|
this.taskListPaginationService.updateTaskPagination(this.taskListService.selectedTaskType, decodedParams.params);
|
|
2130
2175
|
}
|
|
2131
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2176
|
+
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 }); }
|
|
2177
|
+
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
2178
|
TaskListService,
|
|
2134
2179
|
TaskListColumnService,
|
|
2135
2180
|
TaskListPaginationService,
|
|
2136
2181
|
TaskListSortService,
|
|
2137
2182
|
TaskListSearchService,
|
|
2138
2183
|
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 }); }
|
|
2184
|
+
], 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
2185
|
}
|
|
2141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskListComponent, decorators: [{
|
|
2142
2187
|
type: Component,
|
|
2143
|
-
args: [{ selector: 'valtimo-task-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
2188
|
+
args: [{ standalone: false, selector: 'valtimo-task-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
2144
2189
|
TaskListService,
|
|
2145
2190
|
TaskListColumnService,
|
|
2146
2191
|
TaskListPaginationService,
|
|
2147
2192
|
TaskListSortService,
|
|
2148
2193
|
TaskListSearchService,
|
|
2149
2194
|
TaskListQueryParamService,
|
|
2150
|
-
], template: "<!--\n ~ Copyright 2015-
|
|
2151
|
-
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i2$
|
|
2195
|
+
], 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"] }]
|
|
2196
|
+
}], 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
2197
|
type: ViewChild,
|
|
2153
2198
|
args: ['taskDetail']
|
|
2154
2199
|
}], onPopState: [{
|
|
@@ -2157,7 +2202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2157
2202
|
}] } });
|
|
2158
2203
|
|
|
2159
2204
|
/*
|
|
2160
|
-
* Copyright 2015-
|
|
2205
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2161
2206
|
*
|
|
2162
2207
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2163
2208
|
* you may not use this file except in compliance with the License.
|
|
@@ -2173,7 +2218,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2173
2218
|
*/
|
|
2174
2219
|
|
|
2175
2220
|
/*
|
|
2176
|
-
* Copyright 2015-
|
|
2221
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2177
2222
|
*
|
|
2178
2223
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2179
2224
|
* you may not use this file except in compliance with the License.
|
|
@@ -2189,7 +2234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2189
2234
|
*/
|
|
2190
2235
|
|
|
2191
2236
|
/*
|
|
2192
|
-
* Copyright 2015-
|
|
2237
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2193
2238
|
*
|
|
2194
2239
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2195
2240
|
* you may not use this file except in compliance with the License.
|
|
@@ -2210,7 +2255,7 @@ var TaskListColumnDefaultSort;
|
|
|
2210
2255
|
})(TaskListColumnDefaultSort || (TaskListColumnDefaultSort = {}));
|
|
2211
2256
|
|
|
2212
2257
|
/*
|
|
2213
|
-
* Copyright 2015-
|
|
2258
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2214
2259
|
*
|
|
2215
2260
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2216
2261
|
* you may not use this file except in compliance with the License.
|
|
@@ -2226,7 +2271,7 @@ var TaskListColumnDefaultSort;
|
|
|
2226
2271
|
*/
|
|
2227
2272
|
|
|
2228
2273
|
/*
|
|
2229
|
-
* Copyright 2015-
|
|
2274
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2230
2275
|
*
|
|
2231
2276
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2232
2277
|
* you may not use this file except in compliance with the License.
|
|
@@ -2268,7 +2313,7 @@ var TaskListSearchDropdownDataProvider;
|
|
|
2268
2313
|
})(TaskListSearchDropdownDataProvider || (TaskListSearchDropdownDataProvider = {}));
|
|
2269
2314
|
|
|
2270
2315
|
/*
|
|
2271
|
-
* Copyright 2015-
|
|
2316
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2272
2317
|
*
|
|
2273
2318
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2274
2319
|
* you may not use this file except in compliance with the License.
|
|
@@ -2284,7 +2329,23 @@ var TaskListSearchDropdownDataProvider;
|
|
|
2284
2329
|
*/
|
|
2285
2330
|
|
|
2286
2331
|
/*
|
|
2287
|
-
* Copyright 2015-
|
|
2332
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2333
|
+
*
|
|
2334
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2335
|
+
* you may not use this file except in compliance with the License.
|
|
2336
|
+
* You may obtain a copy of the License at
|
|
2337
|
+
*
|
|
2338
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2339
|
+
*
|
|
2340
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2341
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2342
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2343
|
+
* See the License for the specific language governing permissions and
|
|
2344
|
+
* limitations under the License.
|
|
2345
|
+
*/
|
|
2346
|
+
|
|
2347
|
+
/*
|
|
2348
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2288
2349
|
*
|
|
2289
2350
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2290
2351
|
* you may not use this file except in compliance with the License.
|
|
@@ -2307,11 +2368,11 @@ const routes = [
|
|
|
2307
2368
|
},
|
|
2308
2369
|
];
|
|
2309
2370
|
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: "
|
|
2371
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2372
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, i1$2.RouterModule], exports: [RouterModule] }); }
|
|
2373
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
2313
2374
|
}
|
|
2314
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2375
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskRoutingModule, decorators: [{
|
|
2315
2376
|
type: NgModule,
|
|
2316
2377
|
args: [{
|
|
2317
2378
|
declarations: [],
|
|
@@ -2321,7 +2382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2321
2382
|
}] });
|
|
2322
2383
|
|
|
2323
2384
|
/*
|
|
2324
|
-
* Copyright 2015-
|
|
2385
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2325
2386
|
*
|
|
2326
2387
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2327
2388
|
* you may not use this file except in compliance with the License.
|
|
@@ -2336,8 +2397,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2336
2397
|
* limitations under the License.
|
|
2337
2398
|
*/
|
|
2338
2399
|
class TaskModule {
|
|
2339
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2340
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2400
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2401
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: TaskModule, declarations: [TaskListComponent, TaskDetailModalComponent], imports: [CommonModule,
|
|
2341
2402
|
TaskRoutingModule,
|
|
2342
2403
|
CarbonListModule,
|
|
2343
2404
|
PageHeaderModule,
|
|
@@ -2346,14 +2407,14 @@ class TaskModule {
|
|
|
2346
2407
|
SearchableDropdownSelectModule,
|
|
2347
2408
|
CamundaFormModule,
|
|
2348
2409
|
BrowserAnimationsModule,
|
|
2349
|
-
FormsModule, i10.
|
|
2410
|
+
FormsModule, i10.TranslateModule, NgbModule,
|
|
2350
2411
|
FormIoModule,
|
|
2351
2412
|
ModalModule,
|
|
2352
2413
|
LinkModule,
|
|
2353
2414
|
ProcessLinkModule,
|
|
2354
2415
|
TabsModule,
|
|
2355
2416
|
ContentSwitcherModule,
|
|
2356
|
-
|
|
2417
|
+
RenderInPageHeaderDirective,
|
|
2357
2418
|
DropdownModule,
|
|
2358
2419
|
ButtonModule,
|
|
2359
2420
|
IconModule,
|
|
@@ -2364,8 +2425,8 @@ class TaskModule {
|
|
|
2364
2425
|
TaskDetailContentComponent,
|
|
2365
2426
|
TaskDetailIntermediateSaveComponent,
|
|
2366
2427
|
SetTaskDueDateComponent,
|
|
2367
|
-
|
|
2368
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2428
|
+
ValtimoCdsModalDirective], exports: [TaskListComponent, TaskDetailModalComponent] }); }
|
|
2429
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskModule, imports: [CommonModule,
|
|
2369
2430
|
TaskRoutingModule,
|
|
2370
2431
|
CarbonListModule,
|
|
2371
2432
|
PageHeaderModule,
|
|
@@ -2375,10 +2436,6 @@ class TaskModule {
|
|
|
2375
2436
|
CamundaFormModule,
|
|
2376
2437
|
BrowserAnimationsModule,
|
|
2377
2438
|
FormsModule,
|
|
2378
|
-
ToastrModule.forRoot({
|
|
2379
|
-
positionClass: 'toast-bottom-full-width',
|
|
2380
|
-
preventDuplicates: true,
|
|
2381
|
-
}),
|
|
2382
2439
|
TranslateModule.forRoot({
|
|
2383
2440
|
loader: {
|
|
2384
2441
|
provide: TranslateLoader,
|
|
@@ -2393,7 +2450,6 @@ class TaskModule {
|
|
|
2393
2450
|
ProcessLinkModule,
|
|
2394
2451
|
TabsModule,
|
|
2395
2452
|
ContentSwitcherModule,
|
|
2396
|
-
RenderInPageHeaderDirectiveModule,
|
|
2397
2453
|
DropdownModule,
|
|
2398
2454
|
ButtonModule,
|
|
2399
2455
|
IconModule,
|
|
@@ -2403,10 +2459,9 @@ class TaskModule {
|
|
|
2403
2459
|
AssignUserToTaskComponent,
|
|
2404
2460
|
TaskDetailContentComponent,
|
|
2405
2461
|
TaskDetailIntermediateSaveComponent,
|
|
2406
|
-
SetTaskDueDateComponent
|
|
2407
|
-
ValtimoCdsModalDirectiveModule] }); }
|
|
2462
|
+
SetTaskDueDateComponent] }); }
|
|
2408
2463
|
}
|
|
2409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2464
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TaskModule, decorators: [{
|
|
2410
2465
|
type: NgModule,
|
|
2411
2466
|
args: [{
|
|
2412
2467
|
declarations: [TaskListComponent, TaskDetailModalComponent],
|
|
@@ -2421,10 +2476,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2421
2476
|
CamundaFormModule,
|
|
2422
2477
|
BrowserAnimationsModule,
|
|
2423
2478
|
FormsModule,
|
|
2424
|
-
ToastrModule.forRoot({
|
|
2425
|
-
positionClass: 'toast-bottom-full-width',
|
|
2426
|
-
preventDuplicates: true,
|
|
2427
|
-
}),
|
|
2428
2479
|
TranslateModule.forRoot({
|
|
2429
2480
|
loader: {
|
|
2430
2481
|
provide: TranslateLoader,
|
|
@@ -2439,7 +2490,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2439
2490
|
ProcessLinkModule,
|
|
2440
2491
|
TabsModule,
|
|
2441
2492
|
ContentSwitcherModule,
|
|
2442
|
-
|
|
2493
|
+
RenderInPageHeaderDirective,
|
|
2443
2494
|
DropdownModule,
|
|
2444
2495
|
ButtonModule,
|
|
2445
2496
|
IconModule,
|
|
@@ -2450,14 +2501,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2450
2501
|
TaskDetailContentComponent,
|
|
2451
2502
|
TaskDetailIntermediateSaveComponent,
|
|
2452
2503
|
SetTaskDueDateComponent,
|
|
2453
|
-
|
|
2504
|
+
ValtimoCdsModalDirective,
|
|
2454
2505
|
],
|
|
2455
2506
|
exports: [TaskListComponent, TaskDetailModalComponent],
|
|
2456
2507
|
}]
|
|
2457
2508
|
}] });
|
|
2458
2509
|
|
|
2459
2510
|
/*
|
|
2460
|
-
* Copyright 2015-
|
|
2511
|
+
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
2461
2512
|
*
|
|
2462
2513
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2463
2514
|
* you may not use this file except in compliance with the License.
|