@valtimo/task 11.3.2 → 12.1.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.
Files changed (79) hide show
  1. package/esm2022/lib/components/assign-user-to-task/assign-user-to-task.component.mjs +122 -0
  2. package/esm2022/lib/components/task-detail-modal/task-detail-modal.component.mjs +322 -0
  3. package/esm2022/lib/components/task-list/task-list.component.mjs +360 -0
  4. package/esm2022/lib/constants/index.mjs +17 -0
  5. package/esm2022/lib/constants/task-list.constants.mjs +22 -0
  6. package/esm2022/lib/models/index.mjs +4 -2
  7. package/esm2022/lib/models/task-definition.model.mjs +2 -2
  8. package/esm2022/lib/models/task-intermediate-save.model.mjs +17 -0
  9. package/esm2022/lib/models/task-list-search-field.model.mjs +43 -0
  10. package/esm2022/lib/models/task-list.model.mjs +8 -14
  11. package/esm2022/lib/models/task.model.mjs +2 -2
  12. package/esm2022/lib/services/index.mjs +22 -0
  13. package/esm2022/lib/services/task-intermediate-save.service.mjs +56 -0
  14. package/esm2022/lib/services/task-list-column.service.mjs +193 -0
  15. package/esm2022/lib/services/task-list-pagination.service.mjs +74 -0
  16. package/esm2022/lib/services/task-list-query-param.service.mjs +53 -0
  17. package/esm2022/lib/services/task-list-search.service.mjs +99 -0
  18. package/esm2022/lib/services/task-list-sort.service.mjs +116 -0
  19. package/esm2022/lib/services/task-list.service.mjs +60 -0
  20. package/esm2022/lib/services/task.service.mjs +100 -0
  21. package/esm2022/lib/task-permissions.mjs +2 -2
  22. package/esm2022/lib/task-routing.module.mjs +7 -7
  23. package/esm2022/lib/task.module.mjs +38 -17
  24. package/esm2022/public_api.mjs +7 -6
  25. package/fesm2022/valtimo-task.mjs +1290 -335
  26. package/fesm2022/valtimo-task.mjs.map +1 -1
  27. package/lib/{assign-user-to-task → components/assign-user-to-task}/assign-user-to-task.component.d.ts +7 -7
  28. package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts.map +1 -0
  29. package/lib/{task-detail-modal → components/task-detail-modal}/task-detail-modal.component.d.ts +34 -12
  30. package/lib/components/task-detail-modal/task-detail-modal.component.d.ts.map +1 -0
  31. package/lib/components/task-list/task-list.component.d.ts +82 -0
  32. package/lib/components/task-list/task-list.component.d.ts.map +1 -0
  33. package/lib/constants/index.d.ts +2 -0
  34. package/lib/constants/index.d.ts.map +1 -0
  35. package/lib/constants/task-list.constants.d.ts +4 -0
  36. package/lib/constants/task-list.constants.d.ts.map +1 -0
  37. package/lib/models/index.d.ts +2 -0
  38. package/lib/models/index.d.ts.map +1 -1
  39. package/lib/models/task-intermediate-save.model.d.ts +13 -0
  40. package/lib/models/task-intermediate-save.model.d.ts.map +1 -0
  41. package/lib/models/task-list-search-field.model.d.ts +40 -0
  42. package/lib/models/task-list-search-field.model.d.ts.map +1 -0
  43. package/lib/models/task-list.model.d.ts +56 -8
  44. package/lib/models/task-list.model.d.ts.map +1 -1
  45. package/lib/models/task.model.d.ts +25 -2
  46. package/lib/models/task.model.d.ts.map +1 -1
  47. package/lib/services/index.d.ts +7 -0
  48. package/lib/services/index.d.ts.map +1 -0
  49. package/lib/services/task-intermediate-save.service.d.ts +16 -0
  50. package/lib/services/task-intermediate-save.service.d.ts.map +1 -0
  51. package/lib/services/task-list-column.service.d.ts +27 -0
  52. package/lib/services/task-list-column.service.d.ts.map +1 -0
  53. package/lib/services/task-list-pagination.service.d.ts +20 -0
  54. package/lib/services/task-list-pagination.service.d.ts.map +1 -0
  55. package/lib/services/task-list-query-param.service.d.ts +16 -0
  56. package/lib/services/task-list-query-param.service.d.ts.map +1 -0
  57. package/lib/services/task-list-search.service.d.ts +25 -0
  58. package/lib/services/task-list-search.service.d.ts.map +1 -0
  59. package/lib/services/task-list-sort.service.d.ts +29 -0
  60. package/lib/services/task-list-sort.service.d.ts.map +1 -0
  61. package/lib/services/task-list.service.d.ts +23 -0
  62. package/lib/services/task-list.service.d.ts.map +1 -0
  63. package/lib/services/task.service.d.ts +27 -0
  64. package/lib/services/task.service.d.ts.map +1 -0
  65. package/lib/task.module.d.ts +5 -5
  66. package/lib/task.module.d.ts.map +1 -1
  67. package/package.json +7 -6
  68. package/public_api.d.ts +5 -4
  69. package/public_api.d.ts.map +1 -1
  70. package/esm2022/lib/assign-user-to-task/assign-user-to-task.component.mjs +0 -122
  71. package/esm2022/lib/task-detail-modal/task-detail-modal.component.mjs +0 -219
  72. package/esm2022/lib/task-list/task-list.component.mjs +0 -259
  73. package/esm2022/lib/task.service.mjs +0 -72
  74. package/lib/assign-user-to-task/assign-user-to-task.component.d.ts.map +0 -1
  75. package/lib/task-detail-modal/task-detail-modal.component.d.ts.map +0 -1
  76. package/lib/task-list/task-list.component.d.ts +0 -54
  77. package/lib/task-list/task-list.component.d.ts.map +0 -1
  78. package/lib/task.service.d.ts +0 -24
  79. package/lib/task.service.d.ts.map +0 -1
