@skyux/indicators 11.31.0 → 12.0.0-alpha.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.
Files changed (71) hide show
  1. package/documentation.json +878 -866
  2. package/fesm2022/skyux-indicators.mjs +120 -115
  3. package/fesm2022/skyux-indicators.mjs.map +1 -1
  4. package/package.json +13 -17
  5. package/esm2022/index.mjs +0 -38
  6. package/esm2022/lib/modules/alert/alert.component.mjs +0 -133
  7. package/esm2022/lib/modules/alert/alert.module.mjs +0 -32
  8. package/esm2022/lib/modules/chevron/chevron.component.mjs +0 -78
  9. package/esm2022/lib/modules/chevron/chevron.module.mjs +0 -32
  10. package/esm2022/lib/modules/expansion-indicator/expansion-indicator.component.mjs +0 -31
  11. package/esm2022/lib/modules/expansion-indicator/expansion-indicator.module.mjs +0 -19
  12. package/esm2022/lib/modules/illustration/illustration-resolver.service.mjs +0 -13
  13. package/esm2022/lib/modules/illustration/illustration-size.mjs +0 -2
  14. package/esm2022/lib/modules/illustration/illustration.component.mjs +0 -45
  15. package/esm2022/lib/modules/illustration/illustration.module.mjs +0 -16
  16. package/esm2022/lib/modules/key-info/key-info-label.component.mjs +0 -21
  17. package/esm2022/lib/modules/key-info/key-info-layout-type.mjs +0 -2
  18. package/esm2022/lib/modules/key-info/key-info-value.component.mjs +0 -18
  19. package/esm2022/lib/modules/key-info/key-info.component.mjs +0 -30
  20. package/esm2022/lib/modules/key-info/key-info.module.mjs +0 -34
  21. package/esm2022/lib/modules/label/label-type.mjs +0 -2
  22. package/esm2022/lib/modules/label/label.component.mjs +0 -117
  23. package/esm2022/lib/modules/label/label.module.mjs +0 -20
  24. package/esm2022/lib/modules/shared/indicator-description-type.mjs +0 -2
  25. package/esm2022/lib/modules/shared/indicator-icon-type.mjs +0 -2
  26. package/esm2022/lib/modules/shared/indicator-icon-utility.mjs +0 -40
  27. package/esm2022/lib/modules/shared/indicator-icon.mjs +0 -2
  28. package/esm2022/lib/modules/shared/sky-indicators-resources.module.mjs +0 -76
  29. package/esm2022/lib/modules/status-indicator/status-indicator.component.mjs +0 -110
  30. package/esm2022/lib/modules/status-indicator/status-indicator.module.mjs +0 -39
  31. package/esm2022/lib/modules/text-highlight/text-highlight.directive.mjs +0 -152
  32. package/esm2022/lib/modules/text-highlight/text-highlight.module.mjs +0 -18
  33. package/esm2022/lib/modules/tokens/token.component.mjs +0 -120
  34. package/esm2022/lib/modules/tokens/tokens.component.mjs +0 -331
  35. package/esm2022/lib/modules/tokens/tokens.module.mjs +0 -35
  36. package/esm2022/lib/modules/tokens/types/token-selected-event-args.mjs +0 -2
  37. package/esm2022/lib/modules/tokens/types/token.mjs +0 -2
  38. package/esm2022/lib/modules/tokens/types/tokens-message-type.mjs +0 -24
  39. package/esm2022/lib/modules/tokens/types/tokens-message.mjs +0 -2
  40. package/esm2022/lib/modules/wait/wait-adapter.service.mjs +0 -226
  41. package/esm2022/lib/modules/wait/wait-page.component.mjs +0 -19
  42. package/esm2022/lib/modules/wait/wait.component.mjs +0 -173
  43. package/esm2022/lib/modules/wait/wait.module.mjs +0 -16
  44. package/esm2022/lib/modules/wait/wait.service.mjs +0 -159
  45. package/esm2022/skyux-indicators.mjs +0 -5
  46. package/esm2022/testing/legacy/alert-fixture.mjs +0 -70
  47. package/esm2022/testing/legacy/label-fixture.mjs +0 -42
  48. package/esm2022/testing/legacy/wait-fixture.mjs +0 -28
  49. package/esm2022/testing/modules/alert/alert-harness-filters.mjs +0 -2
  50. package/esm2022/testing/modules/alert/alert-harness.mjs +0 -112
  51. package/esm2022/testing/modules/chevron/chevron-harness.mjs +0 -38
  52. package/esm2022/testing/modules/help-inline/help-inline-harness-filters.mjs +0 -2
  53. package/esm2022/testing/modules/help-inline/help-inline-harness.mjs +0 -25
  54. package/esm2022/testing/modules/illustration/illustration-harness-filters.mjs +0 -2
  55. package/esm2022/testing/modules/illustration/illustration-harness.mjs +0 -54
  56. package/esm2022/testing/modules/key-info/key-info-harness-filters.mjs +0 -2
  57. package/esm2022/testing/modules/key-info/key-info-harness.mjs +0 -43
  58. package/esm2022/testing/modules/key-info/key-info-label-harness.mjs +0 -18
  59. package/esm2022/testing/modules/key-info/key-info-value-harness.mjs +0 -18
  60. package/esm2022/testing/modules/label/label-harness-filters.mjs +0 -2
  61. package/esm2022/testing/modules/label/label-harness.mjs +0 -88
  62. package/esm2022/testing/modules/status-indicator/status-indicator-harness-filters.mjs +0 -2
  63. package/esm2022/testing/modules/status-indicator/status-indicator-harness.mjs +0 -119
  64. package/esm2022/testing/modules/tokens/token-harness-filters.mjs +0 -2
  65. package/esm2022/testing/modules/tokens/token-harness.mjs +0 -63
  66. package/esm2022/testing/modules/tokens/tokens-harness-filters.mjs +0 -2
  67. package/esm2022/testing/modules/tokens/tokens-harness.mjs +0 -45
  68. package/esm2022/testing/modules/wait/wait-harness-filters.mjs +0 -2
  69. package/esm2022/testing/modules/wait/wait-harness.mjs +0 -60
  70. package/esm2022/testing/public-api.mjs +0 -15
  71. package/esm2022/testing/skyux-indicators-testing.mjs +0 -5
