@valtimo/task 11.3.2 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) 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 +202 -0
  3. package/esm2022/lib/components/task-list/task-list.component.mjs +287 -0
  4. package/esm2022/lib/models/index.mjs +2 -2
  5. package/esm2022/lib/models/task-definition.model.mjs +2 -2
  6. package/esm2022/lib/models/task-list.model.mjs +8 -14
  7. package/esm2022/lib/models/task.model.mjs +2 -2
  8. package/esm2022/lib/services/index.mjs +20 -0
  9. package/esm2022/lib/services/task-list-column.service.mjs +192 -0
  10. package/esm2022/lib/services/task-list-pagination.service.mjs +74 -0
  11. package/esm2022/lib/services/task-list-sort.service.mjs +90 -0
  12. package/esm2022/lib/services/task-list.service.mjs +60 -0
  13. package/esm2022/lib/services/task.service.mjs +94 -0
  14. package/esm2022/lib/task-permissions.mjs +2 -2
  15. package/esm2022/lib/task-routing.module.mjs +7 -7
  16. package/esm2022/lib/task.module.mjs +23 -17
  17. package/esm2022/public_api.mjs +6 -6
  18. package/fesm2022/valtimo-task.mjs +749 -316
  19. package/fesm2022/valtimo-task.mjs.map +1 -1
  20. package/lib/{assign-user-to-task → components/assign-user-to-task}/assign-user-to-task.component.d.ts +7 -7
  21. package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts.map +1 -0
  22. package/lib/{task-detail-modal → components/task-detail-modal}/task-detail-modal.component.d.ts +3 -4
  23. package/lib/components/task-detail-modal/task-detail-modal.component.d.ts.map +1 -0
  24. package/lib/components/task-list/task-list.component.d.ts +65 -0
  25. package/lib/components/task-list/task-list.component.d.ts.map +1 -0
  26. package/lib/models/task-list.model.d.ts +45 -8
  27. package/lib/models/task-list.model.d.ts.map +1 -1
  28. package/lib/models/task.model.d.ts +22 -1
  29. package/lib/models/task.model.d.ts.map +1 -1
  30. package/lib/services/index.d.ts +5 -0
  31. package/lib/services/index.d.ts.map +1 -0
  32. package/lib/services/task-list-column.service.d.ts +27 -0
  33. package/lib/services/task-list-column.service.d.ts.map +1 -0
  34. package/lib/services/task-list-pagination.service.d.ts +20 -0
  35. package/lib/services/task-list-pagination.service.d.ts.map +1 -0
  36. package/lib/services/task-list-sort.service.d.ts +23 -0
  37. package/lib/services/task-list-sort.service.d.ts.map +1 -0
  38. package/lib/services/task-list.service.d.ts +23 -0
  39. package/lib/services/task-list.service.d.ts.map +1 -0
  40. package/lib/{task.service.d.ts → services/task.service.d.ts} +9 -8
  41. package/lib/services/task.service.d.ts.map +1 -0
  42. package/lib/task.module.d.ts +5 -5
  43. package/lib/task.module.d.ts.map +1 -1
  44. package/package.json +7 -6
  45. package/public_api.d.ts +4 -4
  46. package/public_api.d.ts.map +1 -1
  47. package/esm2022/lib/assign-user-to-task/assign-user-to-task.component.mjs +0 -122
  48. package/esm2022/lib/task-detail-modal/task-detail-modal.component.mjs +0 -219
  49. package/esm2022/lib/task-list/task-list.component.mjs +0 -259
  50. package/esm2022/lib/task.service.mjs +0 -72
  51. package/lib/assign-user-to-task/assign-user-to-task.component.d.ts.map +0 -1
  52. package/lib/task-detail-modal/task-detail-modal.component.d.ts.map +0 -1
  53. package/lib/task-list/task-list.component.d.ts +0 -54
  54. package/lib/task-list/task-list.component.d.ts.map +0 -1
  55. package/lib/task.service.d.ts.map +0 -1
