ms-data-grid 0.0.43 → 0.0.45
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/esm2022/lib/data-grid/data-grid.component.mjs +477 -1367
- package/esm2022/lib/data-grid/statuses.mjs +2 -3
- package/esm2022/lib/data-grid.module.mjs +7 -7
- package/esm2022/lib/data-grid.service.mjs +14 -0
- package/esm2022/lib/directives/draggable-header.directive.mjs +145 -0
- package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
- package/esm2022/lib/services/common.service.mjs +12 -41
- package/esm2022/lib/services/copy-service.service.mjs +3 -3
- package/esm2022/lib/services/swap-columns.service.mjs +118 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/ms-data-grid.mjs +768 -1564
- package/fesm2022/ms-data-grid.mjs.map +1 -1
- package/lib/data-grid/data-grid.component.d.ts +38 -99
- package/lib/data-grid.module.d.ts +7 -6
- package/lib/data-grid.service.d.ts +6 -0
- package/lib/directives/draggable-header.directive.d.ts +31 -0
- package/lib/services/swap-columns.service.d.ts +19 -0
- package/package.json +2 -8
- package/public-api.d.ts +2 -0
- package/esm2022/lib/services/export.service.mjs +0 -149
- package/lib/services/export.service.d.ts +0 -24
|
@@ -6,8 +6,8 @@ export class CopyServiceService {
|
|
|
6
6
|
this.currentColums = [];
|
|
7
7
|
}
|
|
8
8
|
getSelectedDataForCopy(dataSet, columns, rowSelectedIndexes, selectedCells, getNestedValue) {
|
|
9
|
-
columns = columns.filter(col => col.is_visible);
|
|
10
9
|
const copiedRows = [];
|
|
10
|
+
columns = columns.filter(col => col.is_visible);
|
|
11
11
|
const findRowByVirtualIndex = (vIndex) => dataSet.find((r) => r.__virtualIndex === vIndex);
|
|
12
12
|
if (rowSelectedIndexes && rowSelectedIndexes.size > 0) {
|
|
13
13
|
const sortedIndexes = [...rowSelectedIndexes].sort((a, b) => a - b);
|
|
@@ -55,7 +55,7 @@ export class CopyServiceService {
|
|
|
55
55
|
if (Array.isArray(value)) {
|
|
56
56
|
value = value
|
|
57
57
|
.map(v => typeof v === 'object'
|
|
58
|
-
? v.departmentName ?? v.roleName ??
|
|
58
|
+
? v.departmentName ?? v.roleName ?? ''
|
|
59
59
|
: v?.toString() ?? '')
|
|
60
60
|
.join(', ');
|
|
61
61
|
}
|
|
@@ -219,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
219
219
|
providedIn: 'root'
|
|
220
220
|
}]
|
|
221
221
|
}], ctorParameters: function () { return []; } });
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb3B5LXNlcnZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCO1FBMkdGLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBUyxFQUFFLENBQUE7SUE1R1IsQ0FBQztJQUNqQixzQkFBc0IsQ0FDcEIsT0FBYyxFQUNkLE9BQWMsRUFDZCxrQkFBK0IsRUFDL0IsYUFBb0IsRUFDcEIsY0FBK0M7UUFFL0MsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQVksRUFBRSxDQUFDO1FBQy9CLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksa0JBQWtCLElBQUksa0JBQWtCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtZQUNyRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDcEUsS0FBSyxNQUFNLE1BQU0sSUFBSSxhQUFhLEVBQUU7Z0JBQ2xDLE1BQU0sR0FBRyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsR0FBRztv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QUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUzRSwwQkFBMEI7UUFDMUIsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQzVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDOytHQW5QVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29weVNlcnZpY2VTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuICBnZXRTZWxlY3RlZERhdGFGb3JDb3B5KFxyXG4gICAgZGF0YVNldDogYW55W10sXHJcbiAgICBjb2x1bW5zOiBhbnlbXSxcclxuICAgIHJvd1NlbGVjdGVkSW5kZXhlczogU2V0PG51bWJlcj4sXHJcbiAgICBzZWxlY3RlZENlbGxzOiBhbnlbXSxcclxuICAgIGdldE5lc3RlZFZhbHVlOiAob2JqOiBhbnksIHBhdGg6IHN0cmluZykgPT4gYW55XHJcbiAgKTogYW55W11bXSB7XHJcbiAgICBjb2x1bW5zID0gY29sdW1ucy5maWx0ZXIoY29sID0+IGNvbC5pc192aXNpYmxlKTtcclxuICAgIGNvbnN0IGNvcGllZFJvd3M6IGFueVtdW10gPSBbXTtcclxuICAgIGNvbnN0IGZpbmRSb3dCeVZpcnR1YWxJbmRleCA9ICh2SW5kZXg6IG51bWJlcikgPT5cclxuICAgICAgZGF0YVNldC5maW5kKChyOiBhbnkpID0+IHIuX192aXJ0dWFsSW5kZXggPT09IHZJbmRleCk7XHJcbiAgICBpZiAocm93U2VsZWN0ZWRJbmRleGVzICYmIHJvd1NlbGVjdGVkSW5kZXhlcy5zaXplID4gMCkge1xyXG4gICAgICBjb25zdCBzb3J0ZWRJbmRleGVzID0gWy4uLnJvd1NlbGVjdGVkSW5kZXhlc10uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xyXG4gICAgICBmb3IgKGNvbnN0IHZJbmRleCBvZiBzb3J0ZWRJbmRleGVzKSB7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gZmluZFJvd0J5VmlydHVhbEluZGV4KHZJbmRleCk7XHJcbiAgICAgICAgaWYgKCFyb3cpIGNvbnRpbnVlO1xyXG4gICAgICAgIGNvbnN0IGV4dHJhY3RWYWx1ZSA9IChmaWVsZDogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5lc3RlZCA9IGdldE5lc3RlZFZhbHVlKHJvdywgZmllbGQpO1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPVxyXG4gICAgICAgICAgICBuZXN0ZWQ/LnZhbHVlID8/XHJcbiAgICAgICAgICAgIG5lc3RlZD8ubmFtZSA/P1xyXG4gICAgICAgICAgICBuZXN0ZWQgPz9cclxuICAgICAgICAgICAgJy0nO1xyXG5cclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWVcclxuICAgICAgICAgICAgICAubWFwKHYgPT5cclxuICAgICAgICAgICAgICAgIHR5cGVvZiB2ID09PSAnb2JqZWN0J1xyXG4gICAgICAgICAgICAgICAgICA/ICh2LmRlcGFydG1lbnROYW1lID8/IHYucm9sZU5hbWUgPz8gJycpXHJcbiAgICAgICAgICAgICAgICAgIDogKHY/LnRvU3RyaW5nKCkgPz8gJycpXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIC5qb2luKCcsICcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlID8/ICcnO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgbWFwcGVkID0gY29sdW1ucy5tYXAoY29sID0+IHtcclxuICAgICAgICAgIGlmIChjb2wuY2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb2wuY2hpbGRyZW4ubWFwKChjOiB7IGZpZWxkOiBzdHJpbmcgfSkgPT4gZXh0cmFjdFZhbHVlKGMuZmllbGQpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBbZXh0cmFjdFZhbHVlKGNvbC5maWVsZCldO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IHJvd1ZhbHVlcyA9IG1hcHBlZC5yZWR1Y2U8c3RyaW5nW10+KChhY2MsIGN1cnIpID0+IGFjYy5jb25jYXQoY3VyciksIFtdKTtcclxuICAgICAgICBjb3BpZWRSb3dzLnB1c2gocm93VmFsdWVzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHNlbGVjdGVkQ2VsbHMgJiYgc2VsZWN0ZWRDZWxscy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHJvd3NNYXAgPSBuZXcgTWFwPG51bWJlciwgYW55W10+KCk7XHJcbiAgICAgIGZvciAoY29uc3QgY2VsbCBvZiBzZWxlY3RlZENlbGxzKSB7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gZmluZFJvd0J5VmlydHVhbEluZGV4KGNlbGwucm93SW5kZXgpO1xyXG4gICAgICAgIGlmICghcm93KSBjb250aW51ZTtcclxuICAgICAgICBjb25zdCBjb2wgPSBjb2x1bW5zW2NlbGwuY29sSW5kZXhdO1xyXG4gICAgICAgIGxldCBmaWVsZE5hbWUgPSBjb2w/LmZpZWxkO1xyXG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuICYmIGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XSkge1xyXG4gICAgICAgICAgZmllbGROYW1lID0gY29sLmNoaWxkcmVuW2NlbGwuc3ViQ29sSW5kZXhdLmZpZWxkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdmFsdWUgPSBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkTmFtZSkgfHwgZ2V0TmVzdGVkVmFsdWUocm93LCBmaWVsZE5hbWUpPy5uYW1lIHx8IGdldE5lc3RlZFZhbHVlKHJvdywgZmllbGROYW1lKSB8fCAnLSc7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlXHJcbiAgICAgICAgICAgIC5tYXAodiA9PlxyXG4gICAgICAgICAgICAgIHR5cGVvZiB2ID09PSAnb2JqZWN0J1xyXG4gICAgICAgICAgICAgICAgPyB2LmRlcGFydG1lbnROYW1lID8/IHYucm9sZU5hbWUgPz8gdi5mdWxsX25hbWUgPz8gJydcclxuICAgICAgICAgICAgICAgIDogdj8udG9TdHJpbmcoKSA/PyAnJ1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5qb2luKCcsICcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlID8/ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXJvd3NNYXAuaGFzKGNlbGwucm93SW5kZXgpKSByb3dzTWFwLnNldChjZWxsLnJvd0luZGV4LCBbXSk7XHJcbiAgICAgICAgcm93c01hcC5nZXQoY2VsbC5yb3dJbmRleCkhLnB1c2godmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHNvcnRlZENlbGxzID0gWy4uLnJvd3NNYXAuZW50cmllcygpXVxyXG4gICAgICAgIC5zb3J0KChbYV0sIFtiXSkgPT4gYSAtIGIpXHJcbiAgICAgICAgLm1hcCgoW18sIHZdKSA9PiB2KTtcclxuICAgICAgY29waWVkUm93cy5wdXNoKC4uLnNvcnRlZENlbGxzKTtcclxuICAgIH1cclxuICAgIGlmIChjb3BpZWRSb3dzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zdCBhY3RpdmVDZWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFjdGl2ZS1jZWxsJyk7XHJcbiAgICAgIGlmIChhY3RpdmVDZWxsKSByZXR1cm4gW1thY3RpdmVDZWxsLnRleHRDb250ZW50Py50cmltKCkgfHwgJyddXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYXhDb2xzID0gY29waWVkUm93cy5yZWR1Y2UoKG1heCwgcm93KSA9PiBNYXRoLm1heChtYXgsIHJvdy5sZW5ndGgpLCAwKTtcclxuICAgIHJldHVybiBjb3BpZWRSb3dzLm1hcChyb3cgPT4ge1xyXG4gICAgICBjb25zdCBuZXdSb3cgPSBbLi4ucm93XTtcclxuICAgICAgd2hpbGUgKG5ld1Jvdy5sZW5ndGggPCBtYXhDb2xzKSBuZXdSb3cucHVzaCgnJyk7XHJcbiAgICAgIHJldHVybiBuZXdSb3c7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBjb3B5VG9DbGlwYm9hcmQoXHJcbiAgICBzZWxlY3RlZERhdGE6IGFueVtdW10sXHJcbiAgICBzZWxlY3RvciA9ICcuc2VsZWN0ZWQtY2VsbCwgLmFjdGl2ZS1jZWxsLCAucm93LXNlbGVjdGVkJ1xyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKCFzZWxlY3RlZERhdGEgfHwgc2VsZWN0ZWREYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgY29uc3QgdGV4dFRvQ29weSA9IHNlbGVjdGVkRGF0YVxyXG4gICAgICAubWFwKHJvdyA9PiByb3cubWFwKGNlbGwgPT4gKGNlbGwgPz8gJycpLnRvU3RyaW5nKCkpLmpvaW4oJ1xcdCcpKVxyXG4gICAgICAuam9pbignXFxuJyk7XHJcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0VG9Db3B5KS5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkRWxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XHJcbiAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5hZGQoJ2ZsYXNoLWJnJykpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHNlbGVjdGVkRWxzLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LnJlbW92ZSgnZmxhc2gtYmcnKSk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG5cclxudXBkYXRlUm93czogYW55W10gPSBbXTtcclxuICBjdXJyZW50Q29sdW1zIDogYW55ID0gW11cclxuICBhc3luYyBwYXN0ZUZyb21DbGlwYm9hcmRUZXh0KFxyXG4gICAgdGV4dDogc3RyaW5nLFxyXG4gICAgZGF0YVNldDogYW55W10sXHJcbiAgICBjb2x1bW5zOiBhbnlbXSxcclxuICAgIHN0YXJ0Um93SW5kZXg6IG51bWJlcixcclxuICAgIHN0YXJ0Q29sSW5kZXg6IG51bWJlcixcclxuICAgIHN0YXJ0U3ViQ29sSW5kZXg6IG51bWJlciA9IDBcclxuICApOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gW107XHJcbiAgICB0aGlzLnVwZGF0ZVJvd3MgPSBbXTtcclxuICAgIGNvbnN0IHJvd3MgPSB0ZXh0LnNwbGl0KC9cXHI/XFxuLykubWFwKHIgPT4gci5zcGxpdCgnXFx0JykpO1xyXG4gICAgY29uc3QgZmxhdHRlbmVkQ29sdW1uczogYW55W10gPSBbXTtcclxuICAgIGNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xyXG4gICAgICBpZiAoY29sLmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICBjb2wuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IGFueSkgPT4gZmxhdHRlbmVkQ29sdW1ucy5wdXNoKHsgcGFyZW50OiBjb2wsIC4uLmNoaWxkIH0pKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmbGF0dGVuZWRDb2x1bW5zLnB1c2goY29sKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBsZXQgc3RhcnRGbGF0dGVuZWRJbmRleCA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0YXJ0Q29sSW5kZXg7IGkrKykge1xyXG4gICAgICBjb25zdCBjb2wgPSBjb2x1bW5zW2ldO1xyXG4gICAgICBzdGFydEZsYXR0ZW5lZEluZGV4ICs9IGNvbC5jaGlsZHJlbj8ubGVuZ3RoIHx8IDE7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzdGFydENvbCA9IGNvbHVtbnNbc3RhcnRDb2xJbmRleF07XHJcbiAgICBpZiAoc3RhcnRDb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgc3RhcnRGbGF0dGVuZWRJbmRleCArPSBNYXRoLm1pbihzdGFydFN1YkNvbEluZGV4LCBzdGFydENvbC5jaGlsZHJlbi5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuIFxyXG4gICAgcm93cy5mb3JFYWNoKChyb3dWYWx1ZXMsIHJPZmZzZXQpID0+IHtcclxuICAgICAgY29uc3QgdGFyZ2V0Um93SW5kZXggPSBzdGFydFJvd0luZGV4ICsgck9mZnNldDtcclxuICAgICAgY29uc3Qgcm93ID0gZGF0YVNldC5maW5kKHIgPT4gcj8uX192aXJ0dWFsSW5kZXggPT09IHRhcmdldFJvd0luZGV4KTtcclxuICAgICAgaWYgKCFyb3cpIHJldHVybjtcclxuIFxyXG4gICAgICByb3dWYWx1ZXMuZm9yRWFjaCgodmFsdWUsIGNPZmZzZXQpID0+IHtcclxuICAgICAgICBjb25zdCB0YXJnZXRJbmRleCA9IHN0YXJ0RmxhdHRlbmVkSW5kZXggKyBjT2Zmc2V0O1xyXG4gICAgICAgIGlmICh0YXJnZXRJbmRleCA8IDAgfHwgdGFyZ2V0SW5kZXggPj0gZmxhdHRlbmVkQ29sdW1ucy5sZW5ndGgpIHJldHVybjtcclxuIFxyXG4gICAgICAgIGNvbnN0IHRhcmdldENvbHVtbiA9IGZsYXR0ZW5lZENvbHVtbnNbdGFyZ2V0SW5kZXhdO1xyXG4gICAgICAgIGlmKCF0YXJnZXRDb2x1bW4gfHwgIXRhcmdldENvbHVtbi5pc19lZGl0YWJsZSkgcmV0dXJuO1xyXG4gICAgICAgICBpZiAodGFyZ2V0Q29sdW1uPy50eXBlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29sdW1zLnB1c2godGFyZ2V0Q29sdW1uKTtcclxuICAgICAgICAgICAgdGhpcy5zZXROZXN0ZWRWYWx1ZShyb3csIHRhcmdldENvbHVtbiwgdmFsdWUpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0YXJnZXRDb2x1bW4udHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKCFpc05hTihudW0pICYmIHZhbHVlICE9PSAnJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuY3VycmVudENvbHVtcy5wdXNoKHRhcmdldENvbHVtbik7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXROZXN0ZWRWYWx1ZShyb3csIHRhcmdldENvbHVtbiwgbnVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gXHJcbiAgICByZXR1cm4ge3VwZGF0ZVJvd3MgOiB0aGlzLnVwZGF0ZVJvd3MsIGN1cnJlbnRDb2x1bXMgOiB0aGlzLmN1cnJlbnRDb2x1bXN9O1xyXG4gIH1cclxuXHJcblxyXG4gIHNldE5lc3RlZFZhbHVlKG9iajogYW55LCBjb2x1bW46IGFueSwgb3B0aW9uOiBhbnksIGNhbGxlZEZyb21JbnB1dCA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdkYXRlJyB8fCBjb2x1bW4udHlwZSA9PT0gJ2ltYWdlJykgcmV0dXJuO1xyXG4gICAgY29uc3QgcGF0aCA9IGNvbHVtbi5maWVsZDtcclxuICAgIGlmICghcGF0aCkgcmV0dXJuO1xyXG4gICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoJy4nKTtcclxuICAgIGNvbnN0IGxhc3RLZXkgPSBrZXlzLnBvcCgpO1xyXG4gICAgY29uc3QgcGFyZW50ID0ga2V5cy5yZWR1Y2UoKGFjYzogYW55LCBrZXk6IHN0cmluZykgPT4gKGFjY1trZXldID8/PSB7fSksIG9iaik7XHJcbiAgICBpZiAocGFyZW50ICYmIGxhc3RLZXkpIHtcclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmIG9wdGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICAgIHBhcmVudFtsYXN0S2V5XSA9IHtcclxuICAgICAgICAgIGlkOiBvcHRpb24uaWQgPz8gMSxcclxuICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUgPz8gb3B0aW9uLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyZW50W2xhc3RLZXldID0gb3B0aW9uO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzZW5kT2JqID0ge1xyXG4gICAgICBkYXRhOiB7IC4uLm9iaiB9LFxyXG4gICAgICBldmVudFR5cGU6ICdvbkNlbGxFZGl0JyxcclxuICAgIH07XHJcbiAgICB0aGlzLnVwZGF0ZVJvd3MucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG4gIGN1dFNlbGVjdGVkU2VsZWN0ZWREYXRhKFxyXG4gICAgZGF0YVNldDogYW55W10sXHJcbiAgICByb3dTZWxlY3RlZEluZGV4ZXM6IFNldDxudW1iZXI+LFxyXG4gICAgc2VsZWN0ZWRDZWxsczogYW55W10sXHJcbiAgICBjb2x1bW5zOiBhbnlbXSxcclxuICAgIHNldE5lc3RlZFZhbHVlOiAob2JqOiBhbnksIGNvbHVtbjogYW55LCB2YWx1ZTogYW55KSA9PiB2b2lkXHJcbiAgKTogYW55IHtcclxuICAgIGxldCB1cGRhdGVkRGF0YSA9IFsuLi5kYXRhU2V0XTtcclxuICAgIGlmIChyb3dTZWxlY3RlZEluZGV4ZXM/LnNpemUpIHtcclxuICAgICAgY29uc3QgaW5kZXhlcyA9IFsuLi5yb3dTZWxlY3RlZEluZGV4ZXNdO1xyXG4gICAgICB1cGRhdGVkRGF0YSA9IHVwZGF0ZWREYXRhLmZpbHRlcihcclxuICAgICAgICAocm93OiBhbnkpID0+ICFpbmRleGVzLmluY2x1ZGVzKHJvdy5fX3ZpcnR1YWxJbmRleClcclxuICAgICAgKTtcclxuICAgICAgLy8gcm93U2VsZWN0ZWRJbmRleGVzLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChzZWxlY3RlZENlbGxzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy51cGRhdGVSb3dzID0gW107XHJcbiAgICAgIGZvciAoY29uc3QgY2VsbCBvZiBzZWxlY3RlZENlbGxzKSB7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gdXBkYXRlZERhdGEuZmluZChyID0+IHIuX192aXJ0dWFsSW5kZXggPT09IGNlbGwucm93SW5kZXgpO1xyXG4gICAgICAgIGlmICghcm93KSBjb250aW51ZTtcclxuICAgICAgICBsZXQgY29sID0gY29sdW1uc1tjZWxsLmNvbEluZGV4XTtcclxuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW5bY2VsbC5zdWJDb2xJbmRleF0pIHtcclxuICAgICAgICAgIGNvbCA9IGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXROZXN0ZWRWYWx1ZShyb3csIGNvbCwgJycpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIHNlbGVjdGVkQ2VsbHMubGVuZ3RoID0gMDtcclxuICAgIH1cclxuICAgIHJldHVybiB7dXBkYXRlZERhdGE6IHVwZGF0ZWREYXRhLCB1cGRhdGVkUm93czogdGhpcy51cGRhdGVSb3dzfTtcclxuICB9XHJcblxyXG5cclxuICBjdXRXaXRoQW5pbWF0aW9uKFxyXG4gICAgc2VsZWN0ZWREYXRhOiBhbnlbXVtdLFxyXG4gICAgc2VsZWN0b3IgPSAnLnNlbGVjdGVkLWNlbGwsIC5hY3RpdmUtY2VsbCwgLnJvdy1zZWxlY3RlZCdcclxuICApOiB2b2lkIHtcclxuICAgIGlmICghc2VsZWN0ZWREYXRhIHx8IHNlbGVjdGVkRGF0YS5sZW5ndGggPT09IDApIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0ZXh0VG9Db3B5ID0gc2VsZWN0ZWREYXRhXHJcbiAgICAgIC5tYXAocm93ID0+IHJvdy5tYXAoY2VsbCA9PiAoY2VsbCA/PyAnJykudG9TdHJpbmcoKSkuam9pbignXFx0JykpXHJcbiAgICAgIC5qb2luKCdcXG4nKTtcclxuXHJcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0VG9Db3B5KS5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpKTtcclxuXHJcbiAgICAvLyBBcHBseSByZWQgY3V0IGFuaW1hdGlvblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRFbHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcclxuICAgIHNlbGVjdGVkRWxzLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LmFkZCgnY3V0LWZsYXNoLWJnJykpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHNlbGVjdGVkRWxzLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LnJlbW92ZSgnY3V0LWZsYXNoLWJnJykpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb3B5LXNlcnZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCO1FBMkdGLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBUyxFQUFFLENBQUE7SUE1R1IsQ0FBQztJQUNqQixzQkFBc0IsQ0FDcEIsT0FBYyxFQUNkLE9BQWMsRUFDZCxrQkFBK0IsRUFDL0IsYUFBb0IsRUFDcEIsY0FBK0M7UUFFL0MsTUFBTSxVQUFVLEdBQVksRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksa0JBQWtCLElBQUksa0JBQWtCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtZQUNyRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDcEUsS0FBSyxNQUFNLE1BQU0sSUFBSSxhQUFhLEVBQUU7Z0JBQ2xDLE1BQU0sR0FBRyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsR0FBRztvQkFBRSxTQUFTO2dCQUNuQixNQUFNLFlBQVksR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO29CQUM3QyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUMxQyxNQUFNLEtBQUssR0FDVCxNQUFNLEVBQUUsS0FBSzt3QkFDYixNQUFNLEVBQUUsSUFBSTt3QkFDWixNQUFNO3dCQUNOLEdBQUcsQ0FBQztvQkFFTixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3hCLE9BQU8sS0FBSzs2QkFDVCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDUCxPQUFPLENBQUMsS0FBSyxRQUFROzRCQUNuQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDOzRCQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQzFCOzZCQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZjtvQkFDRCxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQztnQkFDRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMvQixJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7d0JBQy9DLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFvQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7cUJBQzFFO29CQUNELE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMvRSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzVCO1NBQ0Y7UUFDRCxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztZQUN6QyxLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsRUFBRTtnQkFDaEMsTUFBTSxHQUFHLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsR0FBRztvQkFBRSxTQUFTO2dCQUNuQixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLFNBQVMsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDO2dCQUMzQixJQUFJLEdBQUcsRUFBRSxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ25ELFNBQVMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUM7aUJBQ2xEO2dCQUNELElBQUksS0FBSyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsRUFBRSxJQUFJLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQzVILElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDeEIsS0FBSyxHQUFHLEtBQUs7eUJBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ1AsT0FBTyxDQUFDLEtBQUssUUFBUTt3QkFDbkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFO3dCQUN0QyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDeEI7eUJBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNmO3FCQUFNO29CQUNMLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO2lCQUNyQjtnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFELElBQUksVUFBVTtnQkFBRSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakU7UUFFRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU87Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxlQUFlLENBQ2IsWUFBcUIsRUFDckIsUUFBUSxHQUFHLDZDQUE2QztRQUV4RCxJQUFJLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDdkQsTUFBTSxVQUFVLEdBQUcsWUFBWTthQUM1QixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN4RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUtELEtBQUssQ0FBQyxzQkFBc0IsQ0FDMUIsSUFBWSxFQUNaLE9BQWMsRUFDZCxPQUFjLEVBQ2QsYUFBcUIsRUFDckIsYUFBcUIsRUFDckIsbUJBQTJCLENBQUM7UUFFNUIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLGdCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUU7Z0JBQ3hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hGO2lCQUFNO2dCQUNMLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsbUJBQW1CLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7WUFDOUIsbUJBQW1CLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNqRjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDbEMsTUFBTSxjQUFjLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUMvQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLGNBQWMsS0FBSyxjQUFjLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPO1lBRWpCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0JBQ25DLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixHQUFHLE9BQU8sQ0FBQztnQkFDbEQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxJQUFJLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNO29CQUFFLE9BQU87Z0JBRXRFLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNuRCxJQUFHLENBQUMsWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7b0JBQUUsT0FBTztnQkFDckQsSUFBSSxZQUFZLEVBQUUsSUFBSSxLQUFLLFFBQVEsRUFBRTtvQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDL0M7cUJBQU0sSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtvQkFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7d0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQzdDO2lCQUNGO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sRUFBQyxVQUFVLEVBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUcsSUFBSSxDQUFDLGFBQWEsRUFBQyxDQUFDO0lBQzVFLENBQUM7SUFHRCxjQUFjLENBQUMsR0FBUSxFQUFFLE1BQVcsRUFBRSxNQUFXLEVBQUUsZUFBZSxHQUFHLEtBQUs7UUFDeEUsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU87WUFBRSxPQUFPO1FBQzlELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RSxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUU7WUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtnQkFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHO29CQUNoQixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDO29CQUNsQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNO2lCQUM5QixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQzthQUMxQjtTQUNGO1FBQ0QsTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRTtZQUNoQixTQUFTLEVBQUUsWUFBWTtTQUN4QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUdELHVCQUF1QixDQUNyQixPQUFjLEVBQ2Qsa0JBQStCLEVBQy9CLGFBQW9CLEVBQ3BCLE9BQWMsRUFDZCxjQUEyRDtRQUUzRCxJQUFJLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDL0IsSUFBSSxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7WUFDNUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUM7WUFDeEMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQzlCLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUNwRCxDQUFDO1lBQ0YsOEJBQThCO1NBQy9CO2FBQ0ksSUFBSSxhQUFhLEVBQUUsTUFBTSxFQUFFO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLEtBQUssTUFBTSxJQUFJLElBQUksYUFBYSxFQUFFO2dCQUNoQyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxHQUFHO29CQUFFLFNBQVM7Z0JBQ25CLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksR0FBRyxFQUFFLFFBQVEsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDbkQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUN0QztnQkFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDbkM7WUFDRCw0QkFBNEI7U0FDN0I7UUFDRCxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBQyxDQUFDO0lBQ2xFLENBQUM7SUFHRCxnQkFBZ0IsQ0FDZCxZQUFxQixFQUNyQixRQUFRLEdBQUcsNkNBQTZDO1FBRXhELElBQUksQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUV2RCxNQUFNLFVBQVUsR0FBRyxZQUFZO2FBQzVCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFZCxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFM0UsMEJBQTBCO1FBQzFCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUM1RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0FuUFUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcHlTZXJ2aWNlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbiAgZ2V0U2VsZWN0ZWREYXRhRm9yQ29weShcclxuICAgIGRhdGFTZXQ6IGFueVtdLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICByb3dTZWxlY3RlZEluZGV4ZXM6IFNldDxudW1iZXI+LFxyXG4gICAgc2VsZWN0ZWRDZWxsczogYW55W10sXHJcbiAgICBnZXROZXN0ZWRWYWx1ZTogKG9iajogYW55LCBwYXRoOiBzdHJpbmcpID0+IGFueVxyXG4gICk6IGFueVtdW10ge1xyXG4gICAgY29uc3QgY29waWVkUm93czogYW55W11bXSA9IFtdO1xyXG4gICAgY29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuaXNfdmlzaWJsZSk7XHJcbiAgICBjb25zdCBmaW5kUm93QnlWaXJ0dWFsSW5kZXggPSAodkluZGV4OiBudW1iZXIpID0+XHJcbiAgICAgIGRhdGFTZXQuZmluZCgocjogYW55KSA9PiByLl9fdmlydHVhbEluZGV4ID09PSB2SW5kZXgpO1xyXG4gICAgaWYgKHJvd1NlbGVjdGVkSW5kZXhlcyAmJiByb3dTZWxlY3RlZEluZGV4ZXMuc2l6ZSA+IDApIHtcclxuICAgICAgY29uc3Qgc29ydGVkSW5kZXhlcyA9IFsuLi5yb3dTZWxlY3RlZEluZGV4ZXNdLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcclxuICAgICAgZm9yIChjb25zdCB2SW5kZXggb2Ygc29ydGVkSW5kZXhlcykge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IGZpbmRSb3dCeVZpcnR1YWxJbmRleCh2SW5kZXgpO1xyXG4gICAgICAgIGlmICghcm93KSBjb250aW51ZTtcclxuICAgICAgICBjb25zdCBleHRyYWN0VmFsdWUgPSAoZmllbGQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuZXN0ZWQgPSBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkKTtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID1cclxuICAgICAgICAgICAgbmVzdGVkPy52YWx1ZSA/P1xyXG4gICAgICAgICAgICBuZXN0ZWQ/Lm5hbWUgPz9cclxuICAgICAgICAgICAgbmVzdGVkID8/XHJcbiAgICAgICAgICAgICctJztcclxuXHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgICAgICAgICAgLm1hcCh2ID0+XHJcbiAgICAgICAgICAgICAgICB0eXBlb2YgdiA9PT0gJ29iamVjdCdcclxuICAgICAgICAgICAgICAgICAgPyAodi5kZXBhcnRtZW50TmFtZSA/PyB2LnJvbGVOYW1lID8/ICcnKVxyXG4gICAgICAgICAgICAgICAgICA6ICh2Py50b1N0cmluZygpID8/ICcnKVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAuam9pbignLCAnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZSA/PyAnJztcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IGNvbHVtbnMubWFwKGNvbCA9PiB7XHJcbiAgICAgICAgICBpZiAoY29sLmNoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gY29sLmNoaWxkcmVuLm1hcCgoYzogeyBmaWVsZDogc3RyaW5nIH0pID0+IGV4dHJhY3RWYWx1ZShjLmZpZWxkKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gW2V4dHJhY3RWYWx1ZShjb2wuZmllbGQpXTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCByb3dWYWx1ZXMgPSBtYXBwZWQucmVkdWNlPHN0cmluZ1tdPigoYWNjLCBjdXJyKSA9PiBhY2MuY29uY2F0KGN1cnIpLCBbXSk7XHJcbiAgICAgICAgY29waWVkUm93cy5wdXNoKHJvd1ZhbHVlcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChzZWxlY3RlZENlbGxzICYmIHNlbGVjdGVkQ2VsbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCByb3dzTWFwID0gbmV3IE1hcDxudW1iZXIsIGFueVtdPigpO1xyXG4gICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygc2VsZWN0ZWRDZWxscykge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IGZpbmRSb3dCeVZpcnR1YWxJbmRleChjZWxsLnJvd0luZGV4KTtcclxuICAgICAgICBpZiAoIXJvdykgY29udGludWU7XHJcbiAgICAgICAgY29uc3QgY29sID0gY29sdW1uc1tjZWxsLmNvbEluZGV4XTtcclxuICAgICAgICBsZXQgZmllbGROYW1lID0gY29sPy5maWVsZDtcclxuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW5bY2VsbC5zdWJDb2xJbmRleF0pIHtcclxuICAgICAgICAgIGZpZWxkTmFtZSA9IGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XS5maWVsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocm93LCBmaWVsZE5hbWUpIHx8IGdldE5lc3RlZFZhbHVlKHJvdywgZmllbGROYW1lKT8ubmFtZSB8fCBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkTmFtZSkgfHwgJy0nO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZVxyXG4gICAgICAgICAgICAubWFwKHYgPT5cclxuICAgICAgICAgICAgICB0eXBlb2YgdiA9PT0gJ29iamVjdCdcclxuICAgICAgICAgICAgICAgID8gdi5kZXBhcnRtZW50TmFtZSA/PyB2LnJvbGVOYW1lID8/ICcnXHJcbiAgICAgICAgICAgICAgICA6IHY/LnRvU3RyaW5nKCkgPz8gJydcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuam9pbignLCAnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZSA/PyAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFyb3dzTWFwLmhhcyhjZWxsLnJvd0luZGV4KSkgcm93c01hcC5zZXQoY2VsbC5yb3dJbmRleCwgW10pO1xyXG4gICAgICAgIHJvd3NNYXAuZ2V0KGNlbGwucm93SW5kZXgpIS5wdXNoKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzb3J0ZWRDZWxscyA9IFsuLi5yb3dzTWFwLmVudHJpZXMoKV1cclxuICAgICAgICAuc29ydCgoW2FdLCBbYl0pID0+IGEgLSBiKVxyXG4gICAgICAgIC5tYXAoKFtfLCB2XSkgPT4gdik7XHJcbiAgICAgIGNvcGllZFJvd3MucHVzaCguLi5zb3J0ZWRDZWxscyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29waWVkUm93cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc3QgYWN0aXZlQ2VsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hY3RpdmUtY2VsbCcpO1xyXG4gICAgICBpZiAoYWN0aXZlQ2VsbCkgcmV0dXJuIFtbYWN0aXZlQ2VsbC50ZXh0Q29udGVudD8udHJpbSgpIHx8ICcnXV07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWF4Q29scyA9IGNvcGllZFJvd3MucmVkdWNlKChtYXgsIHJvdykgPT4gTWF0aC5tYXgobWF4LCByb3cubGVuZ3RoKSwgMCk7XHJcbiAgICByZXR1cm4gY29waWVkUm93cy5tYXAocm93ID0+IHtcclxuICAgICAgY29uc3QgbmV3Um93ID0gWy4uLnJvd107XHJcbiAgICAgIHdoaWxlIChuZXdSb3cubGVuZ3RoIDwgbWF4Q29scykgbmV3Um93LnB1c2goJycpO1xyXG4gICAgICByZXR1cm4gbmV3Um93O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29weVRvQ2xpcGJvYXJkKFxyXG4gICAgc2VsZWN0ZWREYXRhOiBhbnlbXVtdLFxyXG4gICAgc2VsZWN0b3IgPSAnLnNlbGVjdGVkLWNlbGwsIC5hY3RpdmUtY2VsbCwgLnJvdy1zZWxlY3RlZCdcclxuICApOiB2b2lkIHtcclxuICAgIGlmICghc2VsZWN0ZWREYXRhIHx8IHNlbGVjdGVkRGF0YS5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IHRleHRUb0NvcHkgPSBzZWxlY3RlZERhdGFcclxuICAgICAgLm1hcChyb3cgPT4gcm93Lm1hcChjZWxsID0+IChjZWxsID8/ICcnKS50b1N0cmluZygpKS5qb2luKCdcXHQnKSlcclxuICAgICAgLmpvaW4oJ1xcbicpO1xyXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dFRvQ29weSkuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSk7XHJcbiAgICBjb25zdCBzZWxlY3RlZEVscyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xyXG4gICAgc2VsZWN0ZWRFbHMuZm9yRWFjaChlbCA9PiBlbC5jbGFzc0xpc3QuYWRkKCdmbGFzaC1iZycpKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2ZsYXNoLWJnJykpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuXHJcbnVwZGF0ZVJvd3M6IGFueVtdID0gW107XHJcbiAgY3VycmVudENvbHVtcyA6IGFueSA9IFtdXHJcbiAgYXN5bmMgcGFzdGVGcm9tQ2xpcGJvYXJkVGV4dChcclxuICAgIHRleHQ6IHN0cmluZyxcclxuICAgIGRhdGFTZXQ6IGFueVtdLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICBzdGFydFJvd0luZGV4OiBudW1iZXIsXHJcbiAgICBzdGFydENvbEluZGV4OiBudW1iZXIsXHJcbiAgICBzdGFydFN1YkNvbEluZGV4OiBudW1iZXIgPSAwXHJcbiAgKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICghdGV4dCkgcmV0dXJuIFtdO1xyXG4gICAgdGhpcy51cGRhdGVSb3dzID0gW107XHJcbiAgICBjb25zdCByb3dzID0gdGV4dC5zcGxpdCgvXFxyP1xcbi8pLm1hcChyID0+IHIuc3BsaXQoJ1xcdCcpKTtcclxuICAgIGNvbnN0IGZsYXR0ZW5lZENvbHVtbnM6IGFueVtdID0gW107XHJcbiAgICBjb2x1bW5zLmZvckVhY2goY29sID0+IHtcclxuICAgICAgaWYgKGNvbC5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29sLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IGZsYXR0ZW5lZENvbHVtbnMucHVzaCh7IHBhcmVudDogY29sLCAuLi5jaGlsZCB9KSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmxhdHRlbmVkQ29sdW1ucy5wdXNoKGNvbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgbGV0IHN0YXJ0RmxhdHRlbmVkSW5kZXggPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFydENvbEluZGV4OyBpKyspIHtcclxuICAgICAgY29uc3QgY29sID0gY29sdW1uc1tpXTtcclxuICAgICAgc3RhcnRGbGF0dGVuZWRJbmRleCArPSBjb2wuY2hpbGRyZW4/Lmxlbmd0aCB8fCAxO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RhcnRDb2wgPSBjb2x1bW5zW3N0YXJ0Q29sSW5kZXhdO1xyXG4gICAgaWYgKHN0YXJ0Q29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgIHN0YXJ0RmxhdHRlbmVkSW5kZXggKz0gTWF0aC5taW4oc3RhcnRTdWJDb2xJbmRleCwgc3RhcnRDb2wuY2hpbGRyZW4ubGVuZ3RoIC0gMSk7XHJcbiAgICB9XHJcbiBcclxuICAgIHJvd3MuZm9yRWFjaCgocm93VmFsdWVzLCByT2Zmc2V0KSA9PiB7XHJcbiAgICAgIGNvbnN0IHRhcmdldFJvd0luZGV4ID0gc3RhcnRSb3dJbmRleCArIHJPZmZzZXQ7XHJcbiAgICAgIGNvbnN0IHJvdyA9IGRhdGFTZXQuZmluZChyID0+IHI/Ll9fdmlydHVhbEluZGV4ID09PSB0YXJnZXRSb3dJbmRleCk7XHJcbiAgICAgIGlmICghcm93KSByZXR1cm47XHJcbiBcclxuICAgICAgcm93VmFsdWVzLmZvckVhY2goKHZhbHVlLCBjT2Zmc2V0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBzdGFydEZsYXR0ZW5lZEluZGV4ICsgY09mZnNldDtcclxuICAgICAgICBpZiAodGFyZ2V0SW5kZXggPCAwIHx8IHRhcmdldEluZGV4ID49IGZsYXR0ZW5lZENvbHVtbnMubGVuZ3RoKSByZXR1cm47XHJcbiBcclxuICAgICAgICBjb25zdCB0YXJnZXRDb2x1bW4gPSBmbGF0dGVuZWRDb2x1bW5zW3RhcmdldEluZGV4XTtcclxuICAgICAgICBpZighdGFyZ2V0Q29sdW1uIHx8ICF0YXJnZXRDb2x1bW4uaXNfZWRpdGFibGUpIHJldHVybjtcclxuICAgICAgICAgaWYgKHRhcmdldENvbHVtbj8udHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudENvbHVtcy5wdXNoKHRhcmdldENvbHVtbik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCB0YXJnZXRDb2x1bW4sIHZhbHVlKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0Q29sdW1uLnR5cGUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmICghaXNOYU4obnVtKSAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDb2x1bXMucHVzaCh0YXJnZXRDb2x1bW4pO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCB0YXJnZXRDb2x1bW4sIG51bSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuIFxyXG4gICAgcmV0dXJuIHt1cGRhdGVSb3dzIDogdGhpcy51cGRhdGVSb3dzLCBjdXJyZW50Q29sdW1zIDogdGhpcy5jdXJyZW50Q29sdW1zfTtcclxuICB9XHJcblxyXG5cclxuICBzZXROZXN0ZWRWYWx1ZShvYmo6IGFueSwgY29sdW1uOiBhbnksIG9wdGlvbjogYW55LCBjYWxsZWRGcm9tSW5wdXQgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbHVtbi50eXBlID09PSAnZGF0ZScgfHwgY29sdW1uLnR5cGUgPT09ICdpbWFnZScpIHJldHVybjtcclxuICAgIGNvbnN0IHBhdGggPSBjb2x1bW4uZmllbGQ7XHJcbiAgICBpZiAoIXBhdGgpIHJldHVybjtcclxuICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XHJcbiAgICBjb25zdCBsYXN0S2V5ID0ga2V5cy5wb3AoKTtcclxuICAgIGNvbnN0IHBhcmVudCA9IGtleXMucmVkdWNlKChhY2M6IGFueSwga2V5OiBzdHJpbmcpID0+IChhY2Nba2V5XSA/Pz0ge30pLCBvYmopO1xyXG4gICAgaWYgKHBhcmVudCAmJiBsYXN0S2V5KSB7XHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiBvcHRpb24gIT09IG51bGwpIHtcclxuICAgICAgICBwYXJlbnRbbGFzdEtleV0gPSB7XHJcbiAgICAgICAgICBpZDogb3B0aW9uLmlkID8/IDEsXHJcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlID8/IG9wdGlvbixcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmVudFtsYXN0S2V5XSA9IG9wdGlvbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3Qgc2VuZE9iaiA9IHtcclxuICAgICAgZGF0YTogeyAuLi5vYmogfSxcclxuICAgICAgZXZlbnRUeXBlOiAnb25DZWxsRWRpdCcsXHJcbiAgICB9O1xyXG4gICAgdGhpcy51cGRhdGVSb3dzLnB1c2gob2JqKTtcclxuICB9XHJcblxyXG5cclxuICBjdXRTZWxlY3RlZFNlbGVjdGVkRGF0YShcclxuICAgIGRhdGFTZXQ6IGFueVtdLFxyXG4gICAgcm93U2VsZWN0ZWRJbmRleGVzOiBTZXQ8bnVtYmVyPixcclxuICAgIHNlbGVjdGVkQ2VsbHM6IGFueVtdLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICBzZXROZXN0ZWRWYWx1ZTogKG9iajogYW55LCBjb2x1bW46IGFueSwgdmFsdWU6IGFueSkgPT4gdm9pZFxyXG4gICk6IGFueSB7XHJcbiAgICBsZXQgdXBkYXRlZERhdGEgPSBbLi4uZGF0YVNldF07XHJcbiAgICBpZiAocm93U2VsZWN0ZWRJbmRleGVzPy5zaXplKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ZXMgPSBbLi4ucm93U2VsZWN0ZWRJbmRleGVzXTtcclxuICAgICAgdXBkYXRlZERhdGEgPSB1cGRhdGVkRGF0YS5maWx0ZXIoXHJcbiAgICAgICAgKHJvdzogYW55KSA9PiAhaW5kZXhlcy5pbmNsdWRlcyhyb3cuX192aXJ0dWFsSW5kZXgpXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIHJvd1NlbGVjdGVkSW5kZXhlcy5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc2VsZWN0ZWRDZWxscz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlUm93cyA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygc2VsZWN0ZWRDZWxscykge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IHVwZGF0ZWREYXRhLmZpbmQociA9PiByLl9fdmlydHVhbEluZGV4ID09PSBjZWxsLnJvd0luZGV4KTtcclxuICAgICAgICBpZiAoIXJvdykgY29udGludWU7XHJcbiAgICAgICAgbGV0IGNvbCA9IGNvbHVtbnNbY2VsbC5jb2xJbmRleF07XHJcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4gJiYgY29sLmNoaWxkcmVuW2NlbGwuc3ViQ29sSW5kZXhdKSB7XHJcbiAgICAgICAgICBjb2wgPSBjb2wuY2hpbGRyZW5bY2VsbC5zdWJDb2xJbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCBjb2wsICcnKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBzZWxlY3RlZENlbGxzLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge3VwZGF0ZWREYXRhOiB1cGRhdGVkRGF0YSwgdXBkYXRlZFJvd3M6IHRoaXMudXBkYXRlUm93c307XHJcbiAgfVxyXG5cclxuXHJcbiAgY3V0V2l0aEFuaW1hdGlvbihcclxuICAgIHNlbGVjdGVkRGF0YTogYW55W11bXSxcclxuICAgIHNlbGVjdG9yID0gJy5zZWxlY3RlZC1jZWxsLCAuYWN0aXZlLWNlbGwsIC5yb3ctc2VsZWN0ZWQnXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoIXNlbGVjdGVkRGF0YSB8fCBzZWxlY3RlZERhdGEubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdGV4dFRvQ29weSA9IHNlbGVjdGVkRGF0YVxyXG4gICAgICAubWFwKHJvdyA9PiByb3cubWFwKGNlbGwgPT4gKGNlbGwgPz8gJycpLnRvU3RyaW5nKCkpLmpvaW4oJ1xcdCcpKVxyXG4gICAgICAuam9pbignXFxuJyk7XHJcblxyXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dFRvQ29weSkuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSk7XHJcblxyXG4gICAgLy8gQXBwbHkgcmVkIGN1dCBhbmltYXRpb25cclxuICAgIGNvbnN0IHNlbGVjdGVkRWxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XHJcbiAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5hZGQoJ2N1dC1mbGFzaC1iZycpKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2N1dC1mbGFzaC1iZycpKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SwapColumnsService {
|
|
4
|
+
constructor() { }
|
|
5
|
+
deepClone(obj) {
|
|
6
|
+
return JSON.parse(JSON.stringify(obj));
|
|
7
|
+
}
|
|
8
|
+
flattenColumnsWithPaths(columns) {
|
|
9
|
+
const result = [];
|
|
10
|
+
const recurse = (cols, currentPath = []) => {
|
|
11
|
+
cols.forEach((col, index) => {
|
|
12
|
+
const path = [...currentPath, index];
|
|
13
|
+
result.push({ col, path });
|
|
14
|
+
if (Array.isArray(col.children)) {
|
|
15
|
+
recurse(col.children, path);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
recurse(columns);
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
findColumnByIndex(columns, index, flat, _path = [], currentPath = []) {
|
|
23
|
+
for (let i = 0; i < columns.length; i++) {
|
|
24
|
+
const col = columns[i];
|
|
25
|
+
const nextPath = [...currentPath, i];
|
|
26
|
+
if (flat[index] === col) {
|
|
27
|
+
return { column: col, parent: columns, path: nextPath };
|
|
28
|
+
}
|
|
29
|
+
if (Array.isArray(col?.children)) {
|
|
30
|
+
const result = this.findColumnByIndex(col?.children, index, flat, _path, nextPath);
|
|
31
|
+
if (result)
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
insertAtPath(columns, path, newColumn) {
|
|
38
|
+
const cloned = this.deepClone(columns);
|
|
39
|
+
let current = cloned;
|
|
40
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
41
|
+
if (!current[path[i]]?.children) {
|
|
42
|
+
current[path[i]].children = [];
|
|
43
|
+
}
|
|
44
|
+
current = current[path[i]]?.children;
|
|
45
|
+
}
|
|
46
|
+
const insertIndex = path[path.length - 1];
|
|
47
|
+
current.splice(insertIndex, 0, newColumn);
|
|
48
|
+
return cloned;
|
|
49
|
+
}
|
|
50
|
+
removeAtPath(columns, path) {
|
|
51
|
+
const cloned = this.deepClone(columns);
|
|
52
|
+
let current = cloned;
|
|
53
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
54
|
+
if (!current[path[i]]?.children) {
|
|
55
|
+
return cloned; // Safety: path is invalid
|
|
56
|
+
}
|
|
57
|
+
current = current[path[i]]?.children;
|
|
58
|
+
}
|
|
59
|
+
const removeIndex = path[path.length - 1];
|
|
60
|
+
if (Array.isArray(current) && current.length > removeIndex) {
|
|
61
|
+
current.splice(removeIndex, 1);
|
|
62
|
+
}
|
|
63
|
+
return cloned;
|
|
64
|
+
}
|
|
65
|
+
swapColumnsInTree(currentColumn, columns, fromIndex, toIndex) {
|
|
66
|
+
const flat = this.flattenColumnsWithPaths(columns);
|
|
67
|
+
if (fromIndex < 0 ||
|
|
68
|
+
toIndex < 0 ||
|
|
69
|
+
fromIndex >= flat.length ||
|
|
70
|
+
toIndex >= flat.length) {
|
|
71
|
+
return columns; // invalid indices
|
|
72
|
+
}
|
|
73
|
+
const fromInfo = this.findColumnByIndex(columns, fromIndex, flat);
|
|
74
|
+
const toInfo = this.findColumnByIndex(columns, toIndex, flat);
|
|
75
|
+
if (!fromInfo || !toInfo)
|
|
76
|
+
return columns;
|
|
77
|
+
const fromCol = fromInfo.column;
|
|
78
|
+
const toCol = toInfo.column;
|
|
79
|
+
let updatedCols = this.removeAtPath(columns, fromInfo.path);
|
|
80
|
+
// Case 1: Same parent
|
|
81
|
+
if (JSON.stringify(fromInfo.path.slice(0, -1)) ===
|
|
82
|
+
JSON.stringify(toInfo.path.slice(0, -1))) {
|
|
83
|
+
return this.insertAtPath(updatedCols, toInfo.path, fromCol);
|
|
84
|
+
}
|
|
85
|
+
// Case 2: Drop target is a group header
|
|
86
|
+
if (Array.isArray(toCol?.children)) {
|
|
87
|
+
const cloned = this.deepClone(updatedCols);
|
|
88
|
+
let parent = cloned;
|
|
89
|
+
for (let i = 0; i < toInfo.path.length - 1; i++) {
|
|
90
|
+
parent = parent[toInfo.path[i]].children;
|
|
91
|
+
}
|
|
92
|
+
const target = parent[toInfo.path[toInfo.path.length - 1]];
|
|
93
|
+
if (!target.children) {
|
|
94
|
+
target.children = [];
|
|
95
|
+
}
|
|
96
|
+
target.children.push(fromCol);
|
|
97
|
+
return cloned;
|
|
98
|
+
}
|
|
99
|
+
// Case 3: Drop target is a regular column → wrap both into a group
|
|
100
|
+
const groupHeader = {
|
|
101
|
+
headerName: toCol.headerName || 'Group',
|
|
102
|
+
children: [toCol, fromCol],
|
|
103
|
+
};
|
|
104
|
+
// Remove target from its original location
|
|
105
|
+
updatedCols = this.removeAtPath(updatedCols, toInfo.path);
|
|
106
|
+
// Insert group at target index
|
|
107
|
+
return this.insertAtPath(updatedCols, toInfo.path, groupHeader);
|
|
108
|
+
}
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwapColumnsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
110
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwapColumnsService, providedIn: 'root' }); }
|
|
111
|
+
}
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwapColumnsService, decorators: [{
|
|
113
|
+
type: Injectable,
|
|
114
|
+
args: [{
|
|
115
|
+
providedIn: 'root',
|
|
116
|
+
}]
|
|
117
|
+
}], ctorParameters: function () { return []; } });
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhcC1jb2x1bW5zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9zd2FwLWNvbHVtbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFaEIsU0FBUyxDQUFDLEdBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsT0FBYztRQUNwQyxNQUFNLE1BQU0sR0FBbUMsRUFBRSxDQUFDO1FBRWxELE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBVyxFQUFFLGNBQXdCLEVBQUUsRUFBRSxFQUFFO1lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFFM0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQzdCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGlCQUFpQixDQUNmLE9BQWMsRUFDZCxLQUFhLEVBQ2IsSUFBVyxFQUNYLFFBQW9CLEVBQUUsRUFDdEIsY0FBd0IsRUFBRTtRQUUxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVyQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO2FBQ3pEO1lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUNuQyxHQUFHLEVBQUUsUUFBUSxFQUNiLEtBQUssRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLFFBQVEsQ0FDVCxDQUFDO2dCQUNGLElBQUksTUFBTTtvQkFBRSxPQUFPLE1BQU0sQ0FBQzthQUMzQjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWMsRUFBRSxJQUFjLEVBQUUsU0FBYztRQUN6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUU7Z0JBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2FBQ2pDO1lBRUQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7U0FDdEM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFjLEVBQUUsSUFBYztRQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUU7Z0JBQy9CLE9BQU8sTUFBTSxDQUFDLENBQUMsMEJBQTBCO2FBQzFDO1lBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7U0FDdEM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxXQUFXLEVBQUU7WUFDMUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDaEM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsaUJBQWlCLENBQ2YsYUFBa0IsRUFDbEIsT0FBYyxFQUNkLFNBQWlCLEVBQ2pCLE9BQWU7UUFFZixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkQsSUFDRSxTQUFTLEdBQUcsQ0FBQztZQUNiLE9BQU8sR0FBRyxDQUFDO1lBQ1gsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQ3hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUN0QjtZQUNBLE9BQU8sT0FBTyxDQUFDLENBQUMsa0JBQWtCO1NBQ25DO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUV6QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFNUIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVELHNCQUFzQjtRQUN0QixJQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN4QztZQUNBLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM3RDtRQUVELHdDQUF3QztRQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0MsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBRXBCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzthQUMxQztZQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2FBQ3RCO1lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUVELG1FQUFtRTtRQUNuRSxNQUFNLFdBQVcsR0FBRztZQUNsQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxPQUFPO1lBQ3ZDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7U0FDM0IsQ0FBQztRQUVGLDJDQUEyQztRQUMzQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFELCtCQUErQjtRQUMvQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEUsQ0FBQzsrR0EzSlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTd2FwQ29sdW1uc1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgZGVlcENsb25lKG9iajogYW55KSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcclxuICB9XHJcblxyXG4gIGZsYXR0ZW5Db2x1bW5zV2l0aFBhdGhzKGNvbHVtbnM6IGFueVtdKTogeyBjb2w6IGFueTsgcGF0aDogbnVtYmVyW10gfVtdIHtcclxuICAgIGNvbnN0IHJlc3VsdDogeyBjb2w6IGFueTsgcGF0aDogbnVtYmVyW10gfVtdID0gW107XHJcblxyXG4gICAgY29uc3QgcmVjdXJzZSA9IChjb2xzOiBhbnlbXSwgY3VycmVudFBhdGg6IG51bWJlcltdID0gW10pID0+IHtcclxuICAgICAgY29scy5mb3JFYWNoKChjb2wsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IFsuLi5jdXJyZW50UGF0aCwgaW5kZXhdO1xyXG4gICAgICAgIHJlc3VsdC5wdXNoKHsgY29sLCBwYXRoIH0pO1xyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICByZWN1cnNlKGNvbC5jaGlsZHJlbiwgcGF0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmVjdXJzZShjb2x1bW5zKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBmaW5kQ29sdW1uQnlJbmRleChcclxuICAgIGNvbHVtbnM6IGFueVtdLFxyXG4gICAgaW5kZXg6IG51bWJlcixcclxuICAgIGZsYXQ6IGFueVtdLFxyXG4gICAgX3BhdGg6IG51bWJlcltdW10gPSBbXSxcclxuICAgIGN1cnJlbnRQYXRoOiBudW1iZXJbXSA9IFtdXHJcbiAgKTogeyBjb2x1bW46IGFueTsgcGFyZW50OiBhbnlbXTsgcGF0aDogbnVtYmVyW10gfSB8IG51bGwge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGNvbCA9IGNvbHVtbnNbaV07XHJcbiAgICAgIGNvbnN0IG5leHRQYXRoID0gWy4uLmN1cnJlbnRQYXRoLCBpXTtcclxuXHJcbiAgICAgIGlmIChmbGF0W2luZGV4XSA9PT0gY29sKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgY29sdW1uOiBjb2wsIHBhcmVudDogY29sdW1ucywgcGF0aDogbmV4dFBhdGggfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29sPy5jaGlsZHJlbikpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRDb2x1bW5CeUluZGV4KFxyXG4gICAgICAgICAgY29sPy5jaGlsZHJlbixcclxuICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgZmxhdCxcclxuICAgICAgICAgIF9wYXRoLFxyXG4gICAgICAgICAgbmV4dFBhdGhcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHJldHVybiByZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGluc2VydEF0UGF0aChjb2x1bW5zOiBhbnlbXSwgcGF0aDogbnVtYmVyW10sIG5ld0NvbHVtbjogYW55KTogYW55W10ge1xyXG4gICAgY29uc3QgY2xvbmVkID0gdGhpcy5kZWVwQ2xvbmUoY29sdW1ucyk7XHJcbiAgICBsZXQgY3VycmVudCA9IGNsb25lZDtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmICghY3VycmVudFtwYXRoW2ldXT8uY2hpbGRyZW4pIHtcclxuICAgICAgICBjdXJyZW50W3BhdGhbaV1dIS5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjdXJyZW50ID0gY3VycmVudFtwYXRoW2ldXT8uY2hpbGRyZW47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5zZXJ0SW5kZXggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XHJcbiAgICBjdXJyZW50LnNwbGljZShpbnNlcnRJbmRleCwgMCwgbmV3Q29sdW1uKTtcclxuICAgIHJldHVybiBjbG9uZWQ7XHJcbiAgfVxyXG5cclxuICByZW1vdmVBdFBhdGgoY29sdW1uczogYW55W10sIHBhdGg6IG51bWJlcltdKTogYW55W10ge1xyXG4gICAgY29uc3QgY2xvbmVkID0gdGhpcy5kZWVwQ2xvbmUoY29sdW1ucyk7XHJcbiAgICBsZXQgY3VycmVudCA9IGNsb25lZDtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmICghY3VycmVudFtwYXRoW2ldXT8uY2hpbGRyZW4pIHtcclxuICAgICAgICByZXR1cm4gY2xvbmVkOyAvLyBTYWZldHk6IHBhdGggaXMgaW52YWxpZFxyXG4gICAgICB9XHJcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhdGhbaV1dPy5jaGlsZHJlbjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZW1vdmVJbmRleCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnQpICYmIGN1cnJlbnQubGVuZ3RoID4gcmVtb3ZlSW5kZXgpIHtcclxuICAgICAgY3VycmVudC5zcGxpY2UocmVtb3ZlSW5kZXgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjbG9uZWQ7XHJcbiAgfVxyXG5cclxuICBzd2FwQ29sdW1uc0luVHJlZShcclxuICAgIGN1cnJlbnRDb2x1bW46IGFueSxcclxuICAgIGNvbHVtbnM6IGFueVtdLFxyXG4gICAgZnJvbUluZGV4OiBudW1iZXIsXHJcbiAgICB0b0luZGV4OiBudW1iZXJcclxuICApOiBhbnlbXSB7XHJcbiAgICBjb25zdCBmbGF0ID0gdGhpcy5mbGF0dGVuQ29sdW1uc1dpdGhQYXRocyhjb2x1bW5zKTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIGZyb21JbmRleCA8IDAgfHxcclxuICAgICAgdG9JbmRleCA8IDAgfHxcclxuICAgICAgZnJvbUluZGV4ID49IGZsYXQubGVuZ3RoIHx8XHJcbiAgICAgIHRvSW5kZXggPj0gZmxhdC5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gY29sdW1uczsgLy8gaW52YWxpZCBpbmRpY2VzXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZnJvbUluZm8gPSB0aGlzLmZpbmRDb2x1bW5CeUluZGV4KGNvbHVtbnMsIGZyb21JbmRleCwgZmxhdCk7XHJcbiAgICBjb25zdCB0b0luZm8gPSB0aGlzLmZpbmRDb2x1bW5CeUluZGV4KGNvbHVtbnMsIHRvSW5kZXgsIGZsYXQpO1xyXG5cclxuICAgIGlmICghZnJvbUluZm8gfHwgIXRvSW5mbykgcmV0dXJuIGNvbHVtbnM7XHJcblxyXG4gICAgY29uc3QgZnJvbUNvbCA9IGZyb21JbmZvLmNvbHVtbjtcclxuICAgIGNvbnN0IHRvQ29sID0gdG9JbmZvLmNvbHVtbjtcclxuXHJcbiAgICBsZXQgdXBkYXRlZENvbHMgPSB0aGlzLnJlbW92ZUF0UGF0aChjb2x1bW5zLCBmcm9tSW5mby5wYXRoKTtcclxuXHJcbiAgICAvLyBDYXNlIDE6IFNhbWUgcGFyZW50XHJcbiAgICBpZiAoXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGZyb21JbmZvLnBhdGguc2xpY2UoMCwgLTEpKSA9PT1cclxuICAgICAgSlNPTi5zdHJpbmdpZnkodG9JbmZvLnBhdGguc2xpY2UoMCwgLTEpKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmluc2VydEF0UGF0aCh1cGRhdGVkQ29scywgdG9JbmZvLnBhdGgsIGZyb21Db2wpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENhc2UgMjogRHJvcCB0YXJnZXQgaXMgYSBncm91cCBoZWFkZXJcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRvQ29sPy5jaGlsZHJlbikpIHtcclxuICAgICAgY29uc3QgY2xvbmVkID0gdGhpcy5kZWVwQ2xvbmUodXBkYXRlZENvbHMpO1xyXG4gICAgICBsZXQgcGFyZW50ID0gY2xvbmVkO1xyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b0luZm8ucGF0aC5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICBwYXJlbnQgPSBwYXJlbnRbdG9JbmZvLnBhdGhbaV1dLmNoaWxkcmVuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB0YXJnZXQgPSBwYXJlbnRbdG9JbmZvLnBhdGhbdG9JbmZvLnBhdGgubGVuZ3RoIC0gMV1dO1xyXG4gICAgICBpZiAoIXRhcmdldC5jaGlsZHJlbikge1xyXG4gICAgICAgIHRhcmdldC5jaGlsZHJlbiA9IFtdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0YXJnZXQuY2hpbGRyZW4ucHVzaChmcm9tQ29sKTtcclxuICAgICAgcmV0dXJuIGNsb25lZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDYXNlIDM6IERyb3AgdGFyZ2V0IGlzIGEgcmVndWxhciBjb2x1bW4g4oaSIHdyYXAgYm90aCBpbnRvIGEgZ3JvdXBcclxuICAgIGNvbnN0IGdyb3VwSGVhZGVyID0ge1xyXG4gICAgICBoZWFkZXJOYW1lOiB0b0NvbC5oZWFkZXJOYW1lIHx8ICdHcm91cCcsXHJcbiAgICAgIGNoaWxkcmVuOiBbdG9Db2wsIGZyb21Db2xdLFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBSZW1vdmUgdGFyZ2V0IGZyb20gaXRzIG9yaWdpbmFsIGxvY2F0aW9uXHJcbiAgICB1cGRhdGVkQ29scyA9IHRoaXMucmVtb3ZlQXRQYXRoKHVwZGF0ZWRDb2xzLCB0b0luZm8ucGF0aCk7XHJcblxyXG4gICAgLy8gSW5zZXJ0IGdyb3VwIGF0IHRhcmdldCBpbmRleFxyXG4gICAgcmV0dXJuIHRoaXMuaW5zZXJ0QXRQYXRoKHVwZGF0ZWRDb2xzLCB0b0luZm8ucGF0aCwgZ3JvdXBIZWFkZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Public API Surface of data-grid
|
|
3
3
|
*/
|
|
4
|
+
export * from './lib/data-grid.service';
|
|
4
5
|
export * from './lib/data-grid.module';
|
|
5
6
|
export * from './lib/data-grid/data-grid.component';
|
|
6
|
-
|
|
7
|
+
export * from './lib/directives/draggable-header.directive';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGEtZ3JpZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNkNBQTZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZGF0YS1ncmlkXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1ncmlkLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWdyaWQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2RyYWdnYWJsZS1oZWFkZXIuZGlyZWN0aXZlJztcclxuIl19
|