@valtimo/task 10.8.0 → 11.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/assign-user-to-task/assign-user-to-task.component.mjs +122 -0
- package/esm2022/lib/models/task-list.model.mjs +28 -0
- package/{esm2020 → esm2022}/lib/models/task.model.mjs +1 -1
- package/esm2022/lib/task-detail-modal/task-detail-modal.component.mjs +210 -0
- package/esm2022/lib/task-list/task-list.component.mjs +252 -0
- package/esm2022/lib/task-permissions.mjs +34 -0
- package/{esm2020 → esm2022}/lib/task-routing.module.mjs +5 -5
- package/esm2022/lib/task.module.mjs +119 -0
- package/esm2022/lib/task.service.mjs +72 -0
- package/esm2022/public_api.mjs +26 -0
- package/fesm2022/valtimo-task.mjs +912 -0
- package/fesm2022/valtimo-task.mjs.map +1 -0
- package/lib/assign-user-to-task/assign-user-to-task.component.d.ts +4 -4
- package/lib/assign-user-to-task/assign-user-to-task.component.d.ts.map +1 -1
- package/lib/models/task-list.model.d.ts +0 -1
- package/lib/models/task-list.model.d.ts.map +1 -1
- package/lib/models/task.model.d.ts +7 -7
- package/lib/models/task.model.d.ts.map +1 -1
- package/lib/task-detail-modal/task-detail-modal.component.d.ts +29 -34
- package/lib/task-detail-modal/task-detail-modal.component.d.ts.map +1 -1
- package/lib/task-list/task-list.component.d.ts +22 -16
- package/lib/task-list/task-list.component.d.ts.map +1 -1
- package/lib/task-permissions.d.ts +8 -0
- package/lib/task-permissions.d.ts.map +1 -0
- package/lib/task.module.d.ts +1 -1
- package/lib/task.module.d.ts.map +1 -1
- package/lib/task.service.d.ts +2 -2
- package/lib/task.service.d.ts.map +1 -1
- package/package.json +10 -16
- package/public_api.d.ts +1 -0
- package/public_api.d.ts.map +1 -1
- package/esm2020/lib/assign-user-to-task/assign-user-to-task.component.mjs +0 -123
- package/esm2020/lib/models/task-list.model.mjs +0 -29
- package/esm2020/lib/task-detail-modal/task-detail-modal.component.mjs +0 -269
- package/esm2020/lib/task-list/task-list.component.mjs +0 -222
- package/esm2020/lib/task.module.mjs +0 -113
- package/esm2020/lib/task.service.mjs +0 -69
- package/esm2020/public_api.mjs +0 -25
- package/fesm2015/valtimo-task.mjs +0 -861
- package/fesm2015/valtimo-task.mjs.map +0 -1
- package/fesm2020/valtimo-task.mjs +0 -898
- package/fesm2020/valtimo-task.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/task-definition.model.mjs +0 -0
- /package/{esm2020 → esm2022}/valtimo-task.mjs +0 -0
|
@@ -0,0 +1,252 @@
|
|
|
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, of, switchMap } from 'rxjs';
|
|
20
|
+
import { take } from 'rxjs/operators';
|
|
21
|
+
import { CAN_VIEW_TASK_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
|
+
...tasksResult.body.map(task => this.permissionService.requestPermission(CAN_VIEW_TASK_PERMISSION, {
|
|
129
|
+
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
130
|
+
identifier: task.id,
|
|
131
|
+
})),
|
|
132
|
+
])))
|
|
133
|
+
.subscribe(results => {
|
|
134
|
+
const tasksResult = results[0];
|
|
135
|
+
const permissions = results.filter((_, index) => index !== 0);
|
|
136
|
+
this.tasks[type].pagination = {
|
|
137
|
+
...this.tasks[type].pagination,
|
|
138
|
+
collectionSize: tasksResult.headers.get('x-total-count'),
|
|
139
|
+
};
|
|
140
|
+
this.tasks[type].tasks = tasksResult.body;
|
|
141
|
+
this.tasks[type].tasks.map((task, taskIndex) => {
|
|
142
|
+
task.created = moment(task.created).format('DD MMM YYYY HH:mm');
|
|
143
|
+
if (task.due) {
|
|
144
|
+
task.due = moment(task.due).format('DD MMM YYYY HH:mm');
|
|
145
|
+
}
|
|
146
|
+
task.isLocked = !permissions[taskIndex];
|
|
147
|
+
});
|
|
148
|
+
if (this.taskService.getConfigCustomTaskList()) {
|
|
149
|
+
this.customTaskListFields(type);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.defaultTaskListFields(type);
|
|
153
|
+
}
|
|
154
|
+
this.loadingTasks$.next(false);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
openRelatedCase(event, index) {
|
|
158
|
+
event.stopPropagation();
|
|
159
|
+
const tasks = this.tasks[this.currentTaskType].tasks;
|
|
160
|
+
const currentTask = tasks && tasks[index];
|
|
161
|
+
if (currentTask) {
|
|
162
|
+
this.documentService
|
|
163
|
+
.getDocument(currentTask.businessKey)
|
|
164
|
+
.pipe(take(1))
|
|
165
|
+
.subscribe(document => {
|
|
166
|
+
this.router.navigate([
|
|
167
|
+
`/dossiers/${document.definitionId?.name}/document/${currentTask.businessKey}/summary`,
|
|
168
|
+
]);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
defaultTaskListFields(type) {
|
|
173
|
+
this.closeTranslationSubscription();
|
|
174
|
+
this._translationSubscription = combineLatest([
|
|
175
|
+
this.translateService.stream(`task-list.fieldLabels.created`),
|
|
176
|
+
this.translateService.stream(`task-list.fieldLabels.name`),
|
|
177
|
+
this.translateService.stream(`task-list.fieldLabels.valtimoAssignee.fullName`),
|
|
178
|
+
this.translateService.stream(`task-list.fieldLabels.due`),
|
|
179
|
+
this.translateService.stream(`task-list.fieldLabels.context`),
|
|
180
|
+
]).subscribe(([created, name, assignee, due, context]) => {
|
|
181
|
+
this.tasks[type].fields = [
|
|
182
|
+
{
|
|
183
|
+
key: 'created',
|
|
184
|
+
label: created,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
key: 'name',
|
|
188
|
+
label: name,
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
key: 'valtimoAssignee.fullName',
|
|
192
|
+
label: assignee,
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
key: 'due',
|
|
196
|
+
label: due,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
key: 'context',
|
|
200
|
+
label: context,
|
|
201
|
+
},
|
|
202
|
+
];
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
customTaskListFields(type) {
|
|
206
|
+
const customTaskListFields = this.taskService.getConfigCustomTaskList().fields;
|
|
207
|
+
this.closeTranslationSubscription();
|
|
208
|
+
this._translationSubscription = combineLatest(customTaskListFields.map(column => this.translateService.stream(`task-list.fieldLabels.${column.translationKey}`))).subscribe(labels => {
|
|
209
|
+
this.tasks[type].fields = customTaskListFields.map((column, index) => ({
|
|
210
|
+
key: column.propertyName,
|
|
211
|
+
label: labels[index],
|
|
212
|
+
sortable: column.sortable,
|
|
213
|
+
...(column.viewType && { viewType: column.viewType }),
|
|
214
|
+
...(column.enum && { enum: column.enum }),
|
|
215
|
+
}));
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
rowOpenTaskClick(task) {
|
|
219
|
+
if (!task.endTime && !task.isLocked) {
|
|
220
|
+
this.taskDetail.openTaskDetails(task);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
setDefaultSorting() {
|
|
227
|
+
this.sortState = this.taskService.getConfigCustomTaskList()?.defaultSortedColumn || null;
|
|
228
|
+
}
|
|
229
|
+
sortChanged(sortState) {
|
|
230
|
+
this.sortState = sortState;
|
|
231
|
+
this.getTasks(this.currentTaskType);
|
|
232
|
+
}
|
|
233
|
+
getSortString(sort) {
|
|
234
|
+
return `${sort.state.name},${sort.state.direction}`;
|
|
235
|
+
}
|
|
236
|
+
clearPagination(type) {
|
|
237
|
+
this.tasks[type].page = 0;
|
|
238
|
+
}
|
|
239
|
+
closeTranslationSubscription() {
|
|
240
|
+
this._translationSubscription?.unsubscribe();
|
|
241
|
+
}
|
|
242
|
+
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 }); }
|
|
243
|
+
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 #caseLinkWithTaskLock let-data=\"data\">\n <a\n class=\"float-left\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n <div *ngIf=\"tasks[currentTaskType].tasks[data.index].isLocked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'task-list.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\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]=\"caseLinkWithTaskLock\"\n [pagination]=\"tasks[currentTaskType].pagination\"\n paginationIdentifier=\"taskList\"\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}\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", "header", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { 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 }); }
|
|
244
|
+
}
|
|
245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskListComponent, decorators: [{
|
|
246
|
+
type: Component,
|
|
247
|
+
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 #caseLinkWithTaskLock let-data=\"data\">\n <a\n class=\"float-left\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n <div *ngIf=\"tasks[currentTaskType].tasks[data.index].isLocked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'task-list.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\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]=\"caseLinkWithTaskLock\"\n [pagination]=\"tasks[currentTaskType].pagination\"\n paginationIdentifier=\"taskList\"\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}\n"] }]
|
|
248
|
+
}], 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: [{
|
|
249
|
+
type: ViewChild,
|
|
250
|
+
args: ['taskDetail']
|
|
251
|
+
}] } });
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL3Rhc2stbGlzdC90YXNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvdGFzay1saXN0L3Rhc2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWEsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR2pGLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQU8sUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBSXpDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBZ0IsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR2pGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUUsK0JBQStCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFFOUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBUXJELE1BQU0sT0FBTyxpQkFBaUI7SUFnQjVCLFlBQ21CLGFBQTRCLEVBQzVCLGVBQWdDLEVBQ2hDLE1BQWlCLEVBQ2pCLGlCQUFvQyxFQUNwQyxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIsZ0JBQWtDO1FBTmxDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHNCQUFpQixHQUFqQixpQkFB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SUFBSSxDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLG1CQUFtQixJQUFJLElBQUksQ0FBQztJQUMzRixDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQW9CO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBZTtRQUNsQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyw0QkFBNEI7UUFDbEMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQy9DLENBQUM7K0dBcFBVLGlCQUFpQjttR0FBakIsaUJBQWlCLG1LQ3ZDOUIscTdKQWlKQTs7NEZEMUdhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSTt3UUFHWixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUYXNrU2VydmljZX0gZnJvbSAnLi4vdGFzay5zZXJ2aWNlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7VGFzaywgVGFza0xpc3R9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge1Rhc2tEZXRhaWxNb2RhbENvbXBvbmVudH0gZnJvbSAnLi4vdGFzay1kZXRhaWwtbW9kYWwvdGFzay1kZXRhaWwtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgb2YsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29uZmlnU2VydmljZSwgU29ydFN0YXRlLCBUYXNrTGlzdFRhYn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UGVybWlzc2lvblNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2FjY2Vzcy1jb250cm9sJztcbmltcG9ydCB7Q0FOX1ZJRVdfVEFTS19QRVJNSVNTSU9OLCBUQVNLX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFfSBmcm9tICcuLi90YXNrLXBlcm1pc3Npb25zJztcblxubW9tZW50LmxvY2FsZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ0tleScpIHx8ICcnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby10YXNrLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFzay1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFzay1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgndGFza0RldGFpbCcpIHRhc2tEZXRhaWw6IFRhc2tEZXRhaWxNb2RhbENvbXBvbmVudDtcbiAgcHVibGljIHRhc2tzID0ge1xuICAgIG1pbmU6IG5ldyBUYXNrTGlzdCgpLFxuICAgIG9wZW46IG5ldyBUYXNrTGlzdCgpLFxuICAgIGFsbDogbmV3IFRhc2tMaXN0KCksXG4gIH07XG4gIHB1YmxpYyB2aXNpYmxlVGFiczogQXJyYXk8VGFza0xpc3RUYWI+IHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBjdXJyZW50VGFza1R5cGUgPSAnbWluZSc7XG4gIHB1YmxpYyBsaXN0VGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgbGlzdERlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHNvcnRTdGF0ZTogU29ydFN0YXRlIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nVGFza3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZVRhYiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwcml2YXRlIF90cmFuc2xhdGlvblN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTkdYTG9nZ2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXNrU2VydmljZTogVGFza1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudmlzaWJsZVRhYnMgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnPy52aXNpYmxlVGFza0xpc3RUYWJzIHx8IG51bGw7XG4gICAgaWYgKHRoaXMudmlzaWJsZVRhYnMpIHtcbiAgICAgIHRoaXMuY3VycmVudFRhc2tUeXBlID0gdGhpcy52aXNpYmxlVGFic1swXTtcbiAgICB9XG4gICAgdGhpcy5zZXREZWZhdWx0U29ydGluZygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VUcmFuc2xhdGlvblN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIHBhZ2luYXRpb25DbGlja2VkKHBhZ2U6IG51bWJlciwgdHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50YXNrc1t0eXBlXS5wYWdlID0gcGFnZSAtIDE7XG4gICAgdGhpcy50YXNrc1t0eXBlXS5wYWdpbmF0aW9uLnBhZ2UgPSBwYWdlO1xuICAgIHRoaXMuZ2V0VGFza3ModHlwZSk7XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGlvblNldChzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tzLm1pbmUucGFnaW5hdGlvbi5zaXplID1cbiAgICAgIHRoaXMudGFza3MuYWxsLnBhZ2luYXRpb24uc2l6ZSA9XG4gICAgICB0aGlzLnRhc2tzLm9wZW4ucGFnaW5hdGlvbi5zaXplID1cbiAgICAgICAgc2l6ZTtcbiAgICB0aGlzLmdldFRhc2tzKHRoaXMuY3VycmVudFRhc2tUeXBlKTtcbiAgfVxuXG4gIHB1YmxpYyB0YWJDaGFuZ2UodGFiOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyUGFnaW5hdGlvbih0aGlzLmN1cnJlbnRUYXNrVHlwZSk7XG4gICAgdGhpcy5nZXRUYXNrcyh0YWIpO1xuICB9XG5cbiAgcHVibGljIHNob3dUYXNrKHRhc2s6IFRhc2spOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3Rhc2tzJywgdGFzay5pZF0pO1xuICB9XG5cbiAgcHVibGljIGdldFRhc2tzKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ1Rhc2tzJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuYWN0aXZlVGFiJC5uZXh0KHR5cGUpO1xuXG4gICAgbGV0IHBhcmFtczogYW55O1xuXG4gICAgdGhpcy5jbG9zZVRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uKCk7XG5cbiAgICB0aGlzLl90cmFuc2xhdGlvblN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShgdGFzay1saXN0LiR7dHlwZX0udGl0bGVgKSxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oYHRhc2stbGlzdC4ke3R5cGV9LmRlc2NyaXB0aW9uYCksXG4gICAgXSkuc3Vic2NyaWJlKChbdGl0bGUsIGRlc2NyaXB0aW9uXSkgPT4ge1xuICAgICAgdGhpcy5saXN0VGl0bGUgPSB0aXRsZTtcbiAgICAgIHRoaXMubGlzdERlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgfSk7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ21pbmUnOlxuICAgICAgICBwYXJhbXMgPSB7XG4gICAgICAgICAgcGFnZTogdGhpcy50YXNrcy5taW5lLnBhZ2UsXG4gICAgICAgICAgc2l6ZTogdGhpcy50YXNrcy5taW5lLnBhZ2luYXRpb24uc2l6ZSxcbiAgICAgICAgICBmaWx0ZXI6ICdtaW5lJyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFza1R5cGUgPSAnbWluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3Blbic6XG4gICAgICAgIHBhcmFtcyA9IHtcbiAgICAgICAgICBwYWdlOiB0aGlzLnRhc2tzLm9wZW4ucGFnZSxcbiAgICAgICAgICBzaXplOiB0aGlzLnRhc2tzLm9wZW4ucGFnaW5hdGlvbi5zaXplLFxuICAgICAgICAgIGZpbHRlcjogJ29wZW4nLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmN1cnJlbnRUYXNrVHlwZSA9ICdvcGVuJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhbGwnOlxuICAgICAgICBwYXJhbXMgPSB7cGFnZTogdGhpcy50YXNrcy5hbGwucGFnZSwgc2l6ZTogdGhpcy50YXNrcy5vcGVuLnBhZ2luYXRpb24uc2l6ZSwgZmlsdGVyOiAnYWxsJ307XG4gICAgICAgIHRoaXMuY3VycmVudFRhc2tUeXBlID0gJ2FsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5sb2dnZXIuZmF0YWwoJ1VucmVhY2hhYmxlIGNhc2UnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zb3J0U3RhdGUpIHtcbiAgICAgIHBhcmFtcy5zb3J0ID0gdGhpcy5nZXRTb3J0U3RyaW5nKHRoaXMuc29ydFN0YXRlKTtcbiAgICB9XG5cbiAgICB0aGlzLnRhc2tTZXJ2aWNlXG4gICAgICAucXVlcnlUYXNrcyhwYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHRhc2tzUmVzdWx0ID0+XG4gICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICBvZih0YXNrc1Jlc3VsdCksXG4gICAgICAgICAgICAuLi50YXNrc1Jlc3VsdC5ib2R5Lm1hcCh0YXNrID0+XG4gICAgICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UucmVxdWVzdFBlcm1pc3Npb24oQ0FOX1ZJRVdfVEFTS19QRVJNSVNTSU9OLCB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFRBU0tfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UudGFzayxcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiB0YXNrLmlkLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBdKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdHMgPT4ge1xuICAgICAgICBjb25zdCB0YXNrc1Jlc3VsdCA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gcmVzdWx0cy5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPT0gMCk7XG5cbiAgICAgICAgdGhpcy50YXNrc1t0eXBlXS5wYWdpbmF0aW9uID0ge1xuICAgICAgICAgIC4uLnRoaXMudGFza3NbdHlwZV0ucGFnaW5hdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uU2l6ZTogdGFza3NSZXN1bHQuaGVhZGVycy5nZXQoJ3gtdG90YWwtY291bnQnKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50YXNrc1t0eXBlXS50YXNrcyA9IHRhc2tzUmVzdWx0LmJvZHk7XG4gICAgICAgIHRoaXMudGFza3NbdHlwZV0udGFza3MubWFwKCh0YXNrLCB0YXNrSW5kZXgpID0+IHtcbiAgICAgICAgICB0YXNrLmNyZWF0ZWQgPSBtb21lbnQodGFzay5jcmVhdGVkKS5mb3JtYXQoJ0REIE1NTSBZWVlZIEhIOm1tJyk7XG4gICAgICAgICAgaWYgKHRhc2suZHVlKSB7XG4gICAgICAgICAgICB0YXNrLmR1ZSA9IG1vbWVudCh0YXNrLmR1ZSkuZm9ybWF0KCdERCBNTU0gWVlZWSBISDptbScpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0YXNrLmlzTG9ja2VkID0gIXBlcm1pc3Npb25zW3Rhc2tJbmRleF07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLnRhc2tTZXJ2aWNlLmdldENvbmZpZ0N1c3RvbVRhc2tMaXN0KCkpIHtcbiAgICAgICAgICB0aGlzLmN1c3RvbVRhc2tMaXN0RmllbGRzKHR5cGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGVmYXVsdFRhc2tMaXN0RmllbGRzKHR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nVGFza3MkLm5leHQoZmFsc2UpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3BlblJlbGF0ZWRDYXNlKGV2ZW50OiBNb3VzZUV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCB0YXNrcyA9IHRoaXMudGFza3NbdGhpcy5jdXJyZW50VGFza1R5cGVdLnRhc2tzO1xuICAgIGNvbnN0IGN1cnJlbnRUYXNrID0gdGFza3MgJiYgdGFza3NbaW5kZXhdO1xuXG4gICAgaWYgKGN1cnJlbnRUYXNrKSB7XG4gICAgICB0aGlzLmRvY3VtZW50U2VydmljZVxuICAgICAgICAuZ2V0RG9jdW1lbnQoY3VycmVudFRhc2suYnVzaW5lc3NLZXkpXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoZG9jdW1lbnQgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcbiAgICAgICAgICAgIGAvZG9zc2llcnMvJHtkb2N1bWVudC5kZWZpbml0aW9uSWQ/Lm5hbWV9L2RvY3VtZW50LyR7Y3VycmVudFRhc2suYnVzaW5lc3NLZXl9L3N1bW1hcnlgLFxuICAgICAgICAgIF0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVmYXVsdFRhc2tMaXN0RmllbGRzKHR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlVHJhbnNsYXRpb25TdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLl90cmFuc2xhdGlvblN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbShgdGFzay1saXN0LmZpZWxkTGFiZWxzLmNyZWF0ZWRgKSxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oYHRhc2stbGlzdC5maWVsZExhYmVscy5uYW1lYCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMudmFsdGltb0Fzc2lnbmVlLmZ1bGxOYW1lYCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMuZHVlYCksXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMuY29udGV4dGApLFxuICAgIF0pLnN1YnNjcmliZSgoW2NyZWF0ZWQsIG5hbWUsIGFzc2lnbmVlLCBkdWUsIGNvbnRleHRdKSA9PiB7XG4gICAgICB0aGlzLnRhc2tzW3R5cGVdLmZpZWxkcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ2NyZWF0ZWQnLFxuICAgICAgICAgIGxhYmVsOiBjcmVhdGVkLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnbmFtZScsXG4gICAgICAgICAgbGFiZWw6IG5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICd2YWx0aW1vQXNzaWduZWUuZnVsbE5hbWUnLFxuICAgICAgICAgIGxhYmVsOiBhc3NpZ25lZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ2R1ZScsXG4gICAgICAgICAgbGFiZWw6IGR1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGtleTogJ2NvbnRleHQnLFxuICAgICAgICAgIGxhYmVsOiBjb250ZXh0LFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjdXN0b21UYXNrTGlzdEZpZWxkcyh0eXBlKTogdm9pZCB7XG4gICAgY29uc3QgY3VzdG9tVGFza0xpc3RGaWVsZHMgPSB0aGlzLnRhc2tTZXJ2aWNlLmdldENvbmZpZ0N1c3RvbVRhc2tMaXN0KCkuZmllbGRzO1xuXG4gICAgdGhpcy5jbG9zZVRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5fdHJhbnNsYXRpb25TdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFxuICAgICAgY3VzdG9tVGFza0xpc3RGaWVsZHMubWFwKGNvbHVtbiA9PlxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKGB0YXNrLWxpc3QuZmllbGRMYWJlbHMuJHtjb2x1bW4udHJhbnNsYXRpb25LZXl9YClcbiAgICAgIClcbiAgICApLnN1YnNjcmliZShsYWJlbHMgPT4ge1xuICAgICAgdGhpcy50YXNrc1t0eXBlXS5maWVsZHMgPSBjdXN0b21UYXNrTGlzdEZpZWxkcy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+ICh7XG4gICAgICAgIGtleTogY29sdW1uLnByb3BlcnR5TmFtZSxcbiAgICAgICAgbGFiZWw6IGxhYmVsc1tpbmRleF0sXG4gICAgICAgIHNvcnRhYmxlOiBjb2x1bW4uc29ydGFibGUsXG4gICAgICAgIC4uLihjb2x1bW4udmlld1R5cGUgJiYge3ZpZXdUeXBlOiBjb2x1bW4udmlld1R5cGV9KSxcbiAgICAgICAgLi4uKGNvbHVtbi5lbnVtICYmIHtlbnVtOiBjb2x1bW4uZW51bX0pLFxuICAgICAgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJvd09wZW5UYXNrQ2xpY2sodGFzayk6IHZvaWQgfCBib29sZWFuIHtcbiAgICBpZiAoIXRhc2suZW5kVGltZSAmJiAhdGFzay5pc0xvY2tlZCkge1xuICAgICAgdGhpcy50YXNrRGV0YWlsLm9wZW5UYXNrRGV0YWlscyh0YXNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXREZWZhdWx0U29ydGluZygpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRTdGF0ZSA9IHRoaXMudGFza1NlcnZpY2UuZ2V0Q29uZmlnQ3VzdG9tVGFza0xpc3QoKT8uZGVmYXVsdFNvcnRlZENvbHVtbiB8fCBudWxsO1xuICB9XG5cbiAgcHVibGljIHNvcnRDaGFuZ2VkKHNvcnRTdGF0ZTogU29ydFN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0U3RhdGUgPSBzb3J0U3RhdGU7XG4gICAgdGhpcy5nZXRUYXNrcyh0aGlzLmN1cnJlbnRUYXNrVHlwZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U29ydFN0cmluZyhzb3J0OiBTb3J0U3RhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzb3J0LnN0YXRlLm5hbWV9LCR7c29ydC5zdGF0ZS5kaXJlY3Rpb259YDtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJQYWdpbmF0aW9uKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGFza3NbdHlwZV0ucGFnZSA9IDA7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlVHJhbnNsYXRpb25TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNsYXRpb25TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdlxuICBjbGFzcz1cIm1haW4tY29udGVudFwiXG4gICpuZ0lmPVwie2xvYWRpbmdUYXNrczogbG9hZGluZ1Rhc2tzJCB8IGFzeW5jLCBhY3RpdmVUYWI6IGFjdGl2ZVRhYiQgfCBhc3luY30gYXMgb2JzXCJcbj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFza3NMaXN0OyBjb250ZXh0OiB7c2hvdzogIW9icy5sb2FkaW5nVGFza3MsIGFjdGl2ZVRhYjogb2JzLmFjdGl2ZVRhYn1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHRhc2tzTGlzdExvYWRpbmc7XG4gICAgICAgIGNvbnRleHQ6IHtzaG93OiBvYnMubG9hZGluZ1Rhc2tzLCBhY3RpdmVUYWI6IG9icy5hY3RpdmVUYWJ9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDx2YWx0aW1vLXRhc2stZGV0YWlsLW1vZGFsXG4gICAgICAjdGFza0RldGFpbFxuICAgICAgKGZvcm1TdWJtaXQpPVwiZ2V0VGFza3MoY3VycmVudFRhc2tUeXBlKVwiXG4gICAgICAoYXNzaWdubWVudE9mVGFza0NoYW5nZWQpPVwiZ2V0VGFza3MoY3VycmVudFRhc2tUeXBlKVwiXG4gICAgPjwvdmFsdGltby10YXNrLWRldGFpbC1tb2RhbD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjb25maWd1cmVkVGFicyBsZXQtYWN0aXZlVGFiPVwiYWN0aXZlVGFiXCI+XG4gIDxjZHMtdGFicyB0eXBlPVwiY29udGFpbmVkXCIgY2xhc3M9XCJ2YWx0aW1vLWNhcmJvbi1saXN0X190YWJzXCI+XG4gICAgPGNkcy10YWJcbiAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgdmlzaWJsZVRhYnNcIlxuICAgICAgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC4nICsgdGFiICsgJy50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2FjdGl2ZV09XCJhY3RpdmVUYWIgPT09IHRhYlwiXG4gICAgICAoc2VsZWN0ZWQpPVwidGFiQ2hhbmdlKHRhYilcIlxuICAgID48L2Nkcy10YWI+XG4gIDwvY2RzLXRhYnM+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Nhc2VMaW5rV2l0aFRhc2tMb2NrIGxldC1kYXRhPVwiZGF0YVwiPlxuICA8YVxuICAgIGNsYXNzPVwiZmxvYXQtbGVmdFwiXG4gICAgY2RzTGlua1xuICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgIChjbGljayk9XCJvcGVuUmVsYXRlZENhc2UoJGV2ZW50LCBkYXRhLmluZGV4KVwiXG4gID5cbiAgICB7eyAndGFzay1saXN0LmdvVG9DYXNlJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2E+XG4gIDxkaXYgKm5nSWY9XCJ0YXNrc1tjdXJyZW50VGFza1R5cGVdLnRhc2tzW2RhdGEuaW5kZXhdLmlzTG9ja2VkXCI+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZmxvYXQtcmlnaHQgYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1zZWNvbmRhcnkgYmctZ3JleVwiXG4gICAgICBuZ2JUb29sdGlwPVwie3sgJ3Rhc2stbGlzdC50YXNrTG9ja2VkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJpY29uIG1kaSBtZGktbG9ja1wiPjwvaT5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YXNrc0xpc3QgbGV0LXNob3c9XCJzaG93XCIgbGV0LWFjdGl2ZVRhYj1cImFjdGl2ZVRhYlwiPlxuICA8dmFsdGltby1jYXJib24tbGlzdFxuICAgIFtuZ0NsYXNzXT1cInsnaGlkZS10YXNrcy1saXN0JzogIXNob3d9XCJcbiAgICBbZmllbGRzXT1cInRhc2tzW2N1cnJlbnRUYXNrVHlwZV0uZmllbGRzXCJcbiAgICBbaGVhZGVyXT1cImZhbHNlXCJcbiAgICBbaXRlbXNdPVwidGFza3NbY3VycmVudFRhc2tUeXBlXS50YXNrc1wiXG4gICAgW2xhc3RDb2x1bW5UZW1wbGF0ZV09XCJjYXNlTGlua1dpdGhUYXNrTG9ja1wiXG4gICAgW3BhZ2luYXRpb25dPVwidGFza3NbY3VycmVudFRhc2tUeXBlXS5wYWdpbmF0aW9uXCJcbiAgICBwYWdpbmF0aW9uSWRlbnRpZmllcj1cInRhc2tMaXN0XCJcbiAgICAocGFnaW5hdGlvbkNsaWNrZWQpPVwicGFnaW5hdGlvbkNsaWNrZWQoJGV2ZW50LCBjdXJyZW50VGFza1R5cGUpXCJcbiAgICAocGFnaW5hdGlvblNldCk9XCJwYWdpbmF0aW9uU2V0KCRldmVudClcIlxuICAgIChyb3dDbGlja2VkKT1cInJvd09wZW5UYXNrQ2xpY2soJGV2ZW50KVwiXG4gICAgKHNvcnRDaGFuZ2VkKT1cInNvcnRDaGFuZ2VkKCRldmVudClcIlxuICA+XG4gICAgPGRpdiB0YWJzPlxuICAgICAgPGNkcy10YWJzXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZVRhYnMgPT09IG51bGw7IGVsc2UgY29uZmlndXJlZFRhYnM7IGNvbnRleHQ6IHthY3RpdmVUYWI6IGFjdGl2ZVRhYn1cIlxuICAgICAgICB0eXBlPVwiY29udGFpbmVkXCJcbiAgICAgICAgY2xhc3M9XCJ2YWx0aW1vLWNhcmJvbi1saXN0X190YWJzXCJcbiAgICAgID5cbiAgICAgICAgPGNkcy10YWJcbiAgICAgICAgICBbaGVhZGluZ109XCIndGFzay1saXN0Lm1pbmUudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoc2VsZWN0ZWQpPVwidGFiQ2hhbmdlKCdtaW5lJylcIlxuICAgICAgICAgIFthY3RpdmVdPVwiYWN0aXZlVGFiID09PSAnbWluZSdcIlxuICAgICAgICA+XG4gICAgICAgIDwvY2RzLXRhYj5cblxuICAgICAgICA8Y2RzLXRhYlxuICAgICAgICAgIFtoZWFkaW5nXT1cIid0YXNrLWxpc3Qub3Blbi50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIChzZWxlY3RlZCk9XCJ0YWJDaGFuZ2UoJ29wZW4nKVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJhY3RpdmVUYWIgPT09ICdvcGVuJ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9jZHMtdGFiPlxuXG4gICAgICAgIDxjZHMtdGFiXG4gICAgICAgICAgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC5hbGwudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoc2VsZWN0ZWQpPVwidGFiQ2hhbmdlKCdhbGwnKVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJhY3RpdmVUYWIgPT09ICdhbGwnXCJcbiAgICAgICAgPlxuICAgICAgICA8L2Nkcy10YWI+XG4gICAgICA8L2Nkcy10YWJzPlxuICAgIDwvZGl2PlxuXG4gICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgW2Rlc2NyaXB0aW9uXT1cIid0YXNrLWxpc3QuJyArIGN1cnJlbnRUYXNrVHlwZSArICcubm9SZXN1bHRzRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0aXRsZV09XCIndGFzay1saXN0LicgKyBjdXJyZW50VGFza1R5cGUgKyAnLm5vUmVzdWx0c1RpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgIDwvdmFsdGltby1uby1yZXN1bHRzPlxuICA8L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Rhc2tzTGlzdExvYWRpbmcgbGV0LXNob3c9XCJzaG93XCIgbGV0LWFjdGl2ZVRhYj1cImFjdGl2ZVRhYlwiPlxuICA8dmFsdGltby1jYXJib24tbGlzdCBbbmdDbGFzc109XCJ7J2hpZGUtdGFza3MtbGlzdCc6ICFzaG93fVwiIFtsb2FkaW5nXT1cInRydWVcIj5cbiAgICA8ZGl2IHRhYnM+XG4gICAgICA8Y2RzLXRhYnMgKm5nSWY9XCJ2aXNpYmxlVGFicyA9PT0gbnVsbFwiIHR5cGU9XCJjb250YWluZWRcIiBjbGFzcz1cInZhbHRpbW8tY2FyYm9uLWxpc3RfX3RhYnNcIj5cbiAgICAgICAgPGNkcy10YWIgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC5taW5lLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFthY3RpdmVdPVwiYWN0aXZlVGFiID09PSAnbWluZSdcIj5cbiAgICAgICAgPC9jZHMtdGFiPlxuXG4gICAgICAgIDxjZHMtdGFiIFtoZWFkaW5nXT1cIid0YXNrLWxpc3Qub3Blbi50aXRsZScgfCB0cmFuc2xhdGVcIiBbYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gJ29wZW4nXCI+XG4gICAgICAgIDwvY2RzLXRhYj5cblxuICAgICAgICA8Y2RzLXRhYiBbaGVhZGluZ109XCIndGFzay1saXN0LmFsbC50aXRsZScgfCB0cmFuc2xhdGVcIiBbYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gJ2FsbCdcIj5cbiAgICAgICAgPC9jZHMtdGFiPlxuICAgICAgPC9jZHMtdGFicz5cblxuICAgICAgPGNkcy10YWJzIHR5cGU9XCJjb250YWluZWRcIiBjbGFzcz1cInZhbHRpbW8tY2FyYm9uLWxpc3RfX3RhYnNcIiAqbmdJZj1cInZpc2libGVUYWJzXCI+XG4gICAgICAgIDxjZHMtdGFiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB2aXNpYmxlVGFic1wiXG4gICAgICAgICAgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC4nICsgdGFiICsgJy50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFthY3RpdmVdPVwiYWN0aXZlVGFiID09PSB0YWJcIlxuICAgICAgICA+PC9jZHMtdGFiPlxuICAgICAgPC9jZHMtdGFicz5cbiAgICA8L2Rpdj5cbiAgPC92YWx0aW1vLWNhcmJvbi1saXN0PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
var PERMISSION_ACTION;
|
|
17
|
+
(function (PERMISSION_ACTION) {
|
|
18
|
+
PERMISSION_ACTION["assign"] = "assign";
|
|
19
|
+
PERMISSION_ACTION["view"] = "view";
|
|
20
|
+
})(PERMISSION_ACTION || (PERMISSION_ACTION = {}));
|
|
21
|
+
var TASK_DETAIL_PERMISSION_RESOURCE;
|
|
22
|
+
(function (TASK_DETAIL_PERMISSION_RESOURCE) {
|
|
23
|
+
TASK_DETAIL_PERMISSION_RESOURCE["task"] = "com.ritense.valtimo.camunda.domain.CamundaTask";
|
|
24
|
+
})(TASK_DETAIL_PERMISSION_RESOURCE || (TASK_DETAIL_PERMISSION_RESOURCE = {}));
|
|
25
|
+
const CAN_ASSIGN_TASK_PERMISSION = {
|
|
26
|
+
action: PERMISSION_ACTION.assign,
|
|
27
|
+
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
28
|
+
};
|
|
29
|
+
const CAN_VIEW_TASK_PERMISSION = {
|
|
30
|
+
action: PERMISSION_ACTION.view,
|
|
31
|
+
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
32
|
+
};
|
|
33
|
+
export { CAN_ASSIGN_TASK_PERMISSION, CAN_VIEW_TASK_PERMISSION, TASK_DETAIL_PERMISSION_RESOURCE };
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1wZXJtaXNzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL3Rhc2stcGVybWlzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFJSCxJQUFLLGlCQUdKO0FBSEQsV0FBSyxpQkFBaUI7SUFDcEIsc0NBQWlCLENBQUE7SUFDakIsa0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFISSxpQkFBaUIsS0FBakIsaUJBQWlCLFFBR3JCO0FBRUQsSUFBSywrQkFFSjtBQUZELFdBQUssK0JBQStCO0lBQ2xDLDBGQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFGSSwrQkFBK0IsS0FBL0IsK0JBQStCLFFBRW5DO0FBRUQsTUFBTSwwQkFBMEIsR0FBc0I7SUFDcEQsTUFBTSxFQUFFLGlCQUFpQixDQUFDLE1BQU07SUFDaEMsUUFBUSxFQUFFLCtCQUErQixDQUFDLElBQUk7Q0FDL0MsQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQXNCO0lBQ2xELE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO0lBQzlCLFFBQVEsRUFBRSwrQkFBK0IsQ0FBQyxJQUFJO0NBQy9DLENBQUM7QUFFRixPQUFPLEVBQUMsMEJBQTBCLEVBQUUsd0JBQXdCLEVBQUUsK0JBQStCLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7UGVybWlzc2lvblJlcXVlc3R9IGZyb20gJ0B2YWx0aW1vL2FjY2Vzcy1jb250cm9sJztcblxuZW51bSBQRVJNSVNTSU9OX0FDVElPTiB7XG4gIGFzc2lnbiA9ICdhc3NpZ24nLFxuICB2aWV3ID0gJ3ZpZXcnLFxufVxuXG5lbnVtIFRBU0tfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0Uge1xuICB0YXNrID0gJ2NvbS5yaXRlbnNlLnZhbHRpbW8uY2FtdW5kYS5kb21haW4uQ2FtdW5kYVRhc2snLFxufVxuXG5jb25zdCBDQU5fQVNTSUdOX1RBU0tfUEVSTUlTU0lPTjogUGVybWlzc2lvblJlcXVlc3QgPSB7XG4gIGFjdGlvbjogUEVSTUlTU0lPTl9BQ1RJT04uYXNzaWduLFxuICByZXNvdXJjZTogVEFTS19ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS50YXNrLFxufTtcblxuY29uc3QgQ0FOX1ZJRVdfVEFTS19QRVJNSVNTSU9OOiBQZXJtaXNzaW9uUmVxdWVzdCA9IHtcbiAgYWN0aW9uOiBQRVJNSVNTSU9OX0FDVElPTi52aWV3LFxuICByZXNvdXJjZTogVEFTS19ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS50YXNrLFxufTtcblxuZXhwb3J0IHtDQU5fQVNTSUdOX1RBU0tfUEVSTUlTU0lPTiwgQ0FOX1ZJRVdfVEFTS19QRVJNSVNTSU9OLCBUQVNLX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFfTtcbiJdfQ==
|
|
@@ -30,11 +30,11 @@ const routes = [
|
|
|
30
30
|
},
|
|
31
31
|
];
|
|
32
32
|
export class TaskRoutingModule {
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
34
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, i1.RouterModule], exports: [RouterModule] }); }
|
|
35
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
33
36
|
}
|
|
34
|
-
|
|
35
|
-
TaskRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, i1.RouterModule], exports: [RouterModule] });
|
|
36
|
-
TaskRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TaskRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] });
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TaskRoutingModule, decorators: [{
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskRoutingModule, decorators: [{
|
|
38
38
|
type: NgModule,
|
|
39
39
|
args: [{
|
|
40
40
|
declarations: [],
|
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
42
42
|
exports: [RouterModule],
|
|
43
43
|
}]
|
|
44
44
|
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL3Rhc2stcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7QUFFMUMsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsT0FBTztRQUNiLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBQztLQUMzQztDQUNGLENBQUM7QUFPRixNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixZQUhsQixZQUFZLDhCQUNaLFlBQVk7Z0hBRVgsaUJBQWlCLFlBSGxCLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUMzQyxZQUFZOzs0RkFFWCxpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZSwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0F1dGhHdWFyZFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcbmltcG9ydCB7VGFza0xpc3RDb21wb25lbnR9IGZyb20gJy4vdGFzay1saXN0L3Rhc2stbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtST0xFX1VTRVJ9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJ3Rhc2tzJyxcbiAgICBjb21wb25lbnQ6IFRhc2tMaXN0Q29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkU2VydmljZV0sXG4gICAgZGF0YToge3RpdGxlOiAnVGFza3MnLCByb2xlczogW1JPTEVfVVNFUl19LFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFza1JvdXRpbmdNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,119 @@
|
|
|
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 { CommonModule } from '@angular/common';
|
|
17
|
+
import { HttpClient } from '@angular/common/http';
|
|
18
|
+
import { NgModule } from '@angular/core';
|
|
19
|
+
import { FormsModule } from '@angular/forms';
|
|
20
|
+
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
21
|
+
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
22
|
+
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
|
23
|
+
import { CamundaFormModule, CarbonListModule, FormIoModule, ModalModule, PageHeaderModule, SearchableDropdownSelectModule, SpinnerModule, WidgetModule, } from '@valtimo/components';
|
|
24
|
+
import { HttpLoaderFactory } from '@valtimo/config';
|
|
25
|
+
import { FormLinkModule } from '@valtimo/form-link';
|
|
26
|
+
import { ContentSwitcherModule, LinkModule, TabsModule } from 'carbon-components-angular';
|
|
27
|
+
import { ToastrModule } from 'ngx-toastr';
|
|
28
|
+
import { AssignUserToTaskComponent } from './assign-user-to-task/assign-user-to-task.component';
|
|
29
|
+
import { TaskDetailModalComponent } from './task-detail-modal/task-detail-modal.component';
|
|
30
|
+
import { TaskListComponent } from './task-list/task-list.component';
|
|
31
|
+
import { TaskRoutingModule } from './task-routing.module';
|
|
32
|
+
import * as i0 from "@angular/core";
|
|
33
|
+
import * as i1 from "ngx-toastr";
|
|
34
|
+
import * as i2 from "@ngx-translate/core";
|
|
35
|
+
export class TaskModule {
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
37
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TaskModule, declarations: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent], imports: [CommonModule,
|
|
38
|
+
TaskRoutingModule,
|
|
39
|
+
CarbonListModule,
|
|
40
|
+
PageHeaderModule,
|
|
41
|
+
WidgetModule,
|
|
42
|
+
SpinnerModule,
|
|
43
|
+
SearchableDropdownSelectModule,
|
|
44
|
+
CamundaFormModule,
|
|
45
|
+
BrowserAnimationsModule,
|
|
46
|
+
FormsModule, i1.ToastrModule, i2.TranslateModule, NgbModule,
|
|
47
|
+
FormIoModule,
|
|
48
|
+
ModalModule,
|
|
49
|
+
LinkModule,
|
|
50
|
+
FormLinkModule,
|
|
51
|
+
TabsModule,
|
|
52
|
+
ContentSwitcherModule], exports: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent] }); }
|
|
53
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskModule, imports: [CommonModule,
|
|
54
|
+
TaskRoutingModule,
|
|
55
|
+
CarbonListModule,
|
|
56
|
+
PageHeaderModule,
|
|
57
|
+
WidgetModule,
|
|
58
|
+
SpinnerModule,
|
|
59
|
+
SearchableDropdownSelectModule,
|
|
60
|
+
CamundaFormModule,
|
|
61
|
+
BrowserAnimationsModule,
|
|
62
|
+
FormsModule,
|
|
63
|
+
ToastrModule.forRoot({
|
|
64
|
+
positionClass: 'toast-bottom-full-width',
|
|
65
|
+
preventDuplicates: true,
|
|
66
|
+
}),
|
|
67
|
+
TranslateModule.forRoot({
|
|
68
|
+
loader: {
|
|
69
|
+
provide: TranslateLoader,
|
|
70
|
+
useFactory: HttpLoaderFactory,
|
|
71
|
+
deps: [HttpClient],
|
|
72
|
+
},
|
|
73
|
+
}),
|
|
74
|
+
NgbModule,
|
|
75
|
+
FormIoModule,
|
|
76
|
+
ModalModule,
|
|
77
|
+
LinkModule,
|
|
78
|
+
FormLinkModule,
|
|
79
|
+
TabsModule,
|
|
80
|
+
ContentSwitcherModule] }); }
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TaskModule, decorators: [{
|
|
83
|
+
type: NgModule,
|
|
84
|
+
args: [{
|
|
85
|
+
declarations: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],
|
|
86
|
+
imports: [
|
|
87
|
+
CommonModule,
|
|
88
|
+
TaskRoutingModule,
|
|
89
|
+
CarbonListModule,
|
|
90
|
+
PageHeaderModule,
|
|
91
|
+
WidgetModule,
|
|
92
|
+
SpinnerModule,
|
|
93
|
+
SearchableDropdownSelectModule,
|
|
94
|
+
CamundaFormModule,
|
|
95
|
+
BrowserAnimationsModule,
|
|
96
|
+
FormsModule,
|
|
97
|
+
ToastrModule.forRoot({
|
|
98
|
+
positionClass: 'toast-bottom-full-width',
|
|
99
|
+
preventDuplicates: true,
|
|
100
|
+
}),
|
|
101
|
+
TranslateModule.forRoot({
|
|
102
|
+
loader: {
|
|
103
|
+
provide: TranslateLoader,
|
|
104
|
+
useFactory: HttpLoaderFactory,
|
|
105
|
+
deps: [HttpClient],
|
|
106
|
+
},
|
|
107
|
+
}),
|
|
108
|
+
NgbModule,
|
|
109
|
+
FormIoModule,
|
|
110
|
+
ModalModule,
|
|
111
|
+
LinkModule,
|
|
112
|
+
FormLinkModule,
|
|
113
|
+
TabsModule,
|
|
114
|
+
ContentSwitcherModule,
|
|
115
|
+
],
|
|
116
|
+
exports: [TaskListComponent, TaskDetailModalComponent, AssignUserToTaskComponent],
|
|
117
|
+
}]
|
|
118
|
+
}] });
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi90YXNrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxlQUFlLEVBQUUsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLGFBQWEsRUFDYixZQUFZLEdBQ2IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLHFCQUFxQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7O0FBb0N4RCxNQUFNLE9BQU8sVUFBVTsrR0FBVixVQUFVO2dIQUFWLFVBQVUsaUJBakNOLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixhQUVuRixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGFBQWE7WUFDYiw4QkFBOEI7WUFDOUIsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixXQUFXLHVDQVlYLFNBQVM7WUFDVCxZQUFZO1lBQ1osV0FBVztZQUNYLFVBQVU7WUFDVixjQUFjO1lBQ2QsVUFBVTtZQUNWLHFCQUFxQixhQUViLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QjtnSEFFckUsVUFBVSxZQS9CbkIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixhQUFhO1lBQ2IsOEJBQThCO1lBQzlCLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFDdkIsV0FBVztZQUNYLFlBQVksQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLGFBQWEsRUFBRSx5QkFBeUI7Z0JBQ3hDLGlCQUFpQixFQUFFLElBQUk7YUFDeEIsQ0FBQztZQUNGLGVBQWUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsZUFBZTtvQkFDeEIsVUFBVSxFQUFFLGlCQUFpQjtvQkFDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO2lCQUNuQjthQUNGLENBQUM7WUFDRixTQUFTO1lBQ1QsWUFBWTtZQUNaLFdBQVc7WUFDWCxVQUFVO1lBQ1YsY0FBYztZQUNkLFVBQVU7WUFDVixxQkFBcUI7OzRGQUlaLFVBQVU7a0JBbEN0QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixDQUFDO29CQUN0RixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsOEJBQThCO3dCQUM5QixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsV0FBVzt3QkFDWCxZQUFZLENBQUMsT0FBTyxDQUFDOzRCQUNuQixhQUFhLEVBQUUseUJBQXlCOzRCQUN4QyxpQkFBaUIsRUFBRSxJQUFJO3lCQUN4QixDQUFDO3dCQUNGLGVBQWUsQ0FBQyxPQUFPLENBQUM7NEJBQ3RCLE1BQU0sRUFBRTtnQ0FDTixPQUFPLEVBQUUsZUFBZTtnQ0FDeEIsVUFBVSxFQUFFLGlCQUFpQjtnQ0FDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDOzZCQUNuQjt5QkFDRixDQUFDO3dCQUNGLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLENBQUM7aUJBQ2xGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QnJvd3NlckFuaW1hdGlvbnNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge05nYk1vZHVsZX0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHtUcmFuc2xhdGVMb2FkZXIsIFRyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBDYW11bmRhRm9ybU1vZHVsZSxcbiAgQ2FyYm9uTGlzdE1vZHVsZSxcbiAgRm9ybUlvTW9kdWxlLFxuICBNb2RhbE1vZHVsZSxcbiAgUGFnZUhlYWRlck1vZHVsZSxcbiAgU2VhcmNoYWJsZURyb3Bkb3duU2VsZWN0TW9kdWxlLFxuICBTcGlubmVyTW9kdWxlLFxuICBXaWRnZXRNb2R1bGUsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtIdHRwTG9hZGVyRmFjdG9yeX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7Rm9ybUxpbmtNb2R1bGV9IGZyb20gJ0B2YWx0aW1vL2Zvcm0tbGluayc7XG5pbXBvcnQge0NvbnRlbnRTd2l0Y2hlck1vZHVsZSwgTGlua01vZHVsZSwgVGFic01vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RvYXN0ck1vZHVsZX0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQge0Fzc2lnblVzZXJUb1Rhc2tDb21wb25lbnR9IGZyb20gJy4vYXNzaWduLXVzZXItdG8tdGFzay9hc3NpZ24tdXNlci10by10YXNrLmNvbXBvbmVudCc7XG5pbXBvcnQge1Rhc2tEZXRhaWxNb2RhbENvbXBvbmVudH0gZnJvbSAnLi90YXNrLWRldGFpbC1tb2RhbC90YXNrLWRldGFpbC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHtUYXNrTGlzdENvbXBvbmVudH0gZnJvbSAnLi90YXNrLWxpc3QvdGFzay1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1Rhc2tSb3V0aW5nTW9kdWxlfSBmcm9tICcuL3Rhc2stcm91dGluZy5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUYXNrTGlzdENvbXBvbmVudCwgVGFza0RldGFpbE1vZGFsQ29tcG9uZW50LCBBc3NpZ25Vc2VyVG9UYXNrQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUYXNrUm91dGluZ01vZHVsZSxcbiAgICBDYXJib25MaXN0TW9kdWxlLFxuICAgIFBhZ2VIZWFkZXJNb2R1bGUsXG4gICAgV2lkZ2V0TW9kdWxlLFxuICAgIFNwaW5uZXJNb2R1bGUsXG4gICAgU2VhcmNoYWJsZURyb3Bkb3duU2VsZWN0TW9kdWxlLFxuICAgIENhbXVuZGFGb3JtTW9kdWxlLFxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFRvYXN0ck1vZHVsZS5mb3JSb290KHtcbiAgICAgIHBvc2l0aW9uQ2xhc3M6ICd0b2FzdC1ib3R0b20tZnVsbC13aWR0aCcsXG4gICAgICBwcmV2ZW50RHVwbGljYXRlczogdHJ1ZSxcbiAgICB9KSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yUm9vdCh7XG4gICAgICBsb2FkZXI6IHtcbiAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICB1c2VGYWN0b3J5OiBIdHRwTG9hZGVyRmFjdG9yeSxcbiAgICAgICAgZGVwczogW0h0dHBDbGllbnRdLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBOZ2JNb2R1bGUsXG4gICAgRm9ybUlvTW9kdWxlLFxuICAgIE1vZGFsTW9kdWxlLFxuICAgIExpbmtNb2R1bGUsXG4gICAgRm9ybUxpbmtNb2R1bGUsXG4gICAgVGFic01vZHVsZSxcbiAgICBDb250ZW50U3dpdGNoZXJNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtUYXNrTGlzdENvbXBvbmVudCwgVGFza0RldGFpbE1vZGFsQ29tcG9uZW50LCBBc3NpZ25Vc2VyVG9UYXNrQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGFza01vZHVsZSB7fVxuIl19
|