@valtimo/task 12.14.0 → 13.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/fesm2022/valtimo-task.mjs +218 -173
- package/fesm2022/valtimo-task.mjs.map +1 -1
- package/lib/components/assign-user-to-task/assign-user-to-task.component.d.ts +1 -1
- package/lib/components/task-detail-content/task-detail-content.component.d.ts +3 -4
- package/lib/components/task-detail-content/task-detail-content.component.d.ts.map +1 -1
- package/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.d.ts +5 -6
- package/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.d.ts.map +1 -1
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts +10 -4
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts.map +1 -1
- package/lib/components/task-list/task-list.component.d.ts +8 -4
- package/lib/components/task-list/task-list.component.d.ts.map +1 -1
- package/lib/models/index.d.ts +1 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/task-list.model.d.ts +2 -2
- package/lib/models/task-list.model.d.ts.map +1 -1
- package/lib/models/task-sse-event.model.d.ts +8 -0
- package/lib/models/task-sse-event.model.d.ts.map +1 -0
- package/lib/models/task.model.d.ts +1 -1
- package/lib/services/task-intermediate-save.service.d.ts +1 -1
- package/lib/services/task-intermediate-save.service.d.ts.map +1 -1
- package/lib/services/task-list-pagination.service.d.ts +1 -1
- package/lib/services/task-list-search.service.d.ts +1 -1
- package/lib/services/task-list-sort.service.d.ts +1 -1
- package/lib/services/task-list.service.d.ts +4 -7
- package/lib/services/task-list.service.d.ts.map +1 -1
- package/lib/services/task.service.d.ts +4 -4
- package/lib/services/task.service.d.ts.map +1 -1
- package/lib/task-permissions.d.ts +1 -1
- package/lib/task-permissions.d.ts.map +1 -1
- package/lib/task.module.d.ts +9 -10
- package/lib/task.module.d.ts.map +1 -1
- package/package.json +4 -7
- package/esm2022/lib/components/assign-user-to-task/assign-user-to-task.component.mjs +0 -210
- package/esm2022/lib/components/set-task-due-date/set-task-due-date.component.mjs +0 -128
- package/esm2022/lib/components/task-detail-content/task-detail-content.component.mjs +0 -398
- package/esm2022/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.mjs +0 -168
- package/esm2022/lib/components/task-detail-modal/task-detail-modal.component.mjs +0 -151
- package/esm2022/lib/components/task-list/task-list.component.mjs +0 -361
- package/esm2022/lib/constants/index.mjs +0 -17
- package/esm2022/lib/constants/task-list.constants.mjs +0 -22
- package/esm2022/lib/models/index.mjs +0 -21
- package/esm2022/lib/models/task-definition.model.mjs +0 -17
- package/esm2022/lib/models/task-intermediate-save.model.mjs +0 -17
- package/esm2022/lib/models/task-list-search-field.model.mjs +0 -43
- package/esm2022/lib/models/task-list.model.mjs +0 -22
- package/esm2022/lib/models/task.model.mjs +0 -17
- package/esm2022/lib/services/index.mjs +0 -23
- package/esm2022/lib/services/task-intermediate-save.service.mjs +0 -73
- package/esm2022/lib/services/task-list-column.service.mjs +0 -193
- package/esm2022/lib/services/task-list-pagination.service.mjs +0 -74
- package/esm2022/lib/services/task-list-query-param.service.mjs +0 -53
- package/esm2022/lib/services/task-list-search.service.mjs +0 -99
- package/esm2022/lib/services/task-list-sort.service.mjs +0 -116
- package/esm2022/lib/services/task-list.service.mjs +0 -60
- package/esm2022/lib/services/task.service.mjs +0 -104
- package/esm2022/lib/task-permissions.mjs +0 -44
- package/esm2022/lib/task-routing.module.mjs +0 -45
- package/esm2022/lib/task.module.mjs +0 -158
- package/esm2022/public_api.mjs +0 -31
- package/esm2022/valtimo-task.mjs +0 -5
|
@@ -1,361 +0,0 @@
|
|
|
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, HostListener, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
17
|
-
import moment from 'moment';
|
|
18
|
-
import { BehaviorSubject, combineLatest, of, Subject, 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, TaskListQueryParamService, TaskListSearchService, TaskListService, } from '../../services';
|
|
23
|
-
import { isEqual } from 'lodash';
|
|
24
|
-
import { TaskListSortService } from '../../services/task-list-sort.service';
|
|
25
|
-
import { TASK_LIST_NO_SEARCH_RESULTS_MESSAGE } from '../../constants';
|
|
26
|
-
import * as i0 from "@angular/core";
|
|
27
|
-
import * as i1 from "@valtimo/config";
|
|
28
|
-
import * as i2 from "@valtimo/document";
|
|
29
|
-
import * as i3 from "@valtimo/access-control";
|
|
30
|
-
import * as i4 from "@angular/router";
|
|
31
|
-
import * as i5 from "../../services/task.service";
|
|
32
|
-
import * as i6 from "../../services";
|
|
33
|
-
import * as i7 from "@ngx-translate/core";
|
|
34
|
-
import * as i8 from "../../services/task-list-sort.service";
|
|
35
|
-
import * as i9 from "@valtimo/components";
|
|
36
|
-
import * as i10 from "@angular/common";
|
|
37
|
-
import * as i11 from "@ng-bootstrap/ng-bootstrap";
|
|
38
|
-
import * as i12 from "carbon-components-angular";
|
|
39
|
-
import * as i13 from "carbon-components-angular/dropdown";
|
|
40
|
-
import * as i14 from "../task-detail-modal/task-detail-modal.component";
|
|
41
|
-
moment.locale(localStorage.getItem('langKey') || '');
|
|
42
|
-
export class TaskListComponent {
|
|
43
|
-
onPopState() {
|
|
44
|
-
setTimeout(() => {
|
|
45
|
-
this.setParamsFromQueryParams();
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
constructor(configService, documentService, permissionService, router, taskService, taskListService, translateService, taskListColumnService, taskListPaginationService, taskListSortService, taskListSearchService, taskListQueryParamService, pageTitleService) {
|
|
49
|
-
this.configService = configService;
|
|
50
|
-
this.documentService = documentService;
|
|
51
|
-
this.permissionService = permissionService;
|
|
52
|
-
this.router = router;
|
|
53
|
-
this.taskService = taskService;
|
|
54
|
-
this.taskListService = taskListService;
|
|
55
|
-
this.translateService = translateService;
|
|
56
|
-
this.taskListColumnService = taskListColumnService;
|
|
57
|
-
this.taskListPaginationService = taskListPaginationService;
|
|
58
|
-
this.taskListSortService = taskListSortService;
|
|
59
|
-
this.taskListSearchService = taskListSearchService;
|
|
60
|
-
this.taskListQueryParamService = taskListQueryParamService;
|
|
61
|
-
this.pageTitleService = pageTitleService;
|
|
62
|
-
this.ALL_CASES_ID = this.taskListService.ALL_CASES_ID;
|
|
63
|
-
this.selectedTaskType$ = this.taskListService.selectedTaskType$;
|
|
64
|
-
this._overrideNoResultsMessage$ = new BehaviorSubject(null);
|
|
65
|
-
this.noResultsMessage$ = combineLatest([
|
|
66
|
-
this.selectedTaskType$,
|
|
67
|
-
this._overrideNoResultsMessage$,
|
|
68
|
-
]).pipe(map(([selectedTaskType, overrideNoResultsMessage]) => overrideNoResultsMessage || {
|
|
69
|
-
title: 'task-list.' + selectedTaskType + '.noResultsTitle',
|
|
70
|
-
description: 'task-list.' + selectedTaskType + '.noResultsDescription',
|
|
71
|
-
isSearchResult: false,
|
|
72
|
-
}));
|
|
73
|
-
this.fields$ = this.taskListColumnService.fields$;
|
|
74
|
-
this.loadingTasks$ = new BehaviorSubject(true);
|
|
75
|
-
this.visibleTabs$ = new BehaviorSubject(null);
|
|
76
|
-
this._enableLoadingAnimation$ = new BehaviorSubject(true);
|
|
77
|
-
this.cachedTasks$ = new BehaviorSubject(null);
|
|
78
|
-
this.paginationForCurrentTaskTypeForList$ = this.taskListPaginationService.paginationForCurrentTaskTypeForList$;
|
|
79
|
-
this.sortStateForCurrentTaskType$ = this.taskListSortService.sortStateForCurrentTaskType$;
|
|
80
|
-
this.overrideSortState$ = this.taskListSortService.overrideSortState$;
|
|
81
|
-
this._reload$ = new BehaviorSubject(true);
|
|
82
|
-
this.caseDefinitionName$ = this.taskListService.caseDefinitionName$;
|
|
83
|
-
this.tasks$ = combineLatest([
|
|
84
|
-
this.taskListService.loadingStateForCaseDefinition$,
|
|
85
|
-
this.selectedTaskType$,
|
|
86
|
-
this.taskListPaginationService.paginationForCurrentTaskType$,
|
|
87
|
-
this.taskListSortService.sortStringForCurrentTaskType$,
|
|
88
|
-
this.caseDefinitionName$,
|
|
89
|
-
this._enableLoadingAnimation$,
|
|
90
|
-
this._reload$,
|
|
91
|
-
this.taskListSearchService.otherFilters$,
|
|
92
|
-
this.taskListSortService.overrideSortStateString$,
|
|
93
|
-
]).pipe(filter(([loadingStateForCaseDefinition]) => loadingStateForCaseDefinition === false), map(([_, selectedTaskType, paginationForSelectedTaskType, sortStringForSelectedTaskType, caseDefinitionName, enableLoadingAnimation, reload, otherFilters, overrideSortStateString,]) => this.getTaskListParams(paginationForSelectedTaskType, overrideSortStateString || sortStringForSelectedTaskType, selectedTaskType, caseDefinitionName, enableLoadingAnimation, reload, otherFilters)), distinctUntilChanged((previous, current) => isEqual(previous.params, current.params)), tap(params => {
|
|
94
|
-
if (params.enableLoadingAnimation)
|
|
95
|
-
this.loadingTasks$.next(true);
|
|
96
|
-
this.taskListQueryParamService.setTaskListParams(params.params);
|
|
97
|
-
}), switchMap(({ params }) => combineLatest([
|
|
98
|
-
this.taskService.queryTasksPageV3(params.selectedTaskType, params.params, params.caseDefinitionName, params.otherFilters),
|
|
99
|
-
of(!!params.caseDefinitionName),
|
|
100
|
-
])), switchMap(([tasksResult, isSpecified]) => this.getTaskListPermissionsRequest(tasksResult, isSpecified)), map(([isSpecified, taskResult, canViewTaskPermissions, canViewCasePermissions]) => {
|
|
101
|
-
this.updateTaskListPaginationAfterResponse(Number(taskResult.totalElements));
|
|
102
|
-
return this.mapTasksForList(isSpecified, taskResult, canViewTaskPermissions, canViewCasePermissions);
|
|
103
|
-
}), tap(tasks => {
|
|
104
|
-
this.cachedTasks$.next(tasks);
|
|
105
|
-
this.loadingTasks$.next(false);
|
|
106
|
-
this.disableLoadingAnimation();
|
|
107
|
-
this.taskListSearchService.otherFilters$.pipe(take(1)).subscribe(otherFilters => {
|
|
108
|
-
this._overrideNoResultsMessage$.next(otherFilters?.length > 0 ? TASK_LIST_NO_SEARCH_RESULTS_MESSAGE : null);
|
|
109
|
-
});
|
|
110
|
-
}));
|
|
111
|
-
this.loadingCaseListItems$ = new BehaviorSubject(true);
|
|
112
|
-
this._selectedCaseDefinitionId$ = new BehaviorSubject(this.ALL_CASES_ID);
|
|
113
|
-
this.caseListItems$ = combineLatest([
|
|
114
|
-
this.documentService.getAllDefinitions(),
|
|
115
|
-
this._selectedCaseDefinitionId$,
|
|
116
|
-
this.translateService.stream('key'),
|
|
117
|
-
]).pipe(map(([documentDefinitionRes, selectedCaseDefinitionId]) => [
|
|
118
|
-
{
|
|
119
|
-
content: this.translateService.instant('task-list.allCases'),
|
|
120
|
-
id: this.ALL_CASES_ID,
|
|
121
|
-
selected: selectedCaseDefinitionId === this.ALL_CASES_ID,
|
|
122
|
-
},
|
|
123
|
-
...documentDefinitionRes.content.map(documentDefinition => ({
|
|
124
|
-
id: documentDefinition.id.name,
|
|
125
|
-
content: documentDefinition?.schema?.title,
|
|
126
|
-
selected: documentDefinition.id.name === selectedCaseDefinitionId,
|
|
127
|
-
})),
|
|
128
|
-
]), tap(() => this.loadingCaseListItems$.next(false)));
|
|
129
|
-
this.taskListColumnsForCase$ = this.taskListColumnService.taskListColumnsForCase$;
|
|
130
|
-
this.loadingSearchFields$ = this.taskListSearchService.loadingSearchFields$;
|
|
131
|
-
this.searchFields$ = this.taskListSearchService.searchFields$;
|
|
132
|
-
this._DEFAULT_TASK_LIST_TABS = [
|
|
133
|
-
TaskListTab.MINE,
|
|
134
|
-
TaskListTab.OPEN,
|
|
135
|
-
TaskListTab.ALL,
|
|
136
|
-
];
|
|
137
|
-
this.setSearchFieldValuesSubject$ = new BehaviorSubject({});
|
|
138
|
-
this.clearSearchFieldValuesSubject$ = new Subject();
|
|
139
|
-
}
|
|
140
|
-
ngOnInit() {
|
|
141
|
-
this.taskListColumnService.resetTaskListFields();
|
|
142
|
-
this.setVisibleTabs();
|
|
143
|
-
this.pageTitleService.disableReset();
|
|
144
|
-
this.setParamsFromQueryParams();
|
|
145
|
-
}
|
|
146
|
-
ngOnDestroy() {
|
|
147
|
-
this.pageTitleService.enableReset();
|
|
148
|
-
}
|
|
149
|
-
paginationClicked(page, type) {
|
|
150
|
-
this.taskListPaginationService.updateTaskPagination(type, { page: page - 1 });
|
|
151
|
-
}
|
|
152
|
-
paginationSet(newSize) {
|
|
153
|
-
combineLatest([
|
|
154
|
-
this.taskListPaginationService.paginationForCurrentTaskType$,
|
|
155
|
-
this.taskListService.selectedTaskType$,
|
|
156
|
-
])
|
|
157
|
-
.pipe(take(1))
|
|
158
|
-
.subscribe(([pagination, selectedTaskType]) => {
|
|
159
|
-
this.taskListPaginationService.updateTaskPagination(selectedTaskType, {
|
|
160
|
-
size: Number(newSize),
|
|
161
|
-
page: this.taskListPaginationService.getLastAvailablePage(pagination.page, Number(newSize), pagination.collectionSize),
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
tabChange(tab) {
|
|
166
|
-
this.taskListService.selectedTaskType$.pipe(take(1)).subscribe(selectedTaskType => {
|
|
167
|
-
if (selectedTaskType !== tab) {
|
|
168
|
-
this.enableLoadingAnimation();
|
|
169
|
-
this.taskListService.setSelectedTaskType(tab);
|
|
170
|
-
this.taskListPaginationService.updateTaskPagination(tab, { page: 0 });
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
openRelatedCase(event, index) {
|
|
175
|
-
event.stopPropagation();
|
|
176
|
-
this.cachedTasks$.pipe(take(1)).subscribe(cachedTasks => {
|
|
177
|
-
const currentTask = cachedTasks && cachedTasks[index];
|
|
178
|
-
if (currentTask && !currentTask.caseLocked) {
|
|
179
|
-
this.documentService
|
|
180
|
-
.getDocument(currentTask.businessKey)
|
|
181
|
-
.pipe(take(1))
|
|
182
|
-
.subscribe(document => {
|
|
183
|
-
this.router.navigate([
|
|
184
|
-
`/dossiers/${document.definitionId?.name}/document/${currentTask.businessKey}`,
|
|
185
|
-
]);
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
rowOpenTaskClick(task) {
|
|
191
|
-
return !task.endTime && !task.locked ? this._taskDetail.openTaskDetails(task) : false;
|
|
192
|
-
}
|
|
193
|
-
sortChanged(sortState) {
|
|
194
|
-
this.taskListSortService.setOverrideSortState(sortState);
|
|
195
|
-
this.taskListSortService.updateSortState(this.taskListService.selectedTaskType, sortState);
|
|
196
|
-
}
|
|
197
|
-
setCaseDefinition(definition) {
|
|
198
|
-
if (definition.item.id) {
|
|
199
|
-
this.taskListSortService.resetOverrideSortState();
|
|
200
|
-
this.loadingTasks$.next(true);
|
|
201
|
-
this.taskListService.setCaseDefinitionName(definition.item.id);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
reload() {
|
|
205
|
-
this.enableLoadingAnimation();
|
|
206
|
-
this._reload$.next(!this._reload$.getValue());
|
|
207
|
-
}
|
|
208
|
-
search(searchFieldValues) {
|
|
209
|
-
if (!searchFieldValues)
|
|
210
|
-
return;
|
|
211
|
-
this.taskListSearchService.setSearchFieldValues(searchFieldValues);
|
|
212
|
-
}
|
|
213
|
-
updateTaskListPaginationAfterResponse(newCollectionSize) {
|
|
214
|
-
this.taskListPaginationService.paginationForCurrentTaskType$
|
|
215
|
-
.pipe(take(1))
|
|
216
|
-
.subscribe(currentPagination => {
|
|
217
|
-
this.taskListPaginationService.updateTaskPagination(this.taskListService.selectedTaskType, {
|
|
218
|
-
collectionSize: Number(newCollectionSize),
|
|
219
|
-
page: this.taskListPaginationService.getLastAvailablePage(currentPagination.page, currentPagination.size, newCollectionSize),
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
setVisibleTabs() {
|
|
224
|
-
const visibleTabs = this.configService.config?.visibleTaskListTabs;
|
|
225
|
-
if (visibleTabs) {
|
|
226
|
-
this.visibleTabs$.next(visibleTabs);
|
|
227
|
-
this.taskListService.setSelectedTaskType(visibleTabs[0]);
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
this.visibleTabs$.next(this._DEFAULT_TASK_LIST_TABS);
|
|
231
|
-
this.taskListService.setSelectedTaskType(this._DEFAULT_TASK_LIST_TABS[0]);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
disableLoadingAnimation() {
|
|
235
|
-
this._enableLoadingAnimation$.next(false);
|
|
236
|
-
}
|
|
237
|
-
enableLoadingAnimation() {
|
|
238
|
-
this._enableLoadingAnimation$.next(true);
|
|
239
|
-
}
|
|
240
|
-
getTaskListParams(paginationForSelectedTaskType, sortStringForSelectedTaskType, selectedTaskType, caseDefinitionName, enableLoadingAnimation, reload, otherFilters) {
|
|
241
|
-
const params = {
|
|
242
|
-
...paginationForSelectedTaskType,
|
|
243
|
-
...(sortStringForSelectedTaskType && { sort: sortStringForSelectedTaskType }),
|
|
244
|
-
};
|
|
245
|
-
delete params.collectionSize;
|
|
246
|
-
return {
|
|
247
|
-
params: {
|
|
248
|
-
reload,
|
|
249
|
-
selectedTaskType,
|
|
250
|
-
params,
|
|
251
|
-
...(caseDefinitionName && caseDefinitionName !== this.ALL_CASES_ID && { caseDefinitionName }),
|
|
252
|
-
...(otherFilters && { otherFilters }),
|
|
253
|
-
},
|
|
254
|
-
enableLoadingAnimation,
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
getTaskListPermissionsRequest(tasksResult, isSpecified) {
|
|
258
|
-
const taskResults = tasksResult.content;
|
|
259
|
-
const hasTaskResults = Array.isArray(taskResults) && taskResults.length > 0;
|
|
260
|
-
return combineLatest([
|
|
261
|
-
of(isSpecified),
|
|
262
|
-
of(tasksResult),
|
|
263
|
-
hasTaskResults
|
|
264
|
-
? combineLatest(taskResults.map(task => this.permissionService.requestPermission(CAN_VIEW_TASK_PERMISSION, {
|
|
265
|
-
resource: TASK_DETAIL_PERMISSION_RESOURCE.task,
|
|
266
|
-
identifier: !isSpecified ? task.id : task.id,
|
|
267
|
-
})))
|
|
268
|
-
: of(null),
|
|
269
|
-
hasTaskResults
|
|
270
|
-
? combineLatest(taskResults.map(task => this.permissionService.requestPermission(CAN_VIEW_CASE_PERMISSION, {
|
|
271
|
-
resource: TASK_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,
|
|
272
|
-
identifier: task.businessKey,
|
|
273
|
-
})))
|
|
274
|
-
: of(null),
|
|
275
|
-
]);
|
|
276
|
-
}
|
|
277
|
-
mapTasksForList(isSpecified, tasks, canViewTaskPermissions, canViewCasePermissions) {
|
|
278
|
-
const MOMENT_FORMAT = 'DD MMM YYYY HH:mm';
|
|
279
|
-
if (isSpecified) {
|
|
280
|
-
return tasks.content.map((specifiedTask, specifiedTaskIndex) => specifiedTask.items.reduce((acc, curr) => ({
|
|
281
|
-
id: specifiedTask.id,
|
|
282
|
-
businessKey: specifiedTask.businessKey,
|
|
283
|
-
processInstanceId: specifiedTask.processInstanceId,
|
|
284
|
-
name: specifiedTask.name,
|
|
285
|
-
...(moment(specifiedTask.created).isValid() && {
|
|
286
|
-
created: moment(specifiedTask.created).format(MOMENT_FORMAT),
|
|
287
|
-
}),
|
|
288
|
-
...(canViewTaskPermissions && { locked: !canViewTaskPermissions[specifiedTaskIndex] }),
|
|
289
|
-
...(canViewCasePermissions && {
|
|
290
|
-
caseLocked: !canViewCasePermissions[specifiedTaskIndex],
|
|
291
|
-
}),
|
|
292
|
-
...acc,
|
|
293
|
-
[curr.key]: curr.value,
|
|
294
|
-
}), {}));
|
|
295
|
-
}
|
|
296
|
-
return tasks?.content?.map((task, taskIndex) => {
|
|
297
|
-
const createdDate = moment(task.created);
|
|
298
|
-
const dueDate = moment(task.due);
|
|
299
|
-
const taskCopy = { ...task };
|
|
300
|
-
if (task.due && dueDate.isValid())
|
|
301
|
-
taskCopy.due = dueDate.format(MOMENT_FORMAT);
|
|
302
|
-
if (createdDate.isValid())
|
|
303
|
-
taskCopy.created = createdDate.format(MOMENT_FORMAT);
|
|
304
|
-
if (canViewTaskPermissions)
|
|
305
|
-
taskCopy.locked = !canViewTaskPermissions[taskIndex];
|
|
306
|
-
if (canViewCasePermissions)
|
|
307
|
-
taskCopy.caseLocked = !canViewCasePermissions[taskIndex];
|
|
308
|
-
return taskCopy;
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
setParamsFromQueryParams() {
|
|
312
|
-
const decodedParams = this.taskListQueryParamService.getTaskListQueryParams();
|
|
313
|
-
if (decodedParams.caseDefinitionName) {
|
|
314
|
-
this.taskListService.setCaseDefinitionName(decodedParams.caseDefinitionName);
|
|
315
|
-
this._selectedCaseDefinitionId$.next(decodedParams.caseDefinitionName);
|
|
316
|
-
}
|
|
317
|
-
if (decodedParams.otherFilters?.length > 0) {
|
|
318
|
-
const searchFieldValues = this.taskListSearchService.mapOtherFilterToSearchValues(decodedParams.otherFilters);
|
|
319
|
-
this.setSearchFieldValuesSubject$.next(searchFieldValues);
|
|
320
|
-
}
|
|
321
|
-
else {
|
|
322
|
-
this.clearSearchFieldValuesSubject$.next(null);
|
|
323
|
-
}
|
|
324
|
-
if (decodedParams.selectedTaskType)
|
|
325
|
-
this.taskListService.setSelectedTaskType(decodedParams.selectedTaskType);
|
|
326
|
-
if (decodedParams.params?.sort) {
|
|
327
|
-
const stateFromSortString = this.taskListSortService.getSortStateFromSortString(decodedParams.params.sort);
|
|
328
|
-
if (stateFromSortString)
|
|
329
|
-
this.taskListSortService.setOverrideSortState(stateFromSortString);
|
|
330
|
-
}
|
|
331
|
-
if (decodedParams.params)
|
|
332
|
-
this.taskListPaginationService.updateTaskPagination(this.taskListService.selectedTaskType, decodedParams.params);
|
|
333
|
-
}
|
|
334
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", 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 }, { token: i6.TaskListSearchService }, { token: i6.TaskListQueryParamService }, { token: i9.PageTitleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
335
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TaskListComponent, selector: "valtimo-task-list", host: { listeners: { "window:popstate": "onPopState($event)" } }, providers: [
|
|
336
|
-
TaskListService,
|
|
337
|
-
TaskListColumnService,
|
|
338
|
-
TaskListPaginationService,
|
|
339
|
-
TaskListSortService,
|
|
340
|
-
TaskListSearchService,
|
|
341
|
-
TaskListQueryParamService,
|
|
342
|
-
], viewQueries: [{ propertyName: "_taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n loading: loadingTasks$ | async,\n selectedTaskType: selectedTaskType$ | async,\n tasks: tasks$ | async,\n fields: fields$ | async,\n visibleTabs: visibleTabs$ | async,\n pagination: paginationForCurrentTaskTypeForList$ | async,\n taskListColumnsForCase: taskListColumnsForCase$ | async,\n sortState: sortStateForCurrentTaskType$ | async,\n overrideSortState: overrideSortState$ | async,\n searchFields: searchFields$ | async,\n loadingSearchFields: loadingSearchFields$ | async,\n caseDefinitionName: caseDefinitionName$ | async,\n noResultsMessage: noResultsMessage$ | async,\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n @if (obs.caseDefinitionName && obs.caseDefinitionName !== ALL_CASES_ID) {\n <ng-container\n *ngTemplateOutlet=\"\n searchFields;\n context: {\n obs: obs,\n }\n \"\n ></ng-container>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksList;\n context: {\n obs: obs,\n }\n \"\n ></ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksListLoading;\n context: {\n obs: obs,\n }\n \"\n ></ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"reload()\"\n (assignmentOfTaskChanged)=\"reload()\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n<ng-template #configuredTabs let-selectedTaskType=\"selectedTaskType\" let-visibleTabs=\"visibleTabs\">\n <cds-tabs *ngIf=\"visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [attr.data-testid]=\"'task-list-tab-' + tab\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"selectedTaskType === tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n</ng-template>\n\n<ng-template #caseLink let-data=\"data\">\n <ng-container *ngIf=\"cachedTasks$ | async as cachedTasks\">\n <div *ngIf=\"cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link--disabled\"\n cdsLink\n href=\"javascript:void(0)\"\n ngbTooltip=\"{{ 'task-list.caseLocked' | translate }}\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n <div *ngIf=\"!cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tasksList let-obs=\"obs\">\n <valtimo-carbon-list\n *ngIf=\"!obs.loading\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [items]=\"obs.tasks\"\n [lastColumnTemplate]=\"caseLink\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"taskList\"\n lockedTooltipTranslationKey=\"task-list.rowLocked\"\n [sortState]=\"obs.overrideSortState || obs.sortState\"\n (paginationClicked)=\"paginationClicked($event, obs.selectedTaskType)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div tabs>\n <ng-container *ngIf=\"obs.visibleTabs\">\n <ng-container\n *ngTemplateOutlet=\"\n configuredTabs;\n context: {selectedTaskType: obs.selectedTaskType, visibleTabs: obs.visibleTabs}\n \"\n ></ng-container>\n </ng-container>\n </div>\n\n <valtimo-no-results\n [description]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | translate\"\n >\n </valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tasksListLoading let-obs=\"obs\">\n <valtimo-carbon-list *ngIf=\"obs.loading\" [loading]=\"true\">\n <div tabs>\n <cds-tabs *ngIf=\"!obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n [heading]=\"'task-list.mine.title' | translate\"\n [active]=\"obs.selectedTaskType === 'mine'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.open.title' | translate\"\n [active]=\"obs.selectedTaskType === 'open'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.all.title' | translate\"\n [active]=\"obs.selectedTaskType === 'all'\"\n >\n </cds-tab>\n </cds-tabs>\n\n <cds-tabs *ngIf=\"obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of obs.visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"obs.selectedTaskType === tab\"\n ></cds-tab>\n </cds-tabs>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n [inputDisabled]=\"obs.loadingSearchFields\"\n [documentDefinitionName]=\"obs.caseDefinitionName\"\n [setValuesSubject$]=\"setSearchFieldValuesSubject$\"\n [clearValuesSubject$]=\"clearSearchFieldValuesSubject$\"\n (doSearch)=\"search($event)\"\n >\n </valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <cds-dropdown\n class=\"case-definition-selection\"\n *ngIf=\"{\n loadingCaseListItems: loadingCaseListItems$ | async,\n caseListItems: caseListItems$ | async,\n } as obs\"\n [attr.data-testid]=\"'task-list-case-dropdown'\"\n [disabled]=\"obs.loadingCaseListItems || (obs.caseListItems || []).length === 1\"\n [skeleton]=\"obs.loadingCaseListItems\"\n (selected)=\"setCaseDefinition($event)\"\n >\n <cds-dropdown-list [items]=\"obs.caseListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-template>\n</ng-container>\n", styles: [".cds--link--disabled{cursor:not-allowed;pointer-events:auto!important;outline:0!important}.case-definition-selection{display:flex;width:250px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i9.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i9.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i12.Link, selector: "[cdsLink], [ibmLink]", inputs: ["inline", "disabled"] }, { kind: "component", type: i12.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i12.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "directive", type: i9.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i13.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i13.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i9.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "clearValuesSubject$", "defaultValues", "inputDisabled", "externalSearchField"], outputs: ["doSearch"] }, { kind: "component", type: i14.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", inputs: ["modalSize"], outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
343
|
-
}
|
|
344
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskListComponent, decorators: [{
|
|
345
|
-
type: Component,
|
|
346
|
-
args: [{ selector: 'valtimo-task-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
347
|
-
TaskListService,
|
|
348
|
-
TaskListColumnService,
|
|
349
|
-
TaskListPaginationService,
|
|
350
|
-
TaskListSortService,
|
|
351
|
-
TaskListSearchService,
|
|
352
|
-
TaskListQueryParamService,
|
|
353
|
-
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n loading: loadingTasks$ | async,\n selectedTaskType: selectedTaskType$ | async,\n tasks: tasks$ | async,\n fields: fields$ | async,\n visibleTabs: visibleTabs$ | async,\n pagination: paginationForCurrentTaskTypeForList$ | async,\n taskListColumnsForCase: taskListColumnsForCase$ | async,\n sortState: sortStateForCurrentTaskType$ | async,\n overrideSortState: overrideSortState$ | async,\n searchFields: searchFields$ | async,\n loadingSearchFields: loadingSearchFields$ | async,\n caseDefinitionName: caseDefinitionName$ | async,\n noResultsMessage: noResultsMessage$ | async,\n } as obs\"\n class=\"main-content\"\n>\n <div class=\"container-fluid\">\n @if (obs.caseDefinitionName && obs.caseDefinitionName !== ALL_CASES_ID) {\n <ng-container\n *ngTemplateOutlet=\"\n searchFields;\n context: {\n obs: obs,\n }\n \"\n ></ng-container>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksList;\n context: {\n obs: obs,\n }\n \"\n ></ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n tasksListLoading;\n context: {\n obs: obs,\n }\n \"\n ></ng-container>\n\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"reload()\"\n (assignmentOfTaskChanged)=\"reload()\"\n ></valtimo-task-detail-modal>\n </div>\n</div>\n\n<ng-template #configuredTabs let-selectedTaskType=\"selectedTaskType\" let-visibleTabs=\"visibleTabs\">\n <cds-tabs *ngIf=\"visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of visibleTabs\"\n [attr.data-testid]=\"'task-list-tab-' + tab\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"selectedTaskType === tab\"\n (selected)=\"tabChange(tab)\"\n ></cds-tab>\n </cds-tabs>\n</ng-template>\n\n<ng-template #caseLink let-data=\"data\">\n <ng-container *ngIf=\"cachedTasks$ | async as cachedTasks\">\n <div *ngIf=\"cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link--disabled\"\n cdsLink\n href=\"javascript:void(0)\"\n ngbTooltip=\"{{ 'task-list.caseLocked' | translate }}\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n <div *ngIf=\"!cachedTasks[data.index].caseLocked\">\n <a\n class=\"float-left cds--link\"\n cdsLink\n href=\"javascript:void(0)\"\n (click)=\"openRelatedCase($event, data.index)\"\n >\n {{ 'task-list.goToCase' | translate }}\n </a>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tasksList let-obs=\"obs\">\n <valtimo-carbon-list\n *ngIf=\"!obs.loading\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [items]=\"obs.tasks\"\n [lastColumnTemplate]=\"caseLink\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"taskList\"\n lockedTooltipTranslationKey=\"task-list.rowLocked\"\n [sortState]=\"obs.overrideSortState || obs.sortState\"\n (paginationClicked)=\"paginationClicked($event, obs.selectedTaskType)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div tabs>\n <ng-container *ngIf=\"obs.visibleTabs\">\n <ng-container\n *ngTemplateOutlet=\"\n configuredTabs;\n context: {selectedTaskType: obs.selectedTaskType, visibleTabs: obs.visibleTabs}\n \"\n ></ng-container>\n </ng-container>\n </div>\n\n <valtimo-no-results\n [description]=\"obs.noResultsMessage.description | translate\"\n [title]=\"obs.noResultsMessage.title | translate\"\n >\n </valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #tasksListLoading let-obs=\"obs\">\n <valtimo-carbon-list *ngIf=\"obs.loading\" [loading]=\"true\">\n <div tabs>\n <cds-tabs *ngIf=\"!obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n [heading]=\"'task-list.mine.title' | translate\"\n [active]=\"obs.selectedTaskType === 'mine'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.open.title' | translate\"\n [active]=\"obs.selectedTaskType === 'open'\"\n >\n </cds-tab>\n\n <cds-tab\n [heading]=\"'task-list.all.title' | translate\"\n [active]=\"obs.selectedTaskType === 'all'\"\n >\n </cds-tab>\n </cds-tabs>\n\n <cds-tabs *ngIf=\"obs.visibleTabs\" type=\"contained\" class=\"valtimo-carbon-list__tabs\">\n <cds-tab\n *ngFor=\"let tab of obs.visibleTabs\"\n [heading]=\"'task-list.' + tab + '.title' | translate\"\n [active]=\"obs.selectedTaskType === tab\"\n ></cds-tab>\n </cds-tabs>\n </div>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n [inputDisabled]=\"obs.loadingSearchFields\"\n [documentDefinitionName]=\"obs.caseDefinitionName\"\n [setValuesSubject$]=\"setSearchFieldValuesSubject$\"\n [clearValuesSubject$]=\"clearSearchFieldValuesSubject$\"\n (doSearch)=\"search($event)\"\n >\n </valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <cds-dropdown\n class=\"case-definition-selection\"\n *ngIf=\"{\n loadingCaseListItems: loadingCaseListItems$ | async,\n caseListItems: caseListItems$ | async,\n } as obs\"\n [attr.data-testid]=\"'task-list-case-dropdown'\"\n [disabled]=\"obs.loadingCaseListItems || (obs.caseListItems || []).length === 1\"\n [skeleton]=\"obs.loadingCaseListItems\"\n (selected)=\"setCaseDefinition($event)\"\n >\n <cds-dropdown-list [items]=\"obs.caseListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-template>\n</ng-container>\n", styles: [".cds--link--disabled{cursor:not-allowed;pointer-events:auto!important;outline:0!important}.case-definition-selection{display:flex;width:250px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
354
|
-
}], 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 }, { type: i6.TaskListSearchService }, { type: i6.TaskListQueryParamService }, { type: i9.PageTitleService }], propDecorators: { _taskDetail: [{
|
|
355
|
-
type: ViewChild,
|
|
356
|
-
args: ['taskDetail']
|
|
357
|
-
}], onPopState: [{
|
|
358
|
-
type: HostListener,
|
|
359
|
-
args: ['window:popstate', ['$event']]
|
|
360
|
-
}] } });
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL2NvbXBvbmVudHMvdGFzay1saXN0L3Rhc2stbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stbGlzdC90YXNrLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBR1osU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFVNUIsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdGLE9BQU8sRUFNTCxXQUFXLEdBQ1osTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwrQkFBK0IsR0FDaEMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLGVBQWUsR0FDaEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRy9CLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRTFF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QkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1Rhc2tTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtcbiAgTWFwcGVkU3BlY2lmaWVkVGFzayxcbiAgU3BlY2lmaWVkVGFzayxcbiAgVGFzayxcbiAgVGFza0xpc3RPdGhlckZpbHRlcnMsXG4gIFRhc2tMaXN0UGFyYW1zLFxuICBUYXNrUGFnZVBhcmFtcyxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7VGFza0RldGFpbE1vZGFsQ29tcG9uZW50fSBmcm9tICcuLi90YXNrLWRldGFpbC1tb2RhbC90YXNrLWRldGFpbC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDb25maWdTZXJ2aWNlLFxuICBQYWdlLFxuICBTZWFyY2hGaWVsZCxcbiAgU2VhcmNoRmllbGRWYWx1ZXMsXG4gIFNvcnRTdGF0ZSxcbiAgVGFza0xpc3RUYWIsXG59IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UGVybWlzc2lvblNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2FjY2Vzcy1jb250cm9sJztcbmltcG9ydCB7XG4gIENBTl9WSUVXX0NBU0VfUEVSTUlTU0lPTixcbiAgQ0FOX1ZJRVdfVEFTS19QRVJNSVNTSU9OLFxuICBUQVNLX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFLFxufSBmcm9tICcuLi8uLi90YXNrLXBlcm1pc3Npb25zJztcbmltcG9ydCB7XG4gIFRhc2tMaXN0Q29sdW1uU2VydmljZSxcbiAgVGFza0xpc3RQYWdpbmF0aW9uU2VydmljZSxcbiAgVGFza0xpc3RRdWVyeVBhcmFtU2VydmljZSxcbiAgVGFza0xpc3RTZWFyY2hTZXJ2aWNlLFxuICBUYXNrTGlzdFNlcnZpY2UsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7aXNFcXVhbH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7TGlzdEl0ZW19IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7VGFza0xpc3RTb3J0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFzay1saXN0LXNvcnQuc2VydmljZSc7XG5pbXBvcnQge0NhcmJvbkxpc3ROb1Jlc3VsdHNNZXNzYWdlLCBQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VEFTS19MSVNUX05PX1NFQVJDSF9SRVNVTFRTX01FU1NBR0V9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbm1vbWVudC5sb2NhbGUobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmdLZXknKSB8fCAnJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tdGFzay1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rhc2stbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Rhc2stbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgVGFza0xpc3RTZXJ2aWNlLFxuICAgIFRhc2tMaXN0Q29sdW1uU2VydmljZSxcbiAgICBUYXNrTGlzdFBhZ2luYXRpb25TZXJ2aWNlLFxuICAgIFRhc2tMaXN0U29ydFNlcnZpY2UsXG4gICAgVGFza0xpc3RTZWFyY2hTZXJ2aWNlLFxuICAgIFRhc2tMaXN0UXVlcnlQYXJhbVNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCd0YXNrRGV0YWlsJykgcHJpdmF0ZSByZWFkb25seSBfdGFza0RldGFpbDogVGFza0RldGFpbE1vZGFsQ29tcG9uZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpwb3BzdGF0ZScsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25Qb3BTdGF0ZSgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2V0UGFyYW1zRnJvbVF1ZXJ5UGFyYW1zKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgQUxMX0NBU0VTX0lEID0gdGhpcy50YXNrTGlzdFNlcnZpY2UuQUxMX0NBU0VTX0lEO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFRhc2tUeXBlJCA9IHRoaXMudGFza0xpc3RTZXJ2aWNlLnNlbGVjdGVkVGFza1R5cGUkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJyaWRlTm9SZXN1bHRzTWVzc2FnZSQgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Q2FyYm9uTGlzdE5vUmVzdWx0c01lc3NhZ2UgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbm9SZXN1bHRzTWVzc2FnZSQ6IE9ic2VydmFibGU8Q2FyYm9uTGlzdE5vUmVzdWx0c01lc3NhZ2U+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5zZWxlY3RlZFRhc2tUeXBlJCxcbiAgICB0aGlzLl9vdmVycmlkZU5vUmVzdWx0c01lc3NhZ2UkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbc2VsZWN0ZWRUYXNrVHlwZSwgb3ZlcnJpZGVOb1Jlc3VsdHNNZXNzYWdlXSkgPT5cbiAgICAgICAgb3ZlcnJpZGVOb1Jlc3VsdHNNZXNzYWdlIHx8IHtcbiAgICAgICAgICB0aXRsZTogJ3Rhc2stbGlzdC4nICsgc2VsZWN0ZWRUYXNrVHlwZSArICcubm9SZXN1bHRzVGl0bGUnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAndGFzay1saXN0LicgKyBzZWxlY3RlZFRhc2tUeXBlICsgJy5ub1Jlc3VsdHNEZXNjcmlwdGlvbicsXG4gICAgICAgICAgaXNTZWFyY2hSZXN1bHQ6IGZhbHNlLFxuICAgICAgICB9XG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBmaWVsZHMkID0gdGhpcy50YXNrTGlzdENvbHVtblNlcnZpY2UuZmllbGRzJDtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdUYXNrcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwdWJsaWMgcmVhZG9ubHkgdmlzaWJsZVRhYnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxUYXNrTGlzdFRhYj4gfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIF9lbmFibGVMb2FkaW5nQW5pbWF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNhY2hlZFRhc2tzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFza1tdIHwgTWFwcGVkU3BlY2lmaWVkVGFza1tdIHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhZ2luYXRpb25Gb3JDdXJyZW50VGFza1R5cGVGb3JMaXN0JCA9XG4gICAgdGhpcy50YXNrTGlzdFBhZ2luYXRpb25TZXJ2aWNlLnBhZ2luYXRpb25Gb3JDdXJyZW50VGFza1R5cGVGb3JMaXN0JDtcblxuICBwdWJsaWMgcmVhZG9ubHkgc29ydFN0YXRlRm9yQ3VycmVudFRhc2tUeXBlJCA9XG4gICAgdGhpcy50YXNrTGlzdFNvcnRTZXJ2aWNlLnNvcnRTdGF0ZUZvckN1cnJlbnRUYXNrVHlwZSQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IG92ZXJyaWRlU29ydFN0YXRlJCA9IHRoaXMudGFza0xpc3RTb3J0U2VydmljZS5vdmVycmlkZVNvcnRTdGF0ZSQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVsb2FkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNhc2VEZWZpbml0aW9uTmFtZSQgPSB0aGlzLnRhc2tMaXN0U2VydmljZS5jYXNlRGVmaW5pdGlvbk5hbWUkO1xuXG4gIHB1YmxpYyByZWFkb25seSB0YXNrcyQ6IE9ic2VydmFibGU8VGFza1tdIHwgTWFwcGVkU3BlY2lmaWVkVGFza1tdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLmxvYWRpbmdTdGF0ZUZvckNhc2VEZWZpbml0aW9uJCxcbiAgICB0aGlzLnNlbGVjdGVkVGFza1R5cGUkLFxuICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS5wYWdpbmF0aW9uRm9yQ3VycmVudFRhc2tUeXBlJCxcbiAgICB0aGlzLnRhc2tMaXN0U29ydFNlcnZpY2Uuc29ydFN0cmluZ0ZvckN1cnJlbnRUYXNrVHlwZSQsXG4gICAgdGhpcy5jYXNlRGVmaW5pdGlvbk5hbWUkLFxuICAgIHRoaXMuX2VuYWJsZUxvYWRpbmdBbmltYXRpb24kLFxuICAgIHRoaXMuX3JlbG9hZCQsXG4gICAgdGhpcy50YXNrTGlzdFNlYXJjaFNlcnZpY2Uub3RoZXJGaWx0ZXJzJCxcbiAgICB0aGlzLnRhc2tMaXN0U29ydFNlcnZpY2Uub3ZlcnJpZGVTb3J0U3RhdGVTdHJpbmckLFxuICBdKS5waXBlKFxuICAgIGZpbHRlcigoW2xvYWRpbmdTdGF0ZUZvckNhc2VEZWZpbml0aW9uXSkgPT4gbG9hZGluZ1N0YXRlRm9yQ2FzZURlZmluaXRpb24gPT09IGZhbHNlKSxcbiAgICBtYXAoXG4gICAgICAoW1xuICAgICAgICBfLFxuICAgICAgICBzZWxlY3RlZFRhc2tUeXBlLFxuICAgICAgICBwYWdpbmF0aW9uRm9yU2VsZWN0ZWRUYXNrVHlwZSxcbiAgICAgICAgc29ydFN0cmluZ0ZvclNlbGVjdGVkVGFza1R5cGUsXG4gICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgZW5hYmxlTG9hZGluZ0FuaW1hdGlvbixcbiAgICAgICAgcmVsb2FkLFxuICAgICAgICBvdGhlckZpbHRlcnMsXG4gICAgICAgIG92ZXJyaWRlU29ydFN0YXRlU3RyaW5nLFxuICAgICAgXSkgPT5cbiAgICAgICAgdGhpcy5nZXRUYXNrTGlzdFBhcmFtcyhcbiAgICAgICAgICBwYWdpbmF0aW9uRm9yU2VsZWN0ZWRUYXNrVHlwZSxcbiAgICAgICAgICBvdmVycmlkZVNvcnRTdGF0ZVN0cmluZyB8fCBzb3J0U3RyaW5nRm9yU2VsZWN0ZWRUYXNrVHlwZSxcbiAgICAgICAgICBzZWxlY3RlZFRhc2tUeXBlLFxuICAgICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICBlbmFibGVMb2FkaW5nQW5pbWF0aW9uLFxuICAgICAgICAgIHJlbG9hZCxcbiAgICAgICAgICBvdGhlckZpbHRlcnNcbiAgICAgICAgKVxuICAgICksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXZpb3VzLCBjdXJyZW50KSA9PiBpc0VxdWFsKHByZXZpb3VzLnBhcmFtcywgY3VycmVudC5wYXJhbXMpKSxcbiAgICB0YXAocGFyYW1zID0+IHtcbiAgICAgIGlmIChwYXJhbXMuZW5hYmxlTG9hZGluZ0FuaW1hdGlvbikgdGhpcy5sb2FkaW5nVGFza3MkLm5leHQodHJ1ZSk7XG4gICAgICB0aGlzLnRhc2tMaXN0UXVlcnlQYXJhbVNlcnZpY2Uuc2V0VGFza0xpc3RQYXJhbXMocGFyYW1zLnBhcmFtcyk7XG4gICAgfSksXG4gICAgc3dpdGNoTWFwKCh7cGFyYW1zfSkgPT5cbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLnRhc2tTZXJ2aWNlLnF1ZXJ5VGFza3NQYWdlVjMoXG4gICAgICAgICAgcGFyYW1zLnNlbGVjdGVkVGFza1R5cGUsXG4gICAgICAgICAgcGFyYW1zLnBhcmFtcyxcbiAgICAgICAgICBwYXJhbXMuY2FzZURlZmluaXRpb25OYW1lLFxuICAgICAgICAgIHBhcmFtcy5vdGhlckZpbHRlcnNcbiAgICAgICAgKSxcbiAgICAgICAgb2YoISFwYXJhbXMuY2FzZURlZmluaXRpb25OYW1lKSxcbiAgICAgIF0pXG4gICAgKSxcbiAgICBzd2l0Y2hNYXAoKFt0YXNrc1Jlc3VsdCwgaXNTcGVjaWZpZWRdKSA9PlxuICAgICAgdGhpcy5nZXRUYXNrTGlzdFBlcm1pc3Npb25zUmVxdWVzdCh0YXNrc1Jlc3VsdCwgaXNTcGVjaWZpZWQpXG4gICAgKSxcbiAgICBtYXAoKFtpc1NwZWNpZmllZCwgdGFza1Jlc3VsdCwgY2FuVmlld1Rhc2tQZXJtaXNzaW9ucywgY2FuVmlld0Nhc2VQZXJtaXNzaW9uc10pID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVGFza0xpc3RQYWdpbmF0aW9uQWZ0ZXJSZXNwb25zZShOdW1iZXIodGFza1Jlc3VsdC50b3RhbEVsZW1lbnRzKSk7XG5cbiAgICAgIHJldHVybiB0aGlzLm1hcFRhc2tzRm9yTGlzdChcbiAgICAgICAgaXNTcGVjaWZpZWQsXG4gICAgICAgIHRhc2tSZXN1bHQsXG4gICAgICAgIGNhblZpZXdUYXNrUGVybWlzc2lvbnMsXG4gICAgICAgIGNhblZpZXdDYXNlUGVybWlzc2lvbnNcbiAgICAgICk7XG4gICAgfSksXG4gICAgdGFwKHRhc2tzID0+IHtcbiAgICAgIHRoaXMuY2FjaGVkVGFza3MkLm5leHQodGFza3MpO1xuICAgICAgdGhpcy5sb2FkaW5nVGFza3MkLm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5kaXNhYmxlTG9hZGluZ0FuaW1hdGlvbigpO1xuXG4gICAgICB0aGlzLnRhc2tMaXN0U2VhcmNoU2VydmljZS5vdGhlckZpbHRlcnMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKG90aGVyRmlsdGVycyA9PiB7XG4gICAgICAgIHRoaXMuX292ZXJyaWRlTm9SZXN1bHRzTWVzc2FnZSQubmV4dChcbiAgICAgICAgICBvdGhlckZpbHRlcnM/Lmxlbmd0aCA+IDAgPyBUQVNLX0xJU1RfTk9fU0VBUkNIX1JFU1VMVFNfTUVTU0FHRSA6IG51bGxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdDYXNlTGlzdEl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkQ2FzZURlZmluaXRpb25JZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odGhpcy5BTExfQ0FTRVNfSUQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjYXNlTGlzdEl0ZW1zJDogT2JzZXJ2YWJsZTxMaXN0SXRlbVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldEFsbERlZmluaXRpb25zKCksXG4gICAgdGhpcy5fc2VsZWN0ZWRDYXNlRGVmaW5pdGlvbklkJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtkb2N1bWVudERlZmluaXRpb25SZXMsIHNlbGVjdGVkQ2FzZURlZmluaXRpb25JZF0pID0+IFtcbiAgICAgIHtcbiAgICAgICAgY29udGVudDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3Rhc2stbGlzdC5hbGxDYXNlcycpLFxuICAgICAgICBpZDogdGhpcy5BTExfQ0FTRVNfSUQsXG4gICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZENhc2VEZWZpbml0aW9uSWQgPT09IHRoaXMuQUxMX0NBU0VTX0lELFxuICAgICAgfSxcbiAgICAgIC4uLmRvY3VtZW50RGVmaW5pdGlvblJlcy5jb250ZW50Lm1hcChkb2N1bWVudERlZmluaXRpb24gPT4gKHtcbiAgICAgICAgaWQ6IGRvY3VtZW50RGVmaW5pdGlvbi5pZC5uYW1lLFxuICAgICAgICBjb250ZW50OiBkb2N1bWVudERlZmluaXRpb24/LnNjaGVtYT8udGl0bGUsXG4gICAgICAgIHNlbGVjdGVkOiBkb2N1bWVudERlZmluaXRpb24uaWQubmFtZSA9PT0gc2VsZWN0ZWRDYXNlRGVmaW5pdGlvbklkLFxuICAgICAgfSkpLFxuICAgIF0pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmdDYXNlTGlzdEl0ZW1zJC5uZXh0KGZhbHNlKSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGFza0xpc3RDb2x1bW5zRm9yQ2FzZSQgPSB0aGlzLnRhc2tMaXN0Q29sdW1uU2VydmljZS50YXNrTGlzdENvbHVtbnNGb3JDYXNlJDtcblxuICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZ1NlYXJjaEZpZWxkcyQgPSB0aGlzLnRhc2tMaXN0U2VhcmNoU2VydmljZS5sb2FkaW5nU2VhcmNoRmllbGRzJDtcbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaEZpZWxkcyQ6IE9ic2VydmFibGU8U2VhcmNoRmllbGRbXT4gPVxuICAgIHRoaXMudGFza0xpc3RTZWFyY2hTZXJ2aWNlLnNlYXJjaEZpZWxkcyQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfREVGQVVMVF9UQVNLX0xJU1RfVEFCUzogVGFza0xpc3RUYWJbXSA9IFtcbiAgICBUYXNrTGlzdFRhYi5NSU5FLFxuICAgIFRhc2tMaXN0VGFiLk9QRU4sXG4gICAgVGFza0xpc3RUYWIuQUxMLFxuICBdO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZXRTZWFyY2hGaWVsZFZhbHVlc1N1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hGaWVsZFZhbHVlcz4oe30pO1xuICBwdWJsaWMgcmVhZG9ubHkgY2xlYXJTZWFyY2hGaWVsZFZhbHVlc1N1YmplY3QkID0gbmV3IFN1YmplY3Q8bnVsbD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza1NlcnZpY2U6IFRhc2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza0xpc3RTZXJ2aWNlOiBUYXNrTGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza0xpc3RDb2x1bW5TZXJ2aWNlOiBUYXNrTGlzdENvbHVtblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXNrTGlzdFBhZ2luYXRpb25TZXJ2aWNlOiBUYXNrTGlzdFBhZ2luYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza0xpc3RTb3J0U2VydmljZTogVGFza0xpc3RTb3J0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhc2tMaXN0U2VhcmNoU2VydmljZTogVGFza0xpc3RTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFza0xpc3RRdWVyeVBhcmFtU2VydmljZTogVGFza0xpc3RRdWVyeVBhcmFtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VUaXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tMaXN0Q29sdW1uU2VydmljZS5yZXNldFRhc2tMaXN0RmllbGRzKCk7XG4gICAgdGhpcy5zZXRWaXNpYmxlVGFicygpO1xuICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5kaXNhYmxlUmVzZXQoKTtcbiAgICB0aGlzLnNldFBhcmFtc0Zyb21RdWVyeVBhcmFtcygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5lbmFibGVSZXNldCgpO1xuICB9XG5cbiAgcHVibGljIHBhZ2luYXRpb25DbGlja2VkKHBhZ2U6IG51bWJlciwgdHlwZTogVGFza0xpc3RUYWIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tMaXN0UGFnaW5hdGlvblNlcnZpY2UudXBkYXRlVGFza1BhZ2luYXRpb24odHlwZSBhcyBUYXNrTGlzdFRhYiwge3BhZ2U6IHBhZ2UgLSAxfSk7XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGlvblNldChuZXdTaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS5wYWdpbmF0aW9uRm9yQ3VycmVudFRhc2tUeXBlJCxcbiAgICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLnNlbGVjdGVkVGFza1R5cGUkLFxuICAgIF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoW3BhZ2luYXRpb24sIHNlbGVjdGVkVGFza1R5cGVdKSA9PiB7XG4gICAgICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS51cGRhdGVUYXNrUGFnaW5hdGlvbihzZWxlY3RlZFRhc2tUeXBlLCB7XG4gICAgICAgICAgc2l6ZTogTnVtYmVyKG5ld1NpemUpLFxuICAgICAgICAgIHBhZ2U6IHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS5nZXRMYXN0QXZhaWxhYmxlUGFnZShcbiAgICAgICAgICAgIHBhZ2luYXRpb24ucGFnZSxcbiAgICAgICAgICAgIE51bWJlcihuZXdTaXplKSxcbiAgICAgICAgICAgIHBhZ2luYXRpb24uY29sbGVjdGlvblNpemVcbiAgICAgICAgICApLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHRhYkNoYW5nZSh0YWI6IFRhc2tMaXN0VGFiIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50YXNrTGlzdFNlcnZpY2Uuc2VsZWN0ZWRUYXNrVHlwZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc2VsZWN0ZWRUYXNrVHlwZSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRUYXNrVHlwZSAhPT0gdGFiKSB7XG4gICAgICAgIHRoaXMuZW5hYmxlTG9hZGluZ0FuaW1hdGlvbigpO1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5zZXRTZWxlY3RlZFRhc2tUeXBlKHRhYiBhcyBUYXNrTGlzdFRhYik7XG4gICAgICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS51cGRhdGVUYXNrUGFnaW5hdGlvbih0YWIgYXMgVGFza0xpc3RUYWIsIHtwYWdlOiAwfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3BlblJlbGF0ZWRDYXNlKGV2ZW50OiBNb3VzZUV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLmNhY2hlZFRhc2tzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjYWNoZWRUYXNrcyA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50VGFzayA9IGNhY2hlZFRhc2tzICYmIGNhY2hlZFRhc2tzW2luZGV4XTtcblxuICAgICAgaWYgKGN1cnJlbnRUYXNrICYmICFjdXJyZW50VGFzay5jYXNlTG9ja2VkKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAgICAgLmdldERvY3VtZW50KGN1cnJlbnRUYXNrLmJ1c2luZXNzS2V5KVxuICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgLnN1YnNjcmliZShkb2N1bWVudCA9PiB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXG4gICAgICAgICAgICAgIGAvZG9zc2llcnMvJHtkb2N1bWVudC5kZWZpbml0aW9uSWQ/Lm5hbWV9L2RvY3VtZW50LyR7Y3VycmVudFRhc2suYnVzaW5lc3NLZXl9YCxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJvd09wZW5UYXNrQ2xpY2sodGFzayk6IHZvaWQgfCBib29sZWFuIHtcbiAgICByZXR1cm4gIXRhc2suZW5kVGltZSAmJiAhdGFzay5sb2NrZWQgPyB0aGlzLl90YXNrRGV0YWlsLm9wZW5UYXNrRGV0YWlscyh0YXNrKSA6IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNvcnRDaGFuZ2VkKHNvcnRTdGF0ZTogU29ydFN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy50YXNrTGlzdFNvcnRTZXJ2aWNlLnNldE92ZXJyaWRlU29ydFN0YXRlKHNvcnRTdGF0ZSk7XG4gICAgdGhpcy50YXNrTGlzdFNvcnRTZXJ2aWNlLnVwZGF0ZVNvcnRTdGF0ZSh0aGlzLnRhc2tMaXN0U2VydmljZS5zZWxlY3RlZFRhc2tUeXBlLCBzb3J0U3RhdGUpO1xuICB9XG5cbiAgcHVibGljIHNldENhc2VEZWZpbml0aW9uKGRlZmluaXRpb246IHtpdGVtOiB7aWQ6IHN0cmluZ319KTogdm9pZCB7XG4gICAgaWYgKGRlZmluaXRpb24uaXRlbS5pZCkge1xuICAgICAgdGhpcy50YXNrTGlzdFNvcnRTZXJ2aWNlLnJlc2V0T3ZlcnJpZGVTb3J0U3RhdGUoKTtcbiAgICAgIHRoaXMubG9hZGluZ1Rhc2tzJC5uZXh0KHRydWUpO1xuICAgICAgdGhpcy50YXNrTGlzdFNlcnZpY2Uuc2V0Q2FzZURlZmluaXRpb25OYW1lKGRlZmluaXRpb24uaXRlbS5pZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmVuYWJsZUxvYWRpbmdBbmltYXRpb24oKTtcbiAgICB0aGlzLl9yZWxvYWQkLm5leHQoIXRoaXMuX3JlbG9hZCQuZ2V0VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKHNlYXJjaEZpZWxkVmFsdWVzOiBTZWFyY2hGaWVsZFZhbHVlcyk6IHZvaWQge1xuICAgIGlmICghc2VhcmNoRmllbGRWYWx1ZXMpIHJldHVybjtcblxuICAgIHRoaXMudGFza0xpc3RTZWFyY2hTZXJ2aWNlLnNldFNlYXJjaEZpZWxkVmFsdWVzKHNlYXJjaEZpZWxkVmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFza0xpc3RQYWdpbmF0aW9uQWZ0ZXJSZXNwb25zZShuZXdDb2xsZWN0aW9uU2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50YXNrTGlzdFBhZ2luYXRpb25TZXJ2aWNlLnBhZ2luYXRpb25Gb3JDdXJyZW50VGFza1R5cGUkXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShjdXJyZW50UGFnaW5hdGlvbiA9PiB7XG4gICAgICAgIHRoaXMudGFza0xpc3RQYWdpbmF0aW9uU2VydmljZS51cGRhdGVUYXNrUGFnaW5hdGlvbih0aGlzLnRhc2tMaXN0U2VydmljZS5zZWxlY3RlZFRhc2tUeXBlLCB7XG4gICAgICAgICAgY29sbGVjdGlvblNpemU6IE51bWJlcihuZXdDb2xsZWN0aW9uU2l6ZSksXG4gICAgICAgICAgcGFnZTogdGhpcy50YXNrTGlzdFBhZ2luYXRpb25TZXJ2aWNlLmdldExhc3RBdmFpbGFibGVQYWdlKFxuICAgICAgICAgICAgY3VycmVudFBhZ2luYXRpb24ucGFnZSxcbiAgICAgICAgICAgIGN1cnJlbnRQYWdpbmF0aW9uLnNpemUsXG4gICAgICAgICAgICBuZXdDb2xsZWN0aW9uU2l6ZVxuICAgICAgICAgICksXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFZpc2libGVUYWJzKCk6IHZvaWQge1xuICAgIGNvbnN0IHZpc2libGVUYWJzID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZz8udmlzaWJsZVRhc2tMaXN0VGFicztcblxuICAgIGlmICh2aXNpYmxlVGFicykge1xuICAgICAgdGhpcy52aXNpYmxlVGFicyQubmV4dCh2aXNpYmxlVGFicyk7XG4gICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5zZXRTZWxlY3RlZFRhc2tUeXBlKHZpc2libGVUYWJzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlVGFicyQubmV4dCh0aGlzLl9ERUZBVUxUX1RBU0tfTElTVF9UQUJTKTtcbiAgICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLnNldFNlbGVjdGVkVGFza1R5cGUodGhpcy5fREVGQVVMVF9UQVNLX0xJU1RfVEFCU1swXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlTG9hZGluZ0FuaW1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9lbmFibGVMb2FkaW5nQW5pbWF0aW9uJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlTG9hZGluZ0FuaW1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9lbmFibGVMb2FkaW5nQW5pbWF0aW9uJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYXNrTGlzdFBhcmFtcyhcbiAgICBwYWdpbmF0aW9uRm9yU2VsZWN0ZWRUYXNrVHlwZTogVGFza1BhZ2VQYXJhbXMsXG4gICAgc29ydFN0cmluZ0ZvclNlbGVjdGVkVGFza1R5cGU6IHN0cmluZyxcbiAgICBzZWxlY3RlZFRhc2tUeXBlOiBUYXNrTGlzdFRhYixcbiAgICBjYXNlRGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICBlbmFibGVMb2FkaW5nQW5pbWF0aW9uOiBib29sZWFuLFxuICAgIHJlbG9hZDogYm9vbGVhbixcbiAgICBvdGhlckZpbHRlcnM/OiBUYXNrTGlzdE90aGVyRmlsdGVyc1xuICApOiBUYXNrTGlzdFBhcmFtcyB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgLi4ucGFnaW5hdGlvbkZvclNlbGVjdGVkVGFza1R5cGUsXG4gICAgICAuLi4oc29ydFN0cmluZ0ZvclNlbGVjdGVkVGFza1R5cGUgJiYge3NvcnQ6IHNvcnRTdHJpbmdGb3JTZWxlY3RlZFRhc2tUeXBlfSksXG4gICAgfTtcblxuICAgIGRlbGV0ZSBwYXJhbXMuY29sbGVjdGlvblNpemU7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHJlbG9hZCxcbiAgICAgICAgc2VsZWN0ZWRUYXNrVHlwZSxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICAuLi4oY2FzZURlZmluaXRpb25OYW1lICYmIGNhc2VEZWZpbml0aW9uTmFtZSAhPT0gdGhpcy5BTExfQ0FTRVNfSUQgJiYge2Nhc2VEZWZpbml0aW9uTmFtZX0pLFxuICAgICAgICAuLi4ob3RoZXJGaWx0ZXJzICYmIHtvdGhlckZpbHRlcnN9KSxcbiAgICAgIH0sXG4gICAgICBlbmFibGVMb2FkaW5nQW5pbWF0aW9uLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFRhc2tMaXN0UGVybWlzc2lvbnNSZXF1ZXN0KFxuICAgIHRhc2tzUmVzdWx0OiBQYWdlPFRhc2s+IHwgUGFnZTxTcGVjaWZpZWRUYXNrPixcbiAgICBpc1NwZWNpZmllZDogYm9vbGVhblxuICApIHtcbiAgICBjb25zdCB0YXNrUmVzdWx0cyA9IHRhc2tzUmVzdWx0LmNvbnRlbnQ7XG4gICAgY29uc3QgaGFzVGFza1Jlc3VsdHMgPSBBcnJheS5pc0FycmF5KHRhc2tSZXN1bHRzKSAmJiB0YXNrUmVzdWx0cy5sZW5ndGggPiAwO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgb2YoaXNTcGVjaWZpZWQpLFxuICAgICAgb2YodGFza3NSZXN1bHQpLFxuICAgICAgaGFzVGFza1Jlc3VsdHNcbiAgICAgICAgPyBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgICAgdGFza1Jlc3VsdHMubWFwKHRhc2sgPT5cbiAgICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5yZXF1ZXN0UGVybWlzc2lvbihDQU5fVklFV19UQVNLX1BFUk1JU1NJT04sIHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogVEFTS19ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS50YXNrLFxuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICFpc1NwZWNpZmllZCA/ICh0YXNrIGFzIFRhc2spLmlkIDogKHRhc2sgYXMgU3BlY2lmaWVkVGFzaykuaWQsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICA6IG9mKG51bGwpLFxuICAgICAgaGFzVGFza1Jlc3VsdHNcbiAgICAgICAgPyBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgICAgdGFza1Jlc3VsdHMubWFwKHRhc2sgPT5cbiAgICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5yZXF1ZXN0UGVybWlzc2lvbihDQU5fVklFV19DQVNFX1BFUk1JU1NJT04sIHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogVEFTS19ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS5qc29uU2NoZW1hRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogdGFzay5idXNpbmVzc0tleSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIDogb2YobnVsbCksXG4gICAgXSk7XG4gIH1cblxuICBwcml2YXRlIG1hcFRhc2tzRm9yTGlzdChcbiAgICBpc1NwZWNpZmllZDogYm9vbGVhbixcbiAgICB0YXNrczogUGFnZTxUYXNrPiB8IFBhZ2U8U3BlY2lmaWVkVGFzaz4sXG4gICAgY2FuVmlld1Rhc2tQZXJtaXNzaW9uczogYm9vbGVhbltdIHwgbnVsbCxcbiAgICBjYW5WaWV3Q2FzZVBlcm1pc3Npb25zOiBib29sZWFuW10gfCBudWxsXG4gICk6IFRhc2tbXSB8IE1hcHBlZFNwZWNpZmllZFRhc2tbXSB7XG4gICAgY29uc3QgTU9NRU5UX0ZPUk1BVCA9ICdERCBNTU0gWVlZWSBISDptbSc7XG5cbiAgICBpZiAoaXNTcGVjaWZpZWQpIHtcbiAgICAgIHJldHVybiAodGFza3MgYXMgUGFnZTxTcGVjaWZpZWRUYXNrPikuY29udGVudC5tYXAoKHNwZWNpZmllZFRhc2ssIHNwZWNpZmllZFRhc2tJbmRleCkgPT5cbiAgICAgICAgc3BlY2lmaWVkVGFzay5pdGVtcy5yZWR1Y2UoXG4gICAgICAgICAgKGFjYywgY3VycikgPT5cbiAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgIGlkOiBzcGVjaWZpZWRUYXNrLmlkLFxuICAgICAgICAgICAgICBidXNpbmVzc0tleTogc3BlY2lmaWVkVGFzay5idXNpbmVzc0tleSxcbiAgICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHNwZWNpZmllZFRhc2sucHJvY2Vzc0luc3RhbmNlSWQsXG4gICAgICAgICAgICAgIG5hbWU6IHNwZWNpZmllZFRhc2submFtZSxcbiAgICAgICAgICAgICAgLi4uKG1vbWVudChzcGVjaWZpZWRUYXNrLmNyZWF0ZWQpLmlzVmFsaWQoKSAmJiB7XG4gICAgICAgICAgICAgICAgY3JlYXRlZDogbW9tZW50KHNwZWNpZmllZFRhc2suY3JlYXRlZCkuZm9ybWF0KE1PTUVOVF9GT1JNQVQpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgLi4uKGNhblZpZXdUYXNrUGVybWlzc2lvbnMgJiYge2xvY2tlZDogIWNhblZpZXdUYXNrUGVybWlzc2lvbnNbc3BlY2lmaWVkVGFza0luZGV4XX0pLFxuICAgICAgICAgICAgICAuLi4oY2FuVmlld0Nhc2VQZXJtaXNzaW9ucyAmJiB7XG4gICAgICAgICAgICAgICAgY2FzZUxvY2tlZDogIWNhblZpZXdDYXNlUGVybWlzc2lvbnNbc3BlY2lmaWVkVGFza0luZGV4XSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgW2N1cnIua2V5XTogY3Vyci52YWx1ZSxcbiAgICAgICAgICAgIH0pIGFzIE1hcHBlZFNwZWNpZmllZFRhc2ssXG4gICAgICAgICAge31cbiAgICAgICAgKVxuICAgICAgKSBhcyBNYXBwZWRTcGVjaWZpZWRUYXNrW107XG4gICAgfVxuXG4gICAgcmV0dXJuICh0YXNrcyBhcyBQYWdlPFRhc2s+KT8uY29udGVudD8ubWFwKCh0YXNrLCB0YXNrSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGNyZWF0ZWREYXRlID0gbW9tZW50KHRhc2suY3JlYXRlZCk7XG4gICAgICBjb25zdCBkdWVEYXRlID0gbW9tZW50KHRhc2suZHVlKTtcbiAgICAgIGNvbnN0IHRhc2tDb3B5ID0gey4uLnRhc2t9O1xuXG4gICAgICBpZiAodGFzay5kdWUgJiYgZHVlRGF0ZS5pc1ZhbGlkKCkpIHRhc2tDb3B5LmR1ZSA9IGR1ZURhdGUuZm9ybWF0KE1PTUVOVF9GT1JNQVQpO1xuICAgICAgaWYgKGNyZWF0ZWREYXRlLmlzVmFsaWQoKSkgdGFza0NvcHkuY3JlYXRlZCA9IGNyZWF0ZWREYXRlLmZvcm1hdChNT01FTlRfRk9STUFUKTtcbiAgICAgIGlmIChjYW5WaWV3VGFza1Blcm1pc3Npb25zKSB0YXNrQ29weS5sb2NrZWQgPSAhY2FuVmlld1Rhc2tQZXJtaXNzaW9uc1t0YXNrSW5kZXhdO1xuICAgICAgaWYgKGNhblZpZXdDYXNlUGVybWlzc2lvbnMpIHRhc2tDb3B5LmNhc2VMb2NrZWQgPSAhY2FuVmlld0Nhc2VQZXJtaXNzaW9uc1t0YXNrSW5kZXhdO1xuXG4gICAgICByZXR1cm4gdGFza0NvcHk7XG4gICAgfSkgYXMgVGFza1tdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYXJhbXNGcm9tUXVlcnlQYXJhbXMoKTogdm9pZCB7XG4gICAgY29uc3QgZGVjb2RlZFBhcmFtcyA9IHRoaXMudGFza0xpc3RRdWVyeVBhcmFtU2VydmljZS5nZXRUYXNrTGlzdFF1ZXJ5UGFyYW1zKCk7XG5cbiAgICBpZiAoZGVjb2RlZFBhcmFtcy5jYXNlRGVmaW5pdGlvbk5hbWUpIHtcbiAgICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLnNldENhc2VEZWZpbml0aW9uTmFtZShkZWNvZGVkUGFyYW1zLmNhc2VEZWZpbml0aW9uTmFtZSk7XG4gICAgICB0aGlzLl9zZWxlY3RlZENhc2VEZWZpbml0aW9uSWQkLm5leHQoZGVjb2RlZFBhcmFtcy5jYXNlRGVmaW5pdGlvbk5hbWUpO1xuICAgIH1cblxuICAgIGlmIChkZWNvZGVkUGFyYW1zLm90aGVyRmlsdGVycz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc2VhcmNoRmllbGRWYWx1ZXMgPSB0aGlzLnRhc2tMaXN0U2VhcmNoU2VydmljZS5tYXBPdGhlckZpbHRlclRvU2VhcmNoVmFsdWVzKFxuICAgICAgICBkZWNvZGVkUGFyYW1zLm90aGVyRmlsdGVyc1xuICAgICAgKTtcbiAgICAgIHRoaXMuc2V0U2VhcmNoRmllbGRWYWx1ZXNTdWJqZWN0JC5uZXh0KHNlYXJjaEZpZWxkVmFsdWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGVhclNlYXJjaEZpZWxkVmFsdWVzU3ViamVjdCQubmV4dChudWxsKTtcbiAgICB9XG5cbiAgICBpZiAoZGVjb2RlZFBhcmFtcy5zZWxlY3RlZFRhc2tUeXBlKVxuICAgICAgdGhpcy50YXNrTGlzdFNlcnZpY2Uuc2V0U2VsZWN0ZWRUYXNrVHlwZShkZWNvZGVkUGFyYW1zLnNlbGVjdGVkVGFza1R5cGUpO1xuXG4gICAgaWYgKGRlY29kZWRQYXJhbXMucGFyYW1zPy5zb3J0KSB7XG4gICAgICBjb25zdCBzdGF0ZUZyb21Tb3J0U3RyaW5nID0gdGhpcy50YXNrTGlzdFNvcnRTZXJ2aWNlLmdldFNvcnRTdGF0ZUZyb21Tb3J0U3RyaW5nKFxuICAgICAgICBkZWNvZGVkUGFyYW1zLnBhcmFtcy5zb3J0XG4gICAgICApO1xuICAgICAgaWYgKHN0YXRlRnJvbVNvcnRTdHJpbmcpIHRoaXMudGFza0xpc3RTb3J0U2VydmljZS5zZXRPdmVycmlkZVNvcnRTdGF0ZShzdGF0ZUZyb21Tb3J0U3RyaW5nKTtcbiAgICB9XG5cbiAgICBpZiAoZGVjb2RlZFBhcmFtcy5wYXJhbXMpXG4gICAgICB0aGlzLnRhc2tMaXN0UGFnaW5hdGlvblNlcnZpY2UudXBkYXRlVGFza1BhZ2luYXRpb24oXG4gICAgICAgIHRoaXMudGFza0xpc3RTZXJ2aWNlLnNlbGVjdGVkVGFza1R5cGUsXG4gICAgICAgIGRlY29kZWRQYXJhbXMucGFyYW1zXG4gICAgICApO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXZcbiAgKm5nSWY9XCJ7XG4gICAgbG9hZGluZzogbG9hZGluZ1Rhc2tzJCB8IGFzeW5jLFxuICAgIHNlbGVjdGVkVGFza1R5cGU6IHNlbGVjdGVkVGFza1R5cGUkIHwgYXN5bmMsXG4gICAgdGFza3M6IHRhc2tzJCB8IGFzeW5jLFxuICAgIGZpZWxkczogZmllbGRzJCB8IGFzeW5jLFxuICAgIHZpc2libGVUYWJzOiB2aXNpYmxlVGFicyQgfCBhc3luYyxcbiAgICBwYWdpbmF0aW9uOiBwYWdpbmF0aW9uRm9yQ3VycmVudFRhc2tUeXBlRm9yTGlzdCQgfCBhc3luYyxcbiAgICB0YXNrTGlzdENvbHVtbnNGb3JDYXNlOiB0YXNrTGlzdENvbHVtbnNGb3JDYXNlJCB8IGFzeW5jLFxuICAgIHNvcnRTdGF0ZTogc29ydFN0YXRlRm9yQ3VycmVudFRhc2tUeXBlJCB8IGFzeW5jLFxuICAgIG92ZXJyaWRlU29ydFN0YXRlOiBvdmVycmlkZVNvcnRTdGF0ZSQgfCBhc3luYyxcbiAgICBzZWFyY2hGaWVsZHM6IHNlYXJjaEZpZWxkcyQgfCBhc3luYyxcbiAgICBsb2FkaW5nU2VhcmNoRmllbGRzOiBsb2FkaW5nU2VhcmNoRmllbGRzJCB8IGFzeW5jLFxuICAgIGNhc2VEZWZpbml0aW9uTmFtZTogY2FzZURlZmluaXRpb25OYW1lJCB8IGFzeW5jLFxuICAgIG5vUmVzdWx0c01lc3NhZ2U6IG5vUmVzdWx0c01lc3NhZ2UkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbiAgY2xhc3M9XCJtYWluLWNvbnRlbnRcIlxuPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgQGlmIChvYnMuY2FzZURlZmluaXRpb25OYW1lICYmIG9icy5jYXNlRGVmaW5pdGlvbk5hbWUgIT09IEFMTF9DQVNFU19JRCkge1xuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIHNlYXJjaEZpZWxkcztcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBvYnM6IG9icyxcbiAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgfVxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgdGFza3NMaXN0O1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgb2JzOiBvYnMsXG4gICAgICAgIH1cbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgdGFza3NMaXN0TG9hZGluZztcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIG9iczogb2JzLFxuICAgICAgICB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDx2YWx0aW1vLXRhc2stZGV0YWlsLW1vZGFsXG4gICAgICAjdGFza0RldGFpbFxuICAgICAgKGZvcm1TdWJtaXQpPVwicmVsb2FkKClcIlxuICAgICAgKGFzc2lnbm1lbnRPZlRhc2tDaGFuZ2VkKT1cInJlbG9hZCgpXCJcbiAgICA+PC92YWx0aW1vLXRhc2stZGV0YWlsLW1vZGFsPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NvbmZpZ3VyZWRUYWJzIGxldC1zZWxlY3RlZFRhc2tUeXBlPVwic2VsZWN0ZWRUYXNrVHlwZVwiIGxldC12aXNpYmxlVGFicz1cInZpc2libGVUYWJzXCI+XG4gIDxjZHMtdGFicyAqbmdJZj1cInZpc2libGVUYWJzXCIgdHlwZT1cImNvbnRhaW5lZFwiIGNsYXNzPVwidmFsdGltby1jYXJib24tbGlzdF9fdGFic1wiPlxuICAgIDxjZHMtdGFiXG4gICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHZpc2libGVUYWJzXCJcbiAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIid0YXNrLWxpc3QtdGFiLScgKyB0YWJcIlxuICAgICAgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC4nICsgdGFiICsgJy50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2FjdGl2ZV09XCJzZWxlY3RlZFRhc2tUeXBlID09PSB0YWJcIlxuICAgICAgKHNlbGVjdGVkKT1cInRhYkNoYW5nZSh0YWIpXCJcbiAgICA+PC9jZHMtdGFiPlxuICA8L2Nkcy10YWJzPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjYXNlTGluayBsZXQtZGF0YT1cImRhdGFcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhY2hlZFRhc2tzJCB8IGFzeW5jIGFzIGNhY2hlZFRhc2tzXCI+XG4gICAgPGRpdiAqbmdJZj1cImNhY2hlZFRhc2tzW2RhdGEuaW5kZXhdLmNhc2VMb2NrZWRcIj5cbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwiZmxvYXQtbGVmdCBjZHMtLWxpbmstLWRpc2FibGVkXCJcbiAgICAgICAgY2RzTGlua1xuICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgbmdiVG9vbHRpcD1cInt7ICd0YXNrLWxpc3QuY2FzZUxvY2tlZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ3Rhc2stbGlzdC5nb1RvQ2FzZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWNhY2hlZFRhc2tzW2RhdGEuaW5kZXhdLmNhc2VMb2NrZWRcIj5cbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwiZmxvYXQtbGVmdCBjZHMtLWxpbmtcIlxuICAgICAgICBjZHNMaW5rXG4gICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAoY2xpY2spPVwib3BlblJlbGF0ZWRDYXNlKCRldmVudCwgZGF0YS5pbmRleClcIlxuICAgICAgPlxuICAgICAgICB7eyAndGFzay1saXN0LmdvVG9DYXNlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFza3NMaXN0IGxldC1vYnM9XCJvYnNcIj5cbiAgPHZhbHRpbW8tY2FyYm9uLWxpc3RcbiAgICAqbmdJZj1cIiFvYnMubG9hZGluZ1wiXG4gICAgW2ZpZWxkc109XCJvYnMuZmllbGRzXCJcbiAgICBbaGVhZGVyXT1cImZhbHNlXCJcbiAgICBbaXRlbXNdPVwib2JzLnRhc2tzXCJcbiAgICBbbGFzdENvbHVtblRlbXBsYXRlXT1cImNhc2VMaW5rXCJcbiAgICBbcGFnaW5hdGlvbl09XCJvYnMucGFnaW5hdGlvblwiXG4gICAgcGFnaW5hdGlvbklkZW50aWZpZXI9XCJ0YXNrTGlzdFwiXG4gICAgbG9ja2VkVG9vbHRpcFRyYW5zbGF0aW9uS2V5PVwidGFzay1saXN0LnJvd0xvY2tlZFwiXG4gICAgW3NvcnRTdGF0ZV09XCJvYnMub3ZlcnJpZGVTb3J0U3RhdGUgfHwgb2JzLnNvcnRTdGF0ZVwiXG4gICAgKHBhZ2luYXRpb25DbGlja2VkKT1cInBhZ2luYXRpb25DbGlja2VkKCRldmVudCwgb2JzLnNlbGVjdGVkVGFza1R5cGUpXCJcbiAgICAocGFnaW5hdGlvblNldCk9XCJwYWdpbmF0aW9uU2V0KCRldmVudClcIlxuICAgIChyb3dDbGlja2VkKT1cInJvd09wZW5UYXNrQ2xpY2soJGV2ZW50KVwiXG4gICAgKHNvcnRDaGFuZ2VkKT1cInNvcnRDaGFuZ2VkKCRldmVudClcIlxuICA+XG4gICAgPGRpdiB0YWJzPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9icy52aXNpYmxlVGFic1wiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGNvbmZpZ3VyZWRUYWJzO1xuICAgICAgICAgICAgY29udGV4dDoge3NlbGVjdGVkVGFza1R5cGU6IG9icy5zZWxlY3RlZFRhc2tUeXBlLCB2aXNpYmxlVGFiczogb2JzLnZpc2libGVUYWJzfVxuICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgW2Rlc2NyaXB0aW9uXT1cIm9icy5ub1Jlc3VsdHNNZXNzYWdlLmRlc2NyaXB0aW9uIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0aXRsZV09XCJvYnMubm9SZXN1bHRzTWVzc2FnZS50aXRsZSB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgIDwvdmFsdGltby1uby1yZXN1bHRzPlxuICA8L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Rhc2tzTGlzdExvYWRpbmcgbGV0LW9icz1cIm9ic1wiPlxuICA8dmFsdGltby1jYXJib24tbGlzdCAqbmdJZj1cIm9icy5sb2FkaW5nXCIgW2xvYWRpbmddPVwidHJ1ZVwiPlxuICAgIDxkaXYgdGFicz5cbiAgICAgIDxjZHMtdGFicyAqbmdJZj1cIiFvYnMudmlzaWJsZVRhYnNcIiB0eXBlPVwiY29udGFpbmVkXCIgY2xhc3M9XCJ2YWx0aW1vLWNhcmJvbi1saXN0X190YWJzXCI+XG4gICAgICAgIDxjZHMtdGFiXG4gICAgICAgICAgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC5taW5lLnRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJvYnMuc2VsZWN0ZWRUYXNrVHlwZSA9PT0gJ21pbmUnXCJcbiAgICAgICAgPlxuICAgICAgICA8L2Nkcy10YWI+XG5cbiAgICAgICAgPGNkcy10YWJcbiAgICAgICAgICBbaGVhZGluZ109XCIndGFzay1saXN0Lm9wZW4udGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbYWN0aXZlXT1cIm9icy5zZWxlY3RlZFRhc2tUeXBlID09PSAnb3BlbidcIlxuICAgICAgICA+XG4gICAgICAgIDwvY2RzLXRhYj5cblxuICAgICAgICA8Y2RzLXRhYlxuICAgICAgICAgIFtoZWFkaW5nXT1cIid0YXNrLWxpc3QuYWxsLnRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJvYnMuc2VsZWN0ZWRUYXNrVHlwZSA9PT0gJ2FsbCdcIlxuICAgICAgICA+XG4gICAgICAgIDwvY2RzLXRhYj5cbiAgICAgIDwvY2RzLXRhYnM+XG5cbiAgICAgIDxjZHMtdGFicyAqbmdJZj1cIm9icy52aXNpYmxlVGFic1wiIHR5cGU9XCJjb250YWluZWRcIiBjbGFzcz1cInZhbHRpbW8tY2FyYm9uLWxpc3RfX3RhYnNcIj5cbiAgICAgICAgPGNkcy10YWJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIG9icy52aXNpYmxlVGFic1wiXG4gICAgICAgICAgW2hlYWRpbmddPVwiJ3Rhc2stbGlzdC4nICsgdGFiICsgJy50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFthY3RpdmVdPVwib2JzLnNlbGVjdGVkVGFza1R5cGUgPT09IHRhYlwiXG4gICAgICAgID48L2Nkcy10YWI+XG4gICAgICA8L2Nkcy10YWJzPlxuICAgIDwvZGl2PlxuICA8L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlYXJjaEZpZWxkcyBsZXQtb2JzPVwib2JzXCI+XG4gIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgPHZhbHRpbW8tc2VhcmNoLWZpZWxkc1xuICAgICAgW3NlYXJjaEZpZWxkc109XCJvYnMuc2VhcmNoRmllbGRzXCJcbiAgICAgIFtpbnB1dERpc2FibGVkXT1cIm9icy5sb2FkaW5nU2VhcmNoRmllbGRzXCJcbiAgICAgIFtkb2N1bWVudERlZmluaXRpb25OYW1lXT1cIm9icy5jYXNlRGVmaW5pdGlvbk5hbWVcIlxuICAgICAgW3NldFZhbHVlc1N1YmplY3QkXT1cInNldFNlYXJjaEZpZWxkVmFsdWVzU3ViamVjdCRcIlxuICAgICAgW2NsZWFyVmFsdWVzU3ViamVjdCRdPVwiY2xlYXJTZWFyY2hGaWVsZFZhbHVlc1N1YmplY3QkXCJcbiAgICAgIChkb1NlYXJjaCk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvdmFsdGltby1zZWFyY2gtZmllbGRzPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgcmVuZGVySW5QYWdlSGVhZGVyIFtmdWxsV2lkdGhdPVwidHJ1ZVwiPlxuICA8bmctdGVtcGxhdGU+XG4gICAgPGNkcy1kcm9wZG93blxuICAgICAgY2xhc3M9XCJjYXNlLWRlZmluaXRpb24tc2VsZWN0aW9uXCJcbiAgICAgICpuZ0lmPVwie1xuICAgICAgICBsb2FkaW5nQ2FzZUxpc3RJdGVtczogbG9hZGluZ0Nhc2VMaXN0SXRlbXMkIHwgYXN5bmMsXG4gICAgICAgIGNhc2VMaXN0SXRlbXM6IGNhc2VMaXN0SXRlbXMkIHwgYXN5bmMsXG4gICAgICB9IGFzIG9ic1wiXG4gICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCIndGFzay1saXN0LWNhc2UtZHJvcGRvd24nXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMubG9hZGluZ0Nhc2VMaXN0SXRlbXMgfHwgKG9icy5jYXNlTGlzdEl0ZW1zIHx8IFtdKS5sZW5ndGggPT09IDFcIlxuICAgICAgW3NrZWxldG9uXT1cIm9icy5sb2FkaW5nQ2FzZUxpc3RJdGVtc1wiXG4gICAgICAoc2VsZWN0ZWQpPVwic2V0Q2FzZURlZmluaXRpb24oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJvYnMuY2FzZUxpc3RJdGVtcyB8fCBbXVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9jZHMtZHJvcGRvd24+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
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-list.constants';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi90YXNrLWxpc3QuY29uc3RhbnRzJztcbiJdfQ==
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
const TASK_LIST_NO_SEARCH_RESULTS_MESSAGE = {
|
|
17
|
-
description: 'task-list.noSearchResultsDescription',
|
|
18
|
-
isSearchResult: true,
|
|
19
|
-
title: 'task-list.noSearchResultsTitle',
|
|
20
|
-
};
|
|
21
|
-
export { TASK_LIST_NO_SEARCH_RESULTS_MESSAGE };
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vdGFzay9zcmMvbGliL2NvbnN0YW50cy90YXNrLWxpc3QuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBSUgsTUFBTSxtQ0FBbUMsR0FBK0I7SUFDdEUsV0FBVyxFQUFFLHNDQUFzQztJQUNuRCxjQUFjLEVBQUUsSUFBSTtJQUNwQixLQUFLLEVBQUUsZ0NBQWdDO0NBQ3hDLENBQUM7QUFFRixPQUFPLEVBQUMsbUNBQW1DLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q2FyYm9uTGlzdE5vUmVzdWx0c01lc3NhZ2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuXG5jb25zdCBUQVNLX0xJU1RfTk9fU0VBUkNIX1JFU1VMVFNfTUVTU0FHRTogQ2FyYm9uTGlzdE5vUmVzdWx0c01lc3NhZ2UgPSB7XG4gIGRlc2NyaXB0aW9uOiAndGFzay1saXN0Lm5vU2VhcmNoUmVzdWx0c0Rlc2NyaXB0aW9uJyxcbiAgaXNTZWFyY2hSZXN1bHQ6IHRydWUsXG4gIHRpdGxlOiAndGFzay1saXN0Lm5vU2VhcmNoUmVzdWx0c1RpdGxlJyxcbn07XG5cbmV4cG9ydCB7VEFTS19MSVNUX05PX1NFQVJDSF9SRVNVTFRTX01FU1NBR0V9O1xuIl19
|
|
@@ -1,21 +0,0 @@
|
|
|
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.model';
|
|
17
|
-
export * from './task-definition.model';
|
|
18
|
-
export * from './task-list.model';
|
|
19
|
-
export * from './task-intermediate-save.model';
|
|
20
|
-
export * from './task-list-search-field.model';
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL3Rhc2svc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi90YXNrLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1kZWZpbml0aW9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1saXN0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1pbnRlcm1lZGlhdGUtc2F2ZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stbGlzdC1zZWFyY2gtZmllbGQubW9kZWwnO1xuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
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 {};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZWZpbml0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby90YXNrL3NyYy9saWIvbW9kZWxzL3Rhc2stZGVmaW5pdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Rm9ybURlZmluaXRpb259IGZyb20gJ0B2YWx0aW1vL2Zvcm0tbWFuYWdlbWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFza0RlZmluaXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGZvcm1EZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbiB8IG51bGw7XG59XG4iXX0=
|