@@ -0,0 +1,287 @@
1
+ /*
2
+ * Copyright 2015-2024 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 { ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation, } from '@angular/core';
17
+ import moment from 'moment';
18
+ import { BehaviorSubject, combineLatest, of, switchMap, tap } from 'rxjs';
19
+ import { TaskListTab } from '@valtimo/config';
20
+ import { distinctUntilChanged, filter, map, take } from 'rxjs/operators';
21
+ import { CAN_VIEW_CASE_PERMISSION, CAN_VIEW_TASK_PERMISSION, TASK_DETAIL_PERMISSION_RESOURCE, } from '../../task-permissions';
22
+ import { TaskListColumnService, TaskListPaginationService, TaskListService } from '../../services';
23
+ import { isEqual } from 'lodash';
24
+ import { TaskListSortService } from '../../services/task-list-sort.service';
25
+ import * as i0 from "@angular/core";
26
+ import * as i1 from "@valtimo/config";
27
+ import * as i2 from "@valtimo/document";
28
+ import * as i3 from "@valtimo/access-control";
29
+ import * as i4 from "@angular/router";
30
+ import * as i5 from "../../services/task.service";
31
+ import * as i6 from "../../services";
32
+ import * as i7 from "@ngx-translate/core";
33
+ import * as i8 from "../../services/task-list-sort.service";
34
+ import * as i9 from "@angular/common";
35
+ import * as i10 from "@valtimo/components";
36
+ import * as i11 from "@ng-bootstrap/ng-bootstrap";
37
+ import * as i12 from "carbon-components-angular";
38
+ import * as i13 from "../task-detail-modal/task-detail-modal.component";
39
+ moment.locale(localStorage.getItem('langKey') || '');
40
+ export class TaskListComponent {
41
+ constructor(configService, documentService, permissionService, router, taskService, taskListService, translateService, taskListColumnService, taskListPaginationService, taskListSortService) {
42
+ this.configService = configService;
43
+ this.documentService = documentService;
44
+ this.permissionService = permissionService;
45
+ this.router = router;
46
+ this.taskService = taskService;
47
+ this.taskListService = taskListService;
48
+ this.translateService = translateService;
49
+ this.taskListColumnService = taskListColumnService;
50
+ this.taskListPaginationService = taskListPaginationService;
51
+ this.taskListSortService = taskListSortService;
52
+ this.selectedTaskType$ = this.taskListService.selectedTaskType$;
53
+ this.fields$ = this.taskListColumnService.fields$;
54
+ this.loadingTasks$ = new BehaviorSubject(true);
55
+ this.visibleTabs$ = new BehaviorSubject(null);
56
+ this._enableLoadingAnimation$ = new BehaviorSubject(true);
57
+ this.cachedTasks$ = new BehaviorSubject(null);
58
+ this.paginationForCurrentTaskTypeForList$ = this.taskListPaginationService.paginationForCurrentTaskTypeForList$;
59
+ this.sortStateForCurrentTaskType$ = this.taskListSortService.sortStateForCurrentTaskType$;
60
+ this._reload$ = new BehaviorSubject(true);
61
+ this.tasks$ = combineLatest([
62
+ this.taskListService.loadingStateForCaseDefinition$,
63
+ this.selectedTaskType$,
64
+ this.taskListPaginationService.paginationForCurrentTaskType$,
65
+ this.taskListSortService.sortStringForCurrentTaskType$,
66
+ this.taskListService.caseDefinitionName$,
67
+ this._enableLoadingAnimation$,
68
+ this._reload$,
69
+ ]).pipe(filter(([loadingStateForCaseDefinition]) => loadingStateForCaseDefinition === false), map(([_, selectedTaskType, paginationForSelectedTaskType, sortStringForSelectedTaskType, caseDefinitionName, enableLoadingAnimation, reload,]) => this.getTaskListParams(paginationForSelectedTaskType, sortStringForSelectedTaskType, selectedTaskType, caseDefinitionName, enableLoadingAnimation, reload)), distinctUntilChanged((previous, current) => isEqual(previous.params, current.params)), tap(({ enableLoadingAnimation }) => {
70
+ if (enableLoadingAnimation)
71
+ this.loadingTasks$.next(true);
72
+ }), switchMap(({ params }) => combineLatest([
73
+ this.taskService.queryTasksPageV3(params.selectedTaskType, params.params, params.caseDefinitionName),
74
+ of(!!params.caseDefinitionName),
75
+ ])), switchMap(([tasksResult, isSpecified]) => this.getTaskListPermissionsRequest(tasksResult, isSpecified)), map(([isSpecified, taskResult, canViewTaskPermissions, canViewCasePermissions]) => {
76
+ this.updateTaskListPaginationAfterResponse(Number(taskResult.totalElements));
77
+ return this.mapTasksForList(isSpecified, taskResult, canViewTaskPermissions, canViewCasePermissions);
78
+ }), tap(tasks => {
79
+ this.cachedTasks$.next(tasks);
80
+ this.loadingTasks$.next(false);
81
+ this.disableLoadingAnimation();
82
+ }));
83
+ this.loadingCaseListItems$ = new BehaviorSubject(true);
84
+ this._selectedCaseDefinitionId$ = new BehaviorSubject(this.taskListService.ALL_CASES_ID);
85
+ this.caseListItems$ = combineLatest([
86
+ this.documentService.getAllDefinitions(),
87
+ this._selectedCaseDefinitionId$,
88
+ this.translateService.stream('key'),
89
+ ]).pipe(map(([documentDefinitionRes, selectedCaseDefinitionId]) => [
90
+ {
91
+ content: this.translateService.instant('task-list.allCases'),
92
+ id: this.taskListService.ALL_CASES_ID,
93
+ selected: selectedCaseDefinitionId === this.taskListService.ALL_CASES_ID,
94
+ },
95
+ ...documentDefinitionRes.content.map(documentDefinition => ({
96
+ id: documentDefinition.id.name,
97
+ content: documentDefinition?.schema?.title,
98
+ selected: documentDefinition.id.name === selectedCaseDefinitionId,
99
+ })),
100
+ ]), tap(() => this.loadingCaseListItems$.next(false)));
101
+ this.taskListColumnsForCase$ = this.taskListColumnService.taskListColumnsForCase$;
102
+ this._DEFAULT_TASK_LIST_TABS = [
103
+ TaskListTab.MINE,
104
+ TaskListTab.OPEN,
105
+ TaskListTab.ALL,
106
+ ];
107
+ }
108
+ ngOnInit() {
109
+ this.taskListColumnService.resetTaskListFields();
110
+ this.setVisibleTabs();
111
+ }
112
+ paginationClicked(page, type) {
113
+ this.taskListPaginationService.updateTaskPagination(type, { page: page - 1 });
114
+ }
115
+ paginationSet(newSize) {
116
+ combineLatest([
117
+ this.taskListPaginationService.paginationForCurrentTaskType$,
118
+ this.taskListService.selectedTaskType$,
119
+ ])
120
+ .pipe(take(1))
121
+ .subscribe(([pagination, selectedTaskType]) => {
122
+ this.taskListPaginationService.updateTaskPagination(selectedTaskType, {
123
+ size: Number(newSize),
124
+ page: this.taskListPaginationService.getLastAvailablePage(pagination.page, Number(newSize), pagination.collectionSize),
125
+ });
126
+ });
127
+ }
128
+ tabChange(tab) {
129
+ this.taskListService.selectedTaskType$.pipe(take(1)).subscribe(selectedTaskType => {
130
+ if (selectedTaskType !== tab) {
131
+ this.enableLoadingAnimation();
132
+ this.taskListService.setSelectedTaskType(tab);
133
+ this.taskListPaginationService.updateTaskPagination(tab, { page: 0 });
134
+ }
135
+ });
136
+ }
137
+ openRelatedCase(event, index) {
138
+ event.stopPropagation();
139
+ this.cachedTasks$.pipe(take(1)).subscribe(cachedTasks => {
140
+ const currentTask = cachedTasks && cachedTasks[index];
141
+ if (currentTask && !currentTask.caseLocked) {
142
+ this.documentService
143
+ .getDocument(currentTask.businessKey)
144
+ .pipe(take(1))
145
+ .subscribe(document => {
146
+ this.router.navigate([
147
+ `/dossiers/${document.definitionId?.name}/document/${currentTask.businessKey}`,
148
+ ]);
149
+ });
150
+ }
151
+ });
152
+ }
153
+ rowOpenTaskClick(task) {
154
+ return !task.endTime && !task.locked ? this._taskDetail.openTaskDetails(task) : false;
155
+ }
156
+ sortChanged(sortState) {
157
+ this.taskListSortService.updateSortState(this.taskListService.selectedTaskType, sortState);
158
+ }
159
+ setCaseDefinition(definition) {
160
+ if (definition.item.id) {
161
+ this.loadingTasks$.next(true);
162
+ this.taskListService.setCaseDefinitionName(definition.item.id);
163
+ }
164
+ }
165
+ reload() {
166
+ this.enableLoadingAnimation();
167
+ this._reload$.next(!this._reload$.getValue());
168
+ }
169
+ updateTaskListPaginationAfterResponse(newCollectionSize) {
170
+ this.taskListPaginationService.paginationForCurrentTaskType$
171
+ .pipe(take(1))
172
+ .subscribe(currentPagination => {
173
+ this.taskListPaginationService.updateTaskPagination(this.taskListService.selectedTaskType, {
174
+ collectionSize: Number(newCollectionSize),
175
+ page: this.taskListPaginationService.getLastAvailablePage(currentPagination.page, currentPagination.size, newCollectionSize),
176
+ });
177
+ });
178
+ }
179
+ setVisibleTabs() {
180
+ const visibleTabs = this.configService.config?.visibleTaskListTabs;
181
+ if (visibleTabs) {
182
+ this.visibleTabs$.next(visibleTabs);
183
+ this.taskListService.setSelectedTaskType(visibleTabs[0]);
184
+ }
185
+ else {
186
+ this.visibleTabs$.next(this._DEFAULT_TASK_LIST_TABS);
187
+ this.taskListService.setSelectedTaskType(this._DEFAULT_TASK_LIST_TABS[0]);
188
+ }
189
+ }
190
+ disableLoadingAnimation() {
191
+ this._enableLoadingAnimation$.next(false);
192
+ }
193
+ enableLoadingAnimation() {
194
+ this._enableLoadingAnimation$.next(true);
195
+ }
196
+ getTaskListParams(paginationForSelectedTaskType, sortStringForSelectedTaskType, selectedTaskType, caseDefinitionName, enableLoadingAnimation, reload) {
197
+ const params = {
198
+ ...paginationForSelectedTaskType,
199
+ ...(sortStringForSelectedTaskType && { sort: sortStringForSelectedTaskType }),
200
+ };
201
+ delete params.collectionSize;
202
+ return {
203
+ params: {
204
+ reload,
205
+ selectedTaskType,
206
+ params,
207
+ ...(caseDefinitionName &&
208
+ caseDefinitionName !== this.taskListService.ALL_CASES_ID && { caseDefinitionName }),
209
+ },
210
+ enableLoadingAnimation,
211
+ };
212
+ }
213
+ getTaskListPermissionsRequest(tasksResult, isSpecified) {
214
+ const taskResults = tasksResult.content;
215
+ const hasTaskResults = Array.isArray(taskResults) && taskResults.length > 0;
216
+ return combineLatest([
217
+ of(isSpecified),
218
+ of(tasksResult),
219
+ hasTaskResults
220
+ ? combineLatest(taskResults.map(task => this.permissionService.requestPermission(CAN_VIEW_TASK_PERMISSION, {
221
+ resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
222
+ identifier: !isSpecified ? task.id : task.id,
223
+ })))
224
+ : of(null),
225
+ hasTaskResults
226
+ ? combineLatest(taskResults.map(task => this.permissionService.requestPermission(CAN_VIEW_CASE_PERMISSION, {
227
+ resource: TASK_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,
228
+ identifier: task.businessKey,
229
+ })))
230
+ : of(null),
231
+ ]);
232
+ }
233
+ mapTasksForList(isSpecified, tasks, canViewTaskPermissions, canViewCasePermissions) {
234
+ const MOMENT_FORMAT = 'DD MMM YYYY HH:mm';
235
+ if (isSpecified) {
236
+ return tasks.content.map((specifiedTask, specifiedTaskIndex) => specifiedTask.items.reduce((acc, curr) => ({
237
+ id: specifiedTask.id,
238
+ businessKey: specifiedTask.businessKey,
239
+ processInstanceId: specifiedTask.processInstanceId,
240
+ name: specifiedTask.name,
241
+ ...(moment(specifiedTask.created).isValid() && {
242
+ created: moment(specifiedTask.created).format(MOMENT_FORMAT),
243
+ }),
244
+ ...(canViewTaskPermissions && { locked: !canViewTaskPermissions[specifiedTaskIndex] }),
245
+ ...(canViewCasePermissions && {
246
+ caseLocked: !canViewCasePermissions[specifiedTaskIndex],
247
+ }),
248
+ ...acc,
249
+ [curr.key]: curr.value,
250
+ }), {}));
251
+ }
252
+ return tasks?.content?.map((task, taskIndex) => {
253
+ const createdDate = moment(task.created);
254
+ const dueDate = moment(task.due);
255
+ const taskCopy = { ...task };
256
+ if (task.due && dueDate.isValid())
257
+ taskCopy.due = dueDate.format(MOMENT_FORMAT);
258
+ if (createdDate.isValid())
259
+ taskCopy.created = createdDate.format(MOMENT_FORMAT);
260
+ if (canViewTaskPermissions)
261
+ taskCopy.locked = !canViewTaskPermissions[taskIndex];
262
+ if (canViewCasePermissions)
263
+ taskCopy.caseLocked = !canViewCasePermissions[taskIndex];
264
+ return taskCopy;
265
+ });
266
+ }
267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskListComponent, deps: [{ token: i1.ConfigService }, { token: i2.DocumentService }, { token: i3.PermissionService }, { token: i4.Router }, { token: i5.TaskService }, { token: i6.TaskListService }, { token: i7.TranslateService }, { token: i6.TaskListColumnService }, { token: i6.TaskListPaginationService }, { token: i8.TaskListSortService }], target: i0.ɵɵFactoryTarget.Component }); }
268
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskListComponent, selector: "valtimo-task-list", providers: [
269
+ TaskListService,
270
+ TaskListColumnService,
271
+ TaskListPaginationService,
272
+ TaskListSortService,
273
+ ], viewQueries: [{ propertyName: "_taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n loading: loadingTasks$ | async,\n selectedTaskType: selectedTaskType$ | async,\n tasks: tasks$ | async,\n fields: fields$ | async,\n visibleTabs: visibleTabs$ | async,\n pagination: paginationForCurrentTaskTypeForList$ | async,\n taskListColumnsForCase: taskListColumnsForCase$ | async,\n sortState: sortStateForCurrentTaskType$ | async\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n <ng-container\n *ngTemplateOutlet=\"\n tasksList;\n context: {\n obs: obs\n }\n \"\n ></ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksListLoading;\n context: {\n obs: obs\n }\n \"\n ></ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"reload()\"\n (assignmentOfTaskChanged)=\"reload()\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n<ng-template #configuredTabs let-selectedTaskType=\"selectedTaskType\" let-visibleTabs=\"visibleTabs\">\n <cds-tabs *ngIf=\"visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"selectedTaskType === tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n</ng-template>\n\n<ng-template #caseLink let-data=\"data\">\n <ng-container *ngIf=\"cachedTasks$ | async as cachedTasks\">\n <div *ngIf=\"cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link--disabled\"\n cdsLink\n href=\"javascript:void(0)\"\n ngbTooltip=\"{{ 'task-list.caseLocked' | translate }}\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n <div *ngIf=\"!cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tasksList let-obs=\"obs\">\n <valtimo-carbon-list\n *ngIf=\"!obs.loading\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [items]=\"obs.tasks\"\n [lastColumnTemplate]=\"caseLink\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"taskList\"\n lockedTooltipTranslationKey=\"task-list.rowLocked\"\n [initialSortState]=\"obs.sortState\"\n (paginationClicked)=\"paginationClicked($event, obs.selectedTaskType)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div tabs>\n <ng-container *ngIf=\"obs.visibleTabs\">\n <ng-container\n *ngTemplateOutlet=\"\n configuredTabs;\n context: {selectedTaskType: obs.selectedTaskType, visibleTabs: obs.visibleTabs}\n \"\n ></ng-container>\n </ng-container>\n </div>\n\n <valtimo-no-results\n [description]=\"'task-list.' + obs.selectedTaskType + '.noResultsDescription' | translate\"\n [title]=\"'task-list.' + obs.selectedTaskType + '.noResultsTitle' | translate\"\n >\n </valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tasksListLoading let-obs=\"obs\">\n <valtimo-carbon-list *ngIf=\"obs.loading\" [loading]=\"true\">\n <div tabs>\n <cds-tabs *ngIf=\"!obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n [heading]=\"'task-list.mine.title' | translate\"\n [active]=\"obs.selectedTaskType === 'mine'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.open.title' | translate\"\n [active]=\"obs.selectedTaskType === 'open'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.all.title' | translate\"\n [active]=\"obs.selectedTaskType === 'all'\"\n >\n </cds-tab>\n </cds-tabs>\n\n <cds-tabs *ngIf=\"obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of obs.visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"obs.selectedTaskType === tab\"\n ></cds-tab>\n </cds-tabs>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <cds-dropdown\n class=\"case-definition-selection\"\n *ngIf=\"{\n loadingCaseListItems: loadingCaseListItems$ | async,\n caseListItems: caseListItems$ | async\n } as obs\"\n [disabled]=\"obs.loadingCaseListItems || (obs.caseListItems || []).length === 1\"\n [skeleton]=\"obs.loadingCaseListItems\"\n (selected)=\"setCaseDefinition($event)\"\n >\n <cds-dropdown-list\n [items]=\"obs.caseListItems || []\"\n ></cds-dropdown-list></cds-dropdown></ng-template\n></ng-container>\n", styles: [".cds--link--disabled{cursor:not-allowed;pointer-events:auto!important;outline:0!important}.case-definition-selection{display:flex;width:250px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i10.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i10.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i12.Link, selector: "[cdsLink], [ibmLink]", inputs: ["inline", "disabled"] }, { kind: "component", type: i12.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i12.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "directive", type: i10.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i12.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i12.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i13.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
274
+ }
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskListComponent, decorators: [{
276
+ type: Component,
277
+ args: [{ selector: 'valtimo-task-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
278
+ TaskListService,
279
+ TaskListColumnService,
280
+ TaskListPaginationService,
281
+ TaskListSortService,
282
+ ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n loading: loadingTasks$ | async,\n selectedTaskType: selectedTaskType$ | async,\n tasks: tasks$ | async,\n fields: fields$ | async,\n visibleTabs: visibleTabs$ | async,\n pagination: paginationForCurrentTaskTypeForList$ | async,\n taskListColumnsForCase: taskListColumnsForCase$ | async,\n sortState: sortStateForCurrentTaskType$ | async\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n <ng-container\n *ngTemplateOutlet=\"\n tasksList;\n context: {\n obs: obs\n }\n \"\n ></ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksListLoading;\n context: {\n obs: obs\n }\n \"\n ></ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"reload()\"\n (assignmentOfTaskChanged)=\"reload()\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n<ng-template #configuredTabs let-selectedTaskType=\"selectedTaskType\" let-visibleTabs=\"visibleTabs\">\n <cds-tabs *ngIf=\"visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"selectedTaskType === tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n</ng-template>\n\n<ng-template #caseLink let-data=\"data\">\n <ng-container *ngIf=\"cachedTasks$ | async as cachedTasks\">\n <div *ngIf=\"cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link--disabled\"\n cdsLink\n href=\"javascript:void(0)\"\n ngbTooltip=\"{{ 'task-list.caseLocked' | translate }}\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n <div *ngIf=\"!cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tasksList let-obs=\"obs\">\n <valtimo-carbon-list\n *ngIf=\"!obs.loading\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [items]=\"obs.tasks\"\n [lastColumnTemplate]=\"caseLink\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"taskList\"\n lockedTooltipTranslationKey=\"task-list.rowLocked\"\n [initialSortState]=\"obs.sortState\"\n (paginationClicked)=\"paginationClicked($event, obs.selectedTaskType)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div tabs>\n <ng-container *ngIf=\"obs.visibleTabs\">\n <ng-container\n *ngTemplateOutlet=\"\n configuredTabs;\n context: {selectedTaskType: obs.selectedTaskType, visibleTabs: obs.visibleTabs}\n \"\n ></ng-container>\n </ng-container>\n </div>\n\n <valtimo-no-results\n [description]=\"'task-list.' + obs.selectedTaskType + '.noResultsDescription' | translate\"\n [title]=\"'task-list.' + obs.selectedTaskType + '.noResultsTitle' | translate\"\n >\n </valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tasksListLoading let-obs=\"obs\">\n <valtimo-carbon-list *ngIf=\"obs.loading\" [loading]=\"true\">\n <div tabs>\n <cds-tabs *ngIf=\"!obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n [heading]=\"'task-list.mine.title' | translate\"\n [active]=\"obs.selectedTaskType === 'mine'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.open.title' | translate\"\n [active]=\"obs.selectedTaskType === 'open'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.all.title' | translate\"\n [active]=\"obs.selectedTaskType === 'all'\"\n >\n </cds-tab>\n </cds-tabs>\n\n <cds-tabs *ngIf=\"obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of obs.visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"obs.selectedTaskType === tab\"\n ></cds-tab>\n </cds-tabs>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <cds-dropdown\n class=\"case-definition-selection\"\n *ngIf=\"{\n loadingCaseListItems: loadingCaseListItems$ | async,\n caseListItems: caseListItems$ | async\n } as obs\"\n [disabled]=\"obs.loadingCaseListItems || (obs.caseListItems || []).length === 1\"\n [skeleton]=\"obs.loadingCaseListItems\"\n (selected)=\"setCaseDefinition($event)\"\n >\n <cds-dropdown-list\n [items]=\"obs.caseListItems || []\"\n ></cds-dropdown-list></cds-dropdown></ng-template\n></ng-container>\n", styles: [".cds--link--disabled{cursor:not-allowed;pointer-events:auto!important;outline:0!important}.case-definition-selection{display:flex;width:250px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
283
+ }], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.DocumentService }, { type: i3.PermissionService }, { type: i4.Router }, { type: i5.TaskService }, { type: i6.TaskListService }, { type: i7.TranslateService }, { type: i6.TaskListColumnService }, { type: i6.TaskListPaginationService }, { type: i8.TaskListSortService }], propDecorators: { _taskDetail: [{
284
+ type: ViewChild,
285
+ args: ['taskDetail']
286
+ }] } });
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL2NvbXBvbmVudHMvdGFzay1saXN0L3Rhc2stbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stbGlzdC90YXNrLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQVM1QixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwRixPQUFPLEVBQWlDLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTVFLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLCtCQUErQixHQUNoQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRy9CLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFMUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FB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SUFBSSxFQUFDLENBQUM7WUFFM0IsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQUUsUUFBUSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2hGLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRTtnQkFBRSxRQUFRLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDaEYsSUFBSSxzQkFBc0I7Z0JBQUUsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLElBQUksc0JBQXNCO2dCQUFFLFFBQVEsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVyRixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQVcsQ0FBQztJQUNmLENBQUM7OEdBdlZVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDRDQVBqQjtZQUNULGVBQWU7WUFDZixxQkFBcUI7WUFDckIseUJBQXlCO1lBQ3pCLG1CQUFtQjtTQUNwQixxSUMvREgsa3NMQWtMQTs7MkZEakhhLGlCQUFpQjtrQkFiN0IsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVCxlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIseUJBQXlCO3dCQUN6QixtQkFBbUI7cUJBQ3BCOzBXQUd5QyxXQUFXO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1Rhc2tTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtcbiAgTWFwcGVkU3BlY2lmaWVkVGFzayxcbiAgU3BlY2lmaWVkVGFzayxcbiAgVGFzayxcbiAgVGFza0xpc3RQYXJhbXMsXG4gIFRhc2tQYWdlUGFyYW1zLFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtUYXNrRGV0YWlsTW9kYWxDb21wb25lbnR9IGZyb20gJy4uL3Rhc2stZGV0YWlsLW1vZGFsL3Rhc2stZGV0YWlsLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29uZmlnU2VydmljZSwgUGFnZSwgU29ydFN0YXRlLCBUYXNrTGlzdFRhYn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vYWNjZXNzLWNvbnRyb2wnO1xuaW1wb3J0IHtcbiAgQ0FOX1ZJRVdfQ0FTRV9QRVJNSVNTSU9OLFxuICBDQU5fVklFV19UQVNLX1BFUk1JU1NJT04sXG4gIFRBU0tfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UsXG59IGZyb20gJy4uLy4uL3Rhc2stcGVybWlzc2lvbnMnO1xuaW1wb3J0IHtUYXNrTGlzdENvbHVtblNlcnZpY2UsIFRhc2tMaXN0UGFnaW5hdGlvblNlcnZpY2UsIFRhc2tMaXN0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtpc0VxdWFsfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtMaXN0SXRlbX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtUYXNrTGlzdFNvcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLWxpc3Qtc29ydC5zZXJ2aWNlJztcblxubW9tZW50LmxvY2FsZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ0tleScpIHx8ICcnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby10YXNrLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFzay1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFzay1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBUYXNrTGlzdFNlcnZpY2UsXG4gICAgVGFza0xpc3RDb2x1bW5TZXJ2aWNlLFxuICAgIFRhc2tMaXN0UGFnaW5hdGlvblNlcnZpY2UsXG4gICAgVGFza0xpc3RTb3J0U2VydmljZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFza0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCd0YXNrRGV0YWlsJykgcHJpdmF0ZSByZWFkb25seSBfdGFza0RldGFpbDogVGFza0RldGFpbE1vZGFsQ29tcG9uZW50O1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFRhc2tUeXBlJCA9IHRoaXMudGFza0xpc3RTZXJ2aWNlLnNlbGVjdGVkVGFza1R5cGUkO1xuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRzJCA9IHRoaXMudGFza0xpc3RDb2x1bW5TZXJ2aWNlLmZpZWxkcyQ7XG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nVGFza3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IHZpc2libGVUYWJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8VGFza0xpc3RUYWI+IHwgbnVsbD4obnVsbCk7XG5cbiAgcHJpdmF0ZSBfZW5hYmxlTG9hZGluZ0FuaW1hdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjYWNoZWRUYXNrcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhc2tbXSB8IE1hcHBlZFNwZWNpZmllZFRhc2tbXSB8IG51bGw+KG51bGwpO1xuXG4gIHB1YmxpYyByZWFkb25seSBwYWdpbmF0aW9uRm9yQ3VycmVudFRhc2tUeXBlRm9yTGlzdCQgPVxuICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS5wYWdpbmF0aW9uRm9yQ3VycmVudFRhc2tUeXBlRm9yTGlzdCQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNvcnRTdGF0ZUZvckN1cnJlbnRUYXNrVHlwZSQgPVxuICAgIHRoaXMudGFza0xpc3RTb3J0U2VydmljZS5zb3J0U3RhdGVGb3JDdXJyZW50VGFza1R5cGUkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlbG9hZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHB1YmxpYyByZWFkb25seSB0YXNrcyQ6IE9ic2VydmFibGU8VGFza1tdIHwgTWFwcGVkU3BlY2lmaWVkVGFza1tdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLmxvYWRpbmdTdGF0ZUZvckNhc2VEZWZpbml0aW9uJCxcbiAgICB0aGlzLnNlbGVjdGVkVGFza1R5cGUkLFxuICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS5wYWdpbmF0aW9uRm9yQ3VycmVudFRhc2tUeXBlJCxcbiAgICB0aGlzLnRhc2tMaXN0U29ydFNlcnZpY2Uuc29ydFN0cmluZ0ZvckN1cnJlbnRUYXNrVHlwZSQsXG4gICAgdGhpcy50YXNrTGlzdFNlcnZpY2UuY2FzZURlZmluaXRpb25OYW1lJCxcbiAgICB0aGlzLl9lbmFibGVMb2FkaW5nQW5pbWF0aW9uJCxcbiAgICB0aGlzLl9yZWxvYWQkLFxuICBdKS5waXBlKFxuICAgIGZpbHRlcigoW2xvYWRpbmdTdGF0ZUZvckNhc2VEZWZpbml0aW9uXSkgPT4gbG9hZGluZ1N0YXRlRm9yQ2FzZURlZmluaXRpb24gPT09IGZhbHNlKSxcbiAgICBtYXAoXG4gICAgICAoW1xuICAgICAgICBfLFxuICAgICAgICBzZWxlY3RlZFRhc2tUeXBlLFxuICAgICAgICBwYWdpbmF0aW9uRm9yU2VsZWN0ZWRUYXNrVHlwZSxcbiAgICAgICAgc29ydFN0cmluZ0ZvclNlbGVjdGVkVGFza1R5cGUsXG4gICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgZW5hYmxlTG9hZGluZ0FuaW1hdGlvbixcbiAgICAgICAgcmVsb2FkLFxuICAgICAgXSkgPT5cbiAgICAgICAgdGhpcy5nZXRUYXNrTGlzdFBhcmFtcyhcbiAgICAgICAgICBwYWdpbmF0aW9uRm9yU2VsZWN0ZWRUYXNrVHlwZSxcbiAgICAgICAgICBzb3J0U3RyaW5nRm9yU2VsZWN0ZWRUYXNrVHlwZSxcbiAgICAgICAgICBzZWxlY3RlZFRhc2tUeXBlLFxuICAgICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICBlbmFibGVMb2FkaW5nQW5pbWF0aW9uLFxuICAgICAgICAgIHJlbG9hZFxuICAgICAgICApXG4gICAgKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IGlzRXF1YWwocHJldmlvdXMucGFyYW1zLCBjdXJyZW50LnBhcmFtcykpLFxuICAgIHRhcCgoe2VuYWJsZUxvYWRpbmdBbmltYXRpb259KSA9PiB7XG4gICAgICBpZiAoZW5hYmxlTG9hZGluZ0FuaW1hdGlvbikgdGhpcy5sb2FkaW5nVGFza3MkLm5leHQodHJ1ZSk7XG4gICAgfSksXG4gICAgc3dpdGNoTWFwKCh7cGFyYW1zfSkgPT5cbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLnRhc2tTZXJ2aWNlLnF1ZXJ5VGFza3NQYWdlVjMoXG4gICAgICAgICAgcGFyYW1zLnNlbGVjdGVkVGFza1R5cGUsXG4gICAgICAgICAgcGFyYW1zLnBhcmFtcyxcbiAgICAgICAgICBwYXJhbXMuY2FzZURlZmluaXRpb25OYW1lXG4gICAgICAgICksXG4gICAgICAgIG9mKCEhcGFyYW1zLmNhc2VEZWZpbml0aW9uTmFtZSksXG4gICAgICBdKVxuICAgICksXG4gICAgc3dpdGNoTWFwKChbdGFza3NSZXN1bHQsIGlzU3BlY2lmaWVkXSkgPT5cbiAgICAgIHRoaXMuZ2V0VGFza0xpc3RQZXJtaXNzaW9uc1JlcXVlc3QodGFza3NSZXN1bHQsIGlzU3BlY2lmaWVkKVxuICAgICksXG4gICAgbWFwKChbaXNTcGVjaWZpZWQsIHRhc2tSZXN1bHQsIGNhblZpZXdUYXNrUGVybWlzc2lvbnMsIGNhblZpZXdDYXNlUGVybWlzc2lvbnNdKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVRhc2tMaXN0UGFnaW5hdGlvbkFmdGVyUmVzcG9uc2UoTnVtYmVyKHRhc2tSZXN1bHQudG90YWxFbGVtZW50cykpO1xuXG4gICAgICByZXR1cm4gdGhpcy5tYXBUYXNrc0Zvckxpc3QoXG4gICAgICAgIGlzU3BlY2lmaWVkLFxuICAgICAgICB0YXNrUmVzdWx0LFxuICAgICAgICBjYW5WaWV3VGFza1Blcm1pc3Npb25zLFxuICAgICAgICBjYW5WaWV3Q2FzZVBlcm1pc3Npb25zXG4gICAgICApO1xuICAgIH0pLFxuICAgIHRhcCh0YXNrcyA9PiB7XG4gICAgICB0aGlzLmNhY2hlZFRhc2tzJC5uZXh0KHRhc2tzKTtcbiAgICAgIHRoaXMubG9hZGluZ1Rhc2tzJC5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuZGlzYWJsZUxvYWRpbmdBbmltYXRpb24oKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nQ2FzZUxpc3RJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RlZENhc2VEZWZpbml0aW9uSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KFxuICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLkFMTF9DQVNFU19JRFxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FzZUxpc3RJdGVtcyQ6IE9ic2VydmFibGU8TGlzdEl0ZW1bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRBbGxEZWZpbml0aW9ucygpLFxuICAgIHRoaXMuX3NlbGVjdGVkQ2FzZURlZmluaXRpb25JZCQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbZG9jdW1lbnREZWZpbml0aW9uUmVzLCBzZWxlY3RlZENhc2VEZWZpbml0aW9uSWRdKSA9PiBbXG4gICAgICB7XG4gICAgICAgIGNvbnRlbnQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd0YXNrLWxpc3QuYWxsQ2FzZXMnKSxcbiAgICAgICAgaWQ6IHRoaXMudGFza0xpc3RTZXJ2aWNlLkFMTF9DQVNFU19JRCxcbiAgICAgICAgc2VsZWN0ZWQ6IHNlbGVjdGVkQ2FzZURlZmluaXRpb25JZCA9PT0gdGhpcy50YXNrTGlzdFNlcnZpY2UuQUxMX0NBU0VTX0lELFxuICAgICAgfSxcbiAgICAgIC4uLmRvY3VtZW50RGVmaW5pdGlvblJlcy5jb250ZW50Lm1hcChkb2N1bWVudERlZmluaXRpb24gPT4gKHtcbiAgICAgICAgaWQ6IGRvY3VtZW50RGVmaW5pdGlvbi5pZC5uYW1lLFxuICAgICAgICBjb250ZW50OiBkb2N1bWVudERlZmluaXRpb24/LnNjaGVtYT8udGl0bGUsXG4gICAgICAgIHNlbGVjdGVkOiBkb2N1bWVudERlZmluaXRpb24uaWQubmFtZSA9PT0gc2VsZWN0ZWRDYXNlRGVmaW5pdGlvbklkLFxuICAgICAgfSkpLFxuICAgIF0pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmdDYXNlTGlzdEl0ZW1zJC5uZXh0KGZhbHNlKSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGFza0xpc3RDb2x1bW5zRm9yQ2FzZSQgPSB0aGlzLnRhc2tMaXN0Q29sdW1uU2VydmljZS50YXNrTGlzdENvbHVtbnNGb3JDYXNlJDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ERUZBVUxUX1RBU0tfTElTVF9UQUJTOiBUYXNrTGlzdFRhYltdID0gW1xuICAgIFRhc2tMaXN0VGFiLk1JTkUsXG4gICAgVGFza0xpc3RUYWIuT1BFTixcbiAgICBUYXNrTGlzdFRhYi5BTEwsXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tTZXJ2aWNlOiBUYXNrU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tMaXN0U2VydmljZTogVGFza0xpc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tMaXN0Q29sdW1uU2VydmljZTogVGFza0xpc3RDb2x1bW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza0xpc3RQYWdpbmF0aW9uU2VydmljZTogVGFza0xpc3RQYWdpbmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tMaXN0U29ydFNlcnZpY2U6IFRhc2tMaXN0U29ydFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tMaXN0Q29sdW1uU2VydmljZS5yZXNldFRhc2tMaXN0RmllbGRzKCk7XG4gICAgdGhpcy5zZXRWaXNpYmxlVGFicygpO1xuICB9XG5cbiAgcHVibGljIHBhZ2luYXRpb25DbGlja2VkKHBhZ2U6IG51bWJlciwgdHlwZTogVGFza0xpc3RUYWIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tMaXN0UGFnaW5hdGlvblNlcnZpY2UudXBkYXRlVGFza1BhZ2luYXRpb24odHlwZSBhcyBUYXNrTGlzdFRhYiwge3BhZ2U6IHBhZ2UgLSAxfSk7XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGlvblNldChuZXdTaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS5wYWdpbmF0aW9uRm9yQ3VycmVudFRhc2tUeXBlJCxcbiAgICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLnNlbGVjdGVkVGFza1R5cGUkLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoW3BhZ2luYXRpb24sIHNlbGVjdGVkVGFza1R5cGVdKSA9PiB7XG4gICAgICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS51cGRhdGVUYXNrUGFnaW5hdGlvbihzZWxlY3RlZFRhc2tUeXBlLCB7XG4gICAgICAgICAgc2l6ZTogTnVtYmVyKG5ld1NpemUpLFxuICAgICAgICAgIHBhZ2U6IHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS5nZXRMYXN0QXZhaWxhYmxlUGFnZShcbiAgICAgICAgICAgIHBhZ2luYXRpb24ucGFnZSxcbiAgICAgICAgICAgIE51bWJlcihuZXdTaXplKSxcbiAgICAgICAgICAgIHBhZ2luYXRpb24uY29sbGVjdGlvblNpemVcbiAgICAgICAgICApLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHRhYkNoYW5nZSh0YWI6IFRhc2tMaXN0VGFiIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50YXNrTGlzdFNlcnZpY2Uuc2VsZWN0ZWRUYXNrVHlwZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc2VsZWN0ZWRUYXNrVHlwZSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRUYXNrVHlwZSAhPT0gdGFiKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlTG9hZGluZ0FuaW1hdGlvbigpO1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5zZXRTZWxlY3RlZFRhc2tUeXBlKHRhYiBhcyBUYXNrTGlzdFRhYik7XG4gICAgICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS51cGRhdGVUYXNrUGFnaW5hdGlvbih0YWIgYXMgVGFza0xpc3RUYWIsIHtwYWdlOiAwfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3BlblJlbGF0ZWRDYXNlKGV2ZW50OiBNb3VzZUV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLmNhY2hlZFRhc2tzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjYWNoZWRUYXNrcyA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50VGFzayA9IGNhY2hlZFRhc2tzICYmIGNhY2hlZFRhc2tzW2luZGV4XTtcblxuICAgICAgaWYgKGN1cnJlbnRUYXNrICYmICFjdXJyZW50VGFzay5jYXNlTG9ja2VkKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAgICAgLmdldERvY3VtZW50KGN1cnJlbnRUYXNrLmJ1c2luZXNzS2V5KVxuICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgLnN1YnNjcmliZShkb2N1bWVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXG4gICAgICAgICAgICAgIGAvZG9zc2llcnMvJHtkb2N1bWVudC5kZWZpbml0aW9uSWQ/Lm5hbWV9L2RvY3VtZW50LyR7Y3VycmVudFRhc2suYnVzaW5lc3NLZXl9YCxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJvd09wZW5UYXNrQ2xpY2sodGFzayk6IHZvaWQgfCBib29sZWFuIHtcbiAgICByZXR1cm4gIXRhc2suZW5kVGltZSAmJiAhdGFzay5sb2NrZWQgPyB0aGlzLl90YXNrRGV0YWlsLm9wZW5UYXNrRGV0YWlscyh0YXNrKSA6IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNvcnRDaGFuZ2VkKHNvcnRTdGF0ZTogU29ydFN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy50YXNrTGlzdFNvcnRTZXJ2aWNlLnVwZGF0ZVNvcnRTdGF0ZSh0aGlzLnRhc2tMaXN0U2VydmljZS5zZWxlY3RlZFRhc2tUeXBlLCBzb3J0U3RhdGUpO1xuICB9XG5cbiAgcHVibGljIHNldENhc2VEZWZpbml0aW9uKGRlZmluaXRpb246IHtpdGVtOiB7aWQ6IHN0cmluZ319KTogdm9pZCB7XG4gICAgaWYgKGRlZmluaXRpb24uaXRlbS5pZCkge1xuICAgICAgdGhpcy5sb2FkaW5nVGFza3MkLm5leHQodHJ1ZSk7XG4gICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5zZXRDYXNlRGVmaW5pdGlvbk5hbWUoZGVmaW5pdGlvbi5pdGVtLmlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuZW5hYmxlTG9hZGluZ0FuaW1hdGlvbigpO1xuICAgIHRoaXMuX3JlbG9hZCQubmV4dCghdGhpcy5fcmVsb2FkJC5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFza0xpc3RQYWdpbmF0aW9uQWZ0ZXJSZXNwb25zZShuZXdDb2xsZWN0aW9uU2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50YXNrTGlzdFBhZ2luYXRpb25TZXJ2aWNlLnBhZ2luYXRpb25Gb3JDdXJyZW50VGFza1R5cGUkXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShjdXJyZW50UGFnaW5hdGlvbiA9PiB7XG4gICAgICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS51cGRhdGVUYXNrUGFnaW5hdGlvbih0aGlzLnRhc2tMaXN0U2VydmljZS5zZWxlY3RlZFRhc2tUeXBlLCB7XG4gICAgICAgICAgY29sbGVjdGlvblNpemU6IE51bWJlcihuZXdDb2xsZWN0aW9uU2l6ZSksXG4gICAgICAgICAgcGFnZTogdGhpcy50YXNrTGlzdFBhZ2luYXRpb25TZXJ2aWNlLmdldExhc3RBdmFpbGFibGVQYWdlKFxuICAgICAgICAgICAgY3VycmVudFBhZ2luYXRpb24ucGFnZSxcbiAgICAgICAgICAgIGN1cnJlbnRQYWdpbmF0aW9uLnNpemUsXG4gICAgICAgICAgICBuZXdDb2xsZWN0aW9uU2l6ZVxuICAgICAgICAgICksXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFZpc2libGVUYWJzKCk6IHZvaWQge1xuICAgIGNvbnN0IHZpc2libGVUYWJzID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZz8udmlzaWJsZVRhc2tMaXN0VGFicztcblxuICAgIGlmICh2aXNpYmxlVGFicykge1xuICAgICAgdGhpcy52aXNpYmxlVGFicyQubmV4dCh2aXNpYmxlVGFicyk7XG4gICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5zZXRTZWxlY3RlZFRhc2tUeXBlKHZpc2libGVUYWJzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlVGFicyQubmV4dCh0aGlzLl9ERUZBVUxUX1RBU0tfTElTVF9UQUJTKTtcbiAgICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLnNldFNlbGVjdGVkVGFza1R5cGUodGhpcy5fREVGQVVMVF9UQVNLX0xJU1RfVEFCU1swXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlTG9hZGluZ0FuaW1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9lbmFibGVMb2FkaW5nQW5pbWF0aW9uJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlTG9hZGluZ0FuaW1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9lbmFibGVMb2FkaW5nQW5pbWF0aW9uJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYXNrTGlzdFBhcmFtcyhcbiAgICBwYWdpbmF0aW9uRm9yU2VsZWN0ZWRUYXNrVHlwZTogVGFza1BhZ2VQYXJhbXMsXG4gICAgc29ydFN0cmluZ0ZvclNlbGVjdGVkVGFza1R5cGU6IHN0cmluZyxcbiAgICBzZWxlY3RlZFRhc2tUeXBlOiBUYXNrTGlzdFRhYixcbiAgICBjYXNlRGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICBlbmFibGVMb2FkaW5nQW5pbWF0aW9uOiBib29sZWFuLFxuICAgIHJlbG9hZDogYm9vbGVhblxuICApOiBUYXNrTGlzdFBhcmFtcyB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgLi4ucGFnaW5hdGlvbkZvclNlbGVjdGVkVGFza1R5cGUsXG4gICAgICAuLi4oc29ydFN0cmluZ0ZvclNlbGVjdGVkVGFza1R5cGUgJiYge3NvcnQ6IHNvcnRTdHJpbmdGb3JTZWxlY3RlZFRhc2tUeXBlfSksXG4gICAgfTtcblxuICAgIGRlbGV0ZSBwYXJhbXMuY29sbGVjdGlvblNpemU7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHJlbG9hZCxcbiAgICAgICAgc2VsZWN0ZWRUYXNrVHlwZSxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICAuLi4oY2FzZURlZmluaXRpb25OYW1lICYmXG4gICAgICAgICAgY2FzZURlZmluaXRpb25OYW1lICE9PSB0aGlzLnRhc2tMaXN0U2VydmljZS5BTExfQ0FTRVNfSUQgJiYge2Nhc2VEZWZpbml0aW9uTmFtZX0pLFxuICAgICAgfSxcbiAgICAgIGVuYWJsZUxvYWRpbmdBbmltYXRpb24sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFza0xpc3RQZXJtaXNzaW9uc1JlcXVlc3QoXG4gICAgdGFza3NSZXN1bHQ6IFBhZ2U8VGFzaz4gfCBQYWdlPFNwZWNpZmllZFRhc2s+LFxuICAgIGlzU3BlY2lmaWVkOiBib29sZWFuXG4gICkge1xuICAgIGNvbnN0IHRhc2tSZXN1bHRzID0gdGFza3NSZXN1bHQuY29udGVudDtcbiAgICBjb25zdCBoYXNUYXNrUmVzdWx0cyA9IEFycmF5LmlzQXJyYXkodGFza1Jlc3VsdHMpICYmIHRhc2tSZXN1bHRzLmxlbmd0aCA+IDA7XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBvZihpc1NwZWNpZmllZCksXG4gICAgICBvZih0YXNrc1Jlc3VsdCksXG4gICAgICBoYXNUYXNrUmVzdWx0c1xuICAgICAgICA/IGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgICB0YXNrUmVzdWx0cy5tYXAodGFzayA9PlxuICAgICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9WSUVXX1RBU0tfUEVSTUlTU0lPTiwge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBUQVNLX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFLnRhc2ssXG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogIWlzU3BlY2lmaWVkID8gKHRhc2sgYXMgVGFzaykuaWQgOiAodGFzayBhcyBTcGVjaWZpZWRUYXNrKS5pZCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIDogb2YobnVsbCksXG4gICAgICBoYXNUYXNrUmVzdWx0c1xuICAgICAgICA/IGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgICB0YXNrUmVzdWx0cy5tYXAodGFzayA9PlxuICAgICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9WSUVXX0NBU0VfUEVSTUlTU0lPTiwge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBUQVNLX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFLmpzb25TY2hlbWFEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiB0YXNrLmJ1c2luZXNzS2V5LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgOiBvZihudWxsKSxcbiAgICBdKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVGFza3NGb3JMaXN0KFxuICAgIGlzU3BlY2lmaWVkOiBib29sZWFuLFxuICAgIHRhc2tzOiBQYWdlPFRhc2s+IHwgUGFnZTxTcGVjaWZpZWRUYXNrPixcbiAgICBjYW5WaWV3VGFza1Blcm1pc3Npb25zOiBib29sZWFuW10gfCBudWxsLFxuICAgIGNhblZpZXdDYXNlUGVybWlzc2lvbnM6IGJvb2xlYW5bXSB8IG51bGxcbiAgKTogVGFza1tdIHwgTWFwcGVkU3BlY2lmaWVkVGFza1tdIHtcbiAgICBjb25zdCBNT01FTlRfRk9STUFUID0gJ0REIE1NTSBZWVlZIEhIOm1tJztcblxuICAgIGlmIChpc1NwZWNpZmllZCkge1xuICAgICAgcmV0dXJuICh0YXNrcyBhcyBQYWdlPFNwZWNpZmllZFRhc2s+KS5jb250ZW50Lm1hcCgoc3BlY2lmaWVkVGFzaywgc3BlY2lmaWVkVGFza0luZGV4KSA9PlxuICAgICAgICBzcGVjaWZpZWRUYXNrLml0ZW1zLnJlZHVjZShcbiAgICAgICAgICAoYWNjLCBjdXJyKSA9PlxuICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgaWQ6IHNwZWNpZmllZFRhc2suaWQsXG4gICAgICAgICAgICAgIGJ1c2luZXNzS2V5OiBzcGVjaWZpZWRUYXNrLmJ1c2luZXNzS2V5LFxuICAgICAgICAgICAgICBwcm9jZXNzSW5zdGFuY2VJZDogc3BlY2lmaWVkVGFzay5wcm9jZXNzSW5zdGFuY2VJZCxcbiAgICAgICAgICAgICAgbmFtZTogc3BlY2lmaWVkVGFzay5uYW1lLFxuICAgICAgICAgICAgICAuLi4obW9tZW50KHNwZWNpZmllZFRhc2suY3JlYXRlZCkuaXNWYWxpZCgpICYmIHtcbiAgICAgICAgICAgICAgICBjcmVhdGVkOiBtb21lbnQoc3BlY2lmaWVkVGFzay5jcmVhdGVkKS5mb3JtYXQoTU9NRU5UX0ZPUk1BVCksXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAuLi4oY2FuVmlld1Rhc2tQZXJtaXNzaW9ucyAmJiB7bG9ja2VkOiAhY2FuVmlld1Rhc2tQZXJtaXNzaW9uc1tzcGVjaWZpZWRUYXNrSW5kZXhdfSksXG4gICAgICAgICAgICAgIC4uLihjYW5WaWV3Q2FzZVBlcm1pc3Npb25zICYmIHtcbiAgICAgICAgICAgICAgICBjYXNlTG9ja2VkOiAhY2FuVmlld0Nhc2VQZXJtaXNzaW9uc1tzcGVjaWZpZWRUYXNrSW5kZXhdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICBbY3Vyci5rZXldOiBjdXJyLnZhbHVlLFxuICAgICAgICAgICAgfSkgYXMgTWFwcGVkU3BlY2lmaWVkVGFzayxcbiAgICAgICAgICB7fVxuICAgICAgICApXG4gICAgICApIGFzIE1hcHBlZFNwZWNpZmllZFRhc2tbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRhc2tzIGFzIFBhZ2U8VGFzaz4pPy5jb250ZW50Py5tYXAoKHRhc2ssIHRhc2tJbmRleCkgPT4ge1xuICAgICAgY29uc3QgY3JlYXRlZERhdGUgPSBtb21lbnQodGFzay5jcmVhdGVkKTtcbiAgICAgIGNvbnN0IGR1ZURhdGUgPSBtb21lbnQodGFzay5kdWUpO1xuICAgICAgY29uc3QgdGFza0NvcHkgPSB7Li4udGFza307XG5cbiAgICAgIGlmICh0YXNrLmR1ZSAmJiBkdWVEYXRlLmlzVmFsaWQoKSkgdGFza0NvcHkuZHVlID0gZHVlRGF0ZS5mb3JtYXQoTU9NRU5UX0ZPUk1BVCk7XG4gICAgICBpZiAoY3JlYXRlZERhdGUuaXNWYWxpZCgpKSB0YXNrQ29weS5jcmVhdGVkID0gY3JlYXRlZERhdGUuZm9ybWF0KE1PTUVOVF9GT1JNQVQpO1xuICAgICAgaWYgKGNhblZpZXdUYXNrUGVybWlzc2lvbnMpIHRhc2tDb3B5LmxvY2tlZCA9ICFjYW5WaWV3VGFza1Blcm1pc3Npb25zW3Rhc2tJbmRleF07XG4gICAgICBpZiAoY2FuVmlld0Nhc2VQZXJtaXNzaW9ucykgdGFza0NvcHkuY2FzZUxvY2tlZCA9ICFjYW5WaWV3Q2FzZVBlcm1pc3Npb25zW3Rhc2tJbmRleF07XG5cbiAgICAgIHJldHVybiB0YXNrQ29weTtcbiAgICB9KSBhcyBUYXNrW107XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdlxuICAqbmdJZj1cIntcbiAgICBsb2FkaW5nOiBsb2FkaW5nVGFza3MkIHwgYXN5bmMsXG4gICAgc2VsZWN0ZWRUYXNrVHlwZTogc2VsZWN0ZWRUYXNrVHlwZSQgfCBhc3luYyxcbiAgICB0YXNrczogdGFza3MkIHwgYXN5bmMsXG4gICAgZmllbGRzOiBmaWVsZHMkIHwgYXN5bmMsXG4gICAgdmlzaWJsZVRhYnM6IHZpc2libGVUYWJzJCB8IGFzeW5jLFxuICAgIHBhZ2luYXRpb246IHBhZ2luYXRpb25Gb3JDdXJyZW50VGFza1R5cGVGb3JMaXN0JCB8IGFzeW5jLFxuICAgIHRhc2tMaXN0Q29sdW1uc0ZvckNhc2U6IHRhc2tMaXN0Q29sdW1uc0ZvckNhc2UkIHwgYXN5bmMsXG4gICAgc29ydFN0YXRlOiBzb3J0U3RhdGVGb3JDdXJyZW50VGFza1R5cGUkIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuICBjbGFzcz1cIm1haW4tY29udGVudFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICB0YXNrc0xpc3Q7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBvYnM6IG9ic1xuICAgICAgICB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHRhc2tzTGlzdExvYWRpbmc7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBvYnM6IG9ic1xuICAgICAgICB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDx2YWx0aW1vLXRhc2stZGV0YWlsLW1vZGFsXG4gICAgICAjdGFza0RldGFpbFxuICAgICAgKGZvcm1TdWJtaXQpPVwicmVsb2FkKClcIlxuICAgICAgKGFzc2lnbm1lbnRPZlRhc2tDaGFuZ2VkKT1cInJlbG9hZCgpXCJcbiAgICA+PC92YWx0aW1vLXRhc2stZGV0YWlsLW1vZGFsPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NvbmZpZ3VyZWRUYWJzIGxldC1zZWxlY3RlZFRhc2tUeXBlPVwic2VsZWN0ZWRUYXNrVHlwZVwiIGxldC12aXNpYmxlVGFicz1cInZpc2libGVUYWJzXCI+XG4gIDxjZHMtdGFicyAqbmdJZj1cInZpc2libGVUYWJzXCIgdHlwZT1cImNvbnRhaW5lZFwiIGNsYXNzPVwidmFsdGltby1jYXJib24tbGlzdF9fdGFic1wiPlxuICAgIDxjZHMtdGFiXG4gICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHZpc2libGVUYWJzXCJcbiAgICAgIFtoZWFkaW5nXT1cIid0YXNrLWxpc3QuJyArIHRhYiArICcudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthY3RpdmVdPVwic2VsZWN0ZWRUYXNrVHlwZSA9PT0gdGFiXCJcbiAgICAgIChzZWxlY3RlZCk9XCJ0YWJDaGFuZ2UodGFiKVwiXG4gICAgPjwvY2RzLXRhYj5cbiAgPC9jZHMtdGFicz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2FzZUxpbmsgbGV0LWRhdGE9XCJkYXRhXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYWNoZWRUYXNrcyQgfCBhc3luYyBhcyBjYWNoZWRUYXNrc1wiPlxuICAgIDxkaXYgKm5nSWY9XCJjYWNoZWRUYXNrc1tkYXRhLmluZGV4XS5jYXNlTG9ja2VkXCI+XG4gICAgICA8YVxuICAgICAgICBjbGFzcz1cImZsb2F0LWxlZnQgY2RzLS1saW5rLS1kaXNhYmxlZFwiXG4gICAgICAgIGNkc0xpbmtcbiAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgIG5nYlRvb2x0aXA9XCJ7eyAndGFzay1saXN0LmNhc2VMb2NrZWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICd0YXNrLWxpc3QuZ29Ub0Nhc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFjYWNoZWRUYXNrc1tkYXRhLmluZGV4XS5jYXNlTG9ja2VkXCI+XG4gICAgICA8YVxuICAgICAgICBjbGFzcz1cImZsb2F0LWxlZnQgY2RzLS1saW5rXCJcbiAgICAgICAgY2RzTGlua1xuICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5SZWxhdGVkQ2FzZSgkZXZlbnQsIGRhdGEuaW5kZXgpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ3Rhc2stbGlzdC5nb1RvQ2FzZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Rhc2tzTGlzdCBsZXQtb2JzPVwib2JzXCI+XG4gIDx2YWx0aW1vLWNhcmJvbi1saXN0XG4gICAgKm5nSWY9XCIhb2JzLmxvYWRpbmdcIlxuICAgIFtmaWVsZHNdPVwib2JzLmZpZWxkc1wiXG4gICAgW2hlYWRlcl09XCJmYWxzZVwiXG4gICAgW2l0ZW1zXT1cIm9icy50YXNrc1wiXG4gICAgW2xhc3RDb2x1bW5UZW1wbGF0ZV09XCJjYXNlTGlua1wiXG4gICAgW3BhZ2luYXRpb25dPVwib2JzLnBhZ2luYXRpb25cIlxuICAgIHBhZ2luYXRpb25JZGVudGlmaWVyPVwidGFza0xpc3RcIlxuICAgIGxvY2tlZFRvb2x0aXBUcmFuc2xhdGlvbktleT1cInRhc2stbGlzdC5yb3dMb2NrZWRcIlxuICAgIFtpbml0aWFsU29ydFN0YXRlXT1cIm9icy5zb3J0U3RhdGVcIlxuICAgIChwYWdpbmF0aW9uQ2xpY2tlZCk9XCJwYWdpbmF0aW9uQ2xpY2tlZCgkZXZlbnQsIG9icy5zZWxlY3RlZFRhc2tUeXBlKVwiXG4gICAgKHBhZ2luYXRpb25TZXQpPVwicGFnaW5hdGlvblNldCgkZXZlbnQpXCJcbiAgICAocm93Q2xpY2tlZCk9XCJyb3dPcGVuVGFza0NsaWNrKCRldmVudClcIlxuICAgIChzb3J0Q2hhbmdlZCk9XCJzb3J0Q2hhbmdlZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxkaXYgdGFicz5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvYnMudmlzaWJsZVRhYnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBjb25maWd1cmVkVGFicztcbiAgICAgICAgICAgIGNvbnRleHQ6IHtzZWxlY3RlZFRhc2tUeXBlOiBvYnMuc2VsZWN0ZWRUYXNrVHlwZSwgdmlzaWJsZVRhYnM6IG9icy52aXNpYmxlVGFic31cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDx2YWx0aW1vLW5vLXJlc3VsdHNcbiAgICAgIFtkZXNjcmlwdGlvbl09XCIndGFzay1saXN0LicgKyBvYnMuc2VsZWN0ZWRUYXNrVHlwZSArICcubm9SZXN1bHRzRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0aXRsZV09XCIndGFzay1saXN0LicgKyBvYnMuc2VsZWN0ZWRUYXNrVHlwZSArICcubm9SZXN1bHRzVGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgPC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gIDwvdmFsdGltby1jYXJib24tbGlzdD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFza3NMaXN0TG9hZGluZyBsZXQtb2JzPVwib2JzXCI+XG4gIDx2YWx0aW1vLWNhcmJvbi1saXN0ICpuZ0lmPVwib2JzLmxvYWRpbmdcIiBbbG9hZGluZ109XCJ0cnVlXCI+XG4gICAgPGRpdiB0YWJzPlxuICAgICAgPGNkcy10YWJzICpuZ0lmPVwiIW9icy52aXNpYmxlVGFic1wiIHR5cGU9XCJjb250YWluZWRcIiBjbGFzcz1cInZhbHRpbW8tY2FyYm9uLWxpc3RfX3RhYnNcIj5cbiAgICAgICAgPGNkcy10YWJcbiAgICAgICAgICBbaGVhZGluZ109XCIndGFzay1saXN0Lm1pbmUudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbYWN0aXZlXT1cIm9icy5zZWxlY3RlZFRhc2tUeXBlID09PSAnbWluZSdcIlxuICAgICAgICA+XG4gICAgICAgIDwvY2RzLXRhYj5cblxuICAgICAgICA8Y2RzLXRhYlxuICAgICAgICAgIFtoZWFkaW5nXT1cIid0YXNrLWxpc3Qub3Blbi50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFthY3RpdmVdPVwib2JzLnNlbGVjdGVkVGFza1R5cGUgPT09ICdvcGVuJ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9jZHMtdGFiPlxuXG4gICAgICAgIDxjZHMtdGFiXG4gICAgICAgICAgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC5hbGwudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbYWN0aXZlXT1cIm9icy5zZWxlY3RlZFRhc2tUeXBlID09PSAnYWxsJ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9jZHMtdGFiPlxuICAgICAgPC9jZHMtdGFicz5cblxuICAgICAgPGNkcy10YWJzICpuZ0lmPVwib2JzLnZpc2libGVUYWJzXCIgdHlwZT1cImNvbnRhaW5lZFwiIGNsYXNzPVwidmFsdGltby1jYXJib24tbGlzdF9fdGFic1wiPlxuICAgICAgICA8Y2RzLXRhYlxuICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2Ygb2JzLnZpc2libGVUYWJzXCJcbiAgICAgICAgICBbaGVhZGluZ109XCIndGFzay1saXN0LicgKyB0YWIgKyAnLnRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJvYnMuc2VsZWN0ZWRUYXNrVHlwZSA9PT0gdGFiXCJcbiAgICAgICAgPjwvY2RzLXRhYj5cbiAgICAgIDwvY2RzLXRhYnM+XG4gICAgPC9kaXY+XG4gIDwvdmFsdGltby1jYXJib24tbGlzdD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgcmVuZGVySW5QYWdlSGVhZGVyIFtmdWxsV2lkdGhdPVwidHJ1ZVwiPlxuICA8bmctdGVtcGxhdGU+XG4gICAgPGNkcy1kcm9wZG93blxuICAgICAgY2xhc3M9XCJjYXNlLWRlZmluaXRpb24tc2VsZWN0aW9uXCJcbiAgICAgICpuZ0lmPVwie1xuICAgICAgICBsb2FkaW5nQ2FzZUxpc3RJdGVtczogbG9hZGluZ0Nhc2VMaXN0SXRlbXMkIHwgYXN5bmMsXG4gICAgICAgIGNhc2VMaXN0SXRlbXM6IGNhc2VMaXN0SXRlbXMkIHwgYXN5bmNcbiAgICAgIH0gYXMgb2JzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMubG9hZGluZ0Nhc2VMaXN0SXRlbXMgfHwgKG9icy5jYXNlTGlzdEl0ZW1zIHx8IFtdKS5sZW5ndGggPT09IDFcIlxuICAgICAgW3NrZWxldG9uXT1cIm9icy5sb2FkaW5nQ2FzZUxpc3RJdGVtc1wiXG4gICAgICAoc2VsZWN0ZWQpPVwic2V0Q2FzZURlZmluaXRpb24oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0XG4gICAgICAgIFtpdGVtc109XCJvYnMuY2FzZUxpc3RJdGVtcyB8fCBbXVwiXG4gICAgICA+PC9jZHMtZHJvcGRvd24tbGlzdD48L2Nkcy1kcm9wZG93bj48L25nLXRlbXBsYXRlXG4+PC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -16,4 +16,4 @@
16
16
  export * from './task.model';
17
17
  export * from './task-definition.model';
18
18
  export * from './task-list.model';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3Rhc2subW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi90YXNrLWRlZmluaXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi90YXNrLWxpc3QubW9kZWwnO1xuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3Rhc2subW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi90YXNrLWRlZmluaXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi90YXNrLWxpc3QubW9kZWwnO1xuIl19
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -14,4 +14,4 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export {};
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZWZpbml0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvbW9kZWxzL3Rhc2stZGVmaW5pdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Rm9ybURlZmluaXRpb259IGZyb20gJ0B2YWx0aW1vL2Zvcm0tbWFuYWdlbWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFza0RlZmluaXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGZvcm1EZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbiB8IG51bGw7XG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZWZpbml0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvbW9kZWxzL3Rhc2stZGVmaW5pdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Rm9ybURlZmluaXRpb259IGZyb20gJ0B2YWx0aW1vL2Zvcm0tbWFuYWdlbWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFza0RlZmluaXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGZvcm1EZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbiB8IG51bGw7XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -13,16 +13,10 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export class TaskList {
17
- constructor() {
18
- this.tasks = [];
19
- this.fields = [];
20
- this.pagination = {
21
- collectionSize: 0,
22
- page: 1,
23
- size: 10,
24
- };
25
- this.page = 0;
26
- }
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvbW9kZWxzL3Rhc2stbGlzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE1BQU0sT0FBTyxRQUFRO0lBQXJCO1FBQ1MsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osZUFBVSxHQUFHO1lBQ1gsY0FBYyxFQUFFLENBQUM7WUFDakIsSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7UUFDRixTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IGNsYXNzIFRhc2tMaXN0IHtcbiAgcHVibGljIHRhc2tzID0gW107XG4gIGZpZWxkcyA9IFtdO1xuICBwYWdpbmF0aW9uID0ge1xuICAgIGNvbGxlY3Rpb25TaXplOiAwLFxuICAgIHBhZ2U6IDEsXG4gICAgc2l6ZTogMTAsXG4gIH07XG4gIHBhZ2UgPSAwO1xufVxuIl19
16
+ var TaskListColumnDefaultSort;
17
+ (function (TaskListColumnDefaultSort) {
18
+ TaskListColumnDefaultSort["ASC"] = "ASC";
19
+ TaskListColumnDefaultSort["DESC"] = "DESC";
20
+ })(TaskListColumnDefaultSort || (TaskListColumnDefaultSort = {}));
21
+ export { TaskListColumnDefaultSort, };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvbW9kZWxzL3Rhc2stbGlzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQVlILElBQUsseUJBR0o7QUFIRCxXQUFLLHlCQUF5QjtJQUM1Qix3Q0FBVyxDQUFBO0lBQ1gsMENBQWEsQ0FBQTtBQUNmLENBQUMsRUFISSx5QkFBeUIsS0FBekIseUJBQXlCLFFBRzdCO0FBNENELE9BQU8sRUFHTCx5QkFBeUIsR0FRMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TGlzdEl0ZW19IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvZHJvcGRvd24vbGlzdC1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQge1Rhc2tMaXN0VGFifSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5pbnRlcmZhY2UgVGFza1BhZ2VQYXJhbXMge1xuICBwYWdlOiBudW1iZXI7XG4gIHNpemU6IG51bWJlcjtcbiAgY29sbGVjdGlvblNpemU/OiBudW1iZXI7XG4gIHNvcnQ/OiBzdHJpbmc7XG59XG5cbmVudW0gVGFza0xpc3RDb2x1bW5EZWZhdWx0U29ydCB7XG4gIEFTQyA9ICdBU0MnLFxuICBERVNDID0gJ0RFU0MnLFxufVxuXG5pbnRlcmZhY2UgVGFza0xpc3RDb2x1bW5FbnVtIHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVGFza0xpc3RDb2x1bW5EaXNwbGF5VHlwZVBhcmFtZXRlcnMge1xuICBlbnVtPzogVGFza0xpc3RDb2x1bW5FbnVtO1xuICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVGFza0xpc3RDb2x1bW5EaXNwbGF5VHlwZSB7XG4gIHR5cGU6IHN0cmluZztcbiAgZGlzcGxheVR5cGVQYXJhbWV0ZXJzPzogVGFza0xpc3RDb2x1bW5EaXNwbGF5VHlwZVBhcmFtZXRlcnM7XG59XG5cbmludGVyZmFjZSBUYXNrTGlzdENvbHVtbiB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBkaXNwbGF5VHlwZTogVGFza0xpc3RDb2x1bW5EaXNwbGF5VHlwZTtcbiAgc29ydGFibGU6IGJvb2xlYW47XG4gIGRlZmF1bHRTb3J0PzogVGFza0xpc3RDb2x1bW5EZWZhdWx0U29ydDtcbiAgb3JkZXI/OiBudW1iZXI7XG59XG5cbnR5cGUgVGFza0xpc3RDb2x1bW5Nb2RhbFR5cGUgPSAnZWRpdCcgfCAnYWRkJztcblxudHlwZSBUYXNrTGlzdENvbHVtbk1vZGFsQ2xvc2VFdmVudCA9ICdjbG9zZScgfCAncmVmcmVzaCc7XG5cbmludGVyZmFjZSBUYXNrTGlzdENvbHVtbkxpc3RJdGVtIGV4dGVuZHMgTGlzdEl0ZW0ge1xuICBrZXk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFRhc2tMaXN0UGFyYW1zIHtcbiAgcGFyYW1zOiB7XG4gICAgc2VsZWN0ZWRUYXNrVHlwZTogVGFza0xpc3RUYWI7XG4gICAgcGFyYW1zOiBUYXNrUGFnZVBhcmFtcztcbiAgICBjYXNlRGVmaW5pdGlvbk5hbWU/OiBzdHJpbmc7XG4gICAgcmVsb2FkOiBib29sZWFuO1xuICB9O1xuICBlbmFibGVMb2FkaW5nQW5pbWF0aW9uOiBib29sZWFuO1xufVxuXG5leHBvcnQge1xuICBUYXNrTGlzdENvbHVtbixcbiAgVGFza0xpc3RDb2x1bW5EaXNwbGF5VHlwZSxcbiAgVGFza0xpc3RDb2x1bW5EZWZhdWx0U29ydCxcbiAgVGFza0xpc3RDb2x1bW5Nb2RhbFR5cGUsXG4gIFRhc2tMaXN0Q29sdW1uTGlzdEl0ZW0sXG4gIFRhc2tMaXN0Q29sdW1uTW9kYWxDbG9zZUV2ZW50LFxuICBUYXNrTGlzdENvbHVtbkRpc3BsYXlUeXBlUGFyYW1ldGVycyxcbiAgVGFza0xpc3RDb2x1bW5FbnVtLFxuICBUYXNrUGFnZVBhcmFtcyxcbiAgVGFza0xpc3RQYXJhbXMsXG59O1xuIl19
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -14,4 +14,4 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export {};
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL21vZGVscy90YXNrLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtVc2VyfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5pbnRlcmZhY2UgVGFzayB7XG4gIGFzc2lnbmVlOiBzdHJpbmc7XG4gIGNhc2VEZWZpbml0aW9uSWQ6IHN0cmluZztcbiAgY2FzZUV4ZWN1dGlvbklkOiBzdHJpbmc7XG4gIGNhc2VJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIGNyZWF0ZWQ6IHN0cmluZztcbiAgZGVsZWdhdGlvblN0YXRlOiBhbnk7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGR1ZTogc3RyaW5nO1xuICBleGVjdXRpb25JZDogc3RyaW5nO1xuICBmb2xsb3dVcDogYW55O1xuICBmb3JtS2V5OiBzdHJpbmc7XG4gIGZvcm1sZXNzOiBib29sZWFuO1xuICBpZDogc3RyaW5nO1xuICBsaXN0SXRlbUZpZWxkczogTGlzdEl0ZW1GaWVsZFtdO1xuICBuYW1lOiBzdHJpbmc7XG4gIG93bmVyOiBzdHJpbmc7XG4gIHBhcmVudFRhc2tJZDogc3RyaW5nO1xuICBwcmlvcml0eTogbnVtYmVyO1xuICBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIHN1c3BlbmRlZDogYm9vbGVhbjtcbiAgdGFza0RlZmluaXRpb25LZXk6IHN0cmluZztcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgZm9ybUxvY2F0aW9uOiBzdHJpbmc7XG4gIGJ1c2luZXNzS2V5OiBzdHJpbmc7XG4gIHByb2Nlc3NEZWZpbml0aW9uS2V5OiBzdHJpbmc7XG4gIHZhbHRpbW9Bc3NpZ25lZTogVXNlcjtcbiAgbG9ja2VkPzogYm9vbGVhbjtcbiAgY2FzZUxvY2tlZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBMaXN0SXRlbUZpZWxkIHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBc3NpZ25lZVJlcXVlc3Qge1xuICBhc3NpZ25lZTogc3RyaW5nO1xufVxuXG50eXBlIFRhc2tQcm9jZXNzTGlua1R5cGUgPSAnZm9ybScgfCAnZm9ybS1mbG93JztcblxuaW50ZXJmYWNlIFRhc2tQcm9jZXNzTGlua1Jlc3VsdCB7XG4gIHByb2Nlc3NMaW5rSWQ6IHN0cmluZztcbiAgdHlwZTogVGFza1Byb2Nlc3NMaW5rVHlwZTtcbiAgcHJvcGVydGllczoge1xuICAgIGZvcm1GbG93SW5zdGFuY2VJZD86IHN0cmluZztcbiAgICBmb3JtRGVmaW5pdGlvbklkPzogc3RyaW5nO1xuICAgIHByZWZpbGxlZEZvcm0/OiBhbnk7XG4gIH07XG59XG5cbmV4cG9ydCB7QXNzaWduZWVSZXF1ZXN0LCBMaXN0SXRlbUZpZWxkLCBUYXNrLCBUYXNrUHJvY2Vzc0xpbmtSZXN1bHQsIFRhc2tQcm9jZXNzTGlua1R5cGV9O1xuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL21vZGVscy90YXNrLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtVc2VyfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5pbnRlcmZhY2UgVGFzayB7XG4gIGFzc2lnbmVlOiBzdHJpbmc7XG4gIGNhc2VEZWZpbml0aW9uSWQ6IHN0cmluZztcbiAgY2FzZUV4ZWN1dGlvbklkOiBzdHJpbmc7XG4gIGNhc2VJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIGNyZWF0ZWQ6IHN0cmluZztcbiAgZGVsZWdhdGlvblN0YXRlOiBhbnk7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGR1ZTogc3RyaW5nO1xuICBleGVjdXRpb25JZDogc3RyaW5nO1xuICBmb2xsb3dVcDogYW55O1xuICBmb3JtS2V5OiBzdHJpbmc7XG4gIGZvcm1sZXNzOiBib29sZWFuO1xuICBpZDogc3RyaW5nO1xuICBsaXN0SXRlbUZpZWxkczogTGlzdEl0ZW1GaWVsZFtdO1xuICBuYW1lOiBzdHJpbmc7XG4gIG93bmVyOiBzdHJpbmc7XG4gIHBhcmVudFRhc2tJZDogc3RyaW5nO1xuICBwcmlvcml0eTogbnVtYmVyO1xuICBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIHN1c3BlbmRlZDogYm9vbGVhbjtcbiAgdGFza0RlZmluaXRpb25LZXk6IHN0cmluZztcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgZm9ybUxvY2F0aW9uOiBzdHJpbmc7XG4gIGJ1c2luZXNzS2V5OiBzdHJpbmc7XG4gIHByb2Nlc3NEZWZpbml0aW9uS2V5OiBzdHJpbmc7XG4gIHZhbHRpbW9Bc3NpZ25lZTogVXNlcjtcbiAgbG9ja2VkPzogYm9vbGVhbjtcbiAgY2FzZUxvY2tlZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBMaXN0SXRlbUZpZWxkIHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBc3NpZ25lZVJlcXVlc3Qge1xuICBhc3NpZ25lZTogc3RyaW5nO1xufVxuXG50eXBlIFRhc2tQcm9jZXNzTGlua1R5cGUgPSAnZm9ybScgfCAnZm9ybS1mbG93JztcblxuaW50ZXJmYWNlIFRhc2tQcm9jZXNzTGlua1Jlc3VsdCB7XG4gIHByb2Nlc3NMaW5rSWQ6IHN0cmluZztcbiAgdHlwZTogVGFza1Byb2Nlc3NMaW5rVHlwZTtcbiAgcHJvcGVydGllczoge1xuICAgIGZvcm1GbG93SW5zdGFuY2VJZD86IHN0cmluZztcbiAgICBmb3JtRGVmaW5pdGlvbklkPzogc3RyaW5nO1xuICAgIHByZWZpbGxlZEZvcm0/OiBhbnk7XG4gIH07XG59XG5cbmludGVyZmFjZSBTcGVjaWZpZWRUYXNrIHtcbiAgaWQ6IHN0cmluZztcbiAgYnVzaW5lc3NLZXk6IHN0cmluZztcbiAgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBjcmVhdGVkOiBEYXRlO1xuICBpdGVtczoge2tleTogc3RyaW5nOyB2YWx1ZTogYW55fVtdO1xufVxuXG5pbnRlcmZhY2UgTWFwcGVkU3BlY2lmaWVkVGFzayB7XG4gIGlkOiBzdHJpbmc7XG4gIGJ1c2luZXNzS2V5OiBzdHJpbmc7XG4gIHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgY3JlYXRlZD86IHN0cmluZztcbiAgbG9ja2VkPzogYm9vbGVhbjtcbiAgY2FzZUxvY2tlZD86IGJvb2xlYW47XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IHtcbiAgQXNzaWduZWVSZXF1ZXN0LFxuICBMaXN0SXRlbUZpZWxkLFxuICBUYXNrLFxuICBUYXNrUHJvY2Vzc0xpbmtSZXN1bHQsXG4gIFRhc2tQcm9jZXNzTGlua1R5cGUsXG4gIFNwZWNpZmllZFRhc2ssXG4gIE1hcHBlZFNwZWNpZmllZFRhc2ssXG59O1xuIl19
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright 2015-2024 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
+ export * from './task.service';
17
+ export * from './task-list.service';
18
+ export * from './task-list-column.service';
19
+ export * from './task-list-pagination.service';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3Rhc2suc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stbGlzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1saXN0LWNvbHVtbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1saXN0LXBhZ2luYXRpb24uc2VydmljZSc7XG4iXX0=