@@ -1,226 +0,0 @@
1
- var _a;
2
- import { Injectable, } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- const busyElements = {};
5
- // Need to add the following to classes which contain static methods.
6
- // See: https://github.com/ng-packagr/ng-packagr/issues/641
7
- /**
8
- * @internal
9
- * @dynamic
10
- */
11
- export class SkyWaitAdapterService {
12
- static { this.isPageWaitActive = false; }
13
- #focusableElements;
14
- #renderer;
15
- constructor(rendererFactory) {
16
- this.#renderer = rendererFactory.createRenderer(undefined, null);
17
- }
18
- ngOnDestroy() {
19
- this.#clearListeners();
20
- }
21
- setWaitBounds(waitEl) {
22
- this.#renderer.setStyle(waitEl.nativeElement.parentElement, 'position', 'relative');
23
- }
24
- removeWaitBounds(waitEl) {
25
- this.#renderer.removeStyle(waitEl.nativeElement.parentElement, 'position');
26
- }
27
- setBusyState(waitEl, isFullPage, isWaiting, isNonBlocking, waitComponentId) {
28
- const busyEl = isFullPage
29
- ? document.body
30
- : waitEl.nativeElement.parentElement;
31
- if (!isNonBlocking) {
32
- if (isWaiting) {
33
- let restoreFocusElement = undefined;
34
- let restoreFocusCheckElement = undefined;
35
- this.#renderer.setAttribute(busyEl, 'aria-busy', 'true');
36
- // Remove focus from page when full page blocking wait
37
- if (isFullPage || busyEl.contains(document.activeElement)) {
38
- if (document.activeElement !== document.body) {
39
- restoreFocusElement = document.activeElement;
40
- }
41
- this.#clearDocumentFocus();
42
- restoreFocusCheckElement = document.activeElement;
43
- }
44
- if (isFullPage) {
45
- _a.isPageWaitActive = true;
46
- const endListenerFunc = this.#renderer.listen(document.body, 'keydown', (event) => {
47
- /*istanbul ignore else */
48
- if (event.key) {
49
- /* istanbul ignore else */
50
- if (event.key.toLowerCase() === 'tab') {
51
- event.target.blur();
52
- event.preventDefault();
53
- event.stopPropagation();
54
- event.stopImmediatePropagation();
55
- this.#clearDocumentFocus();
56
- }
57
- }
58
- });
59
- if (waitComponentId) {
60
- busyElements[waitComponentId] = {
61
- listener: endListenerFunc,
62
- busyEl: undefined,
63
- restoreFocusElement,
64
- restoreFocusCheckElement,
65
- };
66
- }
67
- }
68
- else {
69
- const endListenerFunc = this.#renderer.listen(busyEl, 'focusin', (event) => {
70
- /* istanbul ignore else */
71
- if (!isNonBlocking) {
72
- event.preventDefault();
73
- event.stopPropagation();
74
- event.stopImmediatePropagation();
75
- if (_a.isPageWaitActive) {
76
- this.#clearDocumentFocus();
77
- }
78
- else {
79
- // Propagate tab navigation if attempted into waited element
80
- const target = event.target;
81
- if (target) {
82
- target.blur();
83
- this.#focusNextElement(target, this.#isShift(event));
84
- }
85
- }
86
- }
87
- });
88
- if (waitComponentId) {
89
- busyElements[waitComponentId] = {
90
- listener: endListenerFunc,
91
- busyEl,
92
- restoreFocusElement,
93
- restoreFocusCheckElement,
94
- };
95
- }
96
- }
97
- }
98
- else {
99
- this.#renderer.removeAttribute(busyEl, 'aria-busy');
100
- if (isFullPage) {
101
- _a.isPageWaitActive = false;
102
- }
103
- if (waitComponentId && waitComponentId in busyElements) {
104
- const busyElement = busyElements[waitComponentId];
105
- busyElement.listener();
106
- // If there is a restore focus element and the focus has not moved, restore focus.
107
- if (busyElement.restoreFocusCheckElement === document.activeElement) {
108
- busyElement.restoreFocusElement?.focus();
109
- }
110
- delete busyElements[waitComponentId];
111
- }
112
- }
113
- }
114
- }
115
- #focusNextElement(targetElement, shiftKey) {
116
- const focusable = this.#getFocusableElements();
117
- // If shift tab, go in the other direction
118
- const modifier = shiftKey ? -1 : 1;
119
- // Find the next navigable element that isn't waiting
120
- const startingIndex = focusable.indexOf(targetElement);
121
- let curIndex = startingIndex + modifier;
122
- while (focusable[curIndex] &&
123
- this.#isElementBusyOrHidden(focusable[curIndex])) {
124
- curIndex += modifier;
125
- }
126
- if (focusable[curIndex] &&
127
- !this.#isElementBusyOrHidden(focusable[curIndex])) {
128
- focusable[curIndex].focus();
129
- }
130
- else {
131
- // Try wrapping the navigation
132
- /* istanbul ignore next */
133
- /* sanity check */
134
- curIndex = modifier > 0 ? 0 : focusable.length - 1;
135
- while (curIndex !== startingIndex &&
136
- focusable[curIndex] &&
137
- this.#isElementBusyOrHidden(focusable[curIndex])) {
138
- /* istanbul ignore next */
139
- /* sanity check */
140
- curIndex += modifier;
141
- }
142
- /* istanbul ignore else */
143
- /* sanity check */
144
- if (focusable[curIndex] &&
145
- !this.#isElementBusyOrHidden(focusable[curIndex])) {
146
- focusable[curIndex].focus();
147
- }
148
- else {
149
- // No valid target, wipe focus
150
- this.#clearDocumentFocus();
151
- }
152
- }
153
- // clear focusableElements list
154
- this.#focusableElements = undefined;
155
- }
156
- #isShift(event) {
157
- // Determine if shift+tab was used based on element order
158
- const elements = this.#getFocusableElements().filter((elem) => !this.#isElementHidden(elem));
159
- const previousInd = elements.indexOf(event.relatedTarget);
160
- const currentInd = elements.indexOf(event.target);
161
- return (previousInd === currentInd + 1 ||
162
- (previousInd === 0 && currentInd === elements.length - 1) ||
163
- previousInd > currentInd ||
164
- !event.relatedTarget);
165
- }
166
- #isElementHidden(element) {
167
- const style = window.getComputedStyle(element);
168
- return style.display === 'none' || style.visibility === 'hidden';
169
- }
170
- #isElementBusyOrHidden(element) {
171
- if (this.#isElementHidden(element)) {
172
- return true;
173
- }
174
- for (const key of Object.keys(busyElements)) {
175
- const parentElement = busyElements[key].busyEl;
176
- if (parentElement && parentElement.contains(element)) {
177
- return true;
178
- }
179
- }
180
- return false;
181
- }
182
- #clearDocumentFocus() {
183
- const activeElement = document.activeElement;
184
- /* istanbul ignore else */
185
- if (activeElement) {
186
- activeElement.blur();
187
- }
188
- document.body.focus();
189
- }
190
- #getFocusableElements() {
191
- // Keep this cached so we can reduce queries
192
- if (this.#focusableElements) {
193
- return this.#focusableElements;
194
- }
195
- // Select all possible focusable elements
196
- const focusableElements = 'a[href], ' +
197
- 'area[href], ' +
198
- "input:not([disabled]):not([tabindex='-1']), " +
199
- "button:not([disabled]):not([tabindex='-1']), " +
200
- "select:not([disabled]):not([tabindex='-1']), " +
201
- "textarea:not([disabled]):not([tabindex='-1']), " +
202
- 'iframe, object, embed, ' +
203
- "*[tabindex]:not([tabindex='-1']), " +
204
- '*[contenteditable=true]';
205
- this.#focusableElements = Array.prototype.filter.call(document.body.querySelectorAll(focusableElements), (element) => {
206
- return (element.offsetWidth > 0 ||
207
- element.offsetHeight > 0 ||
208
- element === document.activeElement);
209
- });
210
- return this.#focusableElements;
211
- }
212
- #clearListeners() {
213
- _a.isPageWaitActive = false;
214
- for (const key of Object.keys(busyElements)) {
215
- busyElements[key].listener();
216
- delete busyElements[key];
217
- }
218
- }
219
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
220
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitAdapterService }); }
221
- }
222
- _a = SkyWaitAdapterService;
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitAdapterService, decorators: [{
224
- type: Injectable
225
- }], ctorParameters: () => [{ type: i0.RendererFactory2 }] });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFVBQVUsR0FJWCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkIsTUFBTSxZQUFZLEdBUWQsRUFBRSxDQUFDO0FBRVAscUVBQXFFO0FBQ3JFLDJEQUEyRDtBQUMzRDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8scUJBQXFCO2FBQ2xCLHFCQUFnQixHQUFHLEtBQUssQUFBUixDQUFTO0lBRXZDLGtCQUFrQixDQUE0QjtJQUM5QyxTQUFTLENBQVk7SUFFckIsWUFBWSxlQUFpQztRQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sYUFBYSxDQUFDLE1BQWtCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFDbEMsVUFBVSxFQUNWLFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVNLGdCQUFnQixDQUFDLE1BQWtCO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxZQUFZLENBQ2pCLE1BQWtCLEVBQ2xCLFVBQW1CLEVBQ25CLFNBQWtCLEVBQ2xCLGFBQXNCLEVBQ3RCLGVBQXdCO1FBRXhCLE1BQU0sTUFBTSxHQUFHLFVBQVU7WUFDdkIsQ0FBQyxDQUFDLFFB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QUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsRUFBcUIsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDL0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDNUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDOytHQW5SVSxxQkFBcUI7bUhBQXJCLHFCQUFxQjs7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IGJ1c3lFbGVtZW50czogUmVjb3JkPFxuICBzdHJpbmcsXG4gIHtcbiAgICBidXN5RWw6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICAgIHJlc3RvcmVGb2N1c0VsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICByZXN0b3JlRm9jdXNDaGVja0VsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgfVxuPiA9IHt9O1xuXG4vLyBOZWVkIHRvIGFkZCB0aGUgZm9sbG93aW5nIHRvIGNsYXNzZXMgd2hpY2ggY29udGFpbiBzdGF0aWMgbWV0aG9kcy5cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL25nLXBhY2thZ3IvbmctcGFja2Fnci9pc3N1ZXMvNjQxXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGR5bmFtaWNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVdhaXRBZGFwdGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdGF0aWMgaXNQYWdlV2FpdEFjdGl2ZSA9IGZhbHNlO1xuXG4gICNmb2N1c2FibGVFbGVtZW50czogSFRNTEVsZW1lbnRbXSB8IHVuZGVmaW5lZDtcbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyKSB7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNjbGVhckxpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIHNldFdhaXRCb3VuZHMod2FpdEVsOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICB3YWl0RWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LFxuICAgICAgJ3Bvc2l0aW9uJyxcbiAgICAgICdyZWxhdGl2ZScsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVXYWl0Qm91bmRzKHdhaXRFbDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZVN0eWxlKHdhaXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsICdwb3NpdGlvbicpO1xuICB9XG5cbiAgcHVibGljIHNldEJ1c3lTdGF0ZShcbiAgICB3YWl0RWw6IEVsZW1lbnRSZWYsXG4gICAgaXNGdWxsUGFnZTogYm9vbGVhbixcbiAgICBpc1dhaXRpbmc6IGJvb2xlYW4sXG4gICAgaXNOb25CbG9ja2luZzogYm9vbGVhbixcbiAgICB3YWl0Q29tcG9uZW50SWQ/OiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGJ1c3lFbCA9IGlzRnVsbFBhZ2VcbiAgICAgID8gZG9jdW1lbnQuYm9keVxuICAgICAgOiB3YWl0RWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgaWYgKCFpc05vbkJsb2NraW5nKSB7XG4gICAgICBpZiAoaXNXYWl0aW5nKSB7XG4gICAgICAgIGxldCByZXN0b3JlRm9jdXNFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHJlc3RvcmVGb2N1c0NoZWNrRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShidXN5RWwsICdhcmlhLWJ1c3knLCAndHJ1ZScpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBmb2N1cyBmcm9tIHBhZ2Ugd2hlbiBmdWxsIHBhZ2UgYmxvY2tpbmcgd2FpdFxuICAgICAgICBpZiAoaXNGdWxsUGFnZSB8fCBidXN5RWwuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgICAgcmVzdG9yZUZvY3VzRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuI2NsZWFyRG9jdW1lbnRGb2N1cygpO1xuICAgICAgICAgIHJlc3RvcmVGb2N1c0NoZWNrRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGdWxsUGFnZSkge1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBlbmRMaXN0ZW5lckZ1bmMgPSB0aGlzLiNyZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndGFiJykge1xuICAgICAgICAgICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuYmx1cigpO1xuICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLiNjbGVhckRvY3VtZW50Rm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmICh3YWl0Q29tcG9uZW50SWQpIHtcbiAgICAgICAgICAgIGJ1c3lFbGVtZW50c1t3YWl0Q29tcG9uZW50SWRdID0ge1xuICAgICAgICAgICAgICBsaXN0ZW5lcjogZW5kTGlzdGVuZXJGdW5jLFxuICAgICAgICAgICAgICBidXN5RWw6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgcmVzdG9yZUZvY3VzRWxlbWVudCxcbiAgICAgICAgICAgICAgcmVzdG9yZUZvY3VzQ2hlY2tFbGVtZW50LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgZW5kTGlzdGVuZXJGdW5jID0gdGhpcy4jcmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgYnVzeUVsLFxuICAgICAgICAgICAgJ2ZvY3VzaW4nLFxuICAgICAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgIGlmICghaXNOb25CbG9ja2luZykge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmlzUGFnZVdhaXRBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuI2NsZWFyRG9jdW1lbnRGb2N1cygpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAvLyBQcm9wYWdhdGUgdGFiIG5hdmlnYXRpb24gaWYgYXR0ZW1wdGVkIGludG8gd2FpdGVkIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYmx1cigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNmb2N1c05leHRFbGVtZW50KHRhcmdldCwgdGhpcy4jaXNTaGlmdChldmVudCkpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKHdhaXRDb21wb25lbnRJZCkge1xuICAgICAgICAgICAgYnVzeUVsZW1lbnRzW3dhaXRDb21wb25lbnRJZF0gPSB7XG4gICAgICAgICAgICAgIGxpc3RlbmVyOiBlbmRMaXN0ZW5lckZ1bmMsXG4gICAgICAgICAgICAgIGJ1c3lFbCxcbiAgICAgICAgICAgICAgcmVzdG9yZUZvY3VzRWxlbWVudCxcbiAgICAgICAgICAgICAgcmVzdG9yZUZvY3VzQ2hlY2tFbGVtZW50LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShidXN5RWwsICdhcmlhLWJ1c3knKTtcblxuICAgICAgICBpZiAoaXNGdWxsUGFnZSkge1xuICAgICAgICAgIFNreVdhaXRBZGFwdGVyU2VydmljZS5pc1BhZ2VXYWl0QWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAod2FpdENvbXBvbmVudElkICYmIHdhaXRDb21wb25lbnRJZCBpbiBidXN5RWxlbWVudHMpIHtcbiAgICAgICAgICBjb25zdCBidXN5RWxlbWVudCA9IGJ1c3lFbGVtZW50c1t3YWl0Q29tcG9uZW50SWRdO1xuXG4gICAgICAgICAgYnVzeUVsZW1lbnQubGlzdGVuZXIoKTtcblxuICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcmVzdG9yZSBmb2N1cyBlbGVtZW50IGFuZCB0aGUgZm9jdXMgaGFzIG5vdCBtb3ZlZCwgcmVzdG9yZSBmb2N1cy5cbiAgICAgICAgICBpZiAoYnVzeUVsZW1lbnQucmVzdG9yZUZvY3VzQ2hlY2tFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBidXN5RWxlbWVudC5yZXN0b3JlRm9jdXNFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRlbGV0ZSBidXN5RWxlbWVudHNbd2FpdENvbXBvbmVudElkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNmb2N1c05leHRFbGVtZW50KHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzaGlmdEtleTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IHRoaXMuI2dldEZvY3VzYWJsZUVsZW1lbnRzKCk7XG5cbiAgICAvLyBJZiBzaGlmdCB0YWIsIGdvIGluIHRoZSBvdGhlciBkaXJlY3Rpb25cbiAgICBjb25zdCBtb2RpZmllciA9IHNoaWZ0S2V5ID8gLTEgOiAxO1xuXG4gICAgLy8gRmluZCB0aGUgbmV4dCBuYXZpZ2FibGUgZWxlbWVudCB0aGF0IGlzbid0IHdhaXRpbmdcbiAgICBjb25zdCBzdGFydGluZ0luZGV4ID0gZm9jdXNhYmxlLmluZGV4T2YodGFyZ2V0RWxlbWVudCk7XG4gICAgbGV0IGN1ckluZGV4ID0gc3RhcnRpbmdJbmRleCArIG1vZGlmaWVyO1xuICAgIHdoaWxlIChcbiAgICAgIGZvY3VzYWJsZVtjdXJJbmRleF0gJiZcbiAgICAgIHRoaXMuI2lzRWxlbWVudEJ1c3lPckhpZGRlbihmb2N1c2FibGVbY3VySW5kZXhdKVxuICAgICkge1xuICAgICAgY3VySW5kZXggKz0gbW9kaWZpZXI7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgZm9jdXNhYmxlW2N1ckluZGV4XSAmJlxuICAgICAgIXRoaXMuI2lzRWxlbWVudEJ1c3lPckhpZGRlbihmb2N1c2FibGVbY3VySW5kZXhdKVxuICAgICkge1xuICAgICAgZm9jdXNhYmxlW2N1ckluZGV4XS5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcnkgd3JhcHBpbmcgdGhlIG5hdmlnYXRpb25cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAgIGN1ckluZGV4ID0gbW9kaWZpZXIgPiAwID8gMCA6IGZvY3VzYWJsZS5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKFxuICAgICAgICBjdXJJbmRleCAhPT0gc3RhcnRpbmdJbmRleCAmJlxuICAgICAgICBmb2N1c2FibGVbY3VySW5kZXhdICYmXG4gICAgICAgIHRoaXMuI2lzRWxlbWVudEJ1c3lPckhpZGRlbihmb2N1c2FibGVbY3VySW5kZXhdKVxuICAgICAgKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICBjdXJJbmRleCArPSBtb2RpZmllcjtcbiAgICAgIH1cblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgaWYgKFxuICAgICAgICBmb2N1c2FibGVbY3VySW5kZXhdICYmXG4gICAgICAgICF0aGlzLiNpc0VsZW1lbnRCdXN5T3JIaWRkZW4oZm9jdXNhYmxlW2N1ckluZGV4XSlcbiAgICAgICkge1xuICAgICAgICBmb2N1c2FibGVbY3VySW5kZXhdLmZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBObyB2YWxpZCB0YXJnZXQsIHdpcGUgZm9jdXNcbiAgICAgICAgdGhpcy4jY2xlYXJEb2N1bWVudEZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gY2xlYXIgZm9jdXNhYmxlRWxlbWVudHMgbGlzdFxuICAgIHRoaXMuI2ZvY3VzYWJsZUVsZW1lbnRzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgI2lzU2hpZnQoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNoaWZ0K3RhYiB3YXMgdXNlZCBiYXNlZCBvbiBlbGVtZW50IG9yZGVyXG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLiNnZXRGb2N1c2FibGVFbGVtZW50cygpLmZpbHRlcihcbiAgICAgIChlbGVtKSA9PiAhdGhpcy4jaXNFbGVtZW50SGlkZGVuKGVsZW0pLFxuICAgICk7XG5cbiAgICBjb25zdCBwcmV2aW91c0luZCA9IGVsZW1lbnRzLmluZGV4T2YoKGV2ZW50IGFzIGFueSkucmVsYXRlZFRhcmdldCk7XG4gICAgY29uc3QgY3VycmVudEluZCA9IGVsZW1lbnRzLmluZGV4T2YoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcblxuICAgIHJldHVybiAoXG4gICAgICBwcmV2aW91c0luZCA9PT0gY3VycmVudEluZCArIDEgfHxcbiAgICAgIChwcmV2aW91c0luZCA9PT0gMCAmJiBjdXJyZW50SW5kID09PSBlbGVtZW50cy5sZW5ndGggLSAxKSB8fFxuICAgICAgcHJldmlvdXNJbmQgPiBjdXJyZW50SW5kIHx8XG4gICAgICAhKGV2ZW50IGFzIGFueSkucmVsYXRlZFRhcmdldFxuICAgICk7XG4gIH1cblxuICAjaXNFbGVtZW50SGlkZGVuKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICByZXR1cm4gc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnIHx8IHN0eWxlLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nO1xuICB9XG5cbiAgI2lzRWxlbWVudEJ1c3lPckhpZGRlbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNpc0VsZW1lbnRIaWRkZW4oZWxlbWVudCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGJ1c3lFbGVtZW50cykpIHtcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBidXN5RWxlbWVudHNba2V5XS5idXN5RWw7XG4gICAgICBpZiAocGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50LmNvbnRhaW5zKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAjY2xlYXJEb2N1bWVudEZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoYWN0aXZlRWxlbWVudCkge1xuICAgICAgYWN0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYm9keS5mb2N1cygpO1xuICB9XG5cbiAgI2dldEZvY3VzYWJsZUVsZW1lbnRzKCk6IEhUTUxFbGVtZW50W10ge1xuICAgIC8vIEtlZXAgdGhpcyBjYWNoZWQgc28gd2UgY2FuIHJlZHVjZSBxdWVyaWVzXG4gICAgaWYgKHRoaXMuI2ZvY3VzYWJsZUVsZW1lbnRzKSB7XG4gICAgICByZXR1cm4gdGhpcy4jZm9jdXNhYmxlRWxlbWVudHM7XG4gICAgfVxuXG4gICAgLy8gU2VsZWN0IGFsbCBwb3NzaWJsZSBmb2N1c2FibGUgZWxlbWVudHNcbiAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9XG4gICAgICAnYVtocmVmXSwgJyArXG4gICAgICAnYXJlYVtocmVmXSwgJyArXG4gICAgICBcImlucHV0Om5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PSctMSddKSwgXCIgK1xuICAgICAgXCJidXR0b246bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Jy0xJ10pLCBcIiArXG4gICAgICBcInNlbGVjdDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0nLTEnXSksIFwiICtcbiAgICAgIFwidGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Jy0xJ10pLCBcIiArXG4gICAgICAnaWZyYW1lLCBvYmplY3QsIGVtYmVkLCAnICtcbiAgICAgIFwiKlt0YWJpbmRleF06bm90KFt0YWJpbmRleD0nLTEnXSksIFwiICtcbiAgICAgICcqW2NvbnRlbnRlZGl0YWJsZT10cnVlXSc7XG5cbiAgICB0aGlzLiNmb2N1c2FibGVFbGVtZW50cyA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChcbiAgICAgIGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbChmb2N1c2FibGVFbGVtZW50cyksXG4gICAgICAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBlbGVtZW50Lm9mZnNldFdpZHRoID4gMCB8fFxuICAgICAgICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0ID4gMCB8fFxuICAgICAgICAgIGVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy4jZm9jdXNhYmxlRWxlbWVudHM7XG4gIH1cblxuICAjY2xlYXJMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlLmlzUGFnZVdhaXRBY3RpdmUgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhidXN5RWxlbWVudHMpKSB7XG4gICAgICBidXN5RWxlbWVudHNba2V5XS5saXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIGJ1c3lFbGVtZW50c1trZXldO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,19 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { SkyWaitComponent } from './wait.component';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * @internal
6
- */
7
- export class SkyWaitPageComponent {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SkyWaitPageComponent, isStandalone: true, selector: "sky-wait-page", inputs: { hasBlockingWait: "hasBlockingWait", hasNonBlockingWait: "hasNonBlockingWait" }, ngImport: i0, template: "<div class=\"sky-wait-page\">\n <sky-wait\n data-sky-id=\"page-wait-non-blocking\"\n [isFullPage]=\"true\"\n [isNonBlocking]=\"true\"\n [isWaiting]=\"hasNonBlockingWait\"\n />\n <sky-wait\n data-sky-id=\"page-wait-blocking\"\n [isFullPage]=\"true\"\n [isWaiting]=\"hasBlockingWait\"\n />\n</div>\n", styles: [".sky-wait-page ::ng-deep .sky-wait-mask-loading-fixed{z-index:2000}\n"], dependencies: [{ kind: "component", type: SkyWaitComponent, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }] }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitPageComponent, decorators: [{
12
- type: Component,
13
- args: [{ standalone: true, selector: 'sky-wait-page', imports: [SkyWaitComponent], template: "<div class=\"sky-wait-page\">\n <sky-wait\n data-sky-id=\"page-wait-non-blocking\"\n [isFullPage]=\"true\"\n [isNonBlocking]=\"true\"\n [isWaiting]=\"hasNonBlockingWait\"\n />\n <sky-wait\n data-sky-id=\"page-wait-blocking\"\n [isFullPage]=\"true\"\n [isWaiting]=\"hasBlockingWait\"\n />\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3NyYy9saWIvbW9kdWxlcy93YWl0L3dhaXQtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRXBEOztHQUVHO0FBUUgsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO21HQUFwQixvQkFBb0IsbUtDZGpDLG9VQWFBLCtIRERZLGdCQUFnQjs7NEZBRWYsb0JBQW9CO2tCQVBoQyxTQUFTO2lDQUNJLElBQUksWUFDTixlQUFlLFdBR2hCLENBQUMsZ0JBQWdCLENBQUM7OEJBSXBCLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lXYWl0Q29tcG9uZW50IH0gZnJvbSAnLi93YWl0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NreS13YWl0LXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2FpdC1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2FpdC1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtTa3lXYWl0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5V2FpdFBhZ2VDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGFzQmxvY2tpbmdXYWl0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoYXNOb25CbG9ja2luZ1dhaXQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXdhaXQtcGFnZVwiPlxuICA8c2t5LXdhaXRcbiAgICBkYXRhLXNreS1pZD1cInBhZ2Utd2FpdC1ub24tYmxvY2tpbmdcIlxuICAgIFtpc0Z1bGxQYWdlXT1cInRydWVcIlxuICAgIFtpc05vbkJsb2NraW5nXT1cInRydWVcIlxuICAgIFtpc1dhaXRpbmddPVwiaGFzTm9uQmxvY2tpbmdXYWl0XCJcbiAgLz5cbiAgPHNreS13YWl0XG4gICAgZGF0YS1za3ktaWQ9XCJwYWdlLXdhaXQtYmxvY2tpbmdcIlxuICAgIFtpc0Z1bGxQYWdlXT1cInRydWVcIlxuICAgIFtpc1dhaXRpbmddPVwiaGFzQmxvY2tpbmdXYWl0XCJcbiAgLz5cbjwvZGl2PlxuIl19
@@ -1,173 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, ElementRef, Input, inject, } from '@angular/core';
3
- import { SkyLiveAnnouncerService } from '@skyux/core';
4
- import { SkyLibResourcesService } from '@skyux/i18n';
5
- import { BehaviorSubject, Subject } from 'rxjs';
6
- import { take, takeUntil } from 'rxjs/operators';
7
- import { SkyIndicatorsResourcesModule } from '../shared/sky-indicators-resources.module';
8
- import { SkyWaitAdapterService } from './wait-adapter.service';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
11
- let nextId = 0;
12
- export class SkyWaitComponent {
13
- constructor() {
14
- this.ariaLabelStream = new BehaviorSubject('');
15
- this.ariaLiveText = '';
16
- this.screenReaderCompletedTextStream = new BehaviorSubject('');
17
- this.#id = `sky-wait-${++nextId}`;
18
- this.#ngUnsubscribe = new Subject();
19
- this.#adapterService = inject(SkyWaitAdapterService);
20
- this.#elRef = inject(ElementRef);
21
- this.#liveAnnouncer = inject(SkyLiveAnnouncerService);
22
- this.#resourceSvc = inject(SkyLibResourcesService);
23
- }
24
- /**
25
- * The ARIA label for the wait icon.
26
- * This sets the icon's `aria-label` attribute to provide a text equivalent for screen readers
27
- * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility) when an element or page loads and when users tab to a wait icon.
28
- * The default value varies based on whether the wait is for an element or a page and whether it is a blocking wait. For example, the default for a page-level blocking wait is "Page loading. Please wait."
29
- * For element-level waits, we recommend that consumers overwrite the default to describe the specific element.
30
- * "For more information, see the Design tab and the [WAI-ARIA `aria-label` definition](https://www.w3.org/TR/wai-aria/#aria-label).
31
- */
32
- set ariaLabel(value) {
33
- this.#customAriaLabel = value;
34
- this.#publishAriaLabel();
35
- }
36
- /**
37
- * When set to `true`, wait indication appears on the parent element of the `sky-wait` component.
38
- */
39
- set isWaiting(value) {
40
- if (!this.isFullPage) {
41
- if (value) {
42
- this.#adapterService.setWaitBounds(this.#elRef);
43
- }
44
- else {
45
- this.#adapterService.removeWaitBounds(this.#elRef);
46
- }
47
- }
48
- this.#adapterService.setBusyState(this.#elRef, !!this.isFullPage, !!value, !!this.isNonBlocking, this.#id);
49
- if (value) {
50
- this.#liveAnnouncer.announce(this.ariaLabelStream.getValue());
51
- }
52
- else if (this.#_isWaiting) {
53
- // NOTE: This should only happen if the wait was previously waiting and no longer is waiting.
54
- this.#liveAnnouncer.announce(this.screenReaderCompletedTextStream.getValue());
55
- }
56
- this.#_isWaiting = value;
57
- }
58
- get isWaiting() {
59
- return this.#_isWaiting;
60
- }
61
- /**
62
- * When set to `true`, wait indication appears on the page level instead of the
63
- * parent element level. We recommend that you use the `beginBlockingPageWait` or
64
- * `beginNonBlockingPageWait` functions of the `SkyWaitService` instead of setting this
65
- * on the component level.
66
- * @default false
67
- */
68
- set isFullPage(value) {
69
- /* istanbul ignore else: untestable */
70
- if (value) {
71
- this.#adapterService.removeWaitBounds(this.#elRef);
72
- }
73
- else if (this.isWaiting) {
74
- this.#adapterService.setWaitBounds(this.#elRef);
75
- }
76
- this.#_isFullPage = value;
77
- this.#publishAriaLabel();
78
- this.#publishScreenReaderCompletedText();
79
- }
80
- get isFullPage() {
81
- return this.#_isFullPage;
82
- }
83
- /**
84
- * When set to `true`, wait indication appears in the bottom left corner of the element
85
- * instead of hiding the entire parent element.
86
- * @default false
87
- */
88
- set isNonBlocking(value) {
89
- this.#_isNonBlocking = value;
90
- this.#publishAriaLabel();
91
- }
92
- get isNonBlocking() {
93
- return this.#_isNonBlocking;
94
- }
95
- /**
96
- * Screen reader text [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility) when the wait toggles off.
97
- * The default varies based on whether the wait is for an element or a page.
98
- * For example, the default for a page-level wait is "Page loading complete."
99
- * For element-level waits, we recommend that consumers overwrite the default to describe the specific element.
100
- * For more information, see the Design tab and the [WCAG documentation on status messages](https://www.w3.org/WAI/WCAG21/Understanding/status-messages.html).
101
- */
102
- set screenReaderCompletedText(value) {
103
- this.#customScreenReaderCompletedText = value;
104
- this.#publishScreenReaderCompletedText();
105
- }
106
- #customAriaLabel;
107
- #customScreenReaderCompletedText;
108
- #id;
109
- #ngUnsubscribe;
110
- #_isFullPage;
111
- #_isNonBlocking;
112
- #_isWaiting;
113
- #adapterService;
114
- #elRef;
115
- #liveAnnouncer;
116
- #resourceSvc;
117
- ngOnInit() {
118
- this.#publishAriaLabel();
119
- this.#publishScreenReaderCompletedText();
120
- }
121
- ngOnDestroy() {
122
- this.#ngUnsubscribe.next();
123
- this.#ngUnsubscribe.complete();
124
- }
125
- #publishAriaLabel() {
126
- if (this.#customAriaLabel) {
127
- this.ariaLabelStream.next(this.#customAriaLabel);
128
- }
129
- else {
130
- const type = this.isFullPage ? '_page' : '';
131
- const blocking = this.isNonBlocking ? '' : '_blocking';
132
- const key = `skyux_wait${type}${blocking}_aria_alt_text`;
133
- this.#resourceSvc
134
- .getString(key)
135
- .pipe(take(1), takeUntil(this.#ngUnsubscribe))
136
- .subscribe((value) => {
137
- this.ariaLabelStream.next(value);
138
- });
139
- }
140
- }
141
- #publishScreenReaderCompletedText() {
142
- if (this.#customScreenReaderCompletedText) {
143
- this.screenReaderCompletedTextStream.next(this.#customScreenReaderCompletedText);
144
- }
145
- else {
146
- const type = this.isFullPage ? '_page' : '';
147
- const key = `skyux_wait${type}_screen_reader_completed_text`;
148
- this.#resourceSvc
149
- .getString(key)
150
- .pipe(take(1), takeUntil(this.#ngUnsubscribe))
151
- .subscribe((value) => {
152
- this.screenReaderCompletedTextStream.next(value);
153
- });
154
- }
155
- }
156
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
157
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyWaitComponent, isStandalone: true, selector: "sky-wait", inputs: { ariaLabel: "ariaLabel", isWaiting: "isWaiting", isFullPage: "isFullPage", isNonBlocking: "isNonBlocking", screenReaderCompletedText: "screenReaderCompletedText" }, providers: [SkyWaitAdapterService], ngImport: i0, template: "<div\n class=\"sky-wait-container\"\n [ngClass]=\"{\n 'sky-wait-full-page': isFullPage,\n 'sky-wait-non-blocking': isNonBlocking\n }\"\n>\n @if (isWaiting) {\n <div\n class=\"sky-wait-mask\"\n role=\"progressbar\"\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 }\n</div>\n", styles: [".sky-wait-mask-loading-blocking{margin:auto;position:absolute;inset: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{inset:auto auto 0 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;-webkit-animation:sk-bounce 2s infinite ease-in-out;animation:sk-bounce 2s infinite ease-in-out}.sky-wait-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes sk-bounce{0%,to{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@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"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: SkyIndicatorsResourcesModule }] }); }
158
- }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitComponent, decorators: [{
160
- type: Component,
161
- args: [{ standalone: true, selector: 'sky-wait', providers: [SkyWaitAdapterService], imports: [CommonModule, SkyIndicatorsResourcesModule], template: "<div\n class=\"sky-wait-container\"\n [ngClass]=\"{\n 'sky-wait-full-page': isFullPage,\n 'sky-wait-non-blocking': isNonBlocking\n }\"\n>\n @if (isWaiting) {\n <div\n class=\"sky-wait-mask\"\n role=\"progressbar\"\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 }\n</div>\n", styles: [".sky-wait-mask-loading-blocking{margin:auto;position:absolute;inset: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{inset:auto auto 0 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;-webkit-animation:sk-bounce 2s infinite ease-in-out;animation:sk-bounce 2s infinite ease-in-out}.sky-wait-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes sk-bounce{0%,to{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@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"] }]
162
- }], propDecorators: { ariaLabel: [{
163
- type: Input
164
- }], isWaiting: [{
165
- type: Input
166
- }], isFullPage: [{
167
- type: Input
168
- }], isNonBlocking: [{
169
- type: Input
170
- }], screenReaderCompletedText: [{
171
- type: Input
172
- }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbmRpY2F0b3JzL3NyYy9saWIvbW9kdWxlcy93YWl0L3dhaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXpGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFFL0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBVWYsTUFBTSxPQUFPLGdCQUFnQjtJQVI3QjtRQWlIUyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLG9DQUErQixHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBSXpFLFFBQUcsR0FBRyxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDN0Is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VTtzQkFEcEIsS0FBSztnQkF3QkssYUFBYTtzQkFEdkIsS0FBSztnQkFrQksseUJBQXlCO3NCQURuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGl2ZUFubm91bmNlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5SW5kaWNhdG9yc1Jlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktaW5kaWNhdG9ycy1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi93YWl0LWFkYXB0ZXIuc2VydmljZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktd2FpdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93YWl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2FpdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lXYWl0QWRhcHRlclNlcnZpY2VdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTa3lJbmRpY2F0b3JzUmVzb3VyY2VzTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5V2FpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZSBBUklBIGxhYmVsIGZvciB0aGUgd2FpdCBpY29uLlxuICAgKiBUaGlzIHNldHMgdGhlIGljb24ncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkgd2hlbiBhbiBlbGVtZW50IG9yIHBhZ2UgbG9hZHMgYW5kIHdoZW4gdXNlcnMgdGFiIHRvIGEgd2FpdCBpY29uLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSB2YXJpZXMgYmFzZWQgb24gd2hldGhlciB0aGUgd2FpdCBpcyBmb3IgYW4gZWxlbWVudCBvciBhIHBhZ2UgYW5kIHdoZXRoZXIgaXQgaXMgYSBibG9ja2luZyB3YWl0LiBGb3IgZXhhbXBsZSwgdGhlIGRlZmF1bHQgZm9yIGEgcGFnZS1sZXZlbCBibG9ja2luZyB3YWl0IGlzIFwiUGFnZSBsb2FkaW5nLiBQbGVhc2Ugd2FpdC5cIlxuICAgKiBGb3IgZWxlbWVudC1sZXZlbCB3YWl0cywgd2UgcmVjb21tZW5kIHRoYXQgY29uc3VtZXJzIG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCB0byBkZXNjcmliZSB0aGUgc3BlY2lmaWMgZWxlbWVudC5cbiAgICogXCJGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBEZXNpZ24gdGFiIGFuZCB0aGUgW1dBSS1BUklBIGBhcmlhLWxhYmVsYCBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWwpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcmlhTGFiZWwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI2N1c3RvbUFyaWFMYWJlbCA9IHZhbHVlO1xuICAgIHRoaXMuI3B1Ymxpc2hBcmlhTGFiZWwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHdhaXQgaW5kaWNhdGlvbiBhcHBlYXJzIG9uIHRoZSBwYXJlbnQgZWxlbWVudCBvZiB0aGUgYHNreS13YWl0YCBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzV2FpdGluZyh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdGhpcy5pc0Z1bGxQYWdlKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0V2FpdEJvdW5kcyh0aGlzLiNlbFJlZik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5yZW1vdmVXYWl0Qm91bmRzKHRoaXMuI2VsUmVmKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRCdXN5U3RhdGUoXG4gICAgICB0aGlzLiNlbFJlZixcbiAgICAgICEhdGhpcy5pc0Z1bGxQYWdlLFxuICAgICAgISF2YWx1ZSxcbiAgICAgICEhdGhpcy5pc05vbkJsb2NraW5nLFxuICAgICAgdGhpcy4jaWQsXG4gICAgKTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0aGlzLmFyaWFMYWJlbFN0cmVhbS5nZXRWYWx1ZSgpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuI19pc1dhaXRpbmcpIHtcbiAgICAgIC8vIE5PVEU6IFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIHRoZSB3YWl0IHdhcyBwcmV2aW91c2x5IHdhaXRpbmcgYW5kIG5vIGxvbmdlciBpcyB3YWl0aW5nLlxuICAgICAgdGhpcy4jbGl2ZUFubm91bmNlci5hbm5vdW5jZShcbiAgICAgICAgdGhpcy5zY3JlZW5SZWFkZXJDb21wbGV0ZWRUZXh0U3RyZWFtLmdldFZhbHVlKCksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuI19pc1dhaXRpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNXYWl0aW5nKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfaXNXYWl0aW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gc2V0IHRvIGB0cnVlYCwgd2FpdCBpbmRpY2F0aW9uIGFwcGVhcnMgb24gdGhlIHBhZ2UgbGV2ZWwgaW5zdGVhZCBvZiB0aGVcbiAgICogcGFyZW50IGVsZW1lbnQgbGV2ZWwuIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2UgdGhlIGBiZWdpbkJsb2NraW5nUGFnZVdhaXRgIG9yXG4gICAqIGBiZWdpbk5vbkJsb2NraW5nUGFnZVdhaXRgIGZ1bmN0aW9ucyBvZiB0aGUgYFNreVdhaXRTZXJ2aWNlYCBpbnN0ZWFkIG9mIHNldHRpbmcgdGhpc1xuICAgKiBvbiB0aGUgY29tcG9uZW50IGxldmVsLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc0Z1bGxQYWdlKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2U6IHVudGVzdGFibGUgKi9cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnJlbW92ZVdhaXRCb3VuZHModGhpcy4jZWxSZWYpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1dhaXRpbmcpIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldFdhaXRCb3VuZHModGhpcy4jZWxSZWYpO1xuICAgIH1cblxuICAgIHRoaXMuI19pc0Z1bGxQYWdlID0gdmFsdWU7XG4gICAgdGhpcy4jcHVibGlzaEFyaWFMYWJlbCgpO1xuICAgIHRoaXMuI3B1Ymxpc2hTY3JlZW5SZWFkZXJDb21wbGV0ZWRUZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRnVsbFBhZ2UoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc0Z1bGxQYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gc2V0IHRvIGB0cnVlYCwgd2FpdCBpbmRpY2F0aW9uIGFwcGVhcnMgaW4gdGhlIGJvdHRvbSBsZWZ0IGNvcm5lciBvZiB0aGUgZWxlbWVudFxuICAgKiBpbnN0ZWFkIG9mIGhpZGluZyB0aGUgZW50aXJlIHBhcmVudCBlbGVtZW50LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc05vbkJsb2NraW5nKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2lzTm9uQmxvY2tpbmcgPSB2YWx1ZTtcbiAgICB0aGlzLiNwdWJsaXNoQXJpYUxhYmVsKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTm9uQmxvY2tpbmcoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19pc05vbkJsb2NraW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcmVlbiByZWFkZXIgdGV4dCBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpIHdoZW4gdGhlIHdhaXQgdG9nZ2xlcyBvZmYuXG4gICAqICBUaGUgZGVmYXVsdCB2YXJpZXMgYmFzZWQgb24gd2hldGhlciB0aGUgd2FpdCBpcyBmb3IgYW4gZWxlbWVudCBvciBhIHBhZ2UuXG4gICAqIEZvciBleGFtcGxlLCB0aGUgZGVmYXVsdCBmb3IgYSBwYWdlLWxldmVsIHdhaXQgaXMgXCJQYWdlIGxvYWRpbmcgY29tcGxldGUuXCJcbiAgICogRm9yIGVsZW1lbnQtbGV2ZWwgd2FpdHMsIHdlIHJlY29tbWVuZCB0aGF0IGNvbnN1bWVycyBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgdG8gZGVzY3JpYmUgdGhlIHNwZWNpZmljIGVsZW1lbnQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIERlc2lnbiB0YWIgYW5kIHRoZSBbV0NBRyBkb2N1bWVudGF0aW9uIG9uIHN0YXR1cyBtZXNzYWdlc10oaHR0cHM6Ly93d3cudzMub3JnL1dBSS9XQ0FHMjEvVW5kZXJzdGFuZGluZy9zdGF0dXMtbWVzc2FnZXMuaHRtbCkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNjcmVlblJlYWRlckNvbXBsZXRlZFRleHQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI2N1c3RvbVNjcmVlblJlYWRlckNvbXBsZXRlZFRleHQgPSB2YWx1ZTtcbiAgICB0aGlzLiNwdWJsaXNoU2NyZWVuUmVhZGVyQ29tcGxldGVkVGV4dCgpO1xuICB9XG5cbiAgcHVibGljIGFyaWFMYWJlbFN0cmVhbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHB1YmxpYyBhcmlhTGl2ZVRleHQgPSAnJztcbiAgcHVibGljIHNjcmVlblJlYWRlckNvbXBsZXRlZFRleHRTdHJlYW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gICNjdXN0b21BcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI2N1c3RvbVNjcmVlblJlYWRlckNvbXBsZXRlZFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI2lkID0gYHNreS13YWl0LSR7KytuZXh0SWR9YDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfaXNGdWxsUGFnZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgI19pc05vbkJsb2NraW5nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAjX2lzV2FpdGluZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICByZWFkb25seSAjYWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5V2FpdEFkYXB0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2VsUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICByZWFkb25seSAjbGl2ZUFubm91bmNlciA9IGluamVjdChTa3lMaXZlQW5ub3VuY2VyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNyZXNvdXJjZVN2YyA9IGluamVjdChTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jcHVibGlzaEFyaWFMYWJlbCgpO1xuICAgIHRoaXMuI3B1Ymxpc2hTY3JlZW5SZWFkZXJDb21wbGV0ZWRUZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgI3B1Ymxpc2hBcmlhTGFiZWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2N1c3RvbUFyaWFMYWJlbCkge1xuICAgICAgdGhpcy5hcmlhTGFiZWxTdHJlYW0ubmV4dCh0aGlzLiNjdXN0b21BcmlhTGFiZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5pc0Z1bGxQYWdlID8gJ19wYWdlJyA6ICcnO1xuICAgICAgY29uc3QgYmxvY2tpbmcgPSB0aGlzLmlzTm9uQmxvY2tpbmcgPyAnJyA6ICdfYmxvY2tpbmcnO1xuICAgICAgY29uc3Qga2V5ID0gYHNreXV4X3dhaXQke3R5cGV9JHtibG9ja2luZ31fYXJpYV9hbHRfdGV4dGA7XG4gICAgICB0aGlzLiNyZXNvdXJjZVN2Y1xuICAgICAgICAuZ2V0U3RyaW5nKGtleSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuYXJpYUxhYmVsU3RyZWFtLm5leHQodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjcHVibGlzaFNjcmVlblJlYWRlckNvbXBsZXRlZFRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2N1c3RvbVNjcmVlblJlYWRlckNvbXBsZXRlZFRleHQpIHtcbiAgICAgIHRoaXMuc2NyZWVuUmVhZGVyQ29tcGxldGVkVGV4dFN0cmVhbS5uZXh0KFxuICAgICAgICB0aGlzLiNjdXN0b21TY3JlZW5SZWFkZXJDb21wbGV0ZWRUZXh0LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZSA9IHRoaXMuaXNGdWxsUGFnZSA/ICdfcGFnZScgOiAnJztcbiAgICAgIGNvbnN0IGtleSA9IGBza3l1eF93YWl0JHt0eXBlfV9zY3JlZW5fcmVhZGVyX2NvbXBsZXRlZF90ZXh0YDtcbiAgICAgIHRoaXMuI3Jlc291cmNlU3ZjXG4gICAgICAgIC5nZXRTdHJpbmcoa2V5KVxuICAgICAgICAucGlwZSh0YWtlKDEpLCB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zY3JlZW5SZWFkZXJDb21wbGV0ZWRUZXh0U3RyZWFtLm5leHQodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktd2FpdC1jb250YWluZXJcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS13YWl0LWZ1bGwtcGFnZSc6IGlzRnVsbFBhZ2UsXG4gICAgJ3NreS13YWl0LW5vbi1ibG9ja2luZyc6IGlzTm9uQmxvY2tpbmdcbiAgfVwiXG4+XG4gIEBpZiAoaXNXYWl0aW5nKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktd2FpdC1tYXNrXCJcbiAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFN0cmVhbSB8IGFzeW5jXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS13YWl0LW1hc2stbG9hZGluZy1maXhlZCc6IGlzRnVsbFBhZ2UsXG4gICAgICAgICdza3ktd2FpdC1tYXNrLWxvYWRpbmctbm9uLWJsb2NraW5nJzogaXNOb25CbG9ja2luZyxcbiAgICAgICAgJ3NreS13YWl0LW1hc2stbG9hZGluZy1ibG9ja2luZyc6ICFpc05vbkJsb2NraW5nXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXdhaXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNreS13YWl0LWRvdWJsZS1ib3VuY2UxXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza3ktd2FpdC1kb3VibGUtYm91bmNlMlwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,16 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { SkyWaitComponent } from './wait.component';
3
- import * as i0 from "@angular/core";
4
- export class SkyWaitModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitModule, imports: [SkyWaitComponent], exports: [SkyWaitComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitModule, imports: [SkyWaitComponent] }); }
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyWaitModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- imports: [SkyWaitComponent],
13
- exports: [SkyWaitComponent],
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaW5kaWNhdG9ycy9zcmMvbGliL21vZHVsZXMvd2FpdC93YWl0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU1wRCxNQUFNLE9BQU8sYUFBYTsrR0FBYixhQUFhO2dIQUFiLGFBQWEsWUFIZCxnQkFBZ0IsYUFDaEIsZ0JBQWdCO2dIQUVmLGFBQWEsWUFIZCxnQkFBZ0I7OzRGQUdmLGFBQWE7a0JBSnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVdhaXRDb21wb25lbnQgfSBmcm9tICcuL3dhaXQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1NreVdhaXRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2t5V2FpdENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVdhaXRNb2R1bGUge31cbiJdfQ==