@hmcts/rpx-xui-common-lib 1.6.1-adding-location-filter-bugfix → 1.6.1-all-work-filter
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/bundles/hmcts-rpx-xui-common-lib.umd.js +607 -426
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/components/find-location/find-location.component.js +98 -44
- package/esm2015/lib/components/find-person/find-person.component.js +59 -24
- package/esm2015/lib/components/generic-filter/generic-filter-utils.js +2 -2
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +49 -42
- package/esm2015/lib/components/search-location/search-location.component.js +53 -67
- package/esm2015/lib/exui-common-lib.module.js +4 -3
- package/esm2015/lib/gov-ui/models/isession-storage.interface.js +24 -0
- package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +58 -0
- package/esm2015/lib/models/filter.model.js +9 -1
- package/esm2015/lib/models/person.model.js +11 -1
- package/esm2015/lib/models/search-options.model.js +4 -2
- package/esm2015/lib/services/find-person/find-person.service.js +77 -24
- package/esm5/lib/components/find-location/find-location.component.js +122 -64
- package/esm5/lib/components/find-person/find-person.component.js +59 -25
- package/esm5/lib/components/generic-filter/generic-filter-utils.js +2 -2
- package/esm5/lib/components/generic-filter/generic-filter.component.js +98 -71
- package/esm5/lib/components/search-location/search-location.component.js +59 -75
- package/esm5/lib/exui-common-lib.module.js +4 -3
- package/esm5/lib/gov-ui/models/isession-storage.interface.js +24 -0
- package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +58 -0
- package/esm5/lib/models/filter.model.js +9 -1
- package/esm5/lib/models/person.model.js +11 -1
- package/esm5/lib/models/search-options.model.js +4 -2
- package/esm5/lib/services/find-person/find-person.service.js +83 -24
- package/fesm2015/hmcts-rpx-xui-common-lib.js +425 -268
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/fesm5/hmcts-rpx-xui-common-lib.js +532 -348
- package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
- package/lib/components/find-location/find-location.component.d.ts +11 -6
- package/lib/components/find-person/find-person.component.d.ts +10 -8
- package/lib/components/generic-filter/generic-filter-utils.d.ts +2 -2
- package/lib/components/generic-filter/generic-filter.component.d.ts +2 -3
- package/lib/components/search-location/search-location.component.d.ts +9 -9
- package/lib/gov-ui/models/isession-storage.interface.d.ts +4 -0
- package/lib/gov-ui/util/session-storage/session-storage-utils.d.ts +6 -0
- package/lib/models/filter.model.d.ts +4 -0
- package/lib/models/person.model.d.ts +4 -0
- package/lib/models/search-options.model.d.ts +2 -1
- package/lib/services/find-person/find-person.service.d.ts +2 -2
- package/package.json +1 -1
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
import { HttpClient } from '@angular/common/http';
|
|
7
7
|
import { Injectable } from '@angular/core';
|
|
8
8
|
import { of } from 'rxjs';
|
|
9
|
-
import { tap } from 'rxjs/operators';
|
|
10
|
-
import {
|
|
9
|
+
import { map, tap } from 'rxjs/operators';
|
|
10
|
+
import { getAllCaseworkersFromServices, getSessionStorageKeyForServiceId, setCaseworkers } from '../../gov-ui/util/session-storage/session-storage-utils';
|
|
11
|
+
import { PersonRole, RoleCategory } from '../../models';
|
|
11
12
|
import { SessionStorageService } from '../session-storage/session-storage.service';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "@angular/common/http";
|
|
@@ -52,35 +53,60 @@ var FindAPersonService = /** @class */ (function () {
|
|
|
52
53
|
var userInfo = JSON.parse(userInfoStr);
|
|
53
54
|
this.userId = userInfo.id ? userInfo.id : userInfo.uid;
|
|
54
55
|
}
|
|
55
|
-
if (!this.sessionStorageService.getItem(FindAPersonService.caseworkersKey)) {
|
|
56
|
-
this.http.get('/workallocation2/caseworker').pipe(tap((/**
|
|
57
|
-
* @param {?} caseworkerList
|
|
58
|
-
* @return {?}
|
|
59
|
-
*/
|
|
60
|
-
function (caseworkerList) { return _this.sessionStorageService.setItem(FindAPersonService.caseworkersKey, JSON.stringify(caseworkerList)); })));
|
|
61
|
-
}
|
|
62
56
|
/** @type {?} */
|
|
63
|
-
var
|
|
57
|
+
var fullServices = searchOptions.services;
|
|
64
58
|
/** @type {?} */
|
|
65
|
-
var
|
|
66
|
-
if (!(searchOptions.jurisdiction === PersonRole.ALL)) {
|
|
67
|
-
roleCategory = searchOptions.jurisdiction === PersonRole.CASEWORKER ? RoleCategory.CASEWORKER : RoleCategory.ADMIN;
|
|
68
|
-
}
|
|
59
|
+
var storedServices = [];
|
|
69
60
|
/** @type {?} */
|
|
70
|
-
var
|
|
61
|
+
var newServices = [];
|
|
71
62
|
/** @type {?} */
|
|
72
|
-
var
|
|
73
|
-
/**
|
|
74
|
-
|
|
75
|
-
* @param {?} person
|
|
63
|
+
var storedCaseworkersByService = [];
|
|
64
|
+
fullServices.forEach((/**
|
|
65
|
+
* @param {?} serviceId
|
|
76
66
|
* @return {?}
|
|
77
67
|
*/
|
|
78
|
-
function (
|
|
79
|
-
|
|
80
|
-
|
|
68
|
+
function (serviceId) {
|
|
69
|
+
/** @type {?} */
|
|
70
|
+
var serviceKey = getSessionStorageKeyForServiceId(serviceId);
|
|
71
|
+
if (_this.sessionStorageService.getItem(serviceKey)) {
|
|
72
|
+
storedServices.push(serviceId);
|
|
73
|
+
storedCaseworkersByService.push({ service: serviceId, caseworkers: JSON.parse(_this.sessionStorageService.getItem(serviceKey)) });
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
newServices.push(serviceId);
|
|
77
|
+
}
|
|
78
|
+
}));
|
|
79
|
+
// if all services are stored then return the stored caseworkers by service
|
|
80
|
+
if (storedServices.length === fullServices.length) {
|
|
81
|
+
/** @type {?} */
|
|
82
|
+
var storedCaseworkers = getAllCaseworkersFromServices(storedCaseworkersByService);
|
|
83
|
+
return of(this.searchInCaseworkers(storedCaseworkers, searchOptions));
|
|
84
|
+
}
|
|
85
|
+
// all serviceIds passed in as node layer getting used anyway and caseworkers also stored there
|
|
86
|
+
return this.http.post('/workallocation2/retrieveCaseWorkersForServices', { fullServices: fullServices }).pipe(tap((/**
|
|
87
|
+
* @param {?} caseworkersByService
|
|
88
|
+
* @return {?}
|
|
89
|
+
*/
|
|
90
|
+
function (caseworkersByService) {
|
|
91
|
+
caseworkersByService.forEach((/**
|
|
92
|
+
* @param {?} caseworkerListByService
|
|
93
|
+
* @return {?}
|
|
94
|
+
*/
|
|
95
|
+
function (caseworkerListByService) {
|
|
96
|
+
// for any new service, ensure that they are then stored in the session
|
|
97
|
+
if (newServices.includes(caseworkerListByService.service)) {
|
|
98
|
+
setCaseworkers(caseworkerListByService.service, caseworkerListByService.caseworkers, _this.sessionStorageService);
|
|
99
|
+
}
|
|
100
|
+
}));
|
|
101
|
+
})), map((/**
|
|
102
|
+
* @param {?} caseworkersByService
|
|
81
103
|
* @return {?}
|
|
82
104
|
*/
|
|
83
|
-
function (
|
|
105
|
+
function (caseworkersByService) {
|
|
106
|
+
/** @type {?} */
|
|
107
|
+
var givenCaseworkers = getAllCaseworkersFromServices(caseworkersByService);
|
|
108
|
+
return _this.searchInCaseworkers(givenCaseworkers, searchOptions);
|
|
109
|
+
})));
|
|
84
110
|
};
|
|
85
111
|
/**
|
|
86
112
|
* @param {?} caseworkers
|
|
@@ -113,6 +139,39 @@ var FindAPersonService = /** @class */ (function () {
|
|
|
113
139
|
}));
|
|
114
140
|
return people;
|
|
115
141
|
};
|
|
142
|
+
/**
|
|
143
|
+
* @param {?} caseworkers
|
|
144
|
+
* @param {?} searchOptions
|
|
145
|
+
* @return {?}
|
|
146
|
+
*/
|
|
147
|
+
FindAPersonService.prototype.searchInCaseworkers = /**
|
|
148
|
+
* @param {?} caseworkers
|
|
149
|
+
* @param {?} searchOptions
|
|
150
|
+
* @return {?}
|
|
151
|
+
*/
|
|
152
|
+
function (caseworkers, searchOptions) {
|
|
153
|
+
var _this = this;
|
|
154
|
+
/** @type {?} */
|
|
155
|
+
var roleCategory = RoleCategory.ALL;
|
|
156
|
+
if (!(searchOptions.userRole === PersonRole.ALL)) {
|
|
157
|
+
roleCategory = searchOptions.userRole === PersonRole.CASEWORKER ? RoleCategory.CASEWORKER : RoleCategory.ADMIN;
|
|
158
|
+
}
|
|
159
|
+
/** @type {?} */
|
|
160
|
+
var searchTerm = searchOptions && searchOptions.searchTerm ? searchOptions.searchTerm.toLowerCase() : '';
|
|
161
|
+
/** @type {?} */
|
|
162
|
+
var people = caseworkers ? this.mapCaseworkers(caseworkers, roleCategory) : [];
|
|
163
|
+
/** @type {?} */
|
|
164
|
+
var finalPeopleList = people.filter((/**
|
|
165
|
+
* @param {?} person
|
|
166
|
+
* @return {?}
|
|
167
|
+
*/
|
|
168
|
+
function (person) { return person && person.name && person.name.toLowerCase().includes(searchTerm); }));
|
|
169
|
+
return searchOptions.userIncluded ? finalPeopleList : finalPeopleList.filter((/**
|
|
170
|
+
* @param {?} person
|
|
171
|
+
* @return {?}
|
|
172
|
+
*/
|
|
173
|
+
function (person) { return person && person.id !== _this.userId; }));
|
|
174
|
+
};
|
|
116
175
|
FindAPersonService.caseworkersKey = 'caseworkers';
|
|
117
176
|
FindAPersonService.decorators = [
|
|
118
177
|
{ type: Injectable, args: [{
|
|
@@ -144,4 +203,4 @@ if (false) {
|
|
|
144
203
|
*/
|
|
145
204
|
FindAPersonService.prototype.sessionStorageService;
|
|
146
205
|
}
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmluZC1wZXJzb24vZmluZC1wZXJzb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBc0IsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7O0FBRW5GO0lBUUUsNEJBQTZCLElBQWdCLEVBQW1CLHFCQUE0QztRQUEvRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQW1CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFBSSxDQUFDOzs7OztJQUUxRyxpQ0FBSTs7OztJQUFYLFVBQVksYUFBNEI7O1lBQ2hDLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNyRSxJQUFJLFdBQVcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUU7O2dCQUN4QyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7WUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVyw2QkFB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ckIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUs7YUFFdkc7WUFDRCxJQUFJLFVBQVUsQ0FBQyxZQUFZLEtBQUssWUFBWSxJQUFJLFlBQVksS0FBSyxZQUFZLENBQUMsR0FBRyxFQUFFO2dCQUNqRixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBbkRhLGlDQUFjLEdBQVcsYUFBYSxDQUFDOztnQkFMdEQsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFYUSxVQUFVO2dCQU9WLHFCQUFxQjs7OzZCQVA5QjtDQWtFQyxBQXpERCxJQXlEQztTQXREWSxrQkFBa0I7OztJQUU3QixrQ0FBcUQ7O0lBQ3JELG9DQUFzQjs7Ozs7SUFFVixrQ0FBaUM7Ozs7O0lBQUUsbURBQTZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENhc2V3b3JrZXIsIFBlcnNvbiwgUGVyc29uUm9sZSwgUm9sZUNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlYXJjaC1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24tc3RvcmFnZS9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbmRBUGVyc29uU2VydmljZSB7XG5cbiAgcHVibGljIHN0YXRpYyBjYXNld29ya2Vyc0tleTogc3RyaW5nID0gJ2Nhc2V3b3JrZXJzJztcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSkgeyB9XG5cbiAgcHVibGljIGZpbmQoc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IE9ic2VydmFibGU8UGVyc29uW10+IHtcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyICYmICFzZWFyY2hPcHRpb25zLnVzZXJJbmNsdWRlZCkge1xuICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHRoaXMudXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFBlcnNvbltdPignL3dvcmthbGxvY2F0aW9uMi9maW5kUGVyc29uJywgeyBzZWFyY2hPcHRpb25zLCB1c2VySWQ6IHRoaXMudXNlcklkIH0pO1xuICB9XG5cbiAgcHVibGljIGZpbmRDYXNld29ya2VycyhzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25zKTogT2JzZXJ2YWJsZTxQZXJzb25bXT4ge1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIGlmICghdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShGaW5kQVBlcnNvblNlcnZpY2UuY2FzZXdvcmtlcnNLZXkpKSB7XG4gICAgICB0aGlzLmh0dHAuZ2V0PENhc2V3b3JrZXJbXT4oJy93b3JrYWxsb2NhdGlvbjIvY2FzZXdvcmtlcicpLnBpcGUoXG4gICAgICAgIHRhcChjYXNld29ya2VyTGlzdCA9PiB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKEZpbmRBUGVyc29uU2VydmljZS5jYXNld29ya2Vyc0tleSwgSlNPTi5zdHJpbmdpZnkoY2FzZXdvcmtlckxpc3QpKSlcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGNhc2V3b3JrZXJzID0gSlNPTi5wYXJzZSh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKEZpbmRBUGVyc29uU2VydmljZS5jYXNld29ya2Vyc0tleSkpO1xuICAgIGxldCByb2xlQ2F0ZWdvcnkgPSBSb2xlQ2F0ZWdvcnkuQUxMO1xuICAgIGlmICghKHNlYXJjaE9wdGlvbnMuanVyaXNkaWN0aW9uID09PSBQZXJzb25Sb2xlLkFMTCkpIHtcbiAgICAgIHJvbGVDYXRlZ29yeSA9IHNlYXJjaE9wdGlvbnMuanVyaXNkaWN0aW9uID09PSBQZXJzb25Sb2xlLkNBU0VXT1JLRVIgPyBSb2xlQ2F0ZWdvcnkuQ0FTRVdPUktFUiA6IFJvbGVDYXRlZ29yeS5BRE1JTjtcbiAgICB9XG4gICAgY29uc3QgcGVvcGxlID0gY2FzZXdvcmtlcnMgPyB0aGlzLm1hcENhc2V3b3JrZXJzKGNhc2V3b3JrZXJzLCByb2xlQ2F0ZWdvcnkpIDogW107XG4gICAgY29uc3Qgc2VhcmNoVGVybSA9IHNlYXJjaE9wdGlvbnMgJiYgc2VhcmNoT3B0aW9ucy5zZWFyY2hUZXJtID8gc2VhcmNoT3B0aW9ucy5zZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkgOiAnJztcbiAgICBjb25zdCBmaW5hbFBlb3BsZUxpc3QgPSBwZW9wbGUuZmlsdGVyKHBlcnNvbiA9PiBwZXJzb24gJiYgcGVyc29uLm5hbWUgJiYgcGVyc29uLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSk7XG4gICAgcmV0dXJuIHNlYXJjaE9wdGlvbnMudXNlckluY2x1ZGVkID8gb2YoZmluYWxQZW9wbGVMaXN0KSA6IG9mKGZpbmFsUGVvcGxlTGlzdC5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24uaWQgIT09IHRoaXMudXNlcklkKSk7XG4gIH1cblxuICBwdWJsaWMgbWFwQ2FzZXdvcmtlcnMoY2FzZXdvcmtlcnM6IENhc2V3b3JrZXJbXSwgcm9sZUNhdGVnb3J5OiBzdHJpbmcpOiBQZXJzb25bXSB7XG4gICAgY29uc3QgcGVvcGxlOiBQZXJzb25bXSA9IFtdO1xuICAgIGNhc2V3b3JrZXJzLmZvckVhY2goKGNhc2V3b3JrZXIpID0+IHtcbiAgICAgIGNvbnN0IHRoaXNQZXJzb246IFBlcnNvbiA9IHtcbiAgICAgICAgZW1haWw6IGNhc2V3b3JrZXIuZW1haWwsXG4gICAgICAgIG5hbWU6IGAke2Nhc2V3b3JrZXIuZmlyc3ROYW1lfSAke2Nhc2V3b3JrZXIubGFzdE5hbWV9YCxcbiAgICAgICAgaWQ6IGNhc2V3b3JrZXIuaWRhbUlkLFxuICAgICAgICBkb21haW46IGNhc2V3b3JrZXIucm9sZUNhdGVnb3J5ID09PSBSb2xlQ2F0ZWdvcnkuQ0FTRVdPUktFUiA/IFBlcnNvblJvbGUuQ0FTRVdPUktFUiA6IFBlcnNvblJvbGUuQURNSU4sXG4gICAgICAgIC8vIGtub3duQXMgY2FuIGJlIGFkZGVkIGlmIHJlcXVpcmVkXG4gICAgICB9O1xuICAgICAgaWYgKGNhc2V3b3JrZXIucm9sZUNhdGVnb3J5ID09PSByb2xlQ2F0ZWdvcnkgfHwgcm9sZUNhdGVnb3J5ID09PSBSb2xlQ2F0ZWdvcnkuQUxMKSB7XG4gICAgICAgIHBlb3BsZS5wdXNoKHRoaXNQZXJzb24pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwZW9wbGU7XG4gIH1cbn1cblxuIl19
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZmluZC1wZXJzb24vZmluZC1wZXJzb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsZ0NBQWdDLEVBQUUsY0FBYyxFQUFDLE1BQU0seURBQXlELENBQUM7QUFFeEosT0FBTyxFQUEyQyxVQUFVLEVBQUUsWUFBWSxFQUFnQixNQUFNLGNBQWMsQ0FBQztBQUMvRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQUVqRjtJQVFFLDRCQUE2QixJQUFnQixFQUFtQixxQkFBNEM7UUFBL0UsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFtQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBQzVHLENBQUM7Ozs7O0lBRU0saUNBQUk7Ozs7SUFBWCxVQUFZLGFBQTRCOztZQUNoQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDckUsSUFBSSxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFOztnQkFDeEMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztTQUN4RDtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVcsNkJBQTZCLEVBQUUsRUFBQyxhQUFhLGVBQUEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQzs7Ozs7SUFFTSw0Q0FBZTs7OztJQUF0QixVQUF1QixhQUE0QjtRQUFuRCxpQkF1Q0M7O1lBdENPLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNyRSxJQUFJLFdBQVcsRUFBRTs7Z0JBQ1QsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztTQUN4RDs7WUFDSyxZQUFZLEdBQUcsYUFBYSxDQUFDLFFBQVE7O1lBQ3JDLGNBQWMsR0FBRyxFQUFFOztZQUNuQixXQUFXLEdBQWEsRUFBRTs7WUFDMUIsMEJBQTBCLEdBQTJCLEVBQUU7UUFDN0QsWUFBWSxDQUFDLE9BQU87Ozs7UUFBQyxVQUFBLFNBQVM7O2dCQUN0QixVQUFVLEdBQUcsZ0NBQWdDLENBQUMsU0FBUyxDQUFDO1lBQzlELElBQUksS0FBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDbEQsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDL0IsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO2FBQ2hJO2lCQUFNO2dCQUNMLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDN0I7UUFDSCxDQUFDLEVBQUMsQ0FBQztRQUNILDJFQUEyRTtRQUMzRSxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLE1BQU0sRUFBRTs7Z0JBQzNDLGlCQUFpQixHQUFHLDZCQUE2QixDQUFDLDBCQUEwQixDQUFDO1lBQ25GLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsK0ZBQStGO1FBQy9GLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXlCLGlEQUFpRCxFQUFFLEVBQUMsWUFBWSxjQUFBLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkgsR0FBRzs7OztRQUFDLFVBQUEsb0JBQW9CO1lBQ3RCLG9CQUFvQixDQUFDLE9BQU87Ozs7WUFBQyxVQUFBLHVCQUF1QjtnQkFDbEQsdUVBQXVFO2dCQUN2RSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3pELGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLENBQUMsV0FBVyxFQUFFLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2lCQUNsSDtZQUNILENBQUMsRUFBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLEVBQ0YsR0FBRzs7OztRQUFDLFVBQUEsb0JBQW9COztnQkFDaEIsZ0JBQWdCLEdBQUcsNkJBQTZCLENBQUMsb0JBQW9CLENBQUM7WUFDNUUsT0FBTyxLQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbkUsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Ozs7OztJQUVNLDJDQUFjOzs7OztJQUFyQixVQUFzQixXQUF5QixFQUFFLFlBQW9COztZQUM3RCxNQUFNLEdBQWEsRUFBRTtRQUMzQixXQUFXLENBQUMsT0FBTzs7OztRQUFDLFVBQUMsVUFBVTs7Z0JBQ3ZCLFVBQVUsR0FBVztnQkFDekIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN2QixJQUFJLEVBQUssVUFBVSxDQUFDLFNBQVMsU0FBSSxVQUFVLENBQUMsUUFBVTtnQkFDdEQsRUFBRSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2dCQUNyQixNQUFNLEVBQUUsVUFBVSxDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSzthQUV2RztZQUNELElBQUksVUFBVSxDQUFDLFlBQVksS0FBSyxZQUFZLElBQUksWUFBWSxLQUFLLFlBQVksQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekI7UUFDSCxDQUFDLEVBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Ozs7OztJQUVNLGdEQUFtQjs7Ozs7SUFBMUIsVUFBMkIsV0FBeUIsRUFBRSxhQUE0QjtRQUFsRixpQkFTQzs7WUFSSyxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUc7UUFDbkMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsWUFBWSxHQUFHLGFBQWEsQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztTQUNoSDs7WUFDSyxVQUFVLEdBQUcsYUFBYSxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1lBQ3BHLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOztZQUMxRSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUF2RSxDQUF1RSxFQUFDO1FBQ3hILE9BQU8sYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTTs7OztRQUFDLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssS0FBSSxDQUFDLE1BQU0sRUFBbkMsQ0FBbUMsRUFBQyxDQUFDO0lBQzlILENBQUM7SUFsRmEsaUNBQWMsR0FBVyxhQUFhLENBQUM7O2dCQUx0RCxVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQVhPLFVBQVU7Z0JBT1YscUJBQXFCOzs7NkJBUDdCO0NBaUdDLEFBeEZELElBd0ZDO1NBckZZLGtCQUFrQjs7O0lBRTdCLGtDQUFxRDs7SUFDckQsb0NBQXNCOzs7OztJQUVWLGtDQUFpQzs7Ozs7SUFBRSxtREFBNkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Z2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMsIGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkLCBzZXRDYXNld29ya2Vyc30gZnJvbSAnLi4vLi4vZ292LXVpL3V0aWwvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS11dGlscyc7XG5cbmltcG9ydCB7Q2FzZXdvcmtlciwgQ2FzZXdvcmtlcnNCeVNlcnZpY2UsIFBlcnNvbiwgUGVyc29uUm9sZSwgUm9sZUNhdGVnb3J5LCBTZWFyY2hPcHRpb25zfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtTZXNzaW9uU3RvcmFnZVNlcnZpY2V9IGZyb20gJy4uL3Nlc3Npb24tc3RvcmFnZS9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbmRBUGVyc29uU2VydmljZSB7XG5cbiAgcHVibGljIHN0YXRpYyBjYXNld29ya2Vyc0tleTogc3RyaW5nID0gJ2Nhc2V3b3JrZXJzJztcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIGZpbmQoc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IE9ic2VydmFibGU8UGVyc29uW10+IHtcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyICYmICFzZWFyY2hPcHRpb25zLnVzZXJJbmNsdWRlZCkge1xuICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHRoaXMudXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFBlcnNvbltdPignL3dvcmthbGxvY2F0aW9uMi9maW5kUGVyc29uJywge3NlYXJjaE9wdGlvbnMsIHVzZXJJZDogdGhpcy51c2VySWR9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQ2FzZXdvcmtlcnMoc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IE9ic2VydmFibGU8UGVyc29uW10+IHtcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgICAgdGhpcy51c2VySWQgPSB1c2VySW5mby5pZCA/IHVzZXJJbmZvLmlkIDogdXNlckluZm8udWlkO1xuICAgIH1cbiAgICBjb25zdCBmdWxsU2VydmljZXMgPSBzZWFyY2hPcHRpb25zLnNlcnZpY2VzO1xuICAgIGNvbnN0IHN0b3JlZFNlcnZpY2VzID0gW107XG4gICAgY29uc3QgbmV3U2VydmljZXM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgc3RvcmVkQ2FzZXdvcmtlcnNCeVNlcnZpY2U6IENhc2V3b3JrZXJzQnlTZXJ2aWNlW10gPSBbXTtcbiAgICBmdWxsU2VydmljZXMuZm9yRWFjaChzZXJ2aWNlSWQgPT4ge1xuICAgICAgY29uc3Qgc2VydmljZUtleSA9IGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkKHNlcnZpY2VJZCk7XG4gICAgICBpZiAodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShzZXJ2aWNlS2V5KSkge1xuICAgICAgICBzdG9yZWRTZXJ2aWNlcy5wdXNoKHNlcnZpY2VJZCk7XG4gICAgICAgIHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlLnB1c2goe3NlcnZpY2U6IHNlcnZpY2VJZCwgY2FzZXdvcmtlcnM6IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShzZXJ2aWNlS2V5KSl9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NlcnZpY2VzLnB1c2goc2VydmljZUlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBpZiBhbGwgc2VydmljZXMgYXJlIHN0b3JlZCB0aGVuIHJldHVybiB0aGUgc3RvcmVkIGNhc2V3b3JrZXJzIGJ5IHNlcnZpY2VcbiAgICBpZiAoc3RvcmVkU2VydmljZXMubGVuZ3RoID09PSBmdWxsU2VydmljZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdG9yZWRDYXNld29ya2VycyA9IGdldEFsbENhc2V3b3JrZXJzRnJvbVNlcnZpY2VzKHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlKTtcbiAgICAgIHJldHVybiBvZih0aGlzLnNlYXJjaEluQ2FzZXdvcmtlcnMoc3RvcmVkQ2FzZXdvcmtlcnMsIHNlYXJjaE9wdGlvbnMpKTtcbiAgICB9XG4gICAgLy8gYWxsIHNlcnZpY2VJZHMgcGFzc2VkIGluIGFzIG5vZGUgbGF5ZXIgZ2V0dGluZyB1c2VkIGFueXdheSBhbmQgY2FzZXdvcmtlcnMgYWxzbyBzdG9yZWQgdGhlcmVcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2FzZXdvcmtlcnNCeVNlcnZpY2VbXT4oJy93b3JrYWxsb2NhdGlvbjIvcmV0cmlldmVDYXNlV29ya2Vyc0ZvclNlcnZpY2VzJywge2Z1bGxTZXJ2aWNlc30pLnBpcGUoXG4gICAgICB0YXAoY2FzZXdvcmtlcnNCeVNlcnZpY2UgPT4ge1xuICAgICAgICBjYXNld29ya2Vyc0J5U2VydmljZS5mb3JFYWNoKGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlID0+IHtcbiAgICAgICAgICAvLyBmb3IgYW55IG5ldyBzZXJ2aWNlLCBlbnN1cmUgdGhhdCB0aGV5IGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgc2Vzc2lvblxuICAgICAgICAgIGlmIChuZXdTZXJ2aWNlcy5pbmNsdWRlcyhjYXNld29ya2VyTGlzdEJ5U2VydmljZS5zZXJ2aWNlKSkge1xuICAgICAgICAgICAgc2V0Q2FzZXdvcmtlcnMoY2FzZXdvcmtlckxpc3RCeVNlcnZpY2Uuc2VydmljZSwgY2FzZXdvcmtlckxpc3RCeVNlcnZpY2UuY2FzZXdvcmtlcnMsIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBtYXAoY2FzZXdvcmtlcnNCeVNlcnZpY2UgPT4ge1xuICAgICAgICBjb25zdCBnaXZlbkNhc2V3b3JrZXJzID0gZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMoY2FzZXdvcmtlcnNCeVNlcnZpY2UpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hJbkNhc2V3b3JrZXJzKGdpdmVuQ2FzZXdvcmtlcnMsIHNlYXJjaE9wdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1hcENhc2V3b3JrZXJzKGNhc2V3b3JrZXJzOiBDYXNld29ya2VyW10sIHJvbGVDYXRlZ29yeTogc3RyaW5nKTogUGVyc29uW10ge1xuICAgIGNvbnN0IHBlb3BsZTogUGVyc29uW10gPSBbXTtcbiAgICBjYXNld29ya2Vycy5mb3JFYWNoKChjYXNld29ya2VyKSA9PiB7XG4gICAgICBjb25zdCB0aGlzUGVyc29uOiBQZXJzb24gPSB7XG4gICAgICAgIGVtYWlsOiBjYXNld29ya2VyLmVtYWlsLFxuICAgICAgICBuYW1lOiBgJHtjYXNld29ya2VyLmZpcnN0TmFtZX0gJHtjYXNld29ya2VyLmxhc3ROYW1lfWAsXG4gICAgICAgIGlkOiBjYXNld29ya2VyLmlkYW1JZCxcbiAgICAgICAgZG9tYWluOiBjYXNld29ya2VyLnJvbGVDYXRlZ29yeSA9PT0gUm9sZUNhdGVnb3J5LkNBU0VXT1JLRVIgPyBQZXJzb25Sb2xlLkNBU0VXT1JLRVIgOiBQZXJzb25Sb2xlLkFETUlOLFxuICAgICAgICAvLyBrbm93bkFzIGNhbiBiZSBhZGRlZCBpZiByZXF1aXJlZFxuICAgICAgfTtcbiAgICAgIGlmIChjYXNld29ya2VyLnJvbGVDYXRlZ29yeSA9PT0gcm9sZUNhdGVnb3J5IHx8IHJvbGVDYXRlZ29yeSA9PT0gUm9sZUNhdGVnb3J5LkFMTCkge1xuICAgICAgICBwZW9wbGUucHVzaCh0aGlzUGVyc29uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcGVvcGxlO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEluQ2FzZXdvcmtlcnMoY2FzZXdvcmtlcnM6IENhc2V3b3JrZXJbXSwgc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IFBlcnNvbltdIHtcbiAgICBsZXQgcm9sZUNhdGVnb3J5ID0gUm9sZUNhdGVnb3J5LkFMTDtcbiAgICBpZiAoIShzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkFMTCkpIHtcbiAgICAgIHJvbGVDYXRlZ29yeSA9IHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQ0FTRVdPUktFUiA/IFJvbGVDYXRlZ29yeS5DQVNFV09SS0VSIDogUm9sZUNhdGVnb3J5LkFETUlOO1xuICAgIH1cbiAgICBjb25zdCBzZWFyY2hUZXJtID0gc2VhcmNoT3B0aW9ucyAmJiBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0gPyBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSA6ICcnO1xuICAgIGNvbnN0IHBlb3BsZSA9IGNhc2V3b3JrZXJzID8gdGhpcy5tYXBDYXNld29ya2VycyhjYXNld29ya2Vycywgcm9sZUNhdGVnb3J5KSA6IFtdO1xuICAgIGNvbnN0IGZpbmFsUGVvcGxlTGlzdCA9IHBlb3BsZS5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24ubmFtZSAmJiBwZXJzb24ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pKTtcbiAgICByZXR1cm4gc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQgPyBmaW5hbFBlb3BsZUxpc3QgOiBmaW5hbFBlb3BsZUxpc3QuZmlsdGVyKHBlcnNvbiA9PiBwZXJzb24gJiYgcGVyc29uLmlkICE9PSB0aGlzLnVzZXJJZCk7XG4gIH1cbn1cblxuIl19
|