mis-crystal-design-system 18.1.4 → 18.1.5
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/async-search-dropdown/async-dropdown.component.d.ts +44 -3
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +147 -37
- package/esm2022/table/sort-icons.directive.mjs +24 -5
- package/esm2022/table/table.component.mjs +71 -25
- package/esm2022/timepicker/timepicker.component.mjs +26 -5
- package/esm2022/timerangepicker/timerangepicker.component.mjs +22 -16
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +146 -36
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +92 -27
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timepicker.mjs +25 -4
- package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +21 -15
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
- package/package.json +18 -18
- package/table/table.component.d.ts +2 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, input, output, signal, } from '@angular/core';
|
|
1
|
+
import { Directive, input, output, signal, effect, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class SortIconsDirective {
|
|
4
4
|
constructor(el, renderer) {
|
|
@@ -14,6 +14,18 @@ export class SortIconsDirective {
|
|
|
14
14
|
this.multiSortChange = output();
|
|
15
15
|
// Internal state as signals
|
|
16
16
|
this.currentDirection = signal('');
|
|
17
|
+
// Watch for changes in activeSort, activeSorts, and currentDirection signals
|
|
18
|
+
// Signal inputs don't trigger ngOnChanges, so we need to use effect()
|
|
19
|
+
effect(() => {
|
|
20
|
+
// Access the signals to create a dependency (we don't need to store the values)
|
|
21
|
+
this.activeSort();
|
|
22
|
+
this.activeSorts();
|
|
23
|
+
this.currentDirection(); // Also watch internal direction changes
|
|
24
|
+
// Update icon styles when signals change (only after icons are created)
|
|
25
|
+
if (this.upIcon && this.downIcon) {
|
|
26
|
+
this.updateIconStyles();
|
|
27
|
+
}
|
|
28
|
+
});
|
|
17
29
|
}
|
|
18
30
|
ngOnInit() {
|
|
19
31
|
// Create a container for the icons
|
|
@@ -109,10 +121,17 @@ export class SortIconsDirective {
|
|
|
109
121
|
}
|
|
110
122
|
}
|
|
111
123
|
updateSingleColumnIconStyles() {
|
|
112
|
-
|
|
124
|
+
// Check both parent's activeSort AND internal currentDirection
|
|
125
|
+
// Parent's activeSort may not be updated immediately, so we also check internal state
|
|
126
|
+
const parentActiveSort = this.activeSort();
|
|
127
|
+
const isActiveColumnFromParent = parentActiveSort?.column === this.column()?.data;
|
|
128
|
+
const internalDirection = this.currentDirection();
|
|
129
|
+
const isActiveColumn = isActiveColumnFromParent || (internalDirection !== '');
|
|
113
130
|
setTimeout(() => {
|
|
114
|
-
|
|
115
|
-
|
|
131
|
+
// Use parent's direction if available, otherwise use internal direction
|
|
132
|
+
const activeDirection = parentActiveSort?.direction || internalDirection;
|
|
133
|
+
this.renderer?.setStyle(this.upIcon, 'opacity', isActiveColumn && activeDirection === 'ASC' ? '1' : '0.5');
|
|
134
|
+
this.renderer?.setStyle(this.downIcon, 'opacity', isActiveColumn && activeDirection === 'DESC' ? '1' : '0.5');
|
|
116
135
|
}, 0);
|
|
117
136
|
}
|
|
118
137
|
updateMultiColumnIconStyles() {
|
|
@@ -144,4 +163,4 @@ export class SortIconsDirective {
|
|
|
144
163
|
selector: '[appSortIcons]',
|
|
145
164
|
}]
|
|
146
165
|
}], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], null); })();
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1pY29ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90YWJsZS9zb3J0LWljb25zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQU1ULEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQWdCdkIsTUFBTSxPQUFPLGtCQUFrQjtJQW1CN0IsWUFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQTNDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBbEIvRCw0QkFBNEI7UUFDNUIsV0FBTSxHQUFHLEtBQUssRUFBYyxDQUFDO1FBQzdCLGVBQVUsR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLEtBQUssRUFBZSxDQUFDO1FBQ25DLG9CQUFlLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXhDLDJCQUEyQjtRQUMzQixlQUFVLEdBQUcsTUFBTSxFQUFhLENBQUM7UUFDakMsb0JBQWUsR0FBRyxNQUFNLEVBQWUsQ0FBQztRQUV4Qyw0QkFBNEI7UUFDNUIscUJBQWdCLEdBQUcsTUFBTSxDQUFzQixFQUFFLENBQUMsQ0FBQztJQU9lLENBQUM7SUFFbkUsUUFBUTtRQUVOLG1DQUFtQztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFNUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEs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QUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO21IQTdLVSxrQkFBa0I7b0VBQWxCLGtCQUFrQjs7aUZBQWxCLGtCQUFrQjtjQUg5QixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjthQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBTb3J0U3RhdGUge1xuICBjb2x1bW46IHN0cmluZztcbiAgZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJyB8ICcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRDb2x1bW4ge1xuICBkYXRhOiBzdHJpbmc7XG4gIHNvcnRBc2NJY29uPzogc3RyaW5nO1xuICBzb3J0RGVzY0ljb24/OiBzdHJpbmc7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thcHBTb3J0SWNvbnNdJyxcbn0pXG5leHBvcnQgY2xhc3MgU29ydEljb25zRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvLyBDb252ZXJ0IGlucHV0cyB0byBzaWduYWxzXG4gIGNvbHVtbiA9IGlucHV0PFNvcnRDb2x1bW4+KCk7XG4gIGFjdGl2ZVNvcnQgPSBpbnB1dDxTb3J0U3RhdGU+KCk7XG4gIGFjdGl2ZVNvcnRzID0gaW5wdXQ8U29ydFN0YXRlW10+KCk7XG4gIG11bHRpQ29sdW1uU29ydCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgXG4gIC8vIENvbnZlcnQgb3V0cHV0IHRvIHNpZ25hbFxuICBzb3J0Q2hhbmdlID0gb3V0cHV0PFNvcnRTdGF0ZT4oKTtcbiAgbXVsdGlTb3J0Q2hhbmdlID0gb3V0cHV0PFNvcnRTdGF0ZVtdPigpO1xuXG4gIC8vIEludGVybmFsIHN0YXRlIGFzIHNpZ25hbHNcbiAgY3VycmVudERpcmVjdGlvbiA9IHNpZ25hbDwnQVNDJyB8ICdERVNDJyB8ICcnPignJyk7XG5cbiAgLy8gQXNzZXRzXG4gIHByaXZhdGUgdXBJY29uITogSFRNTEltYWdlRWxlbWVudDtcbiAgcHJpdmF0ZSBkb3duSWNvbiE6IEhUTUxJbWFnZUVsZW1lbnQ7XG4gIHByaXZhdGUgc29ydE9yZGVyRWxlbWVudD86IEhUTUxTcGFuRWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgXG4gICAgLy8gQ3JlYXRlIGEgY29udGFpbmVyIGZvciB0aGUgaWNvbnNcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGNvbnRhaW5lciwgJ2Rpc3BsYXknLCAnaW5saW5lLWZsZXgnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShjb250YWluZXIsICdhbGlnbi1pdGVtcycsICdjZW50ZXInKTtcblxuICAgIGNvbnN0IGljb25Db250YWluZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGljb25Db250YWluZXIsICdkaXNwbGF5JywgJ2lubGluZS1mbGV4Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoaWNvbkNvbnRhaW5lciwgJ2ZsZXgtZGlyZWN0aW9uJywgJ2NvbHVtbicpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGljb25Db250YWluZXIsICdhbGlnbi1pdGVtcycsICdjZW50ZXInKTtcblxuICAgIHRoaXMudXBJY29uID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRBdHRyaWJ1dGUodGhpcy51cEljb24sICdzcmMnLCB0aGlzLmNvbHVtbigpPy5zb3J0QXNjSWNvbik7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy51cEljb24sICdvcGFjaXR5JywgJzAuNScpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKHRoaXMudXBJY29uLCAndHJhbnNpdGlvbicsICdvcGFjaXR5IDAuM3MgZWFzZScpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKHRoaXMudXBJY29uLCAnd2lkdGgnLCAnOXB4Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy51cEljb24sICdjdXJzb3InLCAncG9pbnRlcicpO1xuICAgIHRoaXMucmVuZGVyZXI/Lmxpc3Rlbih0aGlzLnVwSWNvbiwgJ2NsaWNrJywgKCkgPT4gdGhpcy5zZXRTb3J0RGlyZWN0aW9uKCdBU0MnKSk7XG5cbiAgICB0aGlzLmRvd25JY29uID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRBdHRyaWJ1dGUodGhpcy5kb3duSWNvbiwgJ3NyYycsIHRoaXMuY29sdW1uKCk/LnNvcnREZXNjSWNvbik7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5kb3duSWNvbiwgJ29wYWNpdHknLCAnMC41Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5kb3duSWNvbiwgJ3RyYW5zaXRpb24nLCAnb3BhY2l0eSAwLjNzIGVhc2UnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLmRvd25JY29uLCAnd2lkdGgnLCAnOXB4Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5kb3duSWNvbiwgJ2N1cnNvcicsICdwb2ludGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlcj8ubGlzdGVuKHRoaXMuZG93bkljb24sICdjbGljaycsICgpID0+IHRoaXMuc2V0U29ydERpcmVjdGlvbignREVTQycpKTtcblxuICAgIHRoaXMucmVuZGVyZXI/LmFwcGVuZENoaWxkKGljb25Db250YWluZXIsIHRoaXMudXBJY29uKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5hcHBlbmRDaGlsZChpY29uQ29udGFpbmVyLCB0aGlzLmRvd25JY29uKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5hcHBlbmRDaGlsZChjb250YWluZXIsIGljb25Db250YWluZXIpO1xuXG4gICAgaWYgKHRoaXMubXVsdGlDb2x1bW5Tb3J0KCkpIHtcbiAgICAgIHRoaXMuc29ydE9yZGVyRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5zb3J0T3JkZXJFbGVtZW50LCAnZm9udC1zaXplJywgJzEycHgnKTtcbiAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKHRoaXMuc29ydE9yZGVyRWxlbWVudCwgJ2ZvbnQtd2VpZ2h0JywgJ2JvbGQnKTtcbiAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKHRoaXMuc29ydE9yZGVyRWxlbWVudCwgJ2NvbG9yJywgJyMwMDAnKTtcbiAgICAgIHRoaXMucmVuZGVyZXI/LmFwcGVuZENoaWxkKGNvbnRhaW5lciwgdGhpcy5zb3J0T3JkZXJFbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyPy5hcHBlbmRDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGNvbnRhaW5lcik7XG4gICAgdGhpcy51cGRhdGVJY29uU3R5bGVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2FjdGl2ZVNvcnQnXSB8fCBjaGFuZ2VzWydhY3RpdmVTb3J0cyddKSB7XG4gICAgICB0aGlzLnVwZGF0ZUljb25TdHlsZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFNvcnREaXJlY3Rpb24oZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11bHRpQ29sdW1uU29ydCgpKSB7XG4gICAgICB0aGlzLmhhbmRsZU11bHRpQ29sdW1uU29ydChkaXJlY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhbmRsZVNpbmdsZUNvbHVtblNvcnQoZGlyZWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNpbmdsZUNvbHVtblNvcnQoZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnREaXJlY3Rpb24oKSA9PT0gZGlyZWN0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24uc2V0KCcnKTsgLy8gUmVzZXQgc29ydGluZyBpZiB0aGUgc2FtZSBkaXJlY3Rpb24gaXMgY2xpY2tlZFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24uc2V0KGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoeyBcbiAgICAgIGNvbHVtbjogdGhpcy5jb2x1bW4oKT8uZGF0YSB8fCAnJywgXG4gICAgICBkaXJlY3Rpb246IHRoaXMuY3VycmVudERpcmVjdGlvbigpXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVJY29uU3R5bGVzKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU11bHRpQ29sdW1uU29ydChkaXJlY3Rpb246ICdBU0MnIHwgJ0RFU0MnKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlU29ydHMgPSB0aGlzLmFjdGl2ZVNvcnRzKCk7XG4gICAgXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFjdGl2ZVNvcnRzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBleGlzdGluZ1NvcnRJbmRleCA9IGFjdGl2ZVNvcnRzLmZpbmRJbmRleChzb3J0ID0+IHNvcnQuY29sdW1uID09PSB0aGlzLmNvbHVtbigpPy5kYXRhKTtcbiAgICBcbiAgICBpZiAoZXhpc3RpbmdTb3J0SW5kZXggIT09IC0xKSB7XG4gICAgICBpZiAoYWN0aXZlU29ydHNbZXhpc3RpbmdTb3J0SW5kZXhdLmRpcmVjdGlvbiAhPT0gZGlyZWN0aW9uKSB7XG4gICAgICAgIGFjdGl2ZVNvcnRzW2V4aXN0aW5nU29ydEluZGV4XS5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjdGl2ZVNvcnRzLnB1c2goeyBcbiAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbigpPy5kYXRhIHx8ICcnLCBcbiAgICAgICAgZGlyZWN0aW9uXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5tdWx0aVNvcnRDaGFuZ2UuZW1pdChbLi4uYWN0aXZlU29ydHNdKTtcbiAgICB0aGlzLnVwZGF0ZUljb25TdHlsZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSWNvblN0eWxlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tdWx0aUNvbHVtblNvcnQoKSkge1xuICAgICAgdGhpcy51cGRhdGVNdWx0aUNvbHVtbkljb25TdHlsZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVTaW5nbGVDb2x1bW5JY29uU3R5bGVzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTaW5nbGVDb2x1bW5JY29uU3R5bGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzQWN0aXZlQ29sdW1uID0gdGhpcy5hY3RpdmVTb3J0KCk/LmNvbHVtbiA9PT0gdGhpcy5jb2x1bW4oKT8uZGF0YTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoXG4gICAgICAgIHRoaXMudXBJY29uLFxuICAgICAgICAnb3BhY2l0eScsXG4gICAgICAgIGlzQWN0aXZlQ29sdW1uICYmIHRoaXMuY3VycmVudERpcmVjdGlvbigpID09PSAnQVNDJyA/ICcxJyA6ICcwLjUnXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZG93bkljb24sXG4gICAgICAgICdvcGFjaXR5JyxcbiAgICAgICAgaXNBY3RpdmVDb2x1bW4gJiYgdGhpcy5jdXJyZW50RGlyZWN0aW9uKCkgPT09ICdERVNDJyA/ICcxJyA6ICcwLjUnXG4gICAgICApO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNdWx0aUNvbHVtbkljb25TdHlsZXMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlU29ydHMgPSB0aGlzLmFjdGl2ZVNvcnRzKCk7XG4gICAgXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFjdGl2ZVNvcnRzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBjb2x1bW5Tb3J0ID0gYWN0aXZlU29ydHMuZmluZChzb3J0ID0+IHNvcnQuY29sdW1uID09PSB0aGlzLmNvbHVtbigpPy5kYXRhKTtcbiAgICBcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKFxuICAgICAgICB0aGlzLnVwSWNvbixcbiAgICAgICAgJ29wYWNpdHknLFxuICAgICAgICBjb2x1bW5Tb3J0Py5kaXJlY3Rpb24gPT09ICdBU0MnID8gJzEnIDogJzAuNSdcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5kb3duSWNvbixcbiAgICAgICAgJ29wYWNpdHknLFxuICAgICAgICBjb2x1bW5Tb3J0Py5kaXJlY3Rpb24gPT09ICdERVNDJyA/ICcxJyA6ICcwLjUnXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy5zb3J0T3JkZXJFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHNvcnRJbmRleCA9IGFjdGl2ZVNvcnRzLmZpbmRJbmRleChzb3J0ID0+IHNvcnQuY29sdW1uID09PSB0aGlzLmNvbHVtbigpPy5kYXRhKTtcbiAgICAgICAgaWYgKHNvcnRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyPy5zZXRQcm9wZXJ0eSh0aGlzLnNvcnRPcmRlckVsZW1lbnQsICd0ZXh0Q29udGVudCcsIChzb3J0SW5kZXggKyAxKS50b1N0cmluZygpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyPy5zZXRQcm9wZXJ0eSh0aGlzLnNvcnRPcmRlckVsZW1lbnQsICd0ZXh0Q29udGVudCcsICcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIDApO1xuICB9XG59Il19
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1pY29ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90YWJsZS9zb3J0LWljb25zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQU1ULEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUFnQnZCLE1BQU0sT0FBTyxrQkFBa0I7SUFtQjdCLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWxCL0QsNEJBQTRCO1FBQzVCLFdBQU0sR0FBRyxLQUFLLEVBQWMsQ0FBQztRQUM3QixlQUFVLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxLQUFLLEVBQWUsQ0FBQztRQUNuQyxvQkFBZSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV4QywyQkFBMkI7UUFDM0IsZUFBVSxHQUFHLE1BQU0sRUFBYSxDQUFDO1FBQ2pDLG9CQUFlLEdBQUcsTUFBTSxFQUFlLENBQUM7UUFFeEMsNEJBQTRCO1FBQzVCLHFCQUFnQixHQUFHLE1BQU0sQ0FBc0IsRUFBRSxDQUFDLENBQUM7UUFRakQsNkVBQTZFO1FBQzdFLHNFQUFzRTtRQUN0RSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsZ0ZBQWdGO1lBQ2hGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyx3Q0FBd0M7WUFDakUsd0VBQXdFO1lBQ3hFLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsRUFB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LEVBQUUsU0FBUyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQy9DLENBQUM7WUFFRixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMxQixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDL0YsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzttSEFsTVUsa0JBQWtCO29FQUFsQixrQkFBa0I7O2lGQUFsQixrQkFBa0I7Y0FIOUIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgZWZmZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBTb3J0U3RhdGUge1xuICBjb2x1bW46IHN0cmluZztcbiAgZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJyB8ICcnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRDb2x1bW4ge1xuICBkYXRhOiBzdHJpbmc7XG4gIHNvcnRBc2NJY29uPzogc3RyaW5nO1xuICBzb3J0RGVzY0ljb24/OiBzdHJpbmc7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thcHBTb3J0SWNvbnNdJyxcbn0pXG5leHBvcnQgY2xhc3MgU29ydEljb25zRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvLyBDb252ZXJ0IGlucHV0cyB0byBzaWduYWxzXG4gIGNvbHVtbiA9IGlucHV0PFNvcnRDb2x1bW4+KCk7XG4gIGFjdGl2ZVNvcnQgPSBpbnB1dDxTb3J0U3RhdGU+KCk7XG4gIGFjdGl2ZVNvcnRzID0gaW5wdXQ8U29ydFN0YXRlW10+KCk7XG4gIG11bHRpQ29sdW1uU29ydCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgXG4gIC8vIENvbnZlcnQgb3V0cHV0IHRvIHNpZ25hbFxuICBzb3J0Q2hhbmdlID0gb3V0cHV0PFNvcnRTdGF0ZT4oKTtcbiAgbXVsdGlTb3J0Q2hhbmdlID0gb3V0cHV0PFNvcnRTdGF0ZVtdPigpO1xuXG4gIC8vIEludGVybmFsIHN0YXRlIGFzIHNpZ25hbHNcbiAgY3VycmVudERpcmVjdGlvbiA9IHNpZ25hbDwnQVNDJyB8ICdERVNDJyB8ICcnPignJyk7XG5cbiAgLy8gQXNzZXRzXG4gIHByaXZhdGUgdXBJY29uITogSFRNTEltYWdlRWxlbWVudDtcbiAgcHJpdmF0ZSBkb3duSWNvbiE6IEhUTUxJbWFnZUVsZW1lbnQ7XG4gIHByaXZhdGUgc29ydE9yZGVyRWxlbWVudD86IEhUTUxTcGFuRWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAvLyBXYXRjaCBmb3IgY2hhbmdlcyBpbiBhY3RpdmVTb3J0LCBhY3RpdmVTb3J0cywgYW5kIGN1cnJlbnREaXJlY3Rpb24gc2lnbmFsc1xuICAgIC8vIFNpZ25hbCBpbnB1dHMgZG9uJ3QgdHJpZ2dlciBuZ09uQ2hhbmdlcywgc28gd2UgbmVlZCB0byB1c2UgZWZmZWN0KClcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gQWNjZXNzIHRoZSBzaWduYWxzIHRvIGNyZWF0ZSBhIGRlcGVuZGVuY3kgKHdlIGRvbid0IG5lZWQgdG8gc3RvcmUgdGhlIHZhbHVlcylcbiAgICAgIHRoaXMuYWN0aXZlU29ydCgpO1xuICAgICAgdGhpcy5hY3RpdmVTb3J0cygpO1xuICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uKCk7IC8vIEFsc28gd2F0Y2ggaW50ZXJuYWwgZGlyZWN0aW9uIGNoYW5nZXNcbiAgICAgIC8vIFVwZGF0ZSBpY29uIHN0eWxlcyB3aGVuIHNpZ25hbHMgY2hhbmdlIChvbmx5IGFmdGVyIGljb25zIGFyZSBjcmVhdGVkKVxuICAgICAgaWYgKHRoaXMudXBJY29uICYmIHRoaXMuZG93bkljb24pIHtcbiAgICAgICAgdGhpcy51cGRhdGVJY29uU3R5bGVzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBcbiAgICAvLyBDcmVhdGUgYSBjb250YWluZXIgZm9yIHRoZSBpY29uc1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoY29udGFpbmVyLCAnZGlzcGxheScsICdpbmxpbmUtZmxleCcpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGNvbnRhaW5lciwgJ2FsaWduLWl0ZW1zJywgJ2NlbnRlcicpO1xuXG4gICAgY29uc3QgaWNvbkNvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoaWNvbkNvbnRhaW5lciwgJ2Rpc3BsYXknLCAnaW5saW5lLWZsZXgnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShpY29uQ29udGFpbmVyLCAnZmxleC1kaXJlY3Rpb24nLCAnY29sdW1uJyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoaWNvbkNvbnRhaW5lciwgJ2FsaWduLWl0ZW1zJywgJ2NlbnRlcicpO1xuXG4gICAgdGhpcy51cEljb24gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldEF0dHJpYnV0ZSh0aGlzLnVwSWNvbiwgJ3NyYycsIHRoaXMuY29sdW1uKCk/LnNvcnRBc2NJY29uKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLnVwSWNvbiwgJ29wYWNpdHknLCAnMC41Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy51cEljb24sICd0cmFuc2l0aW9uJywgJ29wYWNpdHkgMC4zcyBlYXNlJyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy51cEljb24sICd3aWR0aCcsICc5cHgnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLnVwSWNvbiwgJ2N1cnNvcicsICdwb2ludGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlcj8ubGlzdGVuKHRoaXMudXBJY29uLCAnY2xpY2snLCAoKSA9PiB0aGlzLnNldFNvcnREaXJlY3Rpb24oJ0FTQycpKTtcblxuICAgIHRoaXMuZG93bkljb24gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldEF0dHJpYnV0ZSh0aGlzLmRvd25JY29uLCAnc3JjJywgdGhpcy5jb2x1bW4oKT8uc29ydERlc2NJY29uKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLmRvd25JY29uLCAnb3BhY2l0eScsICcwLjUnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLmRvd25JY29uLCAndHJhbnNpdGlvbicsICdvcGFjaXR5IDAuM3MgZWFzZScpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKHRoaXMuZG93bkljb24sICd3aWR0aCcsICc5cHgnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLmRvd25JY29uLCAnY3Vyc29yJywgJ3BvaW50ZXInKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5saXN0ZW4odGhpcy5kb3duSWNvbiwgJ2NsaWNrJywgKCkgPT4gdGhpcy5zZXRTb3J0RGlyZWN0aW9uKCdERVNDJykpO1xuXG4gICAgdGhpcy5yZW5kZXJlcj8uYXBwZW5kQ2hpbGQoaWNvbkNvbnRhaW5lciwgdGhpcy51cEljb24pO1xuICAgIHRoaXMucmVuZGVyZXI/LmFwcGVuZENoaWxkKGljb25Db250YWluZXIsIHRoaXMuZG93bkljb24pO1xuICAgIHRoaXMucmVuZGVyZXI/LmFwcGVuZENoaWxkKGNvbnRhaW5lciwgaWNvbkNvbnRhaW5lcik7XG5cbiAgICBpZiAodGhpcy5tdWx0aUNvbHVtblNvcnQoKSkge1xuICAgICAgdGhpcy5zb3J0T3JkZXJFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLnNvcnRPcmRlckVsZW1lbnQsICdmb250LXNpemUnLCAnMTJweCcpO1xuICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5zb3J0T3JkZXJFbGVtZW50LCAnZm9udC13ZWlnaHQnLCAnYm9sZCcpO1xuICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5zb3J0T3JkZXJFbGVtZW50LCAnY29sb3InLCAnIzAwMCcpO1xuICAgICAgdGhpcy5yZW5kZXJlcj8uYXBwZW5kQ2hpbGQoY29udGFpbmVyLCB0aGlzLnNvcnRPcmRlckVsZW1lbnQpO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXI/LmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY29udGFpbmVyKTtcbiAgICB0aGlzLnVwZGF0ZUljb25TdHlsZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snYWN0aXZlU29ydCddIHx8IGNoYW5nZXNbJ2FjdGl2ZVNvcnRzJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlSWNvblN0eWxlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U29ydERpcmVjdGlvbihkaXJlY3Rpb246ICdBU0MnIHwgJ0RFU0MnKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVsdGlDb2x1bW5Tb3J0KCkpIHtcbiAgICAgIHRoaXMuaGFuZGxlTXVsdGlDb2x1bW5Tb3J0KGRpcmVjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFuZGxlU2luZ2xlQ29sdW1uU29ydChkaXJlY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2luZ2xlQ29sdW1uU29ydChkaXJlY3Rpb246ICdBU0MnIHwgJ0RFU0MnKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudERpcmVjdGlvbigpID09PSBkaXJlY3Rpb24pIHtcbiAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbi5zZXQoJycpOyAvLyBSZXNldCBzb3J0aW5nIGlmIHRoZSBzYW1lIGRpcmVjdGlvbiBpcyBjbGlja2VkXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbi5zZXQoZGlyZWN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7IFxuICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbigpPy5kYXRhIHx8ICcnLCBcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5jdXJyZW50RGlyZWN0aW9uKClcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZUljb25TdHlsZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTXVsdGlDb2x1bW5Tb3J0KGRpcmVjdGlvbjogJ0FTQycgfCAnREVTQycpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVTb3J0cyA9IHRoaXMuYWN0aXZlU29ydHMoKTtcbiAgICBcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0aXZlU29ydHMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGV4aXN0aW5nU29ydEluZGV4ID0gYWN0aXZlU29ydHMuZmluZEluZGV4KHNvcnQgPT4gc29ydC5jb2x1bW4gPT09IHRoaXMuY29sdW1uKCk/LmRhdGEpO1xuICAgIFxuICAgIGlmIChleGlzdGluZ1NvcnRJbmRleCAhPT0gLTEpIHtcbiAgICAgIGlmIChhY3RpdmVTb3J0c1tleGlzdGluZ1NvcnRJbmRleF0uZGlyZWN0aW9uICE9PSBkaXJlY3Rpb24pIHtcbiAgICAgICAgYWN0aXZlU29ydHNbZXhpc3RpbmdTb3J0SW5kZXhdLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYWN0aXZlU29ydHMucHVzaCh7IFxuICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1uKCk/LmRhdGEgfHwgJycsIFxuICAgICAgICBkaXJlY3Rpb25cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLm11bHRpU29ydENoYW5nZS5lbWl0KFsuLi5hY3RpdmVTb3J0c10pO1xuICAgIHRoaXMudXBkYXRlSWNvblN0eWxlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJY29uU3R5bGVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11bHRpQ29sdW1uU29ydCgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZU11bHRpQ29sdW1uSWNvblN0eWxlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZVNpbmdsZUNvbHVtbkljb25TdHlsZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNpbmdsZUNvbHVtbkljb25TdHlsZXMoKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgYm90aCBwYXJlbnQncyBhY3RpdmVTb3J0IEFORCBpbnRlcm5hbCBjdXJyZW50RGlyZWN0aW9uXG4gICAgLy8gUGFyZW50J3MgYWN0aXZlU29ydCBtYXkgbm90IGJlIHVwZGF0ZWQgaW1tZWRpYXRlbHksIHNvIHdlIGFsc28gY2hlY2sgaW50ZXJuYWwgc3RhdGVcbiAgICBjb25zdCBwYXJlbnRBY3RpdmVTb3J0ID0gdGhpcy5hY3RpdmVTb3J0KCk7XG4gICAgY29uc3QgaXNBY3RpdmVDb2x1bW5Gcm9tUGFyZW50ID0gcGFyZW50QWN0aXZlU29ydD8uY29sdW1uID09PSB0aGlzLmNvbHVtbigpPy5kYXRhO1xuICAgIGNvbnN0IGludGVybmFsRGlyZWN0aW9uID0gdGhpcy5jdXJyZW50RGlyZWN0aW9uKCk7XG4gICAgY29uc3QgaXNBY3RpdmVDb2x1bW4gPSBpc0FjdGl2ZUNvbHVtbkZyb21QYXJlbnQgfHwgKGludGVybmFsRGlyZWN0aW9uICE9PSAnJyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIFVzZSBwYXJlbnQncyBkaXJlY3Rpb24gaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIGludGVybmFsIGRpcmVjdGlvblxuICAgICAgY29uc3QgYWN0aXZlRGlyZWN0aW9uID0gcGFyZW50QWN0aXZlU29ydD8uZGlyZWN0aW9uIHx8IGludGVybmFsRGlyZWN0aW9uO1xuICAgICAgXG4gICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShcbiAgICAgICAgdGhpcy51cEljb24sXG4gICAgICAgICdvcGFjaXR5JyxcbiAgICAgICAgaXNBY3RpdmVDb2x1bW4gJiYgYWN0aXZlRGlyZWN0aW9uID09PSAnQVNDJyA/ICcxJyA6ICcwLjUnXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZG93bkljb24sXG4gICAgICAgICdvcGFjaXR5JyxcbiAgICAgICAgaXNBY3RpdmVDb2x1bW4gJiYgYWN0aXZlRGlyZWN0aW9uID09PSAnREVTQycgPyAnMScgOiAnMC41J1xuICAgICAgKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTXVsdGlDb2x1bW5JY29uU3R5bGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZVNvcnRzID0gdGhpcy5hY3RpdmVTb3J0cygpO1xuICAgIFxuICAgIGlmICghQXJyYXkuaXNBcnJheShhY3RpdmVTb3J0cykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgY29sdW1uU29ydCA9IGFjdGl2ZVNvcnRzLmZpbmQoc29ydCA9PiBzb3J0LmNvbHVtbiA9PT0gdGhpcy5jb2x1bW4oKT8uZGF0YSk7XG4gICAgXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShcbiAgICAgICAgdGhpcy51cEljb24sXG4gICAgICAgICdvcGFjaXR5JyxcbiAgICAgICAgY29sdW1uU29ydD8uZGlyZWN0aW9uID09PSAnQVNDJyA/ICcxJyA6ICcwLjUnXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZG93bkljb24sXG4gICAgICAgICdvcGFjaXR5JyxcbiAgICAgICAgY29sdW1uU29ydD8uZGlyZWN0aW9uID09PSAnREVTQycgPyAnMScgOiAnMC41J1xuICAgICAgKTtcblxuICAgICAgaWYgKHRoaXMuc29ydE9yZGVyRWxlbWVudCkge1xuICAgICAgICBjb25zdCBzb3J0SW5kZXggPSBhY3RpdmVTb3J0cy5maW5kSW5kZXgoc29ydCA9PiBzb3J0LmNvbHVtbiA9PT0gdGhpcy5jb2x1bW4oKT8uZGF0YSk7XG4gICAgICAgIGlmIChzb3J0SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0UHJvcGVydHkodGhpcy5zb3J0T3JkZXJFbGVtZW50LCAndGV4dENvbnRlbnQnLCAoc29ydEluZGV4ICsgMSkudG9TdHJpbmcoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0UHJvcGVydHkodGhpcy5zb3J0T3JkZXJFbGVtZW50LCAndGV4dENvbnRlbnQnLCAnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAwKTtcbiAgfVxufSJdfQ==
|