@skyux/core 8.7.0 → 9.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 (151) hide show
  1. package/{esm2020 → esm2022}/lib/modules/adapter-service/adapter.module.mjs +5 -5
  2. package/esm2022/lib/modules/adapter-service/adapter.service.mjs +225 -0
  3. package/esm2022/lib/modules/affix/affix.directive.mjs +116 -0
  4. package/{esm2020 → esm2022}/lib/modules/affix/affix.module.mjs +5 -5
  5. package/esm2022/lib/modules/affix/affix.service.mjs +25 -0
  6. package/esm2022/lib/modules/affix/affixer.mjs +398 -0
  7. package/esm2022/lib/modules/default-input-provider/default-input-provider.mjs +26 -0
  8. package/esm2022/lib/modules/dock/dock-dom-adapter.service.mjs +81 -0
  9. package/esm2022/lib/modules/dock/dock-item.mjs +31 -0
  10. package/esm2022/lib/modules/dock/dock.component.mjs +108 -0
  11. package/{esm2020 → esm2022}/lib/modules/dock/dock.module.mjs +5 -5
  12. package/esm2022/lib/modules/dock/dock.service.mjs +96 -0
  13. package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component.module.mjs +5 -5
  14. package/esm2022/lib/modules/dynamic-component/dynamic-component.service.mjs +106 -0
  15. package/{esm2020 → esm2022}/lib/modules/format/app-format.mjs +4 -4
  16. package/esm2022/lib/modules/id/id.directive.mjs +31 -0
  17. package/{esm2020 → esm2022}/lib/modules/id/id.module.mjs +5 -5
  18. package/{esm2020 → esm2022}/lib/modules/id/id.service.mjs +4 -4
  19. package/esm2022/lib/modules/layout-host/layout-host.service.mjs +22 -0
  20. package/esm2022/lib/modules/live-announcer/live-announcer.service.mjs +79 -0
  21. package/{esm2020 → esm2022}/lib/modules/log/log.module.mjs +5 -5
  22. package/esm2022/lib/modules/log/log.service.mjs +148 -0
  23. package/{esm2020 → esm2022}/lib/modules/media-query/media-query.module.mjs +5 -5
  24. package/esm2022/lib/modules/media-query/media-query.service.mjs +123 -0
  25. package/{esm2020 → esm2022}/lib/modules/mutation/mutation-observer-service.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/modules/numeric/numeric.module.mjs +5 -5
  27. package/esm2022/lib/modules/numeric/numeric.pipe.mjs +81 -0
  28. package/esm2022/lib/modules/numeric/numeric.service.mjs +205 -0
  29. package/esm2022/lib/modules/overlay/overlay-adapter.service.mjs +44 -0
  30. package/esm2022/lib/modules/overlay/overlay-instance.mjs +62 -0
  31. package/esm2022/lib/modules/overlay/overlay.component.mjs +193 -0
  32. package/{esm2020 → esm2022}/lib/modules/overlay/overlay.module.mjs +5 -5
  33. package/esm2022/lib/modules/overlay/overlay.service.mjs +124 -0
  34. package/{esm2020 → esm2022}/lib/modules/percent-pipe/percent-pipe.module.mjs +5 -5
  35. package/esm2022/lib/modules/percent-pipe/percent.pipe.mjs +56 -0
  36. package/esm2022/lib/modules/resize-observer/resize-observer-media-query.service.mjs +120 -0
  37. package/esm2022/lib/modules/resize-observer/resize-observer.service.mjs +77 -0
  38. package/esm2022/lib/modules/scrollable-host/scrollable-host.service.mjs +223 -0
  39. package/esm2022/lib/modules/shared/number-format/number-format-utility.mjs +72 -0
  40. package/esm2022/lib/modules/shared/sky-core-resources.module.mjs +50 -0
  41. package/esm2022/lib/modules/title/title.service.mjs +31 -0
  42. package/esm2022/lib/modules/trim/trim.directive.mjs +64 -0
  43. package/{esm2020 → esm2022}/lib/modules/trim/trim.module.mjs +5 -5
  44. package/{esm2020 → esm2022}/lib/modules/ui-config/ui-config.service.mjs +4 -4
  45. package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-host-options.mjs +4 -4
  46. package/esm2022/lib/modules/viewkeeper/viewkeeper.directive.mjs +131 -0
  47. package/esm2022/lib/modules/viewkeeper/viewkeeper.mjs +283 -0
  48. package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper.module.mjs +5 -5
  49. package/esm2022/lib/modules/viewkeeper/viewkeeper.service.mjs +39 -0
  50. package/{esm2020 → esm2022}/lib/modules/window/window-ref.mjs +4 -4
  51. package/esm2022/testing/core-testing.module.mjs +32 -0
  52. package/esm2022/testing/mock-media-query.service.mjs +46 -0
  53. package/{esm2020 → esm2022}/testing/mock-ui-config.service.mjs +4 -4
  54. package/esm2022/testing/overlay/overlay-harness.mjs +43 -0
  55. package/esm2022/testing/shared/component-harness.mjs +13 -0
  56. package/{fesm2020 → fesm2022}/skyux-core-testing.mjs +28 -34
  57. package/{fesm2020 → fesm2022}/skyux-core-testing.mjs.map +1 -1
  58. package/fesm2022/skyux-core.mjs +3858 -0
  59. package/fesm2022/skyux-core.mjs.map +1 -0
  60. package/lib/modules/affix/affix.directive.d.ts +1 -1
  61. package/lib/modules/viewkeeper/viewkeeper.directive.d.ts +1 -1
  62. package/package.json +14 -22
  63. package/esm2020/lib/modules/adapter-service/adapter.service.mjs +0 -227
  64. package/esm2020/lib/modules/affix/affix.directive.mjs +0 -118
  65. package/esm2020/lib/modules/affix/affix.service.mjs +0 -28
  66. package/esm2020/lib/modules/affix/affixer.mjs +0 -377
  67. package/esm2020/lib/modules/default-input-provider/default-input-provider.mjs +0 -31
  68. package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +0 -83
  69. package/esm2020/lib/modules/dock/dock-item.mjs +0 -34
  70. package/esm2020/lib/modules/dock/dock.component.mjs +0 -110
  71. package/esm2020/lib/modules/dock/dock.service.mjs +0 -98
  72. package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +0 -109
  73. package/esm2020/lib/modules/id/id.directive.mjs +0 -34
  74. package/esm2020/lib/modules/layout-host/layout-host.service.mjs +0 -27
  75. package/esm2020/lib/modules/live-announcer/live-announcer.service.mjs +0 -80
  76. package/esm2020/lib/modules/log/log.service.mjs +0 -147
  77. package/esm2020/lib/modules/media-query/media-query.service.mjs +0 -124
  78. package/esm2020/lib/modules/numeric/numeric.pipe.mjs +0 -84
  79. package/esm2020/lib/modules/numeric/numeric.service.mjs +0 -179
  80. package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +0 -47
  81. package/esm2020/lib/modules/overlay/overlay-instance.mjs +0 -65
  82. package/esm2020/lib/modules/overlay/overlay.component.mjs +0 -192
  83. package/esm2020/lib/modules/overlay/overlay.service.mjs +0 -125
  84. package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +0 -59
  85. package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +0 -121
  86. package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +0 -79
  87. package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +0 -218
  88. package/esm2020/lib/modules/shared/number-format/number-format-utility.mjs +0 -72
  89. package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +0 -50
  90. package/esm2020/lib/modules/title/title.service.mjs +0 -34
  91. package/esm2020/lib/modules/trim/trim.directive.mjs +0 -65
  92. package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +0 -131
  93. package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +0 -276
  94. package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +0 -42
  95. package/esm2020/testing/core-testing.module.mjs +0 -32
  96. package/esm2020/testing/mock-media-query.service.mjs +0 -46
  97. package/esm2020/testing/overlay/overlay-harness.mjs +0 -43
  98. package/esm2020/testing/shared/component-harness.mjs +0 -19
  99. package/fesm2015/skyux-core-testing.mjs +0 -209
  100. package/fesm2015/skyux-core-testing.mjs.map +0 -1
  101. package/fesm2015/skyux-core.mjs +0 -3835
  102. package/fesm2015/skyux-core.mjs.map +0 -1
  103. package/fesm2020/skyux-core.mjs +0 -3825
  104. package/fesm2020/skyux-core.mjs.map +0 -1
  105. /package/{esm2020 → esm2022}/index.mjs +0 -0
  106. /package/{esm2020 → esm2022}/lib/modules/adapter-service/focusable-children-options.mjs +0 -0
  107. /package/{esm2020 → esm2022}/lib/modules/affix/affix-auto-fit-context.mjs +0 -0
  108. /package/{esm2020 → esm2022}/lib/modules/affix/affix-config.mjs +0 -0
  109. /package/{esm2020 → esm2022}/lib/modules/affix/affix-horizontal-alignment.mjs +0 -0
  110. /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset-change.mjs +0 -0
  111. /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset.mjs +0 -0
  112. /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement-change.mjs +0 -0
  113. /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement.mjs +0 -0
  114. /package/{esm2020 → esm2022}/lib/modules/affix/affix-position.mjs +0 -0
  115. /package/{esm2020 → esm2022}/lib/modules/affix/affix-rect.mjs +0 -0
  116. /package/{esm2020 → esm2022}/lib/modules/affix/affix-utils.mjs +0 -0
  117. /package/{esm2020 → esm2022}/lib/modules/affix/affix-vertical-alignment.mjs +0 -0
  118. /package/{esm2020 → esm2022}/lib/modules/affix/dom-utils.mjs +0 -0
  119. /package/{esm2020 → esm2022}/lib/modules/dock/dock-insert-component-config.mjs +0 -0
  120. /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-config.mjs +0 -0
  121. /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-reference.mjs +0 -0
  122. /package/{esm2020 → esm2022}/lib/modules/dock/dock-location.mjs +0 -0
  123. /package/{esm2020 → esm2022}/lib/modules/dock/dock-options.mjs +0 -0
  124. /package/{esm2020 → esm2022}/lib/modules/dock/sort-by-stack-order.mjs +0 -0
  125. /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-location.mjs +0 -0
  126. /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-options.mjs +0 -0
  127. /package/{esm2020 → esm2022}/lib/modules/layout-host/layout-host-for-child-args.mjs +0 -0
  128. /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-args.mjs +0 -0
  129. /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-politeness.mjs +0 -0
  130. /package/{esm2020 → esm2022}/lib/modules/log/types/log-deprecation-args.mjs +0 -0
  131. /package/{esm2020 → esm2022}/lib/modules/log/types/log-level-token.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/modules/log/types/log-level.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/modules/media-query/media-breakpoints.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/modules/media-query/media-query-listener.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/modules/numeric/numeric-symbol.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/modules/numeric/numeric.options.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-config.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-context.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-position.mjs +0 -0
  140. /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context-token.mjs +0 -0
  141. /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context.mjs +0 -0
  142. /package/{esm2020 → esm2022}/lib/modules/title/set-title-args.mjs +0 -0
  143. /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +0 -0
  144. /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-fixed-styles.mjs +0 -0
  145. /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-offset.mjs +0 -0
  146. /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-options.mjs +0 -0
  147. /package/{esm2020 → esm2022}/skyux-core.mjs +0 -0
  148. /package/{esm2020 → esm2022}/testing/overlay/overlay-harness-filters.mjs +0 -0
  149. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  150. /package/{esm2020 → esm2022}/testing/shared/harness-filters.mjs +0 -0
  151. /package/{esm2020 → esm2022}/testing/skyux-core-testing.mjs +0 -0
