@skyux/core 6.0.0-beta.6 → 6.0.0-beta.9
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/documentation.json +6 -6
- package/esm2020/lib/modules/adapter-service/adapter.service.mjs +14 -6
- package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +2 -2
- package/fesm2015/skyux-core.mjs +14 -6
- package/fesm2015/skyux-core.mjs.map +1 -1
- package/fesm2020/skyux-core.mjs +14 -6
- package/fesm2020/skyux-core.mjs.map +1 -1
- package/package.json +2 -2
package/documentation.json
CHANGED
@@ -1842,7 +1842,7 @@
|
|
1842
1842
|
"sources": [
|
1843
1843
|
{
|
1844
1844
|
"fileName": "projects/core/src/modules/adapter-service/adapter.service.ts",
|
1845
|
-
"line":
|
1845
|
+
"line": 154,
|
1846
1846
|
"character": 9
|
1847
1847
|
}
|
1848
1848
|
],
|
@@ -1914,7 +1914,7 @@
|
|
1914
1914
|
"sources": [
|
1915
1915
|
{
|
1916
1916
|
"fileName": "projects/core/src/modules/adapter-service/adapter.service.ts",
|
1917
|
-
"line":
|
1917
|
+
"line": 127,
|
1918
1918
|
"character": 9
|
1919
1919
|
}
|
1920
1920
|
],
|
@@ -1999,7 +1999,7 @@
|
|
1999
1999
|
"sources": [
|
2000
2000
|
{
|
2001
2001
|
"fileName": "projects/core/src/modules/adapter-service/adapter.service.ts",
|
2002
|
-
"line":
|
2002
|
+
"line": 187,
|
2003
2003
|
"character": 9
|
2004
2004
|
}
|
2005
2005
|
],
|
@@ -2055,7 +2055,7 @@
|
|
2055
2055
|
"sources": [
|
2056
2056
|
{
|
2057
2057
|
"fileName": "projects/core/src/modules/adapter-service/adapter.service.ts",
|
2058
|
-
"line":
|
2058
|
+
"line": 196,
|
2059
2059
|
"character": 9
|
2060
2060
|
}
|
2061
2061
|
],
|
@@ -2121,7 +2121,7 @@
|
|
2121
2121
|
"sources": [
|
2122
2122
|
{
|
2123
2123
|
"fileName": "projects/core/src/modules/adapter-service/adapter.service.ts",
|
2124
|
-
"line":
|
2124
|
+
"line": 230,
|
2125
2125
|
"character": 9
|
2126
2126
|
}
|
2127
2127
|
],
|
@@ -2262,7 +2262,7 @@
|
|
2262
2262
|
"sources": [
|
2263
2263
|
{
|
2264
2264
|
"fileName": "projects/core/src/modules/adapter-service/adapter.service.ts",
|
2265
|
-
"line":
|
2265
|
+
"line": 246,
|
2266
2266
|
"character": 9
|
2267
2267
|
}
|
2268
2268
|
],
|
@@ -73,6 +73,9 @@ export class SkyCoreAdapterService {
|
|
73
73
|
* @return Returns `true` if a child element with autofocus is found.
|
74
74
|
*/
|
75
75
|
applyAutoFocus(elementRef) {
|
76
|
+
if (!elementRef) {
|
77
|
+
return false;
|
78
|
+
}
|
76
79
|
const elementWithAutoFocus = elementRef.nativeElement.querySelector('[autofocus]');
|
77
80
|
// Child was found with the autofocus property. Set focus and return true.
|
78
81
|
if (elementWithAutoFocus) {
|
@@ -95,11 +98,13 @@ export class SkyCoreAdapterService {
|
|
95
98
|
*/
|
96
99
|
getFocusableChildrenAndApplyFocus(elementRef, containerSelector, focusOnContainerIfNoChildrenFound = false) {
|
97
100
|
const containerElement = elementRef.nativeElement.querySelector(containerSelector);
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
101
|
+
if (containerElement) {
|
102
|
+
const focusableChildren = this.getFocusableChildren(containerElement);
|
103
|
+
// Focus first focusable child if available. Otherwise, set focus on container.
|
104
|
+
if (!this.focusFirstElement(focusableChildren) &&
|
105
|
+
focusOnContainerIfNoChildrenFound) {
|
106
|
+
containerElement.focus();
|
107
|
+
}
|
103
108
|
}
|
104
109
|
}
|
105
110
|
/**
|
@@ -109,6 +114,9 @@ export class SkyCoreAdapterService {
|
|
109
114
|
* @param options - Options for getting focusable children.
|
110
115
|
*/
|
111
116
|
getFocusableChildren(element, options) {
|
117
|
+
if (!element) {
|
118
|
+
return [];
|
119
|
+
}
|
112
120
|
let elements = Array.prototype.slice.call(element.querySelectorAll(SKY_TABBABLE_SELECTOR));
|
113
121
|
// Unless ignoreTabIndex = true, filter out elements with tabindex = -1.
|
114
122
|
if (!options || !options.ignoreTabIndex) {
|
@@ -214,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
214
222
|
providedIn: 'root',
|
215
223
|
}]
|
216
224
|
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBSXZFLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsU0FBUztJQUNULFlBQVk7SUFDWix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFDMUIsUUFBUTtJQUNSLFFBQVE7SUFDUixPQUFPO0lBQ1AseUNBQXlDO0lBQ3pDLDZCQUE2QjtDQUM5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUtiLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFBb0IsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwyQkFBMkIsQ0FDaEMsVUFBc0IsRUFDdEIsVUFBK0I7UUFFL0IsTUFBTSxRQUFRLEdBQWdCLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFF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QUVPLFNBQVMsQ0FBQyxPQUFvQjtRQUNwQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUM7UUFDM0UsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQ2xCLE9BQU8sQ0FBQyxXQUFXO1lBQ25CLE9BQU8sQ0FBQyxZQUFZO1lBQ3BCLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQ2hDLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOztrSEFqUFUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cyB9IGZyb20gJy4uL21lZGlhLXF1ZXJ5L21lZGlhLWJyZWFrcG9pbnRzJztcblxuaW1wb3J0IHsgU2t5Rm9jdXNhYmxlQ2hpbGRyZW5PcHRpb25zIH0gZnJvbSAnLi9mb2N1c2FibGUtY2hpbGRyZW4tb3B0aW9ucyc7XG5cbmNvbnN0IFNLWV9UQUJCQUJMRV9TRUxFQ1RPUiA9IFtcbiAgJ2FbaHJlZl0nLFxuICAnYXJlYVtocmVmXScsXG4gICdpbnB1dDpub3QoW2Rpc2FibGVkXSknLFxuICAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScsXG4gICdzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgJ3RleHRhcmVhOm5vdChbZGlzYWJsZWRdKScsXG4gICdpZnJhbWUnLFxuICAnb2JqZWN0JyxcbiAgJ2VtYmVkJyxcbiAgJypbY29udGVudGVkaXRhYmxlPXRydWVdOm5vdChbZGlzYWJsZWRdKScsXG4gICcqW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSknLFxuXS5qb2luKCcsICcpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHJlc3BvbnNpdmUgY29udGFpbmVyIENTUyBjbGFzcyBmb3IgYSBnaXZlbiBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIFRoZSBlbGVtZW50IHRoYXQgd2lsbCByZWNpZXZlIHRoZSBuZXcgQ1NTIGNsYXNzLlxuICAgKiBAcGFyYW0gYnJlYWtwb2ludCAtIFRoZSBTa3lNZWRpYUJyZWFrcG9pbnQgd2lsbCBkZXRlcm1pbmUgd2hpY2ggY2xhc3NcbiAgICogZ2V0cyBzZXQuIEZvciBleGFtcGxlIGEgU2t5TWVkaWFCcmVha3BvaW50IG9mIGB4c2Agd2lsbCBzZXQgYSBDU1MgY2xhc3Mgb2YgYHNreS1yZXNwb25zaXZlLWNvbnRhaW5lci14c2AuXG4gICAqL1xuICBwdWJsaWMgc2V0UmVzcG9uc2l2ZUNvbnRhaW5lckNsYXNzKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50c1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBuYXRpdmVFbDogSFRNTEVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1zbScpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbWQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLWxnJyk7XG5cbiAgICBsZXQgbmV3Q2xhc3M6IHN0cmluZztcblxuICAgIHN3aXRjaCAoYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci14cyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1zbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBuZXdDbGFzcyA9ICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbGcnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG5hdGl2ZUVsLCBuZXdDbGFzcyk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgdGVtcG9yYXJpbHkgZW5hYmxlcy9kaXNhYmxlcyBwb2ludGVyIGV2ZW50cy5cbiAgICogVGhpcyBpcyBoZWxwZnVsIHRvIHByZXZlbnQgaUZyYW1lcyBmcm9tIGludGVyZmVyaW5nIHdpdGggZHJhZyBldmVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBlbmFibGUgLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBwb2ludGVyIGV2ZW50cy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZS5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVJZnJhbWVQb2ludGVyRXZlbnRzKGVuYWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGlmcmFtZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpZnJhbWUnKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlmcmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIFNldHRpbmcgdG8gZW1wdHkgc3RyaW5nIHdpbGwgYWxsb3cgaWZyYW1lIHRvIGZhbGwgYmFjayB0byBpdHMgcHJpb3IgQ1NTIGFzc2lnbm1lbnQuXG4gICAgICBpZnJhbWVzW2ldLnN0eWxlLnBvaW50ZXJFdmVudHMgPSBlbmFibGUgPyAnJyA6ICdub25lJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyBvbiB0aGUgZmlyc3QgZWxlbWVudCBmb3VuZCB3aXRoIGFuIGBhdXRvZm9jdXNgIGF0dHJpYnV0ZSBpbnNpZGUgdGhlIHN1cHBsaWVkIGBlbGVtZW50UmVmYC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBAcmV0dXJuIFJldHVybnMgYHRydWVgIGlmIGEgY2hpbGQgZWxlbWVudCB3aXRoIGF1dG9mb2N1cyBpcyBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyBhcHBseUF1dG9Gb2N1cyhlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWxlbWVudFdpdGhBdXRvRm9jdXMgPVxuICAgICAgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1thdXRvZm9jdXNdJyk7XG5cbiAgICAvLyBDaGlsZCB3YXMgZm91bmQgd2l0aCB0aGUgYXV0b2ZvY3VzIHByb3BlcnR5LiBTZXQgZm9jdXMgYW5kIHJldHVybiB0cnVlLlxuICAgIGlmIChlbGVtZW50V2l0aEF1dG9Gb2N1cykge1xuICAgICAgZWxlbWVudFdpdGhBdXRvRm9jdXMuZm9jdXMoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIE5vIGNoaWxkcmVuIHdlcmUgZm91bmQgd2l0aCBhdXRvZm9jdXMgcHJvcGVydHkuIFJldHVybiBmYWxzZS5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGNoaWxkIG9mIHRoZSBgZWxlbWVudFJlZmAgcGFyYW1ldGVyLlxuICAgKiBJZiBubyBmb2N1c2FibGUgY2hpbGRyZW4gYXJlIGZvdW5kLCBhbmQgYGZvY3VzT25Db250YWluZXJJZk5vQ2hpbGRyZW5Gb3VuZGAgaXMgYHRydWVgLFxuICAgKiBmb2N1cyB3aWxsIGJlIHNldCBvbiB0aGUgY29udGFpbmVyIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gVGhlIGVsZW1lbnQgdG8gc2VhcmNoIHdpdGhpbi5cbiAgICogQHBhcmFtIGNvbnRhaW5lclNlbGVjdG9yIC0gQSBDU1Mgc2VsZWN0b3IgaW5kaWNhdGluZyB0aGUgY29udGFpbmVyIHRoYXQgc2hvdWxkXG4gICAqIHJlY2lldmUgZm9jdXMgaWYgbm8gZm9jdXNhYmxlIGNoaWxkcmVuIGFyZSBmb3VuZC5cbiAgICogQHBhcmFtIGZvY3VzT25Db250YWluZXJJZk5vQ2hpbGRyZW5Gb3VuZCAtIEl0IHNldCB0byBgdHJ1ZWAsIHRoZSBjb250YWluZXIgd2lsbFxuICAgKiByZWNpZXZlIGZvY3VzIGlmIG5vIGZvY3VzYWJsZSBjaGlsZHJlbiBhcmUgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9jdXNhYmxlQ2hpbGRyZW5BbmRBcHBseUZvY3VzKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgY29udGFpbmVyU2VsZWN0b3I6IHN0cmluZyxcbiAgICBmb2N1c09uQ29udGFpbmVySWZOb0NoaWxkcmVuRm91bmQ6IGJvb2xlYW4gPSBmYWxzZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID1cbiAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGNvbnRhaW5lclNlbGVjdG9yKTtcbiAgICBjb25zdCBmb2N1c2FibGVDaGlsZHJlbiA9IHRoaXMuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oY29udGFpbmVyRWxlbWVudCk7XG5cbiAgICAvLyBGb2N1cyBmaXJzdCBmb2N1c2FibGUgY2hpbGQgaWYgYXZhaWxhYmxlLiBPdGhlcndpc2UsIHNldCBmb2N1cyBvbiBjb250YWluZXIuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuZm9jdXNGaXJzdEVsZW1lbnQoZm9jdXNhYmxlQ2hpbGRyZW4pICYmXG4gICAgICBmb2N1c09uQ29udGFpbmVySWZOb0NoaWxkcmVuRm91bmRcbiAgICApIHtcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgZm9jdXNhYmxlIGNoaWxkcmVuIG9mIHByb3ZpZGVkIGBlbGVtZW50YC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnQgLSBUaGUgSFRNTEVsZW1lbnQgdG8gc2VhcmNoIHdpdGhpbi5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBnZXR0aW5nIGZvY3VzYWJsZSBjaGlsZHJlbi5cbiAgICovXG4gIHB1YmxpYyBnZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBvcHRpb25zPzogU2t5Rm9jdXNhYmxlQ2hpbGRyZW5PcHRpb25zXG4gICk6IEhUTUxFbGVtZW50W10ge1xuICAgIGxldCBlbGVtZW50cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFxuICAgICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFNLWV9UQUJCQUJMRV9TRUxFQ1RPUilcbiAgICApO1xuXG4gICAgLy8gVW5sZXNzIGlnbm9yZVRhYkluZGV4ID0gdHJ1ZSwgZmlsdGVyIG91dCBlbGVtZW50cyB3aXRoIHRhYmluZGV4ID0gLTEuXG4gICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmlnbm9yZVRhYkluZGV4KSB7XG4gICAgICBlbGVtZW50cyA9IGVsZW1lbnRzLmZpbHRlcigoZWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBlbC50YWJJbmRleCAhPT0gLTE7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBVbmxlc3MgaWdub3JlVmlzaWJpbGl0eSA9IHRydWUsIGZpbHRlciBvdXQgZWxlbWVudHMgdGhhdCBhcmUgbm90IHZpc2libGUuXG4gICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmlnbm9yZVZpc2liaWxpdHkpIHtcbiAgICAgIGVsZW1lbnRzID0gZWxlbWVudHMuZmlsdGVyKChlbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlKGVsKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50cztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjbGllbnRXaWR0aCBvZiB0aGUgcHJvdmlkZWQgZWxlbWVudFJlZi5cbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0byBjYWxjdWxhdGUgd2lkdGggZnJvbS5cbiAgICovXG4gIHB1YmxpYyBnZXRXaWR0aChlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbiBldmVudCB0YXJnZXQgaGFzIGEgaGlnaGVyIHotaW5kZXggdGhhbiBhIGdpdmVuIGVsZW1lbnQuXG4gICAqIEBwYXJhbSB0YXJnZXQgVGhlIGV2ZW50IHRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCB0byB0ZXN0IGFnYWluc3QuIEEgei1pbmRleCBtdXN0IGJlIGV4cGxpY2l0bHkgc2V0IGZvciB0aGlzIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgaXNUYXJnZXRBYm92ZUVsZW1lbnQoXG4gICAgdGFyZ2V0OiBFdmVudFRhcmdldCxcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudFxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCB6SW5kZXg6IHN0cmluZyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuekluZGV4O1xuXG4gICAgbGV0IGVsOiBIVE1MRWxlbWVudCA9IHRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIHdoaWxlIChlbCkge1xuICAgICAgLy8gR2V0dGluZyB0aGUgY29tcHV0ZWQgc3R5bGUgb25seSB3b3JrcyBmb3IgZWxlbWVudHMgdGhhdCBleGlzdCBpbiB0aGUgRE9NLlxuICAgICAgLy8gSW4gY2VydGFpbiBzY2VuYXJpb3MsIGFuIGVsZW1lbnQgaXMgcmVtb3ZlZCBhZnRlciBhIGNsaWNrIGV2ZW50OyBieSB0aGUgdGltZSB0aGUgZXZlbnRcbiAgICAgIC8vIGJ1YmJsZXMgdXAgdG8gb3RoZXIgZWxlbWVudHMsIGhvd2V2ZXIsIHRoZSBlbGVtZW50IGhhcyBiZWVuIHJlbW92ZWQgYW5kIHRoZSBjb21wdXRlZCBzdHlsZSByZXR1cm5zIGVtcHR5LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSdsbCBuZWVkIHRvIGNoZWNrIHRoZSB6LWluZGV4IGRpcmVjdGx5LCB2aWEgdGhlIHN0eWxlIHByb3BlcnR5LlxuICAgICAgY29uc3QgdGFyZ2V0WkluZGV4OiBzdHJpbmcgPVxuICAgICAgICBnZXRDb21wdXRlZFN0eWxlKGVsKS56SW5kZXggfHwgZWwuc3R5bGUuekluZGV4O1xuICAgICAgaWYgKFxuICAgICAgICB0YXJnZXRaSW5kZXggIT09ICcnICYmXG4gICAgICAgIHRhcmdldFpJbmRleCAhPT0gJ2F1dG8nICYmXG4gICAgICAgICt0YXJnZXRaSW5kZXggPiArekluZGV4XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGVsID0gZWwucGFyZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGlubGluZSBoZWlnaHQgc3R5bGVzIGZyb20gdGhlIHByb3ZpZGVkIGVsZW1lbnRzLlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIFRoZSBlbGVtZW50IHRvIHNlYXJjaCB3aXRoaW4uXG4gICAqIEBwYXJhbSBzZWxlY3RvciAtIFRoZSBDU1Mgc2VsZWN0b3IgdG8gdXNlIHdoZW4gZmluZGluZyBlbGVtZW50cyBmb3IgcmVtb3ZpbmcgaGVpZ2h0LlxuICAgKi9cbiAgcHVibGljIHJlc2V0SGVpZ2h0KGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vIFNldHRpbmcgc3R5bGUgYXR0cmlidXRlcyB3aXRoIFdlYiBBUEkgcmVxdWlyZXMgbnVsbCBpbnN0ZWFkIG9mIHVuZGVmaW5lZC5cbiAgICAgICAgY2hpbGRyZW5baV0uc3R5bGUuaGVpZ2h0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhbGwgZWxlbWVudCBoZWlnaHRzIHRvIG1hdGNoIHRoZSBoZWlnaHQgb2YgdGhlIHRhbGxlc3QgZWxlbWVudC5cbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBAcGFyYW0gc2VsZWN0b3IgLSBUaGUgQ1NTIHNlbGVjdG9yIHRvIHVzZSB3aGVuIGZpbmRpbmcgZWxlbWVudHMgZm9yIHN5bmNpbmcgaGVpZ2h0LlxuICAgKi9cbiAgcHVibGljIHN5bmNNYXhIZWlnaHQoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgc2VsZWN0b3I6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBtYXhIZWlnaHQgPSAwO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBtYXhIZWlnaHQgPSBNYXRoLm1heChtYXhIZWlnaHQsIGNoaWxkcmVuW2ldLm9mZnNldEhlaWdodCk7XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNoaWxkcmVuW2ldLnN0eWxlLmhlaWdodCA9IG1heEhlaWdodCArICdweCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0ZpcnN0RWxlbWVudChsaXN0OiBBcnJheTxIVE1MRWxlbWVudD4pOiBib29sZWFuIHtcbiAgICBpZiAobGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBsaXN0WzBdLmZvY3VzKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Zpc2libGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAgIGNvbnN0IGlzSGlkZGVuID0gc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnIHx8IHN0eWxlLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nO1xuICAgIGlmIChpc0hpZGRlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0JvdW5kcyA9ICEhKFxuICAgICAgZWxlbWVudC5vZmZzZXRXaWR0aCB8fFxuICAgICAgZWxlbWVudC5vZmZzZXRIZWlnaHQgfHxcbiAgICAgIGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGhcbiAgICApO1xuICAgIHJldHVybiBoYXNCb3VuZHM7XG4gIH1cbn1cbiJdfQ==
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBSXZFLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsU0FBUztJQUNULFlBQVk7SUFDWix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFDMUIsUUFBUTtJQUNSLFFBQVE7SUFDUixPQUFPO0lBQ1AseUNBQXlDO0lBQ3pDLDZCQUE2QjtDQUM5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUtiLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFBb0IsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwyQkFBMkIsQ0FDaEMsVUFBc0IsRUFDdEIsVUFBK0I7UUFFL0IsTUFBTSxRQUFRLEdBQWdCLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFF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SSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxTQUFTLENBQUMsT0FBb0I7UUFDcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDO1FBQzNFLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUNsQixPQUFPLENBQUMsV0FBVztZQUNuQixPQUFPLENBQUMsWUFBWTtZQUNwQixPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUNoQyxDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7a0hBNVBVLHFCQUFxQjtzSEFBckIscUJBQXFCLGNBRnBCLE1BQU07MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreU1lZGlhQnJlYWtwb2ludHMgfSBmcm9tICcuLi9tZWRpYS1xdWVyeS9tZWRpYS1icmVha3BvaW50cyc7XG5cbmltcG9ydCB7IFNreUZvY3VzYWJsZUNoaWxkcmVuT3B0aW9ucyB9IGZyb20gJy4vZm9jdXNhYmxlLWNoaWxkcmVuLW9wdGlvbnMnO1xuXG5jb25zdCBTS1lfVEFCQkFCTEVfU0VMRUNUT1IgPSBbXG4gICdhW2hyZWZdJyxcbiAgJ2FyZWFbaHJlZl0nLFxuICAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pJyxcbiAgJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknLFxuICAnc2VsZWN0Om5vdChbZGlzYWJsZWRdKScsXG4gICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSknLFxuICAnaWZyYW1lJyxcbiAgJ29iamVjdCcsXG4gICdlbWJlZCcsXG4gICcqW2NvbnRlbnRlZGl0YWJsZT10cnVlXTpub3QoW2Rpc2FibGVkXSknLFxuICAnKlt0YWJpbmRleF06bm90KFtkaXNhYmxlZF0pJyxcbl0uam9pbignLCAnKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvcmVBZGFwdGVyU2VydmljZSB7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5Mikge1xuICAgIHRoaXMucmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSByZXNwb25zaXZlIGNvbnRhaW5lciBDU1MgY2xhc3MgZm9yIGEgZ2l2ZW4gZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0aGF0IHdpbGwgcmVjaWV2ZSB0aGUgbmV3IENTUyBjbGFzcy5cbiAgICogQHBhcmFtIGJyZWFrcG9pbnQgLSBUaGUgU2t5TWVkaWFCcmVha3BvaW50IHdpbGwgZGV0ZXJtaW5lIHdoaWNoIGNsYXNzXG4gICAqIGdldHMgc2V0LiBGb3IgZXhhbXBsZSBhIFNreU1lZGlhQnJlYWtwb2ludCBvZiBgeHNgIHdpbGwgc2V0IGEgQ1NTIGNsYXNzIG9mIGBza3ktcmVzcG9uc2l2ZS1jb250YWluZXIteHNgLlxuICAgKi9cbiAgcHVibGljIHNldFJlc3BvbnNpdmVDb250YWluZXJDbGFzcyhcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHNcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgbmF0aXZlRWw6IEhUTUxFbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci14cycpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItc20nKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLW1kJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1sZycpO1xuXG4gICAgbGV0IG5ld0NsYXNzOiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKGJyZWFrcG9pbnQpIHtcbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy54czoge1xuICAgICAgICBuZXdDbGFzcyA9ICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXIteHMnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy5zbToge1xuICAgICAgICBuZXdDbGFzcyA9ICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItc20nO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy5tZDoge1xuICAgICAgICBuZXdDbGFzcyA9ICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbWQnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLWxnJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhuYXRpdmVFbCwgbmV3Q2xhc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHRlbXBvcmFyaWx5IGVuYWJsZXMvZGlzYWJsZXMgcG9pbnRlciBldmVudHMuXG4gICAqIFRoaXMgaXMgaGVscGZ1bCB0byBwcmV2ZW50IGlGcmFtZXMgZnJvbSBpbnRlcmZlcmluZyB3aXRoIGRyYWcgZXZlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gZW5hYmxlIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgcG9pbnRlciBldmVudHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUuXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlSWZyYW1lUG9pbnRlckV2ZW50cyhlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBpZnJhbWVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaWZyYW1lJyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBTZXR0aW5nIHRvIGVtcHR5IHN0cmluZyB3aWxsIGFsbG93IGlmcmFtZSB0byBmYWxsIGJhY2sgdG8gaXRzIHByaW9yIENTUyBhc3NpZ25tZW50LlxuICAgICAgaWZyYW1lc1tpXS5zdHlsZS5wb2ludGVyRXZlbnRzID0gZW5hYmxlID8gJycgOiAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgb24gdGhlIGZpcnN0IGVsZW1lbnQgZm91bmQgd2l0aCBhbiBgYXV0b2ZvY3VzYCBhdHRyaWJ1dGUgaW5zaWRlIHRoZSBzdXBwbGllZCBgZWxlbWVudFJlZmAuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gVGhlIGVsZW1lbnQgdG8gc2VhcmNoIHdpdGhpbi5cbiAgICogQHJldHVybiBSZXR1cm5zIGB0cnVlYCBpZiBhIGNoaWxkIGVsZW1lbnQgd2l0aCBhdXRvZm9jdXMgaXMgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgYXBwbHlBdXRvRm9jdXMoZWxlbWVudFJlZjogRWxlbWVudFJlZik6IGJvb2xlYW4ge1xuICAgIGlmICghZWxlbWVudFJlZikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRXaXRoQXV0b0ZvY3VzID1cbiAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbYXV0b2ZvY3VzXScpO1xuXG4gICAgLy8gQ2hpbGQgd2FzIGZvdW5kIHdpdGggdGhlIGF1dG9mb2N1cyBwcm9wZXJ0eS4gU2V0IGZvY3VzIGFuZCByZXR1cm4gdHJ1ZS5cbiAgICBpZiAoZWxlbWVudFdpdGhBdXRvRm9jdXMpIHtcbiAgICAgIGVsZW1lbnRXaXRoQXV0b0ZvY3VzLmZvY3VzKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBObyBjaGlsZHJlbiB3ZXJlIGZvdW5kIHdpdGggYXV0b2ZvY3VzIHByb3BlcnR5LiBSZXR1cm4gZmFsc2UuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgZm9jdXMgb24gdGhlIGZpcnN0IGZvY3VzYWJsZSBjaGlsZCBvZiB0aGUgYGVsZW1lbnRSZWZgIHBhcmFtZXRlci5cbiAgICogSWYgbm8gZm9jdXNhYmxlIGNoaWxkcmVuIGFyZSBmb3VuZCwgYW5kIGBmb2N1c09uQ29udGFpbmVySWZOb0NoaWxkcmVuRm91bmRgIGlzIGB0cnVlYCxcbiAgICogZm9jdXMgd2lsbCBiZSBzZXQgb24gdGhlIGNvbnRhaW5lciBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIFRoZSBlbGVtZW50IHRvIHNlYXJjaCB3aXRoaW4uXG4gICAqIEBwYXJhbSBjb250YWluZXJTZWxlY3RvciAtIEEgQ1NTIHNlbGVjdG9yIGluZGljYXRpbmcgdGhlIGNvbnRhaW5lciB0aGF0IHNob3VsZFxuICAgKiByZWNpZXZlIGZvY3VzIGlmIG5vIGZvY3VzYWJsZSBjaGlsZHJlbiBhcmUgZm91bmQuXG4gICAqIEBwYXJhbSBmb2N1c09uQ29udGFpbmVySWZOb0NoaWxkcmVuRm91bmQgLSBJdCBzZXQgdG8gYHRydWVgLCB0aGUgY29udGFpbmVyIHdpbGxcbiAgICogcmVjaWV2ZSBmb2N1cyBpZiBubyBmb2N1c2FibGUgY2hpbGRyZW4gYXJlIGZvdW5kLlxuICAgKi9cbiAgcHVibGljIGdldEZvY3VzYWJsZUNoaWxkcmVuQW5kQXBwbHlGb2N1cyhcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGNvbnRhaW5lclNlbGVjdG9yOiBzdHJpbmcsXG4gICAgZm9jdXNPbkNvbnRhaW5lcklmTm9DaGlsZHJlbkZvdW5kOiBib29sZWFuID0gZmFsc2VcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9XG4gICAgICBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcihjb250YWluZXJTZWxlY3Rvcik7XG5cbiAgICBpZiAoY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgY29uc3QgZm9jdXNhYmxlQ2hpbGRyZW4gPSB0aGlzLmdldEZvY3VzYWJsZUNoaWxkcmVuKGNvbnRhaW5lckVsZW1lbnQpO1xuXG4gICAgICAvLyBGb2N1cyBmaXJzdCBmb2N1c2FibGUgY2hpbGQgaWYgYXZhaWxhYmxlLiBPdGhlcndpc2UsIHNldCBmb2N1cyBvbiBjb250YWluZXIuXG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLmZvY3VzRmlyc3RFbGVtZW50KGZvY3VzYWJsZUNoaWxkcmVuKSAmJlxuICAgICAgICBmb2N1c09uQ29udGFpbmVySWZOb0NoaWxkcmVuRm91bmRcbiAgICAgICkge1xuICAgICAgICBjb250YWluZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIGZvY3VzYWJsZSBjaGlsZHJlbiBvZiBwcm92aWRlZCBgZWxlbWVudGAuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIEhUTUxFbGVtZW50IHRvIHNlYXJjaCB3aXRoaW4uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgZ2V0dGluZyBmb2N1c2FibGUgY2hpbGRyZW4uXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgb3B0aW9ucz86IFNreUZvY3VzYWJsZUNoaWxkcmVuT3B0aW9uc1xuICApOiBIVE1MRWxlbWVudFtdIHtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBsZXQgZWxlbWVudHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChcbiAgICAgIGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChTS1lfVEFCQkFCTEVfU0VMRUNUT1IpXG4gICAgKTtcblxuICAgIC8vIFVubGVzcyBpZ25vcmVUYWJJbmRleCA9IHRydWUsIGZpbHRlciBvdXQgZWxlbWVudHMgd2l0aCB0YWJpbmRleCA9IC0xLlxuICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5pZ25vcmVUYWJJbmRleCkge1xuICAgICAgZWxlbWVudHMgPSBlbGVtZW50cy5maWx0ZXIoKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZWwudGFiSW5kZXggIT09IC0xO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVW5sZXNzIGlnbm9yZVZpc2liaWxpdHkgPSB0cnVlLCBmaWx0ZXIgb3V0IGVsZW1lbnRzIHRoYXQgYXJlIG5vdCB2aXNpYmxlLlxuICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5pZ25vcmVWaXNpYmlsaXR5KSB7XG4gICAgICBlbGVtZW50cyA9IGVsZW1lbnRzLmZpbHRlcigoZWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZShlbCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudHM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY2xpZW50V2lkdGggb2YgdGhlIHByb3ZpZGVkIGVsZW1lbnRSZWYuXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gVGhlIGVsZW1lbnQgdG8gY2FsY3VsYXRlIHdpZHRoIGZyb20uXG4gICAqL1xuICBwdWJsaWMgZ2V0V2lkdGgoZWxlbWVudFJlZjogRWxlbWVudFJlZik6IG51bWJlciB7XG4gICAgcmV0dXJuIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYW4gZXZlbnQgdGFyZ2V0IGhhcyBhIGhpZ2hlciB6LWluZGV4IHRoYW4gYSBnaXZlbiBlbGVtZW50LlxuICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSBldmVudCB0YXJnZXQgZWxlbWVudC5cbiAgICogQHBhcmFtIGVsZW1lbnQgVGhlIGVsZW1lbnQgdG8gdGVzdCBhZ2FpbnN0LiBBIHotaW5kZXggbXVzdCBiZSBleHBsaWNpdGx5IHNldCBmb3IgdGhpcyBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGlzVGFyZ2V0QWJvdmVFbGVtZW50KFxuICAgIHRhcmdldDogRXZlbnRUYXJnZXQsXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnRcbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc3QgekluZGV4OiBzdHJpbmcgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnpJbmRleDtcblxuICAgIGxldCBlbDogSFRNTEVsZW1lbnQgPSB0YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICB3aGlsZSAoZWwpIHtcbiAgICAgIC8vIEdldHRpbmcgdGhlIGNvbXB1dGVkIHN0eWxlIG9ubHkgd29ya3MgZm9yIGVsZW1lbnRzIHRoYXQgZXhpc3QgaW4gdGhlIERPTS5cbiAgICAgIC8vIEluIGNlcnRhaW4gc2NlbmFyaW9zLCBhbiBlbGVtZW50IGlzIHJlbW92ZWQgYWZ0ZXIgYSBjbGljayBldmVudDsgYnkgdGhlIHRpbWUgdGhlIGV2ZW50XG4gICAgICAvLyBidWJibGVzIHVwIHRvIG90aGVyIGVsZW1lbnRzLCBob3dldmVyLCB0aGUgZWxlbWVudCBoYXMgYmVlbiByZW1vdmVkIGFuZCB0aGUgY29tcHV0ZWQgc3R5bGUgcmV0dXJucyBlbXB0eS5cbiAgICAgIC8vIEluIHRoaXMgY2FzZSwgd2UnbGwgbmVlZCB0byBjaGVjayB0aGUgei1pbmRleCBkaXJlY3RseSwgdmlhIHRoZSBzdHlsZSBwcm9wZXJ0eS5cbiAgICAgIGNvbnN0IHRhcmdldFpJbmRleDogc3RyaW5nID1cbiAgICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShlbCkuekluZGV4IHx8IGVsLnN0eWxlLnpJbmRleDtcbiAgICAgIGlmIChcbiAgICAgICAgdGFyZ2V0WkluZGV4ICE9PSAnJyAmJlxuICAgICAgICB0YXJnZXRaSW5kZXggIT09ICdhdXRvJyAmJlxuICAgICAgICArdGFyZ2V0WkluZGV4ID4gK3pJbmRleFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBpbmxpbmUgaGVpZ2h0IHN0eWxlcyBmcm9tIHRoZSBwcm92aWRlZCBlbGVtZW50cy5cbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBAcGFyYW0gc2VsZWN0b3IgLSBUaGUgQ1NTIHNlbGVjdG9yIHRvIHVzZSB3aGVuIGZpbmRpbmcgZWxlbWVudHMgZm9yIHJlbW92aW5nIGhlaWdodC5cbiAgICovXG4gIHB1YmxpYyByZXNldEhlaWdodChlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBzZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBTZXR0aW5nIHN0eWxlIGF0dHJpYnV0ZXMgd2l0aCBXZWIgQVBJIHJlcXVpcmVzIG51bGwgaW5zdGVhZCBvZiB1bmRlZmluZWQuXG4gICAgICAgIGNoaWxkcmVuW2ldLnN0eWxlLmhlaWdodCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYWxsIGVsZW1lbnQgaGVpZ2h0cyB0byBtYXRjaCB0aGUgaGVpZ2h0IG9mIHRoZSB0YWxsZXN0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gVGhlIGVsZW1lbnQgdG8gc2VhcmNoIHdpdGhpbi5cbiAgICogQHBhcmFtIHNlbGVjdG9yIC0gVGhlIENTUyBzZWxlY3RvciB0byB1c2Ugd2hlbiBmaW5kaW5nIGVsZW1lbnRzIGZvciBzeW5jaW5nIGhlaWdodC5cbiAgICovXG4gIHB1YmxpYyBzeW5jTWF4SGVpZ2h0KGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgbWF4SGVpZ2h0ID0gMDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbWF4SGVpZ2h0ID0gTWF0aC5tYXgobWF4SGVpZ2h0LCBjaGlsZHJlbltpXS5vZmZzZXRIZWlnaHQpO1xuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjaGlsZHJlbltpXS5zdHlsZS5oZWlnaHQgPSBtYXhIZWlnaHQgKyAncHgnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNGaXJzdEVsZW1lbnQobGlzdDogQXJyYXk8SFRNTEVsZW1lbnQ+KTogYm9vbGVhbiB7XG4gICAgaWYgKGxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgbGlzdFswXS5mb2N1cygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNWaXNpYmxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICBjb25zdCBpc0hpZGRlbiA9IHN0eWxlLmRpc3BsYXkgPT09ICdub25lJyB8fCBzdHlsZS52aXNpYmlsaXR5ID09PSAnaGlkZGVuJztcbiAgICBpZiAoaXNIaWRkZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNCb3VuZHMgPSAhIShcbiAgICAgIGVsZW1lbnQub2Zmc2V0V2lkdGggfHxcbiAgICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8XG4gICAgICBlbGVtZW50LmdldENsaWVudFJlY3RzKCkubGVuZ3RoXG4gICAgKTtcbiAgICByZXR1cm4gaGFzQm91bmRzO1xuICB9XG59XG4iXX0=
|
@@ -50,7 +50,7 @@ export class SkyScrollableHostService {
|
|
50
50
|
});
|
51
51
|
this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
|
52
52
|
documentHiddenElementMutationObserver = this.mutationObserverSvc.create(() => {
|
53
|
-
if (!elementRef.nativeElement.offsetParent) {
|
53
|
+
if (scrollableHost && !elementRef.nativeElement.offsetParent) {
|
54
54
|
scrollableHost = undefined;
|
55
55
|
this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
|
56
56
|
notifySubscribers(subscribers, scrollableHost);
|
@@ -181,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
181
181
|
providedIn: 'root',
|
182
182
|
}]
|
183
183
|
}], ctorParameters: function () { return [{ type: i1.MutationObserverService }, { type: i2.SkyAppWindowRef }]; } });
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS1ob3N0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvc2Nyb2xsYWJsZS1ob3N0L3Njcm9sbGFibGUtaG9zdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBRXZELFNBQVMsaUJBQWlCLENBQUMsV0FBa0MsRUFBRSxJQUFjO0lBQzNFLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1FBQ3BDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdkI7QUFDSCxDQUFDO0FBS0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNVLG1CQUE0QyxFQUM1QyxTQUEwQjtRQUQxQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXlCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWlCO0lBQ2pDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsVUFBc0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxtQkFBbUIsQ0FDeEIsVUFBc0I7UUFFdEIsTUFBTSxXQUFXLEdBQXVDLEVBQUUsQ0FBQztRQUMzRCxJQUFJLHNCQUF3QyxDQUFDO1FBQzdD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QixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRTtZQUNsQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNoQyxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztnQkFDbkMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUU7Z0JBQ2pELFVBQVUsRUFBRSxJQUFJO2dCQUNoQixlQUFlLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO2dCQUNuQyxTQUFTLEVBQUUsSUFBSTtnQkFDZixPQUFPLEVBQUUsSUFBSTthQUNkLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7cUhBek5VLHdCQUF3Qjt5SEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaWJlciwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1zZXJ2aWNlJztcbmltcG9ydCB7IFNreUFwcFdpbmRvd1JlZiB9IGZyb20gJy4uL3dpbmRvdy93aW5kb3ctcmVmJztcblxuZnVuY3Rpb24gbm90aWZ5U3Vic2NyaWJlcnMoc3Vic2NyaWJlcnM6IFN1YnNjcmliZXI8dW5rbm93bj5bXSwgaXRlbT86IHVua25vd24pIHtcbiAgZm9yIChjb25zdCBzdWJzY3JpYmVyIG9mIHN1YnNjcmliZXJzKSB7XG4gICAgc3Vic2NyaWJlci5uZXh0KGl0ZW0pO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTY3JvbGxhYmxlSG9zdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXJTdmM6IE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWZcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBnaXZlbiBlbGVtZW50J3MgY3VycmVudCBzY3JvbGxhYmxlIGhvc3RcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgVGhlIGVsZW1lbnQgd2hvc2Ugc2Nyb2xsYWJsZSBob3N0IGlzIGJlaW5nIHJlcXVlc3RlZFxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBzY3JvbGxhYmxlIGhvc3RcbiAgICovXG4gIHB1YmxpYyBnZXRTY3JvbGxhYmxlSG9zdChlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogSFRNTEVsZW1lbnQgfCBXaW5kb3cge1xuICAgIHJldHVybiB0aGlzLmZpbmRTY3JvbGxhYmxlSG9zdChlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB0aGUgZ2l2ZW4gZWxlbWVudCdzIGN1cnJlbnQgc2Nyb2xsYWJsZSBob3N0XG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFRoZSBlbGVtZW50IHdob3NlIHNjcm9sbGFibGUgaG9zdCBpcyBiZWluZyByZXF1ZXN0ZWRcbiAgICogQHBhcmFtIGNvbXBsZXRpb25PYnNlcnZhYmxlIEFuIG9ic2VydmFibGUgd2hpY2ggYWxlcnRzIHRoZSBpbnRlcm5hbCBvYnNlcnZlcnMgdGhhdCB0aGV5IHNob3VsZCBjb21wbGV0ZVxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHRoZSBjdXJyZW50IHNjcm9sbGFibGUgaG9zdFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyB3YXRjaFNjcm9sbGFibGVIb3N0KFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKTogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudCB8IFdpbmRvdz4ge1xuICAgIGNvbnN0IHN1YnNjcmliZXJzOiBTdWJzY3JpYmVyPEhUTUxFbGVtZW50IHwgV2luZG93PltdID0gW107XG4gICAgbGV0IHBhcmVudE11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG4gICAgbGV0IGRvY3VtZW50SGlkZGVuRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIHN1YnNjcmliZXJzLnB1c2goc3Vic2NyaWJlcik7XG5cbiAgICAgIGxldCBzY3JvbGxhYmxlSG9zdCA9IHRoaXMuZmluZFNjcm9sbGFibGVIb3N0KGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICBpZiAoc3Vic2NyaWJlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHBhcmVudE11dGF0aW9uT2JzZXJ2ZXIgPSB0aGlzLm11dGF0aW9uT2JzZXJ2ZXJTdmMuY3JlYXRlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdTY3JvbGxhYmxlSG9zdCA9IHRoaXMuZmluZFNjcm9sbGFibGVIb3N0KFxuICAgICAgICAgICAgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0ICE9PSBzY3JvbGxhYmxlSG9zdCAmJlxuICAgICAgICAgICAgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFBhcmVudFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2Nyb2xsYWJsZUhvc3QgPSBuZXdTY3JvbGxhYmxlSG9zdDtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZUZvclNjcm9sbGFibGVIb3N0Q2hhbmdlcyhcbiAgICAgICAgICAgICAgc2Nyb2xsYWJsZUhvc3QsXG4gICAgICAgICAgICAgIHBhcmVudE11dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIG5vdGlmeVN1YnNjcmliZXJzKHN1YnNjcmliZXJzLCBzY3JvbGxhYmxlSG9zdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vYnNlcnZlRm9yU2Nyb2xsYWJsZUhvc3RDaGFuZ2VzKFxuICAgICAgICAgIHNjcm9sbGFibGVIb3N0LFxuICAgICAgICAgIHBhcmVudE11dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgKTtcblxuICAgICAgICBkb2N1bWVudEhpZGRlbkVsZW1lbnRNdXRhdGlvbk9ic2VydmVyID0gdGhpcy5tdXRhdGlvbk9ic2VydmVyU3ZjLmNyZWF0ZShcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRQYXJlbnQpIHtcbiAgICAgICAgICAgICAgc2Nyb2xsYWJsZUhvc3QgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgdGhpcy5vYnNlcnZlRm9yU2Nyb2xsYWJsZUhvc3RDaGFuZ2VzKFxuICAgICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0LFxuICAgICAgICAgICAgICAgIHBhcmVudE11dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycywgc2Nyb2xsYWJsZUhvc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlRG9jdW1lbnRIaWRkZW5FbGVtZW50Q2hhbmdlcyhcbiAgICAgICAgICBkb2N1bWVudEhpZGRlbkVsZW1lbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzdWJzY3JpYmVyLm5leHQoc2Nyb2xsYWJsZUhvc3QpO1xuXG4gICAgICBzdWJzY3JpYmVyLmFkZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YkluZGV4ID0gc3Vic2NyaWJlcnMuaW5kZXhPZihzdWJzY3JpYmVyKTtcblxuICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHN1YkluZGV4ID49IDApIHtcbiAgICAgICAgICBzdWJzY3JpYmVycy5zcGxpY2Uoc3ViSW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGRvY3VtZW50SGlkZGVuRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgIHBhcmVudE11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgd2hpY2ggZW1pdHMgd2hlbmV2ZXIgdGhlIGVsZW1lbnQncyBzY3JvbGxhYmxlIGhvc3QgZW1pdHMgYSBzY3JvbGwgZXZlbnQuIFRoZSBvYnNlcnZhYmxlIHdpbGwgYWx3YXlzIGVtaXQgdGhlIHNjcm9sbCBldmVudHMgZnJvbSB0aGUgZWxlbWVudHMgY3VycmVudCBzY3JvbGxhYmxlIGhvc3QgYW5kIHdpbGwgdXBkYXRlIGJhc2VkIG9uIGFueSBzY3JvbGxhYmxlIGhvc3QgY2hhbmdlcy4gVGhlIG9ic2VydmFibGUgd2lsbCBhbHNvIGVtaXQgb25jZSB3aGVuZXZlciB0aGUgc2Nyb2xsYWJsZSBob3N0IGNoYW5nZXMuXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFRoZSBlbGVtZW50IHdob3NlIHNjcm9sbGFibGUgaG9zdCBzY3JvbGwgZXZlbnRzIGFyZSBiZWluZyByZXF1ZXN0ZWRcbiAgICogQHBhcmFtIGNvbXBsZXRpb25PYnNlcnZhYmxlIEFuIG9ic2VydmFibGUgd2hpY2ggYWxlcnRzIHRoZSBpbnRlcm5hbCBvYnNlcnZlcnMgdGhhdCB0aGV5IHNob3VsZCBjb21wbGV0ZVxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW4gdGhlIGVsZW1lbnRzIHNjcm9sbGFibGUgaG9zdCBpcyBzY3JvbGxlZCBvciBpcyBjaGFuZ2VkXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY3JvbGxhYmxlSG9zdFNjcm9sbEV2ZW50cyhcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHN1YnNjcmliZXJzOiBTdWJzY3JpYmVyPHZvaWQ+W10gPSBbXTtcbiAgICBsZXQgc2Nyb2xsYWJsZUhvc3Q6IEhUTUxFbGVtZW50IHwgV2luZG93O1xuXG4gICAgbGV0IG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgbGV0IHNjcm9sbGFibGVIb3N0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgbGV0IHNjcm9sbEV2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICBzdWJzY3JpYmVycy5wdXNoKHN1YnNjcmliZXIpO1xuXG4gICAgICBpZiAoc3Vic2NyaWJlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHNjcm9sbGFibGVIb3N0U3Vic2NyaXB0aW9uID0gdGhpcy53YXRjaFNjcm9sbGFibGVIb3N0KFxuICAgICAgICAgIGVsZW1lbnRSZWZcbiAgICAgICAgKS5zdWJzY3JpYmUoKG5ld1Njcm9sbGFibGVIb3N0KSA9PiB7XG4gICAgICAgICAgbmV3U2Nyb2xsYWJsZUhvc3RPYnNlcnZhYmxlLm5leHQoKTtcbiAgICAgICAgICBuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUuY29tcGxldGUoKTtcbiAgICAgICAgICBpZiAoc2Nyb2xsYWJsZUhvc3QgJiYgc2Nyb2xsYWJsZUhvc3QgIT09IG5ld1Njcm9sbGFibGVIb3N0KSB7XG4gICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNjcm9sbGFibGVIb3N0ID0gbmV3U2Nyb2xsYWJsZUhvc3Q7XG4gICAgICAgICAgbmV3U2Nyb2xsYWJsZUhvc3RPYnNlcnZhYmxlID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgICBpZiAobmV3U2Nyb2xsYWJsZUhvc3QpIHtcbiAgICAgICAgICAgIHNjcm9sbEV2ZW50U3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KG5ld1Njcm9sbGFibGVIb3N0LCAnc2Nyb2xsJylcbiAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIG5vdGlmeVN1YnNjcmliZXJzKHN1YnNjcmliZXJzKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgc3Vic2NyaWJlci5hZGQoKCkgPT4ge1xuICAgICAgICBjb25zdCBzdWJJbmRleCA9IHN1YnNjcmliZXJzLmluZGV4T2Yoc3Vic2NyaWJlcik7XG5cbiAgICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChzdWJJbmRleCA+PSAwKSB7XG4gICAgICAgICAgc3Vic2NyaWJlcnMuc3BsaWNlKHN1YkluZGV4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWJzY3JpYmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBzY3JvbGxhYmxlSG9zdFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIHNjcm9sbEV2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgbmV3U2Nyb2xsYWJsZUhvc3RPYnNlcnZhYmxlLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kU2Nyb2xsYWJsZUhvc3QoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB8IFdpbmRvdyB7XG4gICAgY29uc3QgcmVnZXggPSAvKGF1dG98c2Nyb2xsKS87XG4gICAgY29uc3Qgd2luZG93T2JqID0gdGhpcy53aW5kb3dSZWYubmF0aXZlV2luZG93O1xuICAgIGNvbnN0IGJvZHlPYmogPSB3aW5kb3dPYmouZG9jdW1lbnQuYm9keTtcblxuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuIHdpbmRvd09iajtcbiAgICB9XG5cbiAgICBsZXQgc3R5bGUgPSB3aW5kb3dPYmouZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICBsZXQgcGFyZW50OiBIVE1MRWxlbWVudCA9IGVsZW1lbnQ7XG5cbiAgICBkbyB7XG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgLyogU2FuaXR5IGNoZWNrIGZvciBpZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgYW4gZWxlbWVudCB3aGljaCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIERPTSAqL1xuICAgICAgaWYgKCEocGFyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3dPYmo7XG4gICAgICB9XG5cbiAgICAgIHN0eWxlID0gd2luZG93T2JqLmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICB9IHdoaWxlIChcbiAgICAgICFyZWdleC50ZXN0KHN0eWxlLm92ZXJmbG93KSAmJlxuICAgICAgIXJlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3dZKSAmJlxuICAgICAgcGFyZW50ICE9PSBib2R5T2JqXG4gICAgKTtcblxuICAgIGlmIChwYXJlbnQgPT09IGJvZHlPYmopIHtcbiAgICAgIHJldHVybiB3aW5kb3dPYmo7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudDtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZURvY3VtZW50SGlkZGVuRWxlbWVudENoYW5nZXMoXG4gICAgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlclxuICApIHtcbiAgICBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB7XG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJywgJ3N0eWxlJywgJ2hpZGRlbiddLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUZvclNjcm9sbGFibGVIb3N0Q2hhbmdlcyhcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IFdpbmRvdyxcbiAgICBtdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyXG4gICkge1xuICAgIG11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCB7XG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcycsICdzdHlsZSddLFxuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwge1xuICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnLCAnc3R5bGUnXSxcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS1ob3N0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvc2Nyb2xsYWJsZS1ob3N0L3Njcm9sbGFibGUtaG9zdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBRXZELFNBQVMsaUJBQWlCLENBQUMsV0FBa0MsRUFBRSxJQUFjO0lBQzNFLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1FBQ3BDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdkI7QUFDSCxDQUFDO0FBS0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNVLG1CQUE0QyxFQUM1QyxTQUEwQjtRQUQxQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXlCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWlCO0lBQ2pDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsVUFBc0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxtQkFBbUIsQ0FDeEIsVUFBc0I7UUFFdEIsTUFBTSxXQUFXLEdBQXVDLEVBQUUsQ0FBQztRQUMzRCxJQUFJLHNCQUF3QyxDQUFDO1FBQzdD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QUVsQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLE9BQU8sWUFBWSxXQUFXLEVBQUU7WUFDbEMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDaEMsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGVBQWUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSxJQUFJO2dCQUNmLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO2dCQUNqRCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztnQkFDbkMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O3FIQXpOVSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmliZXIsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItc2VydmljZSc7XG5pbXBvcnQgeyBTa3lBcHBXaW5kb3dSZWYgfSBmcm9tICcuLi93aW5kb3cvd2luZG93LXJlZic7XG5cbmZ1bmN0aW9uIG5vdGlmeVN1YnNjcmliZXJzKHN1YnNjcmliZXJzOiBTdWJzY3JpYmVyPHVua25vd24+W10sIGl0ZW0/OiB1bmtub3duKSB7XG4gIGZvciAoY29uc3Qgc3Vic2NyaWJlciBvZiBzdWJzY3JpYmVycykge1xuICAgIHN1YnNjcmliZXIubmV4dChpdGVtKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U2Nyb2xsYWJsZUhvc3RTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtdXRhdGlvbk9ic2VydmVyU3ZjOiBNdXRhdGlvbk9ic2VydmVyU2VydmljZSxcbiAgICBwcml2YXRlIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmXG4gICkge31cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZ2l2ZW4gZWxlbWVudCdzIGN1cnJlbnQgc2Nyb2xsYWJsZSBob3N0XG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFRoZSBlbGVtZW50IHdob3NlIHNjcm9sbGFibGUgaG9zdCBpcyBiZWluZyByZXF1ZXN0ZWRcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgc2Nyb2xsYWJsZSBob3N0XG4gICAqL1xuICBwdWJsaWMgZ2V0U2Nyb2xsYWJsZUhvc3QoZWxlbWVudFJlZjogRWxlbWVudFJlZik6IEhUTUxFbGVtZW50IHwgV2luZG93IHtcbiAgICByZXR1cm4gdGhpcy5maW5kU2Nyb2xsYWJsZUhvc3QoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgd2hpY2ggZW1pdHMgdGhlIGdpdmVuIGVsZW1lbnQncyBjdXJyZW50IHNjcm9sbGFibGUgaG9zdFxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBUaGUgZWxlbWVudCB3aG9zZSBzY3JvbGxhYmxlIGhvc3QgaXMgYmVpbmcgcmVxdWVzdGVkXG4gICAqIEBwYXJhbSBjb21wbGV0aW9uT2JzZXJ2YWJsZSBBbiBvYnNlcnZhYmxlIHdoaWNoIGFsZXJ0cyB0aGUgaW50ZXJuYWwgb2JzZXJ2ZXJzIHRoYXQgdGhleSBzaG91bGQgY29tcGxldGVcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB0aGUgY3VycmVudCBzY3JvbGxhYmxlIGhvc3RcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY3JvbGxhYmxlSG9zdChcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnQgfCBXaW5kb3c+IHtcbiAgICBjb25zdCBzdWJzY3JpYmVyczogU3Vic2NyaWJlcjxIVE1MRWxlbWVudCB8IFdpbmRvdz5bXSA9IFtdO1xuICAgIGxldCBwYXJlbnRNdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuICAgIGxldCBkb2N1bWVudEhpZGRlbkVsZW1lbnRNdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICBzdWJzY3JpYmVycy5wdXNoKHN1YnNjcmliZXIpO1xuXG4gICAgICBsZXQgc2Nyb2xsYWJsZUhvc3QgPSB0aGlzLmZpbmRTY3JvbGxhYmxlSG9zdChlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyID0gdGhpcy5tdXRhdGlvbk9ic2VydmVyU3ZjLmNyZWF0ZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3U2Nyb2xsYWJsZUhvc3QgPSB0aGlzLmZpbmRTY3JvbGxhYmxlSG9zdChcbiAgICAgICAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBuZXdTY3JvbGxhYmxlSG9zdCAhPT0gc2Nyb2xsYWJsZUhvc3QgJiZcbiAgICAgICAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRQYXJlbnRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0ID0gbmV3U2Nyb2xsYWJsZUhvc3Q7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVGb3JTY3JvbGxhYmxlSG9zdENoYW5nZXMoXG4gICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0LFxuICAgICAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycywgc2Nyb2xsYWJsZUhvc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUZvclNjcm9sbGFibGVIb3N0Q2hhbmdlcyhcbiAgICAgICAgICBzY3JvbGxhYmxlSG9zdCxcbiAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICk7XG5cbiAgICAgICAgZG9jdW1lbnRIaWRkZW5FbGVtZW50TXV0YXRpb25PYnNlcnZlciA9IHRoaXMubXV0YXRpb25PYnNlcnZlclN2Yy5jcmVhdGUoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVIb3N0ICYmICFlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XG4gICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0ID0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZUZvclNjcm9sbGFibGVIb3N0Q2hhbmdlcyhcbiAgICAgICAgICAgICAgICBzY3JvbGxhYmxlSG9zdCxcbiAgICAgICAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgbm90aWZ5U3Vic2NyaWJlcnMoc3Vic2NyaWJlcnMsIHNjcm9sbGFibGVIb3N0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZURvY3VtZW50SGlkZGVuRWxlbWVudENoYW5nZXMoXG4gICAgICAgICAgZG9jdW1lbnRIaWRkZW5FbGVtZW50TXV0YXRpb25PYnNlcnZlclxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgc3Vic2NyaWJlci5uZXh0KHNjcm9sbGFibGVIb3N0KTtcblxuICAgICAgc3Vic2NyaWJlci5hZGQoKCkgPT4ge1xuICAgICAgICBjb25zdCBzdWJJbmRleCA9IHN1YnNjcmliZXJzLmluZGV4T2Yoc3Vic2NyaWJlcik7XG5cbiAgICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChzdWJJbmRleCA+PSAwKSB7XG4gICAgICAgICAgc3Vic2NyaWJlcnMuc3BsaWNlKHN1YkluZGV4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWJzY3JpYmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBkb2N1bWVudEhpZGRlbkVsZW1lbnRNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW5ldmVyIHRoZSBlbGVtZW50J3Mgc2Nyb2xsYWJsZSBob3N0IGVtaXRzIGEgc2Nyb2xsIGV2ZW50LiBUaGUgb2JzZXJ2YWJsZSB3aWxsIGFsd2F5cyBlbWl0IHRoZSBzY3JvbGwgZXZlbnRzIGZyb20gdGhlIGVsZW1lbnRzIGN1cnJlbnQgc2Nyb2xsYWJsZSBob3N0IGFuZCB3aWxsIHVwZGF0ZSBiYXNlZCBvbiBhbnkgc2Nyb2xsYWJsZSBob3N0IGNoYW5nZXMuIFRoZSBvYnNlcnZhYmxlIHdpbGwgYWxzbyBlbWl0IG9uY2Ugd2hlbmV2ZXIgdGhlIHNjcm9sbGFibGUgaG9zdCBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBUaGUgZWxlbWVudCB3aG9zZSBzY3JvbGxhYmxlIGhvc3Qgc2Nyb2xsIGV2ZW50cyBhcmUgYmVpbmcgcmVxdWVzdGVkXG4gICAqIEBwYXJhbSBjb21wbGV0aW9uT2JzZXJ2YWJsZSBBbiBvYnNlcnZhYmxlIHdoaWNoIGFsZXJ0cyB0aGUgaW50ZXJuYWwgb2JzZXJ2ZXJzIHRoYXQgdGhleSBzaG91bGQgY29tcGxldGVcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuIHRoZSBlbGVtZW50cyBzY3JvbGxhYmxlIGhvc3QgaXMgc2Nyb2xsZWQgb3IgaXMgY2hhbmdlZFxuICAgKi9cbiAgcHVibGljIHdhdGNoU2Nyb2xsYWJsZUhvc3RTY3JvbGxFdmVudHMoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBzdWJzY3JpYmVyczogU3Vic2NyaWJlcjx2b2lkPltdID0gW107XG4gICAgbGV0IHNjcm9sbGFibGVIb3N0OiBIVE1MRWxlbWVudCB8IFdpbmRvdztcblxuICAgIGxldCBuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIGxldCBzY3JvbGxhYmxlSG9zdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGxldCBzY3JvbGxFdmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgc3Vic2NyaWJlcnMucHVzaChzdWJzY3JpYmVyKTtcblxuICAgICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBzY3JvbGxhYmxlSG9zdFN1YnNjcmlwdGlvbiA9IHRoaXMud2F0Y2hTY3JvbGxhYmxlSG9zdChcbiAgICAgICAgICBlbGVtZW50UmVmXG4gICAgICAgICkuc3Vic2NyaWJlKChuZXdTY3JvbGxhYmxlSG9zdCkgPT4ge1xuICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZS5uZXh0KCk7XG4gICAgICAgICAgbmV3U2Nyb2xsYWJsZUhvc3RPYnNlcnZhYmxlLmNvbXBsZXRlKCk7XG4gICAgICAgICAgaWYgKHNjcm9sbGFibGVIb3N0ICYmIHNjcm9sbGFibGVIb3N0ICE9PSBuZXdTY3JvbGxhYmxlSG9zdCkge1xuICAgICAgICAgICAgbm90aWZ5U3Vic2NyaWJlcnMoc3Vic2NyaWJlcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzY3JvbGxhYmxlSG9zdCA9IG5ld1Njcm9sbGFibGVIb3N0O1xuICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgICAgICAgaWYgKG5ld1Njcm9sbGFibGVIb3N0KSB7XG4gICAgICAgICAgICBzY3JvbGxFdmVudFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChuZXdTY3JvbGxhYmxlSG9zdCwgJ3Njcm9sbCcpXG4gICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHN1YnNjcmliZXIuYWRkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc3ViSW5kZXggPSBzdWJzY3JpYmVycy5pbmRleE9mKHN1YnNjcmliZXIpO1xuXG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoc3ViSW5kZXggPj0gMCkge1xuICAgICAgICAgIHN1YnNjcmliZXJzLnNwbGljZShzdWJJbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3Vic2NyaWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgc2Nyb2xsYWJsZUhvc3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBzY3JvbGxFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZS5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFNjcm9sbGFibGVIb3N0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBXaW5kb3cge1xuICAgIGNvbnN0IHJlZ2V4ID0gLyhhdXRvfHNjcm9sbCkvO1xuICAgIGNvbnN0IHdpbmRvd09iaiA9IHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdztcbiAgICBjb25zdCBib2R5T2JqID0gd2luZG93T2JqLmRvY3VtZW50LmJvZHk7XG5cbiAgICAvKiBTYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB3aW5kb3dPYmo7XG4gICAgfVxuXG4gICAgbGV0IHN0eWxlID0gd2luZG93T2JqLmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgbGV0IHBhcmVudDogSFRNTEVsZW1lbnQgPSBlbGVtZW50O1xuXG4gICAgZG8ge1xuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIC8qIFNhbml0eSBjaGVjayBmb3IgaWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGFuIGVsZW1lbnQgd2hpY2ggaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBET00gKi9cbiAgICAgIGlmICghKHBhcmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gd2luZG93T2JqO1xuICAgICAgfVxuXG4gICAgICBzdHlsZSA9IHdpbmRvd09iai5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCk7XG4gICAgfSB3aGlsZSAoXG4gICAgICAhcmVnZXgudGVzdChzdHlsZS5vdmVyZmxvdykgJiZcbiAgICAgICFyZWdleC50ZXN0KHN0eWxlLm92ZXJmbG93WSkgJiZcbiAgICAgIHBhcmVudCAhPT0gYm9keU9ialxuICAgICk7XG5cbiAgICBpZiAocGFyZW50ID09PSBib2R5T2JqKSB7XG4gICAgICByZXR1cm4gd2luZG93T2JqO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJlbnQ7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVEb2N1bWVudEhpZGRlbkVsZW1lbnRDaGFuZ2VzKFxuICAgIG11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXJcbiAgKSB7XG4gICAgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcycsICdzdHlsZScsICdoaWRkZW4nXSxcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVGb3JTY3JvbGxhYmxlSG9zdENoYW5nZXMoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBXaW5kb3csXG4gICAgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlclxuICApIHtcbiAgICBtdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwge1xuICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnLCAnc3R5bGUnXSxcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJywgJ3N0eWxlJ10sXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/fesm2015/skyux-core.mjs
CHANGED
@@ -117,6 +117,9 @@ class SkyCoreAdapterService {
|
|
117
117
|
* @return Returns `true` if a child element with autofocus is found.
|
118
118
|
*/
|
119
119
|
applyAutoFocus(elementRef) {
|
120
|
+
if (!elementRef) {
|
121
|
+
return false;
|
122
|
+
}
|
120
123
|
const elementWithAutoFocus = elementRef.nativeElement.querySelector('[autofocus]');
|
121
124
|
// Child was found with the autofocus property. Set focus and return true.
|
122
125
|
if (elementWithAutoFocus) {
|
@@ -139,11 +142,13 @@ class SkyCoreAdapterService {
|
|
139
142
|
*/
|
140
143
|
getFocusableChildrenAndApplyFocus(elementRef, containerSelector, focusOnContainerIfNoChildrenFound = false) {
|
141
144
|
const containerElement = elementRef.nativeElement.querySelector(containerSelector);
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
145
|
+
if (containerElement) {
|
146
|
+
const focusableChildren = this.getFocusableChildren(containerElement);
|
147
|
+
// Focus first focusable child if available. Otherwise, set focus on container.
|
148
|
+
if (!this.focusFirstElement(focusableChildren) &&
|
149
|
+
focusOnContainerIfNoChildrenFound) {
|
150
|
+
containerElement.focus();
|
151
|
+
}
|
147
152
|
}
|
148
153
|
}
|
149
154
|
/**
|
@@ -153,6 +158,9 @@ class SkyCoreAdapterService {
|
|
153
158
|
* @param options - Options for getting focusable children.
|
154
159
|
*/
|
155
160
|
getFocusableChildren(element, options) {
|
161
|
+
if (!element) {
|
162
|
+
return [];
|
163
|
+
}
|
156
164
|
let elements = Array.prototype.slice.call(element.querySelectorAll(SKY_TABBABLE_SELECTOR));
|
157
165
|
// Unless ignoreTabIndex = true, filter out elements with tabindex = -1.
|
158
166
|
if (!options || !options.ignoreTabIndex) {
|
@@ -2729,7 +2737,7 @@ class SkyScrollableHostService {
|
|
2729
2737
|
});
|
2730
2738
|
this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
|
2731
2739
|
documentHiddenElementMutationObserver = this.mutationObserverSvc.create(() => {
|
2732
|
-
if (!elementRef.nativeElement.offsetParent) {
|
2740
|
+
if (scrollableHost && !elementRef.nativeElement.offsetParent) {
|
2733
2741
|
scrollableHost = undefined;
|
2734
2742
|
this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
|
2735
2743
|
notifySubscribers(subscribers, scrollableHost);
|