ngx-render-material-forms 1.3.0 → 1.3.2
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/lib/components/select/select.component.mjs +51 -28
- package/fesm2015/ngx-render-material-forms.js +50 -27
- package/fesm2015/ngx-render-material-forms.mjs.map +1 -1
- package/fesm2020/ngx-render-material-forms.js +50 -27
- package/fesm2020/ngx-render-material-forms.mjs.map +1 -1
- package/lib/components/select/select.component.d.ts +2 -0
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import SelectComponent from 'formiojs/components/select/Select.js';
|
|
|
4
4
|
import _ from 'lodash';
|
|
5
5
|
import { FormControl } from '@angular/forms';
|
|
6
6
|
import { Subject } from 'rxjs';
|
|
7
|
-
import { debounceTime, distinctUntilChanged, takeUntil
|
|
7
|
+
import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
8
8
|
import { HttpHeaders } from '@angular/common/http';
|
|
9
9
|
import * as CryptoJS from 'crypto-js';
|
|
10
10
|
import { isNullOrUndefined } from 'util';
|
|
@@ -38,8 +38,10 @@ export class MaterialSelectComponent extends MaterialComponent {
|
|
|
38
38
|
this.grail = '';
|
|
39
39
|
this.productsloadingFlag = false;
|
|
40
40
|
this.searching = false;
|
|
41
|
+
this.productList = [];
|
|
41
42
|
// Variable to hold the reference to the current panel element
|
|
42
43
|
this.currentPanelElement = null;
|
|
44
|
+
this.openCounter = 1;
|
|
43
45
|
this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
44
46
|
this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
45
47
|
}
|
|
@@ -83,14 +85,23 @@ export class MaterialSelectComponent extends MaterialComponent {
|
|
|
83
85
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
84
86
|
const scrollElement = event.target;
|
|
85
87
|
const trackHeight = scrollElement.scrollHeight - scrollElement.offsetHeight;
|
|
88
|
+
if (this.openCounter < 2) {
|
|
89
|
+
const retrievedObject = JSON.parse(localStorage.getItem('storageObject'));
|
|
90
|
+
this.totalPages = Number(retrievedObject?.totalPages);
|
|
91
|
+
this.productsloadingFlag = true;
|
|
92
|
+
this.productList = retrievedObject?.dataSource;
|
|
93
|
+
}
|
|
86
94
|
if (this.productsloadingFlag && Math.floor(scrollElement.scrollTop / trackHeight * 100) > 50) {
|
|
87
95
|
this.productsloadingFlag = false;
|
|
96
|
+
this.openCounter = this.openCounter + 1;
|
|
88
97
|
if (this.pageNumber < this.totalPages) {
|
|
89
98
|
this.pageNumber = this.pageNumber + 1;
|
|
99
|
+
this.searching = true;
|
|
90
100
|
this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
|
|
91
101
|
}
|
|
92
102
|
else {
|
|
93
103
|
this.productsloadingFlag = true;
|
|
104
|
+
this.searching = false;
|
|
94
105
|
}
|
|
95
106
|
}
|
|
96
107
|
}
|
|
@@ -109,11 +120,17 @@ export class MaterialSelectComponent extends MaterialComponent {
|
|
|
109
120
|
const vendorId = this.getValueByKey(paramsData, 'vendorId');
|
|
110
121
|
const onlyActive = this.getValueByKey(paramsData, 'onlyActive');
|
|
111
122
|
var currentUser = JSON.parse(localStorage.getItem('currentUser'));
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
123
|
+
let headers;
|
|
124
|
+
if (currentUser && currentUser.Tokens && currentUser.Tokens.AccessToken) {
|
|
125
|
+
var accessToken = currentUser.Tokens.AccessToken;
|
|
126
|
+
headers = new HttpHeaders({
|
|
127
|
+
'Content-Type': 'application/json',
|
|
128
|
+
'Authorization': 'Bearer ' + accessToken
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
console.error('User not authenticated or tokens missing.');
|
|
133
|
+
}
|
|
117
134
|
const envendorId = this.scrumble(vendorId);
|
|
118
135
|
const enpageNumber = this.scrumble(pageNumber);
|
|
119
136
|
const enpageSize = this.scrumble(pageSize);
|
|
@@ -143,25 +160,26 @@ export class MaterialSelectComponent extends MaterialComponent {
|
|
|
143
160
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
144
161
|
this.totalPages = response?.data?.totalPages;
|
|
145
162
|
const data = response.data.dataSource;
|
|
146
|
-
|
|
147
|
-
this.
|
|
163
|
+
this.filteredOptionsLength = data.length;
|
|
164
|
+
if (this.productList.length > 0) {
|
|
165
|
+
data.map(item => {
|
|
166
|
+
return item;
|
|
167
|
+
}).forEach(i => this.productList.push(i));
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this.productList = data;
|
|
171
|
+
}
|
|
148
172
|
// Update filteredOptions with transformedData
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
value: item.value,
|
|
152
|
-
date: item.date
|
|
153
|
-
})));
|
|
173
|
+
var allProductList = this.transformResponseData(this.productList);
|
|
174
|
+
this.filteredOptions = Promise.resolve(allProductList);
|
|
154
175
|
this.searching = false;
|
|
155
|
-
// Update filteredOptions with transformedData
|
|
156
|
-
// this.filteredOptions = this.filteredOptions.then(existingOptions => {
|
|
157
|
-
// const newOptions = transformedData.map(item => ({
|
|
158
|
-
// label: item.label,
|
|
159
|
-
// value: item.value,
|
|
160
|
-
// date: item.date
|
|
161
|
-
// }));
|
|
162
|
-
// return existingOptions.concat(newOptions);
|
|
163
|
-
// });
|
|
164
176
|
this.productsloadingFlag = true;
|
|
177
|
+
setTimeout(() => {
|
|
178
|
+
const ele = this.selectElem.panel.nativeElement;
|
|
179
|
+
const trackHeight = ele.scrollHeight - ele.offsetHeight;
|
|
180
|
+
const middlePosition = trackHeight / 2 - 50;
|
|
181
|
+
ele.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
182
|
+
}, 250);
|
|
165
183
|
}
|
|
166
184
|
}
|
|
167
185
|
});
|
|
@@ -207,6 +225,8 @@ export class MaterialSelectComponent extends MaterialComponent {
|
|
|
207
225
|
this.pageNumber = 1;
|
|
208
226
|
this.pageSize = 20;
|
|
209
227
|
this.searchQuery = '';
|
|
228
|
+
this.searching = false;
|
|
229
|
+
this.productList = [];
|
|
210
230
|
this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
|
|
211
231
|
}
|
|
212
232
|
}
|
|
@@ -214,16 +234,16 @@ export class MaterialSelectComponent extends MaterialComponent {
|
|
|
214
234
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
215
235
|
this.selectElem.openedChange.subscribe((isOpen) => {
|
|
216
236
|
if (isOpen) {
|
|
217
|
-
this.pageNumber =
|
|
237
|
+
this.pageNumber = 2;
|
|
218
238
|
this.pageSize = 20;
|
|
219
239
|
this.searchQuery = '';
|
|
220
|
-
this.searching =
|
|
221
|
-
this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
|
|
240
|
+
this.searching = false;
|
|
241
|
+
//this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
|
|
222
242
|
this.registerPanelScrollEvent(this.selectElem);
|
|
223
243
|
}
|
|
224
244
|
else {
|
|
225
245
|
this.removePanelScrollEvent();
|
|
226
|
-
|
|
246
|
+
this.searching = false;
|
|
227
247
|
}
|
|
228
248
|
});
|
|
229
249
|
}
|
|
@@ -240,11 +260,14 @@ export class MaterialSelectComponent extends MaterialComponent {
|
|
|
240
260
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
241
261
|
this.websiteMultiFilterCtrl.valueChanges
|
|
242
262
|
.pipe(debounceTime(1000), // Time in milliseconds between key events
|
|
243
|
-
tap(() => this.searching = true),
|
|
263
|
+
// tap(() => this.searching = true),
|
|
264
|
+
distinctUntilChanged(), takeUntil(this._onDestroy))
|
|
244
265
|
.subscribe((searchQuery) => {
|
|
245
266
|
if (searchQuery != '') {
|
|
246
267
|
this.pageNumber = 1;
|
|
247
268
|
this.pageSize = 20;
|
|
269
|
+
this.productList = [];
|
|
270
|
+
this.searching = true;
|
|
248
271
|
this.loadData(this.pageNumber, this.pageSize, searchQuery);
|
|
249
272
|
}
|
|
250
273
|
});
|
|
@@ -371,4 +394,4 @@ SelectComponent.prototype.setItems = function (...args) {
|
|
|
371
394
|
}
|
|
372
395
|
};
|
|
373
396
|
export { SelectComponent };
|
|
374
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUE0QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQVUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUEwRXpDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFxQjVELFlBQW1CLE9BQW1CLEVBQVMsR0FBc0IsRUFBUyxJQUFnQjtRQUM1RixLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWhCdkYscUJBQWdCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsMkJBQXNCLEdBQWdC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QVM7dUJBQUMsZUFBZTs7QUF5UjVCLGVBQWUsQ0FBQyxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUU1RCxzRkFBc0Y7QUFDdEYsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDcEQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxHQUFHLElBQUk7SUFDcEQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUU7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNqRTtBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcclxuaW1wb3J0IFNlbGVjdENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3NlbGVjdC9TZWxlY3QuanMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICd1dGlsJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGQgW2luc3RhbmNlXT1cImluc3RhbmNlXCIgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCI+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmlsbD5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnByZWZpeFwiIG1hdFByZWZpeD5cclxuICAgICAgICAgIHt7IGluc3RhbmNlLmNvbXBvbmVudC5wcmVmaXggfX0mbmJzcDtcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJpbnN0YW5jZS5jb21wb25lbnQubXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImluc3RhbmNlLmNvbXBvbmVudC5wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVPYmplY3RzXCJcclxuICAgICAgICAgICAgICAgICNwcm9kdWN0U2VsZWN0XHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggW3NlYXJjaGluZ109XCJpbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnID8gc2VhcmNoaW5nIDogZmFsc2VcIiAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXJMYWJlbD1cIlR5cGUgdG8gc2VhcmNoXCIgW2Zvcm1Db250cm9sXT1cIndlYnNpdGVNdWx0aUZpbHRlckN0cmxcIj4gXHJcbiAgICAgICAgPG1hdC1pY29uIG5neE1hdFNlbGVjdFNlYXJjaENsZWFyIChjbGljayk9XCJjbGVhclByb2R1Y3RzKClcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgY2xhc3M9XCJ2aXJ0dWFsLWZ1bGwtdmlld1wiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJvcHRpb24ubGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPiAgIFxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zTGVuZ3RoXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgIDxzcGFuPk5vdGhpbmcgd2FzIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuc3VmZml4XCIgbWF0U3VmZml4PlxyXG4gICAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LnN1ZmZpeCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaW5zdGFuY2UuZXJyb3JcIj57eyBpbnN0YW5jZS5lcnJvci5tZXNzYWdlIH19PC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gIC5leGFtcGxlLXZpZXdwb3J0IHtcclxuICAgIGhlaWdodDogMjAwcHg7XHJcbiAgfVxyXG4gIFxyXG4gIC5wcm9kdWN0LXBpY2tlciB7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IC8qIERpc2FibGUgaG9yaXpvbnRhbCBzY3JvbGxpbmcgKi9cclxuICB9XHJcblxyXG4gIC52aXJ0dWFsLWZ1bGwtdmlldyB7XHJcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQgIWltcG9ydGFudDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgIG1pbi1oZWlnaHQ6IDQ4cHggIWltcG9ydGFudDtcclxuICAgIG92ZXJmbG93OiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIDo6bmctZGVlcCAucHJvZHVjdC1waWNrZXIgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXIge1xyXG4gICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnZpcnR1YWwtZnVsbC12aWV3IC5tYXQtcHNldWRvLWNoZWNrYm94IHtcclxuICAgIGFsaWduLXNlbGY6IHRvcCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbmBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHNlbGVjdE9wdGlvbnM6IFByb21pc2U8YW55W10+O1xyXG4gIGZpbHRlcmVkT3B0aW9uczogUHJvbWlzZTxhbnlbXT47XHJcbiAgZmlsdGVyZWRPcHRpb25zTGVuZ3RoOiBudW1iZXI7XHJcbiAgc2VsZWN0T3B0aW9uc1Jlc29sdmU6IGFueTtcclxuICBwdWJsaWMgd2Vic2l0ZU11bHRpQ3RybDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBwdWJsaWMgd2Vic2l0ZU11bHRpRmlsdGVyQ3RybDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBAVmlld0NoaWxkKCdtdWx0aVNlbGVjdCcsIHsgc3RhdGljOiB0cnVlIH0pIG11bHRpU2VsZWN0OiBNYXRTZWxlY3Q7XHJcbiAgcHJvdGVjdGVkIF9vbkRlc3Ryb3kgPSBuZXcgU3ViamVjdCgpO1xyXG4gIEBWaWV3Q2hpbGQoJ3Byb2R1Y3RTZWxlY3QnKSBzZWxlY3RFbGVtOiBNYXRTZWxlY3Q7XHJcbiAgLy8gVmFyaWFibGVzIHRvIHRyYWNrIHBhZ2luYXRpb25cclxuICBwYWdlTnVtYmVyID0gMTtcclxuICBwYWdlU2l6ZSA9IDIwO1xyXG4gIHRvdGFsUGFnZXMgPSAwO1xyXG4gIHNlYXJjaFF1ZXJ5ID0gJyc7XHJcbiAgaG9seTogYW55ID0gJyc7XHJcbiAgZ3JhaWw6IGFueSA9ICcnO1xyXG4gIHByb2R1Y3RzbG9hZGluZ0ZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgLy8gVmFyaWFibGUgdG8gaG9sZCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IHBhbmVsIGVsZW1lbnRcclxuICBwcml2YXRlIGN1cnJlbnRQYW5lbEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHB1YmxpYyByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgc3VwZXIoZWxlbWVudCwgcmVmKTtcclxuICAgIHRoaXMuaG9seSA9IENyeXB0b0pTLmVuYy5CYXNlNjQucGFyc2UoJzhGLzIrVDJOWHFVQlFFUlIxMlI0c3c9PScpO1xyXG4gICAgdGhpcy5ncmFpbCA9IENyeXB0b0pTLmVuYy5CYXNlNjQucGFyc2UoJ3lFMENnUWJZeks1d3Flb0tUVnpoT1E9PScpO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnICYmIGV2ZW50LnRhcmdldC52YWx1ZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5vbkNsZWFyQWxsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclByb2R1Y3RzKCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLm9uQ2xlYXJBbGwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBzY3J1bWJsZShtc2cpIHtcclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQobXNnKSkge1xyXG4gICAgICB2YXIgY29uY2VhbCA9IHRoaXMuZ2V0Y2FtcGFpZ24obXNnLCB0aGlzLmhvbHksIHRoaXMuZ3JhaWwpO1xyXG4gICAgICB2YXIgc2hhMjU2ID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeSh0aGlzLmdyYWlsKSArIGNvbmNlYWwudG9TdHJpbmcoKSwgQ3J5cHRvSlMuZW5jLkJhc2U2NC5zdHJpbmdpZnkodGhpcy5ob2x5KSk7XHJcbiAgICAgIHZhciBoYXNoSW5CYXNlNjQgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeShzaGEyNTYpO1xyXG4gICAgICBsZXQga2V5VmFsdWUgPSB7XHJcbiAgICAgICAgXCJ2YWx1ZVwiOiBjb25jZWFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgXCJtYWNcIjogaGFzaEluQmFzZTY0XHJcbiAgICAgIH07XHJcbiAgICAgIHZhciByZXN1bHQgPSBKU09OLnN0cmluZ2lmeShrZXlWYWx1ZSk7XHJcbiAgICAgIHZhciBqdW1ibGVkID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KGp1bWJsZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Y2FtcGFpZ24oZGF0YTogYW55LCBob2x5OiBhbnksIGdyYWlsOiBhbnkpIHtcclxuICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZW5jcnlwdChkYXRhLnRvU3RyaW5nKCksIGhvbHksXHJcbiAgICAgIHtcclxuICAgICAgICBibG9ja1NpemU6IDEyOCxcclxuICAgICAgICBpdjogZ3JhaWwsXHJcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXHJcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlZ2lzdGVyUGFuZWxTY3JvbGxFdmVudChzZWxlY3RFbGVtOiBNYXRTZWxlY3QpIHtcclxuICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHNlbGVjdEVsZW0ucGFuZWwubmF0aXZlRWxlbWVudDtcclxuICAgIHBhbmVsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLmJpbmQodGhpcykpO1xyXG5cclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gc2Nyb2xsRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBzY3JvbGxFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgaWYgKHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyAmJiBNYXRoLmZsb29yKHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wIC8gdHJhY2tIZWlnaHQgKiAxMDApID4gNTApIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3RzbG9hZGluZ0ZsYWcgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5wYWdlTnVtYmVyIDwgdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2VOdW1iZXIgKyAxO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBGdW5jdGlvbiB0byBnZXQgdmFsdWUgYnkga2V5IGZyb20gdGhlIGFycmF5XHJcbiAgZ2V0VmFsdWVCeUtleShkYXRhLCBrZXkpIHtcclxuICAgIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDsgLy8gUmV0dXJuIG51bGwgaWYgZGF0YSBpcyBlbXB0eSBvciB1bmRlZmluZWRcclxuICAgIH1cclxuICAgIGNvbnN0IGl0ZW0gPSBkYXRhLmZpbmQoa3YgPT4ga3Yua2V5LnRvTG93ZXJDYXNlKCkgPT09IGtleS50b0xvd2VyQ2FzZSgpKTtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS52YWx1ZSA6IG51bGw7XHJcbiAgfVxyXG5cclxuXHJcbiAgbG9hZERhdGEocGFnZU51bWJlciwgcGFnZVNpemUsIHNlYXJjaFF1ZXJ5KSB7XHJcbiAgICBjb25zdCBwYXJhbXNEYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHJvZHVjdFBpY2tlcicpKTtcclxuICAgIGNvbnN0IGluY2x1ZGVEZXNjcmlwdGlvbiA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCAnaW5jbHVkZURlc2NyaXB0aW9uJyk7XHJcbiAgICBjb25zdCB2ZW5kb3JJZCA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCAndmVuZG9ySWQnKTtcclxuICAgIGNvbnN0IG9ubHlBY3RpdmUgPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ29ubHlBY3RpdmUnKTtcclxuICAgIHZhciBjdXJyZW50VXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJykpO1xyXG4gICAgdmFyIGFjY2Vzc1Rva2VuID0gY3VycmVudFVzZXIuVG9rZW5zLkFjY2Vzc1Rva2VuO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgYWNjZXNzVG9rZW5cclxuICAgIH0pO1xyXG4gICAgaW50ZXJmYWNlIFZlbmRvclByb2R1Y3RzUmVzcG9uc2Uge1xyXG4gICAgICBjb2RlOiBudW1iZXI7XHJcbiAgICAgIGRhdGE6IGFueTtcclxuICAgICAgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgICBzdGF0dXNDb2RlOiBudW1iZXI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBlbnZlbmRvcklkID0gdGhpcy5zY3J1bWJsZSh2ZW5kb3JJZClcclxuICAgIGNvbnN0IGVucGFnZU51bWJlciA9IHRoaXMuc2NydW1ibGUocGFnZU51bWJlcilcclxuICAgIGNvbnN0IGVucGFnZVNpemUgPSB0aGlzLnNjcnVtYmxlKHBhZ2VTaXplKTtcclxuICAgIGNvbnN0IGVuc2VhcmNoUXVlcnkgPSB0aGlzLnNjcnVtYmxlKHNlYXJjaFF1ZXJ5KTtcclxuICAgIGxldCBlbmFjdGl2ZSA9IHRoaXMuc2NydW1ibGUob25seUFjdGl2ZSk7XHJcblxyXG4gICAgLy9DaGVjayBpZiBlbmFjdGl2ZSBpcyB1bmRlZmluZWQsIG51bGwsIG9yIGJsYW5rXHJcbiAgICBpZiAoZW5hY3RpdmUgPT09IHVuZGVmaW5lZCB8fCBlbmFjdGl2ZSA9PT0gbnVsbCB8fCBlbmFjdGl2ZSA9PT0gJycpIHtcclxuICAgICAgZW5hY3RpdmUgPSB0aGlzLnNjcnVtYmxlKHRydWUpOyAvLyBTZXQgZGVmYXVsdCB2YWx1ZSB0byB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2NydW1ibGUgYW5kIGhhbmRsZSB0aGUgaW5jbHVkZURlc2NyaXB0aW9uIHBhcmFtZXRlclxyXG4gICAgbGV0IGVuZGVzY3JpcHRpb24gPSB0aGlzLnNjcnVtYmxlKGluY2x1ZGVEZXNjcmlwdGlvbik7XHJcbiAgICBpZiAoIWVuZGVzY3JpcHRpb24pIHtcclxuICAgICAgZW5kZXNjcmlwdGlvbiA9IHRoaXMuc2NydW1ibGUoZmFsc2UpOyAgLy8gU2V0IHRvICdmYWxzZScgaWYgdW5kZWZpbmVkLCBudWxsLCBvciBibGFua1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJhc2VVcmxNYXBwaW5nID0ge1xyXG4gICAgICAnbG9jYWxob3N0JzogJ2h0dHA6Ly9sb2NhbGhvc3Q6NTg1MDQnLFxyXG4gICAgICAnbGluY29sbi52YXJ0b3BpYS5jb20nOiAnaHR0cHM6Ly9saW5jb2xuLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnc3RhZ2UudmFydG9waWEuY29tJzogJ2h0dHBzOi8vc3RhZ2UtYXBpLnZhcnRvcGlhLmNvbScsXHJcbiAgICAgICdteS52YXJ0b3BpYS5jb20nOiAnaHR0cHM6Ly9yZWFnYW4tYXBpLnZhcnRvcGlhLmNvbScsXHJcbiAgICAgICdqYWNrc29uLnZhcnRvcGlhLmNvbSc6ICdodHRwczovL2phY2tzb24tYXBpLnZhcnRvcGlhLmNvbSdcclxuICAgIH07XHJcbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgaG9zdG5hbWVcclxuICAgIGNvbnN0IGhvc3RuYW1lID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xyXG4gICAgY29uc3QgYmFzZUFwaVVybCA9IGJhc2VVcmxNYXBwaW5nW2hvc3RuYW1lXSB8fCBudWxsO1xyXG4gICAgdGhpcy5odHRwLmdldDxWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlPihgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0VmVuZG9yUHJvZHVjdHM/dmVuZG9ySWQ9JHtlbnZlbmRvcklkfSZwYWdlTnVtYmVyPSR7ZW5wYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke2VucGFnZVNpemV9JnNlYXJjaD0ke2Vuc2VhcmNoUXVlcnl9Jm9ubHlBY3RpdmU9JHtlbmFjdGl2ZX0maW5jbHVkZURlc2NyaXB0aW9uPSR7ZW5kZXNjcmlwdGlvbn1gLCB7IGhlYWRlcnMgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgICAgIHRoaXMudG90YWxQYWdlcyA9IHJlc3BvbnNlPy5kYXRhPy50b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGEuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRoaXMudHJhbnNmb3JtUmVzcG9uc2VEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNMZW5ndGggPSB0cmFuc2Zvcm1lZERhdGEubGVuZ3RoO1xyXG5cclxuICAgICAgICAgIC8vIFVwZGF0ZSBmaWx0ZXJlZE9wdGlvbnMgd2l0aCB0cmFuc2Zvcm1lZERhdGFcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gUHJvbWlzZS5yZXNvbHZlKHRyYW5zZm9ybWVkRGF0YS5tYXAoaXRlbSA9PiAoe1xyXG4gICAgICAgICAgICBsYWJlbDogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXHJcbiAgICAgICAgICAgIGRhdGU6IGl0ZW0uZGF0ZVxyXG4gICAgICAgICAgfSkpKTtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyBVcGRhdGUgZmlsdGVyZWRPcHRpb25zIHdpdGggdHJhbnNmb3JtZWREYXRhXHJcbiAgICAgICAgICAvLyB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuZmlsdGVyZWRPcHRpb25zLnRoZW4oZXhpc3RpbmdPcHRpb25zID0+IHtcclxuICAgICAgICAgIC8vICAgY29uc3QgbmV3T3B0aW9ucyA9IHRyYW5zZm9ybWVkRGF0YS5tYXAoaXRlbSA9PiAoe1xyXG4gICAgICAgICAgLy8gICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgLy8gICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxyXG4gICAgICAgICAgLy8gICAgIGRhdGU6IGl0ZW0uZGF0ZVxyXG4gICAgICAgICAgLy8gICB9KSk7XHJcbiAgICAgICAgICAvLyAgIHJldHVybiBleGlzdGluZ09wdGlvbnMuY29uY2F0KG5ld09wdGlvbnMpO1xyXG4gICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgICB0aGlzLnByb2R1Y3RzbG9hZGluZ0ZsYWcgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVXRpbGl0eSBmdW5jdGlvbiB0byB0cmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxyXG4gIHRyYW5zZm9ybVJlc3BvbnNlRGF0YShkYXRhOiBBcnJheTx7IHRleHQ6IGFueSwgdmFsdWU6IGFueSwgZGF0ZTogYW55IH0+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IEFycmF5PHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciwgZGF0ZTogc3RyaW5nIH0+IHtcclxuICAgIC8vIENoZWNrIGlmIGRhdGEgaXMgbm90IG51bGwsIHVuZGVmaW5lZCwgYW5kIGlzIGFuIGFycmF5IHdpdGggZWxlbWVudHNcclxuICAgIGlmIChkYXRhICYmIEFycmF5LmlzQXJyYXkoZGF0YSkgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgICAgICAgbGFiZWw6IGl0ZW0udGV4dCxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBkYXRlOiBpdGVtLmRhdGVcclxuICAgICAgfSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gUmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIGRhdGEgaXMgbnVsbCwgdW5kZWZpbmVkLCBvciBlbXB0eVxyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGZpbHRlcldlYnNpdGVNdWx0aSgpIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RPcHRpb25zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBzZWFyY2ggPSB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWU7XHJcbiAgICBzZWFyY2ggPSBzZWFyY2gudG9Mb3dlckNhc2UoKTtcclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4oKG9wdGlvbnMpID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyZWQgPSBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24ubGFiZWwucmVwbGFjZSgvPFxcLz9zcGFuW14+XSo+L2csIFwiXCIpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpICE9PSAtMSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZmlsdGVyZWQubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZmlsdGVyZWQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCcnKTtcclxuICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qRW5kKi9cclxuICBzZXRJbnN0YW5jZShpbnN0YW5jZTogYW55KSB7XHJcbiAgICBzdXBlci5zZXRJbnN0YW5jZShpbnN0YW5jZSk7XHJcbiAgICB0aGlzLmluc3RhbmNlLnRyaWdnZXJVcGRhdGUoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXJBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIHRoaXMucGFnZU51bWJlciA9IDE7XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSAyMDtcclxuICAgICAgdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xyXG4gICAgICB0aGlzLmxvYWREYXRhKHRoaXMucGFnZU51bWJlciwgdGhpcy5wYWdlU2l6ZSwgdGhpcy5zZWFyY2hRdWVyeSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0RWxlbS5vcGVuZWRDaGFuZ2Uuc3Vic2NyaWJlKChpc09wZW46IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoaXNPcGVuKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IDIwO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgICAgICAgdGhpcy5yZWdpc3RlclBhbmVsU2Nyb2xsRXZlbnQodGhpcy5zZWxlY3RFbGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVQYW5lbFNjcm9sbEV2ZW50KCk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnY2xvc2VkJylcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlUGFuZWxTY3JvbGxFdmVudCgpIHtcclxuICAgIC8vIFJlbW92ZSB0aGUgc2Nyb2xsIGV2ZW50IGxpc3RlbmVyXHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFuZWxFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhbmVsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLmJpbmQodGhpcykpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvKm5ldyBsb2dpYyAqL1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50c1xyXG4gICAgICAgICAgdGFwKCgpID0+IHRoaXMuc2VhcmNoaW5nID0gdHJ1ZSksXHJcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoc2VhcmNoUXVlcnkpID0+IHtcclxuICAgICAgICAgIGlmIChzZWFyY2hRdWVyeSAhPSAnJykge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2VTaXplID0gMjA7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZERhdGEodGhpcy5wYWdlTnVtYmVyLCB0aGlzLnBhZ2VTaXplLCBzZWFyY2hRdWVyeSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyV2Vic2l0ZU11bHRpKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvKkVuZCAqL1xyXG4gICAgdGhpcy5zZWxlY3RPcHRpb25zID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RPcHRpb25zUmVzb2x2ZSA9IHJlc29sdmU7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0T3B0aW9ucy50aGVuKChvcHRpb25zKSA9PiB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gb3B0aW9ucy5sZW5ndGg7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgY29tcGFyZU9iamVjdHMobzE6IGFueSwgbzI6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIF8uaXNFcXVhbChvMSwgbzIpO1xyXG4gIH1cclxufVxyXG5TZWxlY3RDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbFNlbGVjdENvbXBvbmVudDtcclxuXHJcbi8vIE1ha2Ugc3VyZSB3ZSBkZXRlY3QgY2hhbmdlcyB3aGVuIG5ldyBpdGVtcyBtYWtlIHRoZWlyIHdheSBpbnRvIHRoZSBzZWxlY3QgZHJvcGRvd24uXHJcbmNvbnN0IHNldEl0ZW1zID0gU2VsZWN0Q29tcG9uZW50LnByb3RvdHlwZS5zZXRJdGVtcztcclxuU2VsZWN0Q29tcG9uZW50LnByb3RvdHlwZS5zZXRJdGVtcyA9IGZ1bmN0aW9uICguLi5hcmdzKSB7XHJcbiAgc2V0SXRlbXMuY2FsbCh0aGlzLCAuLi5hcmdzKTtcclxuICBpZiAodGhpcy5tYXRlcmlhbENvbXBvbmVudCAmJiB0aGlzLm1hdGVyaWFsQ29tcG9uZW50LnNlbGVjdE9wdGlvbnNSZXNvbHZlKSB7XHJcbiAgICB0aGlzLm1hdGVyaWFsQ29tcG9uZW50LnNlbGVjdE9wdGlvbnNSZXNvbHZlKHRoaXMuc2VsZWN0T3B0aW9ucyk7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IHsgU2VsZWN0Q29tcG9uZW50IH07XHJcbiJdfQ==
|
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUE0QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQVUsU0FBUyxFQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQTBFekMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGlCQUFpQjtJQXVCNUQsWUFBbUIsT0FBbUIsRUFBUyxHQUFzQixFQUFTLElBQWdCO1FBQzVGLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFESCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQVMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBbEJ2RixxQkFBZ0IsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsRCwyQkFBc0IsR0FBZ0IsSUFBSSxXQUFX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LEVBQUUsSUFBSSxFQUFFO2dCQUVkLFVBQVU7c0JBQXJDLFNBQVM7dUJBQUMsZUFBZTs7QUE0UzVCLGVBQWUsQ0FBQyxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUU1RCxzRkFBc0Y7QUFDdEYsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDcEQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxHQUFHLElBQUk7SUFDcEQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUU7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNqRTtBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcclxuaW1wb3J0IFNlbGVjdENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3NlbGVjdC9TZWxlY3QuanMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICd1dGlsJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGQgW2luc3RhbmNlXT1cImluc3RhbmNlXCIgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCI+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmlsbD5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnByZWZpeFwiIG1hdFByZWZpeD5cclxuICAgICAgICAgIHt7IGluc3RhbmNlLmNvbXBvbmVudC5wcmVmaXggfX0mbmJzcDtcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJpbnN0YW5jZS5jb21wb25lbnQubXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImluc3RhbmNlLmNvbXBvbmVudC5wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVPYmplY3RzXCJcclxuICAgICAgICAgICAgICAgICNwcm9kdWN0U2VsZWN0XHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggW3NlYXJjaGluZ109XCJpbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnID8gc2VhcmNoaW5nIDogZmFsc2VcIiAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXJMYWJlbD1cIlR5cGUgdG8gc2VhcmNoXCIgW2Zvcm1Db250cm9sXT1cIndlYnNpdGVNdWx0aUZpbHRlckN0cmxcIj4gXHJcbiAgICAgICAgPG1hdC1pY29uIG5neE1hdFNlbGVjdFNlYXJjaENsZWFyIChjbGljayk9XCJjbGVhclByb2R1Y3RzKClcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgY2xhc3M9XCJ2aXJ0dWFsLWZ1bGwtdmlld1wiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJvcHRpb24ubGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPiAgIFxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zTGVuZ3RoXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgIDxzcGFuPk5vdGhpbmcgd2FzIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuc3VmZml4XCIgbWF0U3VmZml4PlxyXG4gICAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LnN1ZmZpeCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaW5zdGFuY2UuZXJyb3JcIj57eyBpbnN0YW5jZS5lcnJvci5tZXNzYWdlIH19PC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gIC5leGFtcGxlLXZpZXdwb3J0IHtcclxuICAgIGhlaWdodDogMjAwcHg7XHJcbiAgfVxyXG4gIFxyXG4gIC5wcm9kdWN0LXBpY2tlciB7XHJcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IC8qIERpc2FibGUgaG9yaXpvbnRhbCBzY3JvbGxpbmcgKi9cclxuICB9XHJcblxyXG4gIC52aXJ0dWFsLWZ1bGwtdmlldyB7XHJcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjQgIWltcG9ydGFudDtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgIG1pbi1oZWlnaHQ6IDQ4cHggIWltcG9ydGFudDtcclxuICAgIG92ZXJmbG93OiBpbml0aWFsICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIDo6bmctZGVlcCAucHJvZHVjdC1waWNrZXIgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXIge1xyXG4gICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnZpcnR1YWwtZnVsbC12aWV3IC5tYXQtcHNldWRvLWNoZWNrYm94IHtcclxuICAgIGFsaWduLXNlbGY6IHRvcCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbmBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHNlbGVjdE9wdGlvbnM6IFByb21pc2U8YW55W10+O1xyXG4gIGZpbHRlcmVkT3B0aW9uczogUHJvbWlzZTxhbnlbXT47XHJcbiAgZmlsdGVyZWRPcHRpb25zTGVuZ3RoOiBudW1iZXI7XHJcbiAgc2VsZWN0T3B0aW9uc1Jlc29sdmU6IGFueTtcclxuICBwdWJsaWMgd2Vic2l0ZU11bHRpQ3RybDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBwdWJsaWMgd2Vic2l0ZU11bHRpRmlsdGVyQ3RybDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBAVmlld0NoaWxkKCdtdWx0aVNlbGVjdCcsIHsgc3RhdGljOiB0cnVlIH0pIG11bHRpU2VsZWN0OiBNYXRTZWxlY3Q7XHJcbiAgcHJvdGVjdGVkIF9vbkRlc3Ryb3kgPSBuZXcgU3ViamVjdCgpO1xyXG4gIEBWaWV3Q2hpbGQoJ3Byb2R1Y3RTZWxlY3QnKSBzZWxlY3RFbGVtOiBNYXRTZWxlY3Q7XHJcbiAgLy8gVmFyaWFibGVzIHRvIHRyYWNrIHBhZ2luYXRpb25cclxuICBwYWdlTnVtYmVyID0gMTtcclxuICBwYWdlU2l6ZSA9IDIwO1xyXG4gIHRvdGFsUGFnZXMgPSAwO1xyXG4gIHNlYXJjaFF1ZXJ5ID0gJyc7XHJcbiAgaG9seTogYW55ID0gJyc7XHJcbiAgZ3JhaWw6IGFueSA9ICcnO1xyXG4gIHByb2R1Y3RzbG9hZGluZ0ZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgcHJvZHVjdExpc3Q6IGFueVtdID0gW107XHJcbiAgLy8gVmFyaWFibGUgdG8gaG9sZCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IHBhbmVsIGVsZW1lbnRcclxuICBwcml2YXRlIGN1cnJlbnRQYW5lbEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgb3BlbkNvdW50ZXI6IG51bWJlciA9IDFcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZiwgcHVibGljIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICBzdXBlcihlbGVtZW50LCByZWYpO1xyXG4gICAgdGhpcy5ob2x5ID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSgnOEYvMitUMk5YcVVCUUVSUjEyUjRzdz09Jyk7XHJcbiAgICB0aGlzLmdyYWlsID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSgneUUwQ2dRYll6SzV3cWVvS1RWemhPUT09Jyk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcgJiYgZXZlbnQudGFyZ2V0LnZhbHVlID09PSAnJykge1xyXG4gICAgICB0aGlzLm9uQ2xlYXJBbGwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyUHJvZHVjdHMoKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIHRoaXMub25DbGVhckFsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHNjcnVtYmxlKG1zZykge1xyXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChtc2cpKSB7XHJcbiAgICAgIHZhciBjb25jZWFsID0gdGhpcy5nZXRjYW1wYWlnbihtc2csIHRoaXMuaG9seSwgdGhpcy5ncmFpbCk7XHJcbiAgICAgIHZhciBzaGEyNTYgPSBDcnlwdG9KUy5IbWFjU0hBMjU2KENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KHRoaXMuZ3JhaWwpICsgY29uY2VhbC50b1N0cmluZygpLCBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeSh0aGlzLmhvbHkpKTtcclxuICAgICAgdmFyIGhhc2hJbkJhc2U2NCA9IENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KHNoYTI1Nik7XHJcbiAgICAgIGxldCBrZXlWYWx1ZSA9IHtcclxuICAgICAgICBcInZhbHVlXCI6IGNvbmNlYWwudG9TdHJpbmcoKSxcclxuICAgICAgICBcIm1hY1wiOiBoYXNoSW5CYXNlNjRcclxuICAgICAgfTtcclxuICAgICAgdmFyIHJlc3VsdCA9IEpTT04uc3RyaW5naWZ5KGtleVZhbHVlKTtcclxuICAgICAgdmFyIGp1bWJsZWQgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gQ3J5cHRvSlMuZW5jLkJhc2U2NC5zdHJpbmdpZnkoanVtYmxlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRjYW1wYWlnbihkYXRhOiBhbnksIGhvbHk6IGFueSwgZ3JhaWw6IGFueSkge1xyXG4gICAgcmV0dXJuIENyeXB0b0pTLkFFUy5lbmNyeXB0KGRhdGEudG9TdHJpbmcoKSwgaG9seSxcclxuICAgICAge1xyXG4gICAgICAgIGJsb2NrU2l6ZTogMTI4LFxyXG4gICAgICAgIGl2OiBncmFpbCxcclxuICAgICAgICBtb2RlOiBDcnlwdG9KUy5tb2RlLkNCQyxcclxuICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuUGtjczdcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcmVnaXN0ZXJQYW5lbFNjcm9sbEV2ZW50KHNlbGVjdEVsZW06IE1hdFNlbGVjdCkge1xyXG4gICAgY29uc3QgcGFuZWxFbGVtZW50ID0gc2VsZWN0RWxlbS5wYW5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgcGFuZWxFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwuYmluZCh0aGlzKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgb25TY3JvbGwoZXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IGV2ZW50LnRhcmdldDtcclxuICAgICAgY29uc3QgdHJhY2tIZWlnaHQgPSBzY3JvbGxFbGVtZW50LnNjcm9sbEhlaWdodCAtIHNjcm9sbEVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICBpZiAodGhpcy5vcGVuQ291bnRlciA8IDIpIHtcclxuICAgICAgICBjb25zdCByZXRyaWV2ZWRPYmplY3QgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdG9yYWdlT2JqZWN0JykpO1xyXG4gICAgICAgIHRoaXMudG90YWxQYWdlcyA9IE51bWJlcihyZXRyaWV2ZWRPYmplY3Q/LnRvdGFsUGFnZXMpO1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0TGlzdCA9IHJldHJpZXZlZE9iamVjdD8uZGF0YVNvdXJjZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5wcm9kdWN0c2xvYWRpbmdGbGFnICYmIE1hdGguZmxvb3Ioc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AgLyB0cmFja0hlaWdodCAqIDEwMCkgPiA1MCkge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3BlbkNvdW50ZXIgPSB0aGlzLm9wZW5Db3VudGVyICsgMTtcclxuICAgICAgICBpZiAodGhpcy5wYWdlTnVtYmVyIDwgdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2VOdW1iZXIgKyAxO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGJ5IGtleSBmcm9tIHRoZSBhcnJheVxyXG4gIGdldFZhbHVlQnlLZXkoZGF0YSwga2V5KSB7XHJcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIGRhdGEgaXMgZW1wdHkgb3IgdW5kZWZpbmVkXHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YS5maW5kKGt2ID0+IGt2LmtleS50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0udmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcblxyXG4gIGxvYWREYXRhKHBhZ2VOdW1iZXIsIHBhZ2VTaXplLCBzZWFyY2hRdWVyeSkge1xyXG4gICAgY29uc3QgcGFyYW1zRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Byb2R1Y3RQaWNrZXInKSk7XHJcbiAgICBjb25zdCBpbmNsdWRlRGVzY3JpcHRpb24gPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ2luY2x1ZGVEZXNjcmlwdGlvbicpO1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ3ZlbmRvcklkJyk7XHJcbiAgICBjb25zdCBvbmx5QWN0aXZlID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICdvbmx5QWN0aXZlJyk7XHJcbiAgICB2YXIgY3VycmVudFVzZXIgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpKTtcclxuICAgIGxldCBoZWFkZXJzO1xyXG4gICAgaWYgKGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLlRva2VucyAmJiBjdXJyZW50VXNlci5Ub2tlbnMuQWNjZXNzVG9rZW4pIHtcclxuICAgICAgdmFyIGFjY2Vzc1Rva2VuID0gY3VycmVudFVzZXIuVG9rZW5zLkFjY2Vzc1Rva2VuO1xyXG4gICAgICBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgYWNjZXNzVG9rZW5cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdVc2VyIG5vdCBhdXRoZW50aWNhdGVkIG9yIHRva2VucyBtaXNzaW5nLicpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVudmVuZG9ySWQgPSB0aGlzLnNjcnVtYmxlKHZlbmRvcklkKVxyXG4gICAgY29uc3QgZW5wYWdlTnVtYmVyID0gdGhpcy5zY3J1bWJsZShwYWdlTnVtYmVyKVxyXG4gICAgY29uc3QgZW5wYWdlU2l6ZSA9IHRoaXMuc2NydW1ibGUocGFnZVNpemUpO1xyXG4gICAgY29uc3QgZW5zZWFyY2hRdWVyeSA9IHRoaXMuc2NydW1ibGUoc2VhcmNoUXVlcnkpO1xyXG4gICAgbGV0IGVuYWN0aXZlID0gdGhpcy5zY3J1bWJsZShvbmx5QWN0aXZlKTtcclxuICAgIC8vQ2hlY2sgaWYgZW5hY3RpdmUgaXMgdW5kZWZpbmVkLCBudWxsLCBvciBibGFua1xyXG4gICAgaWYgKGVuYWN0aXZlID09PSB1bmRlZmluZWQgfHwgZW5hY3RpdmUgPT09IG51bGwgfHwgZW5hY3RpdmUgPT09ICcnKSB7XHJcbiAgICAgIGVuYWN0aXZlID0gdGhpcy5zY3J1bWJsZSh0cnVlKTsgLy8gU2V0IGRlZmF1bHQgdmFsdWUgdG8gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNjcnVtYmxlIGFuZCBoYW5kbGUgdGhlIGluY2x1ZGVEZXNjcmlwdGlvbiBwYXJhbWV0ZXJcclxuICAgIGxldCBlbmRlc2NyaXB0aW9uID0gdGhpcy5zY3J1bWJsZShpbmNsdWRlRGVzY3JpcHRpb24pO1xyXG4gICAgaWYgKCFlbmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgIGVuZGVzY3JpcHRpb24gPSB0aGlzLnNjcnVtYmxlKGZhbHNlKTsgIC8vIFNldCB0byAnZmFsc2UnIGlmIHVuZGVmaW5lZCwgbnVsbCwgb3IgYmxhbmtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBiYXNlVXJsTWFwcGluZyA9IHtcclxuICAgICAgJ2xvY2FsaG9zdCc6ICdodHRwOi8vbG9jYWxob3N0OjU4NTA0JyxcclxuICAgICAgJ2xpbmNvbG4udmFydG9waWEuY29tJzogJ2h0dHBzOi8vbGluY29sbi1hcGkudmFydG9waWEuY29tJyxcclxuICAgICAgJ3N0YWdlLnZhcnRvcGlhLmNvbSc6ICdodHRwczovL3N0YWdlLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnbXkudmFydG9waWEuY29tJzogJ2h0dHBzOi8vcmVhZ2FuLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnamFja3Nvbi52YXJ0b3BpYS5jb20nOiAnaHR0cHM6Ly9qYWNrc29uLWFwaS52YXJ0b3BpYS5jb20nXHJcbiAgICB9O1xyXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IGhvc3RuYW1lXHJcbiAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcclxuICAgIGNvbnN0IGJhc2VBcGlVcmwgPSBiYXNlVXJsTWFwcGluZ1tob3N0bmFtZV0gfHwgbnVsbDtcclxuICAgIGludGVyZmFjZSBWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlIHtcclxuICAgICAgY29kZTogbnVtYmVyO1xyXG4gICAgICBkYXRhOiBhbnk7XHJcbiAgICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgICAgc3RhdHVzQ29kZTogbnVtYmVyO1xyXG4gICAgfVxyXG4gICAgdGhpcy5odHRwLmdldDxWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlPihgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0VmVuZG9yUHJvZHVjdHM/dmVuZG9ySWQ9JHtlbnZlbmRvcklkfSZwYWdlTnVtYmVyPSR7ZW5wYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke2VucGFnZVNpemV9JnNlYXJjaD0ke2Vuc2VhcmNoUXVlcnl9Jm9ubHlBY3RpdmU9JHtlbmFjdGl2ZX0maW5jbHVkZURlc2NyaXB0aW9uPSR7ZW5kZXNjcmlwdGlvbn1gLCB7IGhlYWRlcnMgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgICAgIHRoaXMudG90YWxQYWdlcyA9IHJlc3BvbnNlPy5kYXRhPy50b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGEuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRhdGEubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgICAgICAgIH0pLmZvckVhY2goaSA9PiB0aGlzLnByb2R1Y3RMaXN0LnB1c2goaSkpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gZGF0YTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIFVwZGF0ZSBmaWx0ZXJlZE9wdGlvbnMgd2l0aCB0cmFuc2Zvcm1lZERhdGFcclxuICAgICAgICAgIHZhciBhbGxQcm9kdWN0TGlzdCA9IHRoaXMudHJhbnNmb3JtUmVzcG9uc2VEYXRhKHRoaXMucHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUoYWxsUHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZWxlID0gdGhpcy5zZWxlY3RFbGVtLnBhbmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gZWxlLnNjcm9sbEhlaWdodCAtIGVsZS5vZmZzZXRIZWlnaHRcclxuICAgICAgICAgICAgY29uc3QgbWlkZGxlUG9zaXRpb24gPSB0cmFja0hlaWdodCAvIDIgLSA1MDtcclxuICAgICAgICAgICAgZWxlLnNjcm9sbFRvKHsgdG9wOiBtaWRkbGVQb3NpdGlvbiwgYmVoYXZpb3I6ICdhdXRvJyB9KTtcclxuICAgICAgICAgIH0sIDI1MCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBVdGlsaXR5IGZ1bmN0aW9uIHRvIHRyYW5zZm9ybSByZXNwb25zZSBkYXRhXHJcbiAgdHJhbnNmb3JtUmVzcG9uc2VEYXRhKGRhdGE6IEFycmF5PHsgdGV4dDogYW55LCB2YWx1ZTogYW55LCBkYXRlOiBhbnkgfT4gfCBudWxsIHwgdW5kZWZpbmVkKTogQXJyYXk8eyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCBkYXRlOiBzdHJpbmcgfT4ge1xyXG4gICAgLy8gQ2hlY2sgaWYgZGF0YSBpcyBub3QgbnVsbCwgdW5kZWZpbmVkLCBhbmQgaXMgYW4gYXJyYXkgd2l0aCBlbGVtZW50c1xyXG4gICAgaWYgKGRhdGEgJiYgQXJyYXkuaXNBcnJheShkYXRhKSAmJiBkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIGRhdGEubWFwKGl0ZW0gPT4gKHtcclxuICAgICAgICBsYWJlbDogaXRlbS50ZXh0LFxyXG4gICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxyXG4gICAgICAgIGRhdGU6IGl0ZW0uZGF0ZVxyXG4gICAgICB9KSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBSZXR1cm4gYW4gZW1wdHkgYXJyYXkgaWYgZGF0YSBpcyBudWxsLCB1bmRlZmluZWQsIG9yIGVtcHR5XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgZmlsdGVyV2Vic2l0ZU11bHRpKCkge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdE9wdGlvbnMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHNlYXJjaCA9IHRoaXMud2Vic2l0ZU11bHRpRmlsdGVyQ3RybC52YWx1ZTtcclxuICAgIHNlYXJjaCA9IHNlYXJjaC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdE9wdGlvbnMudGhlbigob3B0aW9ucykgPT4ge1xyXG4gICAgICBjb25zdCBmaWx0ZXJlZCA9IG9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5sYWJlbC5yZXBsYWNlKC88XFwvP3NwYW5bXj5dKj4vZywgXCJcIikudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaCkgIT09IC0xKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNMZW5ndGggPSBmaWx0ZXJlZC5sZW5ndGg7XHJcbiAgICAgIHJldHVybiBmaWx0ZXJlZDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fb25EZXN0cm95Lm5leHQoJycpO1xyXG4gICAgdGhpcy5fb25EZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypFbmQqL1xyXG4gIHNldEluc3RhbmNlKGluc3RhbmNlOiBhbnkpIHtcclxuICAgIHN1cGVyLnNldEluc3RhbmNlKGluc3RhbmNlKTtcclxuICAgIHRoaXMuaW5zdGFuY2UudHJpZ2dlclVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhckFsbCgpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgdGhpcy5wYWdlTnVtYmVyID0gMTtcclxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IDIwO1xyXG4gICAgICB0aGlzLnNlYXJjaFF1ZXJ5ID0gJyc7XHJcbiAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucHJvZHVjdExpc3QgPSBbXTtcclxuICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLnNlbGVjdEVsZW0ub3BlbmVkQ2hhbmdlLnN1YnNjcmliZSgoaXNPcGVuOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzT3Blbikge1xyXG4gICAgICAgICAgdGhpcy5wYWdlTnVtYmVyID0gMjtcclxuICAgICAgICAgIHRoaXMucGFnZVNpemUgPSAyMDtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcclxuICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAvL3RoaXMubG9hZERhdGEodGhpcy5wYWdlTnVtYmVyLCB0aGlzLnBhZ2VTaXplLCB0aGlzLnNlYXJjaFF1ZXJ5KTtcclxuICAgICAgICAgIHRoaXMucmVnaXN0ZXJQYW5lbFNjcm9sbEV2ZW50KHRoaXMuc2VsZWN0RWxlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUGFuZWxTY3JvbGxFdmVudCgpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlUGFuZWxTY3JvbGxFdmVudCgpIHtcclxuICAgIC8vIFJlbW92ZSB0aGUgc2Nyb2xsIGV2ZW50IGxpc3RlbmVyXHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFuZWxFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhbmVsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLmJpbmQodGhpcykpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvKm5ldyBsb2dpYyAqL1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50c1xyXG4gICAgICAgICAgLy8gIHRhcCgoKSA9PiB0aGlzLnNlYXJjaGluZyA9IHRydWUpLFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFF1ZXJ5KSA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VhcmNoUXVlcnkgIT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdlTnVtYmVyID0gMTtcclxuICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IDIwO1xyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHNlYXJjaFF1ZXJ5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMud2Vic2l0ZU11bHRpRmlsdGVyQ3RybC52YWx1ZUNoYW5nZXNcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJXZWJzaXRlTXVsdGkoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qRW5kICovXHJcbiAgICB0aGlzLnNlbGVjdE9wdGlvbnMgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbnNSZXNvbHZlID0gcmVzb2x2ZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4oKG9wdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNMZW5ndGggPSBvcHRpb25zLmxlbmd0aDtcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdE9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBjb21wYXJlT2JqZWN0cyhvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gXy5pc0VxdWFsKG8xLCBvMik7XHJcbiAgfVxyXG59XHJcblNlbGVjdENvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50O1xyXG5cclxuLy8gTWFrZSBzdXJlIHdlIGRldGVjdCBjaGFuZ2VzIHdoZW4gbmV3IGl0ZW1zIG1ha2UgdGhlaXIgd2F5IGludG8gdGhlIHNlbGVjdCBkcm9wZG93bi5cclxuY29uc3Qgc2V0SXRlbXMgPSBTZWxlY3RDb21wb25lbnQucHJvdG90eXBlLnNldEl0ZW1zO1xyXG5TZWxlY3RDb21wb25lbnQucHJvdG90eXBlLnNldEl0ZW1zID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICBzZXRJdGVtcy5jYWxsKHRoaXMsIC4uLmFyZ3MpO1xyXG4gIGlmICh0aGlzLm1hdGVyaWFsQ29tcG9uZW50ICYmIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2VsZWN0T3B0aW9uc1Jlc29sdmUpIHtcclxuICAgIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2VsZWN0T3B0aW9uc1Jlc29sdmUodGhpcy5zZWxlY3RPcHRpb25zKTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgeyBTZWxlY3RDb21wb25lbnQgfTtcclxuIl19
|
|
@@ -81,7 +81,7 @@ import RadioComponent from 'formiojs/components/radio/Radio.js';
|
|
|
81
81
|
import SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';
|
|
82
82
|
import SelectComponent from 'formiojs/components/select/Select.js';
|
|
83
83
|
import { Subject } from 'rxjs';
|
|
84
|
-
import { debounceTime,
|
|
84
|
+
import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
85
85
|
import * as CryptoJS from 'crypto-js';
|
|
86
86
|
import { isNullOrUndefined } from 'util';
|
|
87
87
|
import * as i9 from 'ngx-mat-select-search';
|
|
@@ -2539,8 +2539,10 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2539
2539
|
this.grail = '';
|
|
2540
2540
|
this.productsloadingFlag = false;
|
|
2541
2541
|
this.searching = false;
|
|
2542
|
+
this.productList = [];
|
|
2542
2543
|
// Variable to hold the reference to the current panel element
|
|
2543
2544
|
this.currentPanelElement = null;
|
|
2545
|
+
this.openCounter = 1;
|
|
2544
2546
|
this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
2545
2547
|
this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
2546
2548
|
}
|
|
@@ -2584,14 +2586,23 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2584
2586
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2585
2587
|
const scrollElement = event.target;
|
|
2586
2588
|
const trackHeight = scrollElement.scrollHeight - scrollElement.offsetHeight;
|
|
2589
|
+
if (this.openCounter < 2) {
|
|
2590
|
+
const retrievedObject = JSON.parse(localStorage.getItem('storageObject'));
|
|
2591
|
+
this.totalPages = Number(retrievedObject === null || retrievedObject === void 0 ? void 0 : retrievedObject.totalPages);
|
|
2592
|
+
this.productsloadingFlag = true;
|
|
2593
|
+
this.productList = retrievedObject === null || retrievedObject === void 0 ? void 0 : retrievedObject.dataSource;
|
|
2594
|
+
}
|
|
2587
2595
|
if (this.productsloadingFlag && Math.floor(scrollElement.scrollTop / trackHeight * 100) > 50) {
|
|
2588
2596
|
this.productsloadingFlag = false;
|
|
2597
|
+
this.openCounter = this.openCounter + 1;
|
|
2589
2598
|
if (this.pageNumber < this.totalPages) {
|
|
2590
2599
|
this.pageNumber = this.pageNumber + 1;
|
|
2600
|
+
this.searching = true;
|
|
2591
2601
|
this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
|
|
2592
2602
|
}
|
|
2593
2603
|
else {
|
|
2594
2604
|
this.productsloadingFlag = true;
|
|
2605
|
+
this.searching = false;
|
|
2595
2606
|
}
|
|
2596
2607
|
}
|
|
2597
2608
|
}
|
|
@@ -2610,11 +2621,17 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2610
2621
|
const vendorId = this.getValueByKey(paramsData, 'vendorId');
|
|
2611
2622
|
const onlyActive = this.getValueByKey(paramsData, 'onlyActive');
|
|
2612
2623
|
var currentUser = JSON.parse(localStorage.getItem('currentUser'));
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2624
|
+
let headers;
|
|
2625
|
+
if (currentUser && currentUser.Tokens && currentUser.Tokens.AccessToken) {
|
|
2626
|
+
var accessToken = currentUser.Tokens.AccessToken;
|
|
2627
|
+
headers = new HttpHeaders({
|
|
2628
|
+
'Content-Type': 'application/json',
|
|
2629
|
+
'Authorization': 'Bearer ' + accessToken
|
|
2630
|
+
});
|
|
2631
|
+
}
|
|
2632
|
+
else {
|
|
2633
|
+
console.error('User not authenticated or tokens missing.');
|
|
2634
|
+
}
|
|
2618
2635
|
const envendorId = this.scrumble(vendorId);
|
|
2619
2636
|
const enpageNumber = this.scrumble(pageNumber);
|
|
2620
2637
|
const enpageSize = this.scrumble(pageSize);
|
|
@@ -2645,25 +2662,26 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2645
2662
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2646
2663
|
this.totalPages = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.totalPages;
|
|
2647
2664
|
const data = response.data.dataSource;
|
|
2648
|
-
|
|
2649
|
-
this.
|
|
2665
|
+
this.filteredOptionsLength = data.length;
|
|
2666
|
+
if (this.productList.length > 0) {
|
|
2667
|
+
data.map(item => {
|
|
2668
|
+
return item;
|
|
2669
|
+
}).forEach(i => this.productList.push(i));
|
|
2670
|
+
}
|
|
2671
|
+
else {
|
|
2672
|
+
this.productList = data;
|
|
2673
|
+
}
|
|
2650
2674
|
// Update filteredOptions with transformedData
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
value: item.value,
|
|
2654
|
-
date: item.date
|
|
2655
|
-
})));
|
|
2675
|
+
var allProductList = this.transformResponseData(this.productList);
|
|
2676
|
+
this.filteredOptions = Promise.resolve(allProductList);
|
|
2656
2677
|
this.searching = false;
|
|
2657
|
-
// Update filteredOptions with transformedData
|
|
2658
|
-
// this.filteredOptions = this.filteredOptions.then(existingOptions => {
|
|
2659
|
-
// const newOptions = transformedData.map(item => ({
|
|
2660
|
-
// label: item.label,
|
|
2661
|
-
// value: item.value,
|
|
2662
|
-
// date: item.date
|
|
2663
|
-
// }));
|
|
2664
|
-
// return existingOptions.concat(newOptions);
|
|
2665
|
-
// });
|
|
2666
2678
|
this.productsloadingFlag = true;
|
|
2679
|
+
setTimeout(() => {
|
|
2680
|
+
const ele = this.selectElem.panel.nativeElement;
|
|
2681
|
+
const trackHeight = ele.scrollHeight - ele.offsetHeight;
|
|
2682
|
+
const middlePosition = trackHeight / 2 - 50;
|
|
2683
|
+
ele.scrollTo({ top: middlePosition, behavior: 'auto' });
|
|
2684
|
+
}, 250);
|
|
2667
2685
|
}
|
|
2668
2686
|
}
|
|
2669
2687
|
});
|
|
@@ -2709,6 +2727,8 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2709
2727
|
this.pageNumber = 1;
|
|
2710
2728
|
this.pageSize = 20;
|
|
2711
2729
|
this.searchQuery = '';
|
|
2730
|
+
this.searching = false;
|
|
2731
|
+
this.productList = [];
|
|
2712
2732
|
this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
|
|
2713
2733
|
}
|
|
2714
2734
|
}
|
|
@@ -2716,16 +2736,16 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2716
2736
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2717
2737
|
this.selectElem.openedChange.subscribe((isOpen) => {
|
|
2718
2738
|
if (isOpen) {
|
|
2719
|
-
this.pageNumber =
|
|
2739
|
+
this.pageNumber = 2;
|
|
2720
2740
|
this.pageSize = 20;
|
|
2721
2741
|
this.searchQuery = '';
|
|
2722
|
-
this.searching =
|
|
2723
|
-
this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
|
|
2742
|
+
this.searching = false;
|
|
2743
|
+
//this.loadData(this.pageNumber, this.pageSize, this.searchQuery);
|
|
2724
2744
|
this.registerPanelScrollEvent(this.selectElem);
|
|
2725
2745
|
}
|
|
2726
2746
|
else {
|
|
2727
2747
|
this.removePanelScrollEvent();
|
|
2728
|
-
|
|
2748
|
+
this.searching = false;
|
|
2729
2749
|
}
|
|
2730
2750
|
});
|
|
2731
2751
|
}
|
|
@@ -2742,11 +2762,14 @@ class MaterialSelectComponent extends MaterialComponent {
|
|
|
2742
2762
|
if (this.instance.component.key.toLowerCase() === 'vendorproductid') {
|
|
2743
2763
|
this.websiteMultiFilterCtrl.valueChanges
|
|
2744
2764
|
.pipe(debounceTime(1000), // Time in milliseconds between key events
|
|
2745
|
-
tap(() => this.searching = true),
|
|
2765
|
+
// tap(() => this.searching = true),
|
|
2766
|
+
distinctUntilChanged(), takeUntil(this._onDestroy))
|
|
2746
2767
|
.subscribe((searchQuery) => {
|
|
2747
2768
|
if (searchQuery != '') {
|
|
2748
2769
|
this.pageNumber = 1;
|
|
2749
2770
|
this.pageSize = 20;
|
|
2771
|
+
this.productList = [];
|
|
2772
|
+
this.searching = true;
|
|
2750
2773
|
this.loadData(this.pageNumber, this.pageSize, searchQuery);
|
|
2751
2774
|
}
|
|
2752
2775
|
});
|