@valtimo/task-management 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/index.mjs +20 -0
- package/esm2022/lib/components/task-management/index.mjs +17 -0
- package/esm2022/lib/components/task-management/task-management.component.mjs +73 -0
- package/esm2022/lib/components/task-management-column-modal/index.mjs +17 -0
- package/esm2022/lib/components/task-management-column-modal/task-management-column-modal.component.mjs +373 -0
- package/esm2022/lib/components/task-management-columns/index.mjs +17 -0
- package/esm2022/lib/components/task-management-columns/task-management-columns.component.mjs +218 -0
- package/esm2022/lib/components/task-management-detail/index.mjs +17 -0
- package/esm2022/lib/components/task-management-detail/task-management-detail.component.mjs +64 -0
- package/esm2022/lib/models/index.mjs +17 -0
- package/esm2022/lib/models/task-management.model.mjs +21 -0
- package/esm2022/lib/services/index.mjs +18 -0
- package/esm2022/lib/services/task-management-api.service.mjs +48 -0
- package/esm2022/lib/services/task-management.service.mjs +36 -0
- package/esm2022/lib/task-management-routing.module.mjs +50 -0
- package/esm2022/lib/task-management.module.mjs +31 -0
- package/esm2022/public_api.mjs +23 -0
- package/esm2022/valtimo-task-management.mjs +5 -0
- package/fesm2022/valtimo-task-management.mjs +993 -0
- package/fesm2022/valtimo-task-management.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/components/index.d.ts +5 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/task-management/index.d.ts +2 -0
- package/lib/components/task-management/index.d.ts.map +1 -0
- package/lib/components/task-management/task-management.component.d.ts +20 -0
- package/lib/components/task-management/task-management.component.d.ts.map +1 -0
- package/lib/components/task-management-column-modal/index.d.ts +2 -0
- package/lib/components/task-management-column-modal/index.d.ts.map +1 -0
- package/lib/components/task-management-column-modal/task-management-column-modal.component.d.ts +89 -0
- package/lib/components/task-management-column-modal/task-management-column-modal.component.d.ts.map +1 -0
- package/lib/components/task-management-columns/index.d.ts +2 -0
- package/lib/components/task-management-columns/index.d.ts.map +1 -0
- package/lib/components/task-management-columns/task-management-columns.component.d.ts +43 -0
- package/lib/components/task-management-columns/task-management-columns.component.d.ts.map +1 -0
- package/lib/components/task-management-detail/index.d.ts +2 -0
- package/lib/components/task-management-detail/index.d.ts.map +1 -0
- package/lib/components/task-management-detail/task-management-detail.component.d.ts +22 -0
- package/lib/components/task-management-detail/task-management-detail.component.d.ts.map +1 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/index.d.ts.map +1 -0
- package/lib/models/task-management.model.d.ts +5 -0
- package/lib/models/task-management.model.d.ts.map +1 -0
- package/lib/services/index.d.ts +3 -0
- package/lib/services/index.d.ts.map +1 -0
- package/lib/services/task-management-api.service.d.ts +17 -0
- package/lib/services/task-management-api.service.d.ts.map +1 -0
- package/lib/services/task-management.service.d.ts +11 -0
- package/lib/services/task-management.service.d.ts.map +1 -0
- package/lib/task-management-routing.module.d.ts +9 -0
- package/lib/task-management-routing.module.d.ts.map +1 -0
- package/lib/task-management.module.d.ts +9 -0
- package/lib/task-management.module.d.ts.map +1 -0
- package/package.json +27 -0
- package/public_api.d.ts +5 -0
- package/public_api.d.ts.map +1 -0
- package/valtimo-task-management.d.ts.map +1 -0
|
@@ -0,0 +1,993 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, Injectable, EventEmitter, Input, Output, ViewEncapsulation, NgModule } from '@angular/core';
|
|
3
|
+
import * as i6 from '@valtimo/components';
|
|
4
|
+
import { ViewType, CarbonListModule, CARBON_THEME, CARBON_CONSTANTS, TooltipIconModule, CarbonMultiInputModule, ValtimoCdsModalDirectiveModule, MoveRowDirection, ConfirmationModalModule } from '@valtimo/components';
|
|
5
|
+
import { BehaviorSubject, switchMap, map, tap, combineLatest, of, filter, Subject, take } from 'rxjs';
|
|
6
|
+
import moment from 'moment/moment';
|
|
7
|
+
import * as i3 from '@angular/common';
|
|
8
|
+
import { CommonModule } from '@angular/common';
|
|
9
|
+
import * as i1$2 from '@ngx-translate/core';
|
|
10
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
11
|
+
import * as i1 from '@valtimo/document';
|
|
12
|
+
import * as i1$1 from '@angular/router';
|
|
13
|
+
import { RouterModule } from '@angular/router';
|
|
14
|
+
import * as i5 from 'carbon-components-angular';
|
|
15
|
+
import { TabsModule, ModalModule, CheckboxModule, DropdownModule, InputModule, ButtonModule, IconModule } from 'carbon-components-angular';
|
|
16
|
+
import * as i2 from '@valtimo/config';
|
|
17
|
+
import { BaseApiService, ROLE_ADMIN } from '@valtimo/config';
|
|
18
|
+
import * as i1$3 from '@angular/common/http';
|
|
19
|
+
import * as i4 from '@angular/forms';
|
|
20
|
+
import { FormGroup, FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
21
|
+
import { TaskListColumnDefaultSort } from '@valtimo/task';
|
|
22
|
+
import { distinctUntilChanged } from 'rxjs/operators';
|
|
23
|
+
import { isEqual } from 'lodash';
|
|
24
|
+
import { AuthGuardService } from '@valtimo/security';
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
28
|
+
*
|
|
29
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
30
|
+
* you may not use this file except in compliance with the License.
|
|
31
|
+
* You may obtain a copy of the License at
|
|
32
|
+
*
|
|
33
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
34
|
+
*
|
|
35
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
36
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
37
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
38
|
+
* See the License for the specific language governing permissions and
|
|
39
|
+
* limitations under the License.
|
|
40
|
+
*/
|
|
41
|
+
class TaskManagementComponent {
|
|
42
|
+
constructor(documentService, router) {
|
|
43
|
+
this.documentService = documentService;
|
|
44
|
+
this.router = router;
|
|
45
|
+
this.pagination = {
|
|
46
|
+
collectionSize: 0,
|
|
47
|
+
page: 1,
|
|
48
|
+
size: 10,
|
|
49
|
+
};
|
|
50
|
+
this._refreshData$ = new BehaviorSubject(null);
|
|
51
|
+
this.dossiers$ = this._refreshData$.pipe(switchMap(() => this.documentService.queryDefinitionsForManagement({
|
|
52
|
+
page: this.pagination.page - 1,
|
|
53
|
+
size: this.pagination.size,
|
|
54
|
+
})), map((documentDefinitionPage) => {
|
|
55
|
+
this.pagination = {
|
|
56
|
+
...this.pagination,
|
|
57
|
+
collectionSize: documentDefinitionPage.totalElements,
|
|
58
|
+
};
|
|
59
|
+
return documentDefinitionPage.content.map((documentDefinition) => ({
|
|
60
|
+
...documentDefinition,
|
|
61
|
+
createdOn: moment(documentDefinition.createdOn).format('DD MMM YYYY HH:mm'),
|
|
62
|
+
}));
|
|
63
|
+
}));
|
|
64
|
+
this.dossierFields = [
|
|
65
|
+
{ key: 'schema.title', label: 'taskManagement.caseName', viewType: ViewType.TEXT },
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
paginationClicked(page) {
|
|
69
|
+
this.pagination = { ...this.pagination, page };
|
|
70
|
+
this._refreshData$.next(null);
|
|
71
|
+
}
|
|
72
|
+
paginationSet(size) {
|
|
73
|
+
this.pagination = { ...this.pagination, size };
|
|
74
|
+
this._refreshData$.next(null);
|
|
75
|
+
}
|
|
76
|
+
redirectToDetails(documentDefinition) {
|
|
77
|
+
this.router.navigate(['/task-management/dossier', documentDefinition.id.name]);
|
|
78
|
+
}
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementComponent, deps: [{ token: i1.DocumentService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementComponent, isStandalone: true, selector: "ng-component", 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<valtimo-carbon-list\n *ngIf=\"dossiers$ | async as dossiers; else loading\"\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n [hideToolbar]=\"true\"\n>\n <valtimo-no-results\n [description]=\"'dossierManagement.noResults.description' | translate\"\n [title]=\"'dossierManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #loading>\n <valtimo-carbon-list loading=\"true\"></valtimo-carbon-list>\n</ng-template>\n", styles: ["/*!\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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementComponent, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, CarbonListModule, TranslateModule], 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<valtimo-carbon-list\n *ngIf=\"dossiers$ | async as dossiers; else loading\"\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n [hideToolbar]=\"true\"\n>\n <valtimo-no-results\n [description]=\"'dossierManagement.noResults.description' | translate\"\n [title]=\"'dossierManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #loading>\n <valtimo-carbon-list loading=\"true\"></valtimo-carbon-list>\n</ng-template>\n", styles: ["/*!\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"] }]
|
|
85
|
+
}], ctorParameters: () => [{ type: i1.DocumentService }, { type: i1$1.Router }] });
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
89
|
+
*
|
|
90
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
91
|
+
* you may not use this file except in compliance with the License.
|
|
92
|
+
* You may obtain a copy of the License at
|
|
93
|
+
*
|
|
94
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
95
|
+
*
|
|
96
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
97
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
98
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
99
|
+
* See the License for the specific language governing permissions and
|
|
100
|
+
* limitations under the License.
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
/*
|
|
104
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
105
|
+
*
|
|
106
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
107
|
+
* you may not use this file except in compliance with the License.
|
|
108
|
+
* You may obtain a copy of the License at
|
|
109
|
+
*
|
|
110
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
111
|
+
*
|
|
112
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
113
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
114
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
115
|
+
* See the License for the specific language governing permissions and
|
|
116
|
+
* limitations under the License.
|
|
117
|
+
*/
|
|
118
|
+
var TaskManagementTab;
|
|
119
|
+
(function (TaskManagementTab) {
|
|
120
|
+
TaskManagementTab[TaskManagementTab["COLUMNS"] = 0] = "COLUMNS";
|
|
121
|
+
})(TaskManagementTab || (TaskManagementTab = {}));
|
|
122
|
+
|
|
123
|
+
/*
|
|
124
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
125
|
+
*
|
|
126
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
127
|
+
* you may not use this file except in compliance with the License.
|
|
128
|
+
* You may obtain a copy of the License at
|
|
129
|
+
*
|
|
130
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
131
|
+
*
|
|
132
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
133
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
134
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
135
|
+
* See the License for the specific language governing permissions and
|
|
136
|
+
* limitations under the License.
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
/*
|
|
140
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
141
|
+
*
|
|
142
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
143
|
+
* you may not use this file except in compliance with the License.
|
|
144
|
+
* You may obtain a copy of the License at
|
|
145
|
+
*
|
|
146
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
147
|
+
*
|
|
148
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
149
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
150
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
151
|
+
* See the License for the specific language governing permissions and
|
|
152
|
+
* limitations under the License.
|
|
153
|
+
*/
|
|
154
|
+
class TaskManagementService {
|
|
155
|
+
constructor() {
|
|
156
|
+
this._activeTab$ = new BehaviorSubject(TaskManagementTab.COLUMNS);
|
|
157
|
+
}
|
|
158
|
+
get activeTab$() {
|
|
159
|
+
return this._activeTab$.asObservable();
|
|
160
|
+
}
|
|
161
|
+
setActiveTab(tab) {
|
|
162
|
+
this._activeTab$.next(tab);
|
|
163
|
+
}
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
165
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementService }); }
|
|
166
|
+
}
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementService, decorators: [{
|
|
168
|
+
type: Injectable
|
|
169
|
+
}] });
|
|
170
|
+
|
|
171
|
+
/*
|
|
172
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
173
|
+
*
|
|
174
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
175
|
+
* you may not use this file except in compliance with the License.
|
|
176
|
+
* You may obtain a copy of the License at
|
|
177
|
+
*
|
|
178
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
179
|
+
*
|
|
180
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
181
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
182
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
183
|
+
* See the License for the specific language governing permissions and
|
|
184
|
+
* limitations under the License.
|
|
185
|
+
*/
|
|
186
|
+
class TaskManagementApiService extends BaseApiService {
|
|
187
|
+
constructor(httpClient, configService) {
|
|
188
|
+
super(httpClient, configService);
|
|
189
|
+
this.httpClient = httpClient;
|
|
190
|
+
this.configService = configService;
|
|
191
|
+
}
|
|
192
|
+
getTaskListColumns(caseDefinitionName) {
|
|
193
|
+
return this.httpClient.get(this.getApiUrl(`/management/v1/case/${caseDefinitionName}/task-list-column`));
|
|
194
|
+
}
|
|
195
|
+
updateTaskListColumn(caseDefinitionName, column) {
|
|
196
|
+
return this.httpClient.put(this.getApiUrl(`/management/v1/case/${caseDefinitionName}/task-list-column/${column.key}`), column);
|
|
197
|
+
}
|
|
198
|
+
deleteTaskListColumn(caseDefinitionName, columnKey) {
|
|
199
|
+
return this.httpClient.delete(this.getApiUrl(`/management/v1/case/${caseDefinitionName}/task-list-column/${columnKey}`));
|
|
200
|
+
}
|
|
201
|
+
swapTaskListColumns(caseDefinitionName, firstColumn, secondColumn) {
|
|
202
|
+
return this.httpClient.post(this.getApiUrl(`/management/v1/case/${caseDefinitionName}/task-list-column`), { first: firstColumn.key, second: secondColumn.key });
|
|
203
|
+
}
|
|
204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementApiService, deps: [{ token: i1$3.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
205
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementApiService, providedIn: 'root' }); }
|
|
206
|
+
}
|
|
207
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementApiService, decorators: [{
|
|
208
|
+
type: Injectable,
|
|
209
|
+
args: [{
|
|
210
|
+
providedIn: 'root',
|
|
211
|
+
}]
|
|
212
|
+
}], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: i2.ConfigService }] });
|
|
213
|
+
|
|
214
|
+
/*
|
|
215
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
216
|
+
*
|
|
217
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
218
|
+
* you may not use this file except in compliance with the License.
|
|
219
|
+
* You may obtain a copy of the License at
|
|
220
|
+
*
|
|
221
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
222
|
+
*
|
|
223
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
224
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
225
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
226
|
+
* See the License for the specific language governing permissions and
|
|
227
|
+
* limitations under the License.
|
|
228
|
+
*/
|
|
229
|
+
|
|
230
|
+
/*
|
|
231
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
232
|
+
*
|
|
233
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
234
|
+
* you may not use this file except in compliance with the License.
|
|
235
|
+
* You may obtain a copy of the License at
|
|
236
|
+
*
|
|
237
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
238
|
+
*
|
|
239
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
240
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
241
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
242
|
+
* See the License for the specific language governing permissions and
|
|
243
|
+
* limitations under the License.
|
|
244
|
+
*/
|
|
245
|
+
class TaskManagementColumnModalComponent {
|
|
246
|
+
set taskListColumns(value) {
|
|
247
|
+
if (value?.length > 0) {
|
|
248
|
+
this._taskListColumns$.next(value);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
set type(value) {
|
|
252
|
+
this.type$.next(value);
|
|
253
|
+
}
|
|
254
|
+
get type() {
|
|
255
|
+
return this.type$.getValue();
|
|
256
|
+
}
|
|
257
|
+
set show(showModal) {
|
|
258
|
+
this.show$.next(showModal);
|
|
259
|
+
if (showModal)
|
|
260
|
+
this.enable();
|
|
261
|
+
if (!showModal)
|
|
262
|
+
this.resetFormAfterTimeout();
|
|
263
|
+
}
|
|
264
|
+
set selectedTaskListColumn(column) {
|
|
265
|
+
if (column)
|
|
266
|
+
this.prefillForm(column);
|
|
267
|
+
}
|
|
268
|
+
get taskListColumns$() {
|
|
269
|
+
return this._taskListColumns$.pipe(distinctUntilChanged((previous, current) => isEqual(previous, current)));
|
|
270
|
+
}
|
|
271
|
+
get title() {
|
|
272
|
+
return this.formGroup.get('title');
|
|
273
|
+
}
|
|
274
|
+
get key() {
|
|
275
|
+
return this.formGroup.get('key');
|
|
276
|
+
}
|
|
277
|
+
get keyValue$() {
|
|
278
|
+
return this.key.valueChanges.pipe(distinctUntilChanged());
|
|
279
|
+
}
|
|
280
|
+
get path() {
|
|
281
|
+
return this.formGroup.get('path');
|
|
282
|
+
}
|
|
283
|
+
get dateFormat() {
|
|
284
|
+
return this.formGroup.get('dateFormat');
|
|
285
|
+
}
|
|
286
|
+
get displayType() {
|
|
287
|
+
return this.formGroup.get('displayType');
|
|
288
|
+
}
|
|
289
|
+
get sortable() {
|
|
290
|
+
return this.formGroup.get('sortable');
|
|
291
|
+
}
|
|
292
|
+
get defaultSort() {
|
|
293
|
+
return this.formGroup.get('defaultSort');
|
|
294
|
+
}
|
|
295
|
+
get _SORT_ASC_ITEM() {
|
|
296
|
+
return {
|
|
297
|
+
content: this.translateService.instant(`listColumn.sortableAsc`),
|
|
298
|
+
key: 'ASC',
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
get _SORT_DESC_ITEM() {
|
|
302
|
+
return {
|
|
303
|
+
content: this.translateService.instant(`listColumn.sortableDesc`),
|
|
304
|
+
key: 'DESC',
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
get enumValues$() {
|
|
308
|
+
return this._enumValues$.pipe(distinctUntilChanged((previous, current) => isEqual(previous, current)));
|
|
309
|
+
}
|
|
310
|
+
get enumValid$() {
|
|
311
|
+
return this.enumValues$.pipe(map(values => this.getValidEnumValues(values).length > 0));
|
|
312
|
+
}
|
|
313
|
+
get yesNoValues$() {
|
|
314
|
+
return this._yesNoValues$.pipe(distinctUntilChanged((previous, current) => isEqual(previous, current)));
|
|
315
|
+
}
|
|
316
|
+
constructor(translateService, taskManagementApiService) {
|
|
317
|
+
this.translateService = translateService;
|
|
318
|
+
this.taskManagementApiService = taskManagementApiService;
|
|
319
|
+
this.carbonTheme = CARBON_THEME.G10;
|
|
320
|
+
this.closeEvent = new EventEmitter();
|
|
321
|
+
this.type$ = new BehaviorSubject('add');
|
|
322
|
+
this.isAdd$ = this.type$.pipe(map(type => type === 'add'));
|
|
323
|
+
this.isEdit$ = this.type$.pipe(map(type => type === 'edit'), tap(isEdit => {
|
|
324
|
+
if (isEdit) {
|
|
325
|
+
this.key.disable();
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
this.key.enable();
|
|
329
|
+
}
|
|
330
|
+
}));
|
|
331
|
+
this.show$ = new BehaviorSubject(false);
|
|
332
|
+
this.disabled$ = new BehaviorSubject(false);
|
|
333
|
+
this._taskListColumns$ = new BehaviorSubject([]);
|
|
334
|
+
this._INVALID_KEY = 'INVALID_KEY';
|
|
335
|
+
this.DISPLAY_TYPES = [
|
|
336
|
+
ViewType.TEXT,
|
|
337
|
+
ViewType.DATE,
|
|
338
|
+
ViewType.BOOLEAN,
|
|
339
|
+
ViewType.ENUM,
|
|
340
|
+
ViewType.ARRAY_COUNT,
|
|
341
|
+
ViewType.UNDERSCORES_TO_SPACES,
|
|
342
|
+
];
|
|
343
|
+
this.getInvalidListItem = (translateKey) => ({
|
|
344
|
+
content: this.translateService.instant(translateKey),
|
|
345
|
+
key: this._INVALID_KEY,
|
|
346
|
+
selected: true,
|
|
347
|
+
});
|
|
348
|
+
this.uniqueKeyValidator = (keyFormControl) => {
|
|
349
|
+
const taskListColumns = this._taskListColumns$.getValue();
|
|
350
|
+
return !taskListColumns?.find(column => column?.key?.trim()?.toLowerCase() === keyFormControl?.value?.trim()?.toLowerCase())
|
|
351
|
+
? null
|
|
352
|
+
: { notUnique: true };
|
|
353
|
+
};
|
|
354
|
+
this.listItemValidator = (listItemControl) => listItemControl?.value?.key && listItemControl.value.key !== this._INVALID_KEY
|
|
355
|
+
? null
|
|
356
|
+
: { invalidItem: true };
|
|
357
|
+
this.formGroup = new FormGroup({
|
|
358
|
+
title: new FormControl(null),
|
|
359
|
+
key: new FormControl(null, [this.uniqueKeyValidator.bind(this), Validators.required]),
|
|
360
|
+
path: new FormControl(null, Validators.required),
|
|
361
|
+
dateFormat: new FormControl(null),
|
|
362
|
+
displayType: new FormControl(this.getInvalidListItem(`listColumn.selectDefaultSort`), [
|
|
363
|
+
Validators.required,
|
|
364
|
+
this.listItemValidator.bind(this),
|
|
365
|
+
]),
|
|
366
|
+
sortable: new FormControl(false),
|
|
367
|
+
defaultSort: new FormControl(this.getInvalidListItem(`listColumn.selectDefaultSort`), [
|
|
368
|
+
Validators.required,
|
|
369
|
+
]),
|
|
370
|
+
});
|
|
371
|
+
this.sortItems$ = combineLatest([
|
|
372
|
+
this.defaultSort?.valueChanges || of(null),
|
|
373
|
+
this.translateService.stream('key'),
|
|
374
|
+
]).pipe(map(([defaultSortItem]) => [
|
|
375
|
+
this.getInvalidListItem(`listColumn.selectDefaultSort`),
|
|
376
|
+
this._SORT_ASC_ITEM,
|
|
377
|
+
this._SORT_DESC_ITEM,
|
|
378
|
+
].map((item, index) => ({
|
|
379
|
+
...item,
|
|
380
|
+
selected: defaultSortItem?.key === item?.key,
|
|
381
|
+
}))));
|
|
382
|
+
this.viewTypeItems$ = combineLatest([
|
|
383
|
+
this.displayType?.valueChanges || of(null),
|
|
384
|
+
this.translateService.stream('key'),
|
|
385
|
+
]).pipe(map(([displayTypeItem]) => [
|
|
386
|
+
{
|
|
387
|
+
content: this.translateService.instant(`listColumnDisplayType.select`),
|
|
388
|
+
key: this._INVALID_KEY,
|
|
389
|
+
},
|
|
390
|
+
...this.DISPLAY_TYPES.map(type => this.getListItemFromViewType(type)),
|
|
391
|
+
].map((item, index) => ({
|
|
392
|
+
...item,
|
|
393
|
+
selected: displayTypeItem?.key === item?.key,
|
|
394
|
+
}))));
|
|
395
|
+
this.showDateFormat$ = this.formGroup.valueChanges.pipe(map(formValues => !!(formValues.displayType?.key === this.DISPLAY_TYPES[1])), tap(showDateFormat => (this._showDateFormat = showDateFormat)));
|
|
396
|
+
this.showEnum$ = this.formGroup.valueChanges.pipe(map(formValues => !!(formValues.displayType?.key === ViewType.ENUM)), tap(showEnum => {
|
|
397
|
+
this._showEnum = showEnum;
|
|
398
|
+
if ((this._enumValues$.getValue() || []).length === 0)
|
|
399
|
+
this.resetEnumValues();
|
|
400
|
+
}));
|
|
401
|
+
this.showYesNo$ = this.formGroup.valueChanges.pipe(map(formValues => !!(formValues.displayType?.key === ViewType.BOOLEAN)), tap(showYesNo => {
|
|
402
|
+
this._showYesNo = showYesNo;
|
|
403
|
+
if ((this._yesNoValues$.getValue() || []).length === 0)
|
|
404
|
+
this.resetYesNoValues();
|
|
405
|
+
}));
|
|
406
|
+
this.CARBON_THEME_WHITE = CARBON_THEME.WHITE;
|
|
407
|
+
this.disableDefaultSort$ = combineLatest([this.taskListColumns$, this.keyValue$]).pipe(map(([taskListColumns, keyValue]) => {
|
|
408
|
+
const defaultSortColumn = taskListColumns.find(column => column?.defaultSort === TaskListColumnDefaultSort.ASC ||
|
|
409
|
+
column?.defaultSort === TaskListColumnDefaultSort.DESC);
|
|
410
|
+
const defaultSortColumnExists = !!defaultSortColumn;
|
|
411
|
+
const enabled = !defaultSortColumnExists || defaultSortColumn.key === keyValue;
|
|
412
|
+
if (enabled) {
|
|
413
|
+
this.defaultSort?.enable();
|
|
414
|
+
}
|
|
415
|
+
else {
|
|
416
|
+
this.defaultSort?.disable();
|
|
417
|
+
}
|
|
418
|
+
return !enabled;
|
|
419
|
+
}));
|
|
420
|
+
this._DEFAULT_ENUM_VALUES = [{ key: '', value: '' }];
|
|
421
|
+
this._enumValues$ = new BehaviorSubject(this._DEFAULT_ENUM_VALUES);
|
|
422
|
+
this._yesNoValues$ = new BehaviorSubject(this._DEFAULT_ENUM_VALUES);
|
|
423
|
+
}
|
|
424
|
+
closeModal() {
|
|
425
|
+
this.closeEvent.emit('close');
|
|
426
|
+
}
|
|
427
|
+
save() {
|
|
428
|
+
this.disable();
|
|
429
|
+
this.taskManagementApiService
|
|
430
|
+
.updateTaskListColumn(this.documentDefinitionName, this.getTaskListColumnFromFormValue(this._showEnum, this._showDateFormat, this._showYesNo))
|
|
431
|
+
.subscribe({
|
|
432
|
+
next: () => {
|
|
433
|
+
this.closeModalAndRefresh();
|
|
434
|
+
this.enableAfterTimeout();
|
|
435
|
+
},
|
|
436
|
+
error: () => {
|
|
437
|
+
this.enable();
|
|
438
|
+
},
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
enumValueChange(value) {
|
|
442
|
+
this._enumValues$.next(value);
|
|
443
|
+
}
|
|
444
|
+
yesNoValueChange(value) {
|
|
445
|
+
this._yesNoValues$.next(value);
|
|
446
|
+
}
|
|
447
|
+
resetEnumValues() {
|
|
448
|
+
this._enumValues$.next(this._DEFAULT_ENUM_VALUES);
|
|
449
|
+
}
|
|
450
|
+
resetYesNoValues() {
|
|
451
|
+
this._yesNoValues$.next(this._DEFAULT_ENUM_VALUES);
|
|
452
|
+
}
|
|
453
|
+
resetFormAfterTimeout() {
|
|
454
|
+
setTimeout(() => {
|
|
455
|
+
this.resetForm();
|
|
456
|
+
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
457
|
+
}
|
|
458
|
+
resetForm() {
|
|
459
|
+
this.resetEnumValues();
|
|
460
|
+
this.resetYesNoValues();
|
|
461
|
+
this.formGroup.reset({
|
|
462
|
+
title: null,
|
|
463
|
+
key: null,
|
|
464
|
+
dateFormat: null,
|
|
465
|
+
displayType: this.getInvalidListItem('listColumnDisplayType.select'),
|
|
466
|
+
sortable: false,
|
|
467
|
+
defaultSort: this.getInvalidListItem(`listColumn.selectDefaultSort`),
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
disable() {
|
|
471
|
+
this.disabled$.next(true);
|
|
472
|
+
}
|
|
473
|
+
enableAfterTimeout() {
|
|
474
|
+
setTimeout(() => {
|
|
475
|
+
this.enable();
|
|
476
|
+
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
477
|
+
}
|
|
478
|
+
enable() {
|
|
479
|
+
this.disabled$.next(false);
|
|
480
|
+
}
|
|
481
|
+
closeModalAndRefresh() {
|
|
482
|
+
this.closeEvent.emit('refresh');
|
|
483
|
+
}
|
|
484
|
+
getTaskListColumnFromFormValue(includeEnum, includeDateFormat, includeYesNo) {
|
|
485
|
+
const validEnumValues = this.getValidEnumValues(this._enumValues$.getValue());
|
|
486
|
+
const mappedEnumValues = validEnumValues && validEnumValues.length > 0 && this.mapEnumValues(validEnumValues);
|
|
487
|
+
const validYesNoValues = this.getValidEnumValues(this._yesNoValues$.getValue());
|
|
488
|
+
const mappedYesNoValues = validYesNoValues && validYesNoValues.length > 0 && this.mapEnumValues(validYesNoValues);
|
|
489
|
+
const formValue = this.formGroup.getRawValue();
|
|
490
|
+
const taskListColumn = {
|
|
491
|
+
...(formValue.title && { title: formValue.title }),
|
|
492
|
+
key: formValue.key,
|
|
493
|
+
path: formValue.path,
|
|
494
|
+
displayType: {
|
|
495
|
+
type: formValue.displayType.key,
|
|
496
|
+
displayTypeParameters: {
|
|
497
|
+
...(includeDateFormat && formValue.dateFormat && { dateFormat: formValue.dateFormat }),
|
|
498
|
+
...(includeEnum && mappedEnumValues && { enum: mappedEnumValues }),
|
|
499
|
+
...(includeYesNo && mappedYesNoValues && { enum: mappedYesNoValues }),
|
|
500
|
+
},
|
|
501
|
+
},
|
|
502
|
+
sortable: formValue.sortable,
|
|
503
|
+
...(formValue.defaultSort.key !== this._INVALID_KEY && {
|
|
504
|
+
defaultSort: formValue.defaultSort.key,
|
|
505
|
+
}),
|
|
506
|
+
};
|
|
507
|
+
return taskListColumn;
|
|
508
|
+
}
|
|
509
|
+
mapEnumValues(enumValues) {
|
|
510
|
+
return enumValues.reduce((acc, curr) => ({ ...acc, [curr.key]: curr.value }), {});
|
|
511
|
+
}
|
|
512
|
+
getValidEnumValues(values) {
|
|
513
|
+
return (values || []).filter(value => value.value && value.key);
|
|
514
|
+
}
|
|
515
|
+
getListItemFromViewType(viewType) {
|
|
516
|
+
return {
|
|
517
|
+
content: this.translateService.instant(`listColumnDisplayType.${viewType}`),
|
|
518
|
+
key: viewType,
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
getMultiInputValuesFromTaskListColumnEnum(taskListColumnEnum) {
|
|
522
|
+
return Object.keys(taskListColumnEnum).reduce((acc, curr) => [...acc, { key: curr, value: taskListColumnEnum[curr] }], []);
|
|
523
|
+
}
|
|
524
|
+
prefillForm(column) {
|
|
525
|
+
if (column?.displayType?.type === ViewType.ENUM &&
|
|
526
|
+
column?.displayType?.displayTypeParameters?.enum) {
|
|
527
|
+
this._enumValues$.next(this.getMultiInputValuesFromTaskListColumnEnum(column.displayType.displayTypeParameters.enum));
|
|
528
|
+
}
|
|
529
|
+
if (column?.displayType?.type === ViewType.BOOLEAN &&
|
|
530
|
+
column?.displayType?.displayTypeParameters?.enum) {
|
|
531
|
+
this._yesNoValues$.next(this.getMultiInputValuesFromTaskListColumnEnum(column.displayType.displayTypeParameters.enum));
|
|
532
|
+
}
|
|
533
|
+
this.formGroup.patchValue({
|
|
534
|
+
key: column.key,
|
|
535
|
+
path: column.path,
|
|
536
|
+
sortable: column.sortable,
|
|
537
|
+
displayType: this.getListItemFromViewType(column.displayType.type),
|
|
538
|
+
...(column.title && { title: column.title }),
|
|
539
|
+
...(!column.defaultSort && {
|
|
540
|
+
defaultSort: this.getInvalidListItem(`listColumn.selectDefaultSort`),
|
|
541
|
+
}),
|
|
542
|
+
...(column.defaultSort === 'ASC' && { defaultSort: this._SORT_ASC_ITEM }),
|
|
543
|
+
...(column.defaultSort === 'DESC' && { defaultSort: this._SORT_DESC_ITEM }),
|
|
544
|
+
...(column.displayType?.type === ViewType.DATE && {
|
|
545
|
+
dateFormat: column.displayType.displayTypeParameters.dateFormat,
|
|
546
|
+
}),
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnModalComponent, deps: [{ token: i1$2.TranslateService }, { token: TaskManagementApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
550
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementColumnModalComponent, isStandalone: true, selector: "valtimo-task-management-column-modal", inputs: { carbonTheme: "carbonTheme", taskListColumns: "taskListColumns", type: "type", show: "show", documentDefinitionName: "documentDefinitionName", selectedTaskListColumn: "selectedTaskListColumn" }, outputs: { closeEvent: "closeEvent" }, 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 show: show$ | async,\n type: type$ | async,\n isAdd: isAdd$ | async,\n isEdit: isEdit$ | async,\n disabled: disabled$ | async,\n showDateFormat: showDateFormat$ | async,\n showEnum: showEnum$ | async,\n showYesNo: showYesNo$ | async,\n disableDefaultSort: disableDefaultSort$ | async,\n enumValues: enumValues$ | async,\n enumValid: enumValid$ | async,\n yesNoValues: yesNoValues$ | async,\n viewTypeItems: viewTypeItems$ | async,\n sortItems: sortItems$ | async\n } as obs\"\n>\n <cds-modal size=\"sm\" [open]=\"obs.show\" valtimoCdsModal>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n obs.type === 'add'\n ? ('listColumn.addButtonText' | translate)\n : ('listColumn.editColumnTitle' | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"form; context: {obs: obs}\"></ng-container>\n </section>\n\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {obs: obs}\"> </ng-container>\n </cds-modal>\n</ng-container>\n\n<ng-template #form let-obs=\"obs\">\n <form [formGroup]=\"formGroup\" class=\"list-column-form\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.titleTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.titleTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"title\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [invalid]=\"key?.touched && key?.invalid\"\n [disabled]=\"obs.disabled || obs.isEdit\"\n [invalidText]=\"'listColumn.uniqueKeyWarning' | translate\"\n >\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.key' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.keyTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"key\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.path' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.pathTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"path\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.displayType' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.displayTypeTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown\n *ngIf=\"obs.viewTypeItems\"\n formControlName=\"displayType\"\n [disabled]=\"obs.disabled\"\n >\n <cds-dropdown-list [items]=\"obs.viewTypeItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showDateFormat\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.dateFormat' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.dateFormatTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"dateFormat\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showEnum\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showEnum\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.enumValues\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showYesNo\" [ngClass]=\"'no-margin'\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitleOptional' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltipOptional' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showYesNo\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.yesNoValues\"\n type=\"keyValue\"\n [hideAddButton]=\"true\"\n [hideDeleteButton]=\"true\"\n [maxRows]=\"1\"\n [keyColumnTitle]=\"'viewTypeConverter.Yes' | translate\"\n [valueColumnTitle]=\"'viewTypeConverter.No' | translate\"\n (valueChange)=\"yesNoValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-checkbox formControlName=\"sortable\" [disabled]=\"obs.disabled\"\n >{{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled || obs.disableDefaultSort\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.defaultSortTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.defaultSortTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown formControlName=\"defaultSort\" [disabled]=\"obs.disabled\" *ngIf=\"obs.sortItems\">\n <cds-dropdown-list [items]=\"obs.sortItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #modalFooter let-obs=\"obs\">\n <cds-modal-footer>\n <ng-container>\n <button\n (click)=\"closeModal()\"\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'listColumn.close' | translate }}\n </button>\n\n <button\n (click)=\"save()\"\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"!obs.valid\"\n [disabled]=\"obs.disabled || formGroup?.invalid || (obs.showEnum && !obs.enumValid)\"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n", styles: [".cds--text-input__field-wrapper cds-label{width:100%}.cds--text-input__field-wrapper ::ng-deep .cds--label{width:100%}.cds--text-input__field-wrapper:not(:last-child){margin-bottom:16px}.label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:8px}.list-column-form{margin-bottom:16px}.no-margin{margin-bottom:0!important}\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: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i5.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i5.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i5.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i5.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i5.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i5.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "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: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i5.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i5.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TooltipIconModule }, { kind: "component", type: i6.TooltipIconComponent, selector: "v-tooltip-icon", inputs: ["tooltip", "disabled"] }, { kind: "ngmodule", type: CarbonMultiInputModule }, { kind: "component", type: i6.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ValtimoCdsModalDirectiveModule }, { kind: "directive", type: i6.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
551
|
+
}
|
|
552
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnModalComponent, decorators: [{
|
|
553
|
+
type: Component,
|
|
554
|
+
args: [{ selector: 'valtimo-task-management-column-modal', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
555
|
+
CommonModule,
|
|
556
|
+
CarbonListModule,
|
|
557
|
+
TranslateModule,
|
|
558
|
+
TabsModule,
|
|
559
|
+
FormsModule,
|
|
560
|
+
ModalModule,
|
|
561
|
+
CheckboxModule,
|
|
562
|
+
DropdownModule,
|
|
563
|
+
InputModule,
|
|
564
|
+
ReactiveFormsModule,
|
|
565
|
+
TooltipIconModule,
|
|
566
|
+
CarbonMultiInputModule,
|
|
567
|
+
ButtonModule,
|
|
568
|
+
ValtimoCdsModalDirectiveModule,
|
|
569
|
+
], 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 show: show$ | async,\n type: type$ | async,\n isAdd: isAdd$ | async,\n isEdit: isEdit$ | async,\n disabled: disabled$ | async,\n showDateFormat: showDateFormat$ | async,\n showEnum: showEnum$ | async,\n showYesNo: showYesNo$ | async,\n disableDefaultSort: disableDefaultSort$ | async,\n enumValues: enumValues$ | async,\n enumValid: enumValid$ | async,\n yesNoValues: yesNoValues$ | async,\n viewTypeItems: viewTypeItems$ | async,\n sortItems: sortItems$ | async\n } as obs\"\n>\n <cds-modal size=\"sm\" [open]=\"obs.show\" valtimoCdsModal>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n obs.type === 'add'\n ? ('listColumn.addButtonText' | translate)\n : ('listColumn.editColumnTitle' | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"form; context: {obs: obs}\"></ng-container>\n </section>\n\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {obs: obs}\"> </ng-container>\n </cds-modal>\n</ng-container>\n\n<ng-template #form let-obs=\"obs\">\n <form [formGroup]=\"formGroup\" class=\"list-column-form\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.titleTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.titleTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"title\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [invalid]=\"key?.touched && key?.invalid\"\n [disabled]=\"obs.disabled || obs.isEdit\"\n [invalidText]=\"'listColumn.uniqueKeyWarning' | translate\"\n >\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.key' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.keyTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"key\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.path' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.pathTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"path\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.displayType' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.displayTypeTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown\n *ngIf=\"obs.viewTypeItems\"\n formControlName=\"displayType\"\n [disabled]=\"obs.disabled\"\n >\n <cds-dropdown-list [items]=\"obs.viewTypeItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showDateFormat\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.dateFormat' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.dateFormatTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"dateFormat\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showEnum\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showEnum\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.enumValues\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showYesNo\" [ngClass]=\"'no-margin'\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitleOptional' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltipOptional' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showYesNo\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.yesNoValues\"\n type=\"keyValue\"\n [hideAddButton]=\"true\"\n [hideDeleteButton]=\"true\"\n [maxRows]=\"1\"\n [keyColumnTitle]=\"'viewTypeConverter.Yes' | translate\"\n [valueColumnTitle]=\"'viewTypeConverter.No' | translate\"\n (valueChange)=\"yesNoValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-checkbox formControlName=\"sortable\" [disabled]=\"obs.disabled\"\n >{{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled || obs.disableDefaultSort\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.defaultSortTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.defaultSortTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown formControlName=\"defaultSort\" [disabled]=\"obs.disabled\" *ngIf=\"obs.sortItems\">\n <cds-dropdown-list [items]=\"obs.sortItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #modalFooter let-obs=\"obs\">\n <cds-modal-footer>\n <ng-container>\n <button\n (click)=\"closeModal()\"\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'listColumn.close' | translate }}\n </button>\n\n <button\n (click)=\"save()\"\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"!obs.valid\"\n [disabled]=\"obs.disabled || formGroup?.invalid || (obs.showEnum && !obs.enumValid)\"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n", styles: [".cds--text-input__field-wrapper cds-label{width:100%}.cds--text-input__field-wrapper ::ng-deep .cds--label{width:100%}.cds--text-input__field-wrapper:not(:last-child){margin-bottom:16px}.label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:8px}.list-column-form{margin-bottom:16px}.no-margin{margin-bottom:0!important}\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"] }]
|
|
570
|
+
}], ctorParameters: () => [{ type: i1$2.TranslateService }, { type: TaskManagementApiService }], propDecorators: { carbonTheme: [{
|
|
571
|
+
type: Input
|
|
572
|
+
}], taskListColumns: [{
|
|
573
|
+
type: Input
|
|
574
|
+
}], type: [{
|
|
575
|
+
type: Input
|
|
576
|
+
}], show: [{
|
|
577
|
+
type: Input
|
|
578
|
+
}], documentDefinitionName: [{
|
|
579
|
+
type: Input
|
|
580
|
+
}], selectedTaskListColumn: [{
|
|
581
|
+
type: Input
|
|
582
|
+
}], closeEvent: [{
|
|
583
|
+
type: Output
|
|
584
|
+
}] } });
|
|
585
|
+
|
|
586
|
+
/*
|
|
587
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
588
|
+
*
|
|
589
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
590
|
+
* you may not use this file except in compliance with the License.
|
|
591
|
+
* You may obtain a copy of the License at
|
|
592
|
+
*
|
|
593
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
594
|
+
*
|
|
595
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
596
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
597
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
598
|
+
* See the License for the specific language governing permissions and
|
|
599
|
+
* limitations under the License.
|
|
600
|
+
*/
|
|
601
|
+
class TaskManagementColumnsComponent {
|
|
602
|
+
constructor(route, taskManagementApiService, translateService) {
|
|
603
|
+
this.route = route;
|
|
604
|
+
this.taskManagementApiService = taskManagementApiService;
|
|
605
|
+
this.translateService = translateService;
|
|
606
|
+
this.carbonTheme = CARBON_THEME.G10;
|
|
607
|
+
this._refreshColumns$ = new BehaviorSubject(null);
|
|
608
|
+
this.documentDefinitionName$ = this.route.params.pipe(map(params => params?.name), filter(name => !!name));
|
|
609
|
+
this.loadingColumns$ = new BehaviorSubject(true);
|
|
610
|
+
this.selectedTaskListColumn$ = new Subject();
|
|
611
|
+
this.cachedTaskListColumns$ = new BehaviorSubject([]);
|
|
612
|
+
this.taskListColumns$ = combineLatest([
|
|
613
|
+
this.documentDefinitionName$,
|
|
614
|
+
this._refreshColumns$,
|
|
615
|
+
this.translateService.stream('key'),
|
|
616
|
+
]).pipe(tap(([_, refresh]) => {
|
|
617
|
+
if (refresh !== 'noAnimation')
|
|
618
|
+
this.loadingColumns$.next(true);
|
|
619
|
+
}), switchMap(([documentDefinitionName]) => this.taskManagementApiService.getTaskListColumns(documentDefinitionName)), tap(columns => {
|
|
620
|
+
this.cachedTaskListColumns$.next(columns);
|
|
621
|
+
}), map(columns => columns.map(column => ({
|
|
622
|
+
...column,
|
|
623
|
+
title: column.title || '-',
|
|
624
|
+
sortable: column.sortable
|
|
625
|
+
? this.translateService.instant('listColumn.sortableYes')
|
|
626
|
+
: this.translateService.instant('listColumn.sortableNo'),
|
|
627
|
+
defaultSort: (column.defaultSort === 'ASC' &&
|
|
628
|
+
this.translateService.instant('listColumn.sortableAsc')) ||
|
|
629
|
+
(column.defaultSort === 'DESC' &&
|
|
630
|
+
this.translateService.instant('listColumn.sortableDesc')) ||
|
|
631
|
+
'-',
|
|
632
|
+
displayType: this.translateService.instant(`listColumnDisplayType.${column?.displayType?.type}`),
|
|
633
|
+
displayTypeParameters: this.getDisplayTypeParametersView(column.displayType.displayTypeParameters),
|
|
634
|
+
}))), tap(() => {
|
|
635
|
+
this.enable();
|
|
636
|
+
this.loadingColumns$.next(false);
|
|
637
|
+
}));
|
|
638
|
+
this.showDeleteModal$ = new Subject();
|
|
639
|
+
this.deleteRowKey$ = new BehaviorSubject('');
|
|
640
|
+
this.disabled$ = new BehaviorSubject(true);
|
|
641
|
+
this.fields = [
|
|
642
|
+
{
|
|
643
|
+
viewType: 'string',
|
|
644
|
+
sortable: false,
|
|
645
|
+
key: 'title',
|
|
646
|
+
label: 'listColumn.title',
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
viewType: 'string',
|
|
650
|
+
sortable: false,
|
|
651
|
+
key: 'key',
|
|
652
|
+
label: 'listColumn.key',
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
viewType: 'string',
|
|
656
|
+
sortable: false,
|
|
657
|
+
key: 'path',
|
|
658
|
+
label: 'listColumn.path',
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
viewType: 'string',
|
|
662
|
+
sortable: false,
|
|
663
|
+
key: 'displayType',
|
|
664
|
+
label: 'listColumn.displayType',
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
viewType: 'string',
|
|
668
|
+
sortable: false,
|
|
669
|
+
key: 'displayTypeParameters',
|
|
670
|
+
label: 'listColumn.displayTypeParameters',
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
viewType: 'string',
|
|
674
|
+
sortable: false,
|
|
675
|
+
key: 'sortable',
|
|
676
|
+
label: 'listColumn.sortable',
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
viewType: 'string',
|
|
680
|
+
sortable: false,
|
|
681
|
+
key: 'defaultSort',
|
|
682
|
+
label: 'listColumn.defaultSort',
|
|
683
|
+
},
|
|
684
|
+
];
|
|
685
|
+
this.actionItems = [
|
|
686
|
+
{
|
|
687
|
+
label: 'interface.delete',
|
|
688
|
+
callback: this.deleteRow.bind(this),
|
|
689
|
+
type: 'danger',
|
|
690
|
+
},
|
|
691
|
+
];
|
|
692
|
+
this.modalType$ = new Subject();
|
|
693
|
+
this.showModal$ = new Subject();
|
|
694
|
+
}
|
|
695
|
+
refreshColumns(noAnimation = false) {
|
|
696
|
+
this._refreshColumns$.next(noAnimation ? 'noAnimation' : null);
|
|
697
|
+
}
|
|
698
|
+
deleteRow(taskListColumn) {
|
|
699
|
+
this.showDeleteModal$.next(true);
|
|
700
|
+
this.deleteRowKey$.next(taskListColumn.key);
|
|
701
|
+
}
|
|
702
|
+
onMoveRowClick(event, documentDefinitionName) {
|
|
703
|
+
const { direction, index } = event;
|
|
704
|
+
this.disable();
|
|
705
|
+
this.cachedTaskListColumns$
|
|
706
|
+
.pipe(take(1), switchMap(taskListColumns => this.taskManagementApiService.swapTaskListColumns(documentDefinitionName, taskListColumns[index], taskListColumns[direction === MoveRowDirection.UP ? index - 1 : index + 1])))
|
|
707
|
+
.subscribe({
|
|
708
|
+
next: () => {
|
|
709
|
+
this.refreshColumns(true);
|
|
710
|
+
},
|
|
711
|
+
error: () => this.enable(),
|
|
712
|
+
});
|
|
713
|
+
}
|
|
714
|
+
columnRowClicked(row) {
|
|
715
|
+
this.cachedTaskListColumns$.pipe(take(1)).subscribe(cachedTaskListColumns => {
|
|
716
|
+
const selectedTaskListColumn = cachedTaskListColumns.find(column => column.key === row.key);
|
|
717
|
+
this.selectedTaskListColumn$.next(selectedTaskListColumn);
|
|
718
|
+
this.showModal('edit');
|
|
719
|
+
});
|
|
720
|
+
}
|
|
721
|
+
showModal(type) {
|
|
722
|
+
this.modalType$.next(type);
|
|
723
|
+
this.showModal$.next(true);
|
|
724
|
+
}
|
|
725
|
+
onModalCloseEvent(event) {
|
|
726
|
+
this.showModal$.next(false);
|
|
727
|
+
if (event === 'refresh') {
|
|
728
|
+
this.disable();
|
|
729
|
+
this.refreshColumns();
|
|
730
|
+
}
|
|
731
|
+
setTimeout(() => {
|
|
732
|
+
this.clearSelectedTaskListColumn();
|
|
733
|
+
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
734
|
+
}
|
|
735
|
+
deleteRowConfirmation(columnKey, documentDefinitionName) {
|
|
736
|
+
this.disable();
|
|
737
|
+
this.taskManagementApiService
|
|
738
|
+
.deleteTaskListColumn(documentDefinitionName, columnKey)
|
|
739
|
+
.subscribe({
|
|
740
|
+
next: () => {
|
|
741
|
+
this.refreshColumns(true);
|
|
742
|
+
},
|
|
743
|
+
error: () => this.enable(),
|
|
744
|
+
});
|
|
745
|
+
}
|
|
746
|
+
getDisplayTypeParametersView(displayTypeParameters) {
|
|
747
|
+
if (displayTypeParameters?.dateFormat) {
|
|
748
|
+
return displayTypeParameters.dateFormat;
|
|
749
|
+
}
|
|
750
|
+
else if (displayTypeParameters?.enum) {
|
|
751
|
+
return Object.keys(displayTypeParameters.enum).reduce((acc, curr) => {
|
|
752
|
+
const keyValuePairString = `${curr}: ${displayTypeParameters.enum[curr]}`;
|
|
753
|
+
if (!acc) {
|
|
754
|
+
return `${keyValuePairString}`;
|
|
755
|
+
}
|
|
756
|
+
return `${acc}, ${keyValuePairString}`;
|
|
757
|
+
}, '');
|
|
758
|
+
}
|
|
759
|
+
return '-';
|
|
760
|
+
}
|
|
761
|
+
disable() {
|
|
762
|
+
this.disabled$.next(true);
|
|
763
|
+
}
|
|
764
|
+
enable() {
|
|
765
|
+
this.disabled$.next(false);
|
|
766
|
+
}
|
|
767
|
+
clearSelectedTaskListColumn() {
|
|
768
|
+
this.selectedTaskListColumn$.next(null);
|
|
769
|
+
}
|
|
770
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: TaskManagementApiService }, { token: i1$2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
771
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementColumnsComponent, isStandalone: true, selector: "valtimo-task-management-columns", inputs: { carbonTheme: "carbonTheme" }, providers: [TaskManagementService], 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 taskListColumns: taskListColumns$ | async,\n cachedTaskListColumns: cachedTaskListColumns$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loadingColumns: loadingColumns$ | async,\n modalType: modalType$ | async,\n showModal: showModal$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n\n <valtimo-task-management-column-modal\n [taskListColumns]=\"obs.cachedTaskListColumns\"\n [type]=\"obs.modalType\"\n [show]=\"obs.showModal\"\n [documentDefinitionName]=\"obs.documentDefinitionName\"\n [selectedTaskListColumn]=\"selectedTaskListColumn$ | async\"\n (closeEvent)=\"onModalCloseEvent($event)\"\n ></valtimo-task-management-column-modal>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n (confirmEvent)=\"deleteRowConfirmation($event, obs.documentDefinitionName)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.taskListColumns\"\n [loading]=\"obs.loadingColumns\"\n [fields]=\"fields\"\n [header]=\"false\"\n [movingRowsEnabled]=\"true\"\n (rowClicked)=\"columnRowClicked($event)\"\n (moveRow)=\"onMoveRowClick($event, obs.documentDefinitionName)\"\n >\n <ng-container\n carbonToolbarContent\n *ngTemplateOutlet=\"buttons; context: {obs: obs}\"\n ></ng-container>\n\n <valtimo-no-results\n [title]=\"'listColumn.noConfigWarningTitle' | translate\"\n [description]=\"'listColumn.noConfigWarning' | translate\"\n illustration=\"valtimo-layout/img/emptystate-empty.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #buttons let-obs=\"obs\">\n <button cdsButton=\"primary\" (click)=\"showModal('add')\" [disabled]=\"obs.disabled\">\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: TaskManagementColumnModalComponent, selector: "valtimo-task-management-column-modal", inputs: ["carbonTheme", "taskListColumns", "type", "show", "documentDefinitionName", "selectedTaskListColumn"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
772
|
+
}
|
|
773
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnsComponent, decorators: [{
|
|
774
|
+
type: Component,
|
|
775
|
+
args: [{ selector: 'valtimo-task-management-columns', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
776
|
+
CommonModule,
|
|
777
|
+
CarbonListModule,
|
|
778
|
+
TranslateModule,
|
|
779
|
+
TabsModule,
|
|
780
|
+
TaskManagementColumnModalComponent,
|
|
781
|
+
ButtonModule,
|
|
782
|
+
IconModule,
|
|
783
|
+
ConfirmationModalModule,
|
|
784
|
+
], providers: [TaskManagementService], 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 taskListColumns: taskListColumns$ | async,\n cachedTaskListColumns: cachedTaskListColumns$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loadingColumns: loadingColumns$ | async,\n modalType: modalType$ | async,\n showModal: showModal$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n\n <valtimo-task-management-column-modal\n [taskListColumns]=\"obs.cachedTaskListColumns\"\n [type]=\"obs.modalType\"\n [show]=\"obs.showModal\"\n [documentDefinitionName]=\"obs.documentDefinitionName\"\n [selectedTaskListColumn]=\"selectedTaskListColumn$ | async\"\n (closeEvent)=\"onModalCloseEvent($event)\"\n ></valtimo-task-management-column-modal>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n (confirmEvent)=\"deleteRowConfirmation($event, obs.documentDefinitionName)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.taskListColumns\"\n [loading]=\"obs.loadingColumns\"\n [fields]=\"fields\"\n [header]=\"false\"\n [movingRowsEnabled]=\"true\"\n (rowClicked)=\"columnRowClicked($event)\"\n (moveRow)=\"onMoveRowClick($event, obs.documentDefinitionName)\"\n >\n <ng-container\n carbonToolbarContent\n *ngTemplateOutlet=\"buttons; context: {obs: obs}\"\n ></ng-container>\n\n <valtimo-no-results\n [title]=\"'listColumn.noConfigWarningTitle' | translate\"\n [description]=\"'listColumn.noConfigWarning' | translate\"\n illustration=\"valtimo-layout/img/emptystate-empty.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #buttons let-obs=\"obs\">\n <button cdsButton=\"primary\" (click)=\"showModal('add')\" [disabled]=\"obs.disabled\">\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n" }]
|
|
785
|
+
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: TaskManagementApiService }, { type: i1$2.TranslateService }], propDecorators: { carbonTheme: [{
|
|
786
|
+
type: Input
|
|
787
|
+
}] } });
|
|
788
|
+
|
|
789
|
+
/*
|
|
790
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
791
|
+
*
|
|
792
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
793
|
+
* you may not use this file except in compliance with the License.
|
|
794
|
+
* You may obtain a copy of the License at
|
|
795
|
+
*
|
|
796
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
797
|
+
*
|
|
798
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
799
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
800
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
801
|
+
* See the License for the specific language governing permissions and
|
|
802
|
+
* limitations under the License.
|
|
803
|
+
*/
|
|
804
|
+
|
|
805
|
+
/*
|
|
806
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
807
|
+
*
|
|
808
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
809
|
+
* you may not use this file except in compliance with the License.
|
|
810
|
+
* You may obtain a copy of the License at
|
|
811
|
+
*
|
|
812
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
813
|
+
*
|
|
814
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
815
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
816
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
817
|
+
* See the License for the specific language governing permissions and
|
|
818
|
+
* limitations under the License.
|
|
819
|
+
*/
|
|
820
|
+
class TaskManagementDetailComponent {
|
|
821
|
+
constructor(route, documentService, pageTitleService, taskManagementService) {
|
|
822
|
+
this.route = route;
|
|
823
|
+
this.documentService = documentService;
|
|
824
|
+
this.pageTitleService = pageTitleService;
|
|
825
|
+
this.taskManagementService = taskManagementService;
|
|
826
|
+
this.carbonTheme = CARBON_THEME.G10;
|
|
827
|
+
this.setDocumentDefinitionName$ = this.route.params.pipe(map(params => params.name || ''), filter(docDefName => !!docDefName), switchMap(documentDefinitionName => this.documentService.getDocumentDefinition(documentDefinitionName)), tap(documentDefinition => {
|
|
828
|
+
this.pageTitleService.setCustomPageTitle(documentDefinition?.schema?.title || '-');
|
|
829
|
+
}));
|
|
830
|
+
this.activeTab$ = this.taskManagementService.activeTab$;
|
|
831
|
+
this.TAB_ENUM = TaskManagementTab;
|
|
832
|
+
}
|
|
833
|
+
setActiveTab(tab) {
|
|
834
|
+
this.taskManagementService.setActiveTab(tab);
|
|
835
|
+
}
|
|
836
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementDetailComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1.DocumentService }, { token: i6.PageTitleService }, { token: TaskManagementService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
837
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementDetailComponent, isStandalone: true, selector: "ng-component", inputs: { carbonTheme: "carbonTheme" }, providers: [TaskManagementService], 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 documentDefinitionName: setDocumentDefinitionName$ | async,\n activeTab: activeTab$ | async\n } as obs\"\n class=\"task-management-detail\"\n>\n <ng-container *ngIf=\"{columns: obs.activeTab === TAB_ENUM.COLUMNS} as activeTab\">\n <cds-tabs class=\"dossier-management-tabs\" type=\"contained\">\n <cds-tab\n [active]=\"activeTab.columns\"\n [heading]=\"'taskManagement.columns' | translate\"\n (selected)=\"setActiveTab(TAB_ENUM.COLUMNS)\"\n ></cds-tab>\n </cds-tabs>\n\n <valtimo-task-management-columns *ngIf=\"activeTab.columns\"> </valtimo-task-management-columns>\n </ng-container>\n</div>\n", styles: [".task-management-detail .cds--tab-content{display:none}\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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i5.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i5.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: TaskManagementColumnsComponent, selector: "valtimo-task-management-columns", inputs: ["carbonTheme"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
838
|
+
}
|
|
839
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementDetailComponent, decorators: [{
|
|
840
|
+
type: Component,
|
|
841
|
+
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
842
|
+
CommonModule,
|
|
843
|
+
CarbonListModule,
|
|
844
|
+
TranslateModule,
|
|
845
|
+
TabsModule,
|
|
846
|
+
TaskManagementColumnsComponent,
|
|
847
|
+
], providers: [TaskManagementService], 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<div\n *ngIf=\"{\n documentDefinitionName: setDocumentDefinitionName$ | async,\n activeTab: activeTab$ | async\n } as obs\"\n class=\"task-management-detail\"\n>\n <ng-container *ngIf=\"{columns: obs.activeTab === TAB_ENUM.COLUMNS} as activeTab\">\n <cds-tabs class=\"dossier-management-tabs\" type=\"contained\">\n <cds-tab\n [active]=\"activeTab.columns\"\n [heading]=\"'taskManagement.columns' | translate\"\n (selected)=\"setActiveTab(TAB_ENUM.COLUMNS)\"\n ></cds-tab>\n </cds-tabs>\n\n <valtimo-task-management-columns *ngIf=\"activeTab.columns\"> </valtimo-task-management-columns>\n </ng-container>\n</div>\n", styles: [".task-management-detail .cds--tab-content{display:none}\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"] }]
|
|
848
|
+
}], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1.DocumentService }, { type: i6.PageTitleService }, { type: TaskManagementService }], propDecorators: { carbonTheme: [{
|
|
849
|
+
type: Input
|
|
850
|
+
}] } });
|
|
851
|
+
|
|
852
|
+
/*
|
|
853
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
854
|
+
*
|
|
855
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
856
|
+
* you may not use this file except in compliance with the License.
|
|
857
|
+
* You may obtain a copy of the License at
|
|
858
|
+
*
|
|
859
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
860
|
+
*
|
|
861
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
862
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
863
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
864
|
+
* See the License for the specific language governing permissions and
|
|
865
|
+
* limitations under the License.
|
|
866
|
+
*/
|
|
867
|
+
|
|
868
|
+
/*
|
|
869
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
870
|
+
*
|
|
871
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
872
|
+
* you may not use this file except in compliance with the License.
|
|
873
|
+
* You may obtain a copy of the License at
|
|
874
|
+
*
|
|
875
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
876
|
+
*
|
|
877
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
878
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
879
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
880
|
+
* See the License for the specific language governing permissions and
|
|
881
|
+
* limitations under the License.
|
|
882
|
+
*/
|
|
883
|
+
|
|
884
|
+
/*
|
|
885
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
886
|
+
*
|
|
887
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
888
|
+
* you may not use this file except in compliance with the License.
|
|
889
|
+
* You may obtain a copy of the License at
|
|
890
|
+
*
|
|
891
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
892
|
+
*
|
|
893
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
894
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
895
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
896
|
+
* See the License for the specific language governing permissions and
|
|
897
|
+
* limitations under the License.
|
|
898
|
+
*/
|
|
899
|
+
|
|
900
|
+
/*
|
|
901
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
902
|
+
*
|
|
903
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
904
|
+
* you may not use this file except in compliance with the License.
|
|
905
|
+
* You may obtain a copy of the License at
|
|
906
|
+
*
|
|
907
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
908
|
+
*
|
|
909
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
910
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
911
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
912
|
+
* See the License for the specific language governing permissions and
|
|
913
|
+
* limitations under the License.
|
|
914
|
+
*/
|
|
915
|
+
const routes = [
|
|
916
|
+
{
|
|
917
|
+
path: 'task-management',
|
|
918
|
+
component: TaskManagementComponent,
|
|
919
|
+
canActivate: [AuthGuardService],
|
|
920
|
+
data: { title: 'Tasks', roles: [ROLE_ADMIN] },
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
path: 'task-management/dossier/:name',
|
|
924
|
+
component: TaskManagementDetailComponent,
|
|
925
|
+
canActivate: [AuthGuardService],
|
|
926
|
+
data: { title: 'Task details', roles: [ROLE_ADMIN], customPageTitle: true },
|
|
927
|
+
},
|
|
928
|
+
];
|
|
929
|
+
class TaskManagementRoutingModule {
|
|
930
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
931
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementRoutingModule, imports: [CommonModule, i1$1.RouterModule], exports: [RouterModule] }); }
|
|
932
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
933
|
+
}
|
|
934
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementRoutingModule, decorators: [{
|
|
935
|
+
type: NgModule,
|
|
936
|
+
args: [{
|
|
937
|
+
imports: [CommonModule, RouterModule.forChild(routes)],
|
|
938
|
+
exports: [RouterModule],
|
|
939
|
+
}]
|
|
940
|
+
}] });
|
|
941
|
+
|
|
942
|
+
/*
|
|
943
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
944
|
+
*
|
|
945
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
946
|
+
* you may not use this file except in compliance with the License.
|
|
947
|
+
* You may obtain a copy of the License at
|
|
948
|
+
*
|
|
949
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
950
|
+
*
|
|
951
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
952
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
953
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
954
|
+
* See the License for the specific language governing permissions and
|
|
955
|
+
* limitations under the License.
|
|
956
|
+
*/
|
|
957
|
+
class TaskManagementModule {
|
|
958
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
959
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementModule, imports: [TaskManagementRoutingModule, TaskManagementComponent] }); }
|
|
960
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementModule, imports: [TaskManagementRoutingModule, TaskManagementComponent] }); }
|
|
961
|
+
}
|
|
962
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementModule, decorators: [{
|
|
963
|
+
type: NgModule,
|
|
964
|
+
args: [{
|
|
965
|
+
imports: [TaskManagementRoutingModule, TaskManagementComponent],
|
|
966
|
+
}]
|
|
967
|
+
}] });
|
|
968
|
+
|
|
969
|
+
/*
|
|
970
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
971
|
+
*
|
|
972
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
973
|
+
* you may not use this file except in compliance with the License.
|
|
974
|
+
* You may obtain a copy of the License at
|
|
975
|
+
*
|
|
976
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
977
|
+
*
|
|
978
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
979
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
980
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
981
|
+
* See the License for the specific language governing permissions and
|
|
982
|
+
* limitations under the License.
|
|
983
|
+
*/
|
|
984
|
+
/*
|
|
985
|
+
* Public API Surface of task
|
|
986
|
+
*/
|
|
987
|
+
|
|
988
|
+
/**
|
|
989
|
+
* Generated bundle index. Do not edit.
|
|
990
|
+
*/
|
|
991
|
+
|
|
992
|
+
export { TaskManagementApiService, TaskManagementColumnModalComponent, TaskManagementColumnsComponent, TaskManagementComponent, TaskManagementDetailComponent, TaskManagementModule, TaskManagementService, TaskManagementTab };
|
|
993
|
+
//# sourceMappingURL=valtimo-task-management.mjs.map
|