@skyux/indicators 5.7.2 → 6.0.0-beta.2

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.
Files changed (171) hide show
  1. package/documentation.json +2 -2
  2. package/esm2020/index.mjs +38 -0
  3. package/esm2020/lib/modules/alert/alert.component.mjs +56 -0
  4. package/esm2020/lib/modules/alert/alert.module.mjs +38 -0
  5. package/esm2020/lib/modules/chevron/chevron.component.mjs +62 -0
  6. package/esm2020/lib/modules/chevron/chevron.module.mjs +38 -0
  7. package/esm2020/lib/modules/expansion-indicator/expansion-indicator.component.mjs +31 -0
  8. package/esm2020/lib/modules/expansion-indicator/expansion-indicator.module.mjs +19 -0
  9. package/esm2020/lib/modules/help-inline/help-inline.component.mjs +26 -0
  10. package/esm2020/lib/modules/help-inline/help-inline.module.mjs +38 -0
  11. package/esm2020/lib/modules/icon/icon-class-list.pipe.mjs +38 -0
  12. package/esm2020/lib/modules/icon/icon-resolver.service.mjs +42 -0
  13. package/esm2020/lib/modules/icon/icon-stack-item.mjs +2 -0
  14. package/esm2020/lib/modules/icon/icon-stack.component.mjs +19 -0
  15. package/esm2020/lib/modules/icon/icon.component.mjs +32 -0
  16. package/esm2020/lib/modules/icon/icon.module.mjs +21 -0
  17. package/esm2020/lib/modules/icon/types/icon-type.mjs +2 -0
  18. package/esm2020/lib/modules/icon/types/icon-variant-type.mjs +2 -0
  19. package/esm2020/lib/modules/key-info/key-info-label.component.mjs +18 -0
  20. package/esm2020/lib/modules/key-info/key-info-value.component.mjs +18 -0
  21. package/esm2020/lib/modules/key-info/key-info.component.mjs +22 -0
  22. package/esm2020/lib/modules/key-info/key-info.module.mjs +32 -0
  23. package/esm2020/lib/modules/label/label-type.mjs +2 -0
  24. package/esm2020/lib/modules/label/label.component.mjs +34 -0
  25. package/esm2020/lib/modules/label/label.module.mjs +19 -0
  26. package/esm2020/lib/modules/shared/indicator-description-type.mjs +2 -0
  27. package/esm2020/lib/modules/shared/indicator-icon-type.mjs +2 -0
  28. package/esm2020/lib/modules/shared/indicator-icon-utility.mjs +41 -0
  29. package/esm2020/lib/modules/shared/indicator-icon.mjs +2 -0
  30. package/esm2020/lib/modules/shared/sky-indicators-resources.module.mjs +61 -0
  31. package/esm2020/lib/modules/status-indicator/status-indicator.component.mjs +94 -0
  32. package/esm2020/lib/modules/status-indicator/status-indicator.module.mjs +34 -0
  33. package/esm2020/lib/modules/text-highlight/text-highlight.directive.mjs +153 -0
  34. package/esm2020/lib/modules/text-highlight/text-highlight.module.mjs +18 -0
  35. package/esm2020/lib/modules/tokens/token.component.mjs +107 -0
  36. package/esm2020/lib/modules/tokens/tokens.component.mjs +298 -0
  37. package/esm2020/lib/modules/tokens/tokens.module.mjs +35 -0
  38. package/esm2020/lib/modules/tokens/types/token-selected-event-args.mjs +2 -0
  39. package/esm2020/lib/modules/tokens/types/token.mjs +2 -0
  40. package/esm2020/lib/modules/tokens/types/tokens-message-type.mjs +24 -0
  41. package/esm2020/lib/modules/tokens/types/tokens-message.mjs +2 -0
  42. package/esm2020/lib/modules/wait/wait-adapter.service.mjs +201 -0
  43. package/esm2020/lib/modules/wait/wait-page-adapter.service.mjs +25 -0
  44. package/esm2020/lib/modules/wait/wait-page.component.mjs +19 -0
  45. package/esm2020/lib/modules/wait/wait.component.mjs +89 -0
  46. package/esm2020/lib/modules/wait/wait.module.mjs +21 -0
  47. package/esm2020/lib/modules/wait/wait.service.mjs +164 -0
  48. package/esm2020/skyux-indicators.mjs +5 -0
  49. package/esm2020/testing/alert-fixture.mjs +67 -0
  50. package/esm2020/testing/label-fixture.mjs +40 -0
  51. package/esm2020/testing/public-api.mjs +4 -0
  52. package/esm2020/testing/skyux-indicators-testing.mjs +5 -0
  53. package/esm2020/testing/wait-fixture.mjs +24 -0
  54. package/fesm2015/{skyux-indicators-testing.js → skyux-indicators-testing.mjs} +1 -1
  55. package/fesm2015/skyux-indicators-testing.mjs.map +1 -0
  56. package/fesm2015/skyux-indicators.mjs +1830 -0
  57. package/fesm2015/skyux-indicators.mjs.map +1 -0
  58. package/fesm2020/skyux-indicators-testing.mjs +135 -0
  59. package/fesm2020/skyux-indicators-testing.mjs.map +1 -0
  60. package/{fesm2015/skyux-indicators.js → fesm2020/skyux-indicators.mjs} +126 -185
  61. package/fesm2020/skyux-indicators.mjs.map +1 -0
  62. package/package.json +39 -15
  63. package/testing/package.json +5 -5
  64. package/bundles/skyux-indicators-testing.umd.js +0 -187
  65. package/bundles/skyux-indicators.umd.js +0 -2463
  66. package/esm2015/index.js +0 -38
  67. package/esm2015/index.js.map +0 -1
  68. package/esm2015/lib/modules/alert/alert.component.js +0 -60
  69. package/esm2015/lib/modules/alert/alert.component.js.map +0 -1
  70. package/esm2015/lib/modules/alert/alert.module.js +0 -38
  71. package/esm2015/lib/modules/alert/alert.module.js.map +0 -1
  72. package/esm2015/lib/modules/chevron/chevron.component.js +0 -66
  73. package/esm2015/lib/modules/chevron/chevron.component.js.map +0 -1
  74. package/esm2015/lib/modules/chevron/chevron.module.js +0 -38
  75. package/esm2015/lib/modules/chevron/chevron.module.js.map +0 -1
  76. package/esm2015/lib/modules/expansion-indicator/expansion-indicator.component.js +0 -35
  77. package/esm2015/lib/modules/expansion-indicator/expansion-indicator.component.js.map +0 -1
  78. package/esm2015/lib/modules/expansion-indicator/expansion-indicator.module.js +0 -19
  79. package/esm2015/lib/modules/expansion-indicator/expansion-indicator.module.js.map +0 -1
  80. package/esm2015/lib/modules/help-inline/help-inline.component.js +0 -30
  81. package/esm2015/lib/modules/help-inline/help-inline.component.js.map +0 -1
  82. package/esm2015/lib/modules/help-inline/help-inline.module.js +0 -38
  83. package/esm2015/lib/modules/help-inline/help-inline.module.js.map +0 -1
  84. package/esm2015/lib/modules/icon/icon-class-list.pipe.js +0 -38
  85. package/esm2015/lib/modules/icon/icon-class-list.pipe.js.map +0 -1
  86. package/esm2015/lib/modules/icon/icon-resolver.service.js +0 -42
  87. package/esm2015/lib/modules/icon/icon-resolver.service.js.map +0 -1
  88. package/esm2015/lib/modules/icon/icon-stack-item.js +0 -2
  89. package/esm2015/lib/modules/icon/icon-stack-item.js.map +0 -1
  90. package/esm2015/lib/modules/icon/icon-stack.component.js +0 -23
  91. package/esm2015/lib/modules/icon/icon-stack.component.js.map +0 -1
  92. package/esm2015/lib/modules/icon/icon.component.js +0 -37
  93. package/esm2015/lib/modules/icon/icon.component.js.map +0 -1
  94. package/esm2015/lib/modules/icon/icon.module.js +0 -21
  95. package/esm2015/lib/modules/icon/icon.module.js.map +0 -1
  96. package/esm2015/lib/modules/icon/types/icon-type.js +0 -2
  97. package/esm2015/lib/modules/icon/types/icon-type.js.map +0 -1
  98. package/esm2015/lib/modules/icon/types/icon-variant-type.js +0 -2
  99. package/esm2015/lib/modules/icon/types/icon-variant-type.js.map +0 -1
  100. package/esm2015/lib/modules/key-info/key-info-label.component.js +0 -18
  101. package/esm2015/lib/modules/key-info/key-info-label.component.js.map +0 -1
  102. package/esm2015/lib/modules/key-info/key-info-value.component.js +0 -18
  103. package/esm2015/lib/modules/key-info/key-info-value.component.js.map +0 -1
  104. package/esm2015/lib/modules/key-info/key-info.component.js +0 -26
  105. package/esm2015/lib/modules/key-info/key-info.component.js.map +0 -1
  106. package/esm2015/lib/modules/key-info/key-info.module.js +0 -32
  107. package/esm2015/lib/modules/key-info/key-info.module.js.map +0 -1
  108. package/esm2015/lib/modules/label/label-type.js +0 -2
  109. package/esm2015/lib/modules/label/label-type.js.map +0 -1
  110. package/esm2015/lib/modules/label/label.component.js +0 -38
  111. package/esm2015/lib/modules/label/label.component.js.map +0 -1
  112. package/esm2015/lib/modules/label/label.module.js +0 -19
  113. package/esm2015/lib/modules/label/label.module.js.map +0 -1
  114. package/esm2015/lib/modules/shared/indicator-description-type.js +0 -2
  115. package/esm2015/lib/modules/shared/indicator-description-type.js.map +0 -1
  116. package/esm2015/lib/modules/shared/indicator-icon-type.js +0 -2
  117. package/esm2015/lib/modules/shared/indicator-icon-type.js.map +0 -1
  118. package/esm2015/lib/modules/shared/indicator-icon-utility.js +0 -41
  119. package/esm2015/lib/modules/shared/indicator-icon-utility.js.map +0 -1
  120. package/esm2015/lib/modules/shared/indicator-icon.js +0 -2
  121. package/esm2015/lib/modules/shared/indicator-icon.js.map +0 -1
  122. package/esm2015/lib/modules/shared/sky-indicators-resources.module.js +0 -61
  123. package/esm2015/lib/modules/shared/sky-indicators-resources.module.js.map +0 -1
  124. package/esm2015/lib/modules/status-indicator/status-indicator.component.js +0 -99
  125. package/esm2015/lib/modules/status-indicator/status-indicator.component.js.map +0 -1
  126. package/esm2015/lib/modules/status-indicator/status-indicator.module.js +0 -34
  127. package/esm2015/lib/modules/status-indicator/status-indicator.module.js.map +0 -1
  128. package/esm2015/lib/modules/text-highlight/text-highlight.directive.js +0 -153
  129. package/esm2015/lib/modules/text-highlight/text-highlight.directive.js.map +0 -1
  130. package/esm2015/lib/modules/text-highlight/text-highlight.module.js +0 -18
  131. package/esm2015/lib/modules/text-highlight/text-highlight.module.js.map +0 -1
  132. package/esm2015/lib/modules/tokens/token.component.js +0 -112
  133. package/esm2015/lib/modules/tokens/token.component.js.map +0 -1
  134. package/esm2015/lib/modules/tokens/tokens.component.js +0 -304
  135. package/esm2015/lib/modules/tokens/tokens.component.js.map +0 -1
  136. package/esm2015/lib/modules/tokens/tokens.module.js +0 -35
  137. package/esm2015/lib/modules/tokens/tokens.module.js.map +0 -1
  138. package/esm2015/lib/modules/tokens/types/token-selected-event-args.js +0 -2
  139. package/esm2015/lib/modules/tokens/types/token-selected-event-args.js.map +0 -1
  140. package/esm2015/lib/modules/tokens/types/token.js +0 -2
  141. package/esm2015/lib/modules/tokens/types/token.js.map +0 -1
  142. package/esm2015/lib/modules/tokens/types/tokens-message-type.js +0 -24
  143. package/esm2015/lib/modules/tokens/types/tokens-message-type.js.map +0 -1
  144. package/esm2015/lib/modules/tokens/types/tokens-message.js +0 -2
  145. package/esm2015/lib/modules/tokens/types/tokens-message.js.map +0 -1
  146. package/esm2015/lib/modules/wait/wait-adapter.service.js +0 -201
  147. package/esm2015/lib/modules/wait/wait-adapter.service.js.map +0 -1
  148. package/esm2015/lib/modules/wait/wait-page-adapter.service.js +0 -25
  149. package/esm2015/lib/modules/wait/wait-page-adapter.service.js.map +0 -1
  150. package/esm2015/lib/modules/wait/wait-page.component.js +0 -23
  151. package/esm2015/lib/modules/wait/wait-page.component.js.map +0 -1
  152. package/esm2015/lib/modules/wait/wait.component.js +0 -94
  153. package/esm2015/lib/modules/wait/wait.component.js.map +0 -1
  154. package/esm2015/lib/modules/wait/wait.module.js +0 -22
  155. package/esm2015/lib/modules/wait/wait.module.js.map +0 -1
  156. package/esm2015/lib/modules/wait/wait.service.js +0 -164
  157. package/esm2015/lib/modules/wait/wait.service.js.map +0 -1
  158. package/esm2015/skyux-indicators.js +0 -5
  159. package/esm2015/skyux-indicators.js.map +0 -1
  160. package/esm2015/testing/alert-fixture.js +0 -67
  161. package/esm2015/testing/alert-fixture.js.map +0 -1
  162. package/esm2015/testing/label-fixture.js +0 -40
  163. package/esm2015/testing/label-fixture.js.map +0 -1
  164. package/esm2015/testing/public-api.js +0 -4
  165. package/esm2015/testing/public-api.js.map +0 -1
  166. package/esm2015/testing/skyux-indicators-testing.js +0 -5
  167. package/esm2015/testing/skyux-indicators-testing.js.map +0 -1
  168. package/esm2015/testing/wait-fixture.js +0 -24
  169. package/esm2015/testing/wait-fixture.js.map +0 -1
  170. package/fesm2015/skyux-indicators-testing.js.map +0 -1
  171. package/fesm2015/skyux-indicators.js.map +0 -1
