cps-ui-kit 0.155.0 → 0.156.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/cps-table/cps-table.component.mjs +73 -36
- package/esm2020/lib/components/cps-table/directives/internal/table-unsort.directive.mjs +148 -23
- package/esm2020/lib/components/cps-tree-table/cps-tree-table.component.mjs +39 -82
- package/esm2020/lib/components/cps-tree-table/directives/internal/tree-table-unsort.directive.mjs +188 -11
- package/fesm2015/cps-ui-kit.mjs +445 -149
- package/fesm2015/cps-ui-kit.mjs.map +1 -1
- package/fesm2020/cps-ui-kit.mjs +443 -148
- package/fesm2020/cps-ui-kit.mjs.map +1 -1
- package/lib/components/cps-table/cps-table.component.d.ts +37 -16
- package/lib/components/cps-table/directives/internal/table-unsort.directive.d.ts +6 -2
- package/lib/components/cps-tree-table/cps-tree-table.component.d.ts +13 -12
- package/lib/components/cps-tree-table/directives/internal/tree-table-unsort.directive.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,29 +1,26 @@
|
|
|
1
1
|
import { Directive, Host, Self, Optional } from '@angular/core';
|
|
2
|
+
import { ObjectUtils } from 'primeng/utils';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "primeng/table";
|
|
4
5
|
export class TableUnsortDirective {
|
|
5
6
|
constructor(pTable) {
|
|
6
7
|
this.pTable = pTable;
|
|
7
|
-
this.
|
|
8
|
-
|
|
9
|
-
if (val != null && val.length > 0 && !this.defaultSortOrderInitialized) {
|
|
10
|
-
let i = 0;
|
|
11
|
-
val.forEach((v) => {
|
|
12
|
-
v._defaultSortOrder = i++;
|
|
13
|
-
});
|
|
14
|
-
this.defaultSortOrderInitialized = true;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
8
|
+
this.resetSorting = false;
|
|
9
|
+
this.sortIndices = [];
|
|
17
10
|
pTable.sort = (event) => {
|
|
18
11
|
if (pTable.sortMode === 'single') {
|
|
19
12
|
if (pTable.sortField === event.field && pTable.sortOrder === -1) {
|
|
20
|
-
|
|
13
|
+
pTable._sortOrder = pTable.defaultSortOrder;
|
|
14
|
+
pTable._sortField = null;
|
|
15
|
+
this.resetSorting = true;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
pTable._sortOrder =
|
|
19
|
+
pTable.sortField === event.field
|
|
20
|
+
? pTable.sortOrder * -1
|
|
21
|
+
: pTable.defaultSortOrder;
|
|
22
|
+
pTable._sortField = event.field;
|
|
21
23
|
}
|
|
22
|
-
pTable._sortOrder =
|
|
23
|
-
pTable.sortField === event.field
|
|
24
|
-
? pTable.sortOrder * -1
|
|
25
|
-
: pTable.defaultSortOrder;
|
|
26
|
-
pTable._sortField = event.field;
|
|
27
24
|
pTable.sortSingle();
|
|
28
25
|
}
|
|
29
26
|
if (pTable.sortMode === 'multiple') {
|
|
@@ -40,10 +37,8 @@ export class TableUnsortDirective {
|
|
|
40
37
|
pTable.multiSortMeta.push(sortMeta);
|
|
41
38
|
}
|
|
42
39
|
if (pTable._multiSortMeta?.length === 0) {
|
|
43
|
-
pTable.multiSortMeta
|
|
44
|
-
|
|
45
|
-
order: pTable.defaultSortOrder
|
|
46
|
-
});
|
|
40
|
+
pTable.multiSortMeta = null;
|
|
41
|
+
this.resetSorting = true;
|
|
47
42
|
resetIndex = true;
|
|
48
43
|
}
|
|
49
44
|
}
|
|
@@ -64,16 +59,146 @@ export class TableUnsortDirective {
|
|
|
64
59
|
pTable.saveState();
|
|
65
60
|
}
|
|
66
61
|
pTable.anchorRowIndex = 0;
|
|
62
|
+
this.resetSorting = false;
|
|
63
|
+
};
|
|
64
|
+
pTable.sortSingle = () => {
|
|
65
|
+
const field = pTable.sortField || pTable.groupRowsBy;
|
|
66
|
+
const order = pTable.sortField
|
|
67
|
+
? pTable.sortOrder
|
|
68
|
+
: pTable.groupRowsByOrder;
|
|
69
|
+
if (pTable.groupRowsBy &&
|
|
70
|
+
pTable.sortField &&
|
|
71
|
+
pTable.groupRowsBy !== pTable.sortField) {
|
|
72
|
+
pTable._multiSortMeta = [
|
|
73
|
+
pTable.getGroupRowsMeta(),
|
|
74
|
+
{ field: pTable.sortField, order: pTable.sortOrder }
|
|
75
|
+
];
|
|
76
|
+
pTable.sortMultiple();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (order && (field || this.resetSorting)) {
|
|
80
|
+
if (pTable.restoringSort) {
|
|
81
|
+
pTable.restoringSort = false;
|
|
82
|
+
}
|
|
83
|
+
if (pTable.lazy) {
|
|
84
|
+
pTable.onLazyLoad.emit(pTable.createLazyLoadMetadata());
|
|
85
|
+
}
|
|
86
|
+
else if (pTable.value) {
|
|
87
|
+
if (pTable.customSort) {
|
|
88
|
+
pTable.sortFunction.emit({
|
|
89
|
+
data: pTable.value,
|
|
90
|
+
mode: pTable.sortMode,
|
|
91
|
+
field,
|
|
92
|
+
order
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this._sortData(field, order);
|
|
97
|
+
}
|
|
98
|
+
if (pTable.hasFilter()) {
|
|
99
|
+
pTable._filter();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const sortMeta = {
|
|
103
|
+
field,
|
|
104
|
+
order
|
|
105
|
+
};
|
|
106
|
+
pTable.onSort.emit(sortMeta);
|
|
107
|
+
pTable.tableService.onSort(sortMeta);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
pTable.sortMultiple = () => {
|
|
111
|
+
if (pTable.groupRowsBy) {
|
|
112
|
+
if (!pTable._multiSortMeta)
|
|
113
|
+
pTable._multiSortMeta = [pTable.getGroupRowsMeta()];
|
|
114
|
+
else if (pTable.multiSortMeta[0].field !== pTable.groupRowsBy)
|
|
115
|
+
pTable._multiSortMeta = [
|
|
116
|
+
pTable.getGroupRowsMeta(),
|
|
117
|
+
...pTable._multiSortMeta
|
|
118
|
+
];
|
|
119
|
+
}
|
|
120
|
+
if ((pTable.multiSortMeta && pTable.multiSortMeta.length > 0) ||
|
|
121
|
+
this.resetSorting) {
|
|
122
|
+
if (pTable.lazy) {
|
|
123
|
+
pTable.onLazyLoad.emit(pTable.createLazyLoadMetadata());
|
|
124
|
+
}
|
|
125
|
+
else if (pTable.value) {
|
|
126
|
+
if (pTable.customSort) {
|
|
127
|
+
pTable.sortFunction.emit({
|
|
128
|
+
data: pTable.value,
|
|
129
|
+
mode: pTable.sortMode,
|
|
130
|
+
multiSortMeta: pTable.multiSortMeta
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this._sortData();
|
|
135
|
+
}
|
|
136
|
+
if (pTable.hasFilter()) {
|
|
137
|
+
pTable._filter();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
pTable.onSort.emit({
|
|
141
|
+
multisortmeta: pTable.multiSortMeta
|
|
142
|
+
});
|
|
143
|
+
pTable.tableService.onSort(pTable.multiSortMeta);
|
|
144
|
+
}
|
|
67
145
|
};
|
|
68
146
|
}
|
|
147
|
+
resetDefaultSortOrder() {
|
|
148
|
+
this.sortIndices = [];
|
|
149
|
+
}
|
|
150
|
+
_sortData(field, order) {
|
|
151
|
+
// restore default sort order
|
|
152
|
+
if (this.resetSorting && this.sortIndices.length > 0) {
|
|
153
|
+
this.pTable._value = this.sortIndices.map((index) => this.pTable._value[index]);
|
|
154
|
+
this.resetDefaultSortOrder();
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
const toSort = [];
|
|
158
|
+
if (this.sortIndices.length < 1) {
|
|
159
|
+
this.sortIndices = Array.from({ length: this.pTable.value.length }, (_, index) => index);
|
|
160
|
+
}
|
|
161
|
+
for (let i = 0; i < this.pTable.value.length; i++) {
|
|
162
|
+
toSort.push([this.pTable.value[i], this.sortIndices.indexOf(i)]);
|
|
163
|
+
}
|
|
164
|
+
if (this.pTable.sortMode === 'single') {
|
|
165
|
+
toSort.sort((data1, data2) => {
|
|
166
|
+
const value1 = ObjectUtils.resolveFieldData(data1[0], field);
|
|
167
|
+
const value2 = ObjectUtils.resolveFieldData(data2[0], field);
|
|
168
|
+
return this.pTable.compareValuesOnSort(value1, value2, order);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
toSort.sort((data1, data2) => {
|
|
173
|
+
return this._multisortField(data1, data2, 0);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
for (let i = 0; i < toSort.length; i++) {
|
|
177
|
+
this.sortIndices[toSort[i][1]] = i;
|
|
178
|
+
this.pTable.value[i] = toSort[i][0];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
this.pTable._value = [...this.pTable.value];
|
|
182
|
+
}
|
|
183
|
+
_multisortField(data1, data2, index) {
|
|
184
|
+
const value1 = ObjectUtils.resolveFieldData(data1[0], this.pTable.multiSortMeta[index].field);
|
|
185
|
+
const value2 = ObjectUtils.resolveFieldData(data2[0], this.pTable.multiSortMeta[index].field);
|
|
186
|
+
if (ObjectUtils.compare(value1, value2, this.pTable.filterLocale) === 0) {
|
|
187
|
+
return this.pTable.multiSortMeta.length - 1 > index
|
|
188
|
+
? this._multisortField(data1, data2, index + 1)
|
|
189
|
+
: 0;
|
|
190
|
+
}
|
|
191
|
+
return this.pTable.compareValuesOnSort(value1, value2, this.pTable.multiSortMeta[index].order);
|
|
192
|
+
}
|
|
69
193
|
}
|
|
70
194
|
TableUnsortDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableUnsortDirective, deps: [{ token: i1.Table, host: true, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
71
|
-
TableUnsortDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TableUnsortDirective, isStandalone: true, selector: "[tWithUnsort]", ngImport: i0 });
|
|
195
|
+
TableUnsortDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TableUnsortDirective, isStandalone: true, selector: "[tWithUnsort]", exportAs: ["tWithUnsort"], ngImport: i0 });
|
|
72
196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableUnsortDirective, decorators: [{
|
|
73
197
|
type: Directive,
|
|
74
198
|
args: [{
|
|
75
199
|
standalone: true,
|
|
76
|
-
selector: '[tWithUnsort]'
|
|
200
|
+
selector: '[tWithUnsort]',
|
|
201
|
+
exportAs: 'tWithUnsort'
|
|
77
202
|
}]
|
|
78
203
|
}], ctorParameters: function () { return [{ type: i1.Table, decorators: [{
|
|
79
204
|
type: Host
|
|
@@ -82,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
82
207
|
}, {
|
|
83
208
|
type: Optional
|
|
84
209
|
}] }]; } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdW5zb3J0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS9kaXJlY3RpdmVzL2ludGVybmFsL3RhYmxlLXVuc29ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT2hFLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBK0MsTUFBYTtRQUFiLFdBQU0sR0FBTixNQUFNLENBQU87UUFGNUQsZ0NBQTJCLEdBQUcsS0FBSyxDQUFDO1FBR2xDLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVUsRUFBRSxFQUFFO1lBQ3hELElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtnQkFDdEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNWLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDaEIsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDO2FBQ3pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDaEMsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDL0QsS0FBSyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQztpQkFDbkM7Z0JBRUQsTUFBTSxDQUFDLFVBQVU7b0JBQ2YsTUFBTSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsS0FBSzt3QkFDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO3dCQUN2QixDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM5QixNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUU7Z0JBQ2xDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDdkIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWpELElBQUksUUFBUSxFQUFFO29CQUNaLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDckQsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsS0FBSyxFQUFFOzRCQUNyRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7eUJBQ3BDO3FCQUNGO29CQUNELElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7d0JBQ3hCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDckMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQ3JDO29CQUNELElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFO3dCQUN2QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQzs0QkFDeEIsS0FBSyxFQUFFLG1CQUFtQjs0QkFDMUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7eUJBQy9CLENBQUMsQ0FBQzt3QkFDSCxVQUFVLEdBQUcsSUFBSSxDQUFDO3FCQUNuQjtpQkFDRjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTt3QkFDekIsTUFBTSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7cUJBQzVCO29CQUNELE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO3dCQUN4QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7d0JBQ2xCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCO3FCQUMvQixDQUFDLENBQUM7aUJBQ0o7Z0JBRUQsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN0QixJQUFJLFVBQVU7b0JBQUUsTUFBTSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7YUFDNUM7WUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ3BCO1lBRUQsTUFBTSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7aUhBcEVVLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjs7MEJBSWMsSUFBSTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgU2VsZiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1t0V2l0aFVuc29ydF0nXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlVW5zb3J0RGlyZWN0aXZlIHtcbiAgZGVmYXVsdFNvcnRPcmRlckluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBwVGFibGU6IFRhYmxlKSB7XG4gICAgcFRhYmxlLnRhYmxlU2VydmljZS52YWx1ZVNvdXJjZSQuc3Vic2NyaWJlKCh2YWw6IGFueVtdKSA9PiB7XG4gICAgICBpZiAodmFsICE9IG51bGwgJiYgdmFsLmxlbmd0aCA+IDAgJiYgIXRoaXMuZGVmYXVsdFNvcnRPcmRlckluaXRpYWxpemVkKSB7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgdmFsLmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgICB2Ll9kZWZhdWx0U29ydE9yZGVyID0gaSsrO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kZWZhdWx0U29ydE9yZGVySW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcFRhYmxlLnNvcnQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKHBUYWJsZS5zb3J0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgaWYgKHBUYWJsZS5zb3J0RmllbGQgPT09IGV2ZW50LmZpZWxkICYmIHBUYWJsZS5zb3J0T3JkZXIgPT09IC0xKSB7XG4gICAgICAgICAgZXZlbnQuZmllbGQgPSAnX2RlZmF1bHRTb3J0T3JkZXInO1xuICAgICAgICB9XG5cbiAgICAgICAgcFRhYmxlLl9zb3J0T3JkZXIgPVxuICAgICAgICAgIHBUYWJsZS5zb3J0RmllbGQgPT09IGV2ZW50LmZpZWxkXG4gICAgICAgICAgICA/IHBUYWJsZS5zb3J0T3JkZXIgKiAtMVxuICAgICAgICAgICAgOiBwVGFibGUuZGVmYXVsdFNvcnRPcmRlcjtcbiAgICAgICAgcFRhYmxlLl9zb3J0RmllbGQgPSBldmVudC5maWVsZDtcbiAgICAgICAgcFRhYmxlLnNvcnRTaW5nbGUoKTtcbiAgICAgIH1cbiAgICAgIGlmIChwVGFibGUuc29ydE1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgbGV0IHJlc2V0SW5kZXggPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc29ydE1ldGEgPSBwVGFibGUuZ2V0U29ydE1ldGEoZXZlbnQuZmllbGQpO1xuXG4gICAgICAgIGlmIChzb3J0TWV0YSkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcFRhYmxlLl9tdWx0aVNvcnRNZXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocFRhYmxlLl9tdWx0aVNvcnRNZXRhW2ldLmZpZWxkID09PSBzb3J0TWV0YS5maWVsZCkge1xuICAgICAgICAgICAgICBwVGFibGUuX211bHRpU29ydE1ldGEuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc29ydE1ldGEub3JkZXIgPT09IDEpIHtcbiAgICAgICAgICAgIHNvcnRNZXRhLm9yZGVyID0gc29ydE1ldGEub3JkZXIgKiAtMTtcbiAgICAgICAgICAgIHBUYWJsZS5tdWx0aVNvcnRNZXRhLnB1c2goc29ydE1ldGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocFRhYmxlLl9tdWx0aVNvcnRNZXRhPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHBUYWJsZS5tdWx0aVNvcnRNZXRhLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZDogJ19kZWZhdWx0U29ydE9yZGVyJyxcbiAgICAgICAgICAgICAgb3JkZXI6IHBUYWJsZS5kZWZhdWx0U29ydE9yZGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlc2V0SW5kZXggPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIXBUYWJsZS5tdWx0aVNvcnRNZXRhKSB7XG4gICAgICAgICAgICBwVGFibGUuX211bHRpU29ydE1ldGEgPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcFRhYmxlLm11bHRpU29ydE1ldGEucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDogZXZlbnQuZmllbGQsXG4gICAgICAgICAgICBvcmRlcjogcFRhYmxlLmRlZmF1bHRTb3J0T3JkZXJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBUYWJsZS5zb3J0TXVsdGlwbGUoKTtcbiAgICAgICAgaWYgKHJlc2V0SW5kZXgpIHBUYWJsZS5fbXVsdGlTb3J0TWV0YSA9IFtdO1xuICAgICAgfVxuXG4gICAgICBpZiAocFRhYmxlLmlzU3RhdGVmdWwoKSkge1xuICAgICAgICBwVGFibGUuc2F2ZVN0YXRlKCk7XG4gICAgICB9XG5cbiAgICAgIHBUYWJsZS5hbmNob3JSb3dJbmRleCA9IDA7XG4gICAgfTtcbiAgfVxufVxuIl19
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdW5zb3J0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS9kaXJlY3RpdmVzL2ludGVybmFsL3RhYmxlLXVuc29ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPNUMsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUErQyxNQUFhO1FBQWIsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUg1RCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUd6QixNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDaEMsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDL0QsTUFBTSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNDLE1BQU0sQ0FBQyxVQUFrQixHQUFHLElBQUksQ0FBQztvQkFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7aUJBQzFCO3FCQUFNO29CQUNMLE1BQU0sQ0FBQyxVQUFVO3dCQUNmLE1BQU0sQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLEtBQUs7NEJBQzlCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQzs0QkFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxn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Z3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb3J0TWV0YSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ3ByaW1lbmcvdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbdFdpdGhVbnNvcnRdJyxcbiAgZXhwb3J0QXM6ICd0V2l0aFVuc29ydCdcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVVbnNvcnREaXJlY3RpdmUge1xuICByZXNldFNvcnRpbmcgPSBmYWxzZTtcbiAgc29ydEluZGljZXM6IG51bWJlcltdID0gW107XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBwVGFibGU6IFRhYmxlKSB7XG4gICAgcFRhYmxlLnNvcnQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKHBUYWJsZS5zb3J0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgaWYgKHBUYWJsZS5zb3J0RmllbGQgPT09IGV2ZW50LmZpZWxkICYmIHBUYWJsZS5zb3J0T3JkZXIgPT09IC0xKSB7XG4gICAgICAgICAgcFRhYmxlLl9zb3J0T3JkZXIgPSBwVGFibGUuZGVmYXVsdFNvcnRPcmRlcjtcbiAgICAgICAgICAocFRhYmxlLl9zb3J0RmllbGQgYXMgYW55KSA9IG51bGw7XG4gICAgICAgICAgdGhpcy5yZXNldFNvcnRpbmcgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBUYWJsZS5fc29ydE9yZGVyID1cbiAgICAgICAgICAgIHBUYWJsZS5zb3J0RmllbGQgPT09IGV2ZW50LmZpZWxkXG4gICAgICAgICAgICAgID8gcFRhYmxlLnNvcnRPcmRlciAqIC0xXG4gICAgICAgICAgICAgIDogcFRhYmxlLmRlZmF1bHRTb3J0T3JkZXI7XG4gICAgICAgICAgcFRhYmxlLl9zb3J0RmllbGQgPSBldmVudC5maWVsZDtcbiAgICAgICAgfVxuICAgICAgICBwVGFibGUuc29ydFNpbmdsZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHBUYWJsZS5zb3J0TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgICBsZXQgcmVzZXRJbmRleCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBzb3J0TWV0YSA9IHBUYWJsZS5nZXRTb3J0TWV0YShldmVudC5maWVsZCk7XG5cbiAgICAgICAgaWYgKHNvcnRNZXRhKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwVGFibGUuX211bHRpU29ydE1ldGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwVGFibGUuX211bHRpU29ydE1ldGFbaV0uZmllbGQgPT09IHNvcnRNZXRhLmZpZWxkKSB7XG4gICAgICAgICAgICAgIHBUYWJsZS5fbXVsdGlTb3J0TWV0YS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzb3J0TWV0YS5vcmRlciA9PT0gMSkge1xuICAgICAgICAgICAgc29ydE1ldGEub3JkZXIgPSBzb3J0TWV0YS5vcmRlciAqIC0xO1xuICAgICAgICAgICAgcFRhYmxlLm11bHRpU29ydE1ldGEucHVzaChzb3J0TWV0YSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwVGFibGUuX211bHRpU29ydE1ldGE/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgKHBUYWJsZS5tdWx0aVNvcnRNZXRhIGFzIGFueSkgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5yZXNldFNvcnRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcmVzZXRJbmRleCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghcFRhYmxlLm11bHRpU29ydE1ldGEpIHtcbiAgICAgICAgICAgIHBUYWJsZS5fbXVsdGlTb3J0TWV0YSA9IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwVGFibGUubXVsdGlTb3J0TWV0YS5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiBldmVudC5maWVsZCxcbiAgICAgICAgICAgIG9yZGVyOiBwVGFibGUuZGVmYXVsdFNvcnRPcmRlclxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcFRhYmxlLnNvcnRNdWx0aXBsZSgpO1xuICAgICAgICBpZiAocmVzZXRJbmRleCkgcFRhYmxlLl9tdWx0aVNvcnRNZXRhID0gW107XG4gICAgICB9XG5cbiAgICAgIGlmIChwVGFibGUuaXNTdGF0ZWZ1bCgpKSB7XG4gICAgICAgIHBUYWJsZS5zYXZlU3RhdGUoKTtcbiAgICAgIH1cblxuICAgICAgcFRhYmxlLmFuY2hvclJvd0luZGV4ID0gMDtcbiAgICAgIHRoaXMucmVzZXRTb3J0aW5nID0gZmFsc2U7XG4gICAgfTtcblxuICAgIHBUYWJsZS5zb3J0U2luZ2xlID0gKCkgPT4ge1xuICAgICAgY29uc3QgZmllbGQgPSBwVGFibGUuc29ydEZpZWxkIHx8IHBUYWJsZS5ncm91cFJvd3NCeTtcbiAgICAgIGNvbnN0IG9yZGVyID0gcFRhYmxlLnNvcnRGaWVsZFxuICAgICAgICA/IHBUYWJsZS5zb3J0T3JkZXJcbiAgICAgICAgOiBwVGFibGUuZ3JvdXBSb3dzQnlPcmRlcjtcbiAgICAgIGlmIChcbiAgICAgICAgcFRhYmxlLmdyb3VwUm93c0J5ICYmXG4gICAgICAgIHBUYWJsZS5zb3J0RmllbGQgJiZcbiAgICAgICAgcFRhYmxlLmdyb3VwUm93c0J5ICE9PSBwVGFibGUuc29ydEZpZWxkXG4gICAgICApIHtcbiAgICAgICAgcFRhYmxlLl9tdWx0aVNvcnRNZXRhID0gW1xuICAgICAgICAgIHBUYWJsZS5nZXRHcm91cFJvd3NNZXRhKCksXG4gICAgICAgICAgeyBmaWVsZDogcFRhYmxlLnNvcnRGaWVsZCwgb3JkZXI6IHBUYWJsZS5zb3J0T3JkZXIgfVxuICAgICAgICBdO1xuICAgICAgICBwVGFibGUuc29ydE11bHRpcGxlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG9yZGVyICYmIChmaWVsZCB8fCB0aGlzLnJlc2V0U29ydGluZykpIHtcbiAgICAgICAgaWYgKHBUYWJsZS5yZXN0b3JpbmdTb3J0KSB7XG4gICAgICAgICAgcFRhYmxlLnJlc3RvcmluZ1NvcnQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwVGFibGUubGF6eSkge1xuICAgICAgICAgIHBUYWJsZS5vbkxhenlMb2FkLmVtaXQocFRhYmxlLmNyZWF0ZUxhenlMb2FkTWV0YWRhdGEoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAocFRhYmxlLnZhbHVlKSB7XG4gICAgICAgICAgaWYgKHBUYWJsZS5jdXN0b21Tb3J0KSB7XG4gICAgICAgICAgICBwVGFibGUuc29ydEZ1bmN0aW9uLmVtaXQoe1xuICAgICAgICAgICAgICBkYXRhOiBwVGFibGUudmFsdWUsXG4gICAgICAgICAgICAgIG1vZGU6IHBUYWJsZS5zb3J0TW9kZSxcbiAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgIG9yZGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc29ydERhdGEoZmllbGQsIG9yZGVyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocFRhYmxlLmhhc0ZpbHRlcigpKSB7XG4gICAgICAgICAgICBwVGFibGUuX2ZpbHRlcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNvcnRNZXRhOiBTb3J0TWV0YSA9IHtcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBvcmRlclxuICAgICAgICB9O1xuXG4gICAgICAgIHBUYWJsZS5vblNvcnQuZW1pdChzb3J0TWV0YSk7XG4gICAgICAgIHBUYWJsZS50YWJsZVNlcnZpY2Uub25Tb3J0KHNvcnRNZXRhKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcFRhYmxlLnNvcnRNdWx0aXBsZSA9ICgpID0+IHtcbiAgICAgIGlmIChwVGFibGUuZ3JvdXBSb3dzQnkpIHtcbiAgICAgICAgaWYgKCFwVGFibGUuX211bHRpU29ydE1ldGEpXG4gICAgICAgICAgcFRhYmxlLl9tdWx0aVNvcnRNZXRhID0gW3BUYWJsZS5nZXRHcm91cFJvd3NNZXRhKCldO1xuICAgICAgICBlbHNlIGlmIChwVGFibGUubXVsdGlTb3J0TWV0YVswXS5maWVsZCAhPT0gcFRhYmxlLmdyb3VwUm93c0J5KVxuICAgICAgICAgIHBUYWJsZS5fbXVsdGlTb3J0TWV0YSA9IFtcbiAgICAgICAgICAgIHBUYWJsZS5nZXRHcm91cFJvd3NNZXRhKCksXG4gICAgICAgICAgICAuLi5wVGFibGUuX211bHRpU29ydE1ldGFcbiAgICAgICAgICBdO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIChwVGFibGUubXVsdGlTb3J0TWV0YSAmJiBwVGFibGUubXVsdGlTb3J0TWV0YS5sZW5ndGggPiAwKSB8fFxuICAgICAgICB0aGlzLnJlc2V0U29ydGluZ1xuICAgICAgKSB7XG4gICAgICAgIGlmIChwVGFibGUubGF6eSkge1xuICAgICAgICAgIHBUYWJsZS5vbkxhenlMb2FkLmVtaXQocFRhYmxlLmNyZWF0ZUxhenlMb2FkTWV0YWRhdGEoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAocFRhYmxlLnZhbHVlKSB7XG4gICAgICAgICAgaWYgKHBUYWJsZS5jdXN0b21Tb3J0KSB7XG4gICAgICAgICAgICBwVGFibGUuc29ydEZ1bmN0aW9uLmVtaXQoe1xuICAgICAgICAgICAgICBkYXRhOiBwVGFibGUudmFsdWUsXG4gICAgICAgICAgICAgIG1vZGU6IHBUYWJsZS5zb3J0TW9kZSxcbiAgICAgICAgICAgICAgbXVsdGlTb3J0TWV0YTogcFRhYmxlLm11bHRpU29ydE1ldGFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zb3J0RGF0YSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwVGFibGUuaGFzRmlsdGVyKCkpIHtcbiAgICAgICAgICAgIHBUYWJsZS5fZmlsdGVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcFRhYmxlLm9uU29ydC5lbWl0KHtcbiAgICAgICAgICBtdWx0aXNvcnRtZXRhOiBwVGFibGUubXVsdGlTb3J0TWV0YVxuICAgICAgICB9KTtcbiAgICAgICAgcFRhYmxlLnRhYmxlU2VydmljZS5vblNvcnQocFRhYmxlLm11bHRpU29ydE1ldGEpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICByZXNldERlZmF1bHRTb3J0T3JkZXIoKSB7XG4gICAgdGhpcy5zb3J0SW5kaWNlcyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfc29ydERhdGEoZmllbGQ/OiBhbnksIG9yZGVyPzogYW55KSB7XG4gICAgLy8gcmVzdG9yZSBkZWZhdWx0IHNvcnQgb3JkZXJcbiAgICBpZiAodGhpcy5yZXNldFNvcnRpbmcgJiYgdGhpcy5zb3J0SW5kaWNlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnBUYWJsZS5fdmFsdWUgPSB0aGlzLnNvcnRJbmRpY2VzLm1hcChcbiAgICAgICAgKGluZGV4KSA9PiB0aGlzLnBUYWJsZS5fdmFsdWVbaW5kZXhdXG4gICAgICApO1xuICAgICAgdGhpcy5yZXNldERlZmF1bHRTb3J0T3JkZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdG9Tb3J0OiBhbnlbXSA9IFtdO1xuICAgICAgaWYgKHRoaXMuc29ydEluZGljZXMubGVuZ3RoIDwgMSkge1xuICAgICAgICB0aGlzLnNvcnRJbmRpY2VzID0gQXJyYXkuZnJvbShcbiAgICAgICAgICB7IGxlbmd0aDogdGhpcy5wVGFibGUudmFsdWUubGVuZ3RoIH0sXG4gICAgICAgICAgKF8sIGluZGV4KSA9PiBpbmRleFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucFRhYmxlLnZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRvU29ydC5wdXNoKFt0aGlzLnBUYWJsZS52YWx1ZVtpXSwgdGhpcy5zb3J0SW5kaWNlcy5pbmRleE9mKGkpXSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnBUYWJsZS5zb3J0TW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgdG9Tb3J0LnNvcnQoKGRhdGExLCBkYXRhMikgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlMSA9IE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoZGF0YTFbMF0sIGZpZWxkKTtcbiAgICAgICAgICBjb25zdCB2YWx1ZTIgPSBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGRhdGEyWzBdLCBmaWVsZCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucFRhYmxlLmNvbXBhcmVWYWx1ZXNPblNvcnQodmFsdWUxLCB2YWx1ZTIsIG9yZGVyKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b1NvcnQuc29ydCgoZGF0YTEsIGRhdGEyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX211bHRpc29ydEZpZWxkKGRhdGExLCBkYXRhMiwgMCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRvU29ydC5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLnNvcnRJbmRpY2VzW3RvU29ydFtpXVsxXV0gPSBpO1xuICAgICAgICB0aGlzLnBUYWJsZS52YWx1ZVtpXSA9IHRvU29ydFtpXVswXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBUYWJsZS5fdmFsdWUgPSBbLi4udGhpcy5wVGFibGUudmFsdWVdO1xuICB9XG5cbiAgcHJpdmF0ZSBfbXVsdGlzb3J0RmllbGQoZGF0YTE6IGFueSwgZGF0YTI6IGFueSwgaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgdmFsdWUxID0gT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShcbiAgICAgIGRhdGExWzBdLFxuICAgICAgdGhpcy5wVGFibGUubXVsdGlTb3J0TWV0YVtpbmRleF0uZmllbGRcbiAgICApO1xuICAgIGNvbnN0IHZhbHVlMiA9IE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoXG4gICAgICBkYXRhMlswXSxcbiAgICAgIHRoaXMucFRhYmxlLm11bHRpU29ydE1ldGFbaW5kZXhdLmZpZWxkXG4gICAgKTtcbiAgICBpZiAoT2JqZWN0VXRpbHMuY29tcGFyZSh2YWx1ZTEsIHZhbHVlMiwgdGhpcy5wVGFibGUuZmlsdGVyTG9jYWxlKSA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMucFRhYmxlLm11bHRpU29ydE1ldGEubGVuZ3RoIC0gMSA+IGluZGV4XG4gICAgICAgID8gdGhpcy5fbXVsdGlzb3J0RmllbGQoZGF0YTEsIGRhdGEyLCBpbmRleCArIDEpXG4gICAgICAgIDogMDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucFRhYmxlLmNvbXBhcmVWYWx1ZXNPblNvcnQoXG4gICAgICB2YWx1ZTEsXG4gICAgICB2YWx1ZTIsXG4gICAgICB0aGlzLnBUYWJsZS5tdWx0aVNvcnRNZXRhW2luZGV4XS5vcmRlclxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|