@@ -1,259 +0,0 @@
1
- /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
17
- import moment from 'moment';
18
- import { TaskList } from '../models';
19
- import { BehaviorSubject, combineLatest, defaultIfEmpty, forkJoin, of, switchMap, } from 'rxjs';
20
- import { take } from 'rxjs/operators';
21
- import { CAN_VIEW_TASK_PERMISSION, CAN_VIEW_CASE_PERMISSION, TASK_DETAIL_PERMISSION_RESOURCE, } from '../task-permissions';
22
- import * as i0 from "@angular/core";
23
- import * as i1 from "@valtimo/config";
24
- import * as i2 from "@valtimo/document";
25
- import * as i3 from "ngx-logger";
26
- import * as i4 from "@valtimo/access-control";
27
- import * as i5 from "@angular/router";
28
- import * as i6 from "../task.service";
29
- import * as i7 from "@ngx-translate/core";
30
- import * as i8 from "@angular/common";
31
- import * as i9 from "@valtimo/components";
32
- import * as i10 from "@ng-bootstrap/ng-bootstrap";
33
- import * as i11 from "carbon-components-angular";
34
- import * as i12 from "../task-detail-modal/task-detail-modal.component";
35
- moment.locale(localStorage.getItem('langKey') || '');
36
- export class TaskListComponent {
37
- constructor(configService, documentService, logger, permissionService, router, taskService, translateService) {
38
- this.configService = configService;
39
- this.documentService = documentService;
40
- this.logger = logger;
41
- this.permissionService = permissionService;
42
- this.router = router;
43
- this.taskService = taskService;
44
- this.translateService = translateService;
45
- this.tasks = {
46
- mine: new TaskList(),
47
- open: new TaskList(),
48
- all: new TaskList(),
49
- };
50
- this.visibleTabs = null;
51
- this.currentTaskType = 'mine';
52
- this.listTitle = null;
53
- this.listDescription = null;
54
- this.sortState = null;
55
- this.loadingTasks$ = new BehaviorSubject(true);
56
- this.activeTab$ = new BehaviorSubject('');
57
- this.visibleTabs = this.configService.config?.visibleTaskListTabs || null;
58
- if (this.visibleTabs) {
59
- this.currentTaskType = this.visibleTabs[0];
60
- }
61
- this.setDefaultSorting();
62
- }
63
- ngOnDestroy() {
64
- this.closeTranslationSubscription();
65
- }
66
- paginationClicked(page, type) {
67
- this.tasks[type].page = page - 1;
68
- this.tasks[type].pagination.page = page;
69
- this.getTasks(type);
70
- }
71
- paginationSet(size) {
72
- this.tasks.mine.pagination.size =
73
- this.tasks.all.pagination.size =
74
- this.tasks.open.pagination.size =
75
- size;
76
- this.getTasks(this.currentTaskType);
77
- }
78
- tabChange(tab) {
79
- this.clearPagination(this.currentTaskType);
80
- this.getTasks(tab);
81
- }
82
- showTask(task) {
83
- this.router.navigate(['tasks', task.id]);
84
- }
85
- getTasks(type) {
86
- this.loadingTasks$.next(true);
87
- this.activeTab$.next(type);
88
- let params;
89
- this.closeTranslationSubscription();
90
- this._translationSubscription = combineLatest([
91
- this.translateService.stream(`task-list.${type}.title`),
92
- this.translateService.stream(`task-list.${type}.description`),
93
- ]).subscribe(([title, description]) => {
94
- this.listTitle = title;
95
- this.listDescription = description;
96
- });
97
- switch (type) {
98
- case 'mine':
99
- params = {
100
- page: this.tasks.mine.page,
101
- size: this.tasks.mine.pagination.size,
102
- filter: 'mine',
103
- };
104
- this.currentTaskType = 'mine';
105
- break;
106
- case 'open':
107
- params = {
108
- page: this.tasks.open.page,
109
- size: this.tasks.open.pagination.size,
110
- filter: 'open',
111
- };
112
- this.currentTaskType = 'open';
113
- break;
114
- case 'all':
115
- params = { page: this.tasks.all.page, size: this.tasks.open.pagination.size, filter: 'all' };
116
- this.currentTaskType = 'all';
117
- break;
118
- default:
119
- this.logger.fatal('Unreachable case');
120
- }
121
- if (this.sortState) {
122
- params.sort = this.getSortString(this.sortState);
123
- }
124
- this.taskService
125
- .queryTasks(params)
126
- .pipe(switchMap(tasksResult => combineLatest([
127
- of(tasksResult),
128
- forkJoin(tasksResult.body.map(task => this.permissionService
129
- .requestPermission(CAN_VIEW_TASK_PERMISSION, {
130
- resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
131
- identifier: task.id,
132
- })
133
- .pipe(take(1)))).pipe(defaultIfEmpty(null)),
134
- forkJoin(tasksResult.body.map(task => this.permissionService
135
- .requestPermission(CAN_VIEW_CASE_PERMISSION, {
136
- resource: TASK_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,
137
- identifier: task.businessKey,
138
- })
139
- .pipe(take(1)))).pipe(defaultIfEmpty(null)),
140
- ])))
141
- .subscribe(([tasksResult, taskPermissions, taskCasePermissions]) => {
142
- this.tasks[type].pagination = {
143
- ...this.tasks[type].pagination,
144
- collectionSize: tasksResult.headers.get('x-total-count'),
145
- };
146
- this.tasks[type].tasks = tasksResult.body;
147
- this.tasks[type].tasks.map((task, taskIndex) => {
148
- task.created = moment(task.created).format('DD MMM YYYY HH:mm');
149
- if (task.due) {
150
- task.due = moment(task.due).format('DD MMM YYYY HH:mm');
151
- }
152
- task.locked = !taskPermissions[taskIndex];
153
- task.caseLocked = !taskCasePermissions[taskIndex];
154
- });
155
- if (this.taskService.getConfigCustomTaskList()) {
156
- this.customTaskListFields(type);
157
- }
158
- else {
159
- this.defaultTaskListFields(type);
160
- }
161
- this.loadingTasks$.next(false);
162
- });
163
- }
164
- openRelatedCase(event, index) {
165
- event.stopPropagation();
166
- const tasks = this.tasks[this.currentTaskType].tasks;
167
- const currentTask = tasks && tasks[index];
168
- if (currentTask && !currentTask.caseLocked) {
169
- this.documentService
170
- .getDocument(currentTask.businessKey)
171
- .pipe(take(1))
172
- .subscribe(document => {
173
- this.router.navigate([
174
- `/dossiers/${document.definitionId?.name}/document/${currentTask.businessKey}`,
175
- ]);
176
- });
177
- }
178
- }
179
- defaultTaskListFields(type) {
180
- this.closeTranslationSubscription();
181
- this._translationSubscription = combineLatest([
182
- this.translateService.stream(`task-list.fieldLabels.created`),
183
- this.translateService.stream(`task-list.fieldLabels.name`),
184
- this.translateService.stream(`task-list.fieldLabels.valtimoAssignee.fullName`),
185
- this.translateService.stream(`task-list.fieldLabels.due`),
186
- this.translateService.stream(`task-list.fieldLabels.context`),
187
- ]).subscribe(([created, name, assignee, due, context]) => {
188
- this.tasks[type].fields = [
189
- {
190
- key: 'created',
191
- label: created,
192
- },
193
- {
194
- key: 'name',
195
- label: name,
196
- },
197
- {
198
- key: 'valtimoAssignee.fullName',
199
- label: assignee,
200
- },
201
- {
202
- key: 'due',
203
- label: due,
204
- },
205
- {
206
- key: 'context',
207
- label: context,
208
- },
209
- ];
210
- });
211
- }
212
- customTaskListFields(type) {
213
- const customTaskListFields = this.taskService.getConfigCustomTaskList().fields;
214
- this.closeTranslationSubscription();
215
- this._translationSubscription = combineLatest(customTaskListFields.map(column => this.translateService.stream(`task-list.fieldLabels.${column.translationKey}`))).subscribe(labels => {
216
- this.tasks[type].fields = customTaskListFields.map((column, index) => ({
217
- key: column.propertyName,
218
- label: labels[index],
219
- sortable: column.sortable,
220
- ...(column.viewType && { viewType: column.viewType }),
221
- ...(column.enum && { enum: column.enum }),
222
- }));
223
- });
224
- }
225
- rowOpenTaskClick(task) {
226
- if (!task.endTime && !task.locked) {
227
- this.taskDetail.openTaskDetails(task);
228
- }
229
- else {
230
- return false;
231
- }
232
- }
233
- setDefaultSorting() {
234
- this.sortState = this.taskService.getConfigCustomTaskList()?.defaultSortedColumn || null;
235
- }
236
- sortChanged(sortState) {
237
- this.sortState = sortState;
238
- this.getTasks(this.currentTaskType);
239
- }
240
- getSortString(sort) {
241
- return `${sort.state.name},${sort.state.direction}`;
242
- }
243
- clearPagination(type) {
244
- this.tasks[type].page = 0;
245
- }
246
- closeTranslationSubscription() {
247
- this._translationSubscription?.unsubscribe();
248
- }
249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskListComponent, deps: [{ token: i1.ConfigService }, { token: i2.DocumentService }, { token: i3.NGXLogger }, { token: i4.PermissionService }, { token: i5.Router }, { token: i6.TaskService }, { token: i7.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
250
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TaskListComponent, selector: "valtimo-task-list", viewQueries: [{ propertyName: "taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"main-content\"\n *ngIf=\"{loadingTasks: loadingTasks$ | async, activeTab: activeTab$ | async} as obs\"\n>\n <div class=\"container-fluid\">\n <ng-container\n *ngTemplateOutlet=\"tasksList; context: {show: !obs.loadingTasks, activeTab: obs.activeTab}\"\n ></ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksListLoading;\n context: {show: obs.loadingTasks, activeTab: obs.activeTab}\n \"\n ></ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"getTasks(currentTaskType)\"\n (assignmentOfTaskChanged)=\"getTasks(currentTaskType)\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n<ng-template #configuredTabs let-activeTab=\"activeTab\">\n <cds-tabs type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"activeTab === tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n</ng-template>\n\n<ng-template #caseLink let-data=\"data\">\n <div *ngIf=\"tasks[currentTaskType].tasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link--disabled\"\n cdsLink\n href=\"javascript:void(0)\"\n ngbTooltip=\"{{ 'task-list.caseLocked' | translate }}\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n <div *ngIf=\"!tasks[currentTaskType].tasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n</ng-template>\n\n<ng-template #tasksList let-show=\"show\" let-activeTab=\"activeTab\">\n <valtimo-carbon-list\n [ngClass]=\"{'hide-tasks-list': !show}\"\n [fields]=\"tasks[currentTaskType].fields\"\n [header]=\"false\"\n [items]=\"tasks[currentTaskType].tasks\"\n [lastColumnTemplate]=\"caseLink\"\n [pagination]=\"tasks[currentTaskType].pagination\"\n paginationIdentifier=\"taskList\"\n lockedTooltipTranslationKey=\"task-list.rowLocked\"\n (paginationClicked)=\"paginationClicked($event, currentTaskType)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div tabs>\n <cds-tabs\n *ngIf=\"visibleTabs === null; else configuredTabs; context: {activeTab: activeTab}\"\n type=\"contained\"\n class=\"valtimo-carbon-list__tabs\"\n >\n <cds-tab\n [heading]=\"'task-list.mine.title' | translate\"\n (selected)=\"tabChange('mine')\"\n [active]=\"activeTab === 'mine'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.open.title' | translate\"\n (selected)=\"tabChange('open')\"\n [active]=\"activeTab === 'open'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.all.title' | translate\"\n (selected)=\"tabChange('all')\"\n [active]=\"activeTab === 'all'\"\n >\n </cds-tab>\n </cds-tabs>\n </div>\n\n <valtimo-no-results\n [description]=\"'task-list.' + currentTaskType + '.noResultsDescription' | translate\"\n [title]=\"'task-list.' + currentTaskType + '.noResultsTitle' | translate\"\n >\n </valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tasksListLoading let-show=\"show\" let-activeTab=\"activeTab\">\n <valtimo-carbon-list [ngClass]=\"{'hide-tasks-list': !show}\" [loading]=\"true\">\n <div tabs>\n <cds-tabs *ngIf=\"visibleTabs === null\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab [heading]=\"'task-list.mine.title' | translate\" [active]=\"activeTab === 'mine'\">\n </cds-tab>\n\n <cds-tab [heading]=\"'task-list.open.title' | translate\" [active]=\"activeTab === 'open'\">\n </cds-tab>\n\n <cds-tab [heading]=\"'task-list.all.title' | translate\" [active]=\"activeTab === 'all'\">\n </cds-tab>\n </cds-tabs>\n\n <cds-tabs type=\"contained\" class=\"valtimo-carbon-list__tabs\" *ngIf=\"visibleTabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"activeTab === tab\"\n ></cds-tab>\n </cds-tabs>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.hide-tasks-list{display:none}.cds--link--disabled{cursor:not-allowed;pointer-events:auto!important;outline:0!important}\n"], dependencies: [{ kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i9.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow"] }, { kind: "component", type: i9.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "directive", type: i10.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i11.Link, selector: "[cdsLink], [ibmLink]", inputs: ["inline", "disabled"] }, { kind: "component", type: i11.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i11.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: i12.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
251
- }
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskListComponent, decorators: [{
253
- type: Component,
254
- args: [{ selector: 'valtimo-task-list', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"main-content\"\n *ngIf=\"{loadingTasks: loadingTasks$ | async, activeTab: activeTab$ | async} as obs\"\n>\n <div class=\"container-fluid\">\n <ng-container\n *ngTemplateOutlet=\"tasksList; context: {show: !obs.loadingTasks, activeTab: obs.activeTab}\"\n ></ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksListLoading;\n context: {show: obs.loadingTasks, activeTab: obs.activeTab}\n \"\n ></ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"getTasks(currentTaskType)\"\n (assignmentOfTaskChanged)=\"getTasks(currentTaskType)\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n<ng-template #configuredTabs let-activeTab=\"activeTab\">\n <cds-tabs type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"activeTab === tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n</ng-template>\n\n<ng-template #caseLink let-data=\"data\">\n <div *ngIf=\"tasks[currentTaskType].tasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link--disabled\"\n cdsLink\n href=\"javascript:void(0)\"\n ngbTooltip=\"{{ 'task-list.caseLocked' | translate }}\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n <div *ngIf=\"!tasks[currentTaskType].tasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n</ng-template>\n\n<ng-template #tasksList let-show=\"show\" let-activeTab=\"activeTab\">\n <valtimo-carbon-list\n [ngClass]=\"{'hide-tasks-list': !show}\"\n [fields]=\"tasks[currentTaskType].fields\"\n [header]=\"false\"\n [items]=\"tasks[currentTaskType].tasks\"\n [lastColumnTemplate]=\"caseLink\"\n [pagination]=\"tasks[currentTaskType].pagination\"\n paginationIdentifier=\"taskList\"\n lockedTooltipTranslationKey=\"task-list.rowLocked\"\n (paginationClicked)=\"paginationClicked($event, currentTaskType)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div tabs>\n <cds-tabs\n *ngIf=\"visibleTabs === null; else configuredTabs; context: {activeTab: activeTab}\"\n type=\"contained\"\n class=\"valtimo-carbon-list__tabs\"\n >\n <cds-tab\n [heading]=\"'task-list.mine.title' | translate\"\n (selected)=\"tabChange('mine')\"\n [active]=\"activeTab === 'mine'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.open.title' | translate\"\n (selected)=\"tabChange('open')\"\n [active]=\"activeTab === 'open'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.all.title' | translate\"\n (selected)=\"tabChange('all')\"\n [active]=\"activeTab === 'all'\"\n >\n </cds-tab>\n </cds-tabs>\n </div>\n\n <valtimo-no-results\n [description]=\"'task-list.' + currentTaskType + '.noResultsDescription' | translate\"\n [title]=\"'task-list.' + currentTaskType + '.noResultsTitle' | translate\"\n >\n </valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tasksListLoading let-show=\"show\" let-activeTab=\"activeTab\">\n <valtimo-carbon-list [ngClass]=\"{'hide-tasks-list': !show}\" [loading]=\"true\">\n <div tabs>\n <cds-tabs *ngIf=\"visibleTabs === null\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab [heading]=\"'task-list.mine.title' | translate\" [active]=\"activeTab === 'mine'\">\n </cds-tab>\n\n <cds-tab [heading]=\"'task-list.open.title' | translate\" [active]=\"activeTab === 'open'\">\n </cds-tab>\n\n <cds-tab [heading]=\"'task-list.all.title' | translate\" [active]=\"activeTab === 'all'\">\n </cds-tab>\n </cds-tabs>\n\n <cds-tabs type=\"contained\" class=\"valtimo-carbon-list__tabs\" *ngIf=\"visibleTabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"activeTab === tab\"\n ></cds-tab>\n </cds-tabs>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.hide-tasks-list{display:none}.cds--link--disabled{cursor:not-allowed;pointer-events:auto!important;outline:0!important}\n"] }]
255
- }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.DocumentService }, { type: i3.NGXLogger }, { type: i4.PermissionService }, { type: i5.Router }, { type: i6.TaskService }, { type: i7.TranslateService }]; }, propDecorators: { taskDetail: [{
256
- type: ViewChild,
257
- args: ['taskDetail']
258
- }] } });
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL3Rhc2stbGlzdC90YXNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvdGFzay1saXN0L3Rhc2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWEsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2pGLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQU8sUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBSXpDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGNBQWMsRUFDZCxRQUFRLEVBQ1IsRUFBRSxFQUVGLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwQyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwrQkFBK0IsR0FDaEMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFFN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBUXJELE1BQU0sT0FBTyxpQkFBaUI7SUFnQjVCLFlBQ21CLGFBQTRCLEVBQzVCLGVBQWdDLEVBQ2hDLE1BQWlCLEVBQ2pCLGlCQUFvQyxFQUNwQyxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsZ0JBQWtDO1FBTmxDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4s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QUFJLENBQUMsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDL0MsQ0FBQzsrR0FoUVUsaUJBQWlCO21HQUFqQixpQkFBaUIsbUtDbkQ5Qix5b0tBdUpBOzs0RkRwR2EsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLG1CQUFtQixpQkFHZCxpQkFBaUIsQ0FBQyxJQUFJO3dRQUdaLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1Rhc2tTZXJ2aWNlfSBmcm9tICcuLi90YXNrLnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtUYXNrLCBUYXNrTGlzdH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7TkdYTG9nZ2VyfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7VGFza0RldGFpbE1vZGFsQ29tcG9uZW50fSBmcm9tICcuLi90YXNrLWRldGFpbC1tb2RhbC90YXNrLWRldGFpbC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGVmYXVsdElmRW1wdHksXG4gIGZvcmtKb2luLFxuICBvZixcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlLCBTb3J0U3RhdGUsIFRhc2tMaXN0VGFifSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtEb2N1bWVudFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2RvY3VtZW50JztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vYWNjZXNzLWNvbnRyb2wnO1xuaW1wb3J0IHtcbiAgQ0FOX1ZJRVdfVEFTS19QRVJNSVNTSU9OLFxuICBDQU5fVklFV19DQVNFX1BFUk1JU1NJT04sXG4gIFRBU0tfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UsXG59IGZyb20gJy4uL3Rhc2stcGVybWlzc2lvbnMnO1xuXG5tb21lbnQubG9jYWxlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5nS2V5JykgfHwgJycpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXRhc2stbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YXNrLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFza0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCd0YXNrRGV0YWlsJykgdGFza0RldGFpbDogVGFza0RldGFpbE1vZGFsQ29tcG9uZW50O1xuICBwdWJsaWMgdGFza3MgPSB7XG4gICAgbWluZTogbmV3IFRhc2tMaXN0KCksXG4gICAgb3BlbjogbmV3IFRhc2tMaXN0KCksXG4gICAgYWxsOiBuZXcgVGFza0xpc3QoKSxcbiAgfTtcbiAgcHVibGljIHZpc2libGVUYWJzOiBBcnJheTxUYXNrTGlzdFRhYj4gfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGN1cnJlbnRUYXNrVHlwZSA9ICdtaW5lJztcbiAgcHVibGljIGxpc3RUaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBsaXN0RGVzY3JpcHRpb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgc29ydFN0YXRlOiBTb3J0U3RhdGUgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdUYXNrcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlVGFiJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHByaXZhdGUgX3RyYW5zbGF0aW9uU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tTZXJ2aWNlOiBUYXNrU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy52aXNpYmxlVGFicyA9IHRoaXMuY29uZmlnU2VydmljZS5jb25maWc/LnZpc2libGVUYXNrTGlzdFRhYnMgfHwgbnVsbDtcbiAgICBpZiAodGhpcy52aXNpYmxlVGFicykge1xuICAgICAgdGhpcy5jdXJyZW50VGFza1R5cGUgPSB0aGlzLnZpc2libGVUYWJzWzBdO1xuICAgIH1cbiAgICB0aGlzLnNldERlZmF1bHRTb3J0aW5nKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZVRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGlvbkNsaWNrZWQocGFnZTogbnVtYmVyLCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tzW3R5cGVdLnBhZ2UgPSBwYWdlIC0gMTtcbiAgICB0aGlzLnRhc2tzW3R5cGVdLnBhZ2luYXRpb24ucGFnZSA9IHBhZ2U7XG4gICAgdGhpcy5nZXRUYXNrcyh0eXBlKTtcbiAgfVxuXG4gIHB1YmxpYyBwYWdpbmF0aW9uU2V0KHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudGFza3MubWluZS5wYWdpbmF0aW9uLnNpemUgPVxuICAgICAgdGhpcy50YXNrcy5hbGwucGFnaW5hdGlvbi5zaXplID1cbiAgICAgIHRoaXMudGFza3Mub3Blbi5wYWdpbmF0aW9uLnNpemUgPVxuICAgICAgICBzaXplO1xuICAgIHRoaXMuZ2V0VGFza3ModGhpcy5jdXJyZW50VGFza1R5cGUpO1xuICB9XG5cbiAgcHVibGljIHRhYkNoYW5nZSh0YWI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJQYWdpbmF0aW9uKHRoaXMuY3VycmVudFRhc2tUeXBlKTtcbiAgICB0aGlzLmdldFRhc2tzKHRhYik7XG4gIH1cblxuICBwdWJsaWMgc2hvd1Rhc2sodGFzazogVGFzayk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndGFza3MnLCB0YXNrLmlkXSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGFza3ModHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nVGFza3MkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5hY3RpdmVUYWIkLm5leHQodHlwZSk7XG5cbiAgICBsZXQgcGFyYW1zOiBhbnk7XG5cbiAgICB0aGlzLmNsb3NlVHJhbnNsYXRpb25TdWJzY3JpcHRpb24oKTtcblxuICAgIHRoaXMuX3RyYW5zbGF0aW9uU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuJHt0eXBlfS50aXRsZWApLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShgdGFzay1saXN0LiR7dHlwZX0uZGVzY3JpcHRpb25gKSxcbiAgICBdKS5zdWJzY3JpYmUoKFt0aXRsZSwgZGVzY3JpcHRpb25dKSA9PiB7XG4gICAgICB0aGlzLmxpc3RUaXRsZSA9IHRpdGxlO1xuICAgICAgdGhpcy5saXN0RGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICB9KTtcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnbWluZSc6XG4gICAgICAgIHBhcmFtcyA9IHtcbiAgICAgICAgICBwYWdlOiB0aGlzLnRhc2tzLm1pbmUucGFnZSxcbiAgICAgICAgICBzaXplOiB0aGlzLnRhc2tzLm1pbmUucGFnaW5hdGlvbi5zaXplLFxuICAgICAgICAgIGZpbHRlcjogJ21pbmUnLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmN1cnJlbnRUYXNrVHlwZSA9ICdtaW5lJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvcGVuJzpcbiAgICAgICAgcGFyYW1zID0ge1xuICAgICAgICAgIHBhZ2U6IHRoaXMudGFza3Mub3Blbi5wYWdlLFxuICAgICAgICAgIHNpemU6IHRoaXMudGFza3Mub3Blbi5wYWdpbmF0aW9uLnNpemUsXG4gICAgICAgICAgZmlsdGVyOiAnb3BlbicsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY3VycmVudFRhc2tUeXBlID0gJ29wZW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FsbCc6XG4gICAgICAgIHBhcmFtcyA9IHtwYWdlOiB0aGlzLnRhc2tzLmFsbC5wYWdlLCBzaXplOiB0aGlzLnRhc2tzLm9wZW4ucGFnaW5hdGlvbi5zaXplLCBmaWx0ZXI6ICdhbGwnfTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFza1R5cGUgPSAnYWxsJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmxvZ2dlci5mYXRhbCgnVW5yZWFjaGFibGUgY2FzZScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNvcnRTdGF0ZSkge1xuICAgICAgcGFyYW1zLnNvcnQgPSB0aGlzLmdldFNvcnRTdHJpbmcodGhpcy5zb3J0U3RhdGUpO1xuICAgIH1cblxuICAgIHRoaXMudGFza1NlcnZpY2VcbiAgICAgIC5xdWVyeVRhc2tzKHBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAodGFza3NSZXN1bHQgPT5cbiAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIG9mKHRhc2tzUmVzdWx0KSxcbiAgICAgICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgICAgICB0YXNrc1Jlc3VsdC5ib2R5Lm1hcCh0YXNrID0+XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZVxuICAgICAgICAgICAgICAgICAgLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9WSUVXX1RBU0tfUEVSTUlTU0lPTiwge1xuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZTogVEFTS19ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS50YXNrLFxuICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiB0YXNrLmlkLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkucGlwZShkZWZhdWx0SWZFbXB0eShudWxsKSksXG4gICAgICAgICAgICBmb3JrSm9pbihcbiAgICAgICAgICAgICAgdGFza3NSZXN1bHQuYm9keS5tYXAodGFzayA9PlxuICAgICAgICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2VcbiAgICAgICAgICAgICAgICAgIC5yZXF1ZXN0UGVybWlzc2lvbihDQU5fVklFV19DQVNFX1BFUk1JU1NJT04sIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2U6IFRBU0tfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UuanNvblNjaGVtYURvY3VtZW50LFxuICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiB0YXNrLmJ1c2luZXNzS2V5LFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkucGlwZShkZWZhdWx0SWZFbXB0eShudWxsKSksXG4gICAgICAgICAgXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW3Rhc2tzUmVzdWx0LCB0YXNrUGVybWlzc2lvbnMsIHRhc2tDYXNlUGVybWlzc2lvbnNdKSA9PiB7XG4gICAgICAgIHRoaXMudGFza3NbdHlwZV0ucGFnaW5hdGlvbiA9IHtcbiAgICAgICAgICAuLi50aGlzLnRhc2tzW3R5cGVdLnBhZ2luYXRpb24sXG4gICAgICAgICAgY29sbGVjdGlvblNpemU6IHRhc2tzUmVzdWx0LmhlYWRlcnMuZ2V0KCd4LXRvdGFsLWNvdW50JyksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudGFza3NbdHlwZV0udGFza3MgPSB0YXNrc1Jlc3VsdC5ib2R5O1xuICAgICAgICB0aGlzLnRhc2tzW3R5cGVdLnRhc2tzLm1hcCgodGFzaywgdGFza0luZGV4KSA9PiB7XG4gICAgICAgICAgdGFzay5jcmVhdGVkID0gbW9tZW50KHRhc2suY3JlYXRlZCkuZm9ybWF0KCdERCBNTU0gWVlZWSBISDptbScpO1xuICAgICAgICAgIGlmICh0YXNrLmR1ZSkge1xuICAgICAgICAgICAgdGFzay5kdWUgPSBtb21lbnQodGFzay5kdWUpLmZvcm1hdCgnREQgTU1NIFlZWVkgSEg6bW0nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGFzay5sb2NrZWQgPSAhdGFza1Blcm1pc3Npb25zW3Rhc2tJbmRleF07XG4gICAgICAgICAgdGFzay5jYXNlTG9ja2VkID0gIXRhc2tDYXNlUGVybWlzc2lvbnNbdGFza0luZGV4XTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMudGFza1NlcnZpY2UuZ2V0Q29uZmlnQ3VzdG9tVGFza0xpc3QoKSkge1xuICAgICAgICAgIHRoaXMuY3VzdG9tVGFza0xpc3RGaWVsZHModHlwZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kZWZhdWx0VGFza0xpc3RGaWVsZHModHlwZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvYWRpbmdUYXNrcyQubmV4dChmYWxzZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuUmVsYXRlZENhc2UoZXZlbnQ6IE1vdXNlRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IHRhc2tzID0gdGhpcy50YXNrc1t0aGlzLmN1cnJlbnRUYXNrVHlwZV0udGFza3M7XG4gICAgY29uc3QgY3VycmVudFRhc2sgPSB0YXNrcyAmJiB0YXNrc1tpbmRleF07XG5cbiAgICBpZiAoY3VycmVudFRhc2sgJiYgIWN1cnJlbnRUYXNrLmNhc2VMb2NrZWQpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAgIC5nZXREb2N1bWVudChjdXJyZW50VGFzay5idXNpbmVzc0tleSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShkb2N1bWVudCA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1xuICAgICAgICAgICAgYC9kb3NzaWVycy8ke2RvY3VtZW50LmRlZmluaXRpb25JZD8ubmFtZX0vZG9jdW1lbnQvJHtjdXJyZW50VGFzay5idXNpbmVzc0tleX1gLFxuICAgICAgICAgIF0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVmYXVsdFRhc2tMaXN0RmllbGRzKHR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlVHJhbnNsYXRpb25TdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLl90cmFuc2xhdGlvblN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShgdGFzay1saXN0LmZpZWxkTGFiZWxzLmNyZWF0ZWRgKSxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oYHRhc2stbGlzdC5maWVsZExhYmVscy5uYW1lYCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMudmFsdGltb0Fzc2lnbmVlLmZ1bGxOYW1lYCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMuZHVlYCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMuY29udGV4dGApLFxuICAgIF0pLnN1YnNjcmliZSgoW2NyZWF0ZWQsIG5hbWUsIGFzc2lnbmVlLCBkdWUsIGNvbnRleHRdKSA9PiB7XG4gICAgICB0aGlzLnRhc2tzW3R5cGVdLmZpZWxkcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ2NyZWF0ZWQnLFxuICAgICAgICAgIGxhYmVsOiBjcmVhdGVkLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnbmFtZScsXG4gICAgICAgICAgbGFiZWw6IG5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICd2YWx0aW1vQXNzaWduZWUuZnVsbE5hbWUnLFxuICAgICAgICAgIGxhYmVsOiBhc3NpZ25lZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ2R1ZScsXG4gICAgICAgICAgbGFiZWw6IGR1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ2NvbnRleHQnLFxuICAgICAgICAgIGxhYmVsOiBjb250ZXh0LFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjdXN0b21UYXNrTGlzdEZpZWxkcyh0eXBlKTogdm9pZCB7XG4gICAgY29uc3QgY3VzdG9tVGFza0xpc3RGaWVsZHMgPSB0aGlzLnRhc2tTZXJ2aWNlLmdldENvbmZpZ0N1c3RvbVRhc2tMaXN0KCkuZmllbGRzO1xuXG4gICAgdGhpcy5jbG9zZVRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5fdHJhbnNsYXRpb25TdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFxuICAgICAgY3VzdG9tVGFza0xpc3RGaWVsZHMubWFwKGNvbHVtbiA9PlxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMuJHtjb2x1bW4udHJhbnNsYXRpb25LZXl9YClcbiAgICAgIClcbiAgICApLnN1YnNjcmliZShsYWJlbHMgPT4ge1xuICAgICAgdGhpcy50YXNrc1t0eXBlXS5maWVsZHMgPSBjdXN0b21UYXNrTGlzdEZpZWxkcy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+ICh7XG4gICAgICAgIGtleTogY29sdW1uLnByb3BlcnR5TmFtZSxcbiAgICAgICAgbGFiZWw6IGxhYmVsc1tpbmRleF0sXG4gICAgICAgIHNvcnRhYmxlOiBjb2x1bW4uc29ydGFibGUsXG4gICAgICAgIC4uLihjb2x1bW4udmlld1R5cGUgJiYge3ZpZXdUeXBlOiBjb2x1bW4udmlld1R5cGV9KSxcbiAgICAgICAgLi4uKGNvbHVtbi5lbnVtICYmIHtlbnVtOiBjb2x1bW4uZW51bX0pLFxuICAgICAgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJvd09wZW5UYXNrQ2xpY2sodGFzayk6IHZvaWQgfCBib29sZWFuIHtcbiAgICBpZiAoIXRhc2suZW5kVGltZSAmJiAhdGFzay5sb2NrZWQpIHtcbiAgICAgIHRoaXMudGFza0RldGFpbC5vcGVuVGFza0RldGFpbHModGFzayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RGVmYXVsdFNvcnRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0U3RhdGUgPSB0aGlzLnRhc2tTZXJ2aWNlLmdldENvbmZpZ0N1c3RvbVRhc2tMaXN0KCk/LmRlZmF1bHRTb3J0ZWRDb2x1bW4gfHwgbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0Q2hhbmdlZChzb3J0U3RhdGU6IFNvcnRTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc29ydFN0YXRlID0gc29ydFN0YXRlO1xuICAgIHRoaXMuZ2V0VGFza3ModGhpcy5jdXJyZW50VGFza1R5cGUpO1xuICB9XG5cbiAgcHVibGljIGdldFNvcnRTdHJpbmcoc29ydDogU29ydFN0YXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7c29ydC5zdGF0ZS5uYW1lfSwke3NvcnQuc3RhdGUuZGlyZWN0aW9ufWA7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyUGFnaW5hdGlvbih0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tzW3R5cGVdLnBhZ2UgPSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zbGF0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXZcbiAgY2xhc3M9XCJtYWluLWNvbnRlbnRcIlxuICAqbmdJZj1cIntsb2FkaW5nVGFza3M6IGxvYWRpbmdUYXNrcyQgfCBhc3luYywgYWN0aXZlVGFiOiBhY3RpdmVUYWIkIHwgYXN5bmN9IGFzIG9ic1wiXG4+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRhc2tzTGlzdDsgY29udGV4dDoge3Nob3c6ICFvYnMubG9hZGluZ1Rhc2tzLCBhY3RpdmVUYWI6IG9icy5hY3RpdmVUYWJ9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICB0YXNrc0xpc3RMb2FkaW5nO1xuICAgICAgICBjb250ZXh0OiB7c2hvdzogb2JzLmxvYWRpbmdUYXNrcywgYWN0aXZlVGFiOiBvYnMuYWN0aXZlVGFifVxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICA8dmFsdGltby10YXNrLWRldGFpbC1tb2RhbFxuICAgICAgI3Rhc2tEZXRhaWxcbiAgICAgIChmb3JtU3VibWl0KT1cImdldFRhc2tzKGN1cnJlbnRUYXNrVHlwZSlcIlxuICAgICAgKGFzc2lnbm1lbnRPZlRhc2tDaGFuZ2VkKT1cImdldFRhc2tzKGN1cnJlbnRUYXNrVHlwZSlcIlxuICAgID48L3ZhbHRpbW8tdGFzay1kZXRhaWwtbW9kYWw+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjY29uZmlndXJlZFRhYnMgbGV0LWFjdGl2ZVRhYj1cImFjdGl2ZVRhYlwiPlxuICA8Y2RzLXRhYnMgdHlwZT1cImNvbnRhaW5lZFwiIGNsYXNzPVwidmFsdGltby1jYXJib24tbGlzdF9fdGFic1wiPlxuICAgIDxjZHMtdGFiXG4gICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHZpc2libGVUYWJzXCJcbiAgICAgIFtoZWFkaW5nXT1cIid0YXNrLWxpc3QuJyArIHRhYiArICcudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlVGFiID09PSB0YWJcIlxuICAgICAgKHNlbGVjdGVkKT1cInRhYkNoYW5nZSh0YWIpXCJcbiAgICA+PC9jZHMtdGFiPlxuICA8L2Nkcy10YWJzPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjYXNlTGluayBsZXQtZGF0YT1cImRhdGFcIj5cbiAgPGRpdiAqbmdJZj1cInRhc2tzW2N1cnJlbnRUYXNrVHlwZV0udGFza3NbZGF0YS5pbmRleF0uY2FzZUxvY2tlZFwiPlxuICAgIDxhXG4gICAgICBjbGFzcz1cImZsb2F0LWxlZnQgY2RzLS1saW5rLS1kaXNhYmxlZFwiXG4gICAgICBjZHNMaW5rXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgIG5nYlRvb2x0aXA9XCJ7eyAndGFzay1saXN0LmNhc2VMb2NrZWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgID5cbiAgICAgIHt7ICd0YXNrLWxpc3QuZ29Ub0Nhc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9hPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiF0YXNrc1tjdXJyZW50VGFza1R5cGVdLnRhc2tzW2RhdGEuaW5kZXhdLmNhc2VMb2NrZWRcIj5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJmbG9hdC1sZWZ0IGNkcy0tbGlua1wiXG4gICAgICBjZHNMaW5rXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgIChjbGljayk9XCJvcGVuUmVsYXRlZENhc2UoJGV2ZW50LCBkYXRhLmluZGV4KVwiXG4gICAgPlxuICAgICAge3sgJ3Rhc2stbGlzdC5nb1RvQ2FzZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2E+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YXNrc0xpc3QgbGV0LXNob3c9XCJzaG93XCIgbGV0LWFjdGl2ZVRhYj1cImFjdGl2ZVRhYlwiPlxuICA8dmFsdGltby1jYXJib24tbGlzdFxuICAgIFtuZ0NsYXNzXT1cInsnaGlkZS10YXNrcy1saXN0JzogIXNob3d9XCJcbiAgICBbZmllbGRzXT1cInRhc2tzW2N1cnJlbnRUYXNrVHlwZV0uZmllbGRzXCJcbiAgICBbaGVhZGVyXT1cImZhbHNlXCJcbiAgICBbaXRlbXNdPVwidGFza3NbY3VycmVudFRhc2tUeXBlXS50YXNrc1wiXG4gICAgW2xhc3RDb2x1bW5UZW1wbGF0ZV09XCJjYXNlTGlua1wiXG4gICAgW3BhZ2luYXRpb25dPVwidGFza3NbY3VycmVudFRhc2tUeXBlXS5wYWdpbmF0aW9uXCJcbiAgICBwYWdpbmF0aW9uSWRlbnRpZmllcj1cInRhc2tMaXN0XCJcbiAgICBsb2NrZWRUb29sdGlwVHJhbnNsYXRpb25LZXk9XCJ0YXNrLWxpc3Qucm93TG9ja2VkXCJcbiAgICAocGFnaW5hdGlvbkNsaWNrZWQpPVwicGFnaW5hdGlvbkNsaWNrZWQoJGV2ZW50LCBjdXJyZW50VGFza1R5cGUpXCJcbiAgICAocGFnaW5hdGlvblNldCk9XCJwYWdpbmF0aW9uU2V0KCRldmVudClcIlxuICAgIChyb3dDbGlja2VkKT1cInJvd09wZW5UYXNrQ2xpY2soJGV2ZW50KVwiXG4gICAgKHNvcnRDaGFuZ2VkKT1cInNvcnRDaGFuZ2VkKCRldmVudClcIlxuICA+XG4gICAgPGRpdiB0YWJzPlxuICAgICAgPGNkcy10YWJzXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZVRhYnMgPT09IG51bGw7IGVsc2UgY29uZmlndXJlZFRhYnM7IGNvbnRleHQ6IHthY3RpdmVUYWI6IGFjdGl2ZVRhYn1cIlxuICAgICAgICB0eXBlPVwiY29udGFpbmVkXCJcbiAgICAgICAgY2xhc3M9XCJ2YWx0aW1vLWNhcmJvbi1saXN0X190YWJzXCJcbiAgICAgID5cbiAgICAgICAgPGNkcy10YWJcbiAgICAgICAgICBbaGVhZGluZ109XCIndGFzay1saXN0Lm1pbmUudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoc2VsZWN0ZWQpPVwidGFiQ2hhbmdlKCdtaW5lJylcIlxuICAgICAgICAgIFthY3RpdmVdPVwiYWN0aXZlVGFiID09PSAnbWluZSdcIlxuICAgICAgICA+XG4gICAgICAgIDwvY2RzLXRhYj5cblxuICAgICAgICA8Y2RzLXRhYlxuICAgICAgICAgIFtoZWFkaW5nXT1cIid0YXNrLWxpc3Qub3Blbi50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIChzZWxlY3RlZCk9XCJ0YWJDaGFuZ2UoJ29wZW4nKVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJhY3RpdmVUYWIgPT09ICdvcGVuJ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9jZHMtdGFiPlxuXG4gICAgICAgIDxjZHMtdGFiXG4gICAgICAgICAgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC5hbGwudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoc2VsZWN0ZWQpPVwidGFiQ2hhbmdlKCdhbGwnKVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJhY3RpdmVUYWIgPT09ICdhbGwnXCJcbiAgICAgICAgPlxuICAgICAgICA8L2Nkcy10YWI+XG4gICAgICA8L2Nkcy10YWJzPlxuICAgIDwvZGl2PlxuXG4gICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgW2Rlc2NyaXB0aW9uXT1cIid0YXNrLWxpc3QuJyArIGN1cnJlbnRUYXNrVHlwZSArICcubm9SZXN1bHRzRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0aXRsZV09XCIndGFzay1saXN0LicgKyBjdXJyZW50VGFza1R5cGUgKyAnLm5vUmVzdWx0c1RpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgIDwvdmFsdGltby1uby1yZXN1bHRzPlxuICA8L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Rhc2tzTGlzdExvYWRpbmcgbGV0LXNob3c9XCJzaG93XCIgbGV0LWFjdGl2ZVRhYj1cImFjdGl2ZVRhYlwiPlxuICA8dmFsdGltby1jYXJib24tbGlzdCBbbmdDbGFzc109XCJ7J2hpZGUtdGFza3MtbGlzdCc6ICFzaG93fVwiIFtsb2FkaW5nXT1cInRydWVcIj5cbiAgICA8ZGl2IHRhYnM+XG4gICAgICA8Y2RzLXRhYnMgKm5nSWY9XCJ2aXNpYmxlVGFicyA9PT0gbnVsbFwiIHR5cGU9XCJjb250YWluZWRcIiBjbGFzcz1cInZhbHRpbW8tY2FyYm9uLWxpc3RfX3RhYnNcIj5cbiAgICAgICAgPGNkcy10YWIgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC5taW5lLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFthY3RpdmVdPVwiYWN0aXZlVGFiID09PSAnbWluZSdcIj5cbiAgICAgICAgPC9jZHMtdGFiPlxuXG4gICAgICAgIDxjZHMtdGFiIFtoZWFkaW5nXT1cIid0YXNrLWxpc3Qub3Blbi50aXRsZScgfCB0cmFuc2xhdGVcIiBbYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gJ29wZW4nXCI+XG4gICAgICAgIDwvY2RzLXRhYj5cblxuICAgICAgICA8Y2RzLXRhYiBbaGVhZGluZ109XCIndGFzay1saXN0LmFsbC50aXRsZScgfCB0cmFuc2xhdGVcIiBbYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gJ2FsbCdcIj5cbiAgICAgICAgPC9jZHMtdGFiPlxuICAgICAgPC9jZHMtdGFicz5cblxuICAgICAgPGNkcy10YWJzIHR5cGU9XCJjb250YWluZWRcIiBjbGFzcz1cInZhbHRpbW8tY2FyYm9uLWxpc3RfX3RhYnNcIiAqbmdJZj1cInZpc2libGVUYWJzXCI+XG4gICAgICAgIDxjZHMtdGFiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB2aXNpYmxlVGFic1wiXG4gICAgICAgICAgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC4nICsgdGFiICsgJy50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFthY3RpdmVdPVwiYWN0aXZlVGFiID09PSB0YWJcIlxuICAgICAgICA+PC9jZHMtdGFiPlxuICAgICAgPC9jZHMtdGFicz5cbiAgICA8L2Rpdj5cbiAgPC92YWx0aW1vLWNhcmJvbi1saXN0PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,72 +0,0 @@
1
- /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Injectable } from '@angular/core';
17
- import { InterceptorSkip } from '@valtimo/security';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "@angular/common/http";
20
- import * as i2 from "@valtimo/config";
21
- export class TaskService {
22
- constructor(http, configService) {
23
- this.http = http;
24
- this.configService = configService;
25
- this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;
26
- }
27
- queryTasks(params) {
28
- return this.http.get(`${this.valtimoEndpointUri}v1/task`, {
29
- observe: 'response',
30
- params,
31
- });
32
- }
33
- getTasks() {
34
- return this.http.get(`${this.valtimoEndpointUri}v1/task?filter=all`);
35
- }
36
- getTask(id) {
37
- return this.http.get(this.valtimoEndpointUri + 'v1/task/' + id);
38
- }
39
- getCandidateUsers(id) {
40
- return this.http.get(this.valtimoEndpointUri + 'v2/task/' + id + '/candidate-user');
41
- }
42
- assignTask(id, assigneeRequest) {
43
- return this.http.post(this.valtimoEndpointUri + 'v1/task/' + id + '/assign', assigneeRequest);
44
- }
45
- unassignTask(id) {
46
- return this.http.post(this.valtimoEndpointUri + 'v1/task/' + id + '/unassign', null);
47
- }
48
- completeTask(id, variables) {
49
- return this.http.post(this.valtimoEndpointUri + 'v1/task/' + id + '/complete', {
50
- variables,
51
- filesToDelete: [],
52
- });
53
- }
54
- getTaskProcessLink(taskId) {
55
- return this.http.get(`${this.valtimoEndpointUri}v2/process-link/task/${taskId}`, {
56
- headers: { [InterceptorSkip]: '' },
57
- });
58
- }
59
- getTaskProcessLinkV1(taskId) {
60
- return this.http.get(`${this.valtimoEndpointUri}v1/process-link/task/${taskId}`);
61
- }
62
- getConfigCustomTaskList() {
63
- return this.configService.config.customTaskList;
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
66
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskService, providedIn: 'root' }); }
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskService, decorators: [{
69
- type: Injectable,
70
- args: [{ providedIn: 'root' }]
71
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigService }]; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvdGFzay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUt6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFHbEQsTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFDVSxJQUFnQixFQUNQLGFBQTRCO1FBRHJDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDUCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUU3QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixTQUFTLEVBQUU7WUFDckUsT0FBTyxFQUFFLFVBQVU7WUFDbkIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0Isb0JBQW9CLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFVO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixDQUM5RCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFVLEVBQUUsZUFBZ0M7UUFDckQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxHQUFHLEVBQUUsR0FBRyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFlBQVksQ0FBQyxFQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxZQUFZLENBQUMsRUFBVSxFQUFFLFNBQTJCO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFFO1lBQzdFLFNBQVM7WUFDVCxhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBYztRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxrQkFBa0Isd0JBQXdCLE1BQU0sRUFBRSxFQUMxRDtZQUNFLE9BQU8sRUFBRSxFQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxFQUFDO1NBQ2pDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFjO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQix3QkFBd0IsTUFBTSxFQUFFLENBQzNELENBQUM7SUFDSixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO0lBQ2xELENBQUM7K0dBL0RVLFdBQVc7bUhBQVgsV0FBVyxjQURDLE1BQU07OzRGQUNsQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QXNzaWduZWVSZXF1ZXN0LCBUYXNrLCBUYXNrUHJvY2Vzc0xpbmtSZXN1bHR9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7Q29uZmlnU2VydmljZSwgQ3VzdG9tVGFza0xpc3QsIE5hbWVkVXNlcn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7SW50ZXJjZXB0b3JTa2lwfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFRhc2tTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB2YWx0aW1vRW5kcG9pbnRVcmk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudmFsdGltb0VuZHBvaW50VXJpID0gY29uZmlnU2VydmljZS5jb25maWcudmFsdGltb0FwaS5lbmRwb2ludFVyaTtcbiAgfVxuXG4gIHF1ZXJ5VGFza3MocGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXJyYXk8VGFzaz4+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXJyYXk8VGFzaz4+KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Rhc2tgLCB7XG4gICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0VGFza3MoKTogT2JzZXJ2YWJsZTxUYXNrW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUYXNrW10+KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Rhc2s/ZmlsdGVyPWFsbGApO1xuICB9XG5cbiAgZ2V0VGFzayhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnZhbHRpbW9FbmRwb2ludFVyaSArICd2MS90YXNrLycgKyBpZCk7XG4gIH1cblxuICBnZXRDYW5kaWRhdGVVc2VycyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOYW1lZFVzZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5hbWVkVXNlcltdPihcbiAgICAgIHRoaXMudmFsdGltb0VuZHBvaW50VXJpICsgJ3YyL3Rhc2svJyArIGlkICsgJy9jYW5kaWRhdGUtdXNlcidcbiAgICApO1xuICB9XG5cbiAgYXNzaWduVGFzayhpZDogc3RyaW5nLCBhc3NpZ25lZVJlcXVlc3Q6IEFzc2lnbmVlUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMudmFsdGltb0VuZHBvaW50VXJpICsgJ3YxL3Rhc2svJyArIGlkICsgJy9hc3NpZ24nLCBhc3NpZ25lZVJlcXVlc3QpO1xuICB9XG5cbiAgdW5hc3NpZ25UYXNrKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnZhbHRpbW9FbmRwb2ludFVyaSArICd2MS90YXNrLycgKyBpZCArICcvdW5hc3NpZ24nLCBudWxsKTtcbiAgfVxuXG4gIGNvbXBsZXRlVGFzayhpZDogc3RyaW5nLCB2YXJpYWJsZXM6IE1hcDxzdHJpbmcsIGFueT4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnZhbHRpbW9FbmRwb2ludFVyaSArICd2MS90YXNrLycgKyBpZCArICcvY29tcGxldGUnLCB7XG4gICAgICB2YXJpYWJsZXMsXG4gICAgICBmaWxlc1RvRGVsZXRlOiBbXSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFRhc2tQcm9jZXNzTGluayh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1Byb2Nlc3NMaW5rUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VGFza1Byb2Nlc3NMaW5rUmVzdWx0PihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYyL3Byb2Nlc3MtbGluay90YXNrLyR7dGFza0lkfWAsXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnM6IHtbSW50ZXJjZXB0b3JTa2lwXTogJyd9LFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBnZXRUYXNrUHJvY2Vzc0xpbmtWMSh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1Byb2Nlc3NMaW5rUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VGFza1Byb2Nlc3NMaW5rUmVzdWx0PihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Byb2Nlc3MtbGluay90YXNrLyR7dGFza0lkfWBcbiAgICApO1xuICB9XG5cbiAgZ2V0Q29uZmlnQ3VzdG9tVGFza0xpc3QoKTogQ3VzdG9tVGFza0xpc3Qge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLmN1c3RvbVRhc2tMaXN0O1xuICB9XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"assign-user-to-task.component.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/task/src/lib/assign-user-to-task/assign-user-to-task.component.ts"],"names":[],"mappings":"AAeA,OAAO,EAEL,YAAY,EAEZ,SAAS,EACT,SAAS,EACT,MAAM,EAEN,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAyC,MAAM,MAAM,CAAC;AAC7E,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;;AAE1C,qBAKa,yBAA0B,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAYhE,OAAO,CAAC,WAAW;IAXtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACrB,uBAAuB,oBAAsB;IAEhD,sBAAsB,0BAA4C;IAClE,qBAAqB,0BAA4C;IACjE,sBAAsB,+BAA2D;IACjF,SAAS,2BAAsC;IAC/C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/C,OAAO,CAAC,cAAc,CAAsB;gBAExB,WAAW,EAAE,WAAW;IAErC,QAAQ,IAAI,IAAI;IAgBhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAWzC,WAAW,IAAI,IAAI;IAInB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAqBnC,YAAY,IAAI,IAAI;IAcpB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAQlE,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE;IAU9D,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;yCA/GJ,yBAAyB;2CAAzB,yBAAyB;CAkHrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-detail-modal.component.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/task/src/lib/task-detail-modal/task-detail-modal.component.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- import { OnDestroy } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { TaskService } from '../task.service';
4
- import { Task, TaskList } from '../models';
5
- import { NGXLogger } from 'ngx-logger';
6
- import { TaskDetailModalComponent } from '../task-detail-modal/task-detail-modal.component';
7
- import { TranslateService } from '@ngx-translate/core';
8
- import { BehaviorSubject } from 'rxjs';
9
- import { ConfigService, SortState, TaskListTab } from '@valtimo/config';
10
- import { DocumentService } from '@valtimo/document';
11
- import { PermissionService } from '@valtimo/access-control';
12
- import * as i0 from "@angular/core";
13
- export declare class TaskListComponent implements OnDestroy {
14
- private readonly configService;
15
- private readonly documentService;
16
- private readonly logger;
17
- private readonly permissionService;
18
- private readonly router;
19
- private readonly taskService;
20
- private readonly translateService;
21
- taskDetail: TaskDetailModalComponent;
22
- tasks: {
23
- mine: TaskList;
24
- open: TaskList;
25
- all: TaskList;
26
- };
27
- visibleTabs: Array<TaskListTab> | null;
28
- currentTaskType: string;
29
- listTitle: string | null;
30
- listDescription: string | null;
31
- sortState: SortState | null;
32
- readonly loadingTasks$: BehaviorSubject<boolean>;
33
- readonly activeTab$: BehaviorSubject<string>;
34
- private _translationSubscription;
35
- constructor(configService: ConfigService, documentService: DocumentService, logger: NGXLogger, permissionService: PermissionService, router: Router, taskService: TaskService, translateService: TranslateService);
36
- ngOnDestroy(): void;
37
- paginationClicked(page: number, type: string): void;
38
- paginationSet(size: number): void;
39
- tabChange(tab: string): void;
40
- showTask(task: Task): void;
41
- getTasks(type: string): void;
42
- openRelatedCase(event: MouseEvent, index: number): void;
43
- defaultTaskListFields(type: any): void;
44
- customTaskListFields(type: any): void;
45
- rowOpenTaskClick(task: any): void | boolean;
46
- setDefaultSorting(): void;
47
- sortChanged(sortState: SortState): void;
48
- getSortString(sort: SortState): string;
49
- private clearPagination;
50
- private closeTranslationSubscription;
51
- static ɵfac: i0.ɵɵFactoryDeclaration<TaskListComponent, never>;
52
- static ɵcmp: i0.ɵɵComponentDeclaration<TaskListComponent, "valtimo-task-list", never, {}, {}, never, never, false, never>;
53
- }
54
- //# sourceMappingURL=task-list.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-list.component.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/task/src/lib/task-list/task-list.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,SAAS,EAA+B,MAAM,eAAe,CAAC;AACjF,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,WAAW,CAAC;AACzC,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,EAAC,wBAAwB,EAAC,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,eAAe,EAOhB,MAAM,MAAM,CAAC;AACd,OAAO,EAAC,aAAa,EAAE,SAAS,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;;AAS1D,qBAMa,iBAAkB,YAAW,SAAS;IAiB/C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAtBV,UAAU,EAAE,wBAAwB,CAAC;IACvD,KAAK;;;;MAIV;IACK,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAQ;IAC9C,eAAe,SAAU;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IAC1C,SAAgB,aAAa,2BAAsC;IACnE,SAAgB,UAAU,0BAAmC;IAC7D,OAAO,CAAC,wBAAwB,CAAgB;gBAG7B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,SAAS,EACjB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB;IAS9C,WAAW,IAAI,IAAI;IAInB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMnD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQjC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK5B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAmG5B,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBvD,qBAAqB,CAAC,IAAI,KAAA,GAAG,IAAI;IAkCjC,oBAAoB,CAAC,IAAI,KAAA,GAAG,IAAI;IAmBhC,gBAAgB,CAAC,IAAI,KAAA,GAAG,IAAI,GAAG,OAAO;IAQtC,iBAAiB,IAAI,IAAI;IAIzB,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKvC,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAI7C,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,4BAA4B;yCA9PzB,iBAAiB;2CAAjB,iBAAiB;CAiQ7B"}
@@ -1,24 +0,0 @@
1
- import { HttpClient, HttpResponse } from '@angular/common/http';
2
- import { Observable } from 'rxjs';
3
- import { AssigneeRequest, Task, TaskProcessLinkResult } from './models';
4
- import { ConfigService, CustomTaskList, NamedUser } from '@valtimo/config';
5
- import * as i0 from "@angular/core";
6
- export declare class TaskService {
7
- private http;
8
- private readonly configService;
9
- private valtimoEndpointUri;
10
- constructor(http: HttpClient, configService: ConfigService);
11
- queryTasks(params?: any): Observable<HttpResponse<Array<Task>>>;
12
- getTasks(): Observable<Task[]>;
13
- getTask(id: string): Observable<any>;
14
- getCandidateUsers(id: string): Observable<NamedUser[]>;
15
- assignTask(id: string, assigneeRequest: AssigneeRequest): Observable<any>;
16
- unassignTask(id: string): Observable<any>;
17
- completeTask(id: string, variables: Map<string, any>): Observable<any>;
18
- getTaskProcessLink(taskId: string): Observable<TaskProcessLinkResult>;
19
- getTaskProcessLinkV1(taskId: string): Observable<TaskProcessLinkResult>;
20
- getConfigCustomTaskList(): CustomTaskList;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<TaskService, never>;
22
- static ɵprov: i0.ɵɵInjectableDeclaration<TaskService>;
23
- }
24
- //# sourceMappingURL=task.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task.service.d.ts","sourceRoot":"","sources":["../../../../projects/valtimo/task/src/lib/task.service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAChC,OAAO,EAAC,eAAe,EAAE,IAAI,EAAE,qBAAqB,EAAC,MAAM,UAAU,CAAC;AACtE,OAAO,EAAC,aAAa,EAAE,cAAc,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;;AAGzE,qBACa,WAAW;IAIpB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJhC,OAAO,CAAC,kBAAkB,CAAS;gBAGzB,IAAI,EAAE,UAAU,EACP,aAAa,EAAE,aAAa;IAK/C,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAO/D,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;IAI9B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC;IAIpC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IAMtD,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC;IAIzE,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC;IAIzC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;IAOtE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC;IASrE,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC;IAMvE,uBAAuB,IAAI,cAAc;yCA7D9B,WAAW;6CAAX,WAAW;CAgEvB"}