@valtimo/task 12.2.1 → 12.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/assign-user-to-task/assign-user-to-task.component.mjs +8 -5
- package/esm2022/lib/components/task-detail-content/task-detail-content.component.mjs +317 -0
- package/esm2022/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.mjs +144 -0
- package/esm2022/lib/components/task-detail-modal/task-detail-modal.component.mjs +53 -272
- package/esm2022/lib/components/task-list/task-list.component.mjs +5 -5
- package/esm2022/lib/models/task.model.mjs +1 -1
- package/esm2022/lib/services/index.mjs +2 -1
- package/esm2022/lib/services/task-intermediate-save.service.mjs +18 -3
- package/esm2022/lib/task.module.mjs +17 -6
- package/esm2022/public_api.mjs +9 -6
- package/fesm2022/valtimo-task.mjs +637 -405
- package/fesm2022/valtimo-task.mjs.map +1 -1
- package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts +1 -1
- package/lib/components/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 +79 -0
- package/lib/components/task-detail-content/task-detail-content.component.d.ts.map +1 -0
- package/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.d.ts +41 -0
- package/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.d.ts.map +1 -0
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts +22 -65
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts.map +1 -1
- package/lib/models/task.model.d.ts +5 -1
- package/lib/models/task.model.d.ts.map +1 -1
- package/lib/services/index.d.ts +1 -0
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/task-intermediate-save.service.d.ts +7 -1
- package/lib/services/task-intermediate-save.service.d.ts.map +1 -1
- package/lib/task.module.d.ts +14 -12
- package/lib/task.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +8 -5
- package/public_api.d.ts.map +1 -1
|
@@ -1,164 +1,36 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, EventEmitter, Component, Input, Output, ViewContainerRef,
|
|
2
|
+
import { Injectable, EventEmitter, Component, Input, Output, ViewContainerRef, ChangeDetectionStrategy, Optional, Inject, ViewChild, signal, ViewEncapsulation, HostListener, NgModule } from '@angular/core';
|
|
3
|
+
import * as i9 from '@valtimo/components';
|
|
4
|
+
import { ViewType, SearchableDropdownSelectModule, FormioOptionsImpl, FormIoModule, ConfirmationModalModule, TooltipModule, CarbonListModule, PageHeaderModule, WidgetModule, SpinnerModule, CamundaFormModule, RenderInPageHeaderDirectiveModule, SearchFieldsModule } from '@valtimo/components';
|
|
5
|
+
import { BehaviorSubject, combineLatest, tap, filter, switchMap, of, map as map$1, Subscription, take as take$1, distinctUntilChanged, Subject } from 'rxjs';
|
|
6
|
+
import * as i6 from '@angular/common';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import * as i3 from '@ngx-translate/core';
|
|
9
|
+
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
3
10
|
import * as i1 from '@angular/common/http';
|
|
4
11
|
import { HttpParams, HttpHeaders, HttpClient } from '@angular/common/http';
|
|
5
|
-
import * as
|
|
12
|
+
import * as i1$1 from '@valtimo/config';
|
|
6
13
|
import { BaseApiService, TaskListTab, FORM_VIEW_MODEL_TOKEN, ROLE_USER, HttpLoaderFactory } from '@valtimo/config';
|
|
7
|
-
import * as i5 from '@valtimo/security';
|
|
8
14
|
import { InterceptorSkip, AuthGuardService } from '@valtimo/security';
|
|
9
|
-
import
|
|
10
|
-
import { CommonModule } from '@angular/common';
|
|
11
|
-
import { FormsModule } from '@angular/forms';
|
|
12
|
-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
13
|
-
import * as i11$1 from '@ng-bootstrap/ng-bootstrap';
|
|
14
|
-
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
15
|
-
import * as i8 from '@ngx-translate/core';
|
|
16
|
-
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
17
|
-
import * as i6 from '@valtimo/components';
|
|
18
|
-
import { ViewType, FormioOptionsImpl, CarbonListModule, PageHeaderModule, WidgetModule, SpinnerModule, SearchableDropdownSelectModule, CamundaFormModule, FormIoModule, RenderInPageHeaderDirectiveModule, ConfirmationModalModule, SearchFieldsModule } from '@valtimo/components';
|
|
19
|
-
import * as i2$1 from '@valtimo/process-link';
|
|
20
|
-
import { ProcessLinkModule } from '@valtimo/process-link';
|
|
21
|
-
import * as i11 from 'carbon-components-angular';
|
|
22
|
-
import { ModalModule, LinkModule, TabsModule, ContentSwitcherModule, DropdownModule, ButtonModule, IconModule, TooltipModule } from 'carbon-components-angular';
|
|
23
|
-
import * as i1$2 from 'ngx-toastr';
|
|
24
|
-
import { ToastrModule } from 'ngx-toastr';
|
|
25
|
-
import { BehaviorSubject, combineLatest, tap, filter, switchMap, of, map as map$1, Subscription, take as take$1, Subject } from 'rxjs';
|
|
26
|
-
import { map, take, distinctUntilChanged, switchMap as switchMap$1, filter as filter$1 } from 'rxjs/operators';
|
|
15
|
+
import { map, take, filter as filter$1, distinctUntilChanged as distinctUntilChanged$1 } from 'rxjs/operators';
|
|
27
16
|
import { omit, isEqual } from 'lodash';
|
|
28
|
-
import * as i1$
|
|
17
|
+
import * as i1$2 from '@angular/router';
|
|
29
18
|
import { RouterModule } from '@angular/router';
|
|
30
|
-
import moment from 'moment';
|
|
31
19
|
import { RecentlyViewed16 } from '@carbon/icons';
|
|
32
|
-
import * as i7 from '@valtimo/
|
|
33
|
-
import
|
|
34
|
-
import * as
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
*
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
47
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
48
|
-
* See the License for the specific language governing permissions and
|
|
49
|
-
* limitations under the License.
|
|
50
|
-
*/
|
|
51
|
-
|
|
52
|
-
/*
|
|
53
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
54
|
-
*
|
|
55
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
56
|
-
* you may not use this file except in compliance with the License.
|
|
57
|
-
* You may obtain a copy of the License at
|
|
58
|
-
*
|
|
59
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
60
|
-
*
|
|
61
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
62
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
63
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
64
|
-
* See the License for the specific language governing permissions and
|
|
65
|
-
* limitations under the License.
|
|
66
|
-
*/
|
|
67
|
-
|
|
68
|
-
/*
|
|
69
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
70
|
-
*
|
|
71
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
72
|
-
* you may not use this file except in compliance with the License.
|
|
73
|
-
* You may obtain a copy of the License at
|
|
74
|
-
*
|
|
75
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
76
|
-
*
|
|
77
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
78
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
79
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
80
|
-
* See the License for the specific language governing permissions and
|
|
81
|
-
* limitations under the License.
|
|
82
|
-
*/
|
|
83
|
-
var TaskListColumnDefaultSort;
|
|
84
|
-
(function (TaskListColumnDefaultSort) {
|
|
85
|
-
TaskListColumnDefaultSort["ASC"] = "ASC";
|
|
86
|
-
TaskListColumnDefaultSort["DESC"] = "DESC";
|
|
87
|
-
})(TaskListColumnDefaultSort || (TaskListColumnDefaultSort = {}));
|
|
88
|
-
|
|
89
|
-
/*
|
|
90
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
91
|
-
*
|
|
92
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
93
|
-
* you may not use this file except in compliance with the License.
|
|
94
|
-
* You may obtain a copy of the License at
|
|
95
|
-
*
|
|
96
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
97
|
-
*
|
|
98
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
99
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
100
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
101
|
-
* See the License for the specific language governing permissions and
|
|
102
|
-
* limitations under the License.
|
|
103
|
-
*/
|
|
104
|
-
|
|
105
|
-
/*
|
|
106
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
107
|
-
*
|
|
108
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
109
|
-
* you may not use this file except in compliance with the License.
|
|
110
|
-
* You may obtain a copy of the License at
|
|
111
|
-
*
|
|
112
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
113
|
-
*
|
|
114
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
115
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
116
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
117
|
-
* See the License for the specific language governing permissions and
|
|
118
|
-
* limitations under the License.
|
|
119
|
-
*/
|
|
120
|
-
var TaskListSearchFieldDataType;
|
|
121
|
-
(function (TaskListSearchFieldDataType) {
|
|
122
|
-
TaskListSearchFieldDataType["TEXT"] = "text";
|
|
123
|
-
TaskListSearchFieldDataType["NUMBER"] = "number";
|
|
124
|
-
TaskListSearchFieldDataType["DATE"] = "date";
|
|
125
|
-
TaskListSearchFieldDataType["DATETIME"] = "datetime";
|
|
126
|
-
TaskListSearchFieldDataType["TIME"] = "time";
|
|
127
|
-
TaskListSearchFieldDataType["BOOLEAN"] = "boolean";
|
|
128
|
-
})(TaskListSearchFieldDataType || (TaskListSearchFieldDataType = {}));
|
|
129
|
-
var TaskListSearchFieldFieldType;
|
|
130
|
-
(function (TaskListSearchFieldFieldType) {
|
|
131
|
-
TaskListSearchFieldFieldType["SINGLE"] = "single";
|
|
132
|
-
TaskListSearchFieldFieldType["RANGE"] = "range";
|
|
133
|
-
TaskListSearchFieldFieldType["SINGLE_SELECT_DROPDOWN"] = "single_select_dropdown";
|
|
134
|
-
TaskListSearchFieldFieldType["MULTI_SELECT_DROPDOWN"] = "multi_select_dropdown";
|
|
135
|
-
})(TaskListSearchFieldFieldType || (TaskListSearchFieldFieldType = {}));
|
|
136
|
-
var TaskListSearchFieldMatchType;
|
|
137
|
-
(function (TaskListSearchFieldMatchType) {
|
|
138
|
-
TaskListSearchFieldMatchType["LIKE"] = "like";
|
|
139
|
-
TaskListSearchFieldMatchType["EXACT"] = "exact";
|
|
140
|
-
})(TaskListSearchFieldMatchType || (TaskListSearchFieldMatchType = {}));
|
|
141
|
-
var TaskListSearchDropdownDataProvider;
|
|
142
|
-
(function (TaskListSearchDropdownDataProvider) {
|
|
143
|
-
TaskListSearchDropdownDataProvider["DATABASE"] = "dropdownDatabaseDataProvider";
|
|
144
|
-
TaskListSearchDropdownDataProvider["JSON"] = "dropdownJsonFileDataProvider";
|
|
145
|
-
})(TaskListSearchDropdownDataProvider || (TaskListSearchDropdownDataProvider = {}));
|
|
146
|
-
|
|
147
|
-
/*
|
|
148
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
149
|
-
*
|
|
150
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
151
|
-
* you may not use this file except in compliance with the License.
|
|
152
|
-
* You may obtain a copy of the License at
|
|
153
|
-
*
|
|
154
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
155
|
-
*
|
|
156
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
157
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
158
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
159
|
-
* See the License for the specific language governing permissions and
|
|
160
|
-
* limitations under the License.
|
|
161
|
-
*/
|
|
20
|
+
import * as i7 from '@valtimo/process-link';
|
|
21
|
+
import { ProcessLinkModule, formSizeToCarbonModalSizeMap } from '@valtimo/process-link';
|
|
22
|
+
import * as i2 from '@valtimo/document';
|
|
23
|
+
import * as i12 from 'carbon-components-angular';
|
|
24
|
+
import { ButtonModule, IconModule, ModalModule, LinkModule, TabsModule, ContentSwitcherModule, DropdownModule, TooltipModule as TooltipModule$1 } from 'carbon-components-angular';
|
|
25
|
+
import * as i4 from 'ngx-logger';
|
|
26
|
+
import * as i3$1 from '@valtimo/access-control';
|
|
27
|
+
import * as i10 from 'ngx-toastr';
|
|
28
|
+
import { ToastrModule } from 'ngx-toastr';
|
|
29
|
+
import moment from 'moment';
|
|
30
|
+
import * as i11 from '@ng-bootstrap/ng-bootstrap';
|
|
31
|
+
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
32
|
+
import { FormsModule } from '@angular/forms';
|
|
33
|
+
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
162
34
|
|
|
163
35
|
/*
|
|
164
36
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -245,13 +117,13 @@ class TaskService extends BaseApiService {
|
|
|
245
117
|
getTaskListSearchFields(caseDefinitionName) {
|
|
246
118
|
return this.httpClient.get(this.getApiUrl(`v1/search/field/TaskListSearchColumns/${caseDefinitionName}`));
|
|
247
119
|
}
|
|
248
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskService, deps: [{ token: i1.HttpClient }, { token:
|
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskService, deps: [{ token: i1.HttpClient }, { token: i1$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
249
121
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskService, providedIn: 'root' }); }
|
|
250
122
|
}
|
|
251
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskService, decorators: [{
|
|
252
124
|
type: Injectable,
|
|
253
125
|
args: [{ providedIn: 'root' }]
|
|
254
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type:
|
|
126
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.ConfigService }] });
|
|
255
127
|
|
|
256
128
|
/*
|
|
257
129
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -757,12 +629,12 @@ class TaskListSearchService {
|
|
|
757
629
|
});
|
|
758
630
|
return filters;
|
|
759
631
|
}
|
|
760
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListSearchService, deps: [{ token:
|
|
632
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListSearchService, deps: [{ token: i1$1.ConfigService }, { token: TaskListService }, { token: TaskService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
761
633
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListSearchService }); }
|
|
762
634
|
}
|
|
763
635
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListSearchService, decorators: [{
|
|
764
636
|
type: Injectable
|
|
765
|
-
}], ctorParameters: () => [{ type:
|
|
637
|
+
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: TaskListService }, { type: TaskService }] });
|
|
766
638
|
|
|
767
639
|
/*
|
|
768
640
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -806,12 +678,75 @@ class TaskListQueryParamService {
|
|
|
806
678
|
parseBase64(base64string) {
|
|
807
679
|
return JSON.parse(atob(base64string));
|
|
808
680
|
}
|
|
809
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListQueryParamService, deps: [{ token: i1$
|
|
681
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListQueryParamService, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
810
682
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListQueryParamService }); }
|
|
811
683
|
}
|
|
812
684
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListQueryParamService, decorators: [{
|
|
813
685
|
type: Injectable
|
|
814
|
-
}], ctorParameters: () => [{ type: i1$
|
|
686
|
+
}], ctorParameters: () => [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }] });
|
|
687
|
+
|
|
688
|
+
/*
|
|
689
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
690
|
+
*
|
|
691
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
692
|
+
* you may not use this file except in compliance with the License.
|
|
693
|
+
* You may obtain a copy of the License at
|
|
694
|
+
*
|
|
695
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
696
|
+
*
|
|
697
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
698
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
699
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
700
|
+
* See the License for the specific language governing permissions and
|
|
701
|
+
* limitations under the License.
|
|
702
|
+
*/
|
|
703
|
+
class TaskIntermediateSaveService extends BaseApiService {
|
|
704
|
+
get submission$() {
|
|
705
|
+
return this._submission$.pipe(filter((value) => !!value));
|
|
706
|
+
}
|
|
707
|
+
get formIoFormData$() {
|
|
708
|
+
return this._formIoFormData$.pipe(filter((value) => !!value));
|
|
709
|
+
}
|
|
710
|
+
constructor(httpClient, configService) {
|
|
711
|
+
super(httpClient, configService);
|
|
712
|
+
this.httpClient = httpClient;
|
|
713
|
+
this.configService = configService;
|
|
714
|
+
this._submission$ = new BehaviorSubject({});
|
|
715
|
+
this._formIoFormData$ = new BehaviorSubject({});
|
|
716
|
+
}
|
|
717
|
+
getIntermediateSubmission(taskInstanceId) {
|
|
718
|
+
return this.httpClient.get(this.getApiUrl('/v1/form/intermediate/submission'), {
|
|
719
|
+
params: {
|
|
720
|
+
taskInstanceId,
|
|
721
|
+
},
|
|
722
|
+
headers: new HttpHeaders().set(InterceptorSkip, '404'),
|
|
723
|
+
});
|
|
724
|
+
}
|
|
725
|
+
storeIntermediateSubmission(request) {
|
|
726
|
+
return this.httpClient.post(this.getApiUrl('/v1/form/intermediate/submission'), request, {
|
|
727
|
+
headers: new HttpHeaders().set(InterceptorSkip, '400'),
|
|
728
|
+
});
|
|
729
|
+
}
|
|
730
|
+
clearIntermediateSubmission(taskInstanceId) {
|
|
731
|
+
return this.httpClient.delete(this.getApiUrl('/v1/form/intermediate/submission'), {
|
|
732
|
+
params: {
|
|
733
|
+
taskInstanceId,
|
|
734
|
+
},
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
setSubmission(value) {
|
|
738
|
+
this._submission$.next(value);
|
|
739
|
+
}
|
|
740
|
+
setFormIoFormData(value) {
|
|
741
|
+
this._formIoFormData$.next(value);
|
|
742
|
+
}
|
|
743
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskIntermediateSaveService, deps: [{ token: i1.HttpClient }, { token: i1$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
744
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskIntermediateSaveService, providedIn: 'root' }); }
|
|
745
|
+
}
|
|
746
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskIntermediateSaveService, decorators: [{
|
|
747
|
+
type: Injectable,
|
|
748
|
+
args: [{ providedIn: 'root' }]
|
|
749
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.ConfigService }] });
|
|
815
750
|
|
|
816
751
|
/*
|
|
817
752
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -931,11 +866,11 @@ class AssignUserToTaskComponent {
|
|
|
931
866
|
this.disabled$.next(true);
|
|
932
867
|
}
|
|
933
868
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssignUserToTaskComponent, deps: [{ token: TaskService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
934
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AssignUserToTaskComponent, selector: "valtimo-assign-user-to-task", inputs: { taskId: "taskId", assigneeId: "assigneeId" }, outputs: { assignmentOfTaskChanged: "assignmentOfTaskChanged" }, usesOnChanges: 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<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async
|
|
869
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AssignUserToTaskComponent, isStandalone: true, selector: "valtimo-assign-user-to-task", inputs: { taskId: "taskId", assigneeId: "assigneeId" }, outputs: { assignmentOfTaskChanged: "assignmentOfTaskChanged" }, usesOnChanges: 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<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async,\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"row mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <valtimo-searchable-dropdown-select\n *ngIf=\"obs.candidateUsers; else loading\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userIdToAssign === obs.idOnServer && obs.idOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignTask.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", styles: [".container-fluid{color:#959595}i{font-size:13px}\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: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SearchableDropdownSelectModule }, { kind: "component", type: i9.SearchableDropdownSelectComponent, selector: "valtimo-searchable-dropdown-select", inputs: ["style", "items", "buttonText", "searchText", "noResultsText", "disabled", "selectedText", "selectedTextValue", "clearSelectionButtonTitle", "hasSelection", "width", "hasPermission", "showClearSelection"], outputs: ["itemSelected", "clearSelection"] }] }); }
|
|
935
870
|
}
|
|
936
871
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssignUserToTaskComponent, decorators: [{
|
|
937
872
|
type: Component,
|
|
938
|
-
args: [{ selector: 'valtimo-assign-user-to-task', 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<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async
|
|
873
|
+
args: [{ selector: 'valtimo-assign-user-to-task', standalone: true, imports: [CommonModule, TranslateModule, SearchableDropdownSelectModule], 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<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async,\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"row mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <valtimo-searchable-dropdown-select\n *ngIf=\"obs.candidateUsers; else loading\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userIdToAssign === obs.idOnServer && obs.idOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignTask.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", styles: [".container-fluid{color:#959595}i{font-size:13px}\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"] }]
|
|
939
874
|
}], ctorParameters: () => [{ type: TaskService }], propDecorators: { taskId: [{
|
|
940
875
|
type: Input
|
|
941
876
|
}], assigneeId: [{
|
|
@@ -997,170 +932,79 @@ const CAN_VIEW_CASE_PERMISSION = {
|
|
|
997
932
|
* See the License for the specific language governing permissions and
|
|
998
933
|
* limitations under the License.
|
|
999
934
|
*/
|
|
1000
|
-
class
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
this.
|
|
1005
|
-
}
|
|
1006
|
-
getIntermediateSubmission(taskInstanceId) {
|
|
1007
|
-
return this.httpClient.get(this.getApiUrl('/v1/form/intermediate/submission'), {
|
|
1008
|
-
params: {
|
|
1009
|
-
taskInstanceId,
|
|
1010
|
-
},
|
|
1011
|
-
headers: new HttpHeaders().set(InterceptorSkip, '404'),
|
|
1012
|
-
});
|
|
1013
|
-
}
|
|
1014
|
-
storeIntermediateSubmission(request) {
|
|
1015
|
-
return this.httpClient.post(this.getApiUrl('/v1/form/intermediate/submission'), request, {
|
|
1016
|
-
headers: new HttpHeaders().set(InterceptorSkip, '400'),
|
|
1017
|
-
});
|
|
1018
|
-
}
|
|
1019
|
-
clearIntermediateSubmission(taskInstanceId) {
|
|
1020
|
-
return this.httpClient.delete(this.getApiUrl('/v1/form/intermediate/submission'), {
|
|
1021
|
-
params: {
|
|
1022
|
-
taskInstanceId,
|
|
1023
|
-
},
|
|
1024
|
-
});
|
|
935
|
+
class TaskDetailContentComponent {
|
|
936
|
+
set task(value) {
|
|
937
|
+
if (!value)
|
|
938
|
+
return;
|
|
939
|
+
this.loadTaskDetails(value);
|
|
1025
940
|
}
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
/*
|
|
1035
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1036
|
-
*
|
|
1037
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1038
|
-
* you may not use this file except in compliance with the License.
|
|
1039
|
-
* You may obtain a copy of the License at
|
|
1040
|
-
*
|
|
1041
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1042
|
-
*
|
|
1043
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
1044
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
1045
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1046
|
-
* See the License for the specific language governing permissions and
|
|
1047
|
-
* limitations under the License.
|
|
1048
|
-
*/
|
|
1049
|
-
moment.locale(localStorage.getItem('langKey') || '');
|
|
1050
|
-
class TaskDetailModalComponent {
|
|
1051
|
-
constructor(toastr, processLinkService, router, taskService, userProviderService, modalService, stateService, documentService, translateService, formViewModel, taskIntermediateSaveService, configService, iconService, permissionService, logger) {
|
|
1052
|
-
this.toastr = toastr;
|
|
941
|
+
constructor(configService, documentService, iconService, logger, modalService, permissionService, processLinkService, router, stateService, taskIntermediateSaveService, taskService, toastr, translateService, formViewModel, urlResolverService) {
|
|
942
|
+
this.configService = configService;
|
|
943
|
+
this.documentService = documentService;
|
|
944
|
+
this.iconService = iconService;
|
|
945
|
+
this.logger = logger;
|
|
946
|
+
this.modalService = modalService;
|
|
947
|
+
this.permissionService = permissionService;
|
|
1053
948
|
this.processLinkService = processLinkService;
|
|
1054
949
|
this.router = router;
|
|
1055
|
-
this.taskService = taskService;
|
|
1056
|
-
this.userProviderService = userProviderService;
|
|
1057
|
-
this.modalService = modalService;
|
|
1058
950
|
this.stateService = stateService;
|
|
1059
|
-
this.
|
|
951
|
+
this.taskIntermediateSaveService = taskIntermediateSaveService;
|
|
952
|
+
this.taskService = taskService;
|
|
953
|
+
this.toastr = toastr;
|
|
1060
954
|
this.translateService = translateService;
|
|
1061
955
|
this.formViewModel = formViewModel;
|
|
1062
|
-
this.
|
|
1063
|
-
this.
|
|
1064
|
-
this.iconService = iconService;
|
|
1065
|
-
this.permissionService = permissionService;
|
|
1066
|
-
this.logger = logger;
|
|
956
|
+
this.urlResolverService = urlResolverService;
|
|
957
|
+
this.closeModalEvent = new EventEmitter();
|
|
1067
958
|
this.formSubmit = new EventEmitter();
|
|
1068
|
-
this.
|
|
1069
|
-
this.
|
|
1070
|
-
this.
|
|
1071
|
-
this.
|
|
1072
|
-
this.
|
|
1073
|
-
this.
|
|
1074
|
-
this.formDefinitionId$ = new BehaviorSubject(undefined);
|
|
1075
|
-
this.formName$ = new BehaviorSubject(undefined);
|
|
1076
|
-
this.submission$ = new BehaviorSubject({});
|
|
1077
|
-
this.formFlowInstanceId$ = new BehaviorSubject(undefined);
|
|
1078
|
-
this.page$ = new BehaviorSubject(null);
|
|
959
|
+
this.activeChange = new EventEmitter();
|
|
960
|
+
this.canAssignUserToTask$ = new BehaviorSubject(false);
|
|
961
|
+
this.errorMessage$ = new BehaviorSubject(null);
|
|
962
|
+
this.formDefinition$ = new BehaviorSubject(null);
|
|
963
|
+
this.formDefinitionId$ = new BehaviorSubject(null);
|
|
964
|
+
this.formFlowInstanceId$ = new BehaviorSubject(null);
|
|
1079
965
|
this.formioOptions$ = new BehaviorSubject(null);
|
|
1080
|
-
this.errorMessage$ = new BehaviorSubject(undefined);
|
|
1081
|
-
this.isAdmin$ = this.userProviderService
|
|
1082
|
-
.getUserSubject()
|
|
1083
|
-
.pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));
|
|
1084
966
|
this.formIoFormData$ = new BehaviorSubject(null);
|
|
967
|
+
this.formName$ = new BehaviorSubject(null);
|
|
1085
968
|
this.loading$ = new BehaviorSubject(true);
|
|
1086
|
-
this.
|
|
1087
|
-
this.
|
|
1088
|
-
this.
|
|
1089
|
-
this.
|
|
1090
|
-
this.
|
|
1091
|
-
this.
|
|
1092
|
-
this.
|
|
969
|
+
this.page$ = new BehaviorSubject(null);
|
|
970
|
+
this.submission$ = this.taskIntermediateSaveService.submission$;
|
|
971
|
+
this.task$ = new BehaviorSubject(null);
|
|
972
|
+
this.taskInstanceId$ = new BehaviorSubject(null);
|
|
973
|
+
this.intermediateSaveEnabled = false;
|
|
974
|
+
this._taskProcessLinkType$ = new BehaviorSubject(null);
|
|
975
|
+
this.processLinkIsForm$ = this._taskProcessLinkType$.pipe(map$1((type) => type === 'form'));
|
|
976
|
+
this.processLinkIsFormViewModel$ = this._taskProcessLinkType$.pipe(map$1((type) => type === 'form-view-model'));
|
|
977
|
+
this.processLinkIsFormFlow$ = this._taskProcessLinkType$.pipe(map$1((type) => type === 'form-flow'));
|
|
978
|
+
this._processLinkId$ = new BehaviorSubject(null);
|
|
1093
979
|
this._subscriptions = new Subscription();
|
|
980
|
+
this.intermediateSaveEnabled = !!this.configService.featureToggles?.enableIntermediateSave;
|
|
981
|
+
this.iconService.registerAll([RecentlyViewed16]);
|
|
1094
982
|
const options = new FormioOptionsImpl();
|
|
1095
983
|
options.disableAlerts = true;
|
|
1096
984
|
this.formioOptions$.next(options);
|
|
1097
|
-
this.intermediateSaveEnabled = this.configService.featureToggles.enableIntermediateSave;
|
|
1098
|
-
this.iconService.registerAll([RecentlyViewed16]);
|
|
1099
|
-
this._subscriptions.add(this.canAssignUserToTask$.subscribe((canAssign) => {
|
|
1100
|
-
this.logger.debug("Is user allowed to assign a user to Task", canAssign);
|
|
1101
|
-
}));
|
|
1102
985
|
}
|
|
1103
986
|
ngOnInit() {
|
|
1104
|
-
this.
|
|
1105
|
-
if (task) {
|
|
1106
|
-
this.logger.debug("Checking if user allowed to assign a user to Task with id:", task.id);
|
|
1107
|
-
this.permissionService.requestPermission(CAN_ASSIGN_TASK_PERMISSION, {
|
|
1108
|
-
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
1109
|
-
identifier: task.id,
|
|
1110
|
-
}).subscribe((allowed) => {
|
|
1111
|
-
this.canAssignUserToTask$.next(allowed);
|
|
1112
|
-
});
|
|
1113
|
-
}
|
|
1114
|
-
else {
|
|
1115
|
-
this.logger.debug("Reset is user allowed to assign a user to Task as task is null");
|
|
1116
|
-
this.canAssignUserToTask$.next(false);
|
|
1117
|
-
}
|
|
1118
|
-
}));
|
|
987
|
+
this.openPermissionSubscription();
|
|
1119
988
|
}
|
|
1120
989
|
ngOnDestroy() {
|
|
1121
990
|
this._subscriptions.unsubscribe();
|
|
1122
|
-
|
|
1123
|
-
openTaskDetails(task) {
|
|
1124
|
-
this.resetTaskProcessLinkType();
|
|
1125
|
-
this.resetFormDefinition();
|
|
1126
|
-
this.getTaskProcessLink(task.id);
|
|
1127
|
-
this.setDocumentDefinitionNameInService(task);
|
|
1128
|
-
const documentId = task.businessKey;
|
|
1129
|
-
this.stateService.setDocumentId(documentId);
|
|
1130
|
-
this.task$.next(task);
|
|
1131
|
-
this.taskInstanceId$.next(task.id);
|
|
1132
|
-
this.page$.next({
|
|
1133
|
-
title: task.name,
|
|
1134
|
-
subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${task.created}`,
|
|
1135
|
-
});
|
|
1136
|
-
//only load from formlink when process link failed for backwards compatibility
|
|
1137
|
-
if (!this.taskProcessLinkType$.getValue()) {
|
|
1138
|
-
this.openModal();
|
|
1139
|
-
}
|
|
1140
|
-
}
|
|
1141
|
-
gotoProcessLinkScreen() {
|
|
1142
|
-
this.closeModal();
|
|
1143
|
-
this.router.navigate(['process-links']);
|
|
1144
|
-
}
|
|
1145
|
-
onChange(event) {
|
|
1146
|
-
if (event.data) {
|
|
1147
|
-
this.formIoFormData$.next(event.data);
|
|
1148
|
-
}
|
|
991
|
+
this.taskIntermediateSaveService.setSubmission({ data: {} });
|
|
1149
992
|
}
|
|
1150
993
|
onSubmit(submission) {
|
|
1151
994
|
if (submission.data) {
|
|
995
|
+
this.taskIntermediateSaveService.setFormIoFormData(submission.data);
|
|
1152
996
|
this.formIoFormData$.next(submission.data);
|
|
1153
997
|
}
|
|
1154
|
-
combineLatest([this.
|
|
1155
|
-
.pipe(take(1))
|
|
998
|
+
combineLatest([this._processLinkId$, this._taskProcessLinkType$, this.task$])
|
|
999
|
+
.pipe(take$1(1))
|
|
1156
1000
|
.subscribe(([processLinkId, taskProcessLinkType, task]) => {
|
|
1157
1001
|
if (taskProcessLinkType === 'form') {
|
|
1158
1002
|
if (processLinkId) {
|
|
1159
1003
|
this.processLinkService
|
|
1160
|
-
.submitForm(processLinkId, submission.data, task
|
|
1004
|
+
.submitForm(processLinkId, submission.data, task?.businessKey, task?.id)
|
|
1161
1005
|
.subscribe({
|
|
1162
1006
|
next: (_) => {
|
|
1163
|
-
this.completeTask();
|
|
1007
|
+
this.completeTask(task);
|
|
1164
1008
|
},
|
|
1165
1009
|
error: errors => {
|
|
1166
1010
|
this.form.showErrors(errors);
|
|
@@ -1169,46 +1013,100 @@ class TaskDetailModalComponent {
|
|
|
1169
1013
|
}
|
|
1170
1014
|
}
|
|
1171
1015
|
else if (taskProcessLinkType === 'form-view-model') {
|
|
1172
|
-
this.completeTask();
|
|
1016
|
+
this.completeTask(task);
|
|
1173
1017
|
}
|
|
1174
1018
|
});
|
|
1175
1019
|
}
|
|
1176
|
-
completeTask() {
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1020
|
+
completeTask(task) {
|
|
1021
|
+
if (!task)
|
|
1022
|
+
return;
|
|
1023
|
+
this.toastr.success(`${task.name} ${this.translateService.instant('taskDetail.taskCompleted')}`);
|
|
1024
|
+
this.task$.next(null);
|
|
1025
|
+
this.formSubmit.emit();
|
|
1026
|
+
this.closeModalEvent.emit();
|
|
1027
|
+
this.activeChange.emit(false);
|
|
1028
|
+
if (this.formFlow)
|
|
1029
|
+
this.formFlow.saveData();
|
|
1030
|
+
}
|
|
1031
|
+
onChange(event) {
|
|
1032
|
+
if (event.data) {
|
|
1033
|
+
this.taskIntermediateSaveService.setFormIoFormData(event.data);
|
|
1034
|
+
this.formIoFormData$.next(event.data);
|
|
1035
|
+
this.activeChange.emit(true);
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
loadTaskDetails(task) {
|
|
1039
|
+
this.resetTaskProcessLinkType();
|
|
1040
|
+
this.resetFormDefinition();
|
|
1041
|
+
this.getTaskProcessLink(task.id);
|
|
1042
|
+
this.setDocumentDefinitionNameInService(task);
|
|
1043
|
+
const documentId = task.businessKey;
|
|
1044
|
+
this.stateService.setDocumentId(documentId);
|
|
1045
|
+
this.task$.next(task);
|
|
1046
|
+
this.taskInstanceId$.next(task.id);
|
|
1047
|
+
this.page$.next({
|
|
1048
|
+
title: task.name,
|
|
1049
|
+
subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${task.created}`,
|
|
1182
1050
|
});
|
|
1183
1051
|
}
|
|
1184
|
-
|
|
1185
|
-
this.
|
|
1186
|
-
this.
|
|
1052
|
+
gotoProcessLinkScreen() {
|
|
1053
|
+
this.closeModalEvent.emit();
|
|
1054
|
+
if (this.formFlow)
|
|
1055
|
+
this.formFlow.saveData();
|
|
1056
|
+
this.router.navigate(['process-links']);
|
|
1057
|
+
}
|
|
1058
|
+
getCurrentProgress(formViewModelComponentRef) {
|
|
1059
|
+
this.taskInstanceId$
|
|
1060
|
+
.pipe(take$1(1), switchMap((taskInstanceId) => this.taskIntermediateSaveService.getIntermediateSubmission(taskInstanceId ?? '')))
|
|
1061
|
+
.subscribe({
|
|
1062
|
+
next: (intermediateSubmission) => {
|
|
1063
|
+
this.taskIntermediateSaveService.setSubmission({ data: intermediateSubmission.submission });
|
|
1064
|
+
if (formViewModelComponentRef) {
|
|
1065
|
+
formViewModelComponentRef.instance.submission = {
|
|
1066
|
+
data: intermediateSubmission.submission,
|
|
1067
|
+
};
|
|
1068
|
+
}
|
|
1069
|
+
},
|
|
1070
|
+
});
|
|
1187
1071
|
}
|
|
1188
1072
|
getTaskProcessLink(taskId) {
|
|
1189
1073
|
this.taskService.getTaskProcessLink(taskId).subscribe({
|
|
1190
1074
|
next: res => {
|
|
1191
|
-
if (res
|
|
1075
|
+
if (res !== null) {
|
|
1192
1076
|
switch (res?.type) {
|
|
1193
1077
|
case 'form':
|
|
1194
|
-
this.
|
|
1195
|
-
this.
|
|
1078
|
+
this._taskProcessLinkType$.next('form');
|
|
1079
|
+
this._processLinkId$.next(res.processLinkId);
|
|
1196
1080
|
if (this.intermediateSaveEnabled)
|
|
1197
1081
|
this.getCurrentProgress();
|
|
1198
|
-
this.
|
|
1082
|
+
this.setFormDefinition(res.properties.prefilledForm);
|
|
1199
1083
|
break;
|
|
1200
1084
|
case 'form-flow':
|
|
1201
|
-
this.
|
|
1202
|
-
this.formFlowInstanceId$.next(res.properties.formFlowInstanceId);
|
|
1085
|
+
this._taskProcessLinkType$.next('form-flow');
|
|
1086
|
+
this.formFlowInstanceId$.next(res.properties.formFlowInstanceId ?? '');
|
|
1203
1087
|
break;
|
|
1204
1088
|
case 'form-view-model':
|
|
1205
|
-
this.
|
|
1206
|
-
this.
|
|
1089
|
+
this._taskProcessLinkType$.next('form-view-model');
|
|
1090
|
+
this._processLinkId$.next(res.processLinkId);
|
|
1207
1091
|
this.formDefinition$.next(res.properties.formDefinition);
|
|
1208
|
-
this.formName$.next(res.properties.formName);
|
|
1209
|
-
this.openModal();
|
|
1092
|
+
this.formName$.next(res.properties.formName ?? '');
|
|
1210
1093
|
this.setFormViewModelComponent();
|
|
1211
1094
|
break;
|
|
1095
|
+
case 'url':
|
|
1096
|
+
this._taskProcessLinkType$.next('url');
|
|
1097
|
+
this._processLinkId$.next(res.processLinkId);
|
|
1098
|
+
combineLatest([
|
|
1099
|
+
this.processLinkService.getVariables(),
|
|
1100
|
+
this.task$
|
|
1101
|
+
]).pipe(take$1(1))
|
|
1102
|
+
.subscribe(([variables, task]) => {
|
|
1103
|
+
let url = this.urlResolverService.resolveUrlVariables(res.properties.url, variables.variables);
|
|
1104
|
+
window.open(url, '_blank').focus();
|
|
1105
|
+
this.processLinkService.submitURLProcessLink(res.processLinkId, task.businessKey, task.id).subscribe(() => {
|
|
1106
|
+
this.completeTask(task);
|
|
1107
|
+
});
|
|
1108
|
+
});
|
|
1109
|
+
break;
|
|
1212
1110
|
}
|
|
1213
1111
|
this.loading$.next(false);
|
|
1214
1112
|
}
|
|
@@ -1218,23 +1116,28 @@ class TaskDetailModalComponent {
|
|
|
1218
1116
|
},
|
|
1219
1117
|
});
|
|
1220
1118
|
}
|
|
1221
|
-
|
|
1222
|
-
this.
|
|
1223
|
-
|
|
1119
|
+
openPermissionSubscription() {
|
|
1120
|
+
this._subscriptions.add(this.task$.subscribe(task => {
|
|
1121
|
+
if (task) {
|
|
1122
|
+
this.logger.debug('Checking if user allowed to assign a user to Task with id:', task.id);
|
|
1123
|
+
this.permissionService
|
|
1124
|
+
.requestPermission(CAN_ASSIGN_TASK_PERMISSION, {
|
|
1125
|
+
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
1126
|
+
identifier: task.id,
|
|
1127
|
+
})
|
|
1128
|
+
.subscribe((allowed) => {
|
|
1129
|
+
this.canAssignUserToTask$.next(allowed);
|
|
1130
|
+
});
|
|
1131
|
+
}
|
|
1132
|
+
else {
|
|
1133
|
+
this.logger.debug('Reset is user allowed to assign a user to Task as task is null');
|
|
1134
|
+
this.canAssignUserToTask$.next(false);
|
|
1135
|
+
}
|
|
1136
|
+
}));
|
|
1224
1137
|
}
|
|
1225
|
-
|
|
1226
|
-
this.
|
|
1138
|
+
setFormDefinition(formDefinition) {
|
|
1139
|
+
this._taskProcessLinkType$.next('form');
|
|
1227
1140
|
this.formDefinition$.next(formDefinition);
|
|
1228
|
-
this.openModal();
|
|
1229
|
-
}
|
|
1230
|
-
setDocumentDefinitionNameInService(task) {
|
|
1231
|
-
this.documentService
|
|
1232
|
-
.getProcessDocumentDefinitionFromProcessInstanceId(task.processInstanceId)
|
|
1233
|
-
.subscribe(processDocumentDefinition => {
|
|
1234
|
-
const documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;
|
|
1235
|
-
this.modalService.setDocumentDefinitionName(documentDefinitionName);
|
|
1236
|
-
this.stateService.setDocumentDefinitionName(documentDefinitionName);
|
|
1237
|
-
});
|
|
1238
1141
|
}
|
|
1239
1142
|
setFormViewModelComponent() {
|
|
1240
1143
|
this.formViewModelDynamicContainer.clear();
|
|
@@ -1245,13 +1148,14 @@ class TaskDetailModalComponent {
|
|
|
1245
1148
|
formViewModelComponent.instance.formName = this.formName$.getValue();
|
|
1246
1149
|
formViewModelComponent.instance.taskInstanceId = this.taskInstanceId$.getValue();
|
|
1247
1150
|
formViewModelComponent.instance.isStartForm = false;
|
|
1248
|
-
formViewModelComponent.instance.formSubmit
|
|
1249
|
-
|
|
1250
|
-
|
|
1151
|
+
formViewModelComponent.instance.formSubmit
|
|
1152
|
+
.pipe(take$1(1), switchMap(() => this.task$))
|
|
1153
|
+
.subscribe((task) => {
|
|
1154
|
+
this.completeTask(task);
|
|
1251
1155
|
});
|
|
1252
1156
|
if (this.intermediateSaveEnabled) {
|
|
1253
1157
|
this._subscriptions.add(formViewModelComponent.instance.submission$.subscribe(submission => {
|
|
1254
|
-
this.
|
|
1158
|
+
this.taskIntermediateSaveService.setSubmission(submission);
|
|
1255
1159
|
}));
|
|
1256
1160
|
this._subscriptions.add(this.submission$.pipe(distinctUntilChanged()).subscribe((submission) => {
|
|
1257
1161
|
if (submission?.data && Object.keys(submission.data).length === 0) {
|
|
@@ -1261,49 +1165,142 @@ class TaskDetailModalComponent {
|
|
|
1261
1165
|
this.getCurrentProgress(formViewModelComponent);
|
|
1262
1166
|
}
|
|
1263
1167
|
}
|
|
1264
|
-
|
|
1265
|
-
this.
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1168
|
+
resetFormDefinition() {
|
|
1169
|
+
this.formDefinition$.next(null);
|
|
1170
|
+
this.loading$.next(true);
|
|
1171
|
+
}
|
|
1172
|
+
resetTaskProcessLinkType() {
|
|
1173
|
+
this._taskProcessLinkType$.next(null);
|
|
1174
|
+
this._processLinkId$.next(null);
|
|
1175
|
+
}
|
|
1176
|
+
setDocumentDefinitionNameInService(task) {
|
|
1177
|
+
this.documentService
|
|
1178
|
+
.getProcessDocumentDefinitionFromProcessInstanceId(task.processInstanceId)
|
|
1179
|
+
.subscribe(processDocumentDefinition => {
|
|
1180
|
+
const documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;
|
|
1181
|
+
this.modalService.setDocumentDefinitionName(documentDefinitionName);
|
|
1182
|
+
this.stateService.setDocumentDefinitionName(documentDefinitionName);
|
|
1183
|
+
});
|
|
1184
|
+
}
|
|
1185
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailContentComponent, deps: [{ token: i1$1.ConfigService }, { token: i2.DocumentService }, { token: i12.IconService }, { token: i4.NGXLogger }, { token: i9.ValtimoModalService }, { token: i3$1.PermissionService }, { token: i7.ProcessLinkService }, { token: i1$2.Router }, { token: i9.FormIoStateService }, { token: TaskIntermediateSaveService }, { token: TaskService }, { token: i10.ToastrService }, { token: i3.TranslateService }, { token: FORM_VIEW_MODEL_TOKEN, optional: true }, { token: i7.UrlResolverService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1186
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskDetailContentComponent, isStandalone: true, selector: "valtimo-task-detail-content", inputs: { task: "task" }, 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, static: true }, { propertyName: "formFlow", first: true, predicate: ["formFlow"], 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<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 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=\"obs.formDefinition && obs.processLinkIsForm\"\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 ></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 && !obs.formDefinition && !obs.formFlowInstanceId && !obs.errorMessage\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 </div>\n\n <div *ngIf=\"!obs.formDefinition && !obs.formFlowInstanceId\" class=\"mb-0 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoProcessLinkScreen()\"\n id=\"process-link-button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.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: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProcessLinkModule }, { kind: "component", type: i7.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1187
|
+
}
|
|
1188
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailContentComponent, decorators: [{
|
|
1189
|
+
type: Component,
|
|
1190
|
+
args: [{ selector: 'valtimo-task-detail-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormIoModule, TranslateModule, ProcessLinkModule], 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<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 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=\"obs.formDefinition && obs.processLinkIsForm\"\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 ></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 && !obs.formDefinition && !obs.formFlowInstanceId && !obs.errorMessage\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 </div>\n\n <div *ngIf=\"!obs.formDefinition && !obs.formFlowInstanceId\" class=\"mb-0 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoProcessLinkScreen()\"\n id=\"process-link-button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n</ng-container>\n" }]
|
|
1191
|
+
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i2.DocumentService }, { type: i12.IconService }, { type: i4.NGXLogger }, { type: i9.ValtimoModalService }, { type: i3$1.PermissionService }, { type: i7.ProcessLinkService }, { type: i1$2.Router }, { type: i9.FormIoStateService }, { type: TaskIntermediateSaveService }, { type: TaskService }, { type: i10.ToastrService }, { type: i3.TranslateService }, { type: undefined, decorators: [{
|
|
1192
|
+
type: Optional
|
|
1193
|
+
}, {
|
|
1194
|
+
type: Inject,
|
|
1195
|
+
args: [FORM_VIEW_MODEL_TOKEN]
|
|
1196
|
+
}] }, { type: i7.UrlResolverService }], propDecorators: { form: [{
|
|
1197
|
+
type: ViewChild,
|
|
1198
|
+
args: ['form']
|
|
1199
|
+
}], formViewModelDynamicContainer: [{
|
|
1200
|
+
type: ViewChild,
|
|
1201
|
+
args: ['formViewModelComponent', { static: true, read: ViewContainerRef }]
|
|
1202
|
+
}], formFlow: [{
|
|
1203
|
+
type: ViewChild,
|
|
1204
|
+
args: ['formFlow']
|
|
1205
|
+
}], task: [{
|
|
1206
|
+
type: Input
|
|
1207
|
+
}], closeModalEvent: [{
|
|
1208
|
+
type: Output
|
|
1209
|
+
}], formSubmit: [{
|
|
1210
|
+
type: Output
|
|
1211
|
+
}], activeChange: [{
|
|
1212
|
+
type: Output
|
|
1213
|
+
}] } });
|
|
1214
|
+
|
|
1215
|
+
/*
|
|
1216
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1217
|
+
*
|
|
1218
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1219
|
+
* you may not use this file except in compliance with the License.
|
|
1220
|
+
* You may obtain a copy of the License at
|
|
1221
|
+
*
|
|
1222
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1223
|
+
*
|
|
1224
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1225
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1226
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1227
|
+
* See the License for the specific language governing permissions and
|
|
1228
|
+
* limitations under the License.
|
|
1229
|
+
*/
|
|
1230
|
+
class TaskDetailIntermediateSaveComponent {
|
|
1231
|
+
set task(value) {
|
|
1232
|
+
if (!value)
|
|
1233
|
+
return;
|
|
1234
|
+
this.taskService
|
|
1235
|
+
.getTaskProcessLink(value.id)
|
|
1236
|
+
.pipe(take$1(1))
|
|
1237
|
+
.subscribe(res => {
|
|
1238
|
+
if (res !== null && res.type === 'form-flow')
|
|
1239
|
+
this.formFlowInstanceId$.next(res.properties.formFlowInstanceId);
|
|
1277
1240
|
});
|
|
1241
|
+
this.taskValue.set(value);
|
|
1242
|
+
this.page.set({
|
|
1243
|
+
title: value.name,
|
|
1244
|
+
subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${value.created}`,
|
|
1245
|
+
});
|
|
1246
|
+
this.getCurrentProgress(value);
|
|
1247
|
+
}
|
|
1248
|
+
constructor(configService, iconService, translateService, taskIntermediateSaveService, taskService, toastr) {
|
|
1249
|
+
this.configService = configService;
|
|
1250
|
+
this.iconService = iconService;
|
|
1251
|
+
this.translateService = translateService;
|
|
1252
|
+
this.taskIntermediateSaveService = taskIntermediateSaveService;
|
|
1253
|
+
this.taskService = taskService;
|
|
1254
|
+
this.toastr = toastr;
|
|
1255
|
+
this.currentIntermediateSaveEvent = new EventEmitter();
|
|
1256
|
+
this.showModalEvent = new EventEmitter();
|
|
1257
|
+
this.formFlowInstanceId$ = new BehaviorSubject(undefined);
|
|
1258
|
+
this.showConfirmationModal$ = new BehaviorSubject(false);
|
|
1259
|
+
this.taskValue = signal(null);
|
|
1260
|
+
this.page = signal(null);
|
|
1261
|
+
this.canAssignUserToTask = signal(false);
|
|
1262
|
+
this.submission$ = this.taskIntermediateSaveService.submission$;
|
|
1263
|
+
this.formIoFormData$ = this.taskIntermediateSaveService.formIoFormData$;
|
|
1264
|
+
this.intermediateSaveEnabled = false;
|
|
1265
|
+
this.currentIntermediateSave = null;
|
|
1266
|
+
this.intermediateSaveEnabled = !!this.configService.featureToggles?.enableIntermediateSave;
|
|
1267
|
+
this.iconService.registerAll([RecentlyViewed16]);
|
|
1278
1268
|
}
|
|
1279
1269
|
saveCurrentProgress() {
|
|
1280
|
-
|
|
1281
|
-
submission
|
|
1282
|
-
|
|
1283
|
-
:
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
.pipe(take(1))
|
|
1270
|
+
combineLatest([this.submission$, this.formIoFormData$])
|
|
1271
|
+
.pipe(switchMap(([submission, formIoFormData]) => {
|
|
1272
|
+
const intermediateSaveRequest = {
|
|
1273
|
+
submission: submission?.data ? submission.data : formIoFormData,
|
|
1274
|
+
taskInstanceId: this.taskValue()?.id ?? '',
|
|
1275
|
+
};
|
|
1276
|
+
return this.taskIntermediateSaveService.storeIntermediateSubmission(intermediateSaveRequest);
|
|
1277
|
+
}), take$1(1))
|
|
1289
1278
|
.subscribe({
|
|
1290
1279
|
next: intermediateSubmission => {
|
|
1291
1280
|
this.toastr.success(this.translateService.instant('formManagement.intermediateSave.success'));
|
|
1292
1281
|
this.currentIntermediateSave = this.formatIntermediateSubmission(intermediateSubmission);
|
|
1282
|
+
this.currentIntermediateSaveEvent.emit(this.currentIntermediateSave);
|
|
1293
1283
|
},
|
|
1294
1284
|
error: () => {
|
|
1295
1285
|
this.toastr.error(this.translateService.instant('formManagement.intermediateSave.error'));
|
|
1296
1286
|
},
|
|
1297
1287
|
});
|
|
1298
1288
|
}
|
|
1289
|
+
revertSaveClick() {
|
|
1290
|
+
if (this.showModalEvent.observed) {
|
|
1291
|
+
this.showModalEvent.emit();
|
|
1292
|
+
return;
|
|
1293
|
+
}
|
|
1294
|
+
this.showConfirmationModal$.next(true);
|
|
1295
|
+
}
|
|
1299
1296
|
clearCurrentProgress() {
|
|
1300
|
-
this.
|
|
1301
|
-
.
|
|
1302
|
-
.
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1297
|
+
this.taskIntermediateSaveService
|
|
1298
|
+
.clearIntermediateSubmission(this.taskValue()?.id ?? '')
|
|
1299
|
+
.pipe(take$1(1))
|
|
1300
|
+
.subscribe(() => {
|
|
1301
|
+
this.taskIntermediateSaveService.setSubmission({ data: {} });
|
|
1302
|
+
this.currentIntermediateSave = null;
|
|
1303
|
+
this.currentIntermediateSaveEvent.emit(this.currentIntermediateSave);
|
|
1307
1304
|
});
|
|
1308
1305
|
}
|
|
1309
1306
|
formatIntermediateSubmission(intermediateSubmission) {
|
|
@@ -1313,43 +1310,142 @@ class TaskDetailModalComponent {
|
|
|
1313
1310
|
}
|
|
1314
1311
|
return intermediateSubmission;
|
|
1315
1312
|
}
|
|
1316
|
-
|
|
1317
|
-
this.
|
|
1313
|
+
getCurrentProgress(task) {
|
|
1314
|
+
this.taskIntermediateSaveService
|
|
1315
|
+
.getIntermediateSubmission(task.id ?? '')
|
|
1316
|
+
.pipe(take$1(1))
|
|
1317
|
+
.subscribe(intermediateSave => {
|
|
1318
|
+
this.currentIntermediateSave = this.formatIntermediateSubmission(intermediateSave);
|
|
1319
|
+
});
|
|
1320
|
+
}
|
|
1321
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailIntermediateSaveComponent, deps: [{ token: i1$1.ConfigService }, { token: i12.IconService }, { token: i3.TranslateService }, { token: TaskIntermediateSaveService }, { token: TaskService }, { token: i10.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1322
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TaskDetailIntermediateSaveComponent, isStandalone: true, selector: "valtimo-task-detail-intermediate-save", inputs: { task: "task" }, outputs: { currentIntermediateSaveEvent: "currentIntermediateSaveEvent", showModalEvent: "showModalEvent" }, 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@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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i12.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: i12.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 }); }
|
|
1323
|
+
}
|
|
1324
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailIntermediateSaveComponent, decorators: [{
|
|
1325
|
+
type: Component,
|
|
1326
|
+
args: [{ selector: 'valtimo-task-detail-intermediate-save', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1327
|
+
CommonModule,
|
|
1328
|
+
TranslateModule,
|
|
1329
|
+
ButtonModule,
|
|
1330
|
+
ConfirmationModalModule,
|
|
1331
|
+
IconModule,
|
|
1332
|
+
ModalModule,
|
|
1333
|
+
TooltipModule,
|
|
1334
|
+
], 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@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" }]
|
|
1335
|
+
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i12.IconService }, { type: i3.TranslateService }, { type: TaskIntermediateSaveService }, { type: TaskService }, { type: i10.ToastrService }], propDecorators: { task: [{
|
|
1336
|
+
type: Input
|
|
1337
|
+
}], currentIntermediateSaveEvent: [{
|
|
1338
|
+
type: Output
|
|
1339
|
+
}], showModalEvent: [{
|
|
1340
|
+
type: Output
|
|
1341
|
+
}] } });
|
|
1342
|
+
|
|
1343
|
+
/*
|
|
1344
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1345
|
+
*
|
|
1346
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1347
|
+
* you may not use this file except in compliance with the License.
|
|
1348
|
+
* You may obtain a copy of the License at
|
|
1349
|
+
*
|
|
1350
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1351
|
+
*
|
|
1352
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1353
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1354
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1355
|
+
* See the License for the specific language governing permissions and
|
|
1356
|
+
* limitations under the License.
|
|
1357
|
+
*/
|
|
1358
|
+
moment.locale(localStorage.getItem('langKey') || '');
|
|
1359
|
+
class TaskDetailModalComponent {
|
|
1360
|
+
set modalSize(value) {
|
|
1361
|
+
if (value)
|
|
1362
|
+
this.size$.next(formSizeToCarbonModalSizeMap[value]);
|
|
1363
|
+
}
|
|
1364
|
+
constructor(router, translateService, permissionService, logger, taskIntermediateSaveService) {
|
|
1365
|
+
this.router = router;
|
|
1366
|
+
this.translateService = translateService;
|
|
1367
|
+
this.permissionService = permissionService;
|
|
1368
|
+
this.logger = logger;
|
|
1369
|
+
this.taskIntermediateSaveService = taskIntermediateSaveService;
|
|
1370
|
+
this.formSubmit = new EventEmitter();
|
|
1371
|
+
this.assignmentOfTaskChanged = new EventEmitter();
|
|
1372
|
+
this.currentIntermediateSave$ = new BehaviorSubject(null);
|
|
1373
|
+
this.task$ = new BehaviorSubject(null);
|
|
1374
|
+
this.submission$ = new BehaviorSubject({});
|
|
1375
|
+
this.page$ = new BehaviorSubject(null);
|
|
1376
|
+
this.showConfirmationModal$ = new BehaviorSubject(false);
|
|
1377
|
+
this.size$ = new BehaviorSubject('md');
|
|
1378
|
+
this.canAssignUserToTask$ = new BehaviorSubject(false);
|
|
1379
|
+
this._subscriptions = new Subscription();
|
|
1380
|
+
}
|
|
1381
|
+
ngOnInit() {
|
|
1382
|
+
this._subscriptions.add(this.task$.subscribe(task => {
|
|
1383
|
+
if (task) {
|
|
1384
|
+
this.logger.debug('Checking if user allowed to assign a user to Task with id:', task.id);
|
|
1385
|
+
this.permissionService
|
|
1386
|
+
.requestPermission(CAN_ASSIGN_TASK_PERMISSION, {
|
|
1387
|
+
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
1388
|
+
identifier: task.id,
|
|
1389
|
+
})
|
|
1390
|
+
.subscribe((allowed) => {
|
|
1391
|
+
this.canAssignUserToTask$.next(allowed);
|
|
1392
|
+
});
|
|
1393
|
+
}
|
|
1394
|
+
else {
|
|
1395
|
+
this.logger.debug('Reset is user allowed to assign a user to Task as task is null');
|
|
1396
|
+
this.canAssignUserToTask$.next(false);
|
|
1397
|
+
}
|
|
1398
|
+
}));
|
|
1399
|
+
}
|
|
1400
|
+
clearCurrentProgress() {
|
|
1401
|
+
this._intermediateSaveComponent.clearCurrentProgress();
|
|
1402
|
+
}
|
|
1403
|
+
openTaskDetails(task) {
|
|
1404
|
+
this.task$.next(task);
|
|
1405
|
+
this.page$.next({
|
|
1406
|
+
title: task?.name,
|
|
1407
|
+
subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${task?.created}`,
|
|
1408
|
+
});
|
|
1409
|
+
this.openModal();
|
|
1410
|
+
}
|
|
1411
|
+
gotoProcessLinkScreen() {
|
|
1412
|
+
this.closeModal();
|
|
1413
|
+
this.router.navigate(['process-links']);
|
|
1414
|
+
}
|
|
1415
|
+
onCurrentIntermediateSaveEvent(value) {
|
|
1416
|
+
this.currentIntermediateSave$.next(value);
|
|
1417
|
+
}
|
|
1418
|
+
onFormSubmit() {
|
|
1419
|
+
this.formSubmit.emit();
|
|
1420
|
+
}
|
|
1421
|
+
onShowModalEvent() {
|
|
1422
|
+
this.showConfirmationModal$.next(true);
|
|
1318
1423
|
}
|
|
1319
1424
|
closeModal() {
|
|
1320
|
-
this.
|
|
1321
|
-
this.
|
|
1322
|
-
if (this.formFlow) {
|
|
1323
|
-
this.formFlow.saveData();
|
|
1324
|
-
}
|
|
1425
|
+
this._modal.open = false;
|
|
1426
|
+
this.taskIntermediateSaveService.setSubmission({ data: {} });
|
|
1325
1427
|
}
|
|
1326
|
-
|
|
1327
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: { formSubmit: "formSubmit", assignmentOfTaskChanged: "assignmentOfTaskChanged" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formFlow", first: true, predicate: ["formFlow"], descendants: true }, { propertyName: "modal", first: true, predicate: ["taskDetailModal"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef, static: 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<cds-modal #taskDetailModal id=\"taskDetailModal\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <div class=\"cds-modal-header\">\n <div class=\"title-container\">\n <p class=\"cds--modal-header__heading cds--type-beta\">{{ (page$ | async)?.title }}</p>\n <p class=\"cds--modal-header__label cds--type-delta\">{{ (page$ | async)?.subtitle }}</p>\n <p class=\"cds--modal-header__label cds--type-delta\" *ngIf=\"currentIntermediateSave\">\n {{ 'formManagement.intermediateSave.lastSavedBy' | translate }}:\n {{\n currentIntermediateSave?.editedBy\n ? currentIntermediateSave?.editedBy\n : currentIntermediateSave.createdBy\n }}\n {{ 'formManagement.intermediateSave.on' | translate }}:\n {{\n currentIntermediateSave?.editedOn\n ? currentIntermediateSave?.editedOn\n : currentIntermediateSave.createdOn\n }}\n </p>\n <ng-container *ngTemplateOutlet=\"assignUserToTask\"></ng-container>\n </div>\n <div\n *ngIf=\"intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined\"\n class=\"save-buttons-margin\"\n >\n <cds-tooltip\n [caret]=\"true\"\n enterDelayMs=\"0\"\n leaveDelayMs=\"0\"\n [description]=\"'formManagement.intermediateSave.save' | translate\"\n >\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n </cds-tooltip>\n <cds-tooltip\n [caret]=\"true\"\n enterDelayMs=\"0\"\n leaveDelayMs=\"0\"\n [description]=\"'formManagement.intermediateSave.clear' | translate\"\n >\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n (click)=\"showConfirmationModal$.next(true)\"\n ></button>\n </cds-tooltip>\n </div>\n </div>\n </cds-modal-header>\n <div\n body\n class=\"cds--modal-content pb-1\"\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 formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async\n } as obs\"\n >\n <div *ngIf=\"obs.formDefinition && obs.processLinkIsForm\">\n <valtimo-form-io\n #form\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 </div>\n <div *ngIf=\"obs.processLinkIsFormFlow\">\n <valtimo-form-flow\n #formFlow\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask()\"\n ></valtimo-form-flow>\n </div>\n <div *ngIf=\"obs.loading\">\n <div class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n </div>\n <div\n *ngIf=\"\n obs.loading === false && !obs.formDefinition && !obs.formFlowInstanceId && !obs.errorMessage\n \"\n >\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n </div>\n <div *ngIf=\"obs.errorMessage\">\n <div class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n </div>\n </div>\n <div\n footer\n *ngIf=\"{\n formDefinition: formDefinition$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async\n } as obs\"\n >\n <div class=\"mb-0 p-3 text-center\" *ngIf=\"!obs.formDefinition && !obs.formFlowInstanceId\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoProcessLinkScreen()\"\n id=\"process-link-button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body class=\"m-2\">\n <ng-template #formViewModelComponent></ng-template>\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 <ng-container *ngIf=\"{\n task: task$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async\n } as obs\">\n <valtimo-assign-user-to-task\n *ngIf=\"obs.task && obs.canAssignUserToTask && assignmentOfTaskChanged\"\n [taskId]=\"obs.task.id\"\n [assigneeId]=\"obs.task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n </ng-container>\n</ng-template>\n", styles: ["#taskDetailModal .formio-component-submit{text-align:right}.cds-modal-header{width:100%;display:flex;justify-content:space-between}.title-container{width:50%}.save-buttons-margin{margin-top:-15px}\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: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }, { kind: "component", type: i11.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i11.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete"] }, { kind: "directive", type: i11.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i11.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i11.Tooltip, selector: "cds-tooltip, ibm-tooltip", inputs: ["id", "enterDelayMs", "leaveDelayMs", "disabled", "description", "templateContext"] }, { kind: "component", type: i6.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"], outputs: ["assignmentOfTaskChanged"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1428
|
+
openModal() {
|
|
1429
|
+
this._modal.open = true;
|
|
1430
|
+
}
|
|
1431
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailModalComponent, deps: [{ token: i1$2.Router }, { token: i3.TranslateService }, { token: i3$1.PermissionService }, { token: i4.NGXLogger }, { token: TaskIntermediateSaveService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1432
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskDetailModalComponent, selector: "valtimo-task-detail-modal", inputs: { modalSize: "modalSize" }, outputs: { formSubmit: "formSubmit", assignmentOfTaskChanged: "assignmentOfTaskChanged" }, viewQueries: [{ propertyName: "_modal", first: true, predicate: ["taskDetailModal"], descendants: true }, { propertyName: "_intermediateSaveComponent", first: true, predicate: TaskDetailIntermediateSaveComponent, 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<cds-modal #taskDetailModal id=\"taskDetailModal\" [size]=\"size$ | async\">\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 <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 </cds-modal-header>\n\n <div body class=\"cds--modal-content pb-1\">\n <valtimo-task-detail-content\n [task]=\"task$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\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 <ng-container\n *ngIf=\"{\n task: task$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n >\n <valtimo-assign-user-to-task\n *ngIf=\"obs.task && obs.canAssignUserToTask && assignmentOfTaskChanged\"\n [taskId]=\"obs.task.id\"\n [assigneeId]=\"obs.task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n </ng-container>\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}\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: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i12.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i12.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"], outputs: ["assignmentOfTaskChanged"] }, { kind: "component", type: TaskDetailContentComponent, selector: "valtimo-task-detail-content", inputs: ["task"], outputs: ["closeModalEvent", "formSubmit", "activeChange"] }, { kind: "component", type: TaskDetailIntermediateSaveComponent, selector: "valtimo-task-detail-intermediate-save", inputs: ["task"], outputs: ["currentIntermediateSaveEvent", "showModalEvent"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1328
1433
|
}
|
|
1329
1434
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailModalComponent, decorators: [{
|
|
1330
1435
|
type: Component,
|
|
1331
|
-
args: [{ selector: 'valtimo-task-detail-modal', encapsulation: ViewEncapsulation.None, 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<cds-modal #taskDetailModal id=\"taskDetailModal\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <div class=\"
|
|
1332
|
-
}], ctorParameters: () => [{ type: i1$2.
|
|
1333
|
-
type: Optional
|
|
1334
|
-
}, {
|
|
1335
|
-
type: Inject,
|
|
1336
|
-
args: [FORM_VIEW_MODEL_TOKEN]
|
|
1337
|
-
}] }, { type: TaskIntermediateSaveService }, { type: i2.ConfigService }, { type: i11.IconService }, { type: i12.PermissionService }, { type: i13.NGXLogger }], propDecorators: { form: [{
|
|
1338
|
-
type: ViewChild,
|
|
1339
|
-
args: ['form']
|
|
1340
|
-
}], formFlow: [{
|
|
1341
|
-
type: ViewChild,
|
|
1342
|
-
args: ['formFlow']
|
|
1343
|
-
}], modal: [{
|
|
1436
|
+
args: [{ selector: 'valtimo-task-detail-modal', encapsulation: ViewEncapsulation.None, 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<cds-modal #taskDetailModal id=\"taskDetailModal\" [size]=\"size$ | async\">\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 <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 </cds-modal-header>\n\n <div body class=\"cds--modal-content pb-1\">\n <valtimo-task-detail-content\n [task]=\"task$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\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 <ng-container\n *ngIf=\"{\n task: task$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n >\n <valtimo-assign-user-to-task\n *ngIf=\"obs.task && obs.canAssignUserToTask && assignmentOfTaskChanged\"\n [taskId]=\"obs.task.id\"\n [assigneeId]=\"obs.task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n </ng-container>\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}\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"] }]
|
|
1437
|
+
}], ctorParameters: () => [{ type: i1$2.Router }, { type: i3.TranslateService }, { type: i3$1.PermissionService }, { type: i4.NGXLogger }, { type: TaskIntermediateSaveService }], propDecorators: { _modal: [{
|
|
1344
1438
|
type: ViewChild,
|
|
1345
1439
|
args: ['taskDetailModal']
|
|
1346
|
-
}],
|
|
1440
|
+
}], _intermediateSaveComponent: [{
|
|
1347
1441
|
type: ViewChild,
|
|
1348
|
-
args: [
|
|
1442
|
+
args: [TaskDetailIntermediateSaveComponent]
|
|
1349
1443
|
}], formSubmit: [{
|
|
1350
1444
|
type: Output
|
|
1351
1445
|
}], assignmentOfTaskChanged: [{
|
|
1352
1446
|
type: Output
|
|
1447
|
+
}], modalSize: [{
|
|
1448
|
+
type: Input
|
|
1353
1449
|
}] } });
|
|
1354
1450
|
|
|
1355
1451
|
/*
|
|
@@ -1432,8 +1528,8 @@ class TaskListComponent {
|
|
|
1432
1528
|
this.selectedTaskType$,
|
|
1433
1529
|
this._overrideNoResultsMessage$,
|
|
1434
1530
|
]).pipe(map(([selectedTaskType, overrideNoResultsMessage]) => overrideNoResultsMessage || {
|
|
1435
|
-
title: 'task-list.' + selectedTaskType + '.
|
|
1436
|
-
description: 'task-list.' + selectedTaskType + '.
|
|
1531
|
+
title: 'task-list.' + selectedTaskType + '.noResultsTitle',
|
|
1532
|
+
description: 'task-list.' + selectedTaskType + '.noResultsDescription',
|
|
1437
1533
|
isSearchResult: false,
|
|
1438
1534
|
}));
|
|
1439
1535
|
this.fields$ = this.taskListColumnService.fields$;
|
|
@@ -1456,7 +1552,7 @@ class TaskListComponent {
|
|
|
1456
1552
|
this._reload$,
|
|
1457
1553
|
this.taskListSearchService.otherFilters$,
|
|
1458
1554
|
this.taskListSortService.overrideSortStateString$,
|
|
1459
|
-
]).pipe(filter$1(([loadingStateForCaseDefinition]) => loadingStateForCaseDefinition === false), map(([_, selectedTaskType, paginationForSelectedTaskType, sortStringForSelectedTaskType, caseDefinitionName, enableLoadingAnimation, reload, otherFilters, overrideSortStateString,]) => this.getTaskListParams(paginationForSelectedTaskType, overrideSortStateString || sortStringForSelectedTaskType, selectedTaskType, caseDefinitionName, enableLoadingAnimation, reload, otherFilters)), distinctUntilChanged((previous, current) => isEqual(previous.params, current.params)), tap(params => {
|
|
1555
|
+
]).pipe(filter$1(([loadingStateForCaseDefinition]) => loadingStateForCaseDefinition === false), map(([_, selectedTaskType, paginationForSelectedTaskType, sortStringForSelectedTaskType, caseDefinitionName, enableLoadingAnimation, reload, otherFilters, overrideSortStateString,]) => this.getTaskListParams(paginationForSelectedTaskType, overrideSortStateString || sortStringForSelectedTaskType, selectedTaskType, caseDefinitionName, enableLoadingAnimation, reload, otherFilters)), distinctUntilChanged$1((previous, current) => isEqual(previous.params, current.params)), tap(params => {
|
|
1460
1556
|
if (params.enableLoadingAnimation)
|
|
1461
1557
|
this.loadingTasks$.next(true);
|
|
1462
1558
|
this.taskListQueryParamService.setTaskListParams(params.params);
|
|
@@ -1697,7 +1793,7 @@ class TaskListComponent {
|
|
|
1697
1793
|
if (decodedParams.params)
|
|
1698
1794
|
this.taskListPaginationService.updateTaskPagination(this.taskListService.selectedTaskType, decodedParams.params);
|
|
1699
1795
|
}
|
|
1700
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListComponent, deps: [{ token:
|
|
1796
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListComponent, deps: [{ token: i1$1.ConfigService }, { token: i2.DocumentService }, { token: i3$1.PermissionService }, { token: i1$2.Router }, { token: TaskService }, { token: TaskListService }, { token: i3.TranslateService }, { token: TaskListColumnService }, { token: TaskListPaginationService }, { token: TaskListSortService }, { token: TaskListSearchService }, { token: TaskListQueryParamService }, { token: i9.PageTitleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1701
1797
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TaskListComponent, selector: "valtimo-task-list", host: { listeners: { "window:popstate": "onPopState($event)" } }, providers: [
|
|
1702
1798
|
TaskListService,
|
|
1703
1799
|
TaskListColumnService,
|
|
@@ -1705,7 +1801,7 @@ class TaskListComponent {
|
|
|
1705
1801
|
TaskListSortService,
|
|
1706
1802
|
TaskListSearchService,
|
|
1707
1803
|
TaskListQueryParamService,
|
|
1708
|
-
], 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: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.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: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i11$1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i11.Link, selector: "[cdsLink], [ibmLink]", inputs: ["inline", "disabled"] }, { kind: "component", type: i11.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i11.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "directive", type: i6.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i11.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: i11.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i6.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", outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1804
|
+
], 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: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.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: i12.Link, selector: "[cdsLink], [ibmLink]", inputs: ["inline", "disabled"] }, { kind: "component", type: i12.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i12.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: i12.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: i12.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: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1709
1805
|
}
|
|
1710
1806
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListComponent, decorators: [{
|
|
1711
1807
|
type: Component,
|
|
@@ -1716,8 +1812,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1716
1812
|
TaskListSortService,
|
|
1717
1813
|
TaskListSearchService,
|
|
1718
1814
|
TaskListQueryParamService,
|
|
1719
|
-
], 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
|
|
1720
|
-
}], ctorParameters: () => [{ type:
|
|
1815
|
+
], 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"] }]
|
|
1816
|
+
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i2.DocumentService }, { type: i3$1.PermissionService }, { type: i1$2.Router }, { type: TaskService }, { type: TaskListService }, { type: i3.TranslateService }, { type: TaskListColumnService }, { type: TaskListPaginationService }, { type: TaskListSortService }, { type: TaskListSearchService }, { type: TaskListQueryParamService }, { type: i9.PageTitleService }], propDecorators: { _taskDetail: [{
|
|
1721
1817
|
type: ViewChild,
|
|
1722
1818
|
args: ['taskDetail']
|
|
1723
1819
|
}], onPopState: [{
|
|
@@ -1725,6 +1821,133 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1725
1821
|
args: ['window:popstate', ['$event']]
|
|
1726
1822
|
}] } });
|
|
1727
1823
|
|
|
1824
|
+
/*
|
|
1825
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1826
|
+
*
|
|
1827
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1828
|
+
* you may not use this file except in compliance with the License.
|
|
1829
|
+
* You may obtain a copy of the License at
|
|
1830
|
+
*
|
|
1831
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1832
|
+
*
|
|
1833
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1834
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1835
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1836
|
+
* See the License for the specific language governing permissions and
|
|
1837
|
+
* limitations under the License.
|
|
1838
|
+
*/
|
|
1839
|
+
|
|
1840
|
+
/*
|
|
1841
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1842
|
+
*
|
|
1843
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1844
|
+
* you may not use this file except in compliance with the License.
|
|
1845
|
+
* You may obtain a copy of the License at
|
|
1846
|
+
*
|
|
1847
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1848
|
+
*
|
|
1849
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1850
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1851
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1852
|
+
* See the License for the specific language governing permissions and
|
|
1853
|
+
* limitations under the License.
|
|
1854
|
+
*/
|
|
1855
|
+
|
|
1856
|
+
/*
|
|
1857
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1858
|
+
*
|
|
1859
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1860
|
+
* you may not use this file except in compliance with the License.
|
|
1861
|
+
* You may obtain a copy of the License at
|
|
1862
|
+
*
|
|
1863
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1864
|
+
*
|
|
1865
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1866
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1867
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1868
|
+
* See the License for the specific language governing permissions and
|
|
1869
|
+
* limitations under the License.
|
|
1870
|
+
*/
|
|
1871
|
+
var TaskListColumnDefaultSort;
|
|
1872
|
+
(function (TaskListColumnDefaultSort) {
|
|
1873
|
+
TaskListColumnDefaultSort["ASC"] = "ASC";
|
|
1874
|
+
TaskListColumnDefaultSort["DESC"] = "DESC";
|
|
1875
|
+
})(TaskListColumnDefaultSort || (TaskListColumnDefaultSort = {}));
|
|
1876
|
+
|
|
1877
|
+
/*
|
|
1878
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1879
|
+
*
|
|
1880
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1881
|
+
* you may not use this file except in compliance with the License.
|
|
1882
|
+
* You may obtain a copy of the License at
|
|
1883
|
+
*
|
|
1884
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1885
|
+
*
|
|
1886
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1887
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1888
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1889
|
+
* See the License for the specific language governing permissions and
|
|
1890
|
+
* limitations under the License.
|
|
1891
|
+
*/
|
|
1892
|
+
|
|
1893
|
+
/*
|
|
1894
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1895
|
+
*
|
|
1896
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1897
|
+
* you may not use this file except in compliance with the License.
|
|
1898
|
+
* You may obtain a copy of the License at
|
|
1899
|
+
*
|
|
1900
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1901
|
+
*
|
|
1902
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1903
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1904
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1905
|
+
* See the License for the specific language governing permissions and
|
|
1906
|
+
* limitations under the License.
|
|
1907
|
+
*/
|
|
1908
|
+
var TaskListSearchFieldDataType;
|
|
1909
|
+
(function (TaskListSearchFieldDataType) {
|
|
1910
|
+
TaskListSearchFieldDataType["TEXT"] = "text";
|
|
1911
|
+
TaskListSearchFieldDataType["NUMBER"] = "number";
|
|
1912
|
+
TaskListSearchFieldDataType["DATE"] = "date";
|
|
1913
|
+
TaskListSearchFieldDataType["DATETIME"] = "datetime";
|
|
1914
|
+
TaskListSearchFieldDataType["TIME"] = "time";
|
|
1915
|
+
TaskListSearchFieldDataType["BOOLEAN"] = "boolean";
|
|
1916
|
+
})(TaskListSearchFieldDataType || (TaskListSearchFieldDataType = {}));
|
|
1917
|
+
var TaskListSearchFieldFieldType;
|
|
1918
|
+
(function (TaskListSearchFieldFieldType) {
|
|
1919
|
+
TaskListSearchFieldFieldType["SINGLE"] = "single";
|
|
1920
|
+
TaskListSearchFieldFieldType["RANGE"] = "range";
|
|
1921
|
+
TaskListSearchFieldFieldType["SINGLE_SELECT_DROPDOWN"] = "single_select_dropdown";
|
|
1922
|
+
TaskListSearchFieldFieldType["MULTI_SELECT_DROPDOWN"] = "multi_select_dropdown";
|
|
1923
|
+
})(TaskListSearchFieldFieldType || (TaskListSearchFieldFieldType = {}));
|
|
1924
|
+
var TaskListSearchFieldMatchType;
|
|
1925
|
+
(function (TaskListSearchFieldMatchType) {
|
|
1926
|
+
TaskListSearchFieldMatchType["LIKE"] = "like";
|
|
1927
|
+
TaskListSearchFieldMatchType["EXACT"] = "exact";
|
|
1928
|
+
})(TaskListSearchFieldMatchType || (TaskListSearchFieldMatchType = {}));
|
|
1929
|
+
var TaskListSearchDropdownDataProvider;
|
|
1930
|
+
(function (TaskListSearchDropdownDataProvider) {
|
|
1931
|
+
TaskListSearchDropdownDataProvider["DATABASE"] = "dropdownDatabaseDataProvider";
|
|
1932
|
+
TaskListSearchDropdownDataProvider["JSON"] = "dropdownJsonFileDataProvider";
|
|
1933
|
+
})(TaskListSearchDropdownDataProvider || (TaskListSearchDropdownDataProvider = {}));
|
|
1934
|
+
|
|
1935
|
+
/*
|
|
1936
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1937
|
+
*
|
|
1938
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1939
|
+
* you may not use this file except in compliance with the License.
|
|
1940
|
+
* You may obtain a copy of the License at
|
|
1941
|
+
*
|
|
1942
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1943
|
+
*
|
|
1944
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1945
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1946
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1947
|
+
* See the License for the specific language governing permissions and
|
|
1948
|
+
* limitations under the License.
|
|
1949
|
+
*/
|
|
1950
|
+
|
|
1728
1951
|
/*
|
|
1729
1952
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1730
1953
|
*
|
|
@@ -1750,7 +1973,7 @@ const routes = [
|
|
|
1750
1973
|
];
|
|
1751
1974
|
class TaskRoutingModule {
|
|
1752
1975
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1753
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, i1$
|
|
1976
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, i1$2.RouterModule], exports: [RouterModule] }); }
|
|
1754
1977
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
1755
1978
|
}
|
|
1756
1979
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskRoutingModule, decorators: [{
|
|
@@ -1779,7 +2002,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1779
2002
|
*/
|
|
1780
2003
|
class TaskModule {
|
|
1781
2004
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1782
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: TaskModule, declarations: [TaskListComponent, TaskDetailModalComponent
|
|
2005
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: TaskModule, declarations: [TaskListComponent, TaskDetailModalComponent], imports: [CommonModule,
|
|
1783
2006
|
TaskRoutingModule,
|
|
1784
2007
|
CarbonListModule,
|
|
1785
2008
|
PageHeaderModule,
|
|
@@ -1788,7 +2011,7 @@ class TaskModule {
|
|
|
1788
2011
|
SearchableDropdownSelectModule,
|
|
1789
2012
|
CamundaFormModule,
|
|
1790
2013
|
BrowserAnimationsModule,
|
|
1791
|
-
FormsModule,
|
|
2014
|
+
FormsModule, i10.ToastrModule, i3.TranslateModule, NgbModule,
|
|
1792
2015
|
FormIoModule,
|
|
1793
2016
|
ModalModule,
|
|
1794
2017
|
LinkModule,
|
|
@@ -1799,9 +2022,12 @@ class TaskModule {
|
|
|
1799
2022
|
DropdownModule,
|
|
1800
2023
|
ButtonModule,
|
|
1801
2024
|
IconModule,
|
|
1802
|
-
TooltipModule,
|
|
2025
|
+
TooltipModule$1,
|
|
1803
2026
|
ConfirmationModalModule,
|
|
1804
|
-
SearchFieldsModule
|
|
2027
|
+
SearchFieldsModule,
|
|
2028
|
+
AssignUserToTaskComponent,
|
|
2029
|
+
TaskDetailContentComponent,
|
|
2030
|
+
TaskDetailIntermediateSaveComponent], exports: [TaskListComponent, TaskDetailModalComponent] }); }
|
|
1805
2031
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskModule, imports: [CommonModule,
|
|
1806
2032
|
TaskRoutingModule,
|
|
1807
2033
|
CarbonListModule,
|
|
@@ -1834,14 +2060,17 @@ class TaskModule {
|
|
|
1834
2060
|
DropdownModule,
|
|
1835
2061
|
ButtonModule,
|
|
1836
2062
|
IconModule,
|
|
1837
|
-
TooltipModule,
|
|
2063
|
+
TooltipModule$1,
|
|
1838
2064
|
ConfirmationModalModule,
|
|
1839
|
-
SearchFieldsModule
|
|
2065
|
+
SearchFieldsModule,
|
|
2066
|
+
AssignUserToTaskComponent,
|
|
2067
|
+
TaskDetailContentComponent,
|
|
2068
|
+
TaskDetailIntermediateSaveComponent] }); }
|
|
1840
2069
|
}
|
|
1841
2070
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskModule, decorators: [{
|
|
1842
2071
|
type: NgModule,
|
|
1843
2072
|
args: [{
|
|
1844
|
-
declarations: [TaskListComponent, TaskDetailModalComponent
|
|
2073
|
+
declarations: [TaskListComponent, TaskDetailModalComponent],
|
|
1845
2074
|
imports: [
|
|
1846
2075
|
CommonModule,
|
|
1847
2076
|
TaskRoutingModule,
|
|
@@ -1875,11 +2104,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1875
2104
|
DropdownModule,
|
|
1876
2105
|
ButtonModule,
|
|
1877
2106
|
IconModule,
|
|
1878
|
-
TooltipModule,
|
|
2107
|
+
TooltipModule$1,
|
|
1879
2108
|
ConfirmationModalModule,
|
|
1880
2109
|
SearchFieldsModule,
|
|
2110
|
+
AssignUserToTaskComponent,
|
|
2111
|
+
TaskDetailContentComponent,
|
|
2112
|
+
TaskDetailIntermediateSaveComponent,
|
|
1881
2113
|
],
|
|
1882
|
-
exports: [TaskListComponent, TaskDetailModalComponent
|
|
2114
|
+
exports: [TaskListComponent, TaskDetailModalComponent]
|
|
1883
2115
|
}]
|
|
1884
2116
|
}] });
|
|
1885
2117
|
|
|
@@ -1906,5 +2138,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1906
2138
|
* Generated bundle index. Do not edit.
|
|
1907
2139
|
*/
|
|
1908
2140
|
|
|
1909
|
-
export { AssignUserToTaskComponent, CAN_ASSIGN_TASK_PERMISSION, CAN_VIEW_CASE_PERMISSION, CAN_VIEW_TASK_PERMISSION, TASK_DETAIL_PERMISSION_RESOURCE, TASK_LIST_NO_SEARCH_RESULTS_MESSAGE, TaskDetailModalComponent, TaskListColumnDefaultSort, TaskListComponent, TaskListSearchDropdownDataProvider, TaskListSearchFieldDataType, TaskListSearchFieldFieldType, TaskListSearchFieldMatchType, TaskModule, TaskService };
|
|
2141
|
+
export { AssignUserToTaskComponent, CAN_ASSIGN_TASK_PERMISSION, CAN_VIEW_CASE_PERMISSION, CAN_VIEW_TASK_PERMISSION, TASK_DETAIL_PERMISSION_RESOURCE, TASK_LIST_NO_SEARCH_RESULTS_MESSAGE, TaskDetailContentComponent, TaskDetailIntermediateSaveComponent, TaskDetailModalComponent, TaskIntermediateSaveService, TaskListColumnDefaultSort, TaskListColumnService, TaskListComponent, TaskListPaginationService, TaskListQueryParamService, TaskListSearchDropdownDataProvider, TaskListSearchFieldDataType, TaskListSearchFieldFieldType, TaskListSearchFieldMatchType, TaskListSearchService, TaskListService, TaskModule, TaskService };
|
|
1910
2142
|
//# sourceMappingURL=valtimo-task.mjs.map
|