@@ -0,0 +1,201 @@
1
+ import { Injectable, RendererFactory2, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ // Need to add the following to classes which contain static methods.
4
+ // See: https://github.com/ng-packagr/ng-packagr/issues/641
5
+ /**
6
+ * @internal
7
+ * @dynamic
8
+ */
9
+ export class SkyWaitAdapterService {
10
+ constructor(rendererFactory) {
11
+ this.rendererFactory = rendererFactory;
12
+ this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
13
+ }
14
+ ngOnDestroy() {
15
+ this.clearListeners();
16
+ }
17
+ setWaitBounds(waitEl) {
18
+ this.renderer.setStyle(waitEl.nativeElement.parentElement, 'position', 'relative');
19
+ }
20
+ removeWaitBounds(waitEl) {
21
+ this.renderer.removeStyle(waitEl.nativeElement.parentElement, 'position');
22
+ }
23
+ setBusyState(waitEl, isFullPage, isWaiting, isNonBlocking = false, waitComponentId) {
24
+ const busyEl = isFullPage
25
+ ? document.body
26
+ : waitEl.nativeElement.parentElement;
27
+ if (!isNonBlocking) {
28
+ if (isWaiting) {
29
+ this.renderer.setAttribute(busyEl, 'aria-busy', 'true');
30
+ // Remove focus from page when full page blocking wait
31
+ if (isFullPage || busyEl.contains(document.activeElement)) {
32
+ this.clearDocumentFocus();
33
+ }
34
+ if (isFullPage) {
35
+ SkyWaitAdapterService.isPageWaitActive = true;
36
+ const endListenerFunc = this.renderer.listen(document.body, 'keydown', (event) => {
37
+ /*istanbul ignore else */
38
+ if (event.key) {
39
+ /* istanbul ignore else */
40
+ if (event.key.toLowerCase() === 'tab') {
41
+ event.target.blur();
42
+ event.preventDefault();
43
+ event.stopPropagation();
44
+ event.stopImmediatePropagation();
45
+ this.clearDocumentFocus();
46
+ }
47
+ }
48
+ });
49
+ SkyWaitAdapterService.busyElements[waitComponentId] = {
50
+ listener: endListenerFunc,
51
+ busyEl: undefined,
52
+ };
53
+ }
54
+ else {
55
+ const endListenerFunc = this.renderer.listen(busyEl, 'focusin', (event) => {
56
+ /* istanbul ignore else */
57
+ if (!isNonBlocking) {
58
+ event.preventDefault();
59
+ event.stopPropagation();
60
+ event.stopImmediatePropagation();
61
+ if (SkyWaitAdapterService.isPageWaitActive) {
62
+ this.clearDocumentFocus();
63
+ }
64
+ else {
65
+ // Propagate tab navigation if attempted into waited element
66
+ const target = event.target;
67
+ target.blur();
68
+ this.focusNextElement(target, this.isShift(event), busyEl);
69
+ }
70
+ }
71
+ });
72
+ SkyWaitAdapterService.busyElements[waitComponentId] = {
73
+ listener: endListenerFunc,
74
+ busyEl: busyEl,
75
+ };
76
+ }
77
+ }
78
+ else {
79
+ this.renderer.removeAttribute(busyEl, 'aria-busy');
80
+ if (isFullPage) {
81
+ SkyWaitAdapterService.isPageWaitActive = false;
82
+ }
83
+ if (waitComponentId in SkyWaitAdapterService.busyElements) {
84
+ SkyWaitAdapterService.busyElements[waitComponentId].listener();
85
+ delete SkyWaitAdapterService.busyElements[waitComponentId];
86
+ }
87
+ }
88
+ }
89
+ }
90
+ focusNextElement(targetElement, shiftKey, busyEl) {
91
+ const focussable = this.getFocussableElements();
92
+ // If shift tab, go in the other direction
93
+ const modifier = shiftKey ? -1 : 1;
94
+ // Find the next navigable element that isn't waiting
95
+ const startingIndex = focussable.indexOf(targetElement);
96
+ let curIndex = startingIndex + modifier;
97
+ while (focussable[curIndex] &&
98
+ this.isElementBusyOrHidden(focussable[curIndex])) {
99
+ curIndex += modifier;
100
+ }
101
+ if (focussable[curIndex] &&
102
+ !this.isElementBusyOrHidden(focussable[curIndex])) {
103
+ focussable[curIndex].focus();
104
+ }
105
+ else {
106
+ // Try wrapping the navigation
107
+ /* istanbul ignore next */
108
+ /* sanity check */
109
+ curIndex = modifier > 0 ? 0 : focussable.length - 1;
110
+ while (curIndex !== startingIndex &&
111
+ focussable[curIndex] &&
112
+ this.isElementBusyOrHidden(focussable[curIndex])) {
113
+ /* istanbul ignore next */
114
+ /* sanity check */
115
+ curIndex += modifier;
116
+ }
117
+ /* istanbul ignore else */
118
+ /* sanity check */
119
+ if (focussable[curIndex] &&
120
+ !this.isElementBusyOrHidden(focussable[curIndex])) {
121
+ focussable[curIndex].focus();
122
+ }
123
+ else {
124
+ // No valid target, wipe focus
125
+ this.clearDocumentFocus();
126
+ }
127
+ }
128
+ // clear focussableElements list
129
+ this.focussableElements = undefined;
130
+ }
131
+ isShift(event) {
132
+ // Determine if shift+tab was used based on element order
133
+ const elements = this.getFocussableElements().filter((elem) => !this.isElementHidden(elem));
134
+ const previousInd = elements.indexOf(event.relatedTarget);
135
+ const currentInd = elements.indexOf(event.target);
136
+ return (previousInd === currentInd + 1 ||
137
+ (previousInd === 0 && currentInd === elements.length - 1) ||
138
+ previousInd > currentInd ||
139
+ !event.relatedTarget);
140
+ }
141
+ isElementHidden(element) {
142
+ const style = window.getComputedStyle(element);
143
+ return style.display === 'none' || style.visibility === 'hidden';
144
+ }
145
+ isElementBusyOrHidden(element) {
146
+ if (this.isElementHidden(element)) {
147
+ return true;
148
+ }
149
+ for (const key of Object.keys(SkyWaitAdapterService.busyElements)) {
150
+ const parentElement = SkyWaitAdapterService.busyElements[key].busyEl;
151
+ if (parentElement && parentElement.contains(element)) {
152
+ return true;
153
+ }
154
+ }
155
+ return false;
156
+ }
157
+ clearDocumentFocus() {
158
+ /* istanbul ignore else */
159
+ if (document.activeElement && document.activeElement.blur) {
160
+ document.activeElement.blur();
161
+ }
162
+ document.body.focus();
163
+ }
164
+ getFocussableElements() {
165
+ // Keep this cached so we can reduce querys
166
+ if (this.focussableElements) {
167
+ return this.focussableElements;
168
+ }
169
+ // Select all possible focussable elements
170
+ const focussableElements = 'a[href], ' +
171
+ 'area[href], ' +
172
+ "input:not([disabled]):not([tabindex='-1']), " +
173
+ "button:not([disabled]):not([tabindex='-1']), " +
174
+ "select:not([disabled]):not([tabindex='-1']), " +
175
+ "textarea:not([disabled]):not([tabindex='-1']), " +
176
+ 'iframe, object, embed, ' +
177
+ "*[tabindex]:not([tabindex='-1']), " +
178
+ '*[contenteditable=true]';
179
+ this.focussableElements = Array.prototype.filter.call(document.body.querySelectorAll(focussableElements), (element) => {
180
+ return (element.offsetWidth > 0 ||
181
+ element.offsetHeight > 0 ||
182
+ element === document.activeElement);
183
+ });
184
+ return this.focussableElements;
185
+ }
186
+ clearListeners() {
187
+ SkyWaitAdapterService.isPageWaitActive = false;
188
+ for (const key of Object.keys(SkyWaitAdapterService.busyElements)) {
189
+ SkyWaitAdapterService.busyElements[key].listener();
190
+ delete SkyWaitAdapterService.busyElements[key];
191
+ }
192
+ }
193
+ }
194
+ SkyWaitAdapterService.isPageWaitActive = false;
195
+ SkyWaitAdapterService.busyElements = {};
196
+ SkyWaitAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
197
+ SkyWaitAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitAdapterService });
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitAdapterService, decorators: [{
199
+ type: Injectable
200
+ }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxFQUdWLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQzs7QUFFdkIscUVBQXFFO0FBQ3JFLDJEQUEyRDtBQUMzRDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8scUJBQXFCO0lBVWhDLFlBQW9CLGVBQWlDO1FBQWpDLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxNQUFrQjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQ2xDLFVBQVUsRUFDVixVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxNQUFrQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sWUFBWSxDQUNqQixNQUFrQixFQUNsQixVQUFtQixFQUNuQixTQUFrQixFQUNsQixhQUFhLEdBQUcsS0FBSyxFQUNyQixlQUF3QjtRQUV4QixNQUFNLE1BQU0sR0FBRyxVQUFVO1lBQ3ZCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUNmLENBQUMsQ0FBQyxNQUFNLENBQUMs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Q0FBQyxFQUNsRCxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ2YsT0FBTyxDQUNMLE9BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDO2dCQUN4QixPQUFPLEtBQUssUUFBUSxDQUFDLGFBQWEsQ0FDbkMsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVPLGNBQWM7UUFDcEIscUJBQXFCLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQy9DLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNqRSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkQsT0FBTyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDOztBQTNQYyxzQ0FBZ0IsR0FBRyxLQUFNLENBQUE7QUFDekIsa0NBQVksR0FFdkIsRUFBRyxDQUFBO2tIQUpJLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIE5lZWQgdG8gYWRkIHRoZSBmb2xsb3dpbmcgdG8gY2xhc3NlcyB3aGljaCBjb250YWluIHN0YXRpYyBtZXRob2RzLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbmctcGFja2Fnci9uZy1wYWNrYWdyL2lzc3Vlcy82NDFcbi8qKlxuICogQGludGVybmFsXG4gKiBAZHluYW1pY1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaXNQYWdlV2FpdEFjdGl2ZSA9IGZhbHNlO1xuICBwcml2YXRlIHN0YXRpYyBidXN5RWxlbWVudHM6IHtcbiAgICBba2V5OiBzdHJpbmddOiB7IGJ1c3lFbDogSFRNTEVsZW1lbnQ7IGxpc3RlbmVyOiBhbnkgfTtcbiAgfSA9IHt9O1xuXG4gIHByaXZhdGUgZm9jdXNzYWJsZUVsZW1lbnRzOiBIVE1MRWxlbWVudFtdO1xuXG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5Mikge1xuICAgIHRoaXMucmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIHNldFdhaXRCb3VuZHMod2FpdEVsOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgIHdhaXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsXG4gICAgICAncG9zaXRpb24nLFxuICAgICAgJ3JlbGF0aXZlJ1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlV2FpdEJvdW5kcyh3YWl0RWw6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHdhaXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsICdwb3NpdGlvbicpO1xuICB9XG5cbiAgcHVibGljIHNldEJ1c3lTdGF0ZShcbiAgICB3YWl0RWw6IEVsZW1lbnRSZWYsXG4gICAgaXNGdWxsUGFnZTogYm9vbGVhbixcbiAgICBpc1dhaXRpbmc6IGJvb2xlYW4sXG4gICAgaXNOb25CbG9ja2luZyA9IGZhbHNlLFxuICAgIHdhaXRDb21wb25lbnRJZD86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBidXN5RWwgPSBpc0Z1bGxQYWdlXG4gICAgICA/IGRvY3VtZW50LmJvZHlcbiAgICAgIDogd2FpdEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcblxuICAgIGlmICghaXNOb25CbG9ja2luZykge1xuICAgICAgaWYgKGlzV2FpdGluZykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShidXN5RWwsICdhcmlhLWJ1c3knLCAndHJ1ZScpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBmb2N1cyBmcm9tIHBhZ2Ugd2hlbiBmdWxsIHBhZ2UgYmxvY2tpbmcgd2FpdFxuICAgICAgICBpZiAoaXNGdWxsUGFnZSB8fCBidXN5RWwuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICB0aGlzLmNsZWFyRG9jdW1lbnRGb2N1cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRnVsbFBhZ2UpIHtcbiAgICAgICAgICBTa3lXYWl0QWRhcHRlclNlcnZpY2UuaXNQYWdlV2FpdEFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgY29uc3QgZW5kTGlzdGVuZXJGdW5jID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndGFiJykge1xuICAgICAgICAgICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckRvY3VtZW50Rm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXSA9IHtcbiAgICAgICAgICAgIGxpc3RlbmVyOiBlbmRMaXN0ZW5lckZ1bmMsXG4gICAgICAgICAgICBidXN5RWw6IHVuZGVmaW5lZCxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGVuZExpc3RlbmVyRnVuYyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgYnVzeUVsLFxuICAgICAgICAgICAgJ2ZvY3VzaW4nLFxuICAgICAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgIGlmICghaXNOb25CbG9ja2luZykge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmlzUGFnZVdhaXRBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJEb2N1bWVudEZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIC8vIFByb3BhZ2F0ZSB0YWIgbmF2aWdhdGlvbiBpZiBhdHRlbXB0ZWQgaW50byB3YWl0ZWQgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgICAgICAgICB0YXJnZXQuYmx1cigpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c05leHRFbGVtZW50KHRhcmdldCwgdGhpcy5pc1NoaWZ0KGV2ZW50KSwgYnVzeUVsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXSA9IHtcbiAgICAgICAgICAgIGxpc3RlbmVyOiBlbmRMaXN0ZW5lckZ1bmMsXG4gICAgICAgICAgICBidXN5RWw6IGJ1c3lFbCxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShidXN5RWwsICdhcmlhLWJ1c3knKTtcblxuICAgICAgICBpZiAoaXNGdWxsUGFnZSkge1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdhaXRDb21wb25lbnRJZCBpbiBTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzKSB7XG4gICAgICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1t3YWl0Q29tcG9uZW50SWRdLmxpc3RlbmVyKCk7XG4gICAgICAgICAgZGVsZXRlIFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNOZXh0RWxlbWVudChcbiAgICB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBzaGlmdEtleTogYm9vbGVhbixcbiAgICBidXN5RWw6IEVsZW1lbnRcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm9jdXNzYWJsZSA9IHRoaXMuZ2V0Rm9jdXNzYWJsZUVsZW1lbnRzKCk7XG5cbiAgICAvLyBJZiBzaGlmdCB0YWIsIGdvIGluIHRoZSBvdGhlciBkaXJlY3Rpb25cbiAgICBjb25zdCBtb2RpZmllciA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xuXG4gICAgLy8gRmluZCB0aGUgbmV4dCBuYXZpZ2FibGUgZWxlbWVudCB0aGF0IGlzbid0IHdhaXRpbmdcbiAgICBjb25zdCBzdGFydGluZ0luZGV4ID0gZm9jdXNzYWJsZS5pbmRleE9mKHRhcmdldEVsZW1lbnQpO1xuICAgIGxldCBjdXJJbmRleCA9IHN0YXJ0aW5nSW5kZXggKyBtb2RpZmllcjtcbiAgICB3aGlsZSAoXG4gICAgICBmb2N1c3NhYmxlW2N1ckluZGV4XSAmJlxuICAgICAgdGhpcy5pc0VsZW1lbnRCdXN5T3JIaWRkZW4oZm9jdXNzYWJsZVtjdXJJbmRleF0pXG4gICAgKSB7XG4gICAgICBjdXJJbmRleCArPSBtb2RpZmllcjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBmb2N1c3NhYmxlW2N1ckluZGV4XSAmJlxuICAgICAgIXRoaXMuaXNFbGVtZW50QnVzeU9ySGlkZGVuKGZvY3Vzc2FibGVbY3VySW5kZXhdKVxuICAgICkge1xuICAgICAgZm9jdXNzYWJsZVtjdXJJbmRleF0uZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHJ5IHdyYXBwaW5nIHRoZSBuYXZpZ2F0aW9uXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICBjdXJJbmRleCA9IG1vZGlmaWVyID4gMCA/IDAgOiBmb2N1c3NhYmxlLmxlbmd0aCAtIDE7XG4gICAgICB3aGlsZSAoXG4gICAgICAgIGN1ckluZGV4ICE9PSBzdGFydGluZ0luZGV4ICYmXG4gICAgICAgIGZvY3Vzc2FibGVbY3VySW5kZXhdICYmXG4gICAgICAgIHRoaXMuaXNFbGVtZW50QnVzeU9ySGlkZGVuKGZvY3Vzc2FibGVbY3VySW5kZXhdKVxuICAgICAgKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICBjdXJJbmRleCArPSBtb2RpZmllcjtcbiAgICAgIH1cblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgaWYgKFxuICAgICAgICBmb2N1c3NhYmxlW2N1ckluZGV4XSAmJlxuICAgICAgICAhdGhpcy5pc0VsZW1lbnRCdXN5T3JIaWRkZW4oZm9jdXNzYWJsZVtjdXJJbmRleF0pXG4gICAgICApIHtcbiAgICAgICAgZm9jdXNzYWJsZVtjdXJJbmRleF0uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vIHZhbGlkIHRhcmdldCwgd2lwZSBmb2N1c1xuICAgICAgICB0aGlzLmNsZWFyRG9jdW1lbnRGb2N1cygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNsZWFyIGZvY3Vzc2FibGVFbGVtZW50cyBsaXN0XG4gICAgdGhpcy5mb2N1c3NhYmxlRWxlbWVudHMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGlzU2hpZnQoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNoaWZ0K3RhYiB3YXMgdXNlZCBiYXNlZCBvbiBlbGVtZW50IG9yZGVyXG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmdldEZvY3Vzc2FibGVFbGVtZW50cygpLmZpbHRlcihcbiAgICAgIChlbGVtKSA9PiAhdGhpcy5pc0VsZW1lbnRIaWRkZW4oZWxlbSlcbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlvdXNJbmQgPSBlbGVtZW50cy5pbmRleE9mKChldmVudCBhcyBhbnkpLnJlbGF0ZWRUYXJnZXQpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmQgPSBlbGVtZW50cy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgcHJldmlvdXNJbmQgPT09IGN1cnJlbnRJbmQgKyAxIHx8XG4gICAgICAocHJldmlvdXNJbmQgPT09IDAgJiYgY3VycmVudEluZCA9PT0gZWxlbWVudHMubGVuZ3RoIC0gMSkgfHxcbiAgICAgIHByZXZpb3VzSW5kID4gY3VycmVudEluZCB8fFxuICAgICAgIShldmVudCBhcyBhbnkpLnJlbGF0ZWRUYXJnZXRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VsZW1lbnRIaWRkZW4oZWxlbWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICByZXR1cm4gc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnIHx8IHN0eWxlLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0VsZW1lbnRCdXN5T3JIaWRkZW4oZWxlbWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNFbGVtZW50SGlkZGVuKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzKSkge1xuICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IFNreVdhaXRBZGFwdGVyU2VydmljZS5idXN5RWxlbWVudHNba2V5XS5idXN5RWw7XG4gICAgICBpZiAocGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50LmNvbnRhaW5zKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRG9jdW1lbnRGb2N1cygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIGFueSkuYmx1cikge1xuICAgICAgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgYW55KS5ibHVyKCk7XG4gICAgfVxuICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9jdXNzYWJsZUVsZW1lbnRzKCk6IEhUTUxFbGVtZW50W10ge1xuICAgIC8vIEtlZXAgdGhpcyBjYWNoZWQgc28gd2UgY2FuIHJlZHVjZSBxdWVyeXNcbiAgICBpZiAodGhpcy5mb2N1c3NhYmxlRWxlbWVudHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvY3Vzc2FibGVFbGVtZW50cztcbiAgICB9XG5cbiAgICAvLyBTZWxlY3QgYWxsIHBvc3NpYmxlIGZvY3Vzc2FibGUgZWxlbWVudHNcbiAgICBjb25zdCBmb2N1c3NhYmxlRWxlbWVudHMgPVxuICAgICAgJ2FbaHJlZl0sICcgK1xuICAgICAgJ2FyZWFbaHJlZl0sICcgK1xuICAgICAgXCJpbnB1dDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0nLTEnXSksIFwiICtcbiAgICAgIFwiYnV0dG9uOm5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PSctMSddKSwgXCIgK1xuICAgICAgXCJzZWxlY3Q6bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Jy0xJ10pLCBcIiArXG4gICAgICBcInRleHRhcmVhOm5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PSctMSddKSwgXCIgK1xuICAgICAgJ2lmcmFtZSwgb2JqZWN0LCBlbWJlZCwgJyArXG4gICAgICBcIipbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Jy0xJ10pLCBcIiArXG4gICAgICAnKltjb250ZW50ZWRpdGFibGU9dHJ1ZV0nO1xuXG4gICAgdGhpcy5mb2N1c3NhYmxlRWxlbWVudHMgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoXG4gICAgICBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoZm9jdXNzYWJsZUVsZW1lbnRzKSxcbiAgICAgIChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBlbGVtZW50Lm9mZnNldFdpZHRoID4gMCB8fFxuICAgICAgICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0ID4gMCB8fFxuICAgICAgICAgIGVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiB0aGlzLmZvY3Vzc2FibGVFbGVtZW50cztcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmlzUGFnZVdhaXRBY3RpdmUgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhTa3lXYWl0QWRhcHRlclNlcnZpY2UuYnVzeUVsZW1lbnRzKSkge1xuICAgICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1trZXldLmxpc3RlbmVyKCk7XG4gICAgICBkZWxldGUgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmJ1c3lFbGVtZW50c1trZXldO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,25 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @internal
5
+ */
6
+ export class SkyWaitPageAdapterService {
7
+ addPageWaitEl() {
8
+ document.body.appendChild(document.createElement('sky-wait-page'));
9
+ }
10
+ removePageWaitEl() {
11
+ const waitEl = document.querySelector('sky-wait-page');
12
+ if (waitEl) {
13
+ document.body.removeChild(waitEl);
14
+ }
15
+ }
16
+ }
17
+ SkyWaitPageAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitPageAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
+ SkyWaitPageAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitPageAdapterService, providedIn: 'root' });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitPageAdapterService, decorators: [{
20
+ type: Injectable,
21
+ args: [{
22
+ providedIn: 'root',
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1wYWdlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3NyYy9saWIvbW9kdWxlcy93YWl0L3dhaXQtcGFnZS1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8seUJBQXlCO0lBQzdCLGFBQWE7UUFDbEIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sRUFBRTtZQUNWLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzs7c0hBVlUseUJBQXlCOzBIQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5V2FpdFBhZ2VBZGFwdGVyU2VydmljZSB7XG4gIHB1YmxpYyBhZGRQYWdlV2FpdEVsKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2t5LXdhaXQtcGFnZScpKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVQYWdlV2FpdEVsKCk6IHZvaWQge1xuICAgIGNvbnN0IHdhaXRFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NreS13YWl0LXBhZ2UnKTtcbiAgICBpZiAod2FpdEVsKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHdhaXRFbCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./wait.component";
4
+ /**
5
+ * @internal
6
+ */
7
+ export class SkyWaitPageComponent {
8
+ }
9
+ SkyWaitPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ SkyWaitPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyWaitPageComponent, selector: "sky-wait-page", inputs: { hasBlockingWait: "hasBlockingWait", hasNonBlockingWait: "hasNonBlockingWait" }, ngImport: i0, template: "<div class=\"sky-wait-page\">\n <sky-wait\n [isFullPage]=\"true\"\n [isNonBlocking]=\"true\"\n [isWaiting]=\"hasNonBlockingWait\"\n >\n </sky-wait>\n <sky-wait [isFullPage]=\"true\" [isWaiting]=\"hasBlockingWait\"> </sky-wait>\n</div>\n", styles: [".sky-wait-page ::ng-deep .sky-wait-mask-loading-fixed{z-index:2000}\n"], components: [{ type: i1.SkyWaitComponent, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitPageComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'sky-wait-page', template: "<div class=\"sky-wait-page\">\n <sky-wait\n [isFullPage]=\"true\"\n [isNonBlocking]=\"true\"\n [isWaiting]=\"hasNonBlockingWait\"\n >\n </sky-wait>\n <sky-wait [isFullPage]=\"true\" [isWaiting]=\"hasBlockingWait\"> </sky-wait>\n</div>\n", styles: [".sky-wait-page ::ng-deep .sky-wait-mask-loading-fixed{z-index:2000}\n"] }]
14
+ }], propDecorators: { hasBlockingWait: [{
15
+ type: Input
16
+ }], hasNonBlockingWait: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3NyYy9saWIvbW9kdWxlcy93YWl0L3dhaXQtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVqRDs7R0FFRztBQU1ILE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7cUdBQXBCLG9CQUFvQiwrSUNWakMsMlBBU0E7MkZEQ2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGVBQWU7OEJBTWxCLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktd2FpdC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dhaXQtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dhaXQtcGFnZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lXYWl0UGFnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoYXNCbG9ja2luZ1dhaXQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhhc05vbkJsb2NraW5nV2FpdDogYm9vbGVhbjtcbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktd2FpdC1wYWdlXCI+XG4gIDxza3ktd2FpdFxuICAgIFtpc0Z1bGxQYWdlXT1cInRydWVcIlxuICAgIFtpc05vbkJsb2NraW5nXT1cInRydWVcIlxuICAgIFtpc1dhaXRpbmddPVwiaGFzTm9uQmxvY2tpbmdXYWl0XCJcbiAgPlxuICA8L3NreS13YWl0PlxuICA8c2t5LXdhaXQgW2lzRnVsbFBhZ2VdPVwidHJ1ZVwiIFtpc1dhaXRpbmddPVwiaGFzQmxvY2tpbmdXYWl0XCI+IDwvc2t5LXdhaXQ+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,89 @@
1
+ import { Component, ElementRef, Input, Optional } from '@angular/core';
2
+ import { SkyLibResourcesService } from '@skyux/i18n';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { SkyWaitAdapterService } from './wait-adapter.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./wait-adapter.service";
7
+ import * as i2 from "@skyux/i18n";
8
+ import * as i3 from "@angular/common";
9
+ let nextId = 0;
10
+ export class SkyWaitComponent {
11
+ constructor(elRef, adapterService, resourceService) {
12
+ this.elRef = elRef;
13
+ this.adapterService = adapterService;
14
+ this.resourceService = resourceService;
15
+ this.ariaLabelStream = new BehaviorSubject('');
16
+ this.id = `sky-wait-${++nextId}`;
17
+ }
18
+ /**
19
+ * When set to `true`, wait indication appears on the parent element of the `sky-wait` component.
20
+ */
21
+ set isWaiting(value) {
22
+ if (value && !this._isFullPage) {
23
+ this.adapterService.setWaitBounds(this.elRef);
24
+ }
25
+ else if (!value && !this._isFullPage) {
26
+ this.adapterService.removeWaitBounds(this.elRef);
27
+ }
28
+ this.adapterService.setBusyState(this.elRef, this.isFullPage, value, this.isNonBlocking, this.id);
29
+ this._isWaiting = value;
30
+ }
31
+ get isWaiting() {
32
+ return this._isWaiting;
33
+ }
34
+ /**
35
+ * When set to `true`, wait indication appears on the page level instead of the
36
+ * parent element level. We recommend that you use the `beginBlockingPageWait` or
37
+ * `beginNonBlockingPageWait` functions of the `SkyWaitService` instead of setting this
38
+ * on the component level.
39
+ * @default false
40
+ */
41
+ set isFullPage(value) {
42
+ /* istanbul ignore else: untestable */
43
+ if (value) {
44
+ this.adapterService.removeWaitBounds(this.elRef);
45
+ }
46
+ else if (!value && this._isWaiting) {
47
+ this.adapterService.setWaitBounds(this.elRef);
48
+ }
49
+ this._isFullPage = value;
50
+ }
51
+ get isFullPage() {
52
+ return this._isFullPage;
53
+ }
54
+ ngOnInit() {
55
+ this.publishAriaLabel();
56
+ }
57
+ publishAriaLabel() {
58
+ if (this.ariaLabel) {
59
+ this.ariaLabelStream.next(this.ariaLabel);
60
+ return;
61
+ }
62
+ /* istanbul ignore else */
63
+ if (this.resourceService) {
64
+ const type = this.isFullPage ? '_page' : '';
65
+ const blocking = this.isNonBlocking ? '' : '_blocking';
66
+ const key = `skyux_wait${type}${blocking}_aria_alt_text`;
67
+ this.resourceService.getString(key).subscribe((value) => {
68
+ this.ariaLabelStream.next(value);
69
+ });
70
+ }
71
+ }
72
+ }
73
+ SkyWaitComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitComponent, deps: [{ token: i0.ElementRef }, { token: i1.SkyWaitAdapterService }, { token: i2.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
74
+ SkyWaitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyWaitComponent, selector: "sky-wait", inputs: { ariaLabel: "ariaLabel", isWaiting: "isWaiting", isFullPage: "isFullPage", isNonBlocking: "isNonBlocking" }, providers: [SkyWaitAdapterService], ngImport: i0, template: "<div class=\"sky-wait-container\">\n <div\n *ngIf=\"isWaiting\"\n class=\"sky-wait-mask\"\n [attr.aria-label]=\"ariaLabelStream | async\"\n [ngClass]=\"{\n 'sky-wait-mask-loading-fixed': isFullPage,\n 'sky-wait-mask-loading-non-blocking': isNonBlocking,\n 'sky-wait-mask-loading-blocking': !isNonBlocking\n }\"\n >\n <div class=\"sky-wait\">\n <div class=\"sky-wait-double-bounce1\"></div>\n <div class=\"sky-wait-double-bounce2\"></div>\n </div>\n </div>\n</div>\n", styles: [".sky-wait-mask-loading-blocking{margin:auto;position:absolute;top:0;right:0;left:0;bottom:0;background-color:#ffffffb3;z-index:1000}.sky-wait-mask-loading-fixed{position:fixed}.sky-wait{width:50px;height:50px;margin-top:-25px;margin-left:-25px;position:absolute;top:50%;left:50%}.sky-wait-mask-loading-non-blocking{bottom:0}.sky-wait-mask-loading-non-blocking .sky-wait{top:auto;right:auto;bottom:0;left:0;margin-left:auto;margin-right:auto}.sky-wait-double-bounce1,.sky-wait-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#72bf44;opacity:.6;position:absolute;top:0;left:0;animation:sk-bounce 2s infinite ease-in-out}.sky-wait-double-bounce2{animation-delay:-1s}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.sky-wait-container.sky-wait-active{position:relative}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i3.AsyncPipe } });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'sky-wait', providers: [SkyWaitAdapterService], template: "<div class=\"sky-wait-container\">\n <div\n *ngIf=\"isWaiting\"\n class=\"sky-wait-mask\"\n [attr.aria-label]=\"ariaLabelStream | async\"\n [ngClass]=\"{\n 'sky-wait-mask-loading-fixed': isFullPage,\n 'sky-wait-mask-loading-non-blocking': isNonBlocking,\n 'sky-wait-mask-loading-blocking': !isNonBlocking\n }\"\n >\n <div class=\"sky-wait\">\n <div class=\"sky-wait-double-bounce1\"></div>\n <div class=\"sky-wait-double-bounce2\"></div>\n </div>\n </div>\n</div>\n", styles: [".sky-wait-mask-loading-blocking{margin:auto;position:absolute;top:0;right:0;left:0;bottom:0;background-color:#ffffffb3;z-index:1000}.sky-wait-mask-loading-fixed{position:fixed}.sky-wait{width:50px;height:50px;margin-top:-25px;margin-left:-25px;position:absolute;top:50%;left:50%}.sky-wait-mask-loading-non-blocking{bottom:0}.sky-wait-mask-loading-non-blocking .sky-wait{top:auto;right:auto;bottom:0;left:0;margin-left:auto;margin-right:auto}.sky-wait-double-bounce1,.sky-wait-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#72bf44;opacity:.6;position:absolute;top:0;left:0;animation:sk-bounce 2s infinite ease-in-out}.sky-wait-double-bounce2{animation-delay:-1s}@keyframes sk-bounce{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.sky-wait-container.sky-wait-active{position:relative}\n"] }]
78
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyWaitAdapterService }, { type: i2.SkyLibResourcesService, decorators: [{
79
+ type: Optional
80
+ }] }]; }, propDecorators: { ariaLabel: [{
81
+ type: Input
82
+ }], isWaiting: [{
83
+ type: Input
84
+ }], isFullPage: [{
85
+ type: Input
86
+ }], isNonBlocking: [{
87
+ type: Input
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3NyYy9saWIvbW9kdWxlcy93YWl0L3dhaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFL0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBUWYsTUFBTSxPQUFPLGdCQUFnQjtJQTJFM0IsWUFDVSxLQUFpQixFQUNqQixjQUFxQyxFQUN6QixlQUF1QztRQUZuRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFUdEQsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUVqRCxPQUFFLEdBQUcsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBUWpDLENBQUM7SUFuRUo7O09BRUc7SUFDSCxJQUNXLFNBQVMsQ0FBQyxLQUFjO1FBQ2pDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0M7YUFBTSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUM5QixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxVQUFVLEVBQ2YsS0FBSyxFQUNMLElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksQ0FBQyxFQUFFLENBQ1IsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUNXLFVBQVUsQ0FBQyxLQUFjO1FBQ2xDLHNDQUFzQztRQUN0QyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xEO2FBQU0sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFzQk0sUUFBUTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQyxPQUFPO1NBQ1I7UUFFRCwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1lBQ3ZELE1BQU0sR0FBRyxHQUFHLGFBQWEsSUFBSSxHQUFHLFFBQVEsZ0JBQWdCLENBQUM7WUFDekQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQzlELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs2R0FwR1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0IseUpBRmhCLENBQUMscUJBQXFCLENBQUMsMEJDYnBDLG9nQkFpQkE7MkZERmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLFVBQVUsYUFHVCxDQUFDLHFCQUFxQixDQUFDOzswQkFnRi9CLFFBQVE7NENBcEVKLFNBQVM7c0JBRGYsS0FBSztnQkFPSyxTQUFTO3NCQURuQixLQUFLO2dCQStCSyxVQUFVO3NCQURwQixLQUFLO2dCQXNCQyxhQUFhO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVdhaXRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vd2FpdC1hZGFwdGVyLnNlcnZpY2UnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXdhaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2FpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dhaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5V2FpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gQVJJQSBsYWJlbCBmb3IgdGhlIHdhaXQgaWNvbiB3aGlsZSBhbiBlbGVtZW50IG9yIHBhZ2UgbG9hZHMuXG4gICAqIFRoaXMgc2V0cyB0aGUgaWNvbidzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogVGhlIGRlZmF1bHQgdmFsdWUgdmFyaWVzIGJhc2VkIG9uIHdoZXRoZXIgdGhlIHdhaXQgaXMgZm9yIGFuIGVsZW1lbnQgb3IgYSBwYWdlXG4gICAqIGFuZCB3aGV0aGVyIGl0IGlzIGEgYmxvY2tpbmcgd2FpdC4gRm9yIGV4YW1wbGUsIHRoZSBkZWZhdWx0IGZvciBhIHBhZ2UtYmxvY2tpbmdcbiAgICogd2FpdCBpcyBcIlBhZ2UgbG9hZGluZy4gUGxlYXNlIHdhaXQuXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgLCB3YWl0IGluZGljYXRpb24gYXBwZWFycyBvbiB0aGUgcGFyZW50IGVsZW1lbnQgb2YgdGhlIGBza3ktd2FpdGAgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc1dhaXRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgJiYgIXRoaXMuX2lzRnVsbFBhZ2UpIHtcbiAgICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0V2FpdEJvdW5kcyh0aGlzLmVsUmVmKTtcbiAgICB9IGVsc2UgaWYgKCF2YWx1ZSAmJiAhdGhpcy5faXNGdWxsUGFnZSkge1xuICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5yZW1vdmVXYWl0Qm91bmRzKHRoaXMuZWxSZWYpO1xuICAgIH1cblxuICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0QnVzeVN0YXRlKFxuICAgICAgdGhpcy5lbFJlZixcbiAgICAgIHRoaXMuaXNGdWxsUGFnZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdGhpcy5pc05vbkJsb2NraW5nLFxuICAgICAgdGhpcy5pZFxuICAgICk7XG5cbiAgICB0aGlzLl9pc1dhaXRpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNXYWl0aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc1dhaXRpbmc7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgLCB3YWl0IGluZGljYXRpb24gYXBwZWFycyBvbiB0aGUgcGFnZSBsZXZlbCBpbnN0ZWFkIG9mIHRoZVxuICAgKiBwYXJlbnQgZWxlbWVudCBsZXZlbC4gV2UgcmVjb21tZW5kIHRoYXQgeW91IHVzZSB0aGUgYGJlZ2luQmxvY2tpbmdQYWdlV2FpdGAgb3JcbiAgICogYGJlZ2luTm9uQmxvY2tpbmdQYWdlV2FpdGAgZnVuY3Rpb25zIG9mIHRoZSBgU2t5V2FpdFNlcnZpY2VgIGluc3RlYWQgb2Ygc2V0dGluZyB0aGlzXG4gICAqIG9uIHRoZSBjb21wb25lbnQgbGV2ZWwuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzRnVsbFBhZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogdW50ZXN0YWJsZSAqL1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5yZW1vdmVXYWl0Qm91bmRzKHRoaXMuZWxSZWYpO1xuICAgIH0gZWxzZSBpZiAoIXZhbHVlICYmIHRoaXMuX2lzV2FpdGluZykge1xuICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRXYWl0Qm91bmRzKHRoaXMuZWxSZWYpO1xuICAgIH1cblxuICAgIHRoaXMuX2lzRnVsbFBhZ2UgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNGdWxsUGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNGdWxsUGFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHdhaXQgaW5kaWNhdGlvbiBhcHBlYXJzIGluIHRoZSBib3R0b20gbGVmdCBjb3JuZXIgb2YgdGhlIGVsZW1lbnRcbiAgICogaW5zdGVhZCBvZiBoaWRpbmcgdGhlIGVudGlyZSBwYXJlbnQgZWxlbWVudC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc05vbkJsb2NraW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhcmlhTGFiZWxTdHJlYW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIHByaXZhdGUgaWQgPSBgc2t5LXdhaXQtJHsrK25leHRJZH1gO1xuICBwcml2YXRlIF9pc0Z1bGxQYWdlOiBib29sZWFuO1xuICBwcml2YXRlIF9pc1dhaXRpbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGFkYXB0ZXJTZXJ2aWNlOiBTa3lXYWl0QWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZXNvdXJjZVNlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnB1Ymxpc2hBcmlhTGFiZWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgcHVibGlzaEFyaWFMYWJlbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hcmlhTGFiZWwpIHtcbiAgICAgIHRoaXMuYXJpYUxhYmVsU3RyZWFtLm5leHQodGhpcy5hcmlhTGFiZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMucmVzb3VyY2VTZXJ2aWNlKSB7XG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5pc0Z1bGxQYWdlID8gJ19wYWdlJyA6ICcnO1xuICAgICAgY29uc3QgYmxvY2tpbmcgPSB0aGlzLmlzTm9uQmxvY2tpbmcgPyAnJyA6ICdfYmxvY2tpbmcnO1xuICAgICAgY29uc3Qga2V5ID0gYHNreXV4X3dhaXQke3R5cGV9JHtibG9ja2luZ31fYXJpYV9hbHRfdGV4dGA7XG4gICAgICB0aGlzLnJlc291cmNlU2VydmljZS5nZXRTdHJpbmcoa2V5KS5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5hcmlhTGFiZWxTdHJlYW0ubmV4dCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktd2FpdC1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiaXNXYWl0aW5nXCJcbiAgICBjbGFzcz1cInNreS13YWl0LW1hc2tcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsU3RyZWFtIHwgYXN5bmNcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktd2FpdC1tYXNrLWxvYWRpbmctZml4ZWQnOiBpc0Z1bGxQYWdlLFxuICAgICAgJ3NreS13YWl0LW1hc2stbG9hZGluZy1ub24tYmxvY2tpbmcnOiBpc05vbkJsb2NraW5nLFxuICAgICAgJ3NreS13YWl0LW1hc2stbG9hZGluZy1ibG9ja2luZyc6ICFpc05vbkJsb2NraW5nXG4gICAgfVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXdhaXRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktd2FpdC1kb3VibGUtYm91bmNlMVwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNreS13YWl0LWRvdWJsZS1ib3VuY2UyXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { SkyI18nModule } from '@skyux/i18n';
4
+ import { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';
5
+ import { SkyWaitPageComponent } from './wait-page.component';
6
+ import { SkyWaitComponent } from './wait.component';
7
+ import * as i0 from "@angular/core";
8
+ export class SkyWaitModule {
9
+ }
10
+ SkyWaitModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ SkyWaitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitModule, declarations: [SkyWaitComponent, SkyWaitPageComponent], imports: [CommonModule, SkyI18nModule, SkyIndicatorsResourcesModule], exports: [SkyWaitComponent] });
12
+ SkyWaitModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitModule, imports: [[CommonModule, SkyI18nModule, SkyIndicatorsResourcesModule]] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ declarations: [SkyWaitComponent, SkyWaitPageComponent],
17
+ imports: [CommonModule, SkyI18nModule, SkyIndicatorsResourcesModule],
18
+ exports: [SkyWaitComponent],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU9wRCxNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhLGlCQUpULGdCQUFnQixFQUFFLG9CQUFvQixhQUMzQyxZQUFZLEVBQUUsYUFBYSxFQUFFLDRCQUE0QixhQUN6RCxnQkFBZ0I7MkdBRWYsYUFBYSxZQUhmLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSw0QkFBNEIsQ0FBQzsyRkFHekQsYUFBYTtrQkFMekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSw0QkFBNEIsQ0FBQztvQkFDcEUsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTa3lJbmRpY2F0b3JzUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1pbmRpY2F0b3JzLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lXYWl0UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vd2FpdC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lXYWl0Q29tcG9uZW50IH0gZnJvbSAnLi93YWl0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreVdhaXRDb21wb25lbnQsIFNreVdhaXRQYWdlQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2t5STE4bk1vZHVsZSwgU2t5SW5kaWNhdG9yc1Jlc291cmNlc01vZHVsZV0sXG4gIGV4cG9ydHM6IFtTa3lXYWl0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5V2FpdE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,164 @@
1
+ import { ApplicationRef, ComponentFactoryResolver, Injectable, } from '@angular/core';
2
+ import { SkyAppWindowRef } from '@skyux/core';
3
+ import { defer as observableDefer } from 'rxjs';
4
+ import { finalize } from 'rxjs/operators';
5
+ import { SkyWaitPageAdapterService } from './wait-page-adapter.service';
6
+ import { SkyWaitPageComponent } from './wait-page.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./wait-page-adapter.service";
9
+ import * as i2 from "@skyux/core";
10
+ // Need to add the following to classes which contain static methods.
11
+ // See: https://github.com/ng-packagr/ng-packagr/issues/641
12
+ // @dynamic
13
+ export class SkyWaitService {
14
+ constructor(resolver, appRef, waitAdapter, windowSvc) {
15
+ this.resolver = resolver;
16
+ this.appRef = appRef;
17
+ this.waitAdapter = waitAdapter;
18
+ this.windowSvc = windowSvc;
19
+ }
20
+ /**
21
+ * Starts a blocking page wait on the page.
22
+ */
23
+ beginBlockingPageWait() {
24
+ this.beginPageWait(true);
25
+ }
26
+ /**
27
+ * Starts a non-blocking page wait on the page.
28
+ */
29
+ beginNonBlockingPageWait() {
30
+ this.beginPageWait(false);
31
+ }
32
+ /**
33
+ * Ends a blocking page wait on the page. Blocking page wait indication
34
+ * is removed when all running blocking page waits are ended.
35
+ */
36
+ endBlockingPageWait() {
37
+ this.endPageWait(true);
38
+ }
39
+ /**
40
+ * Ends a non-blocking page wait on the page. Non-blocking page wait indication
41
+ * is removed when all running non-blocking page waits are ended.
42
+ */
43
+ endNonBlockingPageWait() {
44
+ this.endPageWait(false);
45
+ }
46
+ /**
47
+ * Clears all blocking and non-blocking page waits on the page.
48
+ */
49
+ clearAllPageWaits() {
50
+ this.clearPageWait(true);
51
+ this.clearPageWait(false);
52
+ }
53
+ /**
54
+ * @internal
55
+ */
56
+ dispose() {
57
+ if (SkyWaitService.waitComponent) {
58
+ SkyWaitService.waitComponent = undefined;
59
+ SkyWaitService.pageWaitBlockingCount = 0;
60
+ SkyWaitService.pageWaitNonBlockingCount = 0;
61
+ this.waitAdapter.removePageWaitEl();
62
+ }
63
+ }
64
+ /**
65
+ * Launches a page wait and automatically stops when the specific asynchronous event completes.
66
+ */
67
+ blockingWrap(observable) {
68
+ return observableDefer(() => {
69
+ this.beginBlockingPageWait();
70
+ return observable.pipe(finalize(() => this.endBlockingPageWait()));
71
+ });
72
+ }
73
+ /**
74
+ * Launches a non-blocking page wait and automatically stops when the specific
75
+ * asynchronous event completes.
76
+ */
77
+ nonBlockingWrap(observable) {
78
+ return observableDefer(() => {
79
+ this.beginNonBlockingPageWait();
80
+ return observable.pipe(finalize(() => this.endNonBlockingPageWait()));
81
+ });
82
+ }
83
+ setWaitComponentProperties(isBlocking) {
84
+ if (isBlocking) {
85
+ SkyWaitService.waitComponent.hasBlockingWait = true;
86
+ SkyWaitService.pageWaitBlockingCount++;
87
+ }
88
+ else {
89
+ SkyWaitService.waitComponent.hasNonBlockingWait = true;
90
+ SkyWaitService.pageWaitNonBlockingCount++;
91
+ }
92
+ }
93
+ beginPageWait(isBlocking) {
94
+ if (!SkyWaitService.waitComponent) {
95
+ /*
96
+ Dynamic component creation needs to be done in a timeout to prevent ApplicationRef from
97
+ crashing when wait service is called in Angular lifecycle functions.
98
+ */
99
+ this.windowSvc.nativeWindow.setTimeout(() => {
100
+ // Ensuring here that we recheck this after the setTimeout is over so that we don't clash
101
+ // with any other waits that are created.
102
+ if (!SkyWaitService.waitComponent) {
103
+ const factory = this.resolver.resolveComponentFactory(SkyWaitPageComponent);
104
+ this.waitAdapter.addPageWaitEl();
105
+ const cmpRef = this.appRef.bootstrap(factory);
106
+ SkyWaitService.waitComponent = cmpRef.instance;
107
+ }
108
+ this.setWaitComponentProperties(isBlocking);
109
+ });
110
+ }
111
+ else {
112
+ this.setWaitComponentProperties(isBlocking);
113
+ }
114
+ }
115
+ endPageWait(isBlocking) {
116
+ /*
117
+ Needs to yield so that wait creation can finish
118
+ before it is dismissed in the event of a race.
119
+ */
120
+ this.windowSvc.nativeWindow.setTimeout(() => {
121
+ if (SkyWaitService.waitComponent) {
122
+ if (isBlocking) {
123
+ if (SkyWaitService.pageWaitBlockingCount > 0) {
124
+ SkyWaitService.pageWaitBlockingCount--;
125
+ }
126
+ if (SkyWaitService.pageWaitBlockingCount < 1) {
127
+ SkyWaitService.waitComponent.hasBlockingWait = false;
128
+ }
129
+ }
130
+ else {
131
+ if (SkyWaitService.pageWaitNonBlockingCount > 0) {
132
+ SkyWaitService.pageWaitNonBlockingCount--;
133
+ }
134
+ if (SkyWaitService.pageWaitNonBlockingCount < 1) {
135
+ SkyWaitService.waitComponent.hasNonBlockingWait = false;
136
+ }
137
+ }
138
+ }
139
+ });
140
+ }
141
+ clearPageWait(isBlocking) {
142
+ if (SkyWaitService.waitComponent) {
143
+ if (isBlocking) {
144
+ SkyWaitService.pageWaitBlockingCount = 0;
145
+ SkyWaitService.waitComponent.hasBlockingWait = false;
146
+ }
147
+ else {
148
+ SkyWaitService.pageWaitNonBlockingCount = 0;
149
+ SkyWaitService.waitComponent.hasNonBlockingWait = false;
150
+ }
151
+ }
152
+ }
153
+ }
154
+ SkyWaitService.pageWaitBlockingCount = 0;
155
+ SkyWaitService.pageWaitNonBlockingCount = 0;
156
+ SkyWaitService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i1.SkyWaitPageAdapterService }, { token: i2.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Injectable });
157
+ SkyWaitService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitService, providedIn: 'root' });
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyWaitService, decorators: [{
159
+ type: Injectable,
160
+ args: [{
161
+ providedIn: 'root',
162
+ }]
163
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i1.SkyWaitPageAdapterService }, { type: i2.SkyAppWindowRef }]; } });
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2luZGljYXRvcnMvc3JjL2xpYi9tb2R1bGVzL3dhaXQvd2FpdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsd0JBQXdCLEVBQ3hCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sRUFBYyxLQUFLLElBQUksZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUU3RCxxRUFBcUU7QUFDckUsMkRBQTJEO0FBQzNELFdBQVc7QUFJWCxNQUFNLE9BQU8sY0FBYztJQUt6QixZQUNVLFFBQWtDLEVBQ2xDLE1BQXNCLEVBQ3RCLFdBQXNDLEVBQ3RDLFNBQTBCO1FBSDFCLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUEyQjtRQUN0QyxjQUFTLEdBQVQsU0FBUyxDQUFpQjtJQUNqQyxDQUFDO0lBRUo7O09BRUc7SUFDSSxxQkFBcUI7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSSx3QkFBd0I7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMs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IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgSW5qZWN0YWJsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lBcHBXaW5kb3dSZWYgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIGRlZmVyIGFzIG9ic2VydmFibGVEZWZlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVdhaXRQYWdlQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3dhaXQtcGFnZS1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5V2FpdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3dhaXQtcGFnZS5jb21wb25lbnQnO1xuXG4vLyBOZWVkIHRvIGFkZCB0aGUgZm9sbG93aW5nIHRvIGNsYXNzZXMgd2hpY2ggY29udGFpbiBzdGF0aWMgbWV0aG9kcy5cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL25nLXBhY2thZ3IvbmctcGFja2Fnci9pc3N1ZXMvNjQxXG4vLyBAZHluYW1pY1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreVdhaXRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgd2FpdENvbXBvbmVudDogU2t5V2FpdFBhZ2VDb21wb25lbnQ7XG4gIHByaXZhdGUgc3RhdGljIHBhZ2VXYWl0QmxvY2tpbmdDb3VudCA9IDA7XG4gIHByaXZhdGUgc3RhdGljIHBhZ2VXYWl0Tm9uQmxvY2tpbmdDb3VudCA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIHdhaXRBZGFwdGVyOiBTa3lXYWl0UGFnZUFkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2luZG93U3ZjOiBTa3lBcHBXaW5kb3dSZWZcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBTdGFydHMgYSBibG9ja2luZyBwYWdlIHdhaXQgb24gdGhlIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgYmVnaW5CbG9ja2luZ1BhZ2VXYWl0KCk6IHZvaWQge1xuICAgIHRoaXMuYmVnaW5QYWdlV2FpdCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgYSBub24tYmxvY2tpbmcgcGFnZSB3YWl0IG9uIHRoZSBwYWdlLlxuICAgKi9cbiAgcHVibGljIGJlZ2luTm9uQmxvY2tpbmdQYWdlV2FpdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJlZ2luUGFnZVdhaXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuZHMgYSBibG9ja2luZyBwYWdlIHdhaXQgb24gdGhlIHBhZ2UuIEJsb2NraW5nIHBhZ2Ugd2FpdCBpbmRpY2F0aW9uXG4gICAqIGlzIHJlbW92ZWQgd2hlbiBhbGwgcnVubmluZyBibG9ja2luZyBwYWdlIHdhaXRzIGFyZSBlbmRlZC5cbiAgICovXG4gIHB1YmxpYyBlbmRCbG9ja2luZ1BhZ2VXYWl0KCk6IHZvaWQge1xuICAgIHRoaXMuZW5kUGFnZVdhaXQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogRW5kcyBhIG5vbi1ibG9ja2luZyBwYWdlIHdhaXQgb24gdGhlIHBhZ2UuIE5vbi1ibG9ja2luZyBwYWdlIHdhaXQgaW5kaWNhdGlvblxuICAgKiBpcyByZW1vdmVkIHdoZW4gYWxsIHJ1bm5pbmcgbm9uLWJsb2NraW5nIHBhZ2Ugd2FpdHMgYXJlIGVuZGVkLlxuICAgKi9cbiAgcHVibGljIGVuZE5vbkJsb2NraW5nUGFnZVdhaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lbmRQYWdlV2FpdChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBibG9ja2luZyBhbmQgbm9uLWJsb2NraW5nIHBhZ2Ugd2FpdHMgb24gdGhlIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgY2xlYXJBbGxQYWdlV2FpdHMoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclBhZ2VXYWl0KHRydWUpO1xuICAgIHRoaXMuY2xlYXJQYWdlV2FpdChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoU2t5V2FpdFNlcnZpY2Uud2FpdENvbXBvbmVudCkge1xuICAgICAgU2t5V2FpdFNlcnZpY2Uud2FpdENvbXBvbmVudCA9IHVuZGVmaW5lZDtcbiAgICAgIFNreVdhaXRTZXJ2aWNlLnBhZ2VXYWl0QmxvY2tpbmdDb3VudCA9IDA7XG4gICAgICBTa3lXYWl0U2VydmljZS5wYWdlV2FpdE5vbkJsb2NraW5nQ291bnQgPSAwO1xuICAgICAgdGhpcy53YWl0QWRhcHRlci5yZW1vdmVQYWdlV2FpdEVsKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExhdW5jaGVzIGEgcGFnZSB3YWl0IGFuZCBhdXRvbWF0aWNhbGx5IHN0b3BzIHdoZW4gdGhlIHNwZWNpZmljIGFzeW5jaHJvbm91cyBldmVudCBjb21wbGV0ZXMuXG4gICAqL1xuICBwdWJsaWMgYmxvY2tpbmdXcmFwPFQ+KG9ic2VydmFibGU6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZURlZmVyKCgpID0+IHtcbiAgICAgIHRoaXMuYmVnaW5CbG9ja2luZ1BhZ2VXYWl0KCk7XG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZW5kQmxvY2tpbmdQYWdlV2FpdCgpKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoZXMgYSBub24tYmxvY2tpbmcgcGFnZSB3YWl0IGFuZCBhdXRvbWF0aWNhbGx5IHN0b3BzIHdoZW4gdGhlIHNwZWNpZmljXG4gICAqIGFzeW5jaHJvbm91cyBldmVudCBjb21wbGV0ZXMuXG4gICAqL1xuICBwdWJsaWMgbm9uQmxvY2tpbmdXcmFwPFQ+KG9ic2VydmFibGU6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZURlZmVyKCgpID0+IHtcbiAgICAgIHRoaXMuYmVnaW5Ob25CbG9ja2luZ1BhZ2VXYWl0KCk7XG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZW5kTm9uQmxvY2tpbmdQYWdlV2FpdCgpKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFdhaXRDb21wb25lbnRQcm9wZXJ0aWVzKGlzQmxvY2tpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNCbG9ja2luZykge1xuICAgICAgU2t5V2FpdFNlcnZpY2Uud2FpdENvbXBvbmVudC5oYXNCbG9ja2luZ1dhaXQgPSB0cnVlO1xuICAgICAgU2t5V2FpdFNlcnZpY2UucGFnZVdhaXRCbG9ja2luZ0NvdW50Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIFNreVdhaXRTZXJ2aWNlLndhaXRDb21wb25lbnQuaGFzTm9uQmxvY2tpbmdXYWl0ID0gdHJ1ZTtcbiAgICAgIFNreVdhaXRTZXJ2aWNlLnBhZ2VXYWl0Tm9uQmxvY2tpbmdDb3VudCsrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmVnaW5QYWdlV2FpdChpc0Jsb2NraW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCFTa3lXYWl0U2VydmljZS53YWl0Q29tcG9uZW50KSB7XG4gICAgICAvKlxuICAgICAgICAgIER5bmFtaWMgY29tcG9uZW50IGNyZWF0aW9uIG5lZWRzIHRvIGJlIGRvbmUgaW4gYSB0aW1lb3V0IHRvIHByZXZlbnQgQXBwbGljYXRpb25SZWYgZnJvbVxuICAgICAgICAgIGNyYXNoaW5nIHdoZW4gd2FpdCBzZXJ2aWNlIGlzIGNhbGxlZCBpbiBBbmd1bGFyIGxpZmVjeWNsZSBmdW5jdGlvbnMuXG4gICAgICAqL1xuICAgICAgdGhpcy53aW5kb3dTdmMubmF0aXZlV2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAvLyBFbnN1cmluZyBoZXJlIHRoYXQgd2UgcmVjaGVjayB0aGlzIGFmdGVyIHRoZSBzZXRUaW1lb3V0IGlzIG92ZXIgc28gdGhhdCB3ZSBkb24ndCBjbGFzaFxuICAgICAgICAvLyB3aXRoIGFueSBvdGhlciB3YWl0cyB0aGF0IGFyZSBjcmVhdGVkLlxuICAgICAgICBpZiAoIVNreVdhaXRTZXJ2aWNlLndhaXRDb21wb25lbnQpIHtcbiAgICAgICAgICBjb25zdCBmYWN0b3J5ID1cbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoU2t5V2FpdFBhZ2VDb21wb25lbnQpO1xuICAgICAgICAgIHRoaXMud2FpdEFkYXB0ZXIuYWRkUGFnZVdhaXRFbCgpO1xuXG4gICAgICAgICAgY29uc3QgY21wUmVmID0gdGhpcy5hcHBSZWYuYm9vdHN0cmFwKGZhY3RvcnkpO1xuICAgICAgICAgIFNreVdhaXRTZXJ2aWNlLndhaXRDb21wb25lbnQgPSBjbXBSZWYuaW5zdGFuY2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFdhaXRDb21wb25lbnRQcm9wZXJ0aWVzKGlzQmxvY2tpbmcpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0V2FpdENvbXBvbmVudFByb3BlcnRpZXMoaXNCbG9ja2luZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbmRQYWdlV2FpdChpc0Jsb2NraW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgLypcbiAgICAgICAgTmVlZHMgdG8geWllbGQgc28gdGhhdCB3YWl0IGNyZWF0aW9uIGNhbiBmaW5pc2hcbiAgICAgICAgYmVmb3JlIGl0IGlzIGRpc21pc3NlZCBpbiB0aGUgZXZlbnQgb2YgYSByYWNlLlxuICAgICovXG4gICAgdGhpcy53aW5kb3dTdmMubmF0aXZlV2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFNreVdhaXRTZXJ2aWNlLndhaXRDb21wb25lbnQpIHtcbiAgICAgICAgaWYgKGlzQmxvY2tpbmcpIHtcbiAgICAgICAgICBpZiAoU2t5V2FpdFNlcnZpY2UucGFnZVdhaXRCbG9ja2luZ0NvdW50ID4gMCkge1xuICAgICAgICAgICAgU2t5V2FpdFNlcnZpY2UucGFnZVdhaXRCbG9ja2luZ0NvdW50LS07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFNreVdhaXRTZXJ2aWNlLnBhZ2VXYWl0QmxvY2tpbmdDb3VudCA8IDEpIHtcbiAgICAgICAgICAgIFNreVdhaXRTZXJ2aWNlLndhaXRDb21wb25lbnQuaGFzQmxvY2tpbmdXYWl0ID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChTa3lXYWl0U2VydmljZS5wYWdlV2FpdE5vbkJsb2NraW5nQ291bnQgPiAwKSB7XG4gICAgICAgICAgICBTa3lXYWl0U2VydmljZS5wYWdlV2FpdE5vbkJsb2NraW5nQ291bnQtLTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoU2t5V2FpdFNlcnZpY2UucGFnZVdhaXROb25CbG9ja2luZ0NvdW50IDwgMSkge1xuICAgICAgICAgICAgU2t5V2FpdFNlcnZpY2Uud2FpdENvbXBvbmVudC5oYXNOb25CbG9ja2luZ1dhaXQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJQYWdlV2FpdChpc0Jsb2NraW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKFNreVdhaXRTZXJ2aWNlLndhaXRDb21wb25lbnQpIHtcbiAgICAgIGlmIChpc0Jsb2NraW5nKSB7XG4gICAgICAgIFNreVdhaXRTZXJ2aWNlLnBhZ2VXYWl0QmxvY2tpbmdDb3VudCA9IDA7XG4gICAgICAgIFNreVdhaXRTZXJ2aWNlLndhaXRDb21wb25lbnQuaGFzQmxvY2tpbmdXYWl0ID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBTa3lXYWl0U2VydmljZS5wYWdlV2FpdE5vbkJsb2NraW5nQ291bnQgPSAwO1xuICAgICAgICBTa3lXYWl0U2VydmljZS53YWl0Q29tcG9uZW50Lmhhc05vbkJsb2NraW5nV2FpdCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtaW5kaWNhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3NyYy9za3l1eC1pbmRpY2F0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19