@@ -1,276 +0,0 @@
1
- var _SkyViewkeeper_instances, _SkyViewkeeper_boundaryEl, _SkyViewkeeper_el, _SkyViewkeeper_id, _SkyViewkeeper_setWidth, _SkyViewkeeper_verticalOffset, _SkyViewkeeper_verticalOffsetEl, _SkyViewkeeper_viewportMarginTop, _SkyViewkeeper_currentElFixedLeft, _SkyViewkeeper_currentElFixedTop, _SkyViewkeeper_currentElFixedWidth, _SkyViewkeeper_currentElClipLeft, _SkyViewkeeper_currentElClipTop, _SkyViewkeeper_isDestroyed, _SkyViewkeeper_scrollableHost, _SkyViewkeeper_syncElPositionHandler, _SkyViewkeeper_intersectionObserver, _SkyViewkeeper_getSpacerId, _SkyViewkeeper_unfixEl, _SkyViewkeeper_calculateVerticalOffset, _SkyViewkeeper_shouldFixEl, _SkyViewkeeper_getFixedStyles, _SkyViewkeeper_needsUpdating, _SkyViewkeeper_fixEl, _SkyViewkeeper_getBoundaryInfo;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- const CLS_VIEWKEEPER_FIXED = 'sky-viewkeeper-fixed';
4
- const EVT_AFTER_VIEWKEEPER_SYNC = 'afterViewkeeperSync';
5
- let styleEl;
6
- let nextIdIndex;
7
- function ensureStyleEl() {
8
- if (!styleEl) {
9
- styleEl = document.createElement('style');
10
- const css = document.createTextNode(`
11
- .${CLS_VIEWKEEPER_FIXED} {
12
- position: fixed !important;
13
- z-index: 999;
14
- opacity: 0.95;
15
- overflow: hidden;
16
- }
17
-
18
- .sky-theme-modern .${CLS_VIEWKEEPER_FIXED} {
19
- box-shadow: 0px 1px 8px -1px rgba(0, 0, 0, 0.3);
20
- opacity: initial;
21
- }
22
- `);
23
- styleEl.appendChild(css);
24
- document.head.appendChild(styleEl);
25
- }
26
- }
27
- function nextId() {
28
- nextIdIndex = (nextIdIndex || 0) + 1;
29
- return 'viewkeeper-' + nextIdIndex;
30
- }
31
- function getOffset(el, scrollableHost) {
32
- const rect = el.getBoundingClientRect();
33
- const parent = scrollableHost ? scrollableHost : document.documentElement;
34
- return {
35
- top: rect.top + parent.scrollTop,
36
- left: rect.left + parent.scrollLeft,
37
- };
38
- }
39
- function px(value) {
40
- let pxValue = value ? value.toString() : '';
41
- if (typeof value === 'number') {
42
- pxValue = value + 'px';
43
- }
44
- return pxValue;
45
- }
46
- function setElPosition(el, left, top, width, marginTop, clipTop, clipLeft) {
47
- el.style.top = px(top);
48
- el.style.left = px(left);
49
- el.style.marginTop = px(marginTop);
50
- el.style.clipPath =
51
- clipTop || clipLeft ? `inset(${px(clipTop)} 0 0 ${px(clipLeft)})` : 'none';
52
- /*istanbul ignore else*/
53
- /* sanity check */
54
- if (width !== null) {
55
- el.style.width = px(width);
56
- }
57
- }
58
- function getHeightWithMargin(el) {
59
- const computedStyle = getComputedStyle(el);
60
- return (el.offsetHeight +
61
- parseInt(computedStyle.marginTop, 10) +
62
- parseInt(computedStyle.marginBottom, 10));
63
- }
64
- function createCustomEvent(name) {
65
- const evt = document.createEvent('CustomEvent');
66
- evt.initCustomEvent(name, false, false, undefined);
67
- return evt;
68
- }
69
- export class SkyViewkeeper {
70
- constructor(options) {
71
- _SkyViewkeeper_instances.add(this);
72
- _SkyViewkeeper_boundaryEl.set(this, void 0);
73
- _SkyViewkeeper_el.set(this, void 0);
74
- _SkyViewkeeper_id.set(this, void 0);
75
- _SkyViewkeeper_setWidth.set(this, void 0);
76
- _SkyViewkeeper_verticalOffset.set(this, void 0);
77
- _SkyViewkeeper_verticalOffsetEl.set(this, void 0);
78
- _SkyViewkeeper_viewportMarginTop.set(this, 0);
79
- _SkyViewkeeper_currentElFixedLeft.set(this, void 0);
80
- _SkyViewkeeper_currentElFixedTop.set(this, void 0);
81
- _SkyViewkeeper_currentElFixedWidth.set(this, void 0);
82
- _SkyViewkeeper_currentElClipLeft.set(this, void 0);
83
- _SkyViewkeeper_currentElClipTop.set(this, void 0);
84
- _SkyViewkeeper_isDestroyed.set(this, false);
85
- _SkyViewkeeper_scrollableHost.set(this, void 0);
86
- _SkyViewkeeper_syncElPositionHandler.set(this, void 0);
87
- _SkyViewkeeper_intersectionObserver.set(this, void 0);
88
- options = options || /* istanbul ignore next */ {};
89
- __classPrivateFieldSet(this, _SkyViewkeeper_el, options.el, "f");
90
- __classPrivateFieldSet(this, _SkyViewkeeper_boundaryEl, options.boundaryEl, "f");
91
- if (!__classPrivateFieldGet(this, _SkyViewkeeper_el, "f")) {
92
- throw new Error('[SkyViewkeeper] The option `el` is required.');
93
- }
94
- if (!__classPrivateFieldGet(this, _SkyViewkeeper_boundaryEl, "f")) {
95
- throw new Error('[SkyViewkeeper] The option `boundaryEl` is required.');
96
- }
97
- const el = __classPrivateFieldGet(this, _SkyViewkeeper_el, "f");
98
- const boundaryEl = __classPrivateFieldGet(this, _SkyViewkeeper_boundaryEl, "f");
99
- __classPrivateFieldSet(this, _SkyViewkeeper_setWidth, !!options.setWidth, "f");
100
- __classPrivateFieldSet(this, _SkyViewkeeper_id, nextId(), "f");
101
- __classPrivateFieldSet(this, _SkyViewkeeper_scrollableHost, options.scrollableHost, "f");
102
- __classPrivateFieldSet(this, _SkyViewkeeper_verticalOffset, options.verticalOffset || 0, "f");
103
- __classPrivateFieldSet(this, _SkyViewkeeper_verticalOffsetEl, options.verticalOffsetEl, "f");
104
- // Only set viewport margin if the scrollable host is undefined.
105
- if (!__classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f")) {
106
- __classPrivateFieldSet(this, _SkyViewkeeper_viewportMarginTop, options.viewportMarginTop ?? 0, "f");
107
- }
108
- __classPrivateFieldSet(this, _SkyViewkeeper_syncElPositionHandler, () => this.syncElPosition(el, boundaryEl), "f");
109
- if (__classPrivateFieldGet(this, _SkyViewkeeper_verticalOffsetEl, "f")) {
110
- __classPrivateFieldGet(this, _SkyViewkeeper_verticalOffsetEl, "f").addEventListener(EVT_AFTER_VIEWKEEPER_SYNC, __classPrivateFieldGet(this, _SkyViewkeeper_syncElPositionHandler, "f"));
111
- }
112
- window.addEventListener('scroll', __classPrivateFieldGet(this, _SkyViewkeeper_syncElPositionHandler, "f"), true);
113
- window.addEventListener('resize', __classPrivateFieldGet(this, _SkyViewkeeper_syncElPositionHandler, "f"));
114
- window.addEventListener('orientationchange', __classPrivateFieldGet(this, _SkyViewkeeper_syncElPositionHandler, "f"));
115
- ensureStyleEl();
116
- this.syncElPosition(el, boundaryEl);
117
- }
118
- syncElPosition(el, boundaryEl) {
119
- const verticalOffset = __classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_calculateVerticalOffset).call(this);
120
- // When the element isn't visible, its size can't be calculated, so don't attempt syncing position in this case.
121
- if (el.offsetWidth === 0 && el.offsetHeight === 0) {
122
- return;
123
- }
124
- const boundaryInfo = __classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_getBoundaryInfo).call(this, el, boundaryEl);
125
- const fixedStyles = __classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_getFixedStyles).call(this, boundaryInfo, verticalOffset);
126
- const doFixEl = __classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_shouldFixEl).call(this, el, boundaryInfo, verticalOffset);
127
- if (__classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_needsUpdating).call(this, doFixEl, fixedStyles)) {
128
- if (doFixEl) {
129
- __classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_fixEl).call(this, el, boundaryInfo, fixedStyles);
130
- }
131
- else {
132
- __classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_unfixEl).call(this, el);
133
- }
134
- }
135
- const evt = createCustomEvent(EVT_AFTER_VIEWKEEPER_SYNC);
136
- el.dispatchEvent(evt);
137
- }
138
- destroy() {
139
- if (!__classPrivateFieldGet(this, _SkyViewkeeper_isDestroyed, "f")) {
140
- __classPrivateFieldGet(this, _SkyViewkeeper_intersectionObserver, "f")?.disconnect();
141
- window.removeEventListener('scroll', __classPrivateFieldGet(this, _SkyViewkeeper_syncElPositionHandler, "f"), true);
142
- window.removeEventListener('resize', __classPrivateFieldGet(this, _SkyViewkeeper_syncElPositionHandler, "f"));
143
- window.removeEventListener('orientationchange', __classPrivateFieldGet(this, _SkyViewkeeper_syncElPositionHandler, "f"));
144
- if (__classPrivateFieldGet(this, _SkyViewkeeper_el, "f")) {
145
- __classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_unfixEl).call(this, __classPrivateFieldGet(this, _SkyViewkeeper_el, "f"));
146
- }
147
- if (__classPrivateFieldGet(this, _SkyViewkeeper_verticalOffsetEl, "f")) {
148
- __classPrivateFieldGet(this, _SkyViewkeeper_verticalOffsetEl, "f").removeEventListener(EVT_AFTER_VIEWKEEPER_SYNC, __classPrivateFieldGet(this, _SkyViewkeeper_syncElPositionHandler, "f"));
149
- }
150
- __classPrivateFieldSet(this, _SkyViewkeeper_el, __classPrivateFieldSet(this, _SkyViewkeeper_boundaryEl, __classPrivateFieldSet(this, _SkyViewkeeper_verticalOffsetEl, undefined, "f"), "f"), "f");
151
- __classPrivateFieldSet(this, _SkyViewkeeper_isDestroyed, true, "f");
152
- }
153
- }
154
- }
155
- _SkyViewkeeper_boundaryEl = new WeakMap(), _SkyViewkeeper_el = new WeakMap(), _SkyViewkeeper_id = new WeakMap(), _SkyViewkeeper_setWidth = new WeakMap(), _SkyViewkeeper_verticalOffset = new WeakMap(), _SkyViewkeeper_verticalOffsetEl = new WeakMap(), _SkyViewkeeper_viewportMarginTop = new WeakMap(), _SkyViewkeeper_currentElFixedLeft = new WeakMap(), _SkyViewkeeper_currentElFixedTop = new WeakMap(), _SkyViewkeeper_currentElFixedWidth = new WeakMap(), _SkyViewkeeper_currentElClipLeft = new WeakMap(), _SkyViewkeeper_currentElClipTop = new WeakMap(), _SkyViewkeeper_isDestroyed = new WeakMap(), _SkyViewkeeper_scrollableHost = new WeakMap(), _SkyViewkeeper_syncElPositionHandler = new WeakMap(), _SkyViewkeeper_intersectionObserver = new WeakMap(), _SkyViewkeeper_instances = new WeakSet(), _SkyViewkeeper_getSpacerId = function _SkyViewkeeper_getSpacerId() {
156
- return __classPrivateFieldGet(this, _SkyViewkeeper_id, "f") + '-spacer';
157
- }, _SkyViewkeeper_unfixEl = function _SkyViewkeeper_unfixEl(el) {
158
- const spacerEl = document.getElementById(__classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_getSpacerId).call(this));
159
- /*istanbul ignore else*/
160
- if (spacerEl?.parentElement) {
161
- spacerEl.parentElement.removeChild(spacerEl);
162
- }
163
- el.classList.remove(CLS_VIEWKEEPER_FIXED);
164
- __classPrivateFieldSet(this, _SkyViewkeeper_currentElFixedLeft, __classPrivateFieldSet(this, _SkyViewkeeper_currentElFixedTop, __classPrivateFieldSet(this, _SkyViewkeeper_currentElFixedWidth, undefined, "f"), "f"), "f");
165
- let width = '';
166
- if (__classPrivateFieldGet(this, _SkyViewkeeper_setWidth, "f")) {
167
- width = 'auto';
168
- }
169
- setElPosition(el, '', '', width, '', 0, 0);
170
- }, _SkyViewkeeper_calculateVerticalOffset = function _SkyViewkeeper_calculateVerticalOffset() {
171
- let offset = __classPrivateFieldGet(this, _SkyViewkeeper_verticalOffset, "f");
172
- if (__classPrivateFieldGet(this, _SkyViewkeeper_verticalOffsetEl, "f")) {
173
- const verticalOffsetElTopStyle = __classPrivateFieldGet(this, _SkyViewkeeper_verticalOffsetEl, "f").style.top;
174
- const verticalOffsetElTop = parseInt(verticalOffsetElTopStyle, 10) || 0;
175
- offset += __classPrivateFieldGet(this, _SkyViewkeeper_verticalOffsetEl, "f").offsetHeight + verticalOffsetElTop;
176
- }
177
- else if (__classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f")) {
178
- offset += __classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f").getBoundingClientRect().top;
179
- }
180
- return offset;
181
- }, _SkyViewkeeper_shouldFixEl = function _SkyViewkeeper_shouldFixEl(el, boundaryInfo, verticalOffset) {
182
- let anchorTop;
183
- if (boundaryInfo.spacerEl) {
184
- anchorTop = getOffset(boundaryInfo.spacerEl, __classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f")).top;
185
- }
186
- else {
187
- anchorTop = getOffset(el, __classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f")).top;
188
- }
189
- const doFixEl = boundaryInfo.scrollTop + verticalOffset + __classPrivateFieldGet(this, _SkyViewkeeper_viewportMarginTop, "f") >
190
- anchorTop;
191
- return doFixEl;
192
- }, _SkyViewkeeper_getFixedStyles = function _SkyViewkeeper_getFixedStyles(boundaryInfo, verticalOffset) {
193
- // If the element needs to be fixed, this will calculate its position. The position
194
- // will be 0 (fully visible) unless the user is scrolling the boundary out of view.
195
- // In that case, the element should begin to scroll out of view with the
196
- // rest of the boundary by setting its top position to a negative value.
197
- const elTop = boundaryInfo.boundaryBottom -
198
- boundaryInfo.elHeight -
199
- boundaryInfo.scrollTop;
200
- const elClipTop = elTop < verticalOffset ? verticalOffset - elTop : 0;
201
- const elFixedTop = Math.min(elTop, verticalOffset);
202
- const elFixedWidth = boundaryInfo.boundaryEl.getBoundingClientRect().width;
203
- const elFixedLeft = boundaryInfo.boundaryOffset.left - boundaryInfo.scrollLeft;
204
- const elClipLeft = elFixedLeft < 0 ? 0 - elFixedLeft : 0;
205
- return {
206
- elFixedLeft,
207
- elFixedTop,
208
- elFixedWidth,
209
- elClipLeft,
210
- elClipTop,
211
- };
212
- }, _SkyViewkeeper_needsUpdating = function _SkyViewkeeper_needsUpdating(doFixEl, fixedStyles) {
213
- if ((doFixEl &&
214
- __classPrivateFieldGet(this, _SkyViewkeeper_currentElFixedLeft, "f") === fixedStyles.elFixedLeft &&
215
- __classPrivateFieldGet(this, _SkyViewkeeper_currentElFixedTop, "f") === fixedStyles.elFixedTop &&
216
- __classPrivateFieldGet(this, _SkyViewkeeper_currentElClipLeft, "f") === fixedStyles.elClipLeft &&
217
- __classPrivateFieldGet(this, _SkyViewkeeper_currentElClipTop, "f") === fixedStyles.elClipTop &&
218
- __classPrivateFieldGet(this, _SkyViewkeeper_currentElFixedWidth, "f") === fixedStyles.elFixedWidth) ||
219
- (!doFixEl &&
220
- !(__classPrivateFieldGet(this, _SkyViewkeeper_currentElFixedLeft, "f") !== undefined &&
221
- __classPrivateFieldGet(this, _SkyViewkeeper_currentElFixedLeft, "f") !== null))) {
222
- // The element is either currently fixed and its position and width do not need
223
- // to change, or the element is not currently fixed and does not need to be fixed.
224
- // No changes are needed.
225
- return false;
226
- }
227
- return true;
228
- }, _SkyViewkeeper_fixEl = function _SkyViewkeeper_fixEl(el, boundaryInfo, fixedStyles) {
229
- /* istanbul ignore else */
230
- /* sanity check */
231
- if (!boundaryInfo.spacerEl) {
232
- const spacerHeight = boundaryInfo.elHeight;
233
- const spacerEl = document.createElement('div');
234
- spacerEl.id = boundaryInfo.spacerId;
235
- spacerEl.style.height = px(spacerHeight);
236
- /*istanbul ignore else*/
237
- if (el.parentNode) {
238
- el.parentNode.insertBefore(spacerEl, el.nextSibling);
239
- }
240
- }
241
- el.classList.add(CLS_VIEWKEEPER_FIXED);
242
- __classPrivateFieldSet(this, _SkyViewkeeper_currentElFixedTop, fixedStyles.elFixedTop, "f");
243
- __classPrivateFieldSet(this, _SkyViewkeeper_currentElFixedLeft, fixedStyles.elFixedLeft, "f");
244
- __classPrivateFieldSet(this, _SkyViewkeeper_currentElClipTop, fixedStyles.elClipTop, "f");
245
- __classPrivateFieldSet(this, _SkyViewkeeper_currentElClipLeft, fixedStyles.elClipLeft, "f");
246
- __classPrivateFieldSet(this, _SkyViewkeeper_currentElFixedWidth, fixedStyles.elFixedWidth, "f");
247
- let width = 0;
248
- if (__classPrivateFieldGet(this, _SkyViewkeeper_setWidth, "f")) {
249
- width = fixedStyles.elFixedWidth;
250
- }
251
- setElPosition(el, fixedStyles.elFixedLeft, fixedStyles.elFixedTop, width, __classPrivateFieldGet(this, _SkyViewkeeper_viewportMarginTop, "f"), fixedStyles.elClipTop, fixedStyles.elClipLeft);
252
- }, _SkyViewkeeper_getBoundaryInfo = function _SkyViewkeeper_getBoundaryInfo(el, boundaryEl) {
253
- const spacerId = __classPrivateFieldGet(this, _SkyViewkeeper_instances, "m", _SkyViewkeeper_getSpacerId).call(this);
254
- const spacerEl = document.getElementById(spacerId);
255
- const boundaryOffset = getOffset(boundaryEl, __classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f"));
256
- const boundaryTop = boundaryOffset.top;
257
- const boundaryBottom = boundaryTop + boundaryEl.getBoundingClientRect().height;
258
- const scrollLeft = __classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f")
259
- ? __classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f").scrollLeft
260
- : document.documentElement.scrollLeft;
261
- const scrollTop = __classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f")
262
- ? __classPrivateFieldGet(this, _SkyViewkeeper_scrollableHost, "f").scrollTop
263
- : document.documentElement.scrollTop;
264
- const elHeight = getHeightWithMargin(el);
265
- return {
266
- boundaryBottom,
267
- boundaryOffset,
268
- boundaryEl,
269
- elHeight,
270
- scrollLeft,
271
- scrollTop,
272
- spacerId,
273
- spacerEl,
274
- };
275
- };
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxNQUFNLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDO0FBQ3BELE1BQU0seUJBQXlCLEdBQUcscUJBQXFCLENBQUM7QUFFeEQsSUFBSSxPQUF5QixDQUFDO0FBQzlCLElBQUksV0FBbUIsQ0FBQztBQUV4QixTQUFTLGFBQWE7SUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7R0FDckMsb0JBQW9COzs7Ozs7O3FCQU9GLG9CQUFvQjs7OztDQUl4QyxDQUFDLENBQUM7UUFFQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3BDO0FBQ0gsQ0FBQztBQUVELFNBQVMsTUFBTTtJQUNiLFdBQVcsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFckMsT0FBTyxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FDaEIsRUFBZSxFQUNmLGNBQTRCO0lBRTVCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBRTFFLE9BQU87UUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcs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Q3JDLENBQUMsQ0FBQyx1QkFBQSxJQUFJLHFDQUFnQixDQUFDLFVBQVU7UUFDakMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO0lBQ3hDLE1BQU0sU0FBUyxHQUFHLHVCQUFBLElBQUkscUNBQWdCO1FBQ3BDLENBQUMsQ0FBQyx1QkFBQSxJQUFJLHFDQUFnQixDQUFDLFNBQVM7UUFDaEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBRXZDLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXpDLE9BQU87UUFDTCxjQUFjO1FBQ2QsY0FBYztRQUNkLFVBQVU7UUFDVixRQUFRO1FBQ1IsVUFBVTtRQUNWLFNBQVM7UUFDVCxRQUFRO1FBQ1IsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyB9IGZyb20gJy4vdmlld2tlZXBlci1ib3VuZGFyeS1pbmZvJztcbmltcG9ydCB7IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlcyB9IGZyb20gJy4vdmlld2tlZXBlci1maXhlZC1zdHlsZXMnO1xuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9mZnNldCB9IGZyb20gJy4vdmlld2tlZXBlci1vZmZzZXQnO1xuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9wdGlvbnMgfSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbmNvbnN0IENMU19WSUVXS0VFUEVSX0ZJWEVEID0gJ3NreS12aWV3a2VlcGVyLWZpeGVkJztcbmNvbnN0IEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMgPSAnYWZ0ZXJWaWV3a2VlcGVyU3luYyc7XG5cbmxldCBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50O1xubGV0IG5leHRJZEluZGV4OiBudW1iZXI7XG5cbmZ1bmN0aW9uIGVuc3VyZVN0eWxlRWwoKTogdm9pZCB7XG4gIGlmICghc3R5bGVFbCkge1xuICAgIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgY29uc3QgY3NzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYFxuLiR7Q0xTX1ZJRVdLRUVQRVJfRklYRUR9IHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDk5OTtcbiAgb3BhY2l0eTogMC45NTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNreS10aGVtZS1tb2Rlcm4gLiR7Q0xTX1ZJRVdLRUVQRVJfRklYRUR9IHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIG9wYWNpdHk6IGluaXRpYWw7XG59XG5gKTtcblxuICAgIHN0eWxlRWwuYXBwZW5kQ2hpbGQoY3NzKTtcblxuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbmV4dElkKCk6IHN0cmluZyB7XG4gIG5leHRJZEluZGV4ID0gKG5leHRJZEluZGV4IHx8IDApICsgMTtcblxuICByZXR1cm4gJ3ZpZXdrZWVwZXItJyArIG5leHRJZEluZGV4O1xufVxuXG5mdW5jdGlvbiBnZXRPZmZzZXQoXG4gIGVsOiBIVE1MRWxlbWVudCxcbiAgc2Nyb2xsYWJsZUhvc3Q/OiBIVE1MRWxlbWVudFxuKTogU2t5Vmlld2tlZXBlck9mZnNldCB7XG4gIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgcGFyZW50ID0gc2Nyb2xsYWJsZUhvc3QgPyBzY3JvbGxhYmxlSG9zdCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICByZXR1cm4ge1xuICAgIHRvcDogcmVjdC50b3AgKyBwYXJlbnQuc2Nyb2xsVG9wLFxuICAgIGxlZnQ6IHJlY3QubGVmdCArIHBhcmVudC5zY3JvbGxMZWZ0LFxuICB9O1xufVxuXG5mdW5jdGlvbiBweCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHB4VmFsdWUgPSB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkgOiAnJztcblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHB4VmFsdWUgPSB2YWx1ZSArICdweCc7XG4gIH1cblxuICByZXR1cm4gcHhWYWx1ZTtcbn1cblxuZnVuY3Rpb24gc2V0RWxQb3NpdGlvbihcbiAgZWw6IEhUTUxFbGVtZW50LFxuICBsZWZ0OiBudW1iZXIgfCBzdHJpbmcsXG4gIHRvcDogbnVtYmVyIHwgc3RyaW5nLFxuICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nLFxuICBtYXJnaW5Ub3A6IG51bWJlciB8IHN0cmluZyxcbiAgY2xpcFRvcDogbnVtYmVyIHwgc3RyaW5nLFxuICBjbGlwTGVmdDogbnVtYmVyIHwgc3RyaW5nXG4pOiB2b2lkIHtcbiAgZWwuc3R5bGUudG9wID0gcHgodG9wKTtcbiAgZWwuc3R5bGUubGVmdCA9IHB4KGxlZnQpO1xuICBlbC5zdHlsZS5tYXJnaW5Ub3AgPSBweChtYXJnaW5Ub3ApO1xuICBlbC5zdHlsZS5jbGlwUGF0aCA9XG4gICAgY2xpcFRvcCB8fCBjbGlwTGVmdCA/IGBpbnNldCgke3B4KGNsaXBUb3ApfSAwIDAgJHtweChjbGlwTGVmdCl9KWAgOiAnbm9uZSc7XG5cbiAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gIC8qIHNhbml0eSBjaGVjayAqL1xuICBpZiAod2lkdGggIT09IG51bGwpIHtcbiAgICBlbC5zdHlsZS53aWR0aCA9IHB4KHdpZHRoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRIZWlnaHRXaXRoTWFyZ2luKGVsOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsKTtcblxuICByZXR1cm4gKFxuICAgIGVsLm9mZnNldEhlaWdodCArXG4gICAgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Ub3AsIDEwKSArXG4gICAgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20sIDEwKVxuICApO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDdXN0b21FdmVudChuYW1lOiBhbnkpOiBDdXN0b21FdmVudDxhbnk+IHtcbiAgY29uc3QgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG5cbiAgZXZ0LmluaXRDdXN0b21FdmVudChuYW1lLCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCk7XG5cbiAgcmV0dXJuIGV2dDtcbn1cblxuZXhwb3J0IGNsYXNzIFNreVZpZXdrZWVwZXIge1xuICAjYm91bmRhcnlFbDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI2VsOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAjaWQ6IHN0cmluZztcblxuICAjc2V0V2lkdGg6IGJvb2xlYW47XG5cbiAgI3ZlcnRpY2FsT2Zmc2V0OiBudW1iZXI7XG5cbiAgI3ZlcnRpY2FsT2Zmc2V0RWw6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICN2aWV3cG9ydE1hcmdpblRvcCA9IDA7XG5cbiAgI2N1cnJlbnRFbEZpeGVkTGVmdDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50RWxGaXhlZFRvcDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50RWxGaXhlZFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI2N1cnJlbnRFbENsaXBMZWZ0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI2N1cnJlbnRFbENsaXBUb3A6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjaXNEZXN0cm95ZWQgPSBmYWxzZTtcblxuICAjc2Nyb2xsYWJsZUhvc3Q6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICNzeW5jRWxQb3NpdGlvbkhhbmRsZXI6ICgpID0+IHZvaWQ7XG5cbiAgI2ludGVyc2VjdGlvbk9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlciB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTa3lWaWV3a2VlcGVyT3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIHt9O1xuXG4gICAgdGhpcy4jZWwgPSBvcHRpb25zLmVsO1xuICAgIHRoaXMuI2JvdW5kYXJ5RWwgPSBvcHRpb25zLmJvdW5kYXJ5RWw7XG5cbiAgICBpZiAoIXRoaXMuI2VsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tTa3lWaWV3a2VlcGVyXSBUaGUgb3B0aW9uIGBlbGAgaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLiNib3VuZGFyeUVsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tTa3lWaWV3a2VlcGVyXSBUaGUgb3B0aW9uIGBib3VuZGFyeUVsYCBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbCA9IHRoaXMuI2VsO1xuICAgIGNvbnN0IGJvdW5kYXJ5RWwgPSB0aGlzLiNib3VuZGFyeUVsO1xuXG4gICAgdGhpcy4jc2V0V2lkdGggPSAhIW9wdGlvbnMuc2V0V2lkdGg7XG4gICAgdGhpcy4jaWQgPSBuZXh0SWQoKTtcbiAgICB0aGlzLiNzY3JvbGxhYmxlSG9zdCA9IG9wdGlvbnMuc2Nyb2xsYWJsZUhvc3Q7XG4gICAgdGhpcy4jdmVydGljYWxPZmZzZXQgPSBvcHRpb25zLnZlcnRpY2FsT2Zmc2V0IHx8IDA7XG4gICAgdGhpcy4jdmVydGljYWxPZmZzZXRFbCA9IG9wdGlvbnMudmVydGljYWxPZmZzZXRFbDtcblxuICAgIC8vIE9ubHkgc2V0IHZpZXdwb3J0IG1hcmdpbiBpZiB0aGUgc2Nyb2xsYWJsZSBob3N0IGlzIHVuZGVmaW5lZC5cbiAgICBpZiAoIXRoaXMuI3Njcm9sbGFibGVIb3N0KSB7XG4gICAgICB0aGlzLiN2aWV3cG9ydE1hcmdpblRvcCA9IG9wdGlvbnMudmlld3BvcnRNYXJnaW5Ub3AgPz8gMDtcbiAgICB9XG5cbiAgICB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIgPSAoKSA9PiB0aGlzLnN5bmNFbFBvc2l0aW9uKGVsLCBib3VuZGFyeUVsKTtcblxuICAgIGlmICh0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsKSB7XG4gICAgICB0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgIEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMsXG4gICAgICAgIHRoaXMuI3N5bmNFbFBvc2l0aW9uSGFuZGxlclxuICAgICAgKTtcbiAgICB9XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy4jc3luY0VsUG9zaXRpb25IYW5kbGVyLCB0cnVlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy4jc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLCB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuXG4gICAgZW5zdXJlU3R5bGVFbCgpO1xuXG4gICAgdGhpcy5zeW5jRWxQb3NpdGlvbihlbCwgYm91bmRhcnlFbCk7XG4gIH1cblxuICBwdWJsaWMgc3luY0VsUG9zaXRpb24oZWw6IEhUTUxFbGVtZW50LCBib3VuZGFyeUVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0ID0gdGhpcy4jY2FsY3VsYXRlVmVydGljYWxPZmZzZXQoKTtcblxuICAgIC8vIFdoZW4gdGhlIGVsZW1lbnQgaXNuJ3QgdmlzaWJsZSwgaXRzIHNpemUgY2FuJ3QgYmUgY2FsY3VsYXRlZCwgc28gZG9uJ3QgYXR0ZW1wdCBzeW5jaW5nIHBvc2l0aW9uIGluIHRoaXMgY2FzZS5cbiAgICBpZiAoZWwub2Zmc2V0V2lkdGggPT09IDAgJiYgZWwub2Zmc2V0SGVpZ2h0ID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYm91bmRhcnlJbmZvID0gdGhpcy4jZ2V0Qm91bmRhcnlJbmZvKGVsLCBib3VuZGFyeUVsKTtcbiAgICBjb25zdCBmaXhlZFN0eWxlcyA9IHRoaXMuI2dldEZpeGVkU3R5bGVzKGJvdW5kYXJ5SW5mbywgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgY29uc3QgZG9GaXhFbCA9IHRoaXMuI3Nob3VsZEZpeEVsKGVsLCBib3VuZGFyeUluZm8sIHZlcnRpY2FsT2Zmc2V0KTtcblxuICAgIGlmICh0aGlzLiNuZWVkc1VwZGF0aW5nKGRvRml4RWwsIGZpeGVkU3R5bGVzKSkge1xuICAgICAgaWYgKGRvRml4RWwpIHtcbiAgICAgICAgdGhpcy4jZml4RWwoZWwsIGJvdW5kYXJ5SW5mbywgZml4ZWRTdHlsZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jdW5maXhFbChlbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZXZ0ID0gY3JlYXRlQ3VzdG9tRXZlbnQoRVZUX0FGVEVSX1ZJRVdLRUVQRVJfU1lOQyk7XG5cbiAgICBlbC5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI2lzRGVzdHJveWVkKSB7XG4gICAgICB0aGlzLiNpbnRlcnNlY3Rpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuI3N5bmNFbFBvc2l0aW9uSGFuZGxlciwgdHJ1ZSk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy4jc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAnb3JpZW50YXRpb25jaGFuZ2UnLFxuICAgICAgICB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXJcbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLiNlbCkge1xuICAgICAgICB0aGlzLiN1bmZpeEVsKHRoaXMuI2VsKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuI3ZlcnRpY2FsT2Zmc2V0RWwpIHtcbiAgICAgICAgdGhpcy4jdmVydGljYWxPZmZzZXRFbC5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgIEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMsXG4gICAgICAgICAgdGhpcy4jc3luY0VsUG9zaXRpb25IYW5kbGVyXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2VsID0gdGhpcy4jYm91bmRhcnlFbCA9IHRoaXMuI3ZlcnRpY2FsT2Zmc2V0RWwgPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMuI2lzRGVzdHJveWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAjZ2V0U3BhY2VySWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jaWQgKyAnLXNwYWNlcic7XG4gIH1cblxuICAjdW5maXhFbChlbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuI2dldFNwYWNlcklkKCkpO1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHNwYWNlckVsPy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICBzcGFjZXJFbC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHNwYWNlckVsKTtcbiAgICB9XG5cbiAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKENMU19WSUVXS0VFUEVSX0ZJWEVEKTtcblxuICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkTGVmdCA9XG4gICAgICB0aGlzLiNjdXJyZW50RWxGaXhlZFRvcCA9XG4gICAgICB0aGlzLiNjdXJyZW50RWxGaXhlZFdpZHRoID1cbiAgICAgICAgdW5kZWZpbmVkO1xuXG4gICAgbGV0IHdpZHRoID0gJyc7XG5cbiAgICBpZiAodGhpcy4jc2V0V2lkdGgpIHtcbiAgICAgIHdpZHRoID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHNldEVsUG9zaXRpb24oZWwsICcnLCAnJywgd2lkdGgsICcnLCAwLCAwKTtcbiAgfVxuXG4gICNjYWxjdWxhdGVWZXJ0aWNhbE9mZnNldCgpOiBudW1iZXIge1xuICAgIGxldCBvZmZzZXQgPSB0aGlzLiN2ZXJ0aWNhbE9mZnNldDtcblxuICAgIGlmICh0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsKSB7XG4gICAgICBjb25zdCB2ZXJ0aWNhbE9mZnNldEVsVG9wU3R5bGUgPSB0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsLnN0eWxlLnRvcDtcbiAgICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0RWxUb3AgPSBwYXJzZUludCh2ZXJ0aWNhbE9mZnNldEVsVG9wU3R5bGUsIDEwKSB8fCAwO1xuXG4gICAgICBvZmZzZXQgKz0gdGhpcy4jdmVydGljYWxPZmZzZXRFbC5vZmZzZXRIZWlnaHQgKyB2ZXJ0aWNhbE9mZnNldEVsVG9wO1xuICAgIH0gZWxzZSBpZiAodGhpcy4jc2Nyb2xsYWJsZUhvc3QpIHtcbiAgICAgIG9mZnNldCArPSB0aGlzLiNzY3JvbGxhYmxlSG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mZnNldDtcbiAgfVxuXG4gICNzaG91bGRGaXhFbChcbiAgICBlbDogSFRNTEVsZW1lbnQsXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXJcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IGFuY2hvclRvcDogbnVtYmVyO1xuXG4gICAgaWYgKGJvdW5kYXJ5SW5mby5zcGFjZXJFbCkge1xuICAgICAgYW5jaG9yVG9wID0gZ2V0T2Zmc2V0KGJvdW5kYXJ5SW5mby5zcGFjZXJFbCwgdGhpcy4jc2Nyb2xsYWJsZUhvc3QpLnRvcDtcbiAgICB9IGVsc2Uge1xuICAgICAgYW5jaG9yVG9wID0gZ2V0T2Zmc2V0KGVsLCB0aGlzLiNzY3JvbGxhYmxlSG9zdCkudG9wO1xuICAgIH1cblxuICAgIGNvbnN0IGRvRml4RWwgPVxuICAgICAgYm91bmRhcnlJbmZvLnNjcm9sbFRvcCArIHZlcnRpY2FsT2Zmc2V0ICsgdGhpcy4jdmlld3BvcnRNYXJnaW5Ub3AgPlxuICAgICAgYW5jaG9yVG9wO1xuXG4gICAgcmV0dXJuIGRvRml4RWw7XG4gIH1cblxuICAjZ2V0Rml4ZWRTdHlsZXMoXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXJcbiAgKTogU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzIHtcbiAgICAvLyBJZiB0aGUgZWxlbWVudCBuZWVkcyB0byBiZSBmaXhlZCwgdGhpcyB3aWxsIGNhbGN1bGF0ZSBpdHMgcG9zaXRpb24uICBUaGUgcG9zaXRpb25cbiAgICAvLyB3aWxsIGJlIDAgKGZ1bGx5IHZpc2libGUpIHVubGVzcyB0aGUgdXNlciBpcyBzY3JvbGxpbmcgdGhlIGJvdW5kYXJ5IG91dCBvZiB2aWV3LlxuICAgIC8vIEluIHRoYXQgY2FzZSwgdGhlIGVsZW1lbnQgc2hvdWxkIGJlZ2luIHRvIHNjcm9sbCBvdXQgb2YgdmlldyB3aXRoIHRoZVxuICAgIC8vIHJlc3Qgb2YgdGhlIGJvdW5kYXJ5IGJ5IHNldHRpbmcgaXRzIHRvcCBwb3NpdGlvbiB0byBhIG5lZ2F0aXZlIHZhbHVlLlxuICAgIGNvbnN0IGVsVG9wID1cbiAgICAgIGJvdW5kYXJ5SW5mby5ib3VuZGFyeUJvdHRvbSAtXG4gICAgICBib3VuZGFyeUluZm8uZWxIZWlnaHQgLVxuICAgICAgYm91bmRhcnlJbmZvLnNjcm9sbFRvcDtcbiAgICBjb25zdCBlbENsaXBUb3AgPSBlbFRvcCA8IHZlcnRpY2FsT2Zmc2V0ID8gdmVydGljYWxPZmZzZXQgLSBlbFRvcCA6IDA7XG4gICAgY29uc3QgZWxGaXhlZFRvcCA9IE1hdGgubWluKGVsVG9wLCB2ZXJ0aWNhbE9mZnNldCk7XG5cbiAgICBjb25zdCBlbEZpeGVkV2lkdGggPSBib3VuZGFyeUluZm8uYm91bmRhcnlFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICBjb25zdCBlbEZpeGVkTGVmdCA9XG4gICAgICBib3VuZGFyeUluZm8uYm91bmRhcnlPZmZzZXQubGVmdCAtIGJvdW5kYXJ5SW5mby5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IGVsQ2xpcExlZnQgPSBlbEZpeGVkTGVmdCA8IDAgPyAwIC0gZWxGaXhlZExlZnQgOiAwO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVsRml4ZWRMZWZ0LFxuICAgICAgZWxGaXhlZFRvcCxcbiAgICAgIGVsRml4ZWRXaWR0aCxcbiAgICAgIGVsQ2xpcExlZnQsXG4gICAgICBlbENsaXBUb3AsXG4gICAgfTtcbiAgfVxuXG4gICNuZWVkc1VwZGF0aW5nKFxuICAgIGRvRml4RWw6IGJvb2xlYW4sXG4gICAgZml4ZWRTdHlsZXM6IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlc1xuICApOiBib29sZWFuIHtcbiAgICBpZiAoXG4gICAgICAoZG9GaXhFbCAmJlxuICAgICAgICB0aGlzLiNjdXJyZW50RWxGaXhlZExlZnQgPT09IGZpeGVkU3R5bGVzLmVsRml4ZWRMZWZ0ICYmXG4gICAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkVG9wID09PSBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wICYmXG4gICAgICAgIHRoaXMuI2N1cnJlbnRFbENsaXBMZWZ0ID09PSBmaXhlZFN0eWxlcy5lbENsaXBMZWZ0ICYmXG4gICAgICAgIHRoaXMuI2N1cnJlbnRFbENsaXBUb3AgPT09IGZpeGVkU3R5bGVzLmVsQ2xpcFRvcCAmJlxuICAgICAgICB0aGlzLiNjdXJyZW50RWxGaXhlZFdpZHRoID09PSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGgpIHx8XG4gICAgICAoIWRvRml4RWwgJiZcbiAgICAgICAgIShcbiAgICAgICAgICB0aGlzLiNjdXJyZW50RWxGaXhlZExlZnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkTGVmdCAhPT0gbnVsbFxuICAgICAgICApKVxuICAgICkge1xuICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgZWl0aGVyIGN1cnJlbnRseSBmaXhlZCBhbmQgaXRzIHBvc2l0aW9uIGFuZCB3aWR0aCBkbyBub3QgbmVlZFxuICAgICAgLy8gdG8gY2hhbmdlLCBvciB0aGUgZWxlbWVudCBpcyBub3QgY3VycmVudGx5IGZpeGVkIGFuZCBkb2VzIG5vdCBuZWVkIHRvIGJlIGZpeGVkLlxuICAgICAgLy8gTm8gY2hhbmdlcyBhcmUgbmVlZGVkLlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgI2ZpeEVsKFxuICAgIGVsOiBIVE1MRWxlbWVudCxcbiAgICBib3VuZGFyeUluZm86IFNreVZpZXdrZWVwZXJCb3VuZGFyeUluZm8sXG4gICAgZml4ZWRTdHlsZXM6IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlc1xuICApOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmICghYm91bmRhcnlJbmZvLnNwYWNlckVsKSB7XG4gICAgICBjb25zdCBzcGFjZXJIZWlnaHQgPSBib3VuZGFyeUluZm8uZWxIZWlnaHQ7XG5cbiAgICAgIGNvbnN0IHNwYWNlckVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBzcGFjZXJFbC5pZCA9IGJvdW5kYXJ5SW5mby5zcGFjZXJJZDtcbiAgICAgIHNwYWNlckVsLnN0eWxlLmhlaWdodCA9IHB4KHNwYWNlckhlaWdodCk7XG5cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgICAgaWYgKGVsLnBhcmVudE5vZGUpIHtcbiAgICAgICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc3BhY2VyRWwsIGVsLm5leHRTaWJsaW5nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBlbC5jbGFzc0xpc3QuYWRkKENMU19WSUVXS0VFUEVSX0ZJWEVEKTtcblxuICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkVG9wID0gZml4ZWRTdHlsZXMuZWxGaXhlZFRvcDtcbiAgICB0aGlzLiNjdXJyZW50RWxGaXhlZExlZnQgPSBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdDtcbiAgICB0aGlzLiNjdXJyZW50RWxDbGlwVG9wID0gZml4ZWRTdHlsZXMuZWxDbGlwVG9wO1xuICAgIHRoaXMuI2N1cnJlbnRFbENsaXBMZWZ0ID0gZml4ZWRTdHlsZXMuZWxDbGlwTGVmdDtcbiAgICB0aGlzLiNjdXJyZW50RWxGaXhlZFdpZHRoID0gZml4ZWRTdHlsZXMuZWxGaXhlZFdpZHRoO1xuXG4gICAgbGV0IHdpZHRoID0gMDtcblxuICAgIGlmICh0aGlzLiNzZXRXaWR0aCkge1xuICAgICAgd2lkdGggPSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0RWxQb3NpdGlvbihcbiAgICAgIGVsLFxuICAgICAgZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQsXG4gICAgICBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wLFxuICAgICAgd2lkdGgsXG4gICAgICB0aGlzLiN2aWV3cG9ydE1hcmdpblRvcCxcbiAgICAgIGZpeGVkU3R5bGVzLmVsQ2xpcFRvcCxcbiAgICAgIGZpeGVkU3R5bGVzLmVsQ2xpcExlZnRcbiAgICApO1xuICB9XG5cbiAgI2dldEJvdW5kYXJ5SW5mbyhcbiAgICBlbDogSFRNTEVsZW1lbnQsXG4gICAgYm91bmRhcnlFbDogSFRNTEVsZW1lbnRcbiAgKTogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyB7XG4gICAgY29uc3Qgc3BhY2VySWQgPSB0aGlzLiNnZXRTcGFjZXJJZCgpO1xuXG4gICAgY29uc3Qgc3BhY2VyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzcGFjZXJJZCk7XG5cbiAgICBjb25zdCBib3VuZGFyeU9mZnNldCA9IGdldE9mZnNldChib3VuZGFyeUVsLCB0aGlzLiNzY3JvbGxhYmxlSG9zdCk7XG4gICAgY29uc3QgYm91bmRhcnlUb3AgPSBib3VuZGFyeU9mZnNldC50b3A7XG4gICAgY29uc3QgYm91bmRhcnlCb3R0b20gPVxuICAgICAgYm91bmRhcnlUb3AgKyBib3VuZGFyeUVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuICAgIGNvbnN0IHNjcm9sbExlZnQgPSB0aGlzLiNzY3JvbGxhYmxlSG9zdFxuICAgICAgPyB0aGlzLiNzY3JvbGxhYmxlSG9zdC5zY3JvbGxMZWZ0XG4gICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuI3Njcm9sbGFibGVIb3N0XG4gICAgICA/IHRoaXMuI3Njcm9sbGFibGVIb3N0LnNjcm9sbFRvcFxuICAgICAgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuXG4gICAgY29uc3QgZWxIZWlnaHQgPSBnZXRIZWlnaHRXaXRoTWFyZ2luKGVsKTtcblxuICAgIHJldHVybiB7XG4gICAgICBib3VuZGFyeUJvdHRvbSxcbiAgICAgIGJvdW5kYXJ5T2Zmc2V0LFxuICAgICAgYm91bmRhcnlFbCxcbiAgICAgIGVsSGVpZ2h0LFxuICAgICAgc2Nyb2xsTGVmdCxcbiAgICAgIHNjcm9sbFRvcCxcbiAgICAgIHNwYWNlcklkLFxuICAgICAgc3BhY2VyRWwsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,42 +0,0 @@
1
- var _SkyViewkeeperService_hostOptions;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Injectable, Optional } from '@angular/core';
4
- import { SkyViewkeeper } from './viewkeeper';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./viewkeeper-host-options";
7
- /**
8
- * Provides methods for creating and destroying viewkeeper instances.
9
- */
10
- export class SkyViewkeeperService {
11
- constructor(hostOptions) {
12
- _SkyViewkeeperService_hostOptions.set(this, void 0);
13
- __classPrivateFieldSet(this, _SkyViewkeeperService_hostOptions, hostOptions, "f");
14
- }
15
- /**
16
- *
17
- * @param options Creates a viewkeeper instance, applying host options where applicable.
18
- */
19
- create(options) {
20
- options = Object.assign({}, __classPrivateFieldGet(this, _SkyViewkeeperService_hostOptions, "f") || {}, options);
21
- return new SkyViewkeeper(options);
22
- }
23
- /**
24
- * Destroys a viewkeeper instance.
25
- * @param vk Viewkeeper instance to destroy.
26
- */
27
- destroy(vk) {
28
- vk.destroy();
29
- }
30
- }
31
- _SkyViewkeeperService_hostOptions = new WeakMap();
32
- SkyViewkeeperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyViewkeeperService, deps: [{ token: i1.SkyViewkeeperHostOptions, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
33
- SkyViewkeeperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyViewkeeperService, providedIn: 'root' });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyViewkeeperService, decorators: [{
35
- type: Injectable,
36
- args: [{
37
- providedIn: 'root',
38
- }]
39
- }], ctorParameters: function () { return [{ type: i1.SkyViewkeeperHostOptions, decorators: [{
40
- type: Optional
41
- }] }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBSTdDOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUF3QixXQUFzQztRQUY5RCxvREFBbUQ7UUFHakQsdUJBQUEsSUFBSSxxQ0FBZ0IsV0FBVyxNQUFBLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxPQUE2QjtRQUN6QyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsdUJBQUEsSUFBSSx5Q0FBYSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU5RCxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPLENBQUMsRUFBaUI7UUFDOUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQzs7O2lIQXZCVSxvQkFBb0I7cUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUljLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lWaWV3a2VlcGVyIH0gZnJvbSAnLi92aWV3a2VlcGVyJztcbmltcG9ydCB7IFNreVZpZXdrZWVwZXJIb3N0T3B0aW9ucyB9IGZyb20gJy4vdmlld2tlZXBlci1ob3N0LW9wdGlvbnMnO1xuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9wdGlvbnMgfSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgY3JlYXRpbmcgYW5kIGRlc3Ryb3lpbmcgdmlld2tlZXBlciBpbnN0YW5jZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lWaWV3a2VlcGVyU2VydmljZSB7XG4gICNob3N0T3B0aW9uczogU2t5Vmlld2tlZXBlckhvc3RPcHRpb25zIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIGhvc3RPcHRpb25zPzogU2t5Vmlld2tlZXBlckhvc3RPcHRpb25zKSB7XG4gICAgdGhpcy4jaG9zdE9wdGlvbnMgPSBob3N0T3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBDcmVhdGVzIGEgdmlld2tlZXBlciBpbnN0YW5jZSwgYXBwbHlpbmcgaG9zdCBvcHRpb25zIHdoZXJlIGFwcGxpY2FibGUuXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlKG9wdGlvbnM6IFNreVZpZXdrZWVwZXJPcHRpb25zKTogU2t5Vmlld2tlZXBlciB7XG4gICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuI2hvc3RPcHRpb25zIHx8IHt9LCBvcHRpb25zKTtcblxuICAgIHJldHVybiBuZXcgU2t5Vmlld2tlZXBlcihvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyBhIHZpZXdrZWVwZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB2ayBWaWV3a2VlcGVyIGluc3RhbmNlIHRvIGRlc3Ryb3kuXG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSh2azogU2t5Vmlld2tlZXBlcik6IHZvaWQge1xuICAgIHZrLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
@@ -1,32 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';
3
- import { MockSkyMediaQueryService } from './mock-media-query.service';
4
- import { MockSkyUIConfigService } from './mock-ui-config.service';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * @internal
8
- */
9
- export class SkyCoreTestingModule {
10
- }
11
- SkyCoreTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyCoreTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- SkyCoreTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyCoreTestingModule });
13
- SkyCoreTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyCoreTestingModule, providers: [
14
- { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },
15
- {
16
- provide: SkyUIConfigService,
17
- useClass: MockSkyUIConfigService,
18
- },
19
- ] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyCoreTestingModule, decorators: [{
21
- type: NgModule,
22
- args: [{
23
- providers: [
24
- { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },
25
- {
26
- provide: SkyUIConfigService,
27
- useClass: MockSkyUIConfigService,
28
- },
29
- ],
30
- }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3Rlc3Rpbmcvc3JjL2NvcmUtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRWxFOztHQUVHO0FBVUgsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsYUFScEI7UUFDVCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUU7UUFDckU7WUFDRSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFFBQVEsRUFBRSxzQkFBc0I7U0FDakM7S0FDRjsyRkFFVSxvQkFBb0I7a0JBVGhDLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRTt3QkFDckU7NEJBQ0UsT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsUUFBUSxFQUFFLHNCQUFzQjt5QkFDakM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TWVkaWFRdWVyeVNlcnZpY2UsIFNreVVJQ29uZmlnU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgTW9ja1NreU1lZGlhUXVlcnlTZXJ2aWNlIH0gZnJvbSAnLi9tb2NrLW1lZGlhLXF1ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ja1NreVVJQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9jay11aS1jb25maWcuc2VydmljZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogU2t5TWVkaWFRdWVyeVNlcnZpY2UsIHVzZUNsYXNzOiBNb2NrU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTa3lVSUNvbmZpZ1NlcnZpY2UsXG4gICAgICB1c2VDbGFzczogTW9ja1NreVVJQ29uZmlnU2VydmljZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDb3JlVGVzdGluZ01vZHVsZSB7fVxuIl19
@@ -1,46 +0,0 @@
1
- import { Injectable, NgZone } from '@angular/core';
2
- import { SkyMediaBreakpoints, SkyMediaQueryService, } from '@skyux/core';
3
- import { BehaviorSubject } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * @internal
7
- */
8
- export class MockSkyMediaQueryService extends SkyMediaQueryService {
9
- get current() {
10
- return this.currentBreakpoints;
11
- }
12
- set current(breakpoints) {
13
- this.currentBreakpoints = breakpoints;
14
- }
15
- constructor() {
16
- super(new NgZone({
17
- enableLongStackTrace: true,
18
- }));
19
- this.currentMockSubject = new BehaviorSubject(this.current);
20
- this.currentBreakpoints = SkyMediaBreakpoints.md;
21
- }
22
- subscribe(listener) {
23
- return this.currentMockSubject.subscribe({
24
- next: (breakpoints) => {
25
- listener(breakpoints);
26
- },
27
- });
28
- }
29
- fire(args) {
30
- this.currentBreakpoints = args;
31
- this.currentMockSubject.next(this.currentBreakpoints);
32
- }
33
- /* istanbul ignore next */
34
- // eslint-disable-next-line @typescript-eslint/no-empty-function
35
- destroy() { }
36
- }
37
- MockSkyMediaQueryService.xs = '(max-width: 767px)';
38
- MockSkyMediaQueryService.sm = '(min-width: 768px) and (max-width: 991px)';
39
- MockSkyMediaQueryService.md = '(min-width: 992px) and (max-width: 1199px)';
40
- MockSkyMediaQueryService.lg = '(min-width: 1200px)';
41
- MockSkyMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MockSkyMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
42
- MockSkyMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MockSkyMediaQueryService });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
44
- type: Injectable
45
- }], ctorParameters: function () { return []; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1tZWRpYS1xdWVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvdGVzdGluZy9zcmMvbW9jay1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxtQkFBbUIsRUFFbkIsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztBQUVyRDs7R0FFRztBQUVILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxvQkFBb0I7SUFNaEUsSUFBb0IsT0FBTztRQUN6QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBb0IsT0FBTyxDQUFDLFdBQWdDO1FBQzFELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQVFEO1FBQ0UsS0FBSyxDQUNILElBQUksTUFBTSxDQUFDO1lBQ1Qsb0JBQW9CLEVBQUUsSUFBSTtTQUMzQixDQUFDLENBQ0gsQ0FBQztRQVhHLHVCQUFrQixHQUFHLElBQUksZUFBZSxDQUM3QyxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7UUFFUSx1QkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7SUFRdEQsQ0FBQztJQUVlLFNBQVMsQ0FBQyxRQUErQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLENBQUMsV0FBZ0MsRUFBRSxFQUFFO2dCQUN6QyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBeUI7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsZ0VBQWdFO0lBQ2hELE9BQU8sS0FBVSxDQUFDOztBQTFDWCwyQkFBRSxHQUFHLG9CQUFvQixDQUFDO0FBQzFCLDJCQUFFLEdBQUcsMkNBQTJDLENBQUM7QUFDakQsMkJBQUUsR0FBRyw0Q0FBNEMsQ0FBQztBQUNsRCwyQkFBRSxHQUFHLHFCQUFxQixDQUFDO3FIQUp2Qyx3QkFBd0I7eUhBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lNZWRpYUJyZWFrcG9pbnRzLFxuICBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIsXG4gIFNreU1lZGlhUXVlcnlTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb2NrU2t5TWVkaWFRdWVyeVNlcnZpY2UgZXh0ZW5kcyBTa3lNZWRpYVF1ZXJ5U2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgeHMgPSAnKG1heC13aWR0aDogNzY3cHgpJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzbSA9ICcobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgbWQgPSAnKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBsZyA9ICcobWluLXdpZHRoOiAxMjAwcHgpJztcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGN1cnJlbnQoKTogU2t5TWVkaWFCcmVha3BvaW50cyB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEJyZWFrcG9pbnRzO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHNldCBjdXJyZW50KGJyZWFrcG9pbnRzOiBTa3lNZWRpYUJyZWFrcG9pbnRzKSB7XG4gICAgdGhpcy5jdXJyZW50QnJlYWtwb2ludHMgPSBicmVha3BvaW50cztcbiAgfVxuXG4gIHB1YmxpYyBjdXJyZW50TW9ja1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreU1lZGlhQnJlYWtwb2ludHM+KFxuICAgIHRoaXMuY3VycmVudFxuICApO1xuXG4gIHByb3RlY3RlZCBjdXJyZW50QnJlYWtwb2ludHMgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFxuICAgICAgbmV3IE5nWm9uZSh7XG4gICAgICAgIGVuYWJsZUxvbmdTdGFja1RyYWNlOiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHN1YnNjcmliZShsaXN0ZW5lcjogU2t5TWVkaWFRdWVyeUxpc3RlbmVyKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TW9ja1N1YmplY3Quc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChicmVha3BvaW50czogU2t5TWVkaWFCcmVha3BvaW50cykgPT4ge1xuICAgICAgICBsaXN0ZW5lcihicmVha3BvaW50cyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZpcmUoYXJnczogU2t5TWVkaWFCcmVha3BvaW50cyk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEJyZWFrcG9pbnRzID0gYXJncztcbiAgICB0aGlzLmN1cnJlbnRNb2NrU3ViamVjdC5uZXh0KHRoaXMuY3VycmVudEJyZWFrcG9pbnRzKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHVibGljIG92ZXJyaWRlIGRlc3Ryb3koKTogdm9pZCB7fVxufVxuIl19
@@ -1,43 +0,0 @@
1
- import { ComponentHarness, HarnessPredicate, } from '@angular/cdk/testing';
2
- /**
3
- * Harness for interacting with an overlay component in tests.
4
- * @internal
5
- */
6
- export class SkyOverlayHarness extends ComponentHarness {
7
- /**
8
- * Gets a `HarnessPredicate` that can be used to search for a
9
- * `SkyOverlayHarness` that meets certain criteria.
10
- */
11
- static with(filters) {
12
- return new HarnessPredicate(SkyOverlayHarness, filters);
13
- }
14
- /**
15
- * Returns a child harness.
16
- */
17
- async queryHarness(harness) {
18
- return this.locatorForOptional(harness)();
19
- }
20
- /**
21
- * Returns child harnesses.
22
- */
23
- async queryHarnesses(harness) {
24
- return this.locatorForAll(harness)();
25
- }
26
- /**
27
- * Returns a child test element.
28
- */
29
- async querySelector(selector) {
30
- return this.locatorForOptional(selector)();
31
- }
32
- /**
33
- * Returns child test elements.
34
- */
35
- async querySelectorAll(selector) {
36
- return this.locatorForAll(selector)();
37
- }
38
- }
39
- /**
40
- * @internal
41
- */
42
- SkyOverlayHarness.hostSelector = 'sky-overlay';
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvdGVzdGluZy9zcmMvb3ZlcmxheS9vdmVybGF5LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixnQkFBZ0IsR0FHakIsTUFBTSxzQkFBc0IsQ0FBQztBQUk5Qjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZ0JBQWdCO0lBTXJEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQWlDO1FBRWpDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWSxDQUN2QixPQUF3QjtRQUV4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQ3pCLE9BQXdCO1FBRXhCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7UUFDekMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDNUMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7QUE3Q0Q7O0dBRUc7QUFDVyw4QkFBWSxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudEhhcm5lc3MsXG4gIEhhcm5lc3NQcmVkaWNhdGUsXG4gIEhhcm5lc3NRdWVyeSxcbiAgVGVzdEVsZW1lbnQsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5T3ZlcmxheUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9vdmVybGF5LWhhcm5lc3MtZmlsdGVycyc7XG5cbi8qKlxuICogSGFybmVzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhbiBvdmVybGF5IGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5T3ZlcmxheUhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2t5LW92ZXJsYXknO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lPdmVybGF5SGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreU92ZXJsYXlIYXJuZXNzRmlsdGVyc1xuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreU92ZXJsYXlIYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKFNreU92ZXJsYXlIYXJuZXNzLCBmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2hpbGQgaGFybmVzcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBxdWVyeUhhcm5lc3M8VCBleHRlbmRzIENvbXBvbmVudEhhcm5lc3M+KFxuICAgIGhhcm5lc3M6IEhhcm5lc3NRdWVyeTxUPlxuICApOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRvckZvck9wdGlvbmFsKGhhcm5lc3MpKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBjaGlsZCBoYXJuZXNzZXMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcXVlcnlIYXJuZXNzZXM8VCBleHRlbmRzIENvbXBvbmVudEhhcm5lc3M+KFxuICAgIGhhcm5lc3M6IEhhcm5lc3NRdWVyeTxUPlxuICApOiBQcm9taXNlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0b3JGb3JBbGwoaGFybmVzcykoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2hpbGQgdGVzdCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8VGVzdEVsZW1lbnQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRvckZvck9wdGlvbmFsKHNlbGVjdG9yKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgY2hpbGQgdGVzdCBlbGVtZW50cy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBxdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yOiBzdHJpbmcpOiBQcm9taXNlPFRlc3RFbGVtZW50W10+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yQWxsKHNlbGVjdG9yKSgpO1xuICB9XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- var _SkyComponentHarness_instances, _SkyComponentHarness_getSkyId;
2
- import { __classPrivateFieldGet } from "tslib";
3
- import { ComponentHarness, HarnessPredicate, } from '@angular/cdk/testing';
4
- /**
5
- * @internal
6
- */
7
- export class SkyComponentHarness extends ComponentHarness {
8
- constructor() {
9
- super(...arguments);
10
- _SkyComponentHarness_instances.add(this);
11
- }
12
- static getDataSkyIdPredicate(filters) {
13
- return new HarnessPredicate(this, filters).addOption('dataSkyId', filters.dataSkyId, (harness, text) => HarnessPredicate.stringMatches(__classPrivateFieldGet(harness, _SkyComponentHarness_instances, "m", _SkyComponentHarness_getSkyId).call(harness), text));
14
- }
15
- }
16
- _SkyComponentHarness_instances = new WeakSet(), _SkyComponentHarness_getSkyId = async function _SkyComponentHarness_getSkyId() {
17
- return (await this.host()).getAttribute('data-sky-id');
18
- };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS90ZXN0aW5nL3NyYy9zaGFyZWQvY29tcG9uZW50LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBSTlCOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixtQkFBb0IsU0FBUSxnQkFBZ0I7SUFBbEU7OztJQWdCQSxDQUFDO0lBZlcsTUFBTSxDQUFDLHFCQUFxQixDQUVwQyxPQUEwQjtRQUUxQixPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FDbEQsV0FBVyxFQUNYLE9BQU8sQ0FBQyxTQUFTLEVBQ2pCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ2hCLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyx1QkFBQSxPQUFPLHFFQUFVLE1BQWpCLE9BQU8sQ0FBWSxFQUFFLElBQUksQ0FBQyxDQUM1RCxDQUFDO0lBQ0osQ0FBQztDQUtGO2dGQUhDLEtBQUs7SUFDSCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudEhhcm5lc3MsXG4gIENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvcixcbiAgSGFybmVzc1ByZWRpY2F0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNreUNvbXBvbmVudEhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgcHJvdGVjdGVkIHN0YXRpYyBnZXREYXRhU2t5SWRQcmVkaWNhdGU8VCBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3M+KFxuICAgIHRoaXM6IENvbXBvbmVudEhhcm5lc3NDb25zdHJ1Y3RvcjxUPixcbiAgICBmaWx0ZXJzOiBTa3lIYXJuZXNzRmlsdGVyc1xuICApIHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUodGhpcywgZmlsdGVycykuYWRkT3B0aW9uKFxuICAgICAgJ2RhdGFTa3lJZCcsXG4gICAgICBmaWx0ZXJzLmRhdGFTa3lJZCxcbiAgICAgIChoYXJuZXNzLCB0ZXh0KSA9PlxuICAgICAgICBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoaGFybmVzcy4jZ2V0U2t5SWQoKSwgdGV4dClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgI2dldFNreUlkKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmdldEF0dHJpYnV0ZSgnZGF0YS1za3ktaWQnKTtcbiAgfVxufVxuIl19