@skyux/indicators 6.18.0 → 6.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +768 -468
- package/esm2020/index.mjs +2 -1
- package/esm2020/lib/modules/icon/icon-stack.component.mjs +1 -1
- package/esm2020/lib/modules/icon/icon.component.mjs +1 -10
- package/esm2020/lib/modules/key-info/key-info-layout-type.mjs +2 -0
- package/esm2020/lib/modules/key-info/key-info.component.mjs +1 -1
- package/esm2020/lib/modules/status-indicator/status-indicator.component.mjs +6 -6
- package/esm2020/lib/modules/tokens/token.component.mjs +31 -29
- package/esm2020/lib/modules/tokens/tokens.component.mjs +100 -86
- package/esm2020/lib/modules/wait/wait-adapter.service.mjs +131 -128
- package/esm2020/lib/modules/wait/wait-page.component.mjs +1 -1
- package/esm2020/lib/modules/wait/wait.component.mjs +83 -36
- package/esm2020/lib/modules/wait/wait.service.mjs +80 -73
- package/esm2020/testing/alert/alert-harness-filters.mjs +1 -1
- package/esm2020/testing/alert/alert-harness.mjs +53 -8
- package/esm2020/testing/key-info/key-info-harness-filters.mjs +2 -0
- package/esm2020/testing/key-info/key-info-harness.mjs +50 -0
- package/esm2020/testing/key-info/key-info-label-harness.mjs +18 -0
- package/esm2020/testing/key-info/key-info-value-harness.mjs +18 -0
- package/esm2020/testing/label/label-harness-filters.mjs +2 -0
- package/esm2020/testing/label/label-harness.mjs +96 -0
- package/esm2020/testing/public-api.mjs +7 -3
- package/esm2020/testing/tokens/token-harness.mjs +6 -3
- package/esm2020/testing/tokens/tokens-harness.mjs +4 -1
- package/esm2020/testing/wait-fixture.mjs +1 -1
- package/fesm2015/skyux-indicators-testing.mjs +332 -85
- package/fesm2015/skyux-indicators-testing.mjs.map +1 -1
- package/fesm2015/skyux-indicators.mjs +423 -364
- package/fesm2015/skyux-indicators.mjs.map +1 -1
- package/fesm2020/skyux-indicators-testing.mjs +300 -75
- package/fesm2020/skyux-indicators-testing.mjs.map +1 -1
- package/fesm2020/skyux-indicators.mjs +422 -364
- package/fesm2020/skyux-indicators.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/modules/icon/icon-stack.component.d.ts +1 -1
- package/lib/modules/icon/icon.component.d.ts +4 -4
- package/lib/modules/key-info/key-info-layout-type.d.ts +1 -0
- package/lib/modules/key-info/key-info.component.d.ts +2 -1
- package/lib/modules/status-indicator/status-indicator.component.d.ts +8 -8
- package/lib/modules/tokens/token.component.d.ts +10 -27
- package/lib/modules/tokens/tokens.component.d.ts +17 -34
- package/lib/modules/wait/wait-adapter.service.d.ts +3 -13
- package/lib/modules/wait/wait-page.component.d.ts +2 -2
- package/lib/modules/wait/wait.component.d.ts +12 -16
- package/lib/modules/wait/wait.service.d.ts +1 -11
- package/package.json +5 -5
- package/testing/alert/alert-harness-filters.d.ts +0 -1
- package/testing/alert/alert-harness.d.ts +12 -2
- package/testing/key-info/key-info-harness-filters.d.ts +7 -0
- package/testing/key-info/key-info-harness.d.ts +32 -0
- package/testing/key-info/key-info-label-harness.d.ts +15 -0
- package/testing/key-info/key-info-value-harness.d.ts +15 -0
- package/testing/label/label-harness-filters.d.ts +7 -0
- package/testing/label/label-harness.d.ts +36 -0
- package/testing/public-api.d.ts +6 -2
- package/testing/tokens/token-harness.d.ts +3 -0
- package/testing/tokens/tokens-harness.d.ts +3 -0
- package/testing/wait-fixture.d.ts +1 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
var _SkyWaitAdapterService_instances, _SkyWaitAdapterService_focusableElements, _SkyWaitAdapterService_renderer, _SkyWaitAdapterService_focusNextElement, _SkyWaitAdapterService_isShift, _SkyWaitAdapterService_isElementHidden, _SkyWaitAdapterService_isElementBusyOrHidden, _SkyWaitAdapterService_clearDocumentFocus, _SkyWaitAdapterService_getFocusableElements, _SkyWaitAdapterService_clearListeners;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
1
3
|
import { Injectable, RendererFactory2, } from '@angular/core';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
const busyElements = {};
|
|
3
6
|
// Need to add the following to classes which contain static methods.
|
|
4
7
|
// See: https://github.com/ng-packagr/ng-packagr/issues/641
|
|
5
8
|
/**
|
|
@@ -8,19 +11,21 @@ import * as i0 from "@angular/core";
|
|
|
8
11
|
*/
|
|
9
12
|
export class SkyWaitAdapterService {
|
|
10
13
|
constructor(rendererFactory) {
|
|
11
|
-
this
|
|
12
|
-
|
|
14
|
+
_SkyWaitAdapterService_instances.add(this);
|
|
15
|
+
_SkyWaitAdapterService_focusableElements.set(this, void 0);
|
|
16
|
+
_SkyWaitAdapterService_renderer.set(this, void 0);
|
|
17
|
+
__classPrivateFieldSet(this, _SkyWaitAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
|
|
13
18
|
}
|
|
14
19
|
ngOnDestroy() {
|
|
15
|
-
this.
|
|
20
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_clearListeners).call(this);
|
|
16
21
|
}
|
|
17
22
|
setWaitBounds(waitEl) {
|
|
18
|
-
this.
|
|
23
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_renderer, "f").setStyle(waitEl.nativeElement.parentElement, 'position', 'relative');
|
|
19
24
|
}
|
|
20
25
|
removeWaitBounds(waitEl) {
|
|
21
|
-
this.
|
|
26
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_renderer, "f").removeStyle(waitEl.nativeElement.parentElement, 'position');
|
|
22
27
|
}
|
|
23
|
-
setBusyState(waitEl, isFullPage, isWaiting, isNonBlocking
|
|
28
|
+
setBusyState(waitEl, isFullPage, isWaiting, isNonBlocking, waitComponentId) {
|
|
24
29
|
const busyEl = isFullPage
|
|
25
30
|
? document.body
|
|
26
31
|
: waitEl.nativeElement.parentElement;
|
|
@@ -28,18 +33,18 @@ export class SkyWaitAdapterService {
|
|
|
28
33
|
if (isWaiting) {
|
|
29
34
|
let restoreFocusElement = undefined;
|
|
30
35
|
let restoreFocusCheckElement = undefined;
|
|
31
|
-
this.
|
|
36
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_renderer, "f").setAttribute(busyEl, 'aria-busy', 'true');
|
|
32
37
|
// Remove focus from page when full page blocking wait
|
|
33
38
|
if (isFullPage || busyEl.contains(document.activeElement)) {
|
|
34
39
|
if (document.activeElement !== document.body) {
|
|
35
40
|
restoreFocusElement = document.activeElement;
|
|
36
41
|
}
|
|
37
|
-
this.
|
|
42
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_clearDocumentFocus).call(this);
|
|
38
43
|
restoreFocusCheckElement = document.activeElement;
|
|
39
44
|
}
|
|
40
45
|
if (isFullPage) {
|
|
41
46
|
SkyWaitAdapterService.isPageWaitActive = true;
|
|
42
|
-
const endListenerFunc = this.
|
|
47
|
+
const endListenerFunc = __classPrivateFieldGet(this, _SkyWaitAdapterService_renderer, "f").listen(document.body, 'keydown', (event) => {
|
|
43
48
|
/*istanbul ignore else */
|
|
44
49
|
if (event.key) {
|
|
45
50
|
/* istanbul ignore else */
|
|
@@ -48,171 +53,169 @@ export class SkyWaitAdapterService {
|
|
|
48
53
|
event.preventDefault();
|
|
49
54
|
event.stopPropagation();
|
|
50
55
|
event.stopImmediatePropagation();
|
|
51
|
-
this.
|
|
56
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_clearDocumentFocus).call(this);
|
|
52
57
|
}
|
|
53
58
|
}
|
|
54
59
|
});
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
if (waitComponentId) {
|
|
61
|
+
busyElements[waitComponentId] = {
|
|
62
|
+
listener: endListenerFunc,
|
|
63
|
+
busyEl: undefined,
|
|
64
|
+
restoreFocusElement,
|
|
65
|
+
restoreFocusCheckElement,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
61
68
|
}
|
|
62
69
|
else {
|
|
63
|
-
const endListenerFunc = this.
|
|
70
|
+
const endListenerFunc = __classPrivateFieldGet(this, _SkyWaitAdapterService_renderer, "f").listen(busyEl, 'focusin', (event) => {
|
|
64
71
|
/* istanbul ignore else */
|
|
65
72
|
if (!isNonBlocking) {
|
|
66
73
|
event.preventDefault();
|
|
67
74
|
event.stopPropagation();
|
|
68
75
|
event.stopImmediatePropagation();
|
|
69
76
|
if (SkyWaitAdapterService.isPageWaitActive) {
|
|
70
|
-
this.
|
|
77
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_clearDocumentFocus).call(this);
|
|
71
78
|
}
|
|
72
79
|
else {
|
|
73
80
|
// Propagate tab navigation if attempted into waited element
|
|
74
81
|
const target = event.target;
|
|
75
|
-
target
|
|
76
|
-
|
|
82
|
+
if (target) {
|
|
83
|
+
target.blur();
|
|
84
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_focusNextElement).call(this, target, __classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_isShift).call(this, event));
|
|
85
|
+
}
|
|
77
86
|
}
|
|
78
87
|
}
|
|
79
88
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
89
|
+
if (waitComponentId) {
|
|
90
|
+
busyElements[waitComponentId] = {
|
|
91
|
+
listener: endListenerFunc,
|
|
92
|
+
busyEl,
|
|
93
|
+
restoreFocusElement,
|
|
94
|
+
restoreFocusCheckElement,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
86
97
|
}
|
|
87
98
|
}
|
|
88
99
|
else {
|
|
89
|
-
this.
|
|
100
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_renderer, "f").removeAttribute(busyEl, 'aria-busy');
|
|
90
101
|
if (isFullPage) {
|
|
91
102
|
SkyWaitAdapterService.isPageWaitActive = false;
|
|
92
103
|
}
|
|
93
|
-
if (waitComponentId in
|
|
94
|
-
|
|
104
|
+
if (waitComponentId && waitComponentId in busyElements) {
|
|
105
|
+
const busyElement = busyElements[waitComponentId];
|
|
106
|
+
busyElement.listener();
|
|
95
107
|
// If there is a restore focus element and the focus has not moved, restore focus.
|
|
96
|
-
if (
|
|
97
|
-
.restoreFocusElement
|
|
98
|
-
SkyWaitAdapterService.busyElements[waitComponentId]
|
|
99
|
-
.restoreFocusCheckElement === document.activeElement) {
|
|
100
|
-
SkyWaitAdapterService.busyElements[waitComponentId].restoreFocusElement.focus();
|
|
108
|
+
if (busyElement.restoreFocusCheckElement === document.activeElement) {
|
|
109
|
+
busyElement.restoreFocusElement?.focus();
|
|
101
110
|
}
|
|
102
|
-
delete
|
|
111
|
+
delete busyElements[waitComponentId];
|
|
103
112
|
}
|
|
104
113
|
}
|
|
105
114
|
}
|
|
106
115
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
+
}
|
|
117
|
+
_SkyWaitAdapterService_focusableElements = new WeakMap(), _SkyWaitAdapterService_renderer = new WeakMap(), _SkyWaitAdapterService_instances = new WeakSet(), _SkyWaitAdapterService_focusNextElement = function _SkyWaitAdapterService_focusNextElement(targetElement, shiftKey) {
|
|
118
|
+
const focusable = __classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_getFocusableElements).call(this);
|
|
119
|
+
// If shift tab, go in the other direction
|
|
120
|
+
const modifier = shiftKey ? -1 : 1;
|
|
121
|
+
// Find the next navigable element that isn't waiting
|
|
122
|
+
const startingIndex = focusable.indexOf(targetElement);
|
|
123
|
+
let curIndex = startingIndex + modifier;
|
|
124
|
+
while (focusable[curIndex] &&
|
|
125
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_isElementBusyOrHidden).call(this, focusable[curIndex])) {
|
|
126
|
+
curIndex += modifier;
|
|
127
|
+
}
|
|
128
|
+
if (focusable[curIndex] &&
|
|
129
|
+
!__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_isElementBusyOrHidden).call(this, focusable[curIndex])) {
|
|
130
|
+
focusable[curIndex].focus();
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Try wrapping the navigation
|
|
134
|
+
/* istanbul ignore next */
|
|
135
|
+
/* sanity check */
|
|
136
|
+
curIndex = modifier > 0 ? 0 : focusable.length - 1;
|
|
137
|
+
while (curIndex !== startingIndex &&
|
|
138
|
+
focusable[curIndex] &&
|
|
139
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_isElementBusyOrHidden).call(this, focusable[curIndex])) {
|
|
140
|
+
/* istanbul ignore next */
|
|
141
|
+
/* sanity check */
|
|
116
142
|
curIndex += modifier;
|
|
117
143
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
144
|
+
/* istanbul ignore else */
|
|
145
|
+
/* sanity check */
|
|
146
|
+
if (focusable[curIndex] &&
|
|
147
|
+
!__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_isElementBusyOrHidden).call(this, focusable[curIndex])) {
|
|
148
|
+
focusable[curIndex].focus();
|
|
121
149
|
}
|
|
122
150
|
else {
|
|
123
|
-
//
|
|
124
|
-
|
|
125
|
-
/* sanity check */
|
|
126
|
-
curIndex = modifier > 0 ? 0 : focussable.length - 1;
|
|
127
|
-
while (curIndex !== startingIndex &&
|
|
128
|
-
focussable[curIndex] &&
|
|
129
|
-
this.isElementBusyOrHidden(focussable[curIndex])) {
|
|
130
|
-
/* istanbul ignore next */
|
|
131
|
-
/* sanity check */
|
|
132
|
-
curIndex += modifier;
|
|
133
|
-
}
|
|
134
|
-
/* istanbul ignore else */
|
|
135
|
-
/* sanity check */
|
|
136
|
-
if (focussable[curIndex] &&
|
|
137
|
-
!this.isElementBusyOrHidden(focussable[curIndex])) {
|
|
138
|
-
focussable[curIndex].focus();
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
// No valid target, wipe focus
|
|
142
|
-
this.clearDocumentFocus();
|
|
143
|
-
}
|
|
151
|
+
// No valid target, wipe focus
|
|
152
|
+
__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_clearDocumentFocus).call(this);
|
|
144
153
|
}
|
|
145
|
-
// clear focussableElements list
|
|
146
|
-
this.focussableElements = undefined;
|
|
147
154
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
// clear focusableElements list
|
|
156
|
+
__classPrivateFieldSet(this, _SkyWaitAdapterService_focusableElements, undefined, "f");
|
|
157
|
+
}, _SkyWaitAdapterService_isShift = function _SkyWaitAdapterService_isShift(event) {
|
|
158
|
+
// Determine if shift+tab was used based on element order
|
|
159
|
+
const elements = __classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_getFocusableElements).call(this).filter((elem) => !__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_isElementHidden).call(this, elem));
|
|
160
|
+
const previousInd = elements.indexOf(event.relatedTarget);
|
|
161
|
+
const currentInd = elements.indexOf(event.target);
|
|
162
|
+
return (previousInd === currentInd + 1 ||
|
|
163
|
+
(previousInd === 0 && currentInd === elements.length - 1) ||
|
|
164
|
+
previousInd > currentInd ||
|
|
165
|
+
!event.relatedTarget);
|
|
166
|
+
}, _SkyWaitAdapterService_isElementHidden = function _SkyWaitAdapterService_isElementHidden(element) {
|
|
167
|
+
const style = window.getComputedStyle(element);
|
|
168
|
+
return style.display === 'none' || style.visibility === 'hidden';
|
|
169
|
+
}, _SkyWaitAdapterService_isElementBusyOrHidden = function _SkyWaitAdapterService_isElementBusyOrHidden(element) {
|
|
170
|
+
if (__classPrivateFieldGet(this, _SkyWaitAdapterService_instances, "m", _SkyWaitAdapterService_isElementHidden).call(this, element)) {
|
|
171
|
+
return true;
|
|
157
172
|
}
|
|
158
|
-
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
isElementBusyOrHidden(element) {
|
|
163
|
-
if (this.isElementHidden(element)) {
|
|
173
|
+
for (const key of Object.keys(busyElements)) {
|
|
174
|
+
const parentElement = busyElements[key].busyEl;
|
|
175
|
+
if (parentElement && parentElement.contains(element)) {
|
|
164
176
|
return true;
|
|
165
177
|
}
|
|
166
|
-
for (const key of Object.keys(SkyWaitAdapterService.busyElements)) {
|
|
167
|
-
const parentElement = SkyWaitAdapterService.busyElements[key].busyEl;
|
|
168
|
-
if (parentElement && parentElement.contains(element)) {
|
|
169
|
-
return true;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
return false;
|
|
173
178
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
179
|
+
return false;
|
|
180
|
+
}, _SkyWaitAdapterService_clearDocumentFocus = function _SkyWaitAdapterService_clearDocumentFocus() {
|
|
181
|
+
const activeElement = document.activeElement;
|
|
182
|
+
/* istanbul ignore else */
|
|
183
|
+
if (activeElement) {
|
|
184
|
+
activeElement.blur();
|
|
180
185
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
// Select all possible focussable elements
|
|
187
|
-
const focussableElements = 'a[href], ' +
|
|
188
|
-
'area[href], ' +
|
|
189
|
-
"input:not([disabled]):not([tabindex='-1']), " +
|
|
190
|
-
"button:not([disabled]):not([tabindex='-1']), " +
|
|
191
|
-
"select:not([disabled]):not([tabindex='-1']), " +
|
|
192
|
-
"textarea:not([disabled]):not([tabindex='-1']), " +
|
|
193
|
-
'iframe, object, embed, ' +
|
|
194
|
-
"*[tabindex]:not([tabindex='-1']), " +
|
|
195
|
-
'*[contenteditable=true]';
|
|
196
|
-
this.focussableElements = Array.prototype.filter.call(document.body.querySelectorAll(focussableElements), (element) => {
|
|
197
|
-
return (element.offsetWidth > 0 ||
|
|
198
|
-
element.offsetHeight > 0 ||
|
|
199
|
-
element === document.activeElement);
|
|
200
|
-
});
|
|
201
|
-
return this.focussableElements;
|
|
186
|
+
document.body.focus();
|
|
187
|
+
}, _SkyWaitAdapterService_getFocusableElements = function _SkyWaitAdapterService_getFocusableElements() {
|
|
188
|
+
// Keep this cached so we can reduce queries
|
|
189
|
+
if (__classPrivateFieldGet(this, _SkyWaitAdapterService_focusableElements, "f")) {
|
|
190
|
+
return __classPrivateFieldGet(this, _SkyWaitAdapterService_focusableElements, "f");
|
|
202
191
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
192
|
+
// Select all possible focusable elements
|
|
193
|
+
const focusableElements = 'a[href], ' +
|
|
194
|
+
'area[href], ' +
|
|
195
|
+
"input:not([disabled]):not([tabindex='-1']), " +
|
|
196
|
+
"button:not([disabled]):not([tabindex='-1']), " +
|
|
197
|
+
"select:not([disabled]):not([tabindex='-1']), " +
|
|
198
|
+
"textarea:not([disabled]):not([tabindex='-1']), " +
|
|
199
|
+
'iframe, object, embed, ' +
|
|
200
|
+
"*[tabindex]:not([tabindex='-1']), " +
|
|
201
|
+
'*[contenteditable=true]';
|
|
202
|
+
__classPrivateFieldSet(this, _SkyWaitAdapterService_focusableElements, Array.prototype.filter.call(document.body.querySelectorAll(focusableElements), (element) => {
|
|
203
|
+
return (element.offsetWidth > 0 ||
|
|
204
|
+
element.offsetHeight > 0 ||
|
|
205
|
+
element === document.activeElement);
|
|
206
|
+
}), "f");
|
|
207
|
+
return __classPrivateFieldGet(this, _SkyWaitAdapterService_focusableElements, "f");
|
|
208
|
+
}, _SkyWaitAdapterService_clearListeners = function _SkyWaitAdapterService_clearListeners() {
|
|
209
|
+
SkyWaitAdapterService.isPageWaitActive = false;
|
|
210
|
+
for (const key of Object.keys(busyElements)) {
|
|
211
|
+
busyElements[key].listener();
|
|
212
|
+
delete busyElements[key];
|
|
209
213
|
}
|
|
210
|
-
}
|
|
214
|
+
};
|
|
211
215
|
SkyWaitAdapterService.isPageWaitActive = false;
|
|
212
|
-
SkyWaitAdapterService.busyElements = {};
|
|
213
216
|
SkyWaitAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyWaitAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
214
217
|
SkyWaitAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyWaitAdapterService });
|
|
215
218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyWaitAdapterService, decorators: [{
|
|
216
219
|
type: Injectable
|
|
217
220
|
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxFQUdWLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQzs7QUFFdkIscUVBQXFFO0FBQ3JFLDJEQUEyRDtBQUMzRDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8scUJBQXFCO0lBZWhDLFlBQW9CLGVBQWlDO1FBQWpDLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxNQUFrQjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQ2xDLFVBQVUsRUFDVixVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxNQUFrQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sWUFBWSxDQUNqQixNQUFrQixFQUNsQixVQUFtQixFQUNuQixTQUFrQixFQUNsQixhQUFhLEdBQUcsS0FBSyxFQUNyQixlQUF3QjtRQUV4QixNQUFNLE1BQU0sR0FBRyxVQUFVO1lBQ3ZCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUNmLENBQUMsQ0FBQyxNQUFNLENBQUMs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LENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQzs7QUFyUmMsc0NBQWdCLEdBQUcsS0FBTSxDQUFBO0FBQ3pCLGtDQUFZLEdBT3ZCLEVBQUcsQ0FBQTtrSEFUSSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBOZWVkIHRvIGFkZCB0aGUgZm9sbG93aW5nIHRvIGNsYXNzZXMgd2hpY2ggY29udGFpbiBzdGF0aWMgbWV0aG9kcy5cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL25nLXBhY2thZ3IvbmctcGFja2Fnci9pc3N1ZXMvNjQxXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGR5bmFtaWNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVdhaXRBZGFwdGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGljIGlzUGFnZVdhaXRBY3RpdmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdGF0aWMgYnVzeUVsZW1lbnRzOiB7XG4gICAgW2tleTogc3RyaW5nXToge1xuICAgICAgYnVzeUVsOiBIVE1MRWxlbWVudDtcbiAgICAgIGxpc3RlbmVyOiBhbnk7XG4gICAgICByZXN0b3JlRm9jdXNFbGVtZW50PzogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgICByZXN0b3JlRm9jdXNDaGVja0VsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICB9O1xuICB9ID0ge307XG5cbiAgcHJpdmF0ZSBmb2N1c3NhYmxlRWxlbWVudHM6IEhUTUxFbGVtZW50W107XG5cbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0V2FpdEJvdW5kcyh3YWl0RWw6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgd2FpdEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCxcbiAgICAgICdwb3NpdGlvbicsXG4gICAgICAncmVsYXRpdmUnXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVXYWl0Qm91bmRzKHdhaXRFbDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUod2FpdEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgJ3Bvc2l0aW9uJyk7XG4gIH1cblxuICBwdWJsaWMgc2V0QnVzeVN0YXRlKFxuICAgIHdhaXRFbDogRWxlbWVudFJlZixcbiAgICBpc0Z1bGxQYWdlOiBib29sZWFuLFxuICAgIGlzV2FpdGluZzogYm9vbGVhbixcbiAgICBpc05vbkJsb2NraW5nID0gZmFsc2UsXG4gICAgd2FpdENvbXBvbmVudElkPzogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGJ1c3lFbCA9IGlzRnVsbFBhZ2VcbiAgICAgID8gZG9jdW1lbnQuYm9keVxuICAgICAgOiB3YWl0RWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgaWYgKCFpc05vbkJsb2NraW5nKSB7XG4gICAgICBpZiAoaXNXYWl0aW5nKSB7XG4gICAgICAgIGxldCByZXN0b3JlRm9jdXNFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHJlc3RvcmVGb2N1c0NoZWNrRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGJ1c3lFbCwgJ2FyaWEtYnVzeScsICd0cnVlJyk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGZvY3VzIGZyb20gcGFnZSB3aGVuIGZ1bGwgcGFnZSBibG9ja2luZyB3YWl0XG4gICAgICAgIGlmIChpc0Z1bGxQYWdlIHx8IGJ1c3lFbC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgICByZXN0b3JlRm9jdXNFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jbGVhckRvY3VtZW50Rm9jdXMoKTtcbiAgICAgICAgICByZXN0b3JlRm9jdXNDaGVja0VsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRnVsbFBhZ2UpIHtcbiAgICAgICAgICBTa3lXYWl0QWRhcHRlclNlcnZpY2UuaXNQYWdlV2FpdEFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgY29uc3QgZW5kTGlzdGVuZXJGdW5jID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndGFiJykge1xuICAgICAgICAgICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckRvY3VtZW50Rm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXSA9IHtcbiAgICAgICAgICAgIGxpc3RlbmVyOiBlbmRMaXN0ZW5lckZ1bmMsXG4gICAgICAgICAgICBidXN5RWw6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1c0VsZW1lbnQsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXNDaGVja0VsZW1lbnQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBlbmRMaXN0ZW5lckZ1bmMgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIGJ1c3lFbCxcbiAgICAgICAgICAgICdmb2N1c2luJyxcbiAgICAgICAgICAgIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICBpZiAoIWlzTm9uQmxvY2tpbmcpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgaWYgKFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRG9jdW1lbnRGb2N1cygpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAvLyBQcm9wYWdhdGUgdGFiIG5hdmlnYXRpb24gaWYgYXR0ZW1wdGVkIGludG8gd2FpdGVkIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldDogYW55ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgdGFyZ2V0LmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNOZXh0RWxlbWVudCh0YXJnZXQsIHRoaXMuaXNTaGlmdChldmVudCksIGJ1c3lFbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICBTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzW3dhaXRDb21wb25lbnRJZF0gPSB7XG4gICAgICAgICAgICBsaXN0ZW5lcjogZW5kTGlzdGVuZXJGdW5jLFxuICAgICAgICAgICAgYnVzeUVsOiBidXN5RWwsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXNFbGVtZW50LFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzQ2hlY2tFbGVtZW50LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKGJ1c3lFbCwgJ2FyaWEtYnVzeScpO1xuXG4gICAgICAgIGlmIChpc0Z1bGxQYWdlKSB7XG4gICAgICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmlzUGFnZVdhaXRBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2FpdENvbXBvbmVudElkIGluIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHMpIHtcbiAgICAgICAgICBTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzW3dhaXRDb21wb25lbnRJZF0ubGlzdGVuZXIoKTtcbiAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHJlc3RvcmUgZm9jdXMgZWxlbWVudCBhbmQgdGhlIGZvY3VzIGhhcyBub3QgbW92ZWQsIHJlc3RvcmUgZm9jdXMuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1t3YWl0Q29tcG9uZW50SWRdXG4gICAgICAgICAgICAgIC5yZXN0b3JlRm9jdXNFbGVtZW50ICYmXG4gICAgICAgICAgICBTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzW3dhaXRDb21wb25lbnRJZF1cbiAgICAgICAgICAgICAgLnJlc3RvcmVGb2N1c0NoZWNrRWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1tcbiAgICAgICAgICAgICAgd2FpdENvbXBvbmVudElkXG4gICAgICAgICAgICBdLnJlc3RvcmVGb2N1c0VsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVsZXRlIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNOZXh0RWxlbWVudChcbiAgICB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBzaGlmdEtleTogYm9vbGVhbixcbiAgICBidXN5RWw6IEVsZW1lbnRcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm9jdXNzYWJsZSA9IHRoaXMuZ2V0Rm9jdXNzYWJsZUVsZW1lbnRzKCk7XG5cbiAgICAvLyBJZiBzaGlmdCB0YWIsIGdvIGluIHRoZSBvdGhlciBkaXJlY3Rpb25cbiAgICBjb25zdCBtb2RpZmllciA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xuXG4gICAgLy8gRmluZCB0aGUgbmV4dCBuYXZpZ2FibGUgZWxlbWVudCB0aGF0IGlzbid0IHdhaXRpbmdcbiAgICBjb25zdCBzdGFydGluZ0luZGV4ID0gZm9jdXNzYWJsZS5pbmRleE9mKHRhcmdldEVsZW1lbnQpO1xuICAgIGxldCBjdXJJbmRleCA9IHN0YXJ0aW5nSW5kZXggKyBtb2RpZmllcjtcbiAgICB3aGlsZSAoXG4gICAgICBmb2N1c3NhYmxlW2N1ckluZGV4XSAmJlxuICAgICAgdGhpcy5pc0VsZW1lbnRCdXN5T3JIaWRkZW4oZm9jdXNzYWJsZVtjdXJJbmRleF0pXG4gICAgKSB7XG4gICAgICBjdXJJbmRleCArPSBtb2RpZmllcjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBmb2N1c3NhYmxlW2N1ckluZGV4XSAmJlxuICAgICAgIXRoaXMuaXNFbGVtZW50QnVzeU9ySGlkZGVuKGZvY3Vzc2FibGVbY3VySW5kZXhdKVxuICAgICkge1xuICAgICAgZm9jdXNzYWJsZVtjdXJJbmRleF0uZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHJ5IHdyYXBwaW5nIHRoZSBuYXZpZ2F0aW9uXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICBjdXJJbmRleCA9IG1vZGlmaWVyID4gMCA/IDAgOiBmb2N1c3NhYmxlLmxlbmd0aCAtIDE7XG4gICAgICB3aGlsZSAoXG4gICAgICAgIGN1ckluZGV4ICE9PSBzdGFydGluZ0luZGV4ICYmXG4gICAgICAgIGZvY3Vzc2FibGVbY3VySW5kZXhdICYmXG4gICAgICAgIHRoaXMuaXNFbGVtZW50QnVzeU9ySGlkZGVuKGZvY3Vzc2FibGVbY3VySW5kZXhdKVxuICAgICAgKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICBjdXJJbmRleCArPSBtb2RpZmllcjtcbiAgICAgIH1cblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgaWYgKFxuICAgICAgICBmb2N1c3NhYmxlW2N1ckluZGV4XSAmJlxuICAgICAgICAhdGhpcy5pc0VsZW1lbnRCdXN5T3JIaWRkZW4oZm9jdXNzYWJsZVtjdXJJbmRleF0pXG4gICAgICApIHtcbiAgICAgICAgZm9jdXNzYWJsZVtjdXJJbmRleF0uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vIHZhbGlkIHRhcmdldCwgd2lwZSBmb2N1c1xuICAgICAgICB0aGlzLmNsZWFyRG9jdW1lbnRGb2N1cygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNsZWFyIGZvY3Vzc2FibGVFbGVtZW50cyBsaXN0XG4gICAgdGhpcy5mb2N1c3NhYmxlRWxlbWVudHMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGlzU2hpZnQoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNoaWZ0K3RhYiB3YXMgdXNlZCBiYXNlZCBvbiBlbGVtZW50IG9yZGVyXG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmdldEZvY3Vzc2FibGVFbGVtZW50cygpLmZpbHRlcihcbiAgICAgIChlbGVtKSA9PiAhdGhpcy5pc0VsZW1lbnRIaWRkZW4oZWxlbSlcbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlvdXNJbmQgPSBlbGVtZW50cy5pbmRleE9mKChldmVudCBhcyBhbnkpLnJlbGF0ZWRUYXJnZXQpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmQgPSBlbGVtZW50cy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgcHJldmlvdXNJbmQgPT09IGN1cnJlbnRJbmQgKyAxIHx8XG4gICAgICAocHJldmlvdXNJbmQgPT09IDAgJiYgY3VycmVudEluZCA9PT0gZWxlbWVudHMubGVuZ3RoIC0gMSkgfHxcbiAgICAgIHByZXZpb3VzSW5kID4gY3VycmVudEluZCB8fFxuICAgICAgIShldmVudCBhcyBhbnkpLnJlbGF0ZWRUYXJnZXRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VsZW1lbnRIaWRkZW4oZWxlbWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICByZXR1cm4gc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnIHx8IHN0eWxlLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VsZW1lbnRCdXN5T3JIaWRkZW4oZWxlbWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNFbGVtZW50SGlkZGVuKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzKSkge1xuICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNba2V5XS5idXN5RWw7XG4gICAgICBpZiAocGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50LmNvbnRhaW5zKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRG9jdW1lbnRGb2N1cygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIGFueSkuYmx1cikge1xuICAgICAgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgYW55KS5ibHVyKCk7XG4gICAgfVxuICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9jdXNzYWJsZUVsZW1lbnRzKCk6IEhUTUxFbGVtZW50W10ge1xuICAgIC8vIEtlZXAgdGhpcyBjYWNoZWQgc28gd2UgY2FuIHJlZHVjZSBxdWVyeXNcbiAgICBpZiAodGhpcy5mb2N1c3NhYmxlRWxlbWVudHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvY3Vzc2FibGVFbGVtZW50cztcbiAgICB9XG5cbiAgICAvLyBTZWxlY3QgYWxsIHBvc3NpYmxlIGZvY3Vzc2FibGUgZWxlbWVudHNcbiAgICBjb25zdCBmb2N1c3NhYmxlRWxlbWVudHMgPVxuICAgICAgJ2FbaHJlZl0sICcgK1xuICAgICAgJ2FyZWFbaHJlZl0sICcgK1xuICAgICAgXCJpbnB1dDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0nLTEnXSksIFwiICtcbiAgICAgIFwiYnV0dG9uOm5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PSctMSddKSwgXCIgK1xuICAgICAgXCJzZWxlY3Q6bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Jy0xJ10pLCBcIiArXG4gICAgICBcInRleHRhcmVhOm5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PSctMSddKSwgXCIgK1xuICAgICAgJ2lmcmFtZSwgb2JqZWN0LCBlbWJlZCwgJyArXG4gICAgICBcIipbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Jy0xJ10pLCBcIiArXG4gICAgICAnKltjb250ZW50ZWRpdGFibGU9dHJ1ZV0nO1xuXG4gICAgdGhpcy5mb2N1c3NhYmxlRWxlbWVudHMgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoXG4gICAgICBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoZm9jdXNzYWJsZUVsZW1lbnRzKSxcbiAgICAgIChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBlbGVtZW50Lm9mZnNldFdpZHRoID4gMCB8fFxuICAgICAgICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0ID4gMCB8fFxuICAgICAgICAgIGVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiB0aGlzLmZvY3Vzc2FibGVFbGVtZW50cztcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmlzUGFnZVdhaXRBY3RpdmUgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzKSkge1xuICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1trZXldLmxpc3RlbmVyKCk7XG4gICAgICBkZWxldGUgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1trZXldO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFFTCxVQUFVLEVBR1YsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDOztBQUV2QixNQUFNLFlBQVksR0FPZCxFQUFFLENBQUM7QUFFUCxxRUFBcUU7QUFDckUsMkRBQTJEO0FBQzNEOzs7R0FHRztBQUVILE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFBWSxlQUFpQzs7UUFIN0MsMkRBQThDO1FBQzlDLGtEQUFxQjtRQUduQix1QkFBQSxJQUFJLG1DQUFhLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFBLENBQUM7SUFDbkUsQ0FBQztJQUVNLFdBQVc7UUFDaEIsdUJBQUEsSUFBSSwrRUFBZ0IsTUFBcEIsSUFBSSxDQUFrQixDQUFDO0lBQ3pCLENBQUM7SUFFTSxhQUFhLENBQUMsTUFBa0I7UUFDckMsdUJBQUEsSUFBSSx1Q0FBVSxDQUFDLFFBQVEsQ0FDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQ2xDLFVBQVUsRUFDVixVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxNQUFrQjtRQUN4Qyx1QkFBQSxJQUFJLHVDQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxZQUFZLENBQ2pCLE1BQWtCLEVBQ2xCLFVBQW1CLEVBQ25CLFNBQWtCLEVBQ2xCLGFBQXNCLEVBQ3RCLGVBQXdCO1FBRXhCLE1BQU0sTUFBTSxHQUFHLFVBQVU7WUFDdkIsQ0FBQyxDQUFDLFFBQVEsQ0FB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N0IsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDMUI7QUFDSCxDQUFDO0FBbFJhLHNDQUFnQixHQUFHLEtBQU0sQ0FBQTtrSEFENUIscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgYnVzeUVsZW1lbnRzOiB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICBidXN5RWw6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICAgIHJlc3RvcmVGb2N1c0VsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICByZXN0b3JlRm9jdXNDaGVja0VsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgfTtcbn0gPSB7fTtcblxuLy8gTmVlZCB0byBhZGQgdGhlIGZvbGxvd2luZyB0byBjbGFzc2VzIHdoaWNoIGNvbnRhaW4gc3RhdGljIG1ldGhvZHMuXG4vLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wYWNrYWdyL25nLXBhY2thZ3IvaXNzdWVzLzY0MVxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEBkeW5hbWljXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lXYWl0QWRhcHRlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RhdGljIGlzUGFnZVdhaXRBY3RpdmUgPSBmYWxzZTtcblxuICAjZm9jdXNhYmxlRWxlbWVudHM6IEhUTUxFbGVtZW50W10gfCB1bmRlZmluZWQ7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5Mikge1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jY2xlYXJMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRXYWl0Qm91bmRzKHdhaXRFbDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgd2FpdEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCxcbiAgICAgICdwb3NpdGlvbicsXG4gICAgICAncmVsYXRpdmUnXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVXYWl0Qm91bmRzKHdhaXRFbDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZVN0eWxlKHdhaXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsICdwb3NpdGlvbicpO1xuICB9XG5cbiAgcHVibGljIHNldEJ1c3lTdGF0ZShcbiAgICB3YWl0RWw6IEVsZW1lbnRSZWYsXG4gICAgaXNGdWxsUGFnZTogYm9vbGVhbixcbiAgICBpc1dhaXRpbmc6IGJvb2xlYW4sXG4gICAgaXNOb25CbG9ja2luZzogYm9vbGVhbixcbiAgICB3YWl0Q29tcG9uZW50SWQ/OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYnVzeUVsID0gaXNGdWxsUGFnZVxuICAgICAgPyBkb2N1bWVudC5ib2R5XG4gICAgICA6IHdhaXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICBpZiAoIWlzTm9uQmxvY2tpbmcpIHtcbiAgICAgIGlmIChpc1dhaXRpbmcpIHtcbiAgICAgICAgbGV0IHJlc3RvcmVGb2N1c0VsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgcmVzdG9yZUZvY3VzQ2hlY2tFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKGJ1c3lFbCwgJ2FyaWEtYnVzeScsICd0cnVlJyk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGZvY3VzIGZyb20gcGFnZSB3aGVuIGZ1bGwgcGFnZSBibG9ja2luZyB3YWl0XG4gICAgICAgIGlmIChpc0Z1bGxQYWdlIHx8IGJ1c3lFbC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgICByZXN0b3JlRm9jdXNFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy4jY2xlYXJEb2N1bWVudEZvY3VzKCk7XG4gICAgICAgICAgcmVzdG9yZUZvY3VzQ2hlY2tFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0Z1bGxQYWdlKSB7XG4gICAgICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmlzUGFnZVdhaXRBY3RpdmUgPSB0cnVlO1xuICAgICAgICAgIGNvbnN0IGVuZExpc3RlbmVyRnVuYyA9IHRoaXMuI3JlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHksXG4gICAgICAgICAgICAna2V5ZG93bicsXG4gICAgICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd0YWInKSB7XG4gICAgICAgICAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5ibHVyKCk7XG4gICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuI2NsZWFyRG9jdW1lbnRGb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAod2FpdENvbXBvbmVudElkKSB7XG4gICAgICAgICAgICBidXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXSA9IHtcbiAgICAgICAgICAgICAgbGlzdGVuZXI6IGVuZExpc3RlbmVyRnVuYyxcbiAgICAgICAgICAgICAgYnVzeUVsOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHJlc3RvcmVGb2N1c0VsZW1lbnQsXG4gICAgICAgICAgICAgIHJlc3RvcmVGb2N1c0NoZWNrRWxlbWVudCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGVuZExpc3RlbmVyRnVuYyA9IHRoaXMuI3JlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIGJ1c3lFbCxcbiAgICAgICAgICAgICdmb2N1c2luJyxcbiAgICAgICAgICAgIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICBpZiAoIWlzTm9uQmxvY2tpbmcpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgaWYgKFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLiNjbGVhckRvY3VtZW50Rm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgLy8gUHJvcGFnYXRlIHRhYiBuYXZpZ2F0aW9uIGlmIGF0dGVtcHRlZCBpbnRvIHdhaXRlZCBlbGVtZW50XG4gICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jZm9jdXNOZXh0RWxlbWVudCh0YXJnZXQsIHRoaXMuI2lzU2hpZnQoZXZlbnQpKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKHdhaXRDb21wb25lbnRJZCkge1xuICAgICAgICAgICAgYnVzeUVsZW1lbnRzW3dhaXRDb21wb25lbnRJZF0gPSB7XG4gICAgICAgICAgICAgIGxpc3RlbmVyOiBlbmRMaXN0ZW5lckZ1bmMsXG4gICAgICAgICAgICAgIGJ1c3lFbCxcbiAgICAgICAgICAgICAgcmVzdG9yZUZvY3VzRWxlbWVudCxcbiAgICAgICAgICAgICAgcmVzdG9yZUZvY3VzQ2hlY2tFbGVtZW50LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShidXN5RWwsICdhcmlhLWJ1c3knKTtcblxuICAgICAgICBpZiAoaXNGdWxsUGFnZSkge1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAod2FpdENvbXBvbmVudElkICYmIHdhaXRDb21wb25lbnRJZCBpbiBidXN5RWxlbWVudHMpIHtcbiAgICAgICAgICBjb25zdCBidXN5RWxlbWVudCA9IGJ1c3lFbGVtZW50c1t3YWl0Q29tcG9uZW50SWRdO1xuXG4gICAgICAgICAgYnVzeUVsZW1lbnQubGlzdGVuZXIoKTtcblxuICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcmVzdG9yZSBmb2N1cyBlbGVtZW50IGFuZCB0aGUgZm9jdXMgaGFzIG5vdCBtb3ZlZCwgcmVzdG9yZSBmb2N1cy5cbiAgICAgICAgICBpZiAoYnVzeUVsZW1lbnQucmVzdG9yZUZvY3VzQ2hlY2tFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBidXN5RWxlbWVudC5yZXN0b3JlRm9jdXNFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRlbGV0ZSBidXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNmb2N1c05leHRFbGVtZW50KHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzaGlmdEtleTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IHRoaXMuI2dldEZvY3VzYWJsZUVsZW1lbnRzKCk7XG5cbiAgICAvLyBJZiBzaGlmdCB0YWIsIGdvIGluIHRoZSBvdGhlciBkaXJlY3Rpb25cbiAgICBjb25zdCBtb2RpZmllciA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xuXG4gICAgLy8gRmluZCB0aGUgbmV4dCBuYXZpZ2FibGUgZWxlbWVudCB0aGF0IGlzbid0IHdhaXRpbmdcbiAgICBjb25zdCBzdGFydGluZ0luZGV4ID0gZm9jdXNhYmxlLmluZGV4T2YodGFyZ2V0RWxlbWVudCk7XG4gICAgbGV0IGN1ckluZGV4ID0gc3RhcnRpbmdJbmRleCArIG1vZGlmaWVyO1xuICAgIHdoaWxlIChcbiAgICAgIGZvY3VzYWJsZVtjdXJJbmRleF0gJiZcbiAgICAgIHRoaXMuI2lzRWxlbWVudEJ1c3lPckhpZGRlbihmb2N1c2FibGVbY3VySW5kZXhdKVxuICAgICkge1xuICAgICAgY3VySW5kZXggKz0gbW9kaWZpZXI7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgZm9jdXNhYmxlW2N1ckluZGV4XSAmJlxuICAgICAgIXRoaXMuI2lzRWxlbWVudEJ1c3lPckhpZGRlbihmb2N1c2FibGVbY3VySW5kZXhdKVxuICAgICkge1xuICAgICAgZm9jdXNhYmxlW2N1ckluZGV4XS5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcnkgd3JhcHBpbmcgdGhlIG5hdmlnYXRpb25cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgIGN1ckluZGV4ID0gbW9kaWZpZXIgPiAwID8gMCA6IGZvY3VzYWJsZS5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKFxuICAgICAgICBjdXJJbmRleCAhPT0gc3RhcnRpbmdJbmRleCAmJlxuICAgICAgICBmb2N1c2FibGVbY3VySW5kZXhdICYmXG4gICAgICAgIHRoaXMuI2lzRWxlbWVudEJ1c3lPckhpZGRlbihmb2N1c2FibGVbY3VySW5kZXhdKVxuICAgICAgKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICBjdXJJbmRleCArPSBtb2RpZmllcjtcbiAgICAgIH1cblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgaWYgKFxuICAgICAgICBmb2N1c2FibGVbY3VySW5kZXhdICYmXG4gICAgICAgICF0aGlzLiNpc0VsZW1lbnRCdXN5T3JIaWRkZW4oZm9jdXNhYmxlW2N1ckluZGV4XSlcbiAgICAgICkge1xuICAgICAgICBmb2N1c2FibGVbY3VySW5kZXhdLmZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBObyB2YWxpZCB0YXJnZXQsIHdpcGUgZm9jdXNcbiAgICAgICAgdGhpcy4jY2xlYXJEb2N1bWVudEZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gY2xlYXIgZm9jdXNhYmxlRWxlbWVudHMgbGlzdFxuICAgIHRoaXMuI2ZvY3VzYWJsZUVsZW1lbnRzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgI2lzU2hpZnQoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNoaWZ0K3RhYiB3YXMgdXNlZCBiYXNlZCBvbiBlbGVtZW50IG9yZGVyXG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLiNnZXRGb2N1c2FibGVFbGVtZW50cygpLmZpbHRlcihcbiAgICAgIChlbGVtKSA9PiAhdGhpcy4jaXNFbGVtZW50SGlkZGVuKGVsZW0pXG4gICAgKTtcblxuICAgIGNvbnN0IHByZXZpb3VzSW5kID0gZWxlbWVudHMuaW5kZXhPZigoZXZlbnQgYXMgYW55KS5yZWxhdGVkVGFyZ2V0KTtcbiAgICBjb25zdCBjdXJyZW50SW5kID0gZWxlbWVudHMuaW5kZXhPZihldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHByZXZpb3VzSW5kID09PSBjdXJyZW50SW5kICsgMSB8fFxuICAgICAgKHByZXZpb3VzSW5kID09PSAwICYmIGN1cnJlbnRJbmQgPT09IGVsZW1lbnRzLmxlbmd0aCAtIDEpIHx8XG4gICAgICBwcmV2aW91c0luZCA+IGN1cnJlbnRJbmQgfHxcbiAgICAgICEoZXZlbnQgYXMgYW55KS5yZWxhdGVkVGFyZ2V0XG4gICAgKTtcbiAgfVxuXG4gICNpc0VsZW1lbnRIaWRkZW4oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAgIHJldHVybiBzdHlsZS5kaXNwbGF5ID09PSAnbm9uZScgfHwgc3R5bGUudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbic7XG4gIH1cblxuICAjaXNFbGVtZW50QnVzeU9ySGlkZGVuKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuI2lzRWxlbWVudEhpZGRlbihlbGVtZW50KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYnVzeUVsZW1lbnRzKSkge1xuICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IGJ1c3lFbGVtZW50c1trZXldLmJ1c3lFbDtcbiAgICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHBhcmVudEVsZW1lbnQuY29udGFpbnMoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNjbGVhckRvY3VtZW50Rm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChhY3RpdmVFbGVtZW50KSB7XG4gICAgICBhY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG5cbiAgICBkb2N1bWVudC5ib2R5LmZvY3VzKCk7XG4gIH1cblxuICAjZ2V0Rm9jdXNhYmxlRWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgLy8gS2VlcCB0aGlzIGNhY2hlZCBzbyB3ZSBjYW4gcmVkdWNlIHF1ZXJpZXNcbiAgICBpZiAodGhpcy4jZm9jdXNhYmxlRWxlbWVudHMpIHtcbiAgICAgIHJldHVybiB0aGlzLiNmb2N1c2FibGVFbGVtZW50cztcbiAgICB9XG5cbiAgICAvLyBTZWxlY3QgYWxsIHBvc3NpYmxlIGZvY3VzYWJsZSBlbGVtZW50c1xuICAgIGNvbnN0IGZvY3VzYWJsZUVsZW1lbnRzID1cbiAgICAgICdhW2hyZWZdLCAnICtcbiAgICAgICdhcmVhW2hyZWZdLCAnICtcbiAgICAgIFwiaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Jy0xJ10pLCBcIiArXG4gICAgICBcImJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0nLTEnXSksIFwiICtcbiAgICAgIFwic2VsZWN0Om5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PSctMSddKSwgXCIgK1xuICAgICAgXCJ0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0nLTEnXSksIFwiICtcbiAgICAgICdpZnJhbWUsIG9iamVjdCwgZW1iZWQsICcgK1xuICAgICAgXCIqW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSctMSddKSwgXCIgK1xuICAgICAgJypbY29udGVudGVkaXRhYmxlPXRydWVdJztcblxuICAgIHRoaXMuI2ZvY3VzYWJsZUVsZW1lbnRzID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKFxuICAgICAgZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yQWxsKGZvY3VzYWJsZUVsZW1lbnRzKSxcbiAgICAgIChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGVsZW1lbnQub2Zmc2V0V2lkdGggPiAwIHx8XG4gICAgICAgICAgZWxlbWVudC5vZmZzZXRIZWlnaHQgPiAwIHx8XG4gICAgICAgICAgZWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudFxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuI2ZvY3VzYWJsZUVsZW1lbnRzO1xuICB9XG5cbiAgI2NsZWFyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYnVzeUVsZW1lbnRzKSkge1xuICAgICAgYnVzeUVsZW1lbnRzW2tleV0ubGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSBidXN5RWxlbWVudHNba2V5XTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
16
16
|
}], hasNonBlockingWait: [{
|
|
17
17
|
type: Input
|
|
18
18
|
}] } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3NyYy9saWIvbW9kdWxlcy93YWl0L3dhaXQtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVqRDs7R0FFRztBQU1ILE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7cUdBQXBCLG9CQUFvQiwrSUNWakMsMlBBU0E7MkZEQ2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGVBQWU7OEJBTWxCLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktd2FpdC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dhaXQtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dhaXQtcGFnZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lXYWl0UGFnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoYXNCbG9ja2luZ1dhaXQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhhc05vbkJsb2NraW5nV2FpdDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktd2FpdC1wYWdlXCI+XG4gIDxza3ktd2FpdFxuICAgIFtpc0Z1bGxQYWdlXT1cInRydWVcIlxuICAgIFtpc05vbkJsb2NraW5nXT1cInRydWVcIlxuICAgIFtpc1dhaXRpbmddPVwiaGFzTm9uQmxvY2tpbmdXYWl0XCJcbiAgPlxuICA8L3NreS13YWl0PlxuICA8c2t5LXdhaXQgW2lzRnVsbFBhZ2VdPVwidHJ1ZVwiIFtpc1dhaXRpbmddPVwiaGFzQmxvY2tpbmdXYWl0XCI+IDwvc2t5LXdhaXQ+XG48L2Rpdj5cbiJdfQ==
|