tuain-ng-forms-lib 14.4.45 → 14.4.91
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/classes/forms/element.mjs +3 -3
- package/esm2020/lib/classes/forms/field.mjs +5 -5
- package/esm2020/lib/classes/forms/form.mjs +7 -7
- package/esm2020/lib/classes/forms/piece-propagate.mjs +30 -0
- package/esm2020/lib/classes/forms/piece.mjs +26 -46
- package/esm2020/lib/classes/forms/section.mjs +23 -20
- package/esm2020/lib/classes/forms/subsection.mjs +16 -3
- package/esm2020/lib/classes/forms/table/column.mjs +5 -2
- package/esm2020/lib/classes/forms/table/row-data.mjs +14 -9
- package/esm2020/lib/classes/forms/table/table.mjs +17 -10
- package/esm2020/lib/components/elements/field.component.mjs +3 -3
- package/esm2020/lib/components/elements/tables/table.component.mjs +3 -27
- package/esm2020/lib/components/forms/basic-form.mjs +2 -2
- package/fesm2015/tuain-ng-forms-lib.mjs +146 -131
- package/fesm2015/tuain-ng-forms-lib.mjs.map +1 -1
- package/fesm2020/tuain-ng-forms-lib.mjs +135 -119
- package/fesm2020/tuain-ng-forms-lib.mjs.map +1 -1
- package/lib/classes/forms/element.d.ts +2 -2
- package/lib/classes/forms/piece-propagate.d.ts +11 -0
- package/lib/classes/forms/piece.d.ts +11 -13
- package/lib/classes/forms/section.d.ts +5 -3
- package/lib/classes/forms/subsection.d.ts +5 -2
- package/lib/classes/forms/table/column.d.ts +2 -0
- package/lib/classes/forms/table/row-data.d.ts +1 -1
- package/lib/classes/forms/table/table.d.ts +3 -2
- package/lib/components/elements/field.component.d.ts +1 -1
- package/lib/components/elements/tables/table.component.d.ts +0 -8
- package/package.json +1 -1
|
@@ -11,7 +11,7 @@ const attrs = {
|
|
|
11
11
|
tableCode: { name: 'tableCode', propagate: 'code' },
|
|
12
12
|
clientPaging: { name: 'clientPaging', propagate: null },
|
|
13
13
|
globalSearch: { name: 'globalSearch', propagate: 'globalSearch' },
|
|
14
|
-
globalFilterString: { name: 'globalFilterString', propagate:
|
|
14
|
+
globalFilterString: { name: 'globalFilterString', propagate: 'globalFilterString' },
|
|
15
15
|
sorting: { name: 'sorting', propagate: null },
|
|
16
16
|
recordsPerPage: { name: 'recordsPerPage', propagate: 'recordsPerPage' },
|
|
17
17
|
layout: { name: 'layout', propagate: 'layout' },
|
|
@@ -32,6 +32,7 @@ export class RecordTable extends FormElement {
|
|
|
32
32
|
this._tableColumnObj = {};
|
|
33
33
|
this._actionsObj = {};
|
|
34
34
|
// Mecanismos de filtrado nueva versión
|
|
35
|
+
this.globalFilterString = '';
|
|
35
36
|
this.globalFilterStrings = [];
|
|
36
37
|
this.layout = null;
|
|
37
38
|
this.tableRecordObj = {};
|
|
@@ -70,7 +71,11 @@ export class RecordTable extends FormElement {
|
|
|
70
71
|
if (tableReceived.fields) {
|
|
71
72
|
const columns = [];
|
|
72
73
|
for (const columnReceived of tableReceived.fields) {
|
|
73
|
-
const columnEnriched = {
|
|
74
|
+
const columnEnriched = {
|
|
75
|
+
...columnReceived,
|
|
76
|
+
visibleStates: this.visibleStates,
|
|
77
|
+
enabledStates: this.enabledStates
|
|
78
|
+
};
|
|
74
79
|
const columnDefinition = new RecordTableColumn(columnEnriched, this._formConfig);
|
|
75
80
|
columns.push(columnDefinition);
|
|
76
81
|
this._tableColumnObj[columnDefinition.fieldCode] = columnDefinition;
|
|
@@ -229,7 +234,6 @@ export class RecordTable extends FormElement {
|
|
|
229
234
|
}
|
|
230
235
|
}
|
|
231
236
|
updateVisibleRecords() {
|
|
232
|
-
// updateView const changeViewAttributes = ['currentPage', 'recordsPerPage', 'sorting'];
|
|
233
237
|
let visibleRecords;
|
|
234
238
|
if (this.clientPaging) {
|
|
235
239
|
let filteredRecords = this.getFilteredRecords();
|
|
@@ -305,7 +309,7 @@ export class RecordTable extends FormElement {
|
|
|
305
309
|
this.changePage(1);
|
|
306
310
|
}
|
|
307
311
|
if (notifyComponent) {
|
|
308
|
-
this.setAttr(attrs.globalFilterString, text);
|
|
312
|
+
this.setAttr(attrs.globalFilterString, text.trim());
|
|
309
313
|
}
|
|
310
314
|
}
|
|
311
315
|
addFilterDefinition(columnName, filterDefinition) {
|
|
@@ -353,10 +357,10 @@ export class RecordTable extends FormElement {
|
|
|
353
357
|
for (let index = 0; index < columnFilters.length; index++) {
|
|
354
358
|
const columnFilter = columnFilters[index];
|
|
355
359
|
compactFilter.advancedFilter.push({
|
|
356
|
-
fieldCode: columnFilter
|
|
357
|
-
operator: columnFilter
|
|
358
|
-
fieldValue1: columnFilter
|
|
359
|
-
fieldValue2: columnFilter
|
|
360
|
+
fieldCode: columnFilter?.fieldCode,
|
|
361
|
+
operator: columnFilter?.operator,
|
|
362
|
+
fieldValue1: columnFilter?.values[0],
|
|
363
|
+
fieldValue2: columnFilter?.values[1],
|
|
360
364
|
});
|
|
361
365
|
}
|
|
362
366
|
return compactFilter;
|
|
@@ -399,10 +403,13 @@ export class RecordTable extends FormElement {
|
|
|
399
403
|
}
|
|
400
404
|
return direction === TABLE_SORT_ASCENDING ? result : -result;
|
|
401
405
|
}
|
|
402
|
-
|
|
406
|
+
formStateChangeCustomSubscribe(formChangeSubject) {
|
|
403
407
|
this.columns?.forEach(column => {
|
|
404
408
|
column?.subscribeFormStateChange(formChangeSubject);
|
|
405
409
|
});
|
|
410
|
+
this._actions?.forEach(action => {
|
|
411
|
+
action?.subscribeFormStateChange(formChangeSubject);
|
|
412
|
+
});
|
|
406
413
|
}
|
|
407
414
|
}
|
|
408
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU3QyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUNuQyxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQztBQUVyQyxNQUFNLEtBQUssR0FBRztJQUNaLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRTtJQUM5RCxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUU7SUFDbkQsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO0lBQ3ZELFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTtJQUNqRSxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO0lBQ25FLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtJQUM3QyxjQUFjLEVBQUUsRUFBRSxJQUFJ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LEVBQUU7WUFDakMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2I7YUFBTSxJQUFJLGFBQWEsR0FBRyxhQUFhLEVBQUU7WUFDeEMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNaO1FBQ0QsT0FBTyxTQUFTLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0QsQ0FBQztJQUVRLHFCQUFxQixDQUFDLGlCQUFpQjtRQUM5QyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QixNQUFNLEVBQUUsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVsZW1lbnRUeXBlcyB9IGZyb20gJy4uL2Zvcm0uY29uc3RhbnRzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi4vZWxlbWVudCc7XG5pbXBvcnQgeyBSZWNvcmRUYWJsZUNvbHVtbiB9IGZyb20gJy4vY29sdW1uJztcbmltcG9ydCB7IFRhYmxlQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgVGFibGVSZWNvcmREYXRhIH0gZnJvbSAnLi9yb3ctZGF0YSc7XG5cbmNvbnN0IFRBQkxFX1NPUlRfQVNDRU5ESU5HID0gJ2FzYyc7XG5jb25zdCBUQUJMRV9TT1JUX0RFU0NFTkRJTkcgPSAnZGVzYyc7XG5cbmNvbnN0IGF0dHJzID0ge1xuICBhbGxTZWxlY3RlZDogeyBuYW1lOiAnYWxsU2VsZWN0ZWQnLCBwcm9wYWdhdGU6ICdhbGxTZWxlY3RlZCcgfSxcbiAgdGFibGVDb2RlOiB7IG5hbWU6ICd0YWJsZUNvZGUnLCBwcm9wYWdhdGU6ICdjb2RlJyB9LFxuICBjbGllbnRQYWdpbmc6IHsgbmFtZTogJ2NsaWVudFBhZ2luZycsIHByb3BhZ2F0ZTogbnVsbCB9LFxuICBnbG9iYWxTZWFyY2g6IHsgbmFtZTogJ2dsb2JhbFNlYXJjaCcsIHByb3BhZ2F0ZTogJ2dsb2JhbFNlYXJjaCcgfSxcbiAgZ2xvYmFsRmlsdGVyU3RyaW5nOiB7IG5hbWU6ICdnbG9iYWxGaWx0ZXJTdHJpbmcnLCBwcm9wYWdhdGU6IG51bGwgfSxcbiAgc29ydGluZzogeyBuYW1lOiAnc29ydGluZycsIHByb3BhZ2F0ZTogbnVsbCB9LFxuICByZWNvcmRzUGVyUGFnZTogeyBuYW1lOiAncmVjb3Jkc1BlclBhZ2UnLCBwcm9wYWdhdGU6ICdyZWNvcmRzUGVyUGFnZScgfSxcbiAgbGF5b3V0OiB7IG5hbWU6ICdsYXlvdXQnLCBwcm9wYWdhdGU6ICdsYXlvdXQnIH0sXG4gIGNvbHVtbnM6IHsgbmFtZTogJ2NvbHVtbnMnLCBwcm9wYWdhdGU6ICdjb2x1bW5zJyB9LFxuICBzZWxlY3RlZFJlY29yZHM6IHsgbmFtZTogJ3NlbGVjdGVkUmVjb3JkcycsIHByb3BhZ2F0ZTogJ3NlbGVjdGVkUmVjb3JkcycgfSxcbiAgY3VycmVudFBhZ2U6IHsgbmFtZTogJ2N1cnJlbnRQYWdlJywgcHJvcGFnYXRlOiAnY3VycmVudFBhZ2UnIH0sXG4gIHRvdGFsUmVjb3Jkc051bWJlcjogeyBuYW1lOiAndG90YWxSZWNvcmRzTnVtYmVyJywgcHJvcGFnYXRlOiAndG90YWxSZWNvcmRzTnVtYmVyJyB9LFxuICB2aXNpYmxlUmVjb3JkczogeyBuYW1lOiAndmlzaWJsZVJlY29yZHMnLCBwcm9wYWdhdGU6ICd2aXNpYmxlUmVjb3JkcycgfSxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVBY3Rpb25FdmVudCB7XG4gIGFjdGlvbkNvZGU6IHN0cmluZztcbiAgcmVjb3JkSWQ6IGFueTtcbiAgcmVjb3JkRGF0YTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRXZlbnQge1xuICB0YWJsZUNvZGU6IHN0cmluZztcbiAgYWN0aW9uQ29kZTogc3RyaW5nIHwgbnVsbDtcbiAgYWN0aW9uRGV0YWlsOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWNvcmRUYWJsZSBleHRlbmRzIEZvcm1FbGVtZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5saW5lQWN0aW9uVHJpZ2dlciA9IG5ldyBTdWJqZWN0PFRhYmxlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dsb2JhbEFjdGlvblRyaWdnZXIgPSBuZXcgU3ViamVjdDxUYWJsZUV2ZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZWNvcmRTZWxlY3Rpb25UcmlnZ2VyID0gbmV3IFN1YmplY3Q8VGFibGVFdmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0aW9uQWN0aW9uVHJpZ2dlciA9IG5ldyBTdWJqZWN0PFRhYmxlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dldERhdGFUcmlnZ2VyID0gbmV3IFN1YmplY3Q8VGFibGVFdmVudD4oKTtcbiAgcHJpdmF0ZSBfdGFibGVDb2x1bW5PYmogPSB7fTtcbiAgcHJpdmF0ZSBfYXBwZW5kUGFnZXM6IGJvb2xlYW47XG4gIHByaXZhdGUgX2FjdGlvbnM6IFRhYmxlQWN0aW9uW107XG4gIHByaXZhdGUgX2FjdGlvbnNPYmogPSB7fTtcblxuICAvLyBNZWNhbmlzbW9zIGRlIGZpbHRyYWRvIG51ZXZhIHZlcnNpw7NuXG4gIHByaXZhdGUgZ2xvYmFsRmlsdGVyU3RyaW5nczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBzZWxlY3RlZFJlY29yZHM6IGFueTtcbiAgcHJpdmF0ZSBnbG9iYWxTZWFyY2g6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVzdHJpY3RlZElkOiBhbnk7XG4gIHByaXZhdGUgbGF5b3V0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICB0YWJsZVJlY29yZHM6IFRhYmxlUmVjb3JkRGF0YVtdO1xuICB0YWJsZVJlY29yZE9iaiA9IHt9O1xuICB2aXNpYmxlUmVjb3JkczogVGFibGVSZWNvcmREYXRhW10gfCBudWxsID0gbnVsbDtcbiAgY29sdW1uczogUmVjb3JkVGFibGVDb2x1bW5bXTtcbiAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgc2VsZWN0aW9uQmFja2VuZDogYm9vbGVhbjtcbiAgc2VsZWN0aW9uRmllbGQ6IHN0cmluZztcbiAgYWxsU2VsZWN0ZWQgPSBmYWxzZTtcblxuICB0YWJsZUNvZGU6IHN0cmluZyA9ICcnO1xuICB0YWJsZVRpdGxlOiBzdHJpbmc7XG4gIGN1cnJlbnRQYWdlOiBudW1iZXI7XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgcmVxdWVzdGVkUGFnZTogbnVtYmVyO1xuICByZWNvcmRzUGVyUGFnZTogbnVtYmVyID0gMTA7XG4gIHRvdGFsUmVjb3Jkc051bWJlcjogbnVtYmVyID0gMDtcbiAgcmVjb3Jkc051bWJlcjogbnVtYmVyID0gMDtcbiAgc29ydGluZzogYW55O1xuXG4gIHdhaXRpbmc6IGJvb2xlYW47XG4gIGNsaWVudFBhZ2luZzogYm9vbGVhbiA9IHRydWU7XG4gIHNvcnRhYmxlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHRhYmxlUmVjZWl2ZWQsIGZvcm1Db25maWcpIHtcbiAgICBzdXBlcih0YWJsZVJlY2VpdmVkLCBmb3JtQ29uZmlnKTtcbiAgICB0aGlzLmVsZW1lbnRUeXBlID0gZWxlbWVudFR5cGVzLnRhYmxlO1xuICAgIHRoaXMud2FpdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMudG90YWxQYWdlcyA9IDE7XG4gICAgdGhpcy5yZXF1ZXN0ZWRQYWdlID0gMTtcbiAgICB0aGlzLmNvbHVtbnMgPSBbXTtcbiAgICB0aGlzLl90YWJsZUNvbHVtbk9iaiA9IHt9O1xuICAgIHRoaXMuX2FjdGlvbnMgPSBbXTtcbiAgICB0aGlzLl9hY3Rpb25zT2JqID0ge307XG4gICAgdGhpcy50YWJsZVJlY29yZHMgPSBbXTtcbiAgICB0aGlzLmdsb2JhbFNlYXJjaCA9IGZhbHNlO1xuICAgIHRoaXMucmVzdHJpY3RlZElkID0gbnVsbDtcblxuICAgIHRoaXMudGFibGVUaXRsZSA9IHRhYmxlUmVjZWl2ZWQudGFibGVUaXRsZTtcbiAgICB0aGlzLl9hcHBlbmRQYWdlcyA9IHRhYmxlUmVjZWl2ZWQ/LmFwcGVuZCA/PyBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGFibGUgPSB0YWJsZVJlY2VpdmVkPy5zZWxlY3RhYmxlID8/IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0aW9uQmFja2VuZCA9IHRhYmxlUmVjZWl2ZWQ/LnNlbGVjdGlvbkJhY2tlbmQgPz8gZmFsc2U7XG4gICAgdGhpcy5zb3J0YWJsZSA9IHRhYmxlUmVjZWl2ZWQ/LnNvcnRhYmxlID8/IGZhbHNlO1xuXG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLmFsbFNlbGVjdGVkLCBmYWxzZSk7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLnRhYmxlQ29kZSwgdGFibGVSZWNlaXZlZC50YWJsZUNvZGUpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5jbGllbnRQYWdpbmcsIHRhYmxlUmVjZWl2ZWQ/LmNsaWVudFBhZ2luZyA/PyB0cnVlKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuZ2xvYmFsU2VhcmNoLCB0YWJsZVJlY2VpdmVkPy5zaW1wbGVGaWx0ZXIgPz8gZmFsc2UpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5nbG9iYWxGaWx0ZXJTdHJpbmcsICcnKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuc29ydGluZywgeyBjb2x1bW5OYW1lOiAnJywgZGlyZWN0aW9uOiAnJyB9KTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMucmVjb3Jkc1BlclBhZ2UsIGZvcm1Db25maWcuZGVmYXVsdFJlY29yZHNQZXJQYWdlKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMubGF5b3V0LCAnJyk7XG5cbiAgICBpZiAodGFibGVSZWNlaXZlZC5maWVsZHMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnM6IFJlY29yZFRhYmxlQ29sdW1uW10gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgY29sdW1uUmVjZWl2ZWQgb2YgdGFibGVSZWNlaXZlZC5maWVsZHMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uRW5yaWNoZWQgPSB7IC4uLmNvbHVtblJlY2VpdmVkLCB2aXNpYmxlU3RhdGVzOiB0aGlzLnZpc2libGVTdGF0ZXMgfTtcbiAgICAgICAgY29uc3QgY29sdW1uRGVmaW5pdGlvbjogUmVjb3JkVGFibGVDb2x1bW4gPSBuZXcgUmVjb3JkVGFibGVDb2x1bW4oY29sdW1uRW5yaWNoZWQsIHRoaXMuX2Zvcm1Db25maWcpO1xuICAgICAgICBjb2x1bW5zLnB1c2goY29sdW1uRGVmaW5pdGlvbik7XG4gICAgICAgIHRoaXMuX3RhYmxlQ29sdW1uT2JqW2NvbHVtbkRlZmluaXRpb24uZmllbGRDb2RlXSA9IGNvbHVtbkRlZmluaXRpb247XG4gICAgICB9XG4gICAgICB0aGlzLnNldEF0dHIoYXR0cnMuY29sdW1ucywgY29sdW1ucyk7XG4gICAgfVxuICAgIGlmICh0YWJsZVJlY2VpdmVkLmFjdGlvbnMpIHtcbiAgICAgIGNvbnN0IHRhYmxlQWN0aW9ucyA9IHRhYmxlUmVjZWl2ZWQuYWN0aW9ucy5tYXAob2JqRGVmID0+IHtcbiAgICAgICAgbGV0IHZpc2libGVTdGF0ZXMgPSBvYmpEZWYudmlzaWJsZVN0YXRlcztcbiAgICAgICAgbGV0IGVuYWJsZWRTdGF0ZXMgPSBvYmpEZWYuZW5hYmxlZFN0YXRlcztcbiAgICAgICAgaWYgKCF2aXNpYmxlU3RhdGVzKSB7XG4gICAgICAgICAgdmlzaWJsZVN0YXRlcyA9IChvYmpEZWYuYWN0aW9uTW9kZXMgfHwgJycpLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoc3RhdGUgPT4gc3RhdGUudHJpbSgpKVxuICAgICAgICAgICAgLmZpbHRlcihzdGF0ZSA9PiBzdGF0ZS5sZW5ndGggPiAwKTtcbiAgICAgICAgICBlbmFibGVkU3RhdGVzID0gKG9iakRlZi5hY3Rpb25Nb2RlcyB8fCAnJykuc3BsaXQoJywnKVxuICAgICAgICAgICAgLm1hcChzdGF0ZSA9PiBzdGF0ZS50cmltKCkpXG4gICAgICAgICAgICAuZmlsdGVyKHN0YXRlID0+IHN0YXRlLmxlbmd0aCA+IDApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IC4uLm9iakRlZiwgdmlzaWJsZVN0YXRlcywgZW5hYmxlZFN0YXRlcyB9O1xuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IGFjdGlvblJlY2VpdmVkIG9mIHRhYmxlQWN0aW9ucykge1xuICAgICAgICBjb25zdCBpbmxpbmVBY3Rpb24gPSBuZXcgVGFibGVBY3Rpb24oYWN0aW9uUmVjZWl2ZWQsIHRoaXMuX2Zvcm1Db25maWcpO1xuICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goaW5saW5lQWN0aW9uKTtcbiAgICAgICAgdGhpcy5fYWN0aW9uc09ialtpbmxpbmVBY3Rpb24uYWN0aW9uQ29kZV0gPSBpbmxpbmVBY3Rpb247XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uRmllbGQgPSAodGhpcy5zZWxlY3RhYmxlKSA/IHRhYmxlUmVjZWl2ZWQ/LnNlbGVjdGlvbkZpZWxkIDogbnVsbDtcbiAgICAvLyBGaWx0cm9zIHByZWRlZmluaWRvcyBlbiBlbCBmb3JtdWxhcmlvXG4gICAgaWYgKHRhYmxlUmVjZWl2ZWQuZmlsdGVycykge1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRhYmxlUmVjZWl2ZWQuZmlsdGVycy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXJEZWZpbml0aW9uKHRhYmxlUmVjZWl2ZWQuZmlsdGVyc1tpbmRleF0uZmllbGRDb2RlLCB0YWJsZVJlY2VpdmVkLmZpbHRlcnNbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgY29sdW1uTmFtZXMoKSB7IHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl90YWJsZUNvbHVtbk9iaik7IH1cbiAgZ2V0IGlubGluZUFjdGlvblRyaWdnZXIoKSB7IHJldHVybiB0aGlzLl9pbmxpbmVBY3Rpb25UcmlnZ2VyOyB9XG4gIGdldCBnbG9iYWxBY3Rpb25UcmlnZ2VyKCkgeyByZXR1cm4gdGhpcy5fZ2xvYmFsQWN0aW9uVHJpZ2dlcjsgfVxuICBnZXQgc2VsZWN0aW9uQWN0aW9uVHJpZ2dlcigpIHsgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbkFjdGlvblRyaWdnZXI7IH1cbiAgZ2V0IHJlY29yZFNlbGVjdGlvblRyaWdnZXIoKSB7IHJldHVybiB0aGlzLl9yZWNvcmRTZWxlY3Rpb25UcmlnZ2VyOyB9XG4gIGdldCBnZXREYXRhVHJpZ2dlcigpIHsgcmV0dXJuIHRoaXMuX2dldERhdGFUcmlnZ2VyOyB9XG5cbiAgZ2V0TGF5b3V0KCkgeyByZXR1cm4gdGhpcy5sYXlvdXQ7IH1cbiAgc2V0TGF5b3V0KGxheW91dCkgeyB0aGlzLnNldEF0dHIoYXR0cnMubGF5b3V0LCBsYXlvdXQpOyB9XG4gIGhhc0FjdGlvbnMoKSB7IHJldHVybiAodGhpcy5fYWN0aW9ucy5sZW5ndGggPiAwKTsgfVxuICBnZXRTZWxlY3RlZFJlY29yZHMoKSB7IHJldHVybiB0aGlzLnRhYmxlUmVjb3Jkcy5maWx0ZXIocmVjID0+IHJlYy5zZWxlY3RlZCkubWFwKHJlYyA9PiByZWMucmVjb3JkSWQpOyB9XG4gIGFjdGl2YXRlR2xvYmFsU2VhcmNoKCkgeyB0aGlzLmdsb2JhbFNlYXJjaCA9IHRydWU7IH1cbiAgaW5hY3RpdmF0ZUdsb2JhbFNlYXJjaCgpIHsgdGhpcy5nbG9iYWxTZWFyY2ggPSBmYWxzZTsgfVxuICBjb2x1bW5EZWZpbml0aW9uKGZpZWxkQ29kZSk6IFJlY29yZFRhYmxlQ29sdW1uIHsgcmV0dXJuIHRoaXMuX3RhYmxlQ29sdW1uT2JqW2ZpZWxkQ29kZV07IH1cbiAgcHV0T25XYWl0KCkgeyB0aGlzLndhaXRpbmcgPSB0cnVlOyB9XG4gIGZyZWVXYWl0aW5nKCkgeyB0aGlzLndhaXRpbmcgPSBmYWxzZTsgfVxuXG4gIG5vdGlmeUdsb2JhbEFjdGlvbihhY3Rpb25Db2RlKSB7XG4gICAgY29uc3QgdGFibGVFdmVudDogVGFibGVFdmVudCA9IHtcbiAgICAgIHRhYmxlQ29kZTogdGhpcy50YWJsZUNvZGUsXG4gICAgICBhY3Rpb25Db2RlLFxuICAgICAgYWN0aW9uRGV0YWlsOiBudWxsXG4gICAgfTtcbiAgICB0aGlzLl9nbG9iYWxBY3Rpb25UcmlnZ2VyLm5leHQodGFibGVFdmVudCk7XG4gIH1cblxuICBub3RpZnlJbmxpbmVBY3Rpb24odGFibGVBY3Rpb25FdmVudDogVGFibGVBY3Rpb25FdmVudCkge1xuICAgIGNvbnN0IHRhYmxlRXZlbnQ6IFRhYmxlRXZlbnQgPSB7XG4gICAgICB0YWJsZUNvZGU6IHRoaXMudGFibGVDb2RlLFxuICAgICAgYWN0aW9uQ29kZTogdGFibGVBY3Rpb25FdmVudC5hY3Rpb25Db2RlLFxuICAgICAgYWN0aW9uRGV0YWlsOiB7XG4gICAgICAgIHJlY29yZElkOiB0YWJsZUFjdGlvbkV2ZW50LnJlY29yZElkLFxuICAgICAgICByZWNvcmREYXRhOiB0YWJsZUFjdGlvbkV2ZW50LnJlY29yZERhdGFcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuX2lubGluZUFjdGlvblRyaWdnZXIubmV4dCh0YWJsZUV2ZW50KTtcbiAgfVxuXG4gIG5vdGlmeVJlY29yZFNlbGVjdGlvbihyZWNvcmRJZCkge1xuICAgIGNvbnN0IHJlY29yZCA9IHRoaXMuZ2V0VGFibGVSZWNvcmQocmVjb3JkSWQpO1xuICAgIGlmICghcmVjb3JkKSB7IHJldHVybjsgfVxuICAgIHJlY29yZC50b2dnbGVTZWxlY3QoKTtcbiAgICB0aGlzLnJlcXVlc3RlZFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlID8/IDE7XG4gICAgY29uc3QgdGFibGVFdmVudDogVGFibGVFdmVudCA9IHtcbiAgICAgIHRhYmxlQ29kZTogdGhpcy50YWJsZUNvZGUsXG4gICAgICBhY3Rpb25Db2RlOiBudWxsLFxuICAgICAgYWN0aW9uRGV0YWlsOiB7XG4gICAgICAgIHJlY29yZElkOiByZWNvcmQucmVjb3JkSWQsXG4gICAgICAgIHJlY29yZERhdGE6IHJlY29yZC5yZWNvcmREYXRhXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnJlY29yZFNlbGVjdGlvblRyaWdnZXIubmV4dCh0YWJsZUV2ZW50KTtcbiAgfVxuXG4gIG5vdGlmeVNlbGVjdGlvbkFjdGlvbihhY3Rpb25Db2RlKSB7XG4gICAgY29uc3QgdGFibGVFdmVudDogVGFibGVFdmVudCA9IHtcbiAgICAgIHRhYmxlQ29kZTogdGhpcy50YWJsZUNvZGUsXG4gICAgICBhY3Rpb25Db2RlLFxuICAgICAgYWN0aW9uRGV0YWlsOiB7XG4gICAgICAgIHNlbGVjdGVkUmVjb3JkczogdGhpcy5zZWxlY3RlZFJlY29yZHNcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuX3NlbGVjdGlvbkFjdGlvblRyaWdnZXIubmV4dCh0YWJsZUV2ZW50KTtcbiAgfVxuXG4gIG5vdGlmeUdldERhdGFBY3Rpb24ocmVxdWVzdGVkUGFnZSA9IG51bGwpIHtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gICAgdGhpcy5yZXF1ZXN0ZWRQYWdlID0gcmVxdWVzdGVkUGFnZSB8fCB0aGlzLmN1cnJlbnRQYWdlIHx8IDE7XG4gICAgY29uc3QgdGFibGVFdmVudDogVGFibGVFdmVudCA9IHtcbiAgICAgIHRhYmxlQ29kZTogdGhpcy50YWJsZUNvZGUsXG4gICAgICBhY3Rpb25Db2RlOiBudWxsLFxuICAgICAgYWN0aW9uRGV0YWlsOiBudWxsLFxuICAgIH07XG4gICAgdGhpcy5fZ2V0RGF0YVRyaWdnZXIubmV4dCh0YWJsZUV2ZW50KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNsZWFuKCkge1xuICAgIHRoaXMudGFibGVSZWNvcmRzID0gW107XG4gICAgdGhpcy51blNlbGVjdEFsbCgpO1xuICAgIHRoaXMudGFibGVSZWNvcmRPYmogPSB7fTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gIH1cblxuICBzZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLmFsbFNlbGVjdGVkLCB0cnVlKTtcbiAgICB0aGlzLnRhYmxlUmVjb3Jkcy5mb3JFYWNoKHJlY29yZCA9PiByZWNvcmQuc2VsZWN0KCkpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5zZWxlY3RlZFJlY29yZHMsIHRoaXMuZ2V0U2VsZWN0ZWRSZWNvcmRzKCkpO1xuICAgIHJldHVybiB0cnVlO1xuXG4gIH1cblxuICB1blNlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuYWxsU2VsZWN0ZWQsIGZhbHNlKTtcbiAgICB0aGlzLnRhYmxlUmVjb3Jkcy5mb3JFYWNoKHJlY29yZCA9PiByZWNvcmQudW5zZWxlY3QoKSk7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLnNlbGVjdGVkUmVjb3JkcywgdGhpcy5nZXRTZWxlY3RlZFJlY29yZHMoKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzZXRUYWJsZVJlY29yZHModGFibGVSZWNvcmRzLCBhcHBlbmQpIHtcbiAgICBpZiAoIWFwcGVuZCkge1xuICAgICAgdGhpcy50YWJsZVJlY29yZHMgPSBbXTtcbiAgICAgIHRoaXMuc2V0QXR0cihhdHRycy5hbGxTZWxlY3RlZCwgZmFsc2UpO1xuICAgICAgdGhpcy50YWJsZVJlY29yZHMuZm9yRWFjaChyZWNvcmQgPT4gcmVjb3JkLnVuc2VsZWN0KCkpO1xuICAgICAgdGhpcy5zZXRBdHRyKGF0dHJzLnNlbGVjdGVkUmVjb3JkcywgW10pO1xuICAgICAgdGhpcy50YWJsZVJlY29yZE9iaiA9IHt9O1xuICAgIH1cbiAgICBjb25zdCBuZXdSZWNvcmRzT2JqID0geyAuLi50aGlzLnRhYmxlUmVjb3JkT2JqIH07XG4gICAgY29uc3QgbmV3UmVjb3JkcyA9IFsuLi50aGlzLnRhYmxlUmVjb3Jkc107XG4gICAgZm9yIChjb25zdCB0YWJsZVJlY29yZCBvZiB0YWJsZVJlY29yZHMpIHtcbiAgICAgIGNvbnN0IHJlY29yZFJlY2VpdmVkOiBUYWJsZVJlY29yZERhdGEgPSBuZXcgVGFibGVSZWNvcmREYXRhKHRhYmxlUmVjb3JkLCB0aGlzLmNvbHVtbnMsIHRoaXMuc2VsZWN0aW9uRmllbGQpO1xuICAgICAgY29uc3QgcmVjb3JkSWRLZXkgPSByZWNvcmRSZWNlaXZlZC5yZWNvcmRJZEtleTtcbiAgICAgIG5ld1JlY29yZHMucHVzaChyZWNvcmRSZWNlaXZlZCk7XG4gICAgICBuZXdSZWNvcmRzT2JqW3JlY29yZElkS2V5XSA9IHJlY29yZFJlY2VpdmVkO1xuICAgIH1cbiAgICB0aGlzLnRhYmxlUmVjb3JkcyA9IG5ld1JlY29yZHM7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLnNlbGVjdGVkUmVjb3JkcywgdGhpcy5nZXRTZWxlY3RlZFJlY29yZHMoKSk7XG4gICAgdGhpcy50YWJsZVJlY29yZE9iaiA9IG5ld1JlY29yZHNPYmo7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlUmVjb3JkcygpO1xuICB9XG5cbiAgYXBwZW5kUmVjb3JkcyhyZWNvcmRzKSB7IHRoaXMuc2V0VGFibGVSZWNvcmRzKHJlY29yZHMsIHRydWUpOyB9XG4gIHJlcGxhY2VSZWNvcmRzKHJlY29yZHMpIHsgdGhpcy5zZXRUYWJsZVJlY29yZHMocmVjb3JkcywgZmFsc2UpOyB9XG5cbiAgc2V0VGFibGVBcHBlbmQoYXBwZW5kOiBib29sZWFuKSB7IHRoaXMuX2FwcGVuZFBhZ2VzID0gYXBwZW5kIH1cblxuICBjaGFuZ2VQYWdlKHJlcXVlc3RlZFBhZ2UpIHtcbiAgICBpZiAodGhpcy5jbGllbnRQYWdpbmcpIHtcbiAgICAgIHRoaXMuc2V0QXR0cihhdHRycy5jdXJyZW50UGFnZSwgcmVxdWVzdGVkUGFnZSk7XG4gICAgICB0aGlzLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm90aWZ5R2V0RGF0YUFjdGlvbihyZXF1ZXN0ZWRQYWdlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVWaXNpYmxlUmVjb3JkcygpIHtcbiAgICAvLyB1cGRhdGVWaWV3IGNvbnN0IGNoYW5nZVZpZXdBdHRyaWJ1dGVzID0gWydjdXJyZW50UGFnZScsICdyZWNvcmRzUGVyUGFnZScsICdzb3J0aW5nJ107XG4gICAgbGV0IHZpc2libGVSZWNvcmRzOiBhbnlbXTtcbiAgICBpZiAodGhpcy5jbGllbnRQYWdpbmcpIHtcbiAgICAgIGxldCBmaWx0ZXJlZFJlY29yZHMgPSB0aGlzLmdldEZpbHRlcmVkUmVjb3JkcygpO1xuICAgICAgdGhpcy5zZXRBdHRyKGF0dHJzLnRvdGFsUmVjb3Jkc051bWJlciwgZmlsdGVyZWRSZWNvcmRzLmxlbmd0aCk7XG4gICAgICBjb25zdCBzbGljZU51bWJlcjEgPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5yZWNvcmRzUGVyUGFnZTtcbiAgICAgIGNvbnN0IHNsaWNlTnVtYmVyMiA9ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnJlY29yZHNQZXJQYWdlICsgdGhpcy5yZWNvcmRzUGVyUGFnZVxuICAgICAgdmlzaWJsZVJlY29yZHMgPSBmaWx0ZXJlZFJlY29yZHMuc2xpY2Uoc2xpY2VOdW1iZXIxLCBzbGljZU51bWJlcjIpO1xuICAgICAgY29uc3QgcmVjb3Jkc0xhc3RQYWdlID0gdGhpcy50b3RhbFJlY29yZHNOdW1iZXIgJSB0aGlzLnJlY29yZHNQZXJQYWdlO1xuICAgICAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGgudHJ1bmModGhpcy50b3RhbFJlY29yZHNOdW1iZXIgLyB0aGlzLnJlY29yZHNQZXJQYWdlICsgKHJlY29yZHNMYXN0UGFnZSA/IDEgOiAwKSk7XG4gICAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA+IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRvdGFsUGFnZXMgfHwgMTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmlzaWJsZVJlY29yZHMgPSB0aGlzLnRhYmxlUmVjb3JkcztcbiAgICB9XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLnZpc2libGVSZWNvcmRzLCB2aXNpYmxlUmVjb3Jkcyk7XG4gIH1cblxuICB1cGRhdGVGcm9tU2VydmVyKHRhYmxlUmVjZWl2ZWQpIHtcbiAgICB0aGlzLnJlcXVlc3RlZFBhZ2UgPSAxO1xuICAgIHRoaXMudmlzaWJsZSA9IHRhYmxlUmVjZWl2ZWQ/LnZpc2libGUgfHwgdHJ1ZTtcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSB0YWJsZVJlY2VpdmVkLnRvdGFsUGFnZXMgfHwgMTtcbiAgICB0aGlzLnJlY29yZHNOdW1iZXIgPSB0YWJsZVJlY2VpdmVkLnJlY29yZHNOdW1iZXI7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLmN1cnJlbnRQYWdlLCArdGFibGVSZWNlaXZlZD8uY3VycmVudFBhZ2UgfHwgMSk7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLnJlY29yZHNQZXJQYWdlLCArdGFibGVSZWNlaXZlZC5yZWNvcmRzUGVyUGFnZSk7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLnRvdGFsUmVjb3Jkc051bWJlciwgKHRoaXMuY2xpZW50UGFnaW5nKSA/IHRhYmxlUmVjZWl2ZWQudGFibGVSZWNvcmRzLmxlbmd0aCA6ICt0YWJsZVJlY2VpdmVkLnRvdGFsUmVjb3Jkc051bWJlcik7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLnNvcnRpbmcsIHtcbiAgICAgIGNvbHVtbk5hbWU6IHRhYmxlUmVjZWl2ZWQuc29ydGluZ0NvbHVtbiB8fCAnJyxcbiAgICAgIGRpcmVjdGlvbjogdGFibGVSZWNlaXZlZC5zb3J0aW5nRGlyZWN0aW9uIHx8ICcnXG4gICAgfSk7XG4gICAgdGhpcy53YWl0aW5nID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLl9hcHBlbmRQYWdlcykge1xuICAgICAgdGhpcy5yZXBsYWNlUmVjb3Jkcyh0YWJsZVJlY2VpdmVkLnRhYmxlUmVjb3Jkcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBwZW5kUmVjb3Jkcyh0YWJsZVJlY2VpdmVkLnRhYmxlUmVjb3Jkcyk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgfVxuXG4gIGdldFRhYmxlUmVjb3JkKHJlY29yZElkKSB7XG4gICAgY29uc3QgcmVjb3JkSWRLZXkgPSAodHlwZW9mIHJlY29yZElkID09PSAnb2JqZWN0JykgPyBKU09OLnN0cmluZ2lmeShyZWNvcmRJZCkgOiByZWNvcmRJZDtcbiAgICByZXR1cm4gKHRoaXMudGFibGVSZWNvcmRPYmogJiYgcmVjb3JkSWQgJiYgdGhpcy50YWJsZVJlY29yZE9ialtyZWNvcmRJZF0pXG4gICAgICA/IHRoaXMudGFibGVSZWNvcmRPYmpbcmVjb3JkSWRdIDogbnVsbDtcbiAgfVxuXG4gIGdldEFjdGlvbihhY3Rpb25Db2RlKSB7XG4gICAgcmV0dXJuICh0aGlzLl9hY3Rpb25zT2JqICYmIGFjdGlvbkNvZGUgJiYgdGhpcy5fYWN0aW9uc09ialthY3Rpb25Db2RlXSlcbiAgICAgID8gdGhpcy5fYWN0aW9uc09ialthY3Rpb25Db2RlXSA6IG51bGw7XG4gIH1cblxuICBnZXRBY3Rpb25zKGFjdGlvbkNsYXNzOiBzdHJpbmcgPSB0aGlzLl9mb3JtQ29uZmlnLnRhYmxlQWN0aW9ucy5pbmxpbmUsIGFjdGlvblR5cGVzOiBzdHJpbmdbXSA9IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy5maWx0ZXIoYWN0aW9uRGVmID0+IHtcbiAgICAgIGNvbnN0IHR5cGVJbmNsdWRlZCA9IChhY3Rpb25UeXBlcykgPyBhY3Rpb25UeXBlcy5pbmNsdWRlcyhhY3Rpb25EZWYuYWN0aW9uVHlwZSkgOiB0cnVlO1xuICAgICAgcmV0dXJuIGFjdGlvbkRlZi5hY3Rpb25DbGFzcyA9PT0gYWN0aW9uQ2xhc3MgJiYgdHlwZUluY2x1ZGVkO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gRmlsdHJvc1xuXG4gIHNldEZpbHRlckJ5SWQoaWQpIHtcbiAgICBpZiAodGhpcy5yZXN0cmljdGVkSWQgPT09IGlkKSB7IHJldHVybjsgfVxuICAgIHRoaXMucmVzdHJpY3RlZElkID0gaWQ7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlUmVjb3JkcygpO1xuICB9XG5cbiAgY2xlYW5JZEZpbHRlcigpIHtcbiAgICBpZiAodGhpcy5yZXN0cmljdGVkSWQgPT09IG51bGwpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy5yZXN0cmljdGVkSWQgPSBudWxsO1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgfVxuXG4gIHNldEdsb2JhbEZpbHRlclN0cmluZyh0ZXh0LCBub3RpZnlDb21wb25lbnQgPSB0cnVlKSB7XG4gICAgdGhpcy5nbG9iYWxGaWx0ZXJTdHJpbmdzID0gdGV4dC5zcGxpdCgnICcpLmZpbHRlcih0ID0+IHQgJiYgdC50cmltKCkubGVuZ3RoID4gMCkubWFwKHQgPT4gdC50cmltKCkpID8/IFtdO1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgdGhpcy5jaGFuZ2VQYWdlKDEpO1xuICAgIH1cbiAgICBpZiAobm90aWZ5Q29tcG9uZW50KSB7XG4gICAgICB0aGlzLnNldEF0dHIoYXR0cnMuZ2xvYmFsRmlsdGVyU3RyaW5nLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICBhZGRGaWx0ZXJEZWZpbml0aW9uKGNvbHVtbk5hbWUsIGZpbHRlckRlZmluaXRpb24pIHtcbiAgICBjb25zdCB0YWJsZUNvbHVtbiA9IHRoaXMuY29sdW1uRGVmaW5pdGlvbihjb2x1bW5OYW1lKTtcbiAgICB0YWJsZUNvbHVtbiAmJiB0YWJsZUNvbHVtbi5hZGRGaWx0ZXJEZWZpbml0aW9uKGZpbHRlckRlZmluaXRpb24pO1xuICB9XG5cbiAgZ2V0RmlsdGVyZWRSZWNvcmRzKCkge1xuICAgIGxldCBmaWx0ZXJlZFJlY29yZHMgPSB0aGlzLnRhYmxlUmVjb3JkcztcbiAgICBpZiAodGhpcy5yZXN0cmljdGVkSWQpIHtcbiAgICAgIGZpbHRlcmVkUmVjb3JkcyA9IGZpbHRlcmVkUmVjb3Jkcy5maWx0ZXIocmVjb3JkID0+IHJlY29yZC5yZWNvcmRJZCA9PT0gdGhpcy5yZXN0cmljdGVkSWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5nbG9iYWxGaWx0ZXJTdHJpbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZpbHRlcmVkUmVjb3JkcyA9IGZpbHRlcmVkUmVjb3Jkcy5maWx0ZXIocmVjb3JkID0+IHJlY29yZC5oYXNQYXR0ZXJuKHRoaXMuZ2xvYmFsRmlsdGVyU3RyaW5ncywgdGhpcy5fdGFibGVDb2x1bW5PYmopKTtcbiAgICB9XG4gICAgY29uc3QgY29sdW1uRmlsdGVycyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5maWx0ZXIpLm1hcChjb2x1bW4gPT4gY29sdW1uLmZpbHRlcik7XG4gICAgaWYgKGNvbHVtbkZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgZmlsdGVyZWRSZWNvcmRzID0gZmlsdGVyZWRSZWNvcmRzLmZpbHRlcihyZWNvcmQgPT4gcmVjb3JkLmhhc0NvbmRpdGlvbihjb2x1bW5GaWx0ZXJzKSk7XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJlZFJlY29yZHM7XG4gIH1cblxuICBnZXRDb2x1bW5GaWx0ZXIoY29sdW1uTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdGFibGVDb2x1bW4gPSB0aGlzLmNvbHVtbkRlZmluaXRpb24oY29sdW1uTmFtZSk7XG4gICAgcmV0dXJuIHRhYmxlQ29sdW1uPy5maWx0ZXIgPz8gbnVsbDtcbiAgfVxuXG4gIGFkZENvbHVtbkZpbHRlcihjb2x1bW5OYW1lOiBzdHJpbmcsIGNvbHVtblZhbHVlczogYW55IHwgYW55W10sIG9wZXJhdG9yOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgY29uc3QgdGFibGVDb2x1bW4gPSB0aGlzLmNvbHVtbkRlZmluaXRpb24oY29sdW1uTmFtZSk7XG4gICAgY29uc3QgY29sdW1uRmlsdGVyRGVmaW5pdGlvbiA9IHRhYmxlQ29sdW1uPy5maWx0ZXJEZWZpbml0aW9uID8/IG51bGw7XG4gICAgaWYgKCFjb2x1bW5GaWx0ZXJEZWZpbml0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRhYmxlQ29sdW1uICYmIHRhYmxlQ29sdW1uLmFkZEZpbHRlcihjb2x1bW5WYWx1ZXMsIG9wZXJhdG9yKTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gIH1cblxuICByZW1vdmVDb2x1bW5GaWx0ZXIoY29sdW1uTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdGFibGVDb2x1bW4gPSB0aGlzLmNvbHVtbkRlZmluaXRpb24oY29sdW1uTmFtZSk7XG4gICAgdGFibGVDb2x1bW4gJiYgdGFibGVDb2x1bW4ucmVtb3ZlRmlsdGVyKCk7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlUmVjb3JkcygpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRGaWx0ZXIoKSB7XG4gICAgY29uc3QgY29tcGFjdEZpbHRlcjogYW55ID0ge1xuICAgICAgc2ltcGxlRmlsdGVyV29yZHM6IHRoaXMuZ2xvYmFsRmlsdGVyU3RyaW5ncyxcbiAgICAgIGFkdmFuY2VkRmlsdGVyOiBbXSxcbiAgICB9O1xuICAgIGNvbnN0IGNvbHVtbkZpbHRlcnMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uZmlsdGVyKS5tYXAoY29sdW1uID0+IGNvbHVtbi5maWx0ZXIpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjb2x1bW5GaWx0ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgY29sdW1uRmlsdGVyID0gY29sdW1uRmlsdGVyc1tpbmRleF07XG4gICAgICBjb21wYWN0RmlsdGVyLmFkdmFuY2VkRmlsdGVyLnB1c2goe1xuICAgICAgICBmaWVsZENvZGU6IGNvbHVtbkZpbHRlci5maWVsZENvZGUsXG4gICAgICAgIG9wZXJhdG9yOiBjb2x1bW5GaWx0ZXIub3BlcmF0b3IsXG4gICAgICAgIGZpZWxkVmFsdWUxOiBjb2x1bW5GaWx0ZXIudmFsdWVzWzBdLFxuICAgICAgICBmaWVsZFZhbHVlMjogY29sdW1uRmlsdGVyLnZhbHVlc1sxXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY29tcGFjdEZpbHRlcjtcbiAgfVxuXG4gIC8vIE9yZGVuYW1pZW50byBkZSByZWdpc3Ryb3MgbG9jYWxcblxuICBzb3J0KGNvbHVtbk5hbWUsIGRpcmVjdGlvbikge1xuICAgIHRoaXMuc2V0UmVxdWlyZWRPcmRlcihjb2x1bW5OYW1lLCBkaXJlY3Rpb24pO1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgdGhpcy5sb2NhbFNvcnREYXRhKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3RpZnlHZXREYXRhQWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0UmVxdWlyZWRPcmRlcihjb2x1bW5GaWVsZCwgZGlyZWN0aW9uID0gbnVsbCkge1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5zb3J0aW5nLCB7XG4gICAgICBjb2x1bW5OYW1lOiBjb2x1bW5GaWVsZCxcbiAgICAgIGRpcmVjdGlvbjogKGRpcmVjdGlvbiA9PT0gJ2FzY2VuZCcpID8gVEFCTEVfU09SVF9BU0NFTkRJTkcgOiBUQUJMRV9TT1JUX0RFU0NFTkRJTkcsXG4gICAgfSk7XG4gIH1cblxuICBsb2NhbFNvcnREYXRhKCkge1xuICAgIGlmICghdGhpcy5zb3J0aW5nLmNvbHVtbk5hbWUgfHwgIXRoaXMuc29ydGluZy5kaXJlY3Rpb24pIHsgcmV0dXJuOyB9XG4gICAgdGhpcy50YWJsZVJlY29yZHMuc29ydCgoYSwgYikgPT4gdGhpcy5yZWNvcmRDb21wYXJlKGEsIGIsIHRoaXMuc29ydGluZy5jb2x1bW5OYW1lLCB0aGlzLnNvcnRpbmcuZGlyZWN0aW9uKSk7XG4gICAgLy90aGlzLnVuU2VsZWN0QWxsKCk7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlUmVjb3JkcygpO1xuICB9XG5cbiAgcmVjb3JkQ29tcGFyZShyZWNvcmRBOiBUYWJsZVJlY29yZERhdGEsIHJlY29yZEI6IFRhYmxlUmVjb3JkRGF0YSwgY29sdW1uQ29tcGFyZSwgZGlyZWN0aW9uKSB7XG4gICAgY29uc3QgcmVjb3JkQVZhbHVlID0gcmVjb3JkQS5nZXRGaWVsZFZhbHVlKGNvbHVtbkNvbXBhcmUpO1xuICAgIGNvbnN0IHJlY29yZEJWYWx1ZSA9IHJlY29yZEIuZ2V0RmllbGRWYWx1ZShjb2x1bW5Db21wYXJlKTtcbiAgICBjb25zdCByZWNvcmRBQ29sdW1uID0gaXNOYU4ocmVjb3JkQVZhbHVlKSA/IHJlY29yZEFWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpIDogK3JlY29yZEFWYWx1ZTtcbiAgICBjb25zdCByZWNvcmRCQ29sdW1uID0gaXNOYU4ocmVjb3JkQlZhbHVlKSA/IHJlY29yZEJWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpIDogK3JlY29yZEJWYWx1ZTtcbiAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICBpZiAocmVjb3JkQUNvbHVtbiA8IHJlY29yZEJDb2x1bW4pIHtcbiAgICAgIHJlc3VsdCA9IC0xO1xuICAgIH0gZWxzZSBpZiAocmVjb3JkQUNvbHVtbiA+IHJlY29yZEJDb2x1bW4pIHtcbiAgICAgIHJlc3VsdCA9IDE7XG4gICAgfVxuICAgIHJldHVybiBkaXJlY3Rpb24gPT09IFRBQkxFX1NPUlRfQVNDRU5ESU5HID8gcmVzdWx0IDogLXJlc3VsdDtcbiAgfVxuXG4gIG92ZXJyaWRlIGZvcm1TdGF0ZUNoYW5nZUN1c3RvbShmb3JtQ2hhbmdlU3ViamVjdCkge1xuICAgIHRoaXMuY29sdW1ucz8uZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgY29sdW1uPy5zdWJzY3JpYmVGb3JtU3RhdGVDaGFuZ2UoZm9ybUNoYW5nZVN1YmplY3QpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
415
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU3QyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUNuQyxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQztBQUVyQyxNQUFNLEtBQUssR0FBRztJQUNaLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRTtJQUM5RCxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUU7SUFDbkQsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO0lBQ3ZELFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTtJQUNqRSxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUU7SUFDbkYsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO0lBQzdDLGNBQWMsRUFBRSxFQUFFLElB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QUFDLFlBQVksQ0FBQztRQUM3RixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLGFBQWEsR0FBRyxhQUFhLEVBQUU7WUFDakMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2I7YUFBTSxJQUFJLGFBQWEsR0FBRyxhQUFhLEVBQUU7WUFDeEMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNaO1FBQ0QsT0FBTyxTQUFTLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0QsQ0FBQztJQUVRLDhCQUE4QixDQUFDLGlCQUFpQjtRQUN2RCxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QixNQUFNLEVBQUUsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzIH0gZnJvbSAnLi4vZm9ybS5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnQgfSBmcm9tICcuLi9lbGVtZW50JztcbmltcG9ydCB7IFJlY29yZFRhYmxlQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW4nO1xuaW1wb3J0IHsgVGFibGVBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQgeyBUYWJsZVJlY29yZERhdGEgfSBmcm9tICcuL3Jvdy1kYXRhJztcblxuY29uc3QgVEFCTEVfU09SVF9BU0NFTkRJTkcgPSAnYXNjJztcbmNvbnN0IFRBQkxFX1NPUlRfREVTQ0VORElORyA9ICdkZXNjJztcblxuY29uc3QgYXR0cnMgPSB7XG4gIGFsbFNlbGVjdGVkOiB7IG5hbWU6ICdhbGxTZWxlY3RlZCcsIHByb3BhZ2F0ZTogJ2FsbFNlbGVjdGVkJyB9LFxuICB0YWJsZUNvZGU6IHsgbmFtZTogJ3RhYmxlQ29kZScsIHByb3BhZ2F0ZTogJ2NvZGUnIH0sXG4gIGNsaWVudFBhZ2luZzogeyBuYW1lOiAnY2xpZW50UGFnaW5nJywgcHJvcGFnYXRlOiBudWxsIH0sXG4gIGdsb2JhbFNlYXJjaDogeyBuYW1lOiAnZ2xvYmFsU2VhcmNoJywgcHJvcGFnYXRlOiAnZ2xvYmFsU2VhcmNoJyB9LFxuICBnbG9iYWxGaWx0ZXJTdHJpbmc6IHsgbmFtZTogJ2dsb2JhbEZpbHRlclN0cmluZycsIHByb3BhZ2F0ZTogJ2dsb2JhbEZpbHRlclN0cmluZycgfSxcbiAgc29ydGluZzogeyBuYW1lOiAnc29ydGluZycsIHByb3BhZ2F0ZTogbnVsbCB9LFxuICByZWNvcmRzUGVyUGFnZTogeyBuYW1lOiAncmVjb3Jkc1BlclBhZ2UnLCBwcm9wYWdhdGU6ICdyZWNvcmRzUGVyUGFnZScgfSxcbiAgbGF5b3V0OiB7IG5hbWU6ICdsYXlvdXQnLCBwcm9wYWdhdGU6ICdsYXlvdXQnIH0sXG4gIGNvbHVtbnM6IHsgbmFtZTogJ2NvbHVtbnMnLCBwcm9wYWdhdGU6ICdjb2x1bW5zJyB9LFxuICBzZWxlY3RlZFJlY29yZHM6IHsgbmFtZTogJ3NlbGVjdGVkUmVjb3JkcycsIHByb3BhZ2F0ZTogJ3NlbGVjdGVkUmVjb3JkcycgfSxcbiAgY3VycmVudFBhZ2U6IHsgbmFtZTogJ2N1cnJlbnRQYWdlJywgcHJvcGFnYXRlOiAnY3VycmVudFBhZ2UnIH0sXG4gIHRvdGFsUmVjb3Jkc051bWJlcjogeyBuYW1lOiAndG90YWxSZWNvcmRzTnVtYmVyJywgcHJvcGFnYXRlOiAndG90YWxSZWNvcmRzTnVtYmVyJyB9LFxuICB2aXNpYmxlUmVjb3JkczogeyBuYW1lOiAndmlzaWJsZVJlY29yZHMnLCBwcm9wYWdhdGU6ICd2aXNpYmxlUmVjb3JkcycgfSxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVBY3Rpb25FdmVudCB7XG4gIGFjdGlvbkNvZGU6IHN0cmluZztcbiAgcmVjb3JkSWQ6IGFueTtcbiAgcmVjb3JkRGF0YTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRXZlbnQge1xuICB0YWJsZUNvZGU6IHN0cmluZztcbiAgYWN0aW9uQ29kZTogc3RyaW5nIHwgbnVsbDtcbiAgYWN0aW9uRGV0YWlsOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWNvcmRUYWJsZSBleHRlbmRzIEZvcm1FbGVtZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5saW5lQWN0aW9uVHJpZ2dlciA9IG5ldyBTdWJqZWN0PFRhYmxlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dsb2JhbEFjdGlvblRyaWdnZXIgPSBuZXcgU3ViamVjdDxUYWJsZUV2ZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZWNvcmRTZWxlY3Rpb25UcmlnZ2VyID0gbmV3IFN1YmplY3Q8VGFibGVFdmVudD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0aW9uQWN0aW9uVHJpZ2dlciA9IG5ldyBTdWJqZWN0PFRhYmxlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dldERhdGFUcmlnZ2VyID0gbmV3IFN1YmplY3Q8VGFibGVFdmVudD4oKTtcbiAgcHJpdmF0ZSBfdGFibGVDb2x1bW5PYmogPSB7fTtcbiAgcHJpdmF0ZSBfYXBwZW5kUGFnZXM6IGJvb2xlYW47XG4gIHByaXZhdGUgX2FjdGlvbnM6IFRhYmxlQWN0aW9uW107XG4gIHByaXZhdGUgX2FjdGlvbnNPYmogPSB7fTtcblxuICAvLyBNZWNhbmlzbW9zIGRlIGZpbHRyYWRvIG51ZXZhIHZlcnNpw7NuXG4gIHByaXZhdGUgZ2xvYmFsRmlsdGVyU3RyaW5nOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBnbG9iYWxGaWx0ZXJTdHJpbmdzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkUmVjb3JkczogYW55O1xuICBwcml2YXRlIHJlc3RyaWN0ZWRJZDogYW55O1xuICBwcml2YXRlIGxheW91dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2xvYmFsU2VhcmNoOiBib29sZWFuO1xuICB0YWJsZVJlY29yZHM6IFRhYmxlUmVjb3JkRGF0YVtdO1xuICB0YWJsZVJlY29yZE9iaiA9IHt9O1xuICB2aXNpYmxlUmVjb3JkczogVGFibGVSZWNvcmREYXRhW10gfCBudWxsID0gbnVsbDtcbiAgY29sdW1uczogUmVjb3JkVGFibGVDb2x1bW5bXTtcbiAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgc2VsZWN0aW9uQmFja2VuZDogYm9vbGVhbjtcbiAgc2VsZWN0aW9uRmllbGQ6IHN0cmluZztcbiAgYWxsU2VsZWN0ZWQgPSBmYWxzZTtcblxuICB0YWJsZUNvZGU6IHN0cmluZyA9ICcnO1xuICB0YWJsZVRpdGxlOiBzdHJpbmc7XG4gIGN1cnJlbnRQYWdlOiBudW1iZXI7XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgcmVxdWVzdGVkUGFnZTogbnVtYmVyO1xuICByZWNvcmRzUGVyUGFnZTogbnVtYmVyID0gMTA7XG4gIHRvdGFsUmVjb3Jkc051bWJlcjogbnVtYmVyID0gMDtcbiAgcmVjb3Jkc051bWJlcjogbnVtYmVyID0gMDtcbiAgc29ydGluZzogYW55O1xuXG4gIHdhaXRpbmc6IGJvb2xlYW47XG4gIGNsaWVudFBhZ2luZzogYm9vbGVhbiA9IHRydWU7XG4gIHNvcnRhYmxlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHRhYmxlUmVjZWl2ZWQsIGZvcm1Db25maWcpIHtcbiAgICBzdXBlcih0YWJsZVJlY2VpdmVkLCBmb3JtQ29uZmlnKTtcbiAgICB0aGlzLmVsZW1lbnRUeXBlID0gZWxlbWVudFR5cGVzLnRhYmxlO1xuICAgIHRoaXMud2FpdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgIHRoaXMudG90YWxQYWdlcyA9IDE7XG4gICAgdGhpcy5yZXF1ZXN0ZWRQYWdlID0gMTtcbiAgICB0aGlzLmNvbHVtbnMgPSBbXTtcbiAgICB0aGlzLl90YWJsZUNvbHVtbk9iaiA9IHt9O1xuICAgIHRoaXMuX2FjdGlvbnMgPSBbXTtcbiAgICB0aGlzLl9hY3Rpb25zT2JqID0ge307XG4gICAgdGhpcy50YWJsZVJlY29yZHMgPSBbXTtcbiAgICB0aGlzLmdsb2JhbFNlYXJjaCA9IGZhbHNlO1xuICAgIHRoaXMucmVzdHJpY3RlZElkID0gbnVsbDtcblxuICAgIHRoaXMudGFibGVUaXRsZSA9IHRhYmxlUmVjZWl2ZWQudGFibGVUaXRsZTtcbiAgICB0aGlzLl9hcHBlbmRQYWdlcyA9IHRhYmxlUmVjZWl2ZWQ/LmFwcGVuZCA/PyBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGFibGUgPSB0YWJsZVJlY2VpdmVkPy5zZWxlY3RhYmxlID8/IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0aW9uQmFja2VuZCA9IHRhYmxlUmVjZWl2ZWQ/LnNlbGVjdGlvbkJhY2tlbmQgPz8gZmFsc2U7XG4gICAgdGhpcy5zb3J0YWJsZSA9IHRhYmxlUmVjZWl2ZWQ/LnNvcnRhYmxlID8/IGZhbHNlO1xuXG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLmFsbFNlbGVjdGVkLCBmYWxzZSk7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLnRhYmxlQ29kZSwgdGFibGVSZWNlaXZlZC50YWJsZUNvZGUpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5jbGllbnRQYWdpbmcsIHRhYmxlUmVjZWl2ZWQ/LmNsaWVudFBhZ2luZyA/PyB0cnVlKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuZ2xvYmFsU2VhcmNoLCB0YWJsZVJlY2VpdmVkPy5zaW1wbGVGaWx0ZXIgPz8gZmFsc2UpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5nbG9iYWxGaWx0ZXJTdHJpbmcsICcnKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuc29ydGluZywgeyBjb2x1bW5OYW1lOiAnJywgZGlyZWN0aW9uOiAnJyB9KTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMucmVjb3Jkc1BlclBhZ2UsIGZvcm1Db25maWcuZGVmYXVsdFJlY29yZHNQZXJQYWdlKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMubGF5b3V0LCAnJyk7XG5cbiAgICBpZiAodGFibGVSZWNlaXZlZC5maWVsZHMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnM6IFJlY29yZFRhYmxlQ29sdW1uW10gPSBbXTtcbiAgICAgIGZvciAoY29uc3QgY29sdW1uUmVjZWl2ZWQgb2YgdGFibGVSZWNlaXZlZC5maWVsZHMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uRW5yaWNoZWQgPSB7XG4gICAgICAgICAgLi4uY29sdW1uUmVjZWl2ZWQsXG4gICAgICAgICAgdmlzaWJsZVN0YXRlczogdGhpcy52aXNpYmxlU3RhdGVzLFxuICAgICAgICAgIGVuYWJsZWRTdGF0ZXM6IHRoaXMuZW5hYmxlZFN0YXRlc1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb2x1bW5EZWZpbml0aW9uOiBSZWNvcmRUYWJsZUNvbHVtbiA9IG5ldyBSZWNvcmRUYWJsZUNvbHVtbihjb2x1bW5FbnJpY2hlZCwgdGhpcy5fZm9ybUNvbmZpZyk7XG4gICAgICAgIGNvbHVtbnMucHVzaChjb2x1bW5EZWZpbml0aW9uKTtcbiAgICAgICAgdGhpcy5fdGFibGVDb2x1bW5PYmpbY29sdW1uRGVmaW5pdGlvbi5maWVsZENvZGVdID0gY29sdW1uRGVmaW5pdGlvbjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0QXR0cihhdHRycy5jb2x1bW5zLCBjb2x1bW5zKTtcbiAgICB9XG4gICAgaWYgKHRhYmxlUmVjZWl2ZWQuYWN0aW9ucykge1xuICAgICAgY29uc3QgdGFibGVBY3Rpb25zID0gdGFibGVSZWNlaXZlZC5hY3Rpb25zLm1hcChvYmpEZWYgPT4ge1xuICAgICAgICBsZXQgdmlzaWJsZVN0YXRlcyA9IG9iakRlZi52aXNpYmxlU3RhdGVzO1xuICAgICAgICBsZXQgZW5hYmxlZFN0YXRlcyA9IG9iakRlZi5lbmFibGVkU3RhdGVzO1xuICAgICAgICBpZiAoIXZpc2libGVTdGF0ZXMpIHtcbiAgICAgICAgICB2aXNpYmxlU3RhdGVzID0gKG9iakRlZi5hY3Rpb25Nb2RlcyB8fCAnJykuc3BsaXQoJywnKVxuICAgICAgICAgICAgLm1hcChzdGF0ZSA9PiBzdGF0ZS50cmltKCkpXG4gICAgICAgICAgICAuZmlsdGVyKHN0YXRlID0+IHN0YXRlLmxlbmd0aCA+IDApO1xuICAgICAgICAgIGVuYWJsZWRTdGF0ZXMgPSAob2JqRGVmLmFjdGlvbk1vZGVzIHx8ICcnKS5zcGxpdCgnLCcpXG4gICAgICAgICAgICAubWFwKHN0YXRlID0+IHN0YXRlLnRyaW0oKSlcbiAgICAgICAgICAgIC5maWx0ZXIoc3RhdGUgPT4gc3RhdGUubGVuZ3RoID4gMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgLi4ub2JqRGVmLCB2aXNpYmxlU3RhdGVzLCBlbmFibGVkU3RhdGVzIH07XG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3QgYWN0aW9uUmVjZWl2ZWQgb2YgdGFibGVBY3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IGlubGluZUFjdGlvbiA9IG5ldyBUYWJsZUFjdGlvbihhY3Rpb25SZWNlaXZlZCwgdGhpcy5fZm9ybUNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2FjdGlvbnMucHVzaChpbmxpbmVBY3Rpb24pO1xuICAgICAgICB0aGlzLl9hY3Rpb25zT2JqW2lubGluZUFjdGlvbi5hY3Rpb25Db2RlXSA9IGlubGluZUFjdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb25GaWVsZCA9ICh0aGlzLnNlbGVjdGFibGUpID8gdGFibGVSZWNlaXZlZD8uc2VsZWN0aW9uRmllbGQgOiBudWxsO1xuICAgIC8vIEZpbHRyb3MgcHJlZGVmaW5pZG9zIGVuIGVsIGZvcm11bGFyaW9cbiAgICBpZiAodGFibGVSZWNlaXZlZC5maWx0ZXJzKSB7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGFibGVSZWNlaXZlZC5maWx0ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICB0aGlzLmFkZEZpbHRlckRlZmluaXRpb24odGFibGVSZWNlaXZlZC5maWx0ZXJzW2luZGV4XS5maWVsZENvZGUsIHRhYmxlUmVjZWl2ZWQuZmlsdGVyc1tpbmRleF0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBjb2x1bW5OYW1lcygpIHsgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX3RhYmxlQ29sdW1uT2JqKTsgfVxuICBnZXQgaW5saW5lQWN0aW9uVHJpZ2dlcigpIHsgcmV0dXJuIHRoaXMuX2lubGluZUFjdGlvblRyaWdnZXI7IH1cbiAgZ2V0IGdsb2JhbEFjdGlvblRyaWdnZXIoKSB7IHJldHVybiB0aGlzLl9nbG9iYWxBY3Rpb25UcmlnZ2VyOyB9XG4gIGdldCBzZWxlY3Rpb25BY3Rpb25UcmlnZ2VyKCkgeyByZXR1cm4gdGhpcy5fc2VsZWN0aW9uQWN0aW9uVHJpZ2dlcjsgfVxuICBnZXQgcmVjb3JkU2VsZWN0aW9uVHJpZ2dlcigpIHsgcmV0dXJuIHRoaXMuX3JlY29yZFNlbGVjdGlvblRyaWdnZXI7IH1cbiAgZ2V0IGdldERhdGFUcmlnZ2VyKCkgeyByZXR1cm4gdGhpcy5fZ2V0RGF0YVRyaWdnZXI7IH1cblxuICBnZXRMYXlvdXQoKSB7IHJldHVybiB0aGlzLmxheW91dDsgfVxuICBzZXRMYXlvdXQobGF5b3V0KSB7IHRoaXMuc2V0QXR0cihhdHRycy5sYXlvdXQsIGxheW91dCk7IH1cbiAgaGFzQWN0aW9ucygpIHsgcmV0dXJuICh0aGlzLl9hY3Rpb25zLmxlbmd0aCA+IDApOyB9XG4gIGdldFNlbGVjdGVkUmVjb3JkcygpIHsgcmV0dXJuIHRoaXMudGFibGVSZWNvcmRzLmZpbHRlcihyZWMgPT4gcmVjLnNlbGVjdGVkKS5tYXAocmVjID0+IHJlYy5yZWNvcmRJZCk7IH1cbiAgYWN0aXZhdGVHbG9iYWxTZWFyY2goKSB7IHRoaXMuZ2xvYmFsU2VhcmNoID0gdHJ1ZTsgfVxuICBpbmFjdGl2YXRlR2xvYmFsU2VhcmNoKCkgeyB0aGlzLmdsb2JhbFNlYXJjaCA9IGZhbHNlOyB9XG4gIGNvbHVtbkRlZmluaXRpb24oZmllbGRDb2RlKTogUmVjb3JkVGFibGVDb2x1bW4geyByZXR1cm4gdGhpcy5fdGFibGVDb2x1bW5PYmpbZmllbGRDb2RlXTsgfVxuICBwdXRPbldhaXQoKSB7IHRoaXMud2FpdGluZyA9IHRydWU7IH1cbiAgZnJlZVdhaXRpbmcoKSB7IHRoaXMud2FpdGluZyA9IGZhbHNlOyB9XG5cbiAgbm90aWZ5R2xvYmFsQWN0aW9uKGFjdGlvbkNvZGUpIHtcbiAgICBjb25zdCB0YWJsZUV2ZW50OiBUYWJsZUV2ZW50ID0ge1xuICAgICAgdGFibGVDb2RlOiB0aGlzLnRhYmxlQ29kZSxcbiAgICAgIGFjdGlvbkNvZGUsXG4gICAgICBhY3Rpb25EZXRhaWw6IG51bGxcbiAgICB9O1xuICAgIHRoaXMuX2dsb2JhbEFjdGlvblRyaWdnZXIubmV4dCh0YWJsZUV2ZW50KTtcbiAgfVxuXG4gIG5vdGlmeUlubGluZUFjdGlvbih0YWJsZUFjdGlvbkV2ZW50OiBUYWJsZUFjdGlvbkV2ZW50KSB7XG4gICAgY29uc3QgdGFibGVFdmVudDogVGFibGVFdmVudCA9IHtcbiAgICAgIHRhYmxlQ29kZTogdGhpcy50YWJsZUNvZGUsXG4gICAgICBhY3Rpb25Db2RlOiB0YWJsZUFjdGlvbkV2ZW50LmFjdGlvbkNvZGUsXG4gICAgICBhY3Rpb25EZXRhaWw6IHtcbiAgICAgICAgcmVjb3JkSWQ6IHRhYmxlQWN0aW9uRXZlbnQucmVjb3JkSWQsXG4gICAgICAgIHJlY29yZERhdGE6IHRhYmxlQWN0aW9uRXZlbnQucmVjb3JkRGF0YVxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5faW5saW5lQWN0aW9uVHJpZ2dlci5uZXh0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgbm90aWZ5UmVjb3JkU2VsZWN0aW9uKHJlY29yZElkKSB7XG4gICAgY29uc3QgcmVjb3JkID0gdGhpcy5nZXRUYWJsZVJlY29yZChyZWNvcmRJZCk7XG4gICAgaWYgKCFyZWNvcmQpIHsgcmV0dXJuOyB9XG4gICAgcmVjb3JkLnRvZ2dsZVNlbGVjdCgpO1xuICAgIHRoaXMucmVxdWVzdGVkUGFnZSA9IHRoaXMuY3VycmVudFBhZ2UgPz8gMTtcbiAgICBjb25zdCB0YWJsZUV2ZW50OiBUYWJsZUV2ZW50ID0ge1xuICAgICAgdGFibGVDb2RlOiB0aGlzLnRhYmxlQ29kZSxcbiAgICAgIGFjdGlvbkNvZGU6IG51bGwsXG4gICAgICBhY3Rpb25EZXRhaWw6IHtcbiAgICAgICAgcmVjb3JkSWQ6IHJlY29yZC5yZWNvcmRJZCxcbiAgICAgICAgcmVjb3JkRGF0YTogcmVjb3JkLnJlY29yZERhdGFcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMucmVjb3JkU2VsZWN0aW9uVHJpZ2dlci5uZXh0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgbm90aWZ5U2VsZWN0aW9uQWN0aW9uKGFjdGlvbkNvZGUpIHtcbiAgICBjb25zdCB0YWJsZUV2ZW50OiBUYWJsZUV2ZW50ID0ge1xuICAgICAgdGFibGVDb2RlOiB0aGlzLnRhYmxlQ29kZSxcbiAgICAgIGFjdGlvbkNvZGUsXG4gICAgICBhY3Rpb25EZXRhaWw6IHtcbiAgICAgICAgc2VsZWN0ZWRSZWNvcmRzOiB0aGlzLnNlbGVjdGVkUmVjb3Jkc1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5fc2VsZWN0aW9uQWN0aW9uVHJpZ2dlci5uZXh0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgbm90aWZ5R2V0RGF0YUFjdGlvbihyZXF1ZXN0ZWRQYWdlID0gbnVsbCkge1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgICB0aGlzLnJlcXVlc3RlZFBhZ2UgPSByZXF1ZXN0ZWRQYWdlIHx8IHRoaXMuY3VycmVudFBhZ2UgfHwgMTtcbiAgICBjb25zdCB0YWJsZUV2ZW50OiBUYWJsZUV2ZW50ID0ge1xuICAgICAgdGFibGVDb2RlOiB0aGlzLnRhYmxlQ29kZSxcbiAgICAgIGFjdGlvbkNvZGU6IG51bGwsXG4gICAgICBhY3Rpb25EZXRhaWw6IG51bGwsXG4gICAgfTtcbiAgICB0aGlzLl9nZXREYXRhVHJpZ2dlci5uZXh0KHRhYmxlRXZlbnQpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY2xlYW4oKSB7XG4gICAgdGhpcy50YWJsZVJlY29yZHMgPSBbXTtcbiAgICB0aGlzLnVuU2VsZWN0QWxsKCk7XG4gICAgdGhpcy50YWJsZVJlY29yZE9iaiA9IHt9O1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgfVxuXG4gIHNlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuYWxsU2VsZWN0ZWQsIHRydWUpO1xuICAgIHRoaXMudGFibGVSZWNvcmRzLmZvckVhY2gocmVjb3JkID0+IHJlY29yZC5zZWxlY3QoKSk7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLnNlbGVjdGVkUmVjb3JkcywgdGhpcy5nZXRTZWxlY3RlZFJlY29yZHMoKSk7XG4gICAgcmV0dXJuIHRydWU7XG5cbiAgfVxuXG4gIHVuU2VsZWN0QWxsKCkge1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5hbGxTZWxlY3RlZCwgZmFsc2UpO1xuICAgIHRoaXMudGFibGVSZWNvcmRzLmZvckVhY2gocmVjb3JkID0+IHJlY29yZC51bnNlbGVjdCgpKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuc2VsZWN0ZWRSZWNvcmRzLCB0aGlzLmdldFNlbGVjdGVkUmVjb3JkcygpKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHNldFRhYmxlUmVjb3Jkcyh0YWJsZVJlY29yZHMsIGFwcGVuZCkge1xuICAgIGlmICghYXBwZW5kKSB7XG4gICAgICB0aGlzLnRhYmxlUmVjb3JkcyA9IFtdO1xuICAgICAgdGhpcy5zZXRBdHRyKGF0dHJzLmFsbFNlbGVjdGVkLCBmYWxzZSk7XG4gICAgICB0aGlzLnRhYmxlUmVjb3Jkcy5mb3JFYWNoKHJlY29yZCA9PiByZWNvcmQudW5zZWxlY3QoKSk7XG4gICAgICB0aGlzLnNldEF0dHIoYXR0cnMuc2VsZWN0ZWRSZWNvcmRzLCBbXSk7XG4gICAgICB0aGlzLnRhYmxlUmVjb3JkT2JqID0ge307XG4gICAgfVxuICAgIGNvbnN0IG5ld1JlY29yZHNPYmogPSB7IC4uLnRoaXMudGFibGVSZWNvcmRPYmogfTtcbiAgICBjb25zdCBuZXdSZWNvcmRzID0gWy4uLnRoaXMudGFibGVSZWNvcmRzXTtcbiAgICBmb3IgKGNvbnN0IHRhYmxlUmVjb3JkIG9mIHRhYmxlUmVjb3Jkcykge1xuICAgICAgY29uc3QgcmVjb3JkUmVjZWl2ZWQ6IFRhYmxlUmVjb3JkRGF0YSA9IG5ldyBUYWJsZVJlY29yZERhdGEodGFibGVSZWNvcmQsIHRoaXMuY29sdW1ucywgdGhpcy5zZWxlY3Rpb25GaWVsZCk7XG4gICAgICBjb25zdCByZWNvcmRJZEtleSA9IHJlY29yZFJlY2VpdmVkLnJlY29yZElkS2V5O1xuICAgICAgbmV3UmVjb3Jkcy5wdXNoKHJlY29yZFJlY2VpdmVkKTtcbiAgICAgIG5ld1JlY29yZHNPYmpbcmVjb3JkSWRLZXldID0gcmVjb3JkUmVjZWl2ZWQ7XG4gICAgfVxuICAgIHRoaXMudGFibGVSZWNvcmRzID0gbmV3UmVjb3JkcztcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuc2VsZWN0ZWRSZWNvcmRzLCB0aGlzLmdldFNlbGVjdGVkUmVjb3JkcygpKTtcbiAgICB0aGlzLnRhYmxlUmVjb3JkT2JqID0gbmV3UmVjb3Jkc09iajtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gIH1cblxuICBhcHBlbmRSZWNvcmRzKHJlY29yZHMpIHsgdGhpcy5zZXRUYWJsZVJlY29yZHMocmVjb3JkcywgdHJ1ZSk7IH1cbiAgcmVwbGFjZVJlY29yZHMocmVjb3JkcykgeyB0aGlzLnNldFRhYmxlUmVjb3JkcyhyZWNvcmRzLCBmYWxzZSk7IH1cblxuICBzZXRUYWJsZUFwcGVuZChhcHBlbmQ6IGJvb2xlYW4pIHsgdGhpcy5fYXBwZW5kUGFnZXMgPSBhcHBlbmQgfVxuXG4gIGNoYW5nZVBhZ2UocmVxdWVzdGVkUGFnZSkge1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgdGhpcy5zZXRBdHRyKGF0dHJzLmN1cnJlbnRQYWdlLCByZXF1ZXN0ZWRQYWdlKTtcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3RpZnlHZXREYXRhQWN0aW9uKHJlcXVlc3RlZFBhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVZpc2libGVSZWNvcmRzKCkge1xuICAgIGxldCB2aXNpYmxlUmVjb3JkczogYW55W107XG4gICAgaWYgKHRoaXMuY2xpZW50UGFnaW5nKSB7XG4gICAgICBsZXQgZmlsdGVyZWRSZWNvcmRzID0gdGhpcy5nZXRGaWx0ZXJlZFJlY29yZHMoKTtcbiAgICAgIHRoaXMuc2V0QXR0cihhdHRycy50b3RhbFJlY29yZHNOdW1iZXIsIGZpbHRlcmVkUmVjb3Jkcy5sZW5ndGgpO1xuICAgICAgY29uc3Qgc2xpY2VOdW1iZXIxID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucmVjb3Jkc1BlclBhZ2U7XG4gICAgICBjb25zdCBzbGljZU51bWJlcjIgPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5yZWNvcmRzUGVyUGFnZSArIHRoaXMucmVjb3Jkc1BlclBhZ2VcbiAgICAgIHZpc2libGVSZWNvcmRzID0gZmlsdGVyZWRSZWNvcmRzLnNsaWNlKHNsaWNlTnVtYmVyMSwgc2xpY2VOdW1iZXIyKTtcbiAgICAgIGNvbnN0IHJlY29yZHNMYXN0UGFnZSA9IHRoaXMudG90YWxSZWNvcmRzTnVtYmVyICUgdGhpcy5yZWNvcmRzUGVyUGFnZTtcbiAgICAgIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLnRydW5jKHRoaXMudG90YWxSZWNvcmRzTnVtYmVyIC8gdGhpcy5yZWNvcmRzUGVyUGFnZSArIChyZWNvcmRzTGFzdFBhZ2UgPyAxIDogMCkpO1xuICAgICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPiB0b3RhbFBhZ2VzKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0b3RhbFBhZ2VzIHx8IDE7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZpc2libGVSZWNvcmRzID0gdGhpcy50YWJsZVJlY29yZHM7XG4gICAgfVxuICAgIHRoaXMuc2V0QXR0cihhdHRycy52aXNpYmxlUmVjb3JkcywgdmlzaWJsZVJlY29yZHMpO1xuICB9XG5cbiAgdXBkYXRlRnJvbVNlcnZlcih0YWJsZVJlY2VpdmVkKSB7XG4gICAgdGhpcy5yZXF1ZXN0ZWRQYWdlID0gMTtcbiAgICB0aGlzLnZpc2libGUgPSB0YWJsZVJlY2VpdmVkPy52aXNpYmxlIHx8IHRydWU7XG4gICAgdGhpcy50b3RhbFBhZ2VzID0gdGFibGVSZWNlaXZlZC50b3RhbFBhZ2VzIHx8IDE7XG4gICAgdGhpcy5yZWNvcmRzTnVtYmVyID0gdGFibGVSZWNlaXZlZC5yZWNvcmRzTnVtYmVyO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5jdXJyZW50UGFnZSwgK3RhYmxlUmVjZWl2ZWQ/LmN1cnJlbnRQYWdlIHx8IDEpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5yZWNvcmRzUGVyUGFnZSwgK3RhYmxlUmVjZWl2ZWQucmVjb3Jkc1BlclBhZ2UpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy50b3RhbFJlY29yZHNOdW1iZXIsICh0aGlzLmNsaWVudFBhZ2luZykgPyB0YWJsZVJlY2VpdmVkLnRhYmxlUmVjb3Jkcy5sZW5ndGggOiArdGFibGVSZWNlaXZlZC50b3RhbFJlY29yZHNOdW1iZXIpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5zb3J0aW5nLCB7XG4gICAgICBjb2x1bW5OYW1lOiB0YWJsZVJlY2VpdmVkLnNvcnRpbmdDb2x1bW4gfHwgJycsXG4gICAgICBkaXJlY3Rpb246IHRhYmxlUmVjZWl2ZWQuc29ydGluZ0RpcmVjdGlvbiB8fCAnJ1xuICAgIH0pO1xuICAgIHRoaXMud2FpdGluZyA9IGZhbHNlO1xuICAgIGlmICghdGhpcy5fYXBwZW5kUGFnZXMpIHtcbiAgICAgIHRoaXMucmVwbGFjZVJlY29yZHModGFibGVSZWNlaXZlZC50YWJsZVJlY29yZHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFwcGVuZFJlY29yZHModGFibGVSZWNlaXZlZC50YWJsZVJlY29yZHMpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gIH1cblxuICBnZXRUYWJsZVJlY29yZChyZWNvcmRJZCkge1xuICAgIGNvbnN0IHJlY29yZElkS2V5ID0gKHR5cGVvZiByZWNvcmRJZCA9PT0gJ29iamVjdCcpID8gSlNPTi5zdHJpbmdpZnkocmVjb3JkSWQpIDogcmVjb3JkSWQ7XG4gICAgcmV0dXJuICh0aGlzLnRhYmxlUmVjb3JkT2JqICYmIHJlY29yZElkICYmIHRoaXMudGFibGVSZWNvcmRPYmpbcmVjb3JkSWRdKVxuICAgICAgPyB0aGlzLnRhYmxlUmVjb3JkT2JqW3JlY29yZElkXSA6IG51bGw7XG4gIH1cblxuICBnZXRBY3Rpb24oYWN0aW9uQ29kZSkge1xuICAgIHJldHVybiAodGhpcy5fYWN0aW9uc09iaiAmJiBhY3Rpb25Db2RlICYmIHRoaXMuX2FjdGlvbnNPYmpbYWN0aW9uQ29kZV0pXG4gICAgICA/IHRoaXMuX2FjdGlvbnNPYmpbYWN0aW9uQ29kZV0gOiBudWxsO1xuICB9XG5cbiAgZ2V0QWN0aW9ucyhhY3Rpb25DbGFzczogc3RyaW5nID0gdGhpcy5fZm9ybUNvbmZpZy50YWJsZUFjdGlvbnMuaW5saW5lLCBhY3Rpb25UeXBlczogc3RyaW5nW10gPSBudWxsKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMuZmlsdGVyKGFjdGlvbkRlZiA9PiB7XG4gICAgICBjb25zdCB0eXBlSW5jbHVkZWQgPSAoYWN0aW9uVHlwZXMpID8gYWN0aW9uVHlwZXMuaW5jbHVkZXMoYWN0aW9uRGVmLmFjdGlvblR5cGUpIDogdHJ1ZTtcbiAgICAgIHJldHVybiBhY3Rpb25EZWYuYWN0aW9uQ2xhc3MgPT09IGFjdGlvbkNsYXNzICYmIHR5cGVJbmNsdWRlZDtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEZpbHRyb3NcblxuICBzZXRGaWx0ZXJCeUlkKGlkKSB7XG4gICAgaWYgKHRoaXMucmVzdHJpY3RlZElkID09PSBpZCkgeyByZXR1cm47IH1cbiAgICB0aGlzLnJlc3RyaWN0ZWRJZCA9IGlkO1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgfVxuXG4gIGNsZWFuSWRGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMucmVzdHJpY3RlZElkID09PSBudWxsKSB7IHJldHVybjsgfVxuICAgIHRoaXMucmVzdHJpY3RlZElkID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gIH1cblxuICBzZXRHbG9iYWxGaWx0ZXJTdHJpbmcodGV4dCwgbm90aWZ5Q29tcG9uZW50ID0gdHJ1ZSkge1xuICAgIHRoaXMuZ2xvYmFsRmlsdGVyU3RyaW5ncyA9IHRleHQuc3BsaXQoJyAnKS5maWx0ZXIodCA9PiB0ICYmIHQudHJpbSgpLmxlbmd0aCA+IDApLm1hcCh0ID0+IHQudHJpbSgpKSA/PyBbXTtcbiAgICBpZiAodGhpcy5jbGllbnRQYWdpbmcpIHtcbiAgICAgIHRoaXMuY2hhbmdlUGFnZSgxKTtcbiAgICB9XG4gICAgaWYgKG5vdGlmeUNvbXBvbmVudCkge1xuICAgICAgdGhpcy5zZXRBdHRyKGF0dHJzLmdsb2JhbEZpbHRlclN0cmluZywgdGV4dC50cmltKCkpO1xuICAgIH1cbiAgfVxuXG4gIGFkZEZpbHRlckRlZmluaXRpb24oY29sdW1uTmFtZSwgZmlsdGVyRGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHRhYmxlQ29sdW1uID0gdGhpcy5jb2x1bW5EZWZpbml0aW9uKGNvbHVtbk5hbWUpO1xuICAgIHRhYmxlQ29sdW1uICYmIHRhYmxlQ29sdW1uLmFkZEZpbHRlckRlZmluaXRpb24oZmlsdGVyRGVmaW5pdGlvbik7XG4gIH1cblxuICBnZXRGaWx0ZXJlZFJlY29yZHMoKSB7XG4gICAgbGV0IGZpbHRlcmVkUmVjb3JkcyA9IHRoaXMudGFibGVSZWNvcmRzO1xuICAgIGlmICh0aGlzLnJlc3RyaWN0ZWRJZCkge1xuICAgICAgZmlsdGVyZWRSZWNvcmRzID0gZmlsdGVyZWRSZWNvcmRzLmZpbHRlcihyZWNvcmQgPT4gcmVjb3JkLnJlY29yZElkID09PSB0aGlzLnJlc3RyaWN0ZWRJZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmdsb2JhbEZpbHRlclN0cmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgZmlsdGVyZWRSZWNvcmRzID0gZmlsdGVyZWRSZWNvcmRzLmZpbHRlcihyZWNvcmQgPT4gcmVjb3JkLmhhc1BhdHRlcm4odGhpcy5nbG9iYWxGaWx0ZXJTdHJpbmdzLCB0aGlzLl90YWJsZUNvbHVtbk9iaikpO1xuICAgIH1cbiAgICBjb25zdCBjb2x1bW5GaWx0ZXJzID0gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLmZpbHRlcikubWFwKGNvbHVtbiA9PiBjb2x1bW4uZmlsdGVyKTtcbiAgICBpZiAoY29sdW1uRmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBmaWx0ZXJlZFJlY29yZHMgPSBmaWx0ZXJlZFJlY29yZHMuZmlsdGVyKHJlY29yZCA9PiByZWNvcmQuaGFzQ29uZGl0aW9uKGNvbHVtbkZpbHRlcnMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkUmVjb3JkcztcbiAgfVxuXG4gIGdldENvbHVtbkZpbHRlcihjb2x1bW5OYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0YWJsZUNvbHVtbiA9IHRoaXMuY29sdW1uRGVmaW5pdGlvbihjb2x1bW5OYW1lKTtcbiAgICByZXR1cm4gdGFibGVDb2x1bW4/LmZpbHRlciA/PyBudWxsO1xuICB9XG5cbiAgYWRkQ29sdW1uRmlsdGVyKGNvbHVtbk5hbWU6IHN0cmluZywgY29sdW1uVmFsdWVzOiBhbnkgfCBhbnlbXSwgb3BlcmF0b3I6IHN0cmluZyA9IG51bGwpIHtcbiAgICBjb25zdCB0YWJsZUNvbHVtbiA9IHRoaXMuY29sdW1uRGVmaW5pdGlvbihjb2x1bW5OYW1lKTtcbiAgICBjb25zdCBjb2x1bW5GaWx0ZXJEZWZpbml0aW9uID0gdGFibGVDb2x1bW4/LmZpbHRlckRlZmluaXRpb24gPz8gbnVsbDtcbiAgICBpZiAoIWNvbHVtbkZpbHRlckRlZmluaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGFibGVDb2x1bW4gJiYgdGFibGVDb2x1bW4uYWRkRmlsdGVyKGNvbHVtblZhbHVlcywgb3BlcmF0b3IpO1xuICAgIHRoaXMudXBkYXRlVmlzaWJsZVJlY29yZHMoKTtcbiAgfVxuXG4gIHJlbW92ZUNvbHVtbkZpbHRlcihjb2x1bW5OYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0YWJsZUNvbHVtbiA9IHRoaXMuY29sdW1uRGVmaW5pdGlvbihjb2x1bW5OYW1lKTtcbiAgICB0YWJsZUNvbHVtbiAmJiB0YWJsZUNvbHVtbi5yZW1vdmVGaWx0ZXIoKTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVSZWNvcmRzKCk7XG4gIH1cblxuICBnZXQgY3VycmVudEZpbHRlcigpIHtcbiAgICBjb25zdCBjb21wYWN0RmlsdGVyOiBhbnkgPSB7XG4gICAgICBzaW1wbGVGaWx0ZXJXb3JkczogdGhpcy5nbG9iYWxGaWx0ZXJTdHJpbmdzLFxuICAgICAgYWR2YW5jZWRGaWx0ZXI6IFtdLFxuICAgIH07XG4gICAgY29uc3QgY29sdW1uRmlsdGVycyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5maWx0ZXIpLm1hcChjb2x1bW4gPT4gY29sdW1uLmZpbHRlcik7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNvbHVtbkZpbHRlcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBjb2x1bW5GaWx0ZXIgPSBjb2x1bW5GaWx0ZXJzW2luZGV4XTtcbiAgICAgIGNvbXBhY3RGaWx0ZXIuYWR2YW5jZWRGaWx0ZXIucHVzaCh7XG4gICAgICAgIGZpZWxkQ29kZTogY29sdW1uRmlsdGVyPy5maWVsZENvZGUsXG4gICAgICAgIG9wZXJhdG9yOiBjb2x1bW5GaWx0ZXI/Lm9wZXJhdG9yLFxuICAgICAgICBmaWVsZFZhbHVlMTogY29sdW1uRmlsdGVyPy52YWx1ZXNbMF0sXG4gICAgICAgIGZpZWxkVmFsdWUyOiBjb2x1bW5GaWx0ZXI/LnZhbHVlc1sxXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY29tcGFjdEZpbHRlcjtcbiAgfVxuXG4gIC8vIE9yZGVuYW1pZW50byBkZSByZWdpc3Ryb3MgbG9jYWxcblxuICBzb3J0KGNvbHVtbk5hbWUsIGRpcmVjdGlvbikge1xuICAgIHRoaXMuc2V0UmVxdWlyZWRPcmRlcihjb2x1bW5OYW1lLCBkaXJlY3Rpb24pO1xuICAgIGlmICh0aGlzLmNsaWVudFBhZ2luZykge1xuICAgICAgdGhpcy5sb2NhbFNvcnREYXRhKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3RpZnlHZXREYXRhQWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0UmVxdWlyZWRPcmRlcihjb2x1bW5GaWVsZCwgZGlyZWN0aW9uID0gbnVsbCkge1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5zb3J0aW5nLCB7XG4gICAgICBjb2x1bW5OYW1lOiBjb2x1bW5GaWVsZCxcbiAgICAgIGRpcmVjdGlvbjogKGRpcmVjdGlvbiA9PT0gJ2FzY2VuZCcpID8gVEFCTEVfU09SVF9BU0NFTkRJTkcgOiBUQUJMRV9TT1JUX0RFU0NFTkRJTkcsXG4gICAgfSk7XG4gIH1cblxuICBsb2NhbFNvcnREYXRhKCkge1xuICAgIGlmICghdGhpcy5zb3J0aW5nLmNvbHVtbk5hbWUgfHwgIXRoaXMuc29ydGluZy5kaXJlY3Rpb24pIHsgcmV0dXJuOyB9XG4gICAgdGhpcy50YWJsZVJlY29yZHMuc29ydCgoYSwgYikgPT4gdGhpcy5yZWNvcmRDb21wYXJlKGEsIGIsIHRoaXMuc29ydGluZy5jb2x1bW5OYW1lLCB0aGlzLnNvcnRpbmcuZGlyZWN0aW9uKSk7XG4gICAgLy90aGlzLnVuU2VsZWN0QWxsKCk7XG4gICAgdGhpcy51cGRhdGVWaXNpYmxlUmVjb3JkcygpO1xuICB9XG5cbiAgcmVjb3JkQ29tcGFyZShyZWNvcmRBOiBUYWJsZVJlY29yZERhdGEsIHJlY29yZEI6IFRhYmxlUmVjb3JkRGF0YSwgY29sdW1uQ29tcGFyZSwgZGlyZWN0aW9uKSB7XG4gICAgY29uc3QgcmVjb3JkQVZhbHVlID0gcmVjb3JkQS5nZXRGaWVsZFZhbHVlKGNvbHVtbkNvbXBhcmUpO1xuICAgIGNvbnN0IHJlY29yZEJWYWx1ZSA9IHJlY29yZEIuZ2V0RmllbGRWYWx1ZShjb2x1bW5Db21wYXJlKTtcbiAgICBjb25zdCByZWNvcmRBQ29sdW1uID0gaXNOYU4ocmVjb3JkQVZhbHVlKSA/IHJlY29yZEFWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpIDogK3JlY29yZEFWYWx1ZTtcbiAgICBjb25zdCByZWNvcmRCQ29sdW1uID0gaXNOYU4ocmVjb3JkQlZhbHVlKSA/IHJlY29yZEJWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpIDogK3JlY29yZEJWYWx1ZTtcbiAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICBpZiAocmVjb3JkQUNvbHVtbiA8IHJlY29yZEJDb2x1bW4pIHtcbiAgICAgIHJlc3VsdCA9IC0xO1xuICAgIH0gZWxzZSBpZiAocmVjb3JkQUNvbHVtbiA+IHJlY29yZEJDb2x1bW4pIHtcbiAgICAgIHJlc3VsdCA9IDE7XG4gICAgfVxuICAgIHJldHVybiBkaXJlY3Rpb24gPT09IFRBQkxFX1NPUlRfQVNDRU5ESU5HID8gcmVzdWx0IDogLXJlc3VsdDtcbiAgfVxuXG4gIG92ZXJyaWRlIGZvcm1TdGF0ZUNoYW5nZUN1c3RvbVN1YnNjcmliZShmb3JtQ2hhbmdlU3ViamVjdCkge1xuICAgIHRoaXMuY29sdW1ucz8uZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgY29sdW1uPy5zdWJzY3JpYmVGb3JtU3RhdGVDaGFuZ2UoZm9ybUNoYW5nZVN1YmplY3QpO1xuICAgIH0pO1xuICAgIHRoaXMuX2FjdGlvbnM/LmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgIGFjdGlvbj8uc3Vic2NyaWJlRm9ybVN0YXRlQ2hhbmdlKGZvcm1DaGFuZ2VTdWJqZWN0KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -52,13 +52,13 @@ export class FieldComponent extends ElementComponent {
|
|
|
52
52
|
onChangeContent() { setTimeout(() => this.field?.notifyEditionFinish(), 50); }
|
|
53
53
|
onShowInfo(detail = null) { setTimeout(() => this.field?.notifyEditionDetailRequest(detail), 50); }
|
|
54
54
|
focus() { }
|
|
55
|
-
updateObject() { this.field?.setValue(this.value); }
|
|
55
|
+
updateObject(widgetUpdate = true) { this.field?.setValue(this.value, widgetUpdate); }
|
|
56
56
|
inputChanged() {
|
|
57
57
|
this.field?.setValue(this.value);
|
|
58
58
|
this.onChangeContent();
|
|
59
59
|
}
|
|
60
60
|
inputTyped() {
|
|
61
|
-
this.
|
|
61
|
+
this.updateObject(false);
|
|
62
62
|
this.onInputChange();
|
|
63
63
|
}
|
|
64
64
|
numberInputValidation(event) {
|
|
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImpor
|
|
|
77
77
|
}], propDecorators: { field: [{
|
|
78
78
|
type: Input
|
|
79
79
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7O0FBRTdELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7QUFLdEIsTUFBTSxPQUFPLGNBQWUsU0FBUSxnQkFBZ0I7SUFKcEQ7O1FBS0Usb0NBQW9DO1FBQ3BDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFrQlosVUFBSyxHQUEyQixJQUFJLENBQUM7S0F3RC9DO0lBdERDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU87U0FBRTtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQzFFLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25ELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sYUFBYSxHQUFHLE9B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dEM7OEJBeUJVLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3Jtcy9maWVsZCc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQvZWxlbWVudC5jb21wb25lbnQnXG5cbmNvbnN0IFZBTFVFID0gJ3ZhbHVlJztcbmNvbnN0IEZPQ1VTID0gJ2ZvY3VzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWVsZCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRDb21wb25lbnQgZXh0ZW5kcyBFbGVtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gQXRyaWJ1dG9zIG9idGVuaWRvcyBlc3TDoXRpY2FtZW50ZVxuICBjb2RlOiBzdHJpbmcgPSAnJztcbiAgdmFsdWU6IGFueTtcbiAgaW5mbzogc3RyaW5nID0gJyc7XG4gIGFsaWdubWVudDogc3RyaW5nID0gJyc7XG4gIHRvb2x0aXA6IHN0cmluZyA9ICcnO1xuXG4gIC8vIEF0cmlidXRvcyBhY3R1YWxpemFkb3MgcG9yIHN1YnNjcmlwY2nDs25cbiAgbWF4TGVuZ3RoOiBhbnk7XG4gIG1pblZhbHVlOiBhbnk7XG4gIG1heFZhbHVlOiBhbnk7XG4gIG9uVmFsaWRhdGlvbjogYW55O1xuICBjYXB0dXJlVHlwZTogYW55O1xuICB0aXRsZTogYW55O1xuICB0eXBlOiBhbnk7XG4gIHZpc2libGVMYWJlbDogYW55O1xuICByZXF1aXJlZDogYW55O1xuICBvcHRpb25zOiBhbnk7XG5cbiAgZXJyb3JUeXBlOiBhbnk7XG4gIGVycm9yQ29kZTogYW55O1xuICBlcnJvck1lc3NhZ2U6IGFueTtcblxuICBASW5wdXQoKSBmaWVsZDogRmllbGREZXNjcmlwdG9yIHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmZpZWxkKSB7IHJldHVybjsgfVxuICAgIHRoaXMuZm9ybUNvbmZpZyA9IHRoaXMuZmllbGQ/Ll9mb3JtQ29uZmlnO1xuICAgIGNvbnN0IG1hcHBpbmcgPSBPYmplY3QuZW50cmllcyh0aGlzLmZvcm1Db25maWc/LmZpZWxkUHJvcGFnYXRlQXR0cmlidXRlcyk7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHBpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBmaWVsZEF0dHIgPSBtYXBwaW5nW2luZGV4XT8uWzBdO1xuICAgICAgY29uc3QgY29tcG9uZW50QXR0ciA9IG1hcHBpbmdbaW5kZXhdPy5bMV0/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgICBpZiAoY29tcG9uZW50QXR0cikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZmllbGQ/LltmaWVsZEF0dHJdO1xuICAgICAgICB0aGlzLmRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU3Vic2NyaXBjacOzbiBhIGNhbWJpb3MgZW4gYXRyaWJ1dG9zXG4gICAgdGhpcy5maWVsZD8uYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWU6IGNvbXBvbmVudEF0dHIsIHZhbHVlIH0gPSBldmVudDtcbiAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoY29tcG9uZW50QXR0ciwgdmFsdWUpO1xuICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIHZhbHVlKTtcbiAgICB9KTtcbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBvdmVycmlkZSBkZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICBpZiAoYXR0cmlidXRlID09PSBWQUxVRSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlID09PSBGT0NVUykge1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzW2F0dHJpYnV0ZV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVWYWx1ZSgpIHsgdGhpcy52YWx1ZSA9IHRoaXMuZmllbGQ/LnZhbHVlOyB9XG4gIG9uSW5wdXRDaGFuZ2UoKSB7IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWVsZD8ubm90aWZ5RWRpdGlvblBhcnRpYWwoKSwgNTApOyB9XG4gIG9uQ2hhbmdlQ29udGVudCgpIHsgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkPy5ub3RpZnlFZGl0aW9uRmluaXNoKCksIDUwKTsgfVxuICBvblNob3dJbmZvKGRldGFpbCA9IG51bGwpIHsgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkPy5ub3RpZnlFZGl0aW9uRGV0YWlsUmVxdWVzdChkZXRhaWwpLCA1MCk7IH1cblxuICBmb2N1cygpIHsgfVxuICB1cGRhdGVPYmplY3Qod2lkZ2V0VXBkYXRlID0gdHJ1ZSkgeyB0aGlzLmZpZWxkPy5zZXRWYWx1ZSh0aGlzLnZhbHVlLCB3aWRnZXRVcGRhdGUpOyB9XG5cbiAgaW5wdXRDaGFuZ2VkKCkge1xuICAgIHRoaXMuZmllbGQ/LnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2VDb250ZW50KCk7XG4gIH1cblxuICBpbnB1dFR5cGVkKCkge1xuICAgIHRoaXMudXBkYXRlT2JqZWN0KGZhbHNlKTtcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgfVxuXG4gIG51bWJlcklucHV0VmFsaWRhdGlvbihldmVudCkge1xuICAgIGNvbnN0IGsgPSBldmVudC5jaGFyQ29kZTtcbiAgICByZXR1cm4gKGsgPiA0NyAmJiBrIDwgNTgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { ElementComponent } from '../layout/element.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
const changeViewAttributes = ['visibleRecords', 'currentPage', 'recordsPerPage'];
|
|
5
4
|
export class LibTableComponent extends ElementComponent {
|
|
6
5
|
constructor() {
|
|
7
6
|
super(...arguments);
|
|
8
|
-
this.currentPage = 1;
|
|
9
|
-
this.globalSearch = false;
|
|
10
7
|
this.globalFilterString = '';
|
|
11
|
-
// visibleRecords: any[] = [];
|
|
12
|
-
this.selectedRecords = [];
|
|
13
|
-
this.totalRecordsNumber = 0;
|
|
14
|
-
this.allSelected = false;
|
|
15
|
-
this.layout = '';
|
|
16
8
|
this.loaded = false;
|
|
17
9
|
this.selectable = false;
|
|
18
10
|
this.hasActions = false;
|
|
@@ -32,7 +24,7 @@ export class LibTableComponent extends ElementComponent {
|
|
|
32
24
|
this.globalActions = this.table?.getActions(this.formConfig?.tableActions.global);
|
|
33
25
|
this.selectionActions = this.table?.getActions(this.formConfig?.tableActions.selection);
|
|
34
26
|
// Inicialización de campos mapeados del objeto
|
|
35
|
-
const mapping = Object.entries(this.formConfig?.
|
|
27
|
+
const mapping = Object.entries(this.formConfig?.tablePropagationAttributes);
|
|
36
28
|
for (let index = 0; index < mapping.length; index++) {
|
|
37
29
|
const tableAttr = mapping[index]?.[0];
|
|
38
30
|
const componentAttr = mapping[index]?.[1]?.toString() ?? '';
|
|
@@ -46,30 +38,14 @@ export class LibTableComponent extends ElementComponent {
|
|
|
46
38
|
this.defaultProcessAttributeChange(attrName, value);
|
|
47
39
|
this.customProcessAttributeChange(attrName, value);
|
|
48
40
|
});
|
|
49
|
-
// Suscripción a los cambios de atributos de las columnas
|
|
50
|
-
// this.table.columns.forEach(column => {
|
|
51
|
-
// mapping = this.formConfig?.tableColumnPropagateAttributes;
|
|
52
|
-
// for (let index = 0; index < mapping.length; index++) {
|
|
53
|
-
// const attrName = mapping[index].toString();
|
|
54
|
-
// const attributeValue = column?.[attrName];
|
|
55
|
-
// this.defaultColumnAttributeChange(column, attrName, attributeValue);
|
|
56
|
-
// }
|
|
57
|
-
// column?.attributeChange.subscribe(event => {
|
|
58
|
-
// const { name: attrName, value } = event;
|
|
59
|
-
// this.defaultColumnAttributeChange(column, attrName, value);
|
|
60
|
-
// });
|
|
61
|
-
// });
|
|
62
41
|
this.start();
|
|
63
42
|
}
|
|
64
|
-
// defaultColumnAttributeChange(column: any, attribute: string, value?: any) {
|
|
65
|
-
// attribute && (column[attribute] = value);
|
|
66
|
-
// }
|
|
67
43
|
updateTableData() { }
|
|
68
44
|
tableGlobalAction(actionCode) { this.table?.notifyGlobalAction(actionCode); }
|
|
69
45
|
tableSelectionAction(actionCode) { this.table?.notifySelectionAction(actionCode); }
|
|
70
46
|
tableActionSelected(actionEvent) { this.table?.notifyInlineAction(actionEvent); }
|
|
71
47
|
tableSelectionToggle(recordId) { this.table?.notifyRecordSelection(recordId); }
|
|
72
|
-
toggleSelectAll() { return (this.allSelected) ? this.table?.unSelectAll() : this.table?.selectAll(); }
|
|
48
|
+
toggleSelectAll() { return (this.table?.allSelected) ? this.table?.unSelectAll() : this.table?.selectAll(); }
|
|
73
49
|
globalFilterCompleted() { this.changePage(1); }
|
|
74
50
|
changePage(requestedPage) { this.table?.changePage(requestedPage); }
|
|
75
51
|
tableColumnSort(columnName, direction = null) { this.table?.sort(columnName, direction ?? 'ascend'); }
|
|
@@ -114,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImpor
|
|
|
114
90
|
}], waiting: [{
|
|
115
91
|
type: Input
|
|
116
92
|
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUUvRCxNQUFNLG9CQUFvQixHQUFHLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFRakYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGdCQUFnQjtJQU52RDs7UUFVRSxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5Qix1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFDaEMsOEJBQThCO1FBQzlCLG9CQUFlLEdBQVUsRUFBRSxDQUFDO1FBRTVCLHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUMvQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBR3BCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFLVixVQUFLLEdBQXVCLElBQUksQ0FBQztRQUNqQyxtQkFBYyxHQUFzQixFQUFFLENBQUM7UUFDdkMsWUFBTyxHQUFZLEtBQUssQ0FBQztLQStFbkM7SUE3RUMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTztTQUFFO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUM7UUFD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Q0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbEQ7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdkQ7SUFDSCxDQUFDOzs4R0F0R1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsMEpBSmxCLDJCQUEyQjsyRkFJMUIsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBd0JVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlUmVjb3JkRGF0YSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvcm93LWRhdGEnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuaW1wb3J0IHsgUmVjb3JkVGFibGUsIFRhYmxlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlJztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQvZWxlbWVudC5jb21wb25lbnQnO1xuXG5jb25zdCBjaGFuZ2VWaWV3QXR0cmlidXRlcyA9IFsndmlzaWJsZVJlY29yZHMnLCAnY3VycmVudFBhZ2UnLCAncmVjb3Jkc1BlclBhZ2UnXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBMaWJUYWJsZUNvbXBvbmVudCBleHRlbmRzIEVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBBdHJpYnV0b3Mgc2luY3Jvbml6YWRvcyBkZWwgb2JqZXRvXG4gIGNvZGU6IGFueTtcbiAgY29sdW1uczogYW55O1xuICBjdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgZ2xvYmFsU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG4gIGdsb2JhbEZpbHRlclN0cmluZzogc3RyaW5nID0gJyc7XG4gIC8vIHZpc2libGVSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZFJlY29yZHM6IGFueVtdID0gW107XG4gIHJlY29yZHNQZXJQYWdlOiBhbnk7XG4gIHRvdGFsUmVjb3Jkc051bWJlcjogbnVtYmVyID0gMDtcbiAgYWxsU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbGF5b3V0OiBzdHJpbmcgPSAnJztcblxuICB0YWJsZUZpZWxkU3R5bGVzOiBhbnk7XG4gIGxvYWRlZCA9IGZhbHNlO1xuICBzZWxlY3RhYmxlID0gZmFsc2U7XG4gIGhhc0FjdGlvbnMgPSBmYWxzZTtcbiAgaW5saW5lQWN0aW9uczogYW55O1xuICBnbG9iYWxBY3Rpb25zOiBhbnk7XG4gIHNlbGVjdGlvbkFjdGlvbnM6IGFueTtcblxuICBASW5wdXQoKSB0YWJsZTogUmVjb3JkVGFibGUgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgdmlzaWJsZVJlY29yZHM6IFRhYmxlUmVjb3JkRGF0YVtdID0gW107XG4gIEBJbnB1dCgpIHdhaXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMudGFibGUpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy50YWJsZT8uX2Zvcm1Db25maWc7XG4gICAgdGhpcy50YWJsZUZpZWxkU3R5bGVzID0gdGhpcy5mb3JtQ29uZmlnPy50YWJsZUZpZWxkU3R5bGVzO1xuICAgIHRoaXMuc2VsZWN0YWJsZSA9IHRoaXMudGFibGU/LnNlbGVjdGFibGU7XG4gICAgdGhpcy5oYXNBY3Rpb25zID0gdGhpcy50YWJsZT8uaGFzQWN0aW9ucygpO1xuICAgIHRoaXMuaW5saW5lQWN0aW9ucyA9IHRoaXMudGFibGU/LmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnPy50YWJsZUFjdGlvbnMuaW5saW5lKTtcbiAgICB0aGlzLmdsb2JhbEFjdGlvbnMgPSB0aGlzLnRhYmxlPy5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZz8udGFibGVBY3Rpb25zLmdsb2JhbCk7XG4gICAgdGhpcy5zZWxlY3Rpb25BY3Rpb25zID0gdGhpcy50YWJsZT8uZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWc/LnRhYmxlQWN0aW9ucy5zZWxlY3Rpb24pO1xuICAgIC8vIEluaWNpYWxpemFjacOzbiBkZSBjYW1wb3MgbWFwZWFkb3MgZGVsIG9iamV0b1xuICAgIGNvbnN0IG1hcHBpbmcgPSBPYmplY3QuZW50cmllcyh0aGlzLmZvcm1Db25maWc/LmFjdGlvblByb3BhZ2F0ZUF0dHJpYnV0ZXMpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgdGFibGVBdHRyID0gbWFwcGluZ1tpbmRleF0/LlswXTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEF0dHIgPSBtYXBwaW5nW2luZGV4XT8uWzFdPy50b1N0cmluZygpID8/ICcnO1xuICAgICAgY29uc3QgYXR0cmlidXRlVmFsdWUgPSB0aGlzLnRhYmxlPy5bdGFibGVBdHRyXTtcbiAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoY29tcG9uZW50QXR0ciwgYXR0cmlidXRlVmFsdWUpO1xuICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIGF0dHJpYnV0ZVZhbHVlKTtcbiAgICB9XG4gICAgLy8gU3Vic2NyaXBjacOzbiBhIGNhbWJpb3MgZW4gYXRyaWJ1dG9zXG4gICAgdGhpcy50YWJsZT8uYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWU6IGF0dHJOYW1lLCB2YWx1ZSB9ID0gZXZlbnQ7XG4gICAgICB0aGlzLmRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCB2YWx1ZSk7XG4gICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIHZhbHVlKTtcbiAgICB9KTtcbiAgICAvLyBTdXNjcmlwY2nDs24gYSBsb3MgY2FtYmlvcyBkZSBhdHJpYnV0b3MgZGUgbGFzIGNvbHVtbmFzXG4gICAgLy8gdGhpcy50YWJsZS5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAvLyAgIG1hcHBpbmcgPSB0aGlzLmZvcm1Db25maWc/LnRhYmxlQ29sdW1uUHJvcGFnYXRlQXR0cmlidXRlcztcbiAgICAvLyAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgIC8vICAgICBjb25zdCBhdHRyTmFtZSA9IG1hcHBpbmdbaW5kZXhdLnRvU3RyaW5nKCk7XG4gICAgLy8gICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gY29sdW1uPy5bYXR0ck5hbWVdO1xuICAgIC8vICAgICB0aGlzLmRlZmF1bHRDb2x1bW5BdHRyaWJ1dGVDaGFuZ2UoY29sdW1uLCBhdHRyTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgIC8vICAgfVxuICAgIC8vICAgY29sdW1uPy5hdHRyaWJ1dGVDaGFuZ2Uuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAvLyAgICAgY29uc3QgeyBuYW1lOiBhdHRyTmFtZSwgdmFsdWUgfSA9IGV2ZW50O1xuICAgIC8vICAgICB0aGlzLmRlZmF1bHRDb2x1bW5BdHRyaWJ1dGVDaGFuZ2UoY29sdW1uLCBhdHRyTmFtZSwgdmFsdWUpO1xuICAgIC8vICAgfSk7XG4gICAgLy8gfSk7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgLy8gZGVmYXVsdENvbHVtbkF0dHJpYnV0ZUNoYW5nZShjb2x1bW46IGFueSwgYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlPzogYW55KSB7XG4gIC8vICAgYXR0cmlidXRlICYmIChjb2x1bW5bYXR0cmlidXRlXSA9IHZhbHVlKTtcbiAgLy8gfVxuXG4gIHVwZGF0ZVRhYmxlRGF0YSgpIHsgfVxuICB0YWJsZUdsb2JhbEFjdGlvbihhY3Rpb25Db2RlOiBzdHJpbmcpIHsgdGhpcy50YWJsZT8ubm90aWZ5R2xvYmFsQWN0aW9uKGFjdGlvbkNvZGUpOyB9XG4gIHRhYmxlU2VsZWN0aW9uQWN0aW9uKGFjdGlvbkNvZGU6IHN0cmluZykgeyB0aGlzLnRhYmxlPy5ub3RpZnlTZWxlY3Rpb25BY3Rpb24oYWN0aW9uQ29kZSk7IH1cbiAgdGFibGVBY3Rpb25TZWxlY3RlZChhY3Rpb25FdmVudDogVGFibGVBY3Rpb25FdmVudCkgeyB0aGlzLnRhYmxlPy5ub3RpZnlJbmxpbmVBY3Rpb24oYWN0aW9uRXZlbnQpOyB9XG4gIHRhYmxlU2VsZWN0aW9uVG9nZ2xlKHJlY29yZElkOiBhbnkpIHsgdGhpcy50YWJsZT8ubm90aWZ5UmVjb3JkU2VsZWN0aW9uKHJlY29yZElkKTsgfVxuICB0b2dnbGVTZWxlY3RBbGwoKSB7IHJldHVybiAodGhpcy5hbGxTZWxlY3RlZCkgPyB0aGlzLnRhYmxlPy51blNlbGVjdEFsbCgpIDogdGhpcy50YWJsZT8uc2VsZWN0QWxsKCk7IH1cbiAgZ2xvYmFsRmlsdGVyQ29tcGxldGVkKCkgeyB0aGlzLmNoYW5nZVBhZ2UoMSk7IH1cbiAgY2hhbmdlUGFnZShyZXF1ZXN0ZWRQYWdlOiBudW1iZXIpIHsgdGhpcy50YWJsZT8uY2hhbmdlUGFnZShyZXF1ZXN0ZWRQYWdlKTsgfVxuICB0YWJsZUNvbHVtblNvcnQoY29sdW1uTmFtZTogc3RyaW5nLCBkaXJlY3Rpb24gPSBudWxsKSB7IHRoaXMudGFibGU/LnNvcnQoY29sdW1uTmFtZSwgZGlyZWN0aW9uID8/ICdhc2NlbmQnKTsgfVxuICBnbG9iYWxGaWx0ZXJDaGFuZ2VkKCkgeyB0aGlzLnRhYmxlPy5zZXRHbG9iYWxGaWx0ZXJTdHJpbmcodGhpcy5nbG9iYWxGaWx0ZXJTdHJpbmc/LnRyaW0oKSA/PyAnJywgZmFsc2UpOyB9XG5cbiAgb3ZlcnJpZGUgZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlPzogYW55KSB7XG4gICAgaWYgKCFhdHRyaWJ1dGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGlmIChhdHRyaWJ1dGUgPT09ICd2aXNpYmxlUmVjb3JkcycpIHtcbiAgICAgICAgdGhpcy51cGRhdGVUYWJsZURhdGEoKTtcbiAgICAgIH1cbiAgICAgIHRoaXNbYXR0cmlidXRlXSA9IHZhbHVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZmlsdGVySGFzQ2hhbmdlZChjb2x1bW4sIHZhbHVlcykge1xuICAgIGlmICghdmFsdWVzIHx8IHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudGFibGU/LnJlbW92ZUNvbHVtbkZpbHRlcihjb2x1bW4uZmllbGRDb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YWJsZT8uYWRkQ29sdW1uRmlsdGVyKGNvbHVtbi5maWVsZENvZGUsIHZhbHVlcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQVEvRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZ0JBQWdCO0lBTnZEOztRQVNFLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUdoQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBS1YsVUFBSyxHQUF1QixJQUFJLENBQUM7UUFDakMsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO1FBQ3ZDLFlBQU8sR0FBWSxLQUFLLENBQUM7S0E4RG5DO0lBNURDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU87U0FBRTtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDO1FBQzFELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFVB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S0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlUmVjb3JkRGF0YSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvcm93LWRhdGEnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuaW1wb3J0IHsgUmVjb3JkVGFibGUsIFRhYmxlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlJztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQvZWxlbWVudC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIExpYlRhYmxlQ29tcG9uZW50IGV4dGVuZHMgRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIEF0cmlidXRvcyBzaW5jcm9uaXphZG9zIGRlbCBvYmpldG9cbiAgY29kZTogYW55O1xuICBnbG9iYWxGaWx0ZXJTdHJpbmc6IHN0cmluZyA9ICcnO1xuXG4gIHRhYmxlRmllbGRTdHlsZXM6IGFueTtcbiAgbG9hZGVkID0gZmFsc2U7XG4gIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgaGFzQWN0aW9ucyA9IGZhbHNlO1xuICBpbmxpbmVBY3Rpb25zOiBhbnk7XG4gIGdsb2JhbEFjdGlvbnM6IGFueTtcbiAgc2VsZWN0aW9uQWN0aW9uczogYW55O1xuXG4gIEBJbnB1dCgpIHRhYmxlOiBSZWNvcmRUYWJsZSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB2aXNpYmxlUmVjb3JkczogVGFibGVSZWNvcmREYXRhW10gPSBbXTtcbiAgQElucHV0KCkgd2FpdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy50YWJsZSkgeyByZXR1cm47IH1cbiAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLnRhYmxlPy5fZm9ybUNvbmZpZztcbiAgICB0aGlzLnRhYmxlRmllbGRTdHlsZXMgPSB0aGlzLmZvcm1Db25maWc/LnRhYmxlRmllbGRTdHlsZXM7XG4gICAgdGhpcy5zZWxlY3RhYmxlID0gdGhpcy50YWJsZT8uc2VsZWN0YWJsZTtcbiAgICB0aGlzLmhhc0FjdGlvbnMgPSB0aGlzLnRhYmxlPy5oYXNBY3Rpb25zKCk7XG4gICAgdGhpcy5pbmxpbmVBY3Rpb25zID0gdGhpcy50YWJsZT8uZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWc/LnRhYmxlQWN0aW9ucy5pbmxpbmUpO1xuICAgIHRoaXMuZ2xvYmFsQWN0aW9ucyA9IHRoaXMudGFibGU/LmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnPy50YWJsZUFjdGlvbnMuZ2xvYmFsKTtcbiAgICB0aGlzLnNlbGVjdGlvbkFjdGlvbnMgPSB0aGlzLnRhYmxlPy5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZz8udGFibGVBY3Rpb25zLnNlbGVjdGlvbik7XG4gICAgLy8gSW5pY2lhbGl6YWNpw7NuIGRlIGNhbXBvcyBtYXBlYWRvcyBkZWwgb2JqZXRvXG4gICAgY29uc3QgbWFwcGluZyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuZm9ybUNvbmZpZz8udGFibGVQcm9wYWdhdGlvbkF0dHJpYnV0ZXMpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgdGFibGVBdHRyID0gbWFwcGluZ1tpbmRleF0/LlswXTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEF0dHIgPSBtYXBwaW5nW2luZGV4XT8uWzFdPy50b1N0cmluZygpID8/ICcnO1xuICAgICAgY29uc3QgYXR0cmlidXRlVmFsdWUgPSB0aGlzLnRhYmxlPy5bdGFibGVBdHRyXTtcbiAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoY29tcG9uZW50QXR0ciwgYXR0cmlidXRlVmFsdWUpO1xuICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIGF0dHJpYnV0ZVZhbHVlKTtcbiAgICB9XG4gICAgLy8gU3Vic2NyaXBjacOzbiBhIGNhbWJpb3MgZW4gYXRyaWJ1dG9zXG4gICAgdGhpcy50YWJsZT8uYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWU6IGF0dHJOYW1lLCB2YWx1ZSB9ID0gZXZlbnQ7XG4gICAgICB0aGlzLmRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCB2YWx1ZSk7XG4gICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIHZhbHVlKTtcbiAgICB9KTtcbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICB1cGRhdGVUYWJsZURhdGEoKSB7IH1cbiAgdGFibGVHbG9iYWxBY3Rpb24oYWN0aW9uQ29kZTogc3RyaW5nKSB7IHRoaXMudGFibGU/Lm5vdGlmeUdsb2JhbEFjdGlvbihhY3Rpb25Db2RlKTsgfVxuICB0YWJsZVNlbGVjdGlvbkFjdGlvbihhY3Rpb25Db2RlOiBzdHJpbmcpIHsgdGhpcy50YWJsZT8ubm90aWZ5U2VsZWN0aW9uQWN0aW9uKGFjdGlvbkNvZGUpOyB9XG4gIHRhYmxlQWN0aW9uU2VsZWN0ZWQoYWN0aW9uRXZlbnQ6IFRhYmxlQWN0aW9uRXZlbnQpIHsgdGhpcy50YWJsZT8ubm90aWZ5SW5saW5lQWN0aW9uKGFjdGlvbkV2ZW50KTsgfVxuICB0YWJsZVNlbGVjdGlvblRvZ2dsZShyZWNvcmRJZDogYW55KSB7IHRoaXMudGFibGU/Lm5vdGlmeVJlY29yZFNlbGVjdGlvbihyZWNvcmRJZCk7IH1cbiAgdG9nZ2xlU2VsZWN0QWxsKCkgeyByZXR1cm4gKHRoaXMudGFibGU/LmFsbFNlbGVjdGVkKSA/IHRoaXMudGFibGU/LnVuU2VsZWN0QWxsKCkgOiB0aGlzLnRhYmxlPy5zZWxlY3RBbGwoKTsgfVxuICBnbG9iYWxGaWx0ZXJDb21wbGV0ZWQoKSB7IHRoaXMuY2hhbmdlUGFnZSgxKTsgfVxuICBjaGFuZ2VQYWdlKHJlcXVlc3RlZFBhZ2U6IG51bWJlcikgeyB0aGlzLnRhYmxlPy5jaGFuZ2VQYWdlKHJlcXVlc3RlZFBhZ2UpOyB9XG4gIHRhYmxlQ29sdW1uU29ydChjb2x1bW5OYW1lOiBzdHJpbmcsIGRpcmVjdGlvbiA9IG51bGwpIHsgdGhpcy50YWJsZT8uc29ydChjb2x1bW5OYW1lLCBkaXJlY3Rpb24gPz8gJ2FzY2VuZCcpOyB9XG4gIGdsb2JhbEZpbHRlckNoYW5nZWQoKSB7IHRoaXMudGFibGU/LnNldEdsb2JhbEZpbHRlclN0cmluZyh0aGlzLmdsb2JhbEZpbHRlclN0cmluZz8udHJpbSgpID8/ICcnLCBmYWxzZSk7IH1cblxuICBvdmVycmlkZSBkZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICBpZiAoIWF0dHJpYnV0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgaWYgKGF0dHJpYnV0ZSA9PT0gJ3Zpc2libGVSZWNvcmRzJykge1xuICAgICAgICB0aGlzLnVwZGF0ZVRhYmxlRGF0YSgpO1xuICAgICAgfVxuICAgICAgdGhpc1thdHRyaWJ1dGVdID0gdmFsdWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJIYXNDaGFuZ2VkKGNvbHVtbiwgdmFsdWVzKSB7XG4gICAgaWYgKCF2YWx1ZXMgfHwgdmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy50YWJsZT8ucmVtb3ZlQ29sdW1uRmlsdGVyKGNvbHVtbi5maWVsZENvZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhYmxlPy5hZGRDb2x1bW5GaWx0ZXIoY29sdW1uLmZpZWxkQ29kZSwgdmFsdWVzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|