@valtimo/dossier 10.8.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/lib/components/note-modal/note-modal.component.mjs +5 -5
- package/esm2022/lib/dossier-assign-user/dossier-assign-user.component.mjs +98 -0
- package/esm2022/lib/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.mjs +75 -0
- package/esm2022/lib/dossier-detail/dossier-detail.component.mjs +175 -0
- package/{esm2020 → esm2022}/lib/dossier-detail/tab/audit/audit.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/dossier-detail/tab/contact-moments/contact-moments.component.mjs +4 -4
- package/esm2022/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +146 -0
- package/{esm2020 → esm2022}/lib/dossier-detail/tab/documents/documents.component.mjs +4 -4
- package/esm2022/lib/dossier-detail/tab/notes/notes.component.mjs +166 -0
- package/esm2022/lib/dossier-detail/tab/object-type/object-type.component.mjs +121 -0
- package/esm2022/lib/dossier-detail/tab/progress/progress.component.mjs +52 -0
- package/esm2022/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +136 -0
- package/esm2022/lib/dossier-detail/tab/summary/summary.component.mjs +130 -0
- package/esm2022/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +112 -0
- package/esm2022/lib/dossier-list/dossier-list.component.mjs +371 -0
- package/esm2022/lib/dossier-list-actions/dossier-list-actions.component.mjs +84 -0
- package/esm2022/lib/dossier-process-start-modal/dossier-process-start-modal.component.mjs +133 -0
- package/{esm2020 → esm2022}/lib/dossier-routing.module.mjs +5 -5
- package/esm2022/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +116 -0
- package/{esm2020 → esm2022}/lib/dossier-update/dossier-update.component.mjs +5 -5
- package/esm2022/lib/dossier.module.mjs +282 -0
- package/esm2022/lib/dossier.service.mjs +58 -0
- package/esm2022/lib/models/candidate-user.model.mjs +17 -0
- package/{esm2020 → esm2022}/lib/models/dossier-parameters.model.mjs +1 -1
- package/esm2022/lib/models/index.mjs +21 -0
- package/esm2022/lib/permissions/dossier.permissions.mjs +55 -0
- package/esm2022/lib/permissions/index.mjs +17 -0
- package/esm2022/lib/services/dossier-bulk-assign.service.mjs +35 -0
- package/esm2022/lib/services/dossier-column.service.mjs +98 -0
- package/esm2022/lib/services/dossier-list-assignee.service.mjs +89 -0
- package/esm2022/lib/services/dossier-list-pagination.service.mjs +119 -0
- package/esm2022/lib/services/dossier-list-search.service.mjs +59 -0
- package/esm2022/lib/services/dossier-list.service.mjs +74 -0
- package/esm2022/lib/services/dossier-parameter.service.mjs +165 -0
- package/{esm2020 → esm2022}/lib/services/file-sort.service.mjs +4 -4
- package/esm2022/lib/services/index.mjs +25 -0
- package/esm2022/lib/services/notes.service.mjs +76 -0
- package/{esm2020 → esm2022}/lib/services/zaakobjecten.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/tab.service.mjs +4 -4
- package/esm2022/public_api.mjs +36 -0
- package/fesm2022/valtimo-dossier.mjs +3681 -0
- package/fesm2022/valtimo-dossier.mjs.map +1 -0
- package/lib/components/note-modal/note-modal.component.d.ts +3 -3
- package/lib/components/note-modal/note-modal.component.d.ts.map +1 -1
- package/lib/dossier-assign-user/dossier-assign-user.component.d.ts +12 -18
- package/lib/dossier-assign-user/dossier-assign-user.component.d.ts.map +1 -1
- package/lib/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts +22 -0
- package/lib/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts.map +1 -0
- package/lib/dossier-detail/dossier-detail.component.d.ts +34 -31
- package/lib/dossier-detail/dossier-detail.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/audit/audit.component.d.ts +1 -1
- package/lib/dossier-detail/tab/contact-moments/contact-moments.component.d.ts +1 -1
- package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts +2 -3
- package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/documents/documents.component.d.ts +1 -1
- package/lib/dossier-detail/tab/notes/notes.component.d.ts +19 -12
- package/lib/dossier-detail/tab/notes/notes.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/object-type/object-type.component.d.ts +3 -3
- package/lib/dossier-detail/tab/object-type/object-type.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/progress/progress.component.d.ts +1 -1
- package/lib/dossier-detail/tab/progress/progress.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts +2 -2
- package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/summary/summary.component.d.ts +8 -4
- package/lib/dossier-detail/tab/summary/summary.component.d.ts.map +1 -1
- package/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts +3 -3
- package/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts.map +1 -1
- package/lib/dossier-list/dossier-list.component.d.ts +52 -24
- package/lib/dossier-list/dossier-list.component.d.ts.map +1 -1
- package/lib/dossier-list-actions/dossier-list-actions.component.d.ts +5 -6
- package/lib/dossier-list-actions/dossier-list-actions.component.d.ts.map +1 -1
- package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts +4 -7
- package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -1
- package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts +4 -7
- package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +1 -1
- package/lib/dossier-update/dossier-update.component.d.ts +1 -1
- package/lib/dossier.module.d.ts +31 -31
- package/lib/dossier.module.d.ts.map +1 -1
- package/lib/dossier.service.d.ts +5 -1
- package/lib/dossier.service.d.ts.map +1 -1
- package/lib/models/candidate-user.model.d.ts +7 -0
- package/lib/models/candidate-user.model.d.ts.map +1 -0
- package/lib/models/dossier-parameters.model.d.ts +0 -1
- package/lib/models/dossier-parameters.model.d.ts.map +1 -1
- package/lib/models/index.d.ts +3 -2
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/search.model.d.ts +3 -3
- package/lib/models/search.model.d.ts.map +1 -1
- package/lib/permissions/dossier.permissions.d.ts +14 -0
- package/lib/permissions/dossier.permissions.d.ts.map +1 -0
- package/lib/permissions/index.d.ts +2 -0
- package/lib/permissions/index.d.ts.map +1 -0
- package/lib/services/dossier-bulk-assign.service.d.ts +17 -0
- package/lib/services/dossier-bulk-assign.service.d.ts.map +1 -0
- package/lib/services/dossier-column.service.d.ts +1 -1
- package/lib/services/dossier-column.service.d.ts.map +1 -1
- package/lib/services/dossier-list-assignee.service.d.ts +5 -4
- package/lib/services/dossier-list-assignee.service.d.ts.map +1 -1
- package/lib/services/dossier-list-pagination.service.d.ts +1 -1
- package/lib/services/dossier-list-pagination.service.d.ts.map +1 -1
- package/lib/services/dossier-list-search.service.d.ts +0 -3
- package/lib/services/dossier-list-search.service.d.ts.map +1 -1
- package/lib/services/dossier-list.service.d.ts +6 -0
- package/lib/services/dossier-list.service.d.ts.map +1 -1
- package/lib/services/dossier-parameter.service.d.ts.map +1 -1
- package/lib/services/index.d.ts +1 -0
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/notes.service.d.ts.map +1 -1
- package/lib/services/zaakobjecten.service.d.ts.map +1 -1
- package/package.json +13 -19
- package/public_api.d.ts +10 -9
- package/public_api.d.ts.map +1 -1
- package/esm2020/lib/dossier-assign-user/dossier-assign-user.component.mjs +0 -126
- package/esm2020/lib/dossier-detail/dossier-detail.component.mjs +0 -175
- package/esm2020/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +0 -147
- package/esm2020/lib/dossier-detail/tab/notes/notes.component.mjs +0 -153
- package/esm2020/lib/dossier-detail/tab/object-type/object-type.component.mjs +0 -122
- package/esm2020/lib/dossier-detail/tab/progress/progress.component.mjs +0 -51
- package/esm2020/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +0 -134
- package/esm2020/lib/dossier-detail/tab/summary/summary.component.mjs +0 -124
- package/esm2020/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +0 -113
- package/esm2020/lib/dossier-list/dossier-list.component.mjs +0 -224
- package/esm2020/lib/dossier-list-actions/dossier-list-actions.component.mjs +0 -86
- package/esm2020/lib/dossier-process-start-modal/dossier-process-start-modal.component.mjs +0 -192
- package/esm2020/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +0 -181
- package/esm2020/lib/dossier.module.mjs +0 -259
- package/esm2020/lib/dossier.service.mjs +0 -50
- package/esm2020/lib/models/index.mjs +0 -20
- package/esm2020/lib/services/dossier-column.service.mjs +0 -100
- package/esm2020/lib/services/dossier-list-assignee.service.mjs +0 -82
- package/esm2020/lib/services/dossier-list-pagination.service.mjs +0 -116
- package/esm2020/lib/services/dossier-list-search.service.mjs +0 -66
- package/esm2020/lib/services/dossier-list.service.mjs +0 -56
- package/esm2020/lib/services/dossier-parameter.service.mjs +0 -167
- package/esm2020/lib/services/index.mjs +0 -24
- package/esm2020/lib/services/notes.service.mjs +0 -76
- package/esm2020/public_api.mjs +0 -35
- package/fesm2015/valtimo-dossier.mjs +0 -3348
- package/fesm2015/valtimo-dossier.mjs.map +0 -1
- package/fesm2020/valtimo-dossier.mjs +0 -3447
- package/fesm2020/valtimo-dossier.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/dossier-detail-tab-enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dossier.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/notes.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/search.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/tabs.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/zaakobjecten.model.mjs +0 -0
- /package/{esm2020 → esm2022}/valtimo-dossier.mjs +0 -0
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Component } from '@angular/core';
|
|
17
|
-
import { BehaviorSubject, combineLatest, distinctUntilChanged, filter, map, switchMap, take, tap, } from 'rxjs';
|
|
18
|
-
import { DossierColumnService, DossierListAssigneeService, DossierListPaginationService, DossierListSearchService, DossierListService, DossierParameterService, } from '../services';
|
|
19
|
-
import { AdvancedDocumentSearchRequestImpl, } from '@valtimo/document';
|
|
20
|
-
import { DefaultTabs } from '../dossier-detail-tab-enum';
|
|
21
|
-
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "@angular/router";
|
|
23
|
-
import * as i2 from "@ngx-translate/core";
|
|
24
|
-
import * as i3 from "../services";
|
|
25
|
-
import * as i4 from "@valtimo/document";
|
|
26
|
-
import * as i5 from "@valtimo/config";
|
|
27
|
-
import * as i6 from "@valtimo/components";
|
|
28
|
-
import * as i7 from "@angular/common";
|
|
29
|
-
import * as i8 from "@ng-bootstrap/ng-bootstrap";
|
|
30
|
-
import * as i9 from "../dossier-list-actions/dossier-list-actions.component";
|
|
31
|
-
export class DossierListComponent {
|
|
32
|
-
constructor(route, translateService, listService, columnService, assigneeService, paginationService, searchService, parameterService, documentService, router, configService, pageTitleService, breadcrumbService) {
|
|
33
|
-
this.route = route;
|
|
34
|
-
this.translateService = translateService;
|
|
35
|
-
this.listService = listService;
|
|
36
|
-
this.columnService = columnService;
|
|
37
|
-
this.assigneeService = assigneeService;
|
|
38
|
-
this.paginationService = paginationService;
|
|
39
|
-
this.searchService = searchService;
|
|
40
|
-
this.parameterService = parameterService;
|
|
41
|
-
this.documentService = documentService;
|
|
42
|
-
this.router = router;
|
|
43
|
-
this.configService = configService;
|
|
44
|
-
this.pageTitleService = pageTitleService;
|
|
45
|
-
this.breadcrumbService = breadcrumbService;
|
|
46
|
-
this.loadingFields = true;
|
|
47
|
-
this.loadingPagination = true;
|
|
48
|
-
this.loadingSearchFields = true;
|
|
49
|
-
this.loadingAssigneeFilter = true;
|
|
50
|
-
this.loadingDocumentItems = true;
|
|
51
|
-
this.visibleDossierTabs = null;
|
|
52
|
-
this.searchFields$ = this.searchService.documentSearchFields$.pipe(tap(searchFields => {
|
|
53
|
-
this.loadingSearchFields = false;
|
|
54
|
-
}));
|
|
55
|
-
this.documentDefinitionName$ = this.listService.documentDefinitionName$;
|
|
56
|
-
this.schema$ = this.listService.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.documentService.getDocumentDefinition(documentDefinitionName)), map(documentDefinition => documentDefinition?.schema), tap(schema => {
|
|
57
|
-
if (schema?.title) {
|
|
58
|
-
this.pageTitleService.setCustomPageTitle(schema?.title, true);
|
|
59
|
-
}
|
|
60
|
-
}));
|
|
61
|
-
this.searchFieldValues$ = this.parameterService.searchFieldValues$;
|
|
62
|
-
this.assigneeFilter$ = this.assigneeService.assigneeFilter$;
|
|
63
|
-
this._pagination$ = this.paginationService.pagination$.pipe(tap(pagination => {
|
|
64
|
-
this.pagination = pagination;
|
|
65
|
-
this.loadingPagination = false;
|
|
66
|
-
}));
|
|
67
|
-
this._hasEnvColumnConfig$ = this.listService.hasEnvColumnConfig$;
|
|
68
|
-
this._hasApiColumnConfig$ = new BehaviorSubject(false);
|
|
69
|
-
this._canHaveAssignee$ = this.assigneeService.canHaveAssignee$;
|
|
70
|
-
this._searchSwitch$ = this.searchService.searchSwitch$;
|
|
71
|
-
this._columns$ = this.listService.documentDefinitionName$.pipe(switchMap(documentDefinitionName => this.columnService.getDefinitionColumns(documentDefinitionName)), map(res => {
|
|
72
|
-
this._hasApiColumnConfig$.next(res.hasApiConfig);
|
|
73
|
-
return res.columns;
|
|
74
|
-
}), tap(columns => {
|
|
75
|
-
this.listService.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {
|
|
76
|
-
this.paginationService.setPagination(documentDefinitionName, columns);
|
|
77
|
-
});
|
|
78
|
-
}));
|
|
79
|
-
this.fields$ = combineLatest([
|
|
80
|
-
this._canHaveAssignee$,
|
|
81
|
-
this._columns$,
|
|
82
|
-
this._hasEnvColumnConfig$,
|
|
83
|
-
this.translateService.stream('key'),
|
|
84
|
-
]).pipe(tap(([canHaveAssignee]) => {
|
|
85
|
-
this.canHaveAssignee = canHaveAssignee;
|
|
86
|
-
}), map(([canHaveAssignee, columns, hasEnvConfig]) => {
|
|
87
|
-
const filteredAssigneeColumns = this.assigneeService.filterAssigneeColumns(columns, canHaveAssignee);
|
|
88
|
-
const listFields = this.columnService.mapDefinitionColumnsToListFields(filteredAssigneeColumns, hasEnvConfig);
|
|
89
|
-
const fieldsToReturn = this.assigneeService.addAssigneeListField(columns, listFields, canHaveAssignee);
|
|
90
|
-
return fieldsToReturn;
|
|
91
|
-
}), tap(listFields => {
|
|
92
|
-
const defaultListField = listFields.find(field => field.default);
|
|
93
|
-
// set default sort state if no pagination query parameters for sorting are available
|
|
94
|
-
this.parameterService.queryPaginationParams$
|
|
95
|
-
.pipe(take(1))
|
|
96
|
-
.subscribe(queryPaginationParams => {
|
|
97
|
-
if (defaultListField && !queryPaginationParams?.sort?.isSorting) {
|
|
98
|
-
const sortDirection = typeof defaultListField.default === 'string' ? defaultListField.default : 'DESC';
|
|
99
|
-
this.paginationService.sortChanged({
|
|
100
|
-
isSorting: true,
|
|
101
|
-
state: { name: defaultListField.key, direction: sortDirection },
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}), tap(() => {
|
|
106
|
-
this.loadingFields = false;
|
|
107
|
-
}));
|
|
108
|
-
this._documentSearchRequest$ = combineLatest([this._pagination$, this.listService.documentDefinitionName$]).pipe(filter(([pagination]) => !!pagination), map(([pagination, documentDefinitionName]) => new AdvancedDocumentSearchRequestImpl(documentDefinitionName, pagination.page - 1, pagination.size, pagination.sort)));
|
|
109
|
-
this._documentsRequest$ = combineLatest([
|
|
110
|
-
this._documentSearchRequest$,
|
|
111
|
-
this.searchFieldValues$,
|
|
112
|
-
this.assigneeFilter$,
|
|
113
|
-
this._hasEnvColumnConfig$,
|
|
114
|
-
this._hasApiColumnConfig$,
|
|
115
|
-
this._searchSwitch$,
|
|
116
|
-
]).pipe(distinctUntilChanged(([prevSearchRequest, prevSearchValues, prevAssigneeFilter, prevHasEnvColumnConfig, prevHasApiColumnConfig, prevSearchSwitch,], [currSearchRequest, currSearchValues, currAssigneeFilter, currHasEnvColumnConfig, currHasApiColumnConfig, currSearchSwitch,]) => JSON.stringify({ ...prevSearchRequest, ...prevSearchValues }) +
|
|
117
|
-
prevAssigneeFilter +
|
|
118
|
-
prevSearchSwitch ===
|
|
119
|
-
JSON.stringify({ ...currSearchRequest, ...currSearchValues }) +
|
|
120
|
-
currAssigneeFilter +
|
|
121
|
-
currSearchSwitch), switchMap(([documentSearchRequest, searchValues, assigneeFilter, hasEnvColumnConfig, hasApiColumnConfig,]) => {
|
|
122
|
-
if ((Object.keys(searchValues) || []).length > 0) {
|
|
123
|
-
return hasEnvColumnConfig || !hasApiColumnConfig
|
|
124
|
-
? this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter, this.searchService.mapSearchValuesToFilters(searchValues))
|
|
125
|
-
: this.documentService.getSpecifiedDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter, this.searchService.mapSearchValuesToFilters(searchValues));
|
|
126
|
-
}
|
|
127
|
-
return hasEnvColumnConfig || !hasApiColumnConfig
|
|
128
|
-
? this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter)
|
|
129
|
-
: this.documentService.getSpecifiedDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter);
|
|
130
|
-
}), tap(documents => {
|
|
131
|
-
this.paginationService.setCollectionSize(documents);
|
|
132
|
-
this.paginationService.checkPage(documents);
|
|
133
|
-
}));
|
|
134
|
-
this.documentItems$ = combineLatest([
|
|
135
|
-
this._documentsRequest$,
|
|
136
|
-
this._hasEnvColumnConfig$,
|
|
137
|
-
this._hasApiColumnConfig$,
|
|
138
|
-
]).pipe(map(([documents, hasEnvColumnConfig, hasApiColumnConfig]) => this.listService.mapDocuments(documents, hasEnvColumnConfig, hasApiColumnConfig)), tap(() => {
|
|
139
|
-
this.loadingAssigneeFilter = false;
|
|
140
|
-
this.loadingDocumentItems = false;
|
|
141
|
-
}));
|
|
142
|
-
}
|
|
143
|
-
ngOnInit() {
|
|
144
|
-
this.setVisibleTabs();
|
|
145
|
-
this.openDocumentDefinitionNameSubscription();
|
|
146
|
-
}
|
|
147
|
-
ngOnDestroy() {
|
|
148
|
-
this._documentDefinitionNameSubscription?.unsubscribe();
|
|
149
|
-
this.pageTitleService.enableReset();
|
|
150
|
-
}
|
|
151
|
-
search(searchFieldValues) {
|
|
152
|
-
this.searchService.search(searchFieldValues);
|
|
153
|
-
}
|
|
154
|
-
rowClick(document) {
|
|
155
|
-
this.listService.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {
|
|
156
|
-
this.breadcrumbService.cacheQueryParams(`/dossiers/${documentDefinitionName}`, this.route.snapshot.queryParams);
|
|
157
|
-
this.router.navigate([
|
|
158
|
-
`/dossiers/${documentDefinitionName}/document/${document.id}/${DefaultTabs.summary}`,
|
|
159
|
-
]);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
pageChange(newPage) {
|
|
163
|
-
this.paginationService.pageChange(newPage);
|
|
164
|
-
}
|
|
165
|
-
pageSizeChange(newPageSize) {
|
|
166
|
-
this.paginationService.pageSizeChange(newPageSize);
|
|
167
|
-
}
|
|
168
|
-
sortChanged(newSortState) {
|
|
169
|
-
this.paginationService.sortChanged(newSortState);
|
|
170
|
-
}
|
|
171
|
-
tabChange(tab) {
|
|
172
|
-
this.paginationService.setPage(1);
|
|
173
|
-
this.assigneeService.setAssigneeFilter(tab.nextId.toUpperCase());
|
|
174
|
-
}
|
|
175
|
-
refresh() {
|
|
176
|
-
this.searchService.refresh();
|
|
177
|
-
}
|
|
178
|
-
openDocumentDefinitionNameSubscription() {
|
|
179
|
-
this._documentDefinitionNameSubscription = this.route.params
|
|
180
|
-
.pipe(map(params => params?.documentDefinitionName), filter(docDefName => !!docDefName), distinctUntilChanged())
|
|
181
|
-
.subscribe(documentDefinitonName => {
|
|
182
|
-
if (this._previousDocumentDefinitionName) {
|
|
183
|
-
this.parameterService.clearParameters();
|
|
184
|
-
this.parameterService.clearSearchFieldValues();
|
|
185
|
-
}
|
|
186
|
-
this._previousDocumentDefinitionName = documentDefinitonName;
|
|
187
|
-
this.setLoading();
|
|
188
|
-
this.paginationService.clearPagination();
|
|
189
|
-
this.assigneeService.resetAssigneeFilter();
|
|
190
|
-
this.listService.setDocumentDefinitionName(documentDefinitonName);
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
setLoading() {
|
|
194
|
-
this.loadingFields = true;
|
|
195
|
-
this.loadingPagination = true;
|
|
196
|
-
this.loadingSearchFields = true;
|
|
197
|
-
this.loadingAssigneeFilter = true;
|
|
198
|
-
this.loadingDocumentItems = true;
|
|
199
|
-
}
|
|
200
|
-
setVisibleTabs() {
|
|
201
|
-
this.visibleDossierTabs = this.configService.config?.visibleDossierListTabs || null;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
DossierListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DossierListComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.TranslateService }, { token: i3.DossierListService }, { token: i3.DossierColumnService }, { token: i3.DossierListAssigneeService }, { token: i3.DossierListPaginationService }, { token: i3.DossierListSearchService }, { token: i3.DossierParameterService }, { token: i4.DocumentService }, { token: i1.Router }, { token: i5.ConfigService }, { token: i6.PageTitleService }, { token: i6.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component });
|
|
205
|
-
DossierListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DossierListComponent, selector: "valtimo-dossier-list", providers: [
|
|
206
|
-
DossierListService,
|
|
207
|
-
DossierColumnService,
|
|
208
|
-
DossierListAssigneeService,
|
|
209
|
-
DossierParameterService,
|
|
210
|
-
DossierListPaginationService,
|
|
211
|
-
DossierListSearchService,
|
|
212
|
-
], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n fields: fields$ | async,\n documentItems: documentItems$ | async,\n searchFields: searchFields$ | async,\n schema: schema$ | async,\n loaded:\n !loadingFields &&\n !loadingPagination &&\n !loadingSearchFields &&\n !loadingAssigneeFilter &&\n !loadingDocumentItems\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-dossier-list-actions\n [loading]=\"!obs.loaded\"\n (formFlowComplete)=\"refresh()\"\n ></valtimo-dossier-list-actions>\n <ng-container *ngIf=\"obs.loaded; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [defaultValues]=\"searchFieldValues$ | async\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.documentItems\"\n [fields]=\"obs.fields\"\n (rowClicked)=\"rowClick($event)\"\n [pagination]=\"pagination\"\n [viewMode]=\"true\"\n [header]=\"true\"\n paginationIdentifier=\"dossierList\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n [initialSortState]=\"pagination.sort\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n pagination?.collectionSize || 0\n }}</sup>\n </h3>\n </div>\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #tabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <ul\n *ngIf=\"visibleDossierTabs === null; else configuredTabs\"\n ngbNav\n [destroyOnHide]=\"false\"\n (navChange)=\"tabChange($event)\"\n class=\"nav-tabs\"\n [activeId]=\"assigneeFilter\"\n >\n <li ngbNavItem=\"ALL\" [title]=\"'dossier.tabs.ALL' | translate\">\n <a ngbNavLink>{{ 'dossier.tabs.ALL' | translate }}</a>\n </li>\n <li ngbNavItem=\"MINE\" [title]=\"'dossier.tabs.MINE' | translate\">\n <a ngbNavLink>{{ 'dossier.tabs.MINE' | translate }}</a>\n </li>\n <li ngbNavItem=\"OPEN\" [title]=\"'dossier.tabs.OPEN' | translate\">\n <a ngbNavLink>{{ 'dossier.tabs.OPEN' | translate }}</a>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template #configuredTabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <ul\n ngbNav\n [destroyOnHide]=\"false\"\n (navChange)=\"tabChange($event)\"\n class=\"nav-tabs\"\n [activeId]=\"assigneeFilter\"\n >\n <li\n *ngFor=\"let tab of visibleDossierTabs\"\n [ngbNavItem]=\"tab\"\n [title]=\"'dossier.tabs.' + tab | translate\"\n >\n <a ngbNavLink>{{ 'dossier.tabs.' + tab | translate }}</a>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template #loading><valtimo-spinner></valtimo-spinner></ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i6.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i6.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i6.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "defaultValues"], outputs: ["doSearch"] }, { kind: "directive", type: i8.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i8.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i8.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "component", type: i9.DossierListActionsComponent, selector: "valtimo-dossier-list-actions", inputs: ["loading"], outputs: ["formFlowComplete"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
213
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DossierListComponent, decorators: [{
|
|
214
|
-
type: Component,
|
|
215
|
-
args: [{ selector: 'valtimo-dossier-list', providers: [
|
|
216
|
-
DossierListService,
|
|
217
|
-
DossierColumnService,
|
|
218
|
-
DossierListAssigneeService,
|
|
219
|
-
DossierParameterService,
|
|
220
|
-
DossierListPaginationService,
|
|
221
|
-
DossierListSearchService,
|
|
222
|
-
], template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n fields: fields$ | async,\n documentItems: documentItems$ | async,\n searchFields: searchFields$ | async,\n schema: schema$ | async,\n loaded:\n !loadingFields &&\n !loadingPagination &&\n !loadingSearchFields &&\n !loadingAssigneeFilter &&\n !loadingDocumentItems\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-dossier-list-actions\n [loading]=\"!obs.loaded\"\n (formFlowComplete)=\"refresh()\"\n ></valtimo-dossier-list-actions>\n <ng-container *ngIf=\"obs.loaded; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [defaultValues]=\"searchFieldValues$ | async\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.documentItems\"\n [fields]=\"obs.fields\"\n (rowClicked)=\"rowClick($event)\"\n [pagination]=\"pagination\"\n [viewMode]=\"true\"\n [header]=\"true\"\n paginationIdentifier=\"dossierList\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n [initialSortState]=\"pagination.sort\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n pagination?.collectionSize || 0\n }}</sup>\n </h3>\n </div>\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #tabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <ul\n *ngIf=\"visibleDossierTabs === null; else configuredTabs\"\n ngbNav\n [destroyOnHide]=\"false\"\n (navChange)=\"tabChange($event)\"\n class=\"nav-tabs\"\n [activeId]=\"assigneeFilter\"\n >\n <li ngbNavItem=\"ALL\" [title]=\"'dossier.tabs.ALL' | translate\">\n <a ngbNavLink>{{ 'dossier.tabs.ALL' | translate }}</a>\n </li>\n <li ngbNavItem=\"MINE\" [title]=\"'dossier.tabs.MINE' | translate\">\n <a ngbNavLink>{{ 'dossier.tabs.MINE' | translate }}</a>\n </li>\n <li ngbNavItem=\"OPEN\" [title]=\"'dossier.tabs.OPEN' | translate\">\n <a ngbNavLink>{{ 'dossier.tabs.OPEN' | translate }}</a>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template #configuredTabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <ul\n ngbNav\n [destroyOnHide]=\"false\"\n (navChange)=\"tabChange($event)\"\n class=\"nav-tabs\"\n [activeId]=\"assigneeFilter\"\n >\n <li\n *ngFor=\"let tab of visibleDossierTabs\"\n [ngbNavItem]=\"tab\"\n [title]=\"'dossier.tabs.' + tab | translate\"\n >\n <a ngbNavLink>{{ 'dossier.tabs.' + tab | translate }}</a>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template #loading><valtimo-spinner></valtimo-spinner></ng-template>\n" }]
|
|
223
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.TranslateService }, { type: i3.DossierListService }, { type: i3.DossierColumnService }, { type: i3.DossierListAssigneeService }, { type: i3.DossierListPaginationService }, { type: i3.DossierListSearchService }, { type: i3.DossierParameterService }, { type: i4.DocumentService }, { type: i1.Router }, { type: i5.ConfigService }, { type: i6.PageTitleService }, { type: i6.BreadcrumbService }]; } });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2Rvc3NpZXItbGlzdC9kb3NzaWVyLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvZG9zc2llci1saXN0L2Rvc3NpZXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUdILFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsdUJBQXVCLEdBQ3hCLE1BQU0sYUFBYSxDQUFDO0FBYXJCLE9BQU8sRUFFTCxpQ0FBaUMsR0FJbEMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7O0FBZ0J2RCxNQUFNLE9BQU8sb0JBQW9CO0lBb04vQixZQUNtQixLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsV0FBK0IsRUFDL0IsYUFBbUMsRUFDbkMsZUFBMkMsRUFDM0MsaUJBQStDLEVBQy9DLGFBQXVDLEVBQ3ZDLGdCQUF5QyxFQUN6QyxlQUFnQyxFQUNoQyxNQUFjLEVBQ2QsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGlCQUFvQztRQVpwQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixxQkFBZ0Is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LEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLElBQUksSUFBSSxDQUFDO0lBQ3RGLENBQUM7O2lIQWpUVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwrQ0FUcEI7UUFDVCxrQkFBa0I7UUFDbEIsb0JBQW9CO1FBQ3BCLDBCQUEwQjtRQUMxQix1QkFBdUI7UUFDdkIsNEJBQTRCO1FBQzVCLHdCQUF3QjtLQUN6QiwwQkN2RUgsc3ZJQWtJQTsyRkR6RGEsb0JBQW9CO2tCQWJoQyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQjt3QkFDVCxrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsd0JBQXdCO3FCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBEb3NzaWVyQ29sdW1uU2VydmljZSxcbiAgRG9zc2llckxpc3RBc3NpZ25lZVNlcnZpY2UsXG4gIERvc3NpZXJMaXN0UGFnaW5hdGlvblNlcnZpY2UsXG4gIERvc3NpZXJMaXN0U2VhcmNoU2VydmljZSxcbiAgRG9zc2llckxpc3RTZXJ2aWNlLFxuICBEb3NzaWVyUGFyYW1ldGVyU2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHtcbiAgQXNzaWduZWVGaWx0ZXIsXG4gIENvbmZpZ1NlcnZpY2UsXG4gIERlZmluaXRpb25Db2x1bW4sXG4gIERpcmVjdGlvbixcbiAgRG9zc2llckxpc3RUYWIsXG4gIFNlYXJjaEZpZWxkLFxuICBTZWFyY2hGaWVsZFZhbHVlcyxcbiAgU29ydFN0YXRlLFxufSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtCcmVhZGNydW1iU2VydmljZSwgTGlzdEZpZWxkLCBQYWdlVGl0bGVTZXJ2aWNlLCBQYWdpbmF0aW9ufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBBZHZhbmNlZERvY3VtZW50U2VhcmNoUmVxdWVzdCxcbiAgQWR2YW5jZWREb2N1bWVudFNlYXJjaFJlcXVlc3RJbXBsLFxuICBEb2N1bWVudHMsXG4gIERvY3VtZW50U2VydmljZSxcbiAgU3BlY2lmaWVkRG9jdW1lbnRzLFxufSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge0RlZmF1bHRUYWJzfSBmcm9tICcuLi9kb3NzaWVyLWRldGFpbC10YWItZW51bSc7XG5pbXBvcnQge05nYk5hdkNoYW5nZUV2ZW50fSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvc3NpZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvc3NpZXItbGlzdC5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIERvc3NpZXJMaXN0U2VydmljZSxcbiAgICBEb3NzaWVyQ29sdW1uU2VydmljZSxcbiAgICBEb3NzaWVyTGlzdEFzc2lnbmVlU2VydmljZSxcbiAgICBEb3NzaWVyUGFyYW1ldGVyU2VydmljZSxcbiAgICBEb3NzaWVyTGlzdFBhZ2luYXRpb25TZXJ2aWNlLFxuICAgIERvc3NpZXJMaXN0U2VhcmNoU2VydmljZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9zc2llckxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBsb2FkaW5nRmllbGRzID0gdHJ1ZTtcbiAgcHVibGljIGxvYWRpbmdQYWdpbmF0aW9uID0gdHJ1ZTtcbiAgcHVibGljIGxvYWRpbmdTZWFyY2hGaWVsZHMgPSB0cnVlO1xuICBwdWJsaWMgbG9hZGluZ0Fzc2lnbmVlRmlsdGVyID0gdHJ1ZTtcbiAgcHVibGljIGxvYWRpbmdEb2N1bWVudEl0ZW1zID0gdHJ1ZTtcbiAgcHVibGljIHBhZ2luYXRpb24hOiBQYWdpbmF0aW9uO1xuICBwdWJsaWMgY2FuSGF2ZUFzc2lnbmVlITogYm9vbGVhbjtcbiAgcHVibGljIHZpc2libGVEb3NzaWVyVGFiczogQXJyYXk8RG9zc2llckxpc3RUYWI+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaEZpZWxkcyQ6IE9ic2VydmFibGU8QXJyYXk8U2VhcmNoRmllbGQ+IHwgbnVsbD4gPVxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5kb2N1bWVudFNlYXJjaEZpZWxkcyQucGlwZShcbiAgICAgIHRhcChzZWFyY2hGaWVsZHMgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmdTZWFyY2hGaWVsZHMgPSBmYWxzZTtcbiAgICAgIH0pXG4gICAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnREZWZpbml0aW9uTmFtZSQgPSB0aGlzLmxpc3RTZXJ2aWNlLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUkO1xuXG4gIHB1YmxpYyByZWFkb25seSBzY2hlbWEkID0gdGhpcy5saXN0U2VydmljZS5kb2N1bWVudERlZmluaXRpb25OYW1lJC5waXBlKFxuICAgIHN3aXRjaE1hcChkb2N1bWVudERlZmluaXRpb25OYW1lID0+XG4gICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXREb2N1bWVudERlZmluaXRpb24oZG9jdW1lbnREZWZpbml0aW9uTmFtZSlcbiAgICApLFxuICAgIG1hcChkb2N1bWVudERlZmluaXRpb24gPT4gZG9jdW1lbnREZWZpbml0aW9uPy5zY2hlbWEpLFxuICAgIHRhcChzY2hlbWEgPT4ge1xuICAgICAgaWYgKHNjaGVtYT8udGl0bGUpIHtcbiAgICAgICAgdGhpcy5wYWdlVGl0bGVTZXJ2aWNlLnNldEN1c3RvbVBhZ2VUaXRsZShzY2hlbWE/LnRpdGxlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hGaWVsZFZhbHVlcyQgPSB0aGlzLnBhcmFtZXRlclNlcnZpY2Uuc2VhcmNoRmllbGRWYWx1ZXMkO1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzaWduZWVGaWx0ZXIkOiBPYnNlcnZhYmxlPEFzc2lnbmVlRmlsdGVyPiA9XG4gICAgdGhpcy5hc3NpZ25lZVNlcnZpY2UuYXNzaWduZWVGaWx0ZXIkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYWdpbmF0aW9uJCA9IHRoaXMucGFnaW5hdGlvblNlcnZpY2UucGFnaW5hdGlvbiQucGlwZShcbiAgICB0YXAocGFnaW5hdGlvbiA9PiB7XG4gICAgICB0aGlzLnBhZ2luYXRpb24gPSBwYWdpbmF0aW9uO1xuICAgICAgdGhpcy5sb2FkaW5nUGFnaW5hdGlvbiA9IGZhbHNlO1xuICAgIH0pXG4gICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hhc0VudkNvbHVtbkNvbmZpZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmxpc3RTZXJ2aWNlLmhhc0VudkNvbHVtbkNvbmZpZyQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hhc0FwaUNvbHVtbkNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FuSGF2ZUFzc2lnbmVlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuYXNzaWduZWVTZXJ2aWNlLmNhbkhhdmVBc3NpZ25lZSQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaFN3aXRjaCQgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoU3dpdGNoJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1ucyQ6IE9ic2VydmFibGU8QXJyYXk8RGVmaW5pdGlvbkNvbHVtbj4+ID1cbiAgICB0aGlzLmxpc3RTZXJ2aWNlLmRvY3VtZW50RGVmaW5pdGlvbk5hbWUkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9PlxuICAgICAgICB0aGlzLmNvbHVtblNlcnZpY2UuZ2V0RGVmaW5pdGlvbkNvbHVtbnMoZG9jdW1lbnREZWZpbml0aW9uTmFtZSlcbiAgICAgICksXG4gICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgdGhpcy5faGFzQXBpQ29sdW1uQ29uZmlnJC5uZXh0KHJlcy5oYXNBcGlDb25maWcpO1xuICAgICAgICByZXR1cm4gcmVzLmNvbHVtbnM7XG4gICAgICB9KSxcbiAgICAgIHRhcChjb2x1bW5zID0+IHtcbiAgICAgICAgdGhpcy5saXN0U2VydmljZS5kb2N1bWVudERlZmluaXRpb25OYW1lJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShkb2N1bWVudERlZmluaXRpb25OYW1lID0+IHtcbiAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnNldFBhZ2luYXRpb24oZG9jdW1lbnREZWZpbml0aW9uTmFtZSwgY29sdW1ucyk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuXG4gIHJlYWRvbmx5IGZpZWxkcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEZpZWxkPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9jYW5IYXZlQXNzaWduZWUkLFxuICAgIHRoaXMuX2NvbHVtbnMkLFxuICAgIHRoaXMuX2hhc0VudkNvbHVtbkNvbmZpZyQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgdGFwKChbY2FuSGF2ZUFzc2lnbmVlXSkgPT4ge1xuICAgICAgdGhpcy5jYW5IYXZlQXNzaWduZWUgPSBjYW5IYXZlQXNzaWduZWU7XG4gICAgfSksXG4gICAgbWFwKChbY2FuSGF2ZUFzc2lnbmVlLCBjb2x1bW5zLCBoYXNFbnZDb25maWddKSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXJlZEFzc2lnbmVlQ29sdW1ucyA9IHRoaXMuYXNzaWduZWVTZXJ2aWNlLmZpbHRlckFzc2lnbmVlQ29sdW1ucyhcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgY2FuSGF2ZUFzc2lnbmVlXG4gICAgICApO1xuICAgICAgY29uc3QgbGlzdEZpZWxkcyA9IHRoaXMuY29sdW1uU2VydmljZS5tYXBEZWZpbml0aW9uQ29sdW1uc1RvTGlzdEZpZWxkcyhcbiAgICAgICAgZmlsdGVyZWRBc3NpZ25lZUNvbHVtbnMsXG4gICAgICAgIGhhc0VudkNvbmZpZ1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGZpZWxkc1RvUmV0dXJuID0gdGhpcy5hc3NpZ25lZVNlcnZpY2UuYWRkQXNzaWduZWVMaXN0RmllbGQoXG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIGxpc3RGaWVsZHMsXG4gICAgICAgIGNhbkhhdmVBc3NpZ25lZVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGZpZWxkc1RvUmV0dXJuO1xuICAgIH0pLFxuICAgIHRhcChsaXN0RmllbGRzID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRMaXN0RmllbGQgPSBsaXN0RmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQuZGVmYXVsdCk7XG5cbiAgICAgIC8vIHNldCBkZWZhdWx0IHNvcnQgc3RhdGUgaWYgbm8gcGFnaW5hdGlvbiBxdWVyeSBwYXJhbWV0ZXJzIGZvciBzb3J0aW5nIGFyZSBhdmFpbGFibGVcbiAgICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5xdWVyeVBhZ2luYXRpb25QYXJhbXMkXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUocXVlcnlQYWdpbmF0aW9uUGFyYW1zID0+IHtcbiAgICAgICAgICBpZiAoZGVmYXVsdExpc3RGaWVsZCAmJiAhcXVlcnlQYWdpbmF0aW9uUGFyYW1zPy5zb3J0Py5pc1NvcnRpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvcnREaXJlY3Rpb24gPVxuICAgICAgICAgICAgICB0eXBlb2YgZGVmYXVsdExpc3RGaWVsZC5kZWZhdWx0ID09PSAnc3RyaW5nJyA/IGRlZmF1bHRMaXN0RmllbGQuZGVmYXVsdCA6ICdERVNDJztcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNlcnZpY2Uuc29ydENoYW5nZWQoe1xuICAgICAgICAgICAgICBpc1NvcnRpbmc6IHRydWUsXG4gICAgICAgICAgICAgIHN0YXRlOiB7bmFtZTogZGVmYXVsdExpc3RGaWVsZC5rZXksIGRpcmVjdGlvbjogc29ydERpcmVjdGlvbiBhcyBEaXJlY3Rpb259LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KSxcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nRmllbGRzID0gZmFsc2U7XG4gICAgfSlcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudFNlYXJjaFJlcXVlc3QkOiBPYnNlcnZhYmxlPEFkdmFuY2VkRG9jdW1lbnRTZWFyY2hSZXF1ZXN0PiA9XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fcGFnaW5hdGlvbiQsIHRoaXMubGlzdFNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uTmFtZSRdKS5waXBlKFxuICAgICAgZmlsdGVyKChbcGFnaW5hdGlvbl0pID0+ICEhcGFnaW5hdGlvbiksXG4gICAgICBtYXAoXG4gICAgICAgIChbcGFnaW5hdGlvbiwgZG9jdW1lbnREZWZpbml0aW9uTmFtZV0pID0+XG4gICAgICAgICAgbmV3IEFkdmFuY2VkRG9jdW1lbnRTZWFyY2hSZXF1ZXN0SW1wbChcbiAgICAgICAgICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWUsXG4gICAgICAgICAgICBwYWdpbmF0aW9uLnBhZ2UgLSAxLFxuICAgICAgICAgICAgcGFnaW5hdGlvbi5zaXplLFxuICAgICAgICAgICAgcGFnaW5hdGlvbi5zb3J0XG4gICAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnRzUmVxdWVzdCQ6IE9ic2VydmFibGU8RG9jdW1lbnRzIHwgU3BlY2lmaWVkRG9jdW1lbnRzPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2RvY3VtZW50U2VhcmNoUmVxdWVzdCQsXG4gICAgdGhpcy5zZWFyY2hGaWVsZFZhbHVlcyQsXG4gICAgdGhpcy5hc3NpZ25lZUZpbHRlciQsXG4gICAgdGhpcy5faGFzRW52Q29sdW1uQ29uZmlnJCxcbiAgICB0aGlzLl9oYXNBcGlDb2x1bW5Db25maWckLFxuICAgIHRoaXMuX3NlYXJjaFN3aXRjaCQsXG4gIF0pLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoXG4gICAgICAoXG4gICAgICAgIFtcbiAgICAgICAgICBwcmV2U2VhcmNoUmVxdWVzdCxcbiAgICAgICAgICBwcmV2U2VhcmNoVmFsdWVzLFxuICAgICAgICAgIHByZXZBc3NpZ25lZUZpbHRlcixcbiAgICAgICAgICBwcmV2SGFzRW52Q29sdW1uQ29uZmlnLFxuICAgICAgICAgIHByZXZIYXNBcGlDb2x1bW5Db25maWcsXG4gICAgICAgICAgcHJldlNlYXJjaFN3aXRjaCxcbiAgICAgICAgXSxcbiAgICAgICAgW1xuICAgICAgICAgIGN1cnJTZWFyY2hSZXF1ZXN0LFxuICAgICAgICAgIGN1cnJTZWFyY2hWYWx1ZXMsXG4gICAgICAgICAgY3VyckFzc2lnbmVlRmlsdGVyLFxuICAgICAgICAgIGN1cnJIYXNFbnZDb2x1bW5Db25maWcsXG4gICAgICAgICAgY3Vyckhhc0FwaUNvbHVtbkNvbmZpZyxcbiAgICAgICAgICBjdXJyU2VhcmNoU3dpdGNoLFxuICAgICAgICBdXG4gICAgICApID0+XG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHsuLi5wcmV2U2VhcmNoUmVxdWVzdCwgLi4ucHJldlNlYXJjaFZhbHVlc30pICtcbiAgICAgICAgICBwcmV2QXNzaWduZWVGaWx0ZXIgK1xuICAgICAgICAgIHByZXZTZWFyY2hTd2l0Y2ggPT09XG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHsuLi5jdXJyU2VhcmNoUmVxdWVzdCwgLi4uY3VyclNlYXJjaFZhbHVlc30pICtcbiAgICAgICAgICBjdXJyQXNzaWduZWVGaWx0ZXIgK1xuICAgICAgICAgIGN1cnJTZWFyY2hTd2l0Y2hcbiAgICApLFxuICAgIHN3aXRjaE1hcChcbiAgICAgIChbXG4gICAgICAgIGRvY3VtZW50U2VhcmNoUmVxdWVzdCxcbiAgICAgICAgc2VhcmNoVmFsdWVzLFxuICAgICAgICBhc3NpZ25lZUZpbHRlcixcbiAgICAgICAgaGFzRW52Q29sdW1uQ29uZmlnLFxuICAgICAgICBoYXNBcGlDb2x1bW5Db25maWcsXG4gICAgICBdKSA9PiB7XG4gICAgICAgIGlmICgoT2JqZWN0LmtleXMoc2VhcmNoVmFsdWVzKSB8fCBbXSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiBoYXNFbnZDb2x1bW5Db25maWcgfHwgIWhhc0FwaUNvbHVtbkNvbmZpZ1xuICAgICAgICAgICAgPyB0aGlzLmRvY3VtZW50U2VydmljZS5nZXREb2N1bWVudHNTZWFyY2goXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRTZWFyY2hSZXF1ZXN0LFxuICAgICAgICAgICAgICAgICdBTkQnLFxuICAgICAgICAgICAgICAgIGFzc2lnbmVlRmlsdGVyLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5tYXBTZWFyY2hWYWx1ZXNUb0ZpbHRlcnMoc2VhcmNoVmFsdWVzKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldFNwZWNpZmllZERvY3VtZW50c1NlYXJjaChcbiAgICAgICAgICAgICAgICBkb2N1bWVudFNlYXJjaFJlcXVlc3QsXG4gICAgICAgICAgICAgICAgJ0FORCcsXG4gICAgICAgICAgICAgICAgYXNzaWduZWVGaWx0ZXIsXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLm1hcFNlYXJjaFZhbHVlc1RvRmlsdGVycyhzZWFyY2hWYWx1ZXMpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGFzRW52Q29sdW1uQ29uZmlnIHx8ICFoYXNBcGlDb2x1bW5Db25maWdcbiAgICAgICAgICA/IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldERvY3VtZW50c1NlYXJjaChkb2N1bWVudFNlYXJjaFJlcXVlc3QsICdBTkQnLCBhc3NpZ25lZUZpbHRlcilcbiAgICAgICAgICA6IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldFNwZWNpZmllZERvY3VtZW50c1NlYXJjaChcbiAgICAgICAgICAgICAgZG9jdW1lbnRTZWFyY2hSZXF1ZXN0LFxuICAgICAgICAgICAgICAnQU5EJyxcbiAgICAgICAgICAgICAgYXNzaWduZWVGaWx0ZXJcbiAgICAgICAgICAgICk7XG4gICAgICB9XG4gICAgKSxcbiAgICB0YXAoZG9jdW1lbnRzID0+IHtcbiAgICAgIHRoaXMucGFnaW5hdGlvblNlcnZpY2Uuc2V0Q29sbGVjdGlvblNpemUoZG9jdW1lbnRzKTtcbiAgICAgIHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY2hlY2tQYWdlKGRvY3VtZW50cyk7XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgZG9jdW1lbnRJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9kb2N1bWVudHNSZXF1ZXN0JCxcbiAgICB0aGlzLl9oYXNFbnZDb2x1bW5Db25maWckLFxuICAgIHRoaXMuX2hhc0FwaUNvbHVtbkNvbmZpZyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbZG9jdW1lbnRzLCBoYXNFbnZDb2x1bW5Db25maWcsIGhhc0FwaUNvbHVtbkNvbmZpZ10pID0+XG4gICAgICB0aGlzLmxpc3RTZXJ2aWNlLm1hcERvY3VtZW50cyhkb2N1bWVudHMsIGhhc0VudkNvbHVtbkNvbmZpZywgaGFzQXBpQ29sdW1uQ29uZmlnKVxuICAgICksXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZ0Fzc2lnbmVlRmlsdGVyID0gZmFsc2U7XG4gICAgICB0aGlzLmxvYWRpbmdEb2N1bWVudEl0ZW1zID0gZmFsc2U7XG4gICAgfSlcbiAgKTtcblxuICBwcml2YXRlIF9wcmV2aW91c0RvY3VtZW50RGVmaW5pdGlvbk5hbWUhOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RvY3VtZW50RGVmaW5pdGlvbk5hbWVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlzdFNlcnZpY2U6IERvc3NpZXJMaXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbHVtblNlcnZpY2U6IERvc3NpZXJDb2x1bW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXNzaWduZWVTZXJ2aWNlOiBEb3NzaWVyTGlzdEFzc2lnbmVlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2luYXRpb25TZXJ2aWNlOiBEb3NzaWVyTGlzdFBhZ2luYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoU2VydmljZTogRG9zc2llckxpc3RTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFyYW1ldGVyU2VydmljZTogRG9zc2llclBhcmFtZXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VUaXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmlzaWJsZVRhYnMoKTtcbiAgICB0aGlzLm9wZW5Eb2N1bWVudERlZmluaXRpb25OYW1lU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5lbmFibGVSZXNldCgpO1xuICB9XG5cbiAgc2VhcmNoKHNlYXJjaEZpZWxkVmFsdWVzOiBTZWFyY2hGaWVsZFZhbHVlcyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2goc2VhcmNoRmllbGRWYWx1ZXMpO1xuICB9XG5cbiAgcm93Q2xpY2soZG9jdW1lbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMubGlzdFNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZG9jdW1lbnREZWZpbml0aW9uTmFtZSA9PiB7XG4gICAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLmNhY2hlUXVlcnlQYXJhbXMoXG4gICAgICAgIGAvZG9zc2llcnMvJHtkb2N1bWVudERlZmluaXRpb25OYW1lfWAsXG4gICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNcbiAgICAgICk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXG4gICAgICAgIGAvZG9zc2llcnMvJHtkb2N1bWVudERlZmluaXRpb25OYW1lfS9kb2N1bWVudC8ke2RvY3VtZW50LmlkfS8ke0RlZmF1bHRUYWJzLnN1bW1hcnl9YCxcbiAgICAgIF0pO1xuICAgIH0pO1xuICB9XG5cbiAgcGFnZUNoYW5nZShuZXdQYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnBhZ2VDaGFuZ2UobmV3UGFnZSk7XG4gIH1cblxuICBwYWdlU2l6ZUNoYW5nZShuZXdQYWdlU2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5wYWdlU2l6ZUNoYW5nZShuZXdQYWdlU2l6ZSk7XG4gIH1cblxuICBzb3J0Q2hhbmdlZChuZXdTb3J0U3RhdGU6IFNvcnRTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMucGFnaW5hdGlvblNlcnZpY2Uuc29ydENoYW5nZWQobmV3U29ydFN0YXRlKTtcbiAgfVxuXG4gIHRhYkNoYW5nZSh0YWI6IE5nYk5hdkNoYW5nZUV2ZW50PGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnNldFBhZ2UoMSk7XG4gICAgdGhpcy5hc3NpZ25lZVNlcnZpY2Uuc2V0QXNzaWduZWVGaWx0ZXIodGFiLm5leHRJZC50b1VwcGVyQ2FzZSgpKTtcbiAgfVxuXG4gIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkRvY3VtZW50RGVmaW5pdGlvbk5hbWVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fZG9jdW1lbnREZWZpbml0aW9uTmFtZVN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGUucGFyYW1zXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHBhcmFtcyA9PiBwYXJhbXM/LmRvY3VtZW50RGVmaW5pdGlvbk5hbWUpLFxuICAgICAgICBmaWx0ZXIoZG9jRGVmTmFtZSA9PiAhIWRvY0RlZk5hbWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGRvY3VtZW50RGVmaW5pdG9uTmFtZSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9wcmV2aW91c0RvY3VtZW50RGVmaW5pdGlvbk5hbWUpIHtcbiAgICAgICAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuY2xlYXJQYXJhbWV0ZXJzKCk7XG4gICAgICAgICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmNsZWFyU2VhcmNoRmllbGRWYWx1ZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wcmV2aW91c0RvY3VtZW50RGVmaW5pdGlvbk5hbWUgPSBkb2N1bWVudERlZmluaXRvbk5hbWU7XG4gICAgICAgIHRoaXMuc2V0TG9hZGluZygpO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmNsZWFyUGFnaW5hdGlvbigpO1xuICAgICAgICB0aGlzLmFzc2lnbmVlU2VydmljZS5yZXNldEFzc2lnbmVlRmlsdGVyKCk7XG4gICAgICAgIHRoaXMubGlzdFNlcnZpY2Uuc2V0RG9jdW1lbnREZWZpbml0aW9uTmFtZShkb2N1bWVudERlZmluaXRvbk5hbWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldExvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nRmllbGRzID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRpbmdQYWdpbmF0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRpbmdTZWFyY2hGaWVsZHMgPSB0cnVlO1xuICAgIHRoaXMubG9hZGluZ0Fzc2lnbmVlRmlsdGVyID0gdHJ1ZTtcbiAgICB0aGlzLmxvYWRpbmdEb2N1bWVudEl0ZW1zID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmlzaWJsZVRhYnMoKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlRG9zc2llclRhYnMgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnPy52aXNpYmxlRG9zc2llckxpc3RUYWJzIHx8IG51bGw7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBmaWVsZHM6IGZpZWxkcyQgfCBhc3luYyxcbiAgICBkb2N1bWVudEl0ZW1zOiBkb2N1bWVudEl0ZW1zJCB8IGFzeW5jLFxuICAgIHNlYXJjaEZpZWxkczogc2VhcmNoRmllbGRzJCB8IGFzeW5jLFxuICAgIHNjaGVtYTogc2NoZW1hJCB8IGFzeW5jLFxuICAgIGxvYWRlZDpcbiAgICAgICFsb2FkaW5nRmllbGRzICYmXG4gICAgICAhbG9hZGluZ1BhZ2luYXRpb24gJiZcbiAgICAgICFsb2FkaW5nU2VhcmNoRmllbGRzICYmXG4gICAgICAhbG9hZGluZ0Fzc2lnbmVlRmlsdGVyICYmXG4gICAgICAhbG9hZGluZ0RvY3VtZW50SXRlbXNcbiAgfSBhcyBvYnNcIlxuPlxuICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50IHB0LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHB4LTAgbWItNVwiPlxuICAgICAgICA8dmFsdGltby1kb3NzaWVyLWxpc3QtYWN0aW9uc1xuICAgICAgICAgIFtsb2FkaW5nXT1cIiFvYnMubG9hZGVkXCJcbiAgICAgICAgICAoZm9ybUZsb3dDb21wbGV0ZSk9XCJyZWZyZXNoKClcIlxuICAgICAgICA+PC92YWx0aW1vLWRvc3NpZXItbGlzdC1hY3Rpb25zPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2JzLmxvYWRlZDsgZWxzZSBsb2FkaW5nXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaEZpZWxkczsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0OyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc2VhcmNoRmllbGRzIGxldC1vYnM9XCJvYnNcIj5cbiAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICA8dmFsdGltby1zZWFyY2gtZmllbGRzXG4gICAgICBbc2VhcmNoRmllbGRzXT1cIm9icy5zZWFyY2hGaWVsZHNcIlxuICAgICAgKGRvU2VhcmNoKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgIFtkb2N1bWVudERlZmluaXRpb25OYW1lXT1cImRvY3VtZW50RGVmaW5pdGlvbk5hbWUkIHwgYXN5bmNcIlxuICAgICAgW2RlZmF1bHRWYWx1ZXNdPVwic2VhcmNoRmllbGRWYWx1ZXMkIHwgYXN5bmNcIlxuICAgID48L3ZhbHRpbW8tc2VhcmNoLWZpZWxkcz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xpc3QgbGV0LW9icz1cIm9ic1wiPlxuICA8dmFsdGltby13aWRnZXQ+XG4gICAgPHZhbHRpbW8tbGlzdFxuICAgICAgW2l0ZW1zXT1cIm9icy5kb2N1bWVudEl0ZW1zXCJcbiAgICAgIFtmaWVsZHNdPVwib2JzLmZpZWxkc1wiXG4gICAgICAocm93Q2xpY2tlZCk9XCJyb3dDbGljaygkZXZlbnQpXCJcbiAgICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxuICAgICAgW3ZpZXdNb2RlXT1cInRydWVcIlxuICAgICAgW2hlYWRlcl09XCJ0cnVlXCJcbiAgICAgIHBhZ2luYXRpb25JZGVudGlmaWVyPVwiZG9zc2llckxpc3RcIlxuICAgICAgKHBhZ2luYXRpb25DbGlja2VkKT1cInBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAocGFnaW5hdGlvblNldCk9XCJwYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtpbml0aWFsU29ydFN0YXRlXT1cInBhZ2luYXRpb24uc29ydFwiXG4gICAgICAoc29ydENoYW5nZWQpPVwic29ydENoYW5nZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGRpdiBoZWFkZXI+XG4gICAgICAgIDxoMyBjbGFzcz1cImxpc3QtaGVhZGVyLXRpdGxlXCI+XG4gICAgICAgICAgPHN1cCBjbGFzcz1cIm1sLTEgYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1wcmltYXJ5XCI+e3tcbiAgICAgICAgICAgIHBhZ2luYXRpb24/LmNvbGxlY3Rpb25TaXplIHx8IDBcbiAgICAgICAgICB9fTwvc3VwPlxuICAgICAgICA8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHRhYnMgKm5nSWY9XCJjYW5IYXZlQXNzaWduZWVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvdmFsdGltby1saXN0PlxuICA8L3ZhbHRpbW8td2lkZ2V0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0YWJzPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNzaWduZWVGaWx0ZXIkIHwgYXN5bmMgYXMgYXNzaWduZWVGaWx0ZXJcIj5cbiAgICA8dWxcbiAgICAgICpuZ0lmPVwidmlzaWJsZURvc3NpZXJUYWJzID09PSBudWxsOyBlbHNlIGNvbmZpZ3VyZWRUYWJzXCJcbiAgICAgIG5nYk5hdlxuICAgICAgW2Rlc3Ryb3lPbkhpZGVdPVwiZmFsc2VcIlxuICAgICAgKG5hdkNoYW5nZSk9XCJ0YWJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBjbGFzcz1cIm5hdi10YWJzXCJcbiAgICAgIFthY3RpdmVJZF09XCJhc3NpZ25lZUZpbHRlclwiXG4gICAgPlxuICAgICAgPGxpIG5nYk5hdkl0ZW09XCJBTExcIiBbdGl0bGVdPVwiJ2Rvc3NpZXIudGFicy5BTEwnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxhIG5nYk5hdkxpbms+e3sgJ2Rvc3NpZXIudGFicy5BTEwnIHwgdHJhbnNsYXRlIH19PC9hPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBuZ2JOYXZJdGVtPVwiTUlORVwiIFt0aXRsZV09XCInZG9zc2llci50YWJzLk1JTkUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxhIG5nYk5hdkxpbms+e3sgJ2Rvc3NpZXIudGFicy5NSU5FJyB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgbmdiTmF2SXRlbT1cIk9QRU5cIiBbdGl0bGVdPVwiJ2Rvc3NpZXIudGFicy5PUEVOJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICA8YSBuZ2JOYXZMaW5rPnt7ICdkb3NzaWVyLnRhYnMuT1BFTicgfCB0cmFuc2xhdGUgfX08L2E+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb25maWd1cmVkVGFicz5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFzc2lnbmVlRmlsdGVyJCB8IGFzeW5jIGFzIGFzc2lnbmVlRmlsdGVyXCI+XG4gICAgPHVsXG4gICAgICBuZ2JOYXZcbiAgICAgIFtkZXN0cm95T25IaWRlXT1cImZhbHNlXCJcbiAgICAgIChuYXZDaGFuZ2UpPVwidGFiQ2hhbmdlKCRldmVudClcIlxuICAgICAgY2xhc3M9XCJuYXYtdGFic1wiXG4gICAgICBbYWN0aXZlSWRdPVwiYXNzaWduZWVGaWx0ZXJcIlxuICAgID5cbiAgICAgIDxsaVxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHZpc2libGVEb3NzaWVyVGFic1wiXG4gICAgICAgIFtuZ2JOYXZJdGVtXT1cInRhYlwiXG4gICAgICAgIFt0aXRsZV09XCInZG9zc2llci50YWJzLicgKyB0YWIgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgICA8YSBuZ2JOYXZMaW5rPnt7ICdkb3NzaWVyLnRhYnMuJyArIHRhYiB8IHRyYW5zbGF0ZSB9fTwvYT5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+PHZhbHRpbW8tc3Bpbm5lcj48L3ZhbHRpbW8tc3Bpbm5lcj48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
17
|
-
import { map, of, switchMap, tap } from 'rxjs';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "@valtimo/document";
|
|
20
|
-
import * as i2 from "@angular/router";
|
|
21
|
-
import * as i3 from "../services";
|
|
22
|
-
import * as i4 from "@angular/common";
|
|
23
|
-
import * as i5 from "@ng-bootstrap/ng-bootstrap";
|
|
24
|
-
import * as i6 from "../dossier-process-start-modal/dossier-process-start-modal.component";
|
|
25
|
-
import * as i7 from "@ngx-translate/core";
|
|
26
|
-
export class DossierListActionsComponent {
|
|
27
|
-
constructor(documentService, route, listService) {
|
|
28
|
-
this.documentService = documentService;
|
|
29
|
-
this.route = route;
|
|
30
|
-
this.listService = listService;
|
|
31
|
-
this.formFlowComplete = new EventEmitter();
|
|
32
|
-
this.selectedProcessDocumentDefinition = null;
|
|
33
|
-
this.modalListenerAdded = false;
|
|
34
|
-
this._cachedAssociatedProcessDocumentDefinitions = [];
|
|
35
|
-
this.associatedProcessDocumentDefinitions$ = this.listService.documentDefinitionName$.pipe(switchMap(documentDefinitionName => documentDefinitionName
|
|
36
|
-
? this.documentService.findProcessDocumentDefinitions(documentDefinitionName)
|
|
37
|
-
: of([])), map(processDocumentDefinitions => processDocumentDefinitions.filter(definition => definition.canInitializeDocument)), tap(processDocumentDefinitions => {
|
|
38
|
-
this._cachedAssociatedProcessDocumentDefinitions = processDocumentDefinitions;
|
|
39
|
-
}));
|
|
40
|
-
}
|
|
41
|
-
ngOnInit() {
|
|
42
|
-
this.modalListenerAdded = false;
|
|
43
|
-
}
|
|
44
|
-
startDossier() {
|
|
45
|
-
const associatedProcessDocumentDefinitions = this._cachedAssociatedProcessDocumentDefinitions;
|
|
46
|
-
if (associatedProcessDocumentDefinitions.length > 1) {
|
|
47
|
-
$('#startProcess').modal('show');
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.selectedProcessDocumentDefinition = associatedProcessDocumentDefinitions[0];
|
|
51
|
-
this.showStartProcessModal();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
selectProcess(processDocumentDefinition) {
|
|
55
|
-
const modal = $('#startProcess');
|
|
56
|
-
if (!this.modalListenerAdded) {
|
|
57
|
-
modal.on('hidden.bs.modal', this.showStartProcessModal.bind(this));
|
|
58
|
-
this.modalListenerAdded = true;
|
|
59
|
-
}
|
|
60
|
-
this.selectedProcessDocumentDefinition = processDocumentDefinition;
|
|
61
|
-
modal.modal('hide');
|
|
62
|
-
}
|
|
63
|
-
onFormFlowComplete() {
|
|
64
|
-
this.formFlowComplete.emit(null);
|
|
65
|
-
}
|
|
66
|
-
showStartProcessModal() {
|
|
67
|
-
if (this.selectedProcessDocumentDefinition !== null) {
|
|
68
|
-
this.processStart.openModal(this.selectedProcessDocumentDefinition);
|
|
69
|
-
this.selectedProcessDocumentDefinition = null;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
DossierListActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DossierListActionsComponent, deps: [{ token: i1.DocumentService }, { token: i2.ActivatedRoute }, { token: i3.DossierListService }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
DossierListActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DossierListActionsComponent, selector: "valtimo-dossier-list-actions", inputs: { loading: "loading" }, outputs: { formFlowComplete: "formFlowComplete" }, viewQueries: [{ propertyName: "processStart", first: true, predicate: ["processStartModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\">\n <div class=\"text-right mt-m3px mb-3\">\n <button\n type=\"button\"\n class=\"btn btn-space btn-primary mr-0\"\n (click)=\"startDossier()\"\n [ngbTooltip]=\"associatedProcessDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"associatedProcessDocumentDefinitions.length === 0 || loading\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'Start Dossier' | translate }}\n </button>\n </div>\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of associatedProcessDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<valtimo-dossier-process-start-modal\n #processStartModal\n (formFlowComplete)=\"onFormFlowComplete()\"\n></valtimo-dossier-process-start-modal>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i6.DossierProcessStartModalComponent, selector: "valtimo-dossier-process-start-modal", outputs: ["formFlowComplete"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DossierListActionsComponent, decorators: [{
|
|
76
|
-
type: Component,
|
|
77
|
-
args: [{ selector: 'valtimo-dossier-list-actions', template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\">\n <div class=\"text-right mt-m3px mb-3\">\n <button\n type=\"button\"\n class=\"btn btn-space btn-primary mr-0\"\n (click)=\"startDossier()\"\n [ngbTooltip]=\"associatedProcessDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"associatedProcessDocumentDefinitions.length === 0 || loading\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'Start Dossier' | translate }}\n </button>\n </div>\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of associatedProcessDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<valtimo-dossier-process-start-modal\n #processStartModal\n (formFlowComplete)=\"onFormFlowComplete()\"\n></valtimo-dossier-process-start-modal>\n" }]
|
|
78
|
-
}], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.ActivatedRoute }, { type: i3.DossierListService }]; }, propDecorators: { processStart: [{
|
|
79
|
-
type: ViewChild,
|
|
80
|
-
args: ['processStartModal']
|
|
81
|
-
}], loading: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], formFlowComplete: [{
|
|
84
|
-
type: Output
|
|
85
|
-
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9zc2llci1saXN0LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvZG9zc2llci1saXN0LWFjdGlvbnMvZG9zc2llci1saXN0LWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvZG9zc2llci1saXN0LWFjdGlvbnMvZG9zc2llci1saXN0LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUMsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFhekQsTUFBTSxPQUFPLDJCQUEyQjtJQTRCdEMsWUFDbUIsZUFBZ0MsRUFDaEMsS0FBcUIsRUFDckIsV0FBK0I7UUFGL0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQTFCeEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4QyxzQ0FBaUMsR0FBcUMsSUFBSSxDQUFDO1FBRTNFLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixnREFBMkMsR0FBcUMsRUFBRSxDQUFDO1FBRWxGLDBDQUFxQyxHQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FDM0MsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FDakMsc0JBQXNCO1lBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLDhCQUE4QixDQUFDLHNCQUFzQixDQUFDO1lBQzdFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ1gsRUFDRCxHQUFHLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUMvQiwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsQ0FDbEYsRUFDRCxHQUFHLENBQUMsMEJBQTBCLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsMkNBQTJDLEdBQUcsMEJBQTBCLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQU1ELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxDQUFDLDJDQUEyQyxDQUFDO1FBRTlGLElBQUksb0NBQW9DLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuRCxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsaUNBQWlDLEdBQUcsb0NBQW9DLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLHlCQUFvRDtRQUNoRSxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixLQUFLLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLGlDQUFpQyxHQUFHLHlCQUF5QixDQUFDO1FBQ25FLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsaUNBQWlDLEtBQUssSUFBSSxFQUFFO1lBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxJQUFJLENBQUM7U0FDL0M7SUFDSCxDQUFDOzt3SEFwRVUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsMFFDOUJ4Qyxpd0ZBMkVBOzJGRDdDYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsOEJBQThCO29LQUtSLFlBQVk7c0JBQTNDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVyQixPQUFPO3NCQUFmLEtBQUs7Z0JBRUksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHttYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZSwgUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbn0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtEb3NzaWVyUHJvY2Vzc1N0YXJ0TW9kYWxDb21wb25lbnR9IGZyb20gJy4uL2Rvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbC9kb3NzaWVyLXByb2Nlc3Mtc3RhcnQtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0Rvc3NpZXJMaXN0U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci1saXN0LWFjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9zc2llci1saXN0LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3NzaWVyLWxpc3QtYWN0aW9ucy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyTGlzdEFjdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdwcm9jZXNzU3RhcnRNb2RhbCcpIHByb2Nlc3NTdGFydDogRG9zc2llclByb2Nlc3NTdGFydE1vZGFsQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIGxvYWRpbmchOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBmb3JtRmxvd0NvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uOiBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBtb2RhbExpc3RlbmVyQWRkZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9jYWNoZWRBc3NvY2lhdGVkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnM6IEFycmF5PFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24+ID0gW107XG5cbiAgcmVhZG9ubHkgYXNzb2NpYXRlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zJDogT2JzZXJ2YWJsZTxBcnJheTxQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uPj4gPVxuICAgIHRoaXMubGlzdFNlcnZpY2UuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQucGlwZShcbiAgICAgIHN3aXRjaE1hcChkb2N1bWVudERlZmluaXRpb25OYW1lID0+XG4gICAgICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWVcbiAgICAgICAgICA/IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmZpbmRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyhkb2N1bWVudERlZmluaXRpb25OYW1lKVxuICAgICAgICAgIDogb2YoW10pXG4gICAgICApLFxuICAgICAgbWFwKHByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zID0+XG4gICAgICAgIHByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zLmZpbHRlcihkZWZpbml0aW9uID0+IGRlZmluaXRpb24uY2FuSW5pdGlhbGl6ZURvY3VtZW50KVxuICAgICAgKSxcbiAgICAgIHRhcChwcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyA9PiB7XG4gICAgICAgIHRoaXMuX2NhY2hlZEFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyA9IHByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zO1xuICAgICAgfSlcbiAgICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0U2VydmljZTogRG9zc2llckxpc3RTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsTGlzdGVuZXJBZGRlZCA9IGZhbHNlO1xuICB9XG5cbiAgc3RhcnREb3NzaWVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyA9IHRoaXMuX2NhY2hlZEFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucztcblxuICAgIGlmIChhc3NvY2lhdGVkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnMubGVuZ3RoID4gMSkge1xuICAgICAgJCgnI3N0YXJ0UHJvY2VzcycpLm1vZGFsKCdzaG93Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uID0gYXNzb2NpYXRlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zWzBdO1xuICAgICAgdGhpcy5zaG93U3RhcnRQcm9jZXNzTW9kYWwoKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RQcm9jZXNzKHByb2Nlc3NEb2N1bWVudERlZmluaXRpb246IFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBtb2RhbCA9ICQoJyNzdGFydFByb2Nlc3MnKTtcbiAgICBpZiAoIXRoaXMubW9kYWxMaXN0ZW5lckFkZGVkKSB7XG4gICAgICBtb2RhbC5vbignaGlkZGVuLmJzLm1vZGFsJywgdGhpcy5zaG93U3RhcnRQcm9jZXNzTW9kYWwuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLm1vZGFsTGlzdGVuZXJBZGRlZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uID0gcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbjtcbiAgICBtb2RhbC5tb2RhbCgnaGlkZScpO1xuICB9XG5cbiAgb25Gb3JtRmxvd0NvbXBsZXRlKCkge1xuICAgIHRoaXMuZm9ybUZsb3dDb21wbGV0ZS5lbWl0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93U3RhcnRQcm9jZXNzTW9kYWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnByb2Nlc3NTdGFydC5vcGVuTW9kYWwodGhpcy5zZWxlY3RlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24pO1xuICAgICAgdGhpcy5zZWxlY3RlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24gPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2ICpuZ0lmPVwiYXNzb2NpYXRlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zJCB8IGFzeW5jIGFzIGFzc29jaWF0ZWRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uc1wiPlxuICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodCBtdC1tM3B4IG1iLTNcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zcGFjZSBidG4tcHJpbWFyeSBtci0wXCJcbiAgICAgIChjbGljayk9XCJzdGFydERvc3NpZXIoKVwiXG4gICAgICBbbmdiVG9vbHRpcF09XCJhc3NvY2lhdGVkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnMubGVuZ3RoID09PSAwID8gJ05vIGFjdGlvbicgOiBudWxsXCJcbiAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICBbZGlzYWJsZWRdPVwiYXNzb2NpYXRlZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zLmxlbmd0aCA9PT0gMCB8fCBsb2FkaW5nXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImljb24gbWRpIG1kaS1wbHVzIG1yLTFcIj48L2k+XG4gICAgICB7eyAnU3RhcnQgRG9zc2llcicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1vZGFsIGZhZGVcIlxuICAgIGlkPVwic3RhcnRQcm9jZXNzXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICByb2xlPVwiZGlhbG9nXCJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJzdGFydFByb2Nlc3NMYWJlbFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtZGlhbG9nLWNlbnRlcmVkXCIgcm9sZT1cImRvY3VtZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cInN0YXJ0UHJvY2Vzc0xhYmVsXCI+XG4gICAgICAgICAgICB7eyAnZGFzaGJvYXJkLnN0YXJ0UHJvY2Vzcy50aXRsZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIG0tMFwiPlxuICAgICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbiBvZiBhc3NvY2lhdGVkUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnNcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQcm9jZXNzKHByb2Nlc3NEb2N1bWVudERlZmluaXRpb24pXCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dGQ+e3sgcHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbi5wcm9jZXNzTmFtZSB9fTwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiPlxuICAgICAgICAgICAge3sgJ2N0YS5jbG9zZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPHZhbHRpbW8tZG9zc2llci1wcm9jZXNzLXN0YXJ0LW1vZGFsXG4gICNwcm9jZXNzU3RhcnRNb2RhbFxuICAoZm9ybUZsb3dDb21wbGV0ZSk9XCJvbkZvcm1GbG93Q29tcGxldGUoKVwiXG4+PC92YWx0aW1vLWRvc3NpZXItcHJvY2Vzcy1zdGFydC1tb2RhbD5cbiJdfQ==
|