@eui/core 18.0.0-rc.34 → 18.0.0-rc.36
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/docs/classes/CssUtils.html +59 -2
- package/docs/dependencies.html +1 -1
- package/docs/injectables/EuiAppShellService.html +13 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +6 -10
- package/esm2022/lib/helpers/css-utils.mjs +74 -60
- package/esm2022/lib/helpers/dom-helpers.mjs +3 -9
- package/esm2022/lib/services/eui-app-shell.service.mjs +20 -16
- package/fesm2022/eui-core.mjs +93 -82
- package/fesm2022/eui-core.mjs.map +1 -1
- package/lib/helpers/css-utils.d.ts +24 -18
- package/lib/helpers/css-utils.d.ts.map +1 -1
- package/lib/helpers/dom-helpers.d.ts +1 -1
- package/lib/helpers/dom-helpers.d.ts.map +1 -1
- package/lib/services/eui-app-shell.service.d.ts +3 -2
- package/lib/services/eui-app-shell.service.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1620,19 +1620,15 @@
|
|
|
1620
1620
|
</tr>
|
|
1621
1621
|
<tr>
|
|
1622
1622
|
<td class="col-md-4">
|
|
1623
|
-
<i>Default value : </i><code>(nativeEl:
|
|
1624
|
-
// IE
|
|
1623
|
+
<i>Default value : </i><code>(nativeEl: Element, cssProp: keyof CSSStyleDeclaration): string => {
|
|
1625
1624
|
/* istanbul ignore if */
|
|
1626
|
-
if (nativeEl
|
|
1627
|
-
return nativeEl
|
|
1625
|
+
if (getComputedStyle(nativeEl)) {
|
|
1626
|
+
return getComputedStyle(nativeEl)[cssProp] as string;
|
|
1628
1627
|
}
|
|
1629
1628
|
|
|
1630
|
-
if (window.getComputedStyle) {
|
|
1631
|
-
return window.getComputedStyle(nativeEl)[cssProp];
|
|
1632
|
-
}
|
|
1633
1629
|
// finally try and get inline style
|
|
1634
1630
|
/* istanbul ignore next */
|
|
1635
|
-
return nativeEl.style[cssProp];
|
|
1631
|
+
return (nativeEl as HTMLElement).style[cssProp] as string;
|
|
1636
1632
|
}</code>
|
|
1637
1633
|
</td>
|
|
1638
1634
|
</tr>
|
|
@@ -1653,7 +1649,7 @@
|
|
|
1653
1649
|
</tr>
|
|
1654
1650
|
<tr>
|
|
1655
1651
|
<td class="col-md-4">
|
|
1656
|
-
<i>Default value : </i><code><F>(fixture: ComponentFixture<F>, componentClass, klass
|
|
1652
|
+
<i>Default value : </i><code><F>(fixture: ComponentFixture<F>, componentClass: string, klass?: string): {de: DebugElement, el: HTMLElement, domElement: HTMLElement} => {
|
|
1657
1653
|
let el: HTMLElement, domElement: NodeList | HTMLElement;
|
|
1658
1654
|
|
|
1659
1655
|
const de = fixture.debugElement.query(By.css(componentClass));
|
|
@@ -1664,7 +1660,7 @@
|
|
|
1664
1660
|
domElement = el.querySelectorAll(klass);
|
|
1665
1661
|
|
|
1666
1662
|
if (domElement.length <= 1) {
|
|
1667
|
-
domElement = el.querySelector(klass);
|
|
1663
|
+
domElement = el.querySelector(klass) as HTMLElement;
|
|
1668
1664
|
}
|
|
1669
1665
|
}
|
|
1670
1666
|
}
|
|
@@ -1,111 +1,125 @@
|
|
|
1
|
+
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
|
|
1
2
|
export class CssUtils {
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Get the value of a CSS variable. Using getComputedStyle to get the value of the CSS variable (Browser Specific API)
|
|
5
|
+
* @param inputProperty
|
|
6
|
+
* @param document
|
|
7
|
+
* @param platform
|
|
8
|
+
*/
|
|
9
|
+
static { this.getCssVarValue = (inputProperty, document, platform) => {
|
|
10
|
+
if (isPlatformServer(platform)) {
|
|
11
|
+
return document.documentElement.style.getPropertyValue(inputProperty);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return getComputedStyle(document.documentElement).getPropertyValue(inputProperty);
|
|
15
|
+
}
|
|
4
16
|
}; }
|
|
5
|
-
static { this.setCssVarValue = (propertyName, propertyValue) => {
|
|
17
|
+
static { this.setCssVarValue = (propertyName, propertyValue, document) => {
|
|
6
18
|
document.documentElement.style.setProperty(propertyName, propertyValue);
|
|
7
19
|
}; }
|
|
8
|
-
static { this.setCssVar = (inputProperty, outputProperty) => {
|
|
9
|
-
const cssVarValue = this.getCssVarValue(inputProperty);
|
|
10
|
-
this.setCssVarValue(outputProperty, cssVarValue);
|
|
20
|
+
static { this.setCssVar = (inputProperty, outputProperty, document, platform) => {
|
|
21
|
+
const cssVarValue = this.getCssVarValue(inputProperty, document, platform);
|
|
22
|
+
this.setCssVarValue(outputProperty, cssVarValue, document);
|
|
11
23
|
}; }
|
|
12
|
-
static { this.initCssVars = () => {
|
|
13
|
-
this.setCssVar('--eui-app-header-height-default', '--eui-app-header-height');
|
|
14
|
-
this.setCssVar('--eui-app-breadcrumb-height-default', '--eui-app-breadcrumb-height');
|
|
15
|
-
this.setCssVar('--eui-app-top-message-height-default', '--eui-app-top-message-height');
|
|
16
|
-
this.setCssVar('--eui-app-toolbar-height-default', '--eui-app-toolbar-height');
|
|
17
|
-
this.setCssVar('--eui-app-sidebar-width-default', '--eui-app-sidebar-width');
|
|
18
|
-
this.setCssVar('--eui-app-sidebar-width-close-default', '--eui-app-sidebar-width-close');
|
|
19
|
-
this.setCssVar('--eui-app-sidebar-header-height-default', '--eui-app-sidebar-header-height');
|
|
20
|
-
this.setCssVar('--eui-app-sidebar-footer-height-default', '--eui-app-sidebar-footer-height');
|
|
24
|
+
static { this.initCssVars = (document, platform) => {
|
|
25
|
+
this.setCssVar('--eui-app-header-height-default', '--eui-app-header-height', document, platform);
|
|
26
|
+
this.setCssVar('--eui-app-breadcrumb-height-default', '--eui-app-breadcrumb-height', document, platform);
|
|
27
|
+
this.setCssVar('--eui-app-top-message-height-default', '--eui-app-top-message-height', document, platform);
|
|
28
|
+
this.setCssVar('--eui-app-toolbar-height-default', '--eui-app-toolbar-height', document, platform);
|
|
29
|
+
this.setCssVar('--eui-app-sidebar-width-default', '--eui-app-sidebar-width', document, platform);
|
|
30
|
+
this.setCssVar('--eui-app-sidebar-width-close-default', '--eui-app-sidebar-width-close', document, platform);
|
|
31
|
+
this.setCssVar('--eui-app-sidebar-header-height-default', '--eui-app-sidebar-header-height', document, platform);
|
|
32
|
+
this.setCssVar('--eui-app-sidebar-footer-height-default', '--eui-app-sidebar-footer-height', document, platform);
|
|
21
33
|
}; }
|
|
22
34
|
// eslint-disable-next-line
|
|
23
|
-
static { this.getBreakpointValues = () => {
|
|
35
|
+
static { this.getBreakpointValues = (document, platform) => {
|
|
24
36
|
const breakpoints = [];
|
|
25
|
-
const xs = this.getCssVarValue('--eui-bp-xs');
|
|
37
|
+
const xs = this.getCssVarValue('--eui-bp-xs', document, platform);
|
|
26
38
|
breakpoints.push({ bkp: 'xs', pxValue: xs, value: xs.replace('px', '') });
|
|
27
|
-
const sm = this.getCssVarValue('--eui-bp-sm');
|
|
39
|
+
const sm = this.getCssVarValue('--eui-bp-sm', document, platform);
|
|
28
40
|
breakpoints.push({ bkp: 'sm', pxValue: sm, value: sm.replace('px', '') });
|
|
29
|
-
const md = this.getCssVarValue('--eui-bp-md');
|
|
41
|
+
const md = this.getCssVarValue('--eui-bp-md', document, platform);
|
|
30
42
|
breakpoints.push({ bkp: 'md', pxValue: md, value: md.replace('px', '') });
|
|
31
|
-
const lg = this.getCssVarValue('--eui-bp-lg');
|
|
43
|
+
const lg = this.getCssVarValue('--eui-bp-lg', document, platform);
|
|
32
44
|
breakpoints.push({ bkp: 'lg', pxValue: lg, value: lg.replace('px', '') });
|
|
33
|
-
const xl = this.getCssVarValue('--eui-bp-xl');
|
|
45
|
+
const xl = this.getCssVarValue('--eui-bp-xl', document, platform);
|
|
34
46
|
breakpoints.push({ bkp: 'xl', pxValue: xl, value: xl.replace('px', '') });
|
|
35
|
-
const xxl = this.getCssVarValue('--eui-bp-xxl');
|
|
47
|
+
const xxl = this.getCssVarValue('--eui-bp-xxl', document, platform);
|
|
36
48
|
breakpoints.push({ bkp: 'xxl', pxValue: xxl, value: xxl.replace('px', '') });
|
|
37
|
-
const fhd = this.getCssVarValue('--eui-bp-fhd');
|
|
49
|
+
const fhd = this.getCssVarValue('--eui-bp-fhd', document, platform);
|
|
38
50
|
breakpoints.push({ bkp: 'fhd', pxValue: fhd, value: fhd.replace('px', '') });
|
|
39
|
-
const twok = this.getCssVarValue('--eui-bp-2k');
|
|
51
|
+
const twok = this.getCssVarValue('--eui-bp-2k', document, platform);
|
|
40
52
|
breakpoints.push({ bkp: '2k', pxValue: twok, value: twok.replace('px', '') });
|
|
41
|
-
const fourk = this.getCssVarValue('--eui-bp-4k');
|
|
53
|
+
const fourk = this.getCssVarValue('--eui-bp-4k', document, platform);
|
|
42
54
|
breakpoints.push({ bkp: '4k', pxValue: fourk, value: fourk.replace('px', '') });
|
|
43
55
|
return breakpoints;
|
|
44
56
|
}; }
|
|
45
|
-
static { this.activateEditModeCssVars = (isActive) => {
|
|
57
|
+
static { this.activateEditModeCssVars = (isActive, document) => {
|
|
46
58
|
if (isActive) {
|
|
47
|
-
this.setCssVarValue('--eui-docpage-navigation-z-index', 'inherit'); // Reset doc-page-navigation-column z-index
|
|
48
|
-
this.setCssVarValue('--eui-z-index-sidebar', 'inherit'); // Reset eui-app-sidebar z-index
|
|
49
|
-
this.setCssVarValue('--eui-z-index-root', 'inherit'); // Reset eui-app-main-content z-index
|
|
59
|
+
this.setCssVarValue('--eui-docpage-navigation-z-index', 'inherit', document); // Reset doc-page-navigation-column z-index
|
|
60
|
+
this.setCssVarValue('--eui-z-index-sidebar', 'inherit', document); // Reset eui-app-sidebar z-index
|
|
61
|
+
this.setCssVarValue('--eui-z-index-root', 'inherit', document); // Reset eui-app-main-content z-index
|
|
50
62
|
}
|
|
51
63
|
else {
|
|
52
|
-
this.setCssVarValue('--eui-docpage-navigation-z-index', '2'); // Restore doc-page-navigation-column z-index
|
|
53
|
-
this.setCssVarValue('--eui-z-index-sidebar', '1044'); // Restore eui-app-sidebar z-index
|
|
54
|
-
this.setCssVarValue('--eui-z-index-root', '1'); // Restore eui-app-main-content z-index
|
|
64
|
+
this.setCssVarValue('--eui-docpage-navigation-z-index', '2', document); // Restore doc-page-navigation-column z-index
|
|
65
|
+
this.setCssVarValue('--eui-z-index-sidebar', '1044', document); // Restore eui-app-sidebar z-index
|
|
66
|
+
this.setCssVarValue('--eui-z-index-root', '1', document); // Restore eui-app-main-content z-index
|
|
55
67
|
}
|
|
56
68
|
}; }
|
|
57
|
-
static { this.activateHeaderCssVars = () => {
|
|
58
|
-
this.setCssVar('--eui-app-header-height-active', '--eui-app-header-height');
|
|
69
|
+
static { this.activateHeaderCssVars = (document, platform) => {
|
|
70
|
+
this.setCssVar('--eui-app-header-height-active', '--eui-app-header-height', document, platform);
|
|
59
71
|
}; }
|
|
60
|
-
static { this.activateBreadcrumbCssVars = () => {
|
|
61
|
-
this.setCssVar('--eui-app-breadcrumb-height-active', '--eui-app-breadcrumb-height');
|
|
72
|
+
static { this.activateBreadcrumbCssVars = (document, platform) => {
|
|
73
|
+
this.setCssVar('--eui-app-breadcrumb-height-active', '--eui-app-breadcrumb-height', document, platform);
|
|
62
74
|
}; }
|
|
63
|
-
static { this.activateTopMessageCssVars = (height) => {
|
|
64
|
-
this.setCssVarValue('--eui-app-top-message-height', `${height}px
|
|
75
|
+
static { this.activateTopMessageCssVars = (height, document) => {
|
|
76
|
+
this.setCssVarValue('--eui-app-top-message-height', `${height}px`, document);
|
|
65
77
|
}; }
|
|
66
|
-
static { this.activateToolbarCssVars = () => {
|
|
67
|
-
this.setCssVar('--eui-app-toolbar-height-active', '--eui-app-toolbar-height');
|
|
78
|
+
static { this.activateToolbarCssVars = (document, platform) => {
|
|
79
|
+
this.setCssVar('--eui-app-toolbar-height-active', '--eui-app-toolbar-height', document, platform);
|
|
68
80
|
}; }
|
|
69
|
-
static { this.activateFooterCssVars = () => {
|
|
70
|
-
this.setCssVar('--eui-app-footer-height-active', '--eui-app-footer-height');
|
|
81
|
+
static { this.activateFooterCssVars = (document, platform) => {
|
|
82
|
+
this.setCssVar('--eui-app-footer-height-active', '--eui-app-footer-height', document, platform);
|
|
71
83
|
}; }
|
|
72
|
-
static { this.setHeaderShrinkCssVar = (active) => {
|
|
84
|
+
static { this.setHeaderShrinkCssVar = (active, document, platform) => {
|
|
73
85
|
if (active) {
|
|
74
|
-
this.setCssVar('--eui-app-header-height-shrink', '--eui-app-header-height');
|
|
86
|
+
this.setCssVar('--eui-app-header-height-shrink', '--eui-app-header-height', document, platform);
|
|
75
87
|
}
|
|
76
88
|
else {
|
|
77
|
-
this.setCssVar('--eui-app-header-height-active', '--eui-app-header-height');
|
|
89
|
+
this.setCssVar('--eui-app-header-height-active', '--eui-app-header-height', document, platform);
|
|
78
90
|
}
|
|
79
91
|
}; }
|
|
80
|
-
static { this.activateSidebarCssVars = () => {
|
|
81
|
-
this.setCssVar('--eui-app-sidebar-width-active', '--eui-app-sidebar-width');
|
|
82
|
-
this.setCssVar('--eui-app-sidebar-width-close-active', '--eui-app-sidebar-width-close');
|
|
92
|
+
static { this.activateSidebarCssVars = (document, platform) => {
|
|
93
|
+
this.setCssVar('--eui-app-sidebar-width-active', '--eui-app-sidebar-width', document, platform);
|
|
94
|
+
this.setCssVar('--eui-app-sidebar-width-close-active', '--eui-app-sidebar-width-close', document, platform);
|
|
83
95
|
}; }
|
|
84
|
-
static { this.removeSidebarCssVars = () => {
|
|
96
|
+
static { this.removeSidebarCssVars = (document) => {
|
|
85
97
|
document.documentElement.style.removeProperty('--eui-app-sidebar-header-height');
|
|
86
98
|
document.documentElement.style.removeProperty('--eui-app-sidebar-footer-height');
|
|
87
99
|
document.documentElement.style.removeProperty('--eui-app-sidebar-width');
|
|
88
100
|
document.documentElement.style.removeProperty('--eui-app-sidebar-width-close');
|
|
89
101
|
}; }
|
|
90
|
-
static { this.activateSidebarHeaderCssVars = () => {
|
|
91
|
-
this.setCssVar('--eui-app-sidebar-header-height-active', '--eui-app-sidebar-header-height');
|
|
102
|
+
static { this.activateSidebarHeaderCssVars = (document, platform) => {
|
|
103
|
+
this.setCssVar('--eui-app-sidebar-header-height-active', '--eui-app-sidebar-header-height', document, platform);
|
|
92
104
|
}; }
|
|
93
|
-
static { this.activateSidebarFooterCssVars = () => {
|
|
94
|
-
this.setCssVar('--eui-app-sidebar-footer-height-active', '--eui-app-sidebar-footer-height');
|
|
105
|
+
static { this.activateSidebarFooterCssVars = (document, platform) => {
|
|
106
|
+
this.setCssVar('--eui-app-sidebar-footer-height-active', '--eui-app-sidebar-footer-height', document, platform);
|
|
95
107
|
}; }
|
|
96
108
|
/**
|
|
97
|
-
* Gets the viewport height and width and
|
|
109
|
+
* Gets the viewport height and width and multiply it by 1% to get a value for a vh/vw unit
|
|
98
110
|
* Sets the value in the --eui-app-vh custom property to the root of the document
|
|
99
111
|
* Sets the value in the --eui-app-vw custom property to the root of the document
|
|
100
112
|
* Example for 100% height: calc(var(--eui-app-vh, 1vh) * 100);
|
|
101
113
|
* Example for 50% height: calc(var(--eui-app-vh, 1vh) * 50);
|
|
102
114
|
* Example for 50% width: calc(var(--eui-app-vw, 1vw) * 50);
|
|
103
115
|
*/
|
|
104
|
-
static setAppViewportCssVars() {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
116
|
+
static setAppViewportCssVars(platform) {
|
|
117
|
+
if (isPlatformBrowser(platform)) {
|
|
118
|
+
const vh = window.innerHeight * 0.01;
|
|
119
|
+
const vw = window.innerWidth * 0.01;
|
|
120
|
+
this.setCssVarValue('--eui-app-vh', `${vh}px`, document);
|
|
121
|
+
this.setCssVarValue('--eui-app-vw', `${vw}px`, document);
|
|
122
|
+
}
|
|
109
123
|
}
|
|
110
124
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXJzL2Nzcy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQWdCLFFBQVE7YUFDSCxtQkFBYyxHQUFHLENBQUMsYUFBcUIsRUFBVSxFQUFFO1FBQ3RFLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RGLENBQUMsQ0FBQTthQUVzQixtQkFBYyxHQUFHLENBQUMsWUFBb0IsRUFBRSxhQUFxQixFQUFRLEVBQUU7UUFDMUYsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM1RSxDQUFDLENBQUE7YUFFc0IsY0FBUyxHQUFHLENBQUMsYUFBcUIsRUFBRSxjQUFzQixFQUFRLEVBQUU7UUFDdkYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUE7YUFFc0IsZ0JBQVcsR0FBRyxHQUFTLEVBQUU7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLENBQUMscUNBQXFDLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxTQUFTLENBQUMsaUNBQWlDLEVBQUUseUJBQXlCLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsU0FBUyxDQUFDLHVDQUF1QyxFQUFFLCtCQUErQixDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyx5Q0FBeUMsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxTQUFTLENBQUMseUNBQXlDLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztJQUNqRyxDQUFDLENBQUE7SUFFRCwyQkFBMkI7YUFDSix3QkFBbUIsR0FBRyxHQUFRLEVBQUU7UUFDbkQsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBRXZCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEQsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sS0FBSyxHQUFHLElBQUks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LENBQUM7UUFDekUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDbkYsQ0FBQyxDQUFBO2FBRXNCLGlDQUE0QixHQUFHLEdBQVMsRUFBRTtRQUM3RCxJQUFJLENBQUMsU0FBUyxDQUFDLHdDQUF3QyxFQUFFLGlDQUFpQyxDQUFDLENBQUM7SUFDaEcsQ0FBQyxDQUFBO2FBRXNCLGlDQUE0QixHQUFHLEdBQVMsRUFBRTtRQUM3RCxJQUFJLENBQUMsU0FBUyxDQUFDLHdDQUF3QyxFQUFFLGlDQUFpQyxDQUFDLENBQUM7SUFDaEcsQ0FBQyxDQUFBO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUI7UUFDL0IsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDckMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIENzc1V0aWxzIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGdldENzc1ZhclZhbHVlID0gKGlucHV0UHJvcGVydHk6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgICAgIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShpbnB1dFByb3BlcnR5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNldENzc1ZhclZhbHVlID0gKHByb3BlcnR5TmFtZTogc3RyaW5nLCBwcm9wZXJ0eVZhbHVlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBzZXRDc3NWYXIgPSAoaW5wdXRQcm9wZXJ0eTogc3RyaW5nLCBvdXRwdXRQcm9wZXJ0eTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IGNzc1ZhclZhbHVlID0gdGhpcy5nZXRDc3NWYXJWYWx1ZShpbnB1dFByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZShvdXRwdXRQcm9wZXJ0eSwgY3NzVmFyVmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaW5pdENzc1ZhcnMgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1kZWZhdWx0JywgJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0Jyk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQnKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC10b3AtbWVzc2FnZS1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtdG9wLW1lc3NhZ2UtaGVpZ2h0Jyk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQnKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWRlZmF1bHQnLCAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgnKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWNsb3NlLWRlZmF1bHQnLCAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UnKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0Jyk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWRlZmF1bHQnLCAnLS1ldWktYXBwLXNpZGViYXItZm9vdGVyLWhlaWdodCcpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZ2V0QnJlYWtwb2ludFZhbHVlcyA9ICgpOiBhbnkgPT4ge1xuICAgICAgICBjb25zdCBicmVha3BvaW50cyA9IFtdO1xuXG4gICAgICAgIGNvbnN0IHhzID0gdGhpcy5nZXRDc3NWYXJWYWx1ZSgnLS1ldWktYnAteHMnKTtcbiAgICAgICAgYnJlYWtwb2ludHMucHVzaCh7IGJrcDogJ3hzJywgcHhWYWx1ZTogeHMsIHZhbHVlOiB4cy5yZXBsYWNlKCdweCcsICcnKSB9KTtcbiAgICAgICAgY29uc3Qgc20gPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC1zbScpO1xuICAgICAgICBicmVha3BvaW50cy5wdXNoKHsgYmtwOiAnc20nLCBweFZhbHVlOiBzbSwgdmFsdWU6IHNtLnJlcGxhY2UoJ3B4JywgJycpIH0pO1xuICAgICAgICBjb25zdCBtZCA9IHRoaXMuZ2V0Q3NzVmFyVmFsdWUoJy0tZXVpLWJwLW1kJyk7XG4gICAgICAgIGJyZWFrcG9pbnRzLnB1c2goeyBia3A6ICdtZCcsIHB4VmFsdWU6IG1kLCB2YWx1ZTogbWQucmVwbGFjZSgncHgnLCAnJykgfSk7XG4gICAgICAgIGNvbnN0IGxnID0gdGhpcy5nZXRDc3NWYXJWYWx1ZSgnLS1ldWktYnAtbGcnKTtcbiAgICAgICAgYnJlYWtwb2ludHMucHVzaCh7IGJrcDogJ2xnJywgcHhWYWx1ZTogbGcsIHZhbHVlOiBsZy5yZXBsYWNlKCdweCcsICcnKSB9KTtcbiAgICAgICAgY29uc3QgeGwgPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC14bCcpO1xuICAgICAgICBicmVha3BvaW50cy5wdXNoKHsgYmtwOiAneGwnLCBweFZhbHVlOiB4bCwgdmFsdWU6IHhsLnJlcGxhY2UoJ3B4JywgJycpIH0pO1xuICAgICAgICBjb25zdCB4eGwgPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC14eGwnKTtcbiAgICAgICAgYnJlYWtwb2ludHMucHVzaCh7IGJrcDogJ3h4bCcsIHB4VmFsdWU6IHh4bCwgdmFsdWU6IHh4bC5yZXBsYWNlKCdweCcsICcnKSB9KTtcbiAgICAgICAgY29uc3QgZmhkID0gdGhpcy5nZXRDc3NWYXJWYWx1ZSgnLS1ldWktYnAtZmhkJyk7XG4gICAgICAgIGJyZWFrcG9pbnRzLnB1c2goeyBia3A6ICdmaGQnLCBweFZhbHVlOiBmaGQsIHZhbHVlOiBmaGQucmVwbGFjZSgncHgnLCAnJykgfSk7XG4gICAgICAgIGNvbnN0IHR3b2sgPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC0yaycpO1xuICAgICAgICBicmVha3BvaW50cy5wdXNoKHsgYmtwOiAnMmsnLCBweFZhbHVlOiB0d29rLCB2YWx1ZTogdHdvay5yZXBsYWNlKCdweCcsICcnKSB9KTtcbiAgICAgICAgY29uc3QgZm91cmsgPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC00aycpO1xuICAgICAgICBicmVha3BvaW50cy5wdXNoKHsgYmtwOiAnNGsnLCBweFZhbHVlOiBmb3VyaywgdmFsdWU6IGZvdXJrLnJlcGxhY2UoJ3B4JywgJycpIH0pO1xuXG4gICAgICAgIHJldHVybiBicmVha3BvaW50cztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGFjdGl2YXRlRWRpdE1vZGVDc3NWYXJzID0gKGlzQWN0aXZlOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChpc0FjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktZG9jcGFnZS1uYXZpZ2F0aW9uLXotaW5kZXgnLCAnaW5oZXJpdCcpOyAvLyBSZXNldCBkb2MtcGFnZS1uYXZpZ2F0aW9uLWNvbHVtbiB6LWluZGV4XG4gICAgICAgICAgICB0aGlzLnNldENzc1ZhclZhbHVlKCctLWV1aS16LWluZGV4LXNpZGViYXInLCAnaW5oZXJpdCcpOyAvLyBSZXNldCBldWktYXBwLXNpZGViYXIgei1pbmRleFxuICAgICAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktei1pbmRleC1yb290JywgJ2luaGVyaXQnKTsgLy8gUmVzZXQgZXVpLWFwcC1tYWluLWNvbnRlbnQgei1pbmRleFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktZG9jcGFnZS1uYXZpZ2F0aW9uLXotaW5kZXgnLCAnMicpOyAvLyBSZXN0b3JlIGRvYy1wYWdlLW5hdmlnYXRpb24tY29sdW1uIHotaW5kZXhcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLXotaW5kZXgtc2lkZWJhcicsICcxMDQ0Jyk7IC8vIFJlc3RvcmUgZXVpLWFwcC1zaWRlYmFyIHotaW5kZXhcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLXotaW5kZXgtcm9vdCcsICcxJyk7IC8vIFJlc3RvcmUgZXVpLWFwcC1tYWluLWNvbnRlbnQgei1pbmRleFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBhY3RpdmF0ZUhlYWRlckNzc1ZhcnMgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1hY3RpdmUnLCAnLS1ldWktYXBwLWhlYWRlci1oZWlnaHQnKTtcbiAgICB9XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBhY3RpdmF0ZUJyZWFkY3J1bWJDc3NWYXJzID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLWJyZWFkY3J1bWItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGFjdGl2YXRlVG9wTWVzc2FnZUNzc1ZhcnMgPSAoaGVpZ2h0OiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodCcsIGAke2hlaWdodH1weGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgYWN0aXZhdGVUb29sYmFyQ3NzVmFycyA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC10b29sYmFyLWhlaWdodC1hY3RpdmUnLCAnLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBhY3RpdmF0ZUZvb3RlckNzc1ZhcnMgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtZm9vdGVyLWhlaWdodC1hY3RpdmUnLCAnLS1ldWktYXBwLWZvb3Rlci1oZWlnaHQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNldEhlYWRlclNocmlua0Nzc1ZhciA9IChhY3RpdmU6IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LXNocmluaycsICctLWV1aS1hcHAtaGVhZGVyLWhlaWdodCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtaGVhZGVyLWhlaWdodCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBhY3RpdmF0ZVNpZGViYXJDc3NWYXJzID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXNpZGViYXItd2lkdGgtYWN0aXZlJywgJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoJyk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1hY3RpdmUnLCAnLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHJlbW92ZVNpZGViYXJDc3NWYXJzID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQnKTtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0Jyk7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1ldWktYXBwLXNpZGViYXItd2lkdGgnKTtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgYWN0aXZhdGVTaWRlYmFySGVhZGVyQ3NzVmFycyA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtYWN0aXZlJywgJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGFjdGl2YXRlU2lkZWJhckZvb3RlckNzc1ZhcnMgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0Jyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdmlld3BvcnQgaGVpZ2h0IGFuZCB3aWR0aCBhbmQgbXVsdGlwbGUgaXQgYnkgMSUgdG8gZ2V0IGEgdmFsdWUgZm9yIGEgdmgvdncgdW5pdFxuICAgICAqIFNldHMgdGhlIHZhbHVlIGluIHRoZSAtLWV1aS1hcHAtdmggY3VzdG9tIHByb3BlcnR5IHRvIHRoZSByb290IG9mIHRoZSBkb2N1bWVudFxuICAgICAqIFNldHMgdGhlIHZhbHVlIGluIHRoZSAtLWV1aS1hcHAtdncgY3VzdG9tIHByb3BlcnR5IHRvIHRoZSByb290IG9mIHRoZSBkb2N1bWVudFxuICAgICAqIEV4YW1wbGUgZm9yIDEwMCUgaGVpZ2h0OiBjYWxjKHZhcigtLWV1aS1hcHAtdmgsIDF2aCkgKiAxMDApO1xuICAgICAqIEV4YW1wbGUgZm9yIDUwJSBoZWlnaHQ6IGNhbGModmFyKC0tZXVpLWFwcC12aCwgMXZoKSAqIDUwKTtcbiAgICAgKiBFeGFtcGxlIGZvciA1MCUgd2lkdGg6IGNhbGModmFyKC0tZXVpLWFwcC12dywgMXZ3KSAqIDUwKTtcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNldEFwcFZpZXdwb3J0Q3NzVmFycygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmggPSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjAxO1xuICAgICAgICBjb25zdCB2dyA9IHdpbmRvdy5pbm5lcldpZHRoICogMC4wMTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktYXBwLXZoJywgYCR7dmh9cHhgKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktYXBwLXZ3JywgYCR7dnd9cHhgKTtcbiAgICB9XG59XG5cbiJdfQ==
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXJzL2Nzcy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxNQUFNLE9BQWdCLFFBQVE7SUFDMUI7Ozs7O09BS0c7YUFDb0IsbUJBQWMsR0FBRyxDQUFDLGFBQXFCLEVBQUUsUUFBa0IsRUFBRSxRQUFpQixFQUFVLEVBQUU7UUFDN0csSUFBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUUsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RixDQUFDO0lBQ0wsQ0FBQyxDQUFBO2FBRXNCLG1CQUFjLEdBQUcsQ0FBQyxZQUFvQixFQUFFLGFBQXFCLEVBQUUsUUFBa0IsRUFBUSxFQUFFO1FBQzlHLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFBO2FBRXNCLGNBQVMsR0FBRyxDQUFDLGFBQXFCLEVBQUUsY0FBc0IsRUFBRSxRQUFrQixFQUFFLFFBQWlCLEVBQVEsRUFBRTtRQUM5SCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQTthQUVzQixnQkFBVyxHQUFHLENBQUMsUUFBa0IsRUFBRSxRQUFpQixFQUFRLEVBQUU7UUFDakYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQ0FBcUMsRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQ0FBc0MsRUFBRSw4QkFBOEIsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1Q0FBdUMsRUFBRSwrQkFBK0IsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLFNBQVMsQ0FBQyx5Q0FBeUMsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakgsSUFBSSxDQUFDLFNBQVMsQ0FBQyx5Q0FBeUMsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckgsQ0FBQyxDQUFBO0lBRUQsMkJBQTJCO2FBQ0osd0JBQW1CLEdBQUcsQ0FBQyxRQUFrQixFQUFFLFFBQWlCLEVBQU8sRUFBRTtRQUN4RixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFdkIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEUsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEUsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFD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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENzc1V0aWxzIHtcbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHZhbHVlIG9mIGEgQ1NTIHZhcmlhYmxlLiBVc2luZyBnZXRDb21wdXRlZFN0eWxlIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIENTUyB2YXJpYWJsZSAoQnJvd3NlciBTcGVjaWZpYyBBUEkpXG4gICAgICogQHBhcmFtIGlucHV0UHJvcGVydHlcbiAgICAgKiBAcGFyYW0gZG9jdW1lbnRcbiAgICAgKiBAcGFyYW0gcGxhdGZvcm1cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGdldENzc1ZhclZhbHVlID0gKGlucHV0UHJvcGVydHk6IHN0cmluZywgZG9jdW1lbnQ6IERvY3VtZW50LCBwbGF0Zm9ybTogdW5rbm93bik6IHN0cmluZyA9PiB7XG4gICAgICAgIGlmKGlzUGxhdGZvcm1TZXJ2ZXIocGxhdGZvcm0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoaW5wdXRQcm9wZXJ0eSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoaW5wdXRQcm9wZXJ0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNldENzc1ZhclZhbHVlID0gKHByb3BlcnR5TmFtZTogc3RyaW5nLCBwcm9wZXJ0eVZhbHVlOiBzdHJpbmcsIGRvY3VtZW50OiBEb2N1bWVudCk6IHZvaWQgPT4ge1xuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNldENzc1ZhciA9IChpbnB1dFByb3BlcnR5OiBzdHJpbmcsIG91dHB1dFByb3BlcnR5OiBzdHJpbmcsIGRvY3VtZW50OiBEb2N1bWVudCwgcGxhdGZvcm06IHVua25vd24pOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgY3NzVmFyVmFsdWUgPSB0aGlzLmdldENzc1ZhclZhbHVlKGlucHV0UHJvcGVydHksIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyVmFsdWUob3V0cHV0UHJvcGVydHksIGNzc1ZhclZhbHVlLCBkb2N1bWVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBpbml0Q3NzVmFycyA9IChkb2N1bWVudDogRG9jdW1lbnQsIHBsYXRmb3JtOiB1bmtub3duKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1kZWZhdWx0JywgJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0JywgZG9jdW1lbnQsIHBsYXRmb3JtKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1icmVhZGNydW1iLWhlaWdodC1kZWZhdWx0JywgJy0tZXVpLWFwcC1icmVhZGNydW1iLWhlaWdodCcsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtdG9wLW1lc3NhZ2UtaGVpZ2h0LWRlZmF1bHQnLCAnLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodCcsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQnLCBkb2N1bWVudCwgcGxhdGZvcm0pO1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXNpZGViYXItd2lkdGgtZGVmYXVsdCcsICctLWV1aS1hcHAtc2lkZWJhci13aWR0aCcsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZS1kZWZhdWx0JywgJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWNsb3NlJywgZG9jdW1lbnQsIHBsYXRmb3JtKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLWhlYWRlci1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0JywgZG9jdW1lbnQsIHBsYXRmb3JtKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQtZGVmYXVsdCcsICctLWV1aS1hcHAtc2lkZWJhci1mb290ZXItaGVpZ2h0JywgZG9jdW1lbnQsIHBsYXRmb3JtKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGdldEJyZWFrcG9pbnRWYWx1ZXMgPSAoZG9jdW1lbnQ6IERvY3VtZW50LCBwbGF0Zm9ybTogdW5rbm93bik6IGFueSA9PiB7XG4gICAgICAgIGNvbnN0IGJyZWFrcG9pbnRzID0gW107XG5cbiAgICAgICAgY29uc3QgeHMgPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC14cycsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgICAgIGJyZWFrcG9pbnRzLnB1c2goeyBia3A6ICd4cycsIHB4VmFsdWU6IHhzLCB2YWx1ZTogeHMucmVwbGFjZSgncHgnLCAnJykgfSk7XG4gICAgICAgIGNvbnN0IHNtID0gdGhpcy5nZXRDc3NWYXJWYWx1ZSgnLS1ldWktYnAtc20nLCBkb2N1bWVudCwgcGxhdGZvcm0pO1xuICAgICAgICBicmVha3BvaW50cy5wdXNoKHsgYmtwOiAnc20nLCBweFZhbHVlOiBzbSwgdmFsdWU6IHNtLnJlcGxhY2UoJ3B4JywgJycpIH0pO1xuICAgICAgICBjb25zdCBtZCA9IHRoaXMuZ2V0Q3NzVmFyVmFsdWUoJy0tZXVpLWJwLW1kJywgZG9jdW1lbnQsIHBsYXRmb3JtKTtcbiAgICAgICAgYnJlYWtwb2ludHMucHVzaCh7IGJrcDogJ21kJywgcHhWYWx1ZTogbWQsIHZhbHVlOiBtZC5yZXBsYWNlKCdweCcsICcnKSB9KTtcbiAgICAgICAgY29uc3QgbGcgPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC1sZycsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgICAgIGJyZWFrcG9pbnRzLnB1c2goeyBia3A6ICdsZycsIHB4VmFsdWU6IGxnLCB2YWx1ZTogbGcucmVwbGFjZSgncHgnLCAnJykgfSk7XG4gICAgICAgIGNvbnN0IHhsID0gdGhpcy5nZXRDc3NWYXJWYWx1ZSgnLS1ldWktYnAteGwnLCBkb2N1bWVudCwgcGxhdGZvcm0pO1xuICAgICAgICBicmVha3BvaW50cy5wdXNoKHsgYmtwOiAneGwnLCBweFZhbHVlOiB4bCwgdmFsdWU6IHhsLnJlcGxhY2UoJ3B4JywgJycpIH0pO1xuICAgICAgICBjb25zdCB4eGwgPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC14eGwnLCBkb2N1bWVudCwgcGxhdGZvcm0pO1xuICAgICAgICBicmVha3BvaW50cy5wdXNoKHsgYmtwOiAneHhsJywgcHhWYWx1ZTogeHhsLCB2YWx1ZTogeHhsLnJlcGxhY2UoJ3B4JywgJycpIH0pO1xuICAgICAgICBjb25zdCBmaGQgPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC1maGQnLCBkb2N1bWVudCwgcGxhdGZvcm0pO1xuICAgICAgICBicmVha3BvaW50cy5wdXNoKHsgYmtwOiAnZmhkJywgcHhWYWx1ZTogZmhkLCB2YWx1ZTogZmhkLnJlcGxhY2UoJ3B4JywgJycpIH0pO1xuICAgICAgICBjb25zdCB0d29rID0gdGhpcy5nZXRDc3NWYXJWYWx1ZSgnLS1ldWktYnAtMmsnLCBkb2N1bWVudCwgcGxhdGZvcm0pO1xuICAgICAgICBicmVha3BvaW50cy5wdXNoKHsgYmtwOiAnMmsnLCBweFZhbHVlOiB0d29rLCB2YWx1ZTogdHdvay5yZXBsYWNlKCdweCcsICcnKSB9KTtcbiAgICAgICAgY29uc3QgZm91cmsgPSB0aGlzLmdldENzc1ZhclZhbHVlKCctLWV1aS1icC00aycsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgICAgIGJyZWFrcG9pbnRzLnB1c2goeyBia3A6ICc0aycsIHB4VmFsdWU6IGZvdXJrLCB2YWx1ZTogZm91cmsucmVwbGFjZSgncHgnLCAnJykgfSk7XG5cbiAgICAgICAgcmV0dXJuIGJyZWFrcG9pbnRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgYWN0aXZhdGVFZGl0TW9kZUNzc1ZhcnMgPSAoaXNBY3RpdmU6IGJvb2xlYW4sIGRvY3VtZW50OiBEb2N1bWVudCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLWRvY3BhZ2UtbmF2aWdhdGlvbi16LWluZGV4JywgJ2luaGVyaXQnLCBkb2N1bWVudCk7IC8vIFJlc2V0IGRvYy1wYWdlLW5hdmlnYXRpb24tY29sdW1uIHotaW5kZXhcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLXotaW5kZXgtc2lkZWJhcicsICdpbmhlcml0JywgZG9jdW1lbnQpOyAvLyBSZXNldCBldWktYXBwLXNpZGViYXIgei1pbmRleFxuICAgICAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktei1pbmRleC1yb290JywgJ2luaGVyaXQnLCBkb2N1bWVudCk7IC8vIFJlc2V0IGV1aS1hcHAtbWFpbi1jb250ZW50IHotaW5kZXhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLWRvY3BhZ2UtbmF2aWdhdGlvbi16LWluZGV4JywgJzInLCBkb2N1bWVudCk7IC8vIFJlc3RvcmUgZG9jLXBhZ2UtbmF2aWdhdGlvbi1jb2x1bW4gei1pbmRleFxuICAgICAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktei1pbmRleC1zaWRlYmFyJywgJzEwNDQnLCBkb2N1bWVudCk7IC8vIFJlc3RvcmUgZXVpLWFwcC1zaWRlYmFyIHotaW5kZXhcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLXotaW5kZXgtcm9vdCcsICcxJywgZG9jdW1lbnQpOyAvLyBSZXN0b3JlIGV1aS1hcHAtbWFpbi1jb250ZW50IHotaW5kZXhcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgYWN0aXZhdGVIZWFkZXJDc3NWYXJzID0gKGRvY3VtZW50OiBEb2N1bWVudCwgcGxhdGZvcm06IHVua25vd24pOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtaGVhZGVyLWhlaWdodCcsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgfVxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgYWN0aXZhdGVCcmVhZGNydW1iQ3NzVmFycyA9IChkb2N1bWVudDogRG9jdW1lbnQsIHBsYXRmb3JtOiB1bmtub3duKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtYnJlYWRjcnVtYi1oZWlnaHQtYWN0aXZlJywgJy0tZXVpLWFwcC1icmVhZGNydW1iLWhlaWdodCcsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBhY3RpdmF0ZVRvcE1lc3NhZ2VDc3NWYXJzID0gKGhlaWdodDogbnVtYmVyLCBkb2N1bWVudDogRG9jdW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktYXBwLXRvcC1tZXNzYWdlLWhlaWdodCcsIGAke2hlaWdodH1weGAsIGRvY3VtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGFjdGl2YXRlVG9vbGJhckNzc1ZhcnMgPSAoZG9jdW1lbnQ6IERvY3VtZW50LCBwbGF0Zm9ybTogdW5rbm93bik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXRvb2xiYXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtdG9vbGJhci1oZWlnaHQnLCBkb2N1bWVudCwgcGxhdGZvcm0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgYWN0aXZhdGVGb290ZXJDc3NWYXJzID0gKGRvY3VtZW50OiBEb2N1bWVudCwgcGxhdGZvcm06IHVua25vd24pOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1mb290ZXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtZm9vdGVyLWhlaWdodCcsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBzZXRIZWFkZXJTaHJpbmtDc3NWYXIgPSAoYWN0aXZlOiBib29sZWFuLCBkb2N1bWVudDogRG9jdW1lbnQsIHBsYXRmb3JtOiB1bmtub3duKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyKCctLWV1aS1hcHAtaGVhZGVyLWhlaWdodC1zaHJpbmsnLCAnLS1ldWktYXBwLWhlYWRlci1oZWlnaHQnLCBkb2N1bWVudCwgcGxhdGZvcm0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1oZWFkZXItaGVpZ2h0LWFjdGl2ZScsICctLWV1aS1hcHAtaGVhZGVyLWhlaWdodCcsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGFjdGl2YXRlU2lkZWJhckNzc1ZhcnMgPSAoZG9jdW1lbnQ6IERvY3VtZW50LCBwbGF0Zm9ybTogdW5rbm93bik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXNpZGViYXItd2lkdGgtYWN0aXZlJywgJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoJywgZG9jdW1lbnQsIHBsYXRmb3JtKTtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoLWNsb3NlLWFjdGl2ZScsICctLWV1aS1hcHAtc2lkZWJhci13aWR0aC1jbG9zZScsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSByZW1vdmVTaWRlYmFyQ3NzVmFycyA9IChkb2N1bWVudDogRG9jdW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLWV1aS1hcHAtc2lkZWJhci1oZWFkZXItaGVpZ2h0Jyk7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1ldWktYXBwLXNpZGViYXItZm9vdGVyLWhlaWdodCcpO1xuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tZXVpLWFwcC1zaWRlYmFyLXdpZHRoJyk7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1ldWktYXBwLXNpZGViYXItd2lkdGgtY2xvc2UnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGFjdGl2YXRlU2lkZWJhckhlYWRlckNzc1ZhcnMgPSAoZG9jdW1lbnQ6IERvY3VtZW50LCBwbGF0Zm9ybTogdW5rbm93bik6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNldENzc1ZhcignLS1ldWktYXBwLXNpZGViYXItaGVhZGVyLWhlaWdodC1hY3RpdmUnLCAnLS1ldWktYXBwLXNpZGViYXItaGVhZGVyLWhlaWdodCcsIGRvY3VtZW50LCBwbGF0Zm9ybSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBhY3RpdmF0ZVNpZGViYXJGb290ZXJDc3NWYXJzID0gKGRvY3VtZW50OiBEb2N1bWVudCwgcGxhdGZvcm06IHVua25vd24pOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5zZXRDc3NWYXIoJy0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQtYWN0aXZlJywgJy0tZXVpLWFwcC1zaWRlYmFyLWZvb3Rlci1oZWlnaHQnLCBkb2N1bWVudCwgcGxhdGZvcm0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHZpZXdwb3J0IGhlaWdodCBhbmQgd2lkdGggYW5kIG11bHRpcGx5IGl0IGJ5IDElIHRvIGdldCBhIHZhbHVlIGZvciBhIHZoL3Z3IHVuaXRcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZSBpbiB0aGUgLS1ldWktYXBwLXZoIGN1c3RvbSBwcm9wZXJ0eSB0byB0aGUgcm9vdCBvZiB0aGUgZG9jdW1lbnRcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZSBpbiB0aGUgLS1ldWktYXBwLXZ3IGN1c3RvbSBwcm9wZXJ0eSB0byB0aGUgcm9vdCBvZiB0aGUgZG9jdW1lbnRcbiAgICAgKiBFeGFtcGxlIGZvciAxMDAlIGhlaWdodDogY2FsYyh2YXIoLS1ldWktYXBwLXZoLCAxdmgpICogMTAwKTtcbiAgICAgKiBFeGFtcGxlIGZvciA1MCUgaGVpZ2h0OiBjYWxjKHZhcigtLWV1aS1hcHAtdmgsIDF2aCkgKiA1MCk7XG4gICAgICogRXhhbXBsZSBmb3IgNTAlIHdpZHRoOiBjYWxjKHZhcigtLWV1aS1hcHAtdncsIDF2dykgKiA1MCk7XG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzZXRBcHBWaWV3cG9ydENzc1ZhcnMocGxhdGZvcm06IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgaWYoaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm0pKSB7XG4gICAgICAgICAgICBjb25zdCB2aCA9IHdpbmRvdy5pbm5lckhlaWdodCAqIDAuMDE7XG4gICAgICAgICAgICBjb25zdCB2dyA9IHdpbmRvdy5pbm5lcldpZHRoICogMC4wMTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3NzVmFyVmFsdWUoJy0tZXVpLWFwcC12aCcsIGAke3ZofXB4YCwgZG9jdW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5zZXRDc3NWYXJWYWx1ZSgnLS1ldWktYXBwLXZ3JywgYCR7dnd9cHhgLCBkb2N1bWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiJdfQ==
|
|
@@ -34,16 +34,10 @@ export const offset = (nativeEl) => {
|
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
36
|
// PRIVATE FUNCTIONS
|
|
37
|
-
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
|
38
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
39
37
|
const getStyle = (nativeEl, cssProp) => {
|
|
40
|
-
// IE
|
|
41
38
|
/* istanbul ignore if */
|
|
42
|
-
if (nativeEl
|
|
43
|
-
return nativeEl
|
|
44
|
-
}
|
|
45
|
-
if (window.getComputedStyle) {
|
|
46
|
-
return window.getComputedStyle(nativeEl)[cssProp];
|
|
39
|
+
if (getComputedStyle(nativeEl)) {
|
|
40
|
+
return getComputedStyle(nativeEl)[cssProp];
|
|
47
41
|
}
|
|
48
42
|
// finally try and get inline style
|
|
49
43
|
/* istanbul ignore next */
|
|
@@ -89,4 +83,4 @@ export const closestMatchingParent = (target, className) => {
|
|
|
89
83
|
}
|
|
90
84
|
return null;
|
|
91
85
|
};
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlcnMvZG9tLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSS9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLFFBQXFCLEVBQWdFLEVBQUU7SUFDNUcsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLElBQUksZUFBZSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDMUMsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELElBQUksY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLGVBQWUsR0FBRyxNQUFNLENBQUMsY0FBNkIsQ0FBQyxDQUFDO1FBQ3hELGVBQWUsQ0FBQyxHQUFHLElBQUssY0FBMEIsQ0FBQyxTQUFTLEdBQUksY0FBMEIsQ0FBQyxTQUFTLENBQUM7UUFDckcsZUFBZSxDQUFDLElBQUksSUFBSyxjQUEwQixDQUFDLFVBQVUsR0FBSSxjQUEwQixDQUFDLFVBQVUsQ0FBQztJQUM1RyxDQUFDO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUM1RCxPQUFPO1FBQ0gsS0FBSyxFQUFFLGtCQUFrQixDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsV0FBVztRQUN2RCxNQUFNLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxZQUFZO1FBQzFELEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxHQUFHO1FBQ3BDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxJQUFJO0tBQzFD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Q0FBQztJQUVyQixPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2RCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQztRQUVELE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBEZWJ1Z0VsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBQcm92aWRlcyByZWFkLW9ubHkgZXF1aXZhbGVudCBvZiBqUXVlcnkncyBwb3NpdGlvbiBmdW5jdGlvbjpcbiAqIGh0dHA6Ly9hcGkuanF1ZXJ5LmNvbS9wb3NpdGlvbi9cbiAqL1xuZXhwb3J0IGNvbnN0IHBvc2l0aW9uID0gKG5hdGl2ZUVsOiBIVE1MRWxlbWVudCk6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXI7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSA9PiB7XG4gICAgY29uc3QgZWxCQ1IgPSBvZmZzZXQobmF0aXZlRWwpO1xuICAgIGxldCBvZmZzZXRQYXJlbnRCQ1IgPSB7IHRvcDogMCwgbGVmdDogMCB9O1xuICAgIGNvbnN0IG9mZnNldFBhcmVudEVsID0gcGFyZW50T2Zmc2V0RWwobmF0aXZlRWwpO1xuICAgIGlmIChvZmZzZXRQYXJlbnRFbCAhPT0gZG9jdW1lbnQpIHtcbiAgICAgICAgb2Zmc2V0UGFyZW50QkNSID0gb2Zmc2V0KG9mZnNldFBhcmVudEVsIGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgb2Zmc2V0UGFyZW50QkNSLnRvcCArPSAob2Zmc2V0UGFyZW50RWwgYXMgRWxlbWVudCkuY2xpZW50VG9wIC0gKG9mZnNldFBhcmVudEVsIGFzIEVsZW1lbnQpLnNjcm9sbFRvcDtcbiAgICAgICAgb2Zmc2V0UGFyZW50QkNSLmxlZnQgKz0gKG9mZnNldFBhcmVudEVsIGFzIEVsZW1lbnQpLmNsaWVudExlZnQgLSAob2Zmc2V0UGFyZW50RWwgYXMgRWxlbWVudCkuc2Nyb2xsTGVmdDtcbiAgICB9XG5cbiAgICBjb25zdCBib3VuZGluZ0NsaWVudFJlY3QgPSBuYXRpdmVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogYm91bmRpbmdDbGllbnRSZWN0LndpZHRoIHx8IG5hdGl2ZUVsLm9mZnNldFdpZHRoLFxuICAgICAgICBoZWlnaHQ6IGJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQgfHwgbmF0aXZlRWwub2Zmc2V0SGVpZ2h0LFxuICAgICAgICB0b3A6IGVsQkNSLnRvcCAtIG9mZnNldFBhcmVudEJDUi50b3AsXG4gICAgICAgIGxlZnQ6IGVsQkNSLmxlZnQgLSBvZmZzZXRQYXJlbnRCQ1IubGVmdCxcbiAgICB9O1xufTtcblxuLyoqXG4gKiBQcm92aWRlcyByZWFkLW9ubHkgZXF1aXZhbGVudCBvZiBqUXVlcnkncyBvZmZzZXQgZnVuY3Rpb246XG4gKiBodHRwOi8vYXBpLmpxdWVyeS5jb20vb2Zmc2V0L1xuICovXG5leHBvcnQgY29uc3Qgb2Zmc2V0ID0gKG5hdGl2ZUVsOiBIVE1MRWxlbWVudCk6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXI7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSA9PiB7XG4gICAgY29uc3QgYm91bmRpbmdDbGllbnRSZWN0ID0gbmF0aXZlRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6IGJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCB8fCBuYXRpdmVFbC5vZmZzZXRXaWR0aCxcbiAgICAgICAgaGVpZ2h0OiBib3VuZGluZ0NsaWVudFJlY3QuaGVpZ2h0IHx8IG5hdGl2ZUVsLm9mZnNldEhlaWdodCxcbiAgICAgICAgdG9wOiBib3VuZGluZ0NsaWVudFJlY3QudG9wICsgKHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKSxcbiAgICAgICAgbGVmdDogYm91bmRpbmdDbGllbnRSZWN0LmxlZnQgKyAod2luZG93LnBhZ2VYT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0KSxcbiAgICB9O1xufTtcblxuLy8gUFJJVkFURSBGVU5DVElPTlNcbmNvbnN0IGdldFN0eWxlID0gKG5hdGl2ZUVsOiBFbGVtZW50LCBjc3NQcm9wOiBrZXlvZiBDU1NTdHlsZURlY2xhcmF0aW9uKTogc3RyaW5nID0+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShuYXRpdmVFbCkpIHtcbiAgICAgICAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUobmF0aXZlRWwpW2Nzc1Byb3BdIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICAvLyBmaW5hbGx5IHRyeSBhbmQgZ2V0IGlubGluZSBzdHlsZVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIChuYXRpdmVFbCBhcyBIVE1MRWxlbWVudCkuc3R5bGVbY3NzUHJvcF0gYXMgc3RyaW5nO1xufTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbi8qKlxuICogQ2hlY2tzIGlmIGEgZ2l2ZW4gZWxlbWVudCBpcyBzdGF0aWNhbGx5IHBvc2l0aW9uZWRcbiAqL1xuY29uc3QgaXNTdGF0aWNQb3NpdGlvbmVkID0gKG5hdGl2ZUVsOiBFbGVtZW50KTogYm9vbGVhbiA9PiAoZ2V0U3R5bGUobmF0aXZlRWwsICdwb3NpdGlvbicpIHx8ICdzdGF0aWMnKSA9PT0gJ3N0YXRpYyc7XG5cbi8qKlxuICogcmV0dXJucyB0aGUgY2xvc2VzdCwgbm9uLXN0YXRpY2FsbHkgcG9zaXRpb25lZCBwYXJlbnRPZmZzZXQgb2YgYSBnaXZlbiBlbGVtZW50XG4gKiBAcGFyYW0gbmF0aXZlRWxcbiAqL1xuZXhwb3J0IGNvbnN0IHBhcmVudE9mZnNldEVsID0gKG5hdGl2ZUVsOiBIVE1MRWxlbWVudCk6IEVsZW1lbnQgfCBEb2N1bWVudCA9PiB7XG4gICAgbGV0IG9mZnNldFBhcmVudCA9IG5hdGl2ZUVsLm9mZnNldFBhcmVudCB8fCBkb2N1bWVudDtcbiAgICB3aGlsZSAob2Zmc2V0UGFyZW50ICYmIG9mZnNldFBhcmVudCAhPT0gZG9jdW1lbnQgJiYgaXNTdGF0aWNQb3NpdGlvbmVkKG9mZnNldFBhcmVudCBhcyBFbGVtZW50KSkge1xuICAgICAgICBvZmZzZXRQYXJlbnQgPSAob2Zmc2V0UGFyZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRQYXJlbnQ7XG4gICAgfVxuICAgIHJldHVybiBvZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Vmlld0VsZW1lbnQgPSA8Rj4oZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxGPiwgY29tcG9uZW50Q2xhc3M6IHN0cmluZywga2xhc3M/OiBzdHJpbmcpOiB7ZGU6IERlYnVnRWxlbWVudCwgZWw6IEhUTUxFbGVtZW50LCBkb21FbGVtZW50OiBIVE1MRWxlbWVudH0gPT4ge1xuICAgIGxldCBlbDogSFRNTEVsZW1lbnQsIGRvbUVsZW1lbnQ6IE5vZGVMaXN0IHwgSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdCBkZSA9IGZpeHR1cmUuZGVidWdFbGVtZW50LnF1ZXJ5KEJ5LmNzcyhjb21wb25lbnRDbGFzcykpO1xuICAgIGlmIChkZSkge1xuICAgICAgICBlbCA9IGRlLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGVsICYmIGtsYXNzKSB7XG4gICAgICAgICAgICBkb21FbGVtZW50ID0gZWwucXVlcnlTZWxlY3RvckFsbChrbGFzcyk7XG5cbiAgICAgICAgICAgIGlmIChkb21FbGVtZW50Lmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICAgICAgZG9tRWxlbWVudCA9IGVsLnF1ZXJ5U2VsZWN0b3Ioa2xhc3MpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgZGUsIGVsLCBkb21FbGVtZW50OiBkb21FbGVtZW50IGFzIEhUTUxFbGVtZW50IH07XG59O1xuXG5leHBvcnQgY29uc3QgY2xvc2VzdE1hdGNoaW5nUGFyZW50ID0gKHRhcmdldDogSFRNTEVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nKTogSFRNTEVsZW1lbnQgfCBudWxsID0+IHtcbiAgICBsZXQgZWxlbWVudCA9IHRhcmdldDtcblxuICAgIHdoaWxlIChlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuIl19
|