@skyux/core 5.7.0 → 6.0.0-beta.1

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 (249) hide show
  1. package/documentation.json +4 -4
  2. package/esm2020/index.mjs +60 -0
  3. package/esm2020/lib/modules/adapter-service/adapter.module.mjs +16 -0
  4. package/esm2020/lib/modules/adapter-service/adapter.service.mjs +218 -0
  5. package/esm2020/lib/modules/adapter-service/focusable-children-options.mjs +2 -0
  6. package/esm2020/lib/modules/affix/affix-auto-fit-context.mjs +12 -0
  7. package/esm2020/lib/modules/affix/affix-config.mjs +2 -0
  8. package/esm2020/lib/modules/affix/affix-horizontal-alignment.mjs +2 -0
  9. package/esm2020/lib/modules/affix/affix-offset-change.mjs +2 -0
  10. package/esm2020/lib/modules/affix/affix-offset.mjs +2 -0
  11. package/esm2020/lib/modules/affix/affix-placement-change.mjs +2 -0
  12. package/esm2020/lib/modules/affix/affix-placement.mjs +2 -0
  13. package/esm2020/lib/modules/affix/affix-utils.mjs +18 -0
  14. package/esm2020/lib/modules/affix/affix-vertical-alignment.mjs +2 -0
  15. package/esm2020/lib/modules/affix/affix.directive.mjs +100 -0
  16. package/esm2020/lib/modules/affix/affix.module.mjs +18 -0
  17. package/esm2020/lib/modules/affix/affix.service.mjs +24 -0
  18. package/esm2020/lib/modules/affix/affixer.mjs +349 -0
  19. package/esm2020/lib/modules/affix/dom-utils.mjs +77 -0
  20. package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +80 -0
  21. package/esm2020/lib/modules/dock/dock-insert-component-config.mjs +2 -0
  22. package/esm2020/lib/modules/dock/dock-item-config.mjs +2 -0
  23. package/esm2020/lib/modules/dock/dock-item-reference.mjs +2 -0
  24. package/esm2020/lib/modules/dock/dock-item.mjs +29 -0
  25. package/esm2020/lib/modules/dock/dock-location.mjs +19 -0
  26. package/esm2020/lib/modules/dock/dock-options.mjs +2 -0
  27. package/esm2020/lib/modules/dock/dock.component.mjs +88 -0
  28. package/esm2020/lib/modules/dock/dock.module.mjs +19 -0
  29. package/esm2020/lib/modules/dock/dock.service.mjs +95 -0
  30. package/esm2020/lib/modules/dock/sort-by-stack-order.mjs +13 -0
  31. package/esm2020/lib/modules/dynamic-component/dynamic-component-location.mjs +27 -0
  32. package/esm2020/lib/modules/dynamic-component/dynamic-component-options.mjs +2 -0
  33. package/esm2020/lib/modules/dynamic-component/dynamic-component.module.mjs +17 -0
  34. package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +83 -0
  35. package/esm2020/lib/modules/format/app-format.mjs +18 -0
  36. package/esm2020/lib/modules/id/id.directive.mjs +34 -0
  37. package/esm2020/lib/modules/id/id.module.mjs +16 -0
  38. package/esm2020/lib/modules/log/log.module.mjs +16 -0
  39. package/esm2020/lib/modules/log/log.service.mjs +23 -0
  40. package/esm2020/lib/modules/media-query/media-breakpoints.mjs +20 -0
  41. package/esm2020/lib/modules/media-query/media-query-listener.mjs +2 -0
  42. package/esm2020/lib/modules/media-query/media-query.module.mjs +16 -0
  43. package/esm2020/lib/modules/media-query/media-query.service.mjs +121 -0
  44. package/esm2020/lib/modules/mutation/mutation-observer-service.mjs +16 -0
  45. package/esm2020/lib/modules/numeric/numeric-symbol.mjs +2 -0
  46. package/esm2020/lib/modules/numeric/numeric.module.mjs +20 -0
  47. package/esm2020/lib/modules/numeric/numeric.options.mjs +41 -0
  48. package/esm2020/lib/modules/numeric/numeric.pipe.mjs +82 -0
  49. package/esm2020/lib/modules/numeric/numeric.service.mjs +188 -0
  50. package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +41 -0
  51. package/esm2020/lib/modules/overlay/overlay-config.mjs +2 -0
  52. package/esm2020/lib/modules/overlay/overlay-context.mjs +10 -0
  53. package/esm2020/lib/modules/overlay/overlay-instance.mjs +55 -0
  54. package/esm2020/lib/modules/overlay/overlay.component.mjs +149 -0
  55. package/esm2020/lib/modules/overlay/overlay.module.mjs +17 -0
  56. package/esm2020/lib/modules/overlay/overlay.service.mjs +120 -0
  57. package/esm2020/lib/modules/percent-pipe/percent-pipe.module.mjs +20 -0
  58. package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +48 -0
  59. package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +184 -0
  60. package/esm2020/lib/modules/shared/number-format/number-format-utility.mjs +72 -0
  61. package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +50 -0
  62. package/esm2020/lib/modules/title/set-title-args.mjs +2 -0
  63. package/esm2020/lib/modules/title/title.service.mjs +31 -0
  64. package/esm2020/lib/modules/ui-config/ui-config.service.mjs +21 -0
  65. package/esm2020/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +2 -0
  66. package/esm2020/lib/modules/viewkeeper/viewkeeper-fixed-styles.mjs +2 -0
  67. package/esm2020/lib/modules/viewkeeper/viewkeeper-host-options.mjs +10 -0
  68. package/esm2020/lib/modules/viewkeeper/viewkeeper-offset.mjs +2 -0
  69. package/esm2020/lib/modules/viewkeeper/viewkeeper-options.mjs +2 -0
  70. package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +116 -0
  71. package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +251 -0
  72. package/esm2020/lib/modules/viewkeeper/viewkeeper.module.mjs +16 -0
  73. package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +39 -0
  74. package/esm2020/lib/modules/window/window-ref.mjs +30 -0
  75. package/esm2020/skyux-core.mjs +5 -0
  76. package/esm2020/testing/mock-media-query.service.mjs +41 -0
  77. package/esm2020/testing/mock-ui-config.service.mjs +59 -0
  78. package/esm2020/testing/public-api.mjs +3 -0
  79. package/esm2020/testing/skyux-core-testing.mjs +5 -0
  80. package/fesm2015/{skyux-core-testing.js → skyux-core-testing.mjs} +7 -7
  81. package/fesm2015/skyux-core-testing.mjs.map +1 -0
  82. package/fesm2015/skyux-core.mjs +3043 -0
  83. package/fesm2015/skyux-core.mjs.map +1 -0
  84. package/fesm2020/skyux-core-testing.mjs +103 -0
  85. package/fesm2020/skyux-core-testing.mjs.map +1 -0
  86. package/{fesm2015/skyux-core.js → fesm2020/skyux-core.mjs} +134 -150
  87. package/fesm2020/skyux-core.mjs.map +1 -0
  88. package/package.json +32 -11
  89. package/testing/package.json +5 -5
  90. package/bundles/skyux-core-testing.umd.js +0 -459
  91. package/bundles/skyux-core.umd.js +0 -3648
  92. package/esm2015/index.js +0 -60
  93. package/esm2015/index.js.map +0 -1
  94. package/esm2015/lib/modules/adapter-service/adapter.module.js +0 -16
  95. package/esm2015/lib/modules/adapter-service/adapter.module.js.map +0 -1
  96. package/esm2015/lib/modules/adapter-service/adapter.service.js +0 -218
  97. package/esm2015/lib/modules/adapter-service/adapter.service.js.map +0 -1
  98. package/esm2015/lib/modules/adapter-service/focusable-children-options.js +0 -2
  99. package/esm2015/lib/modules/adapter-service/focusable-children-options.js.map +0 -1
  100. package/esm2015/lib/modules/affix/affix-auto-fit-context.js +0 -12
  101. package/esm2015/lib/modules/affix/affix-auto-fit-context.js.map +0 -1
  102. package/esm2015/lib/modules/affix/affix-config.js +0 -2
  103. package/esm2015/lib/modules/affix/affix-config.js.map +0 -1
  104. package/esm2015/lib/modules/affix/affix-horizontal-alignment.js +0 -2
  105. package/esm2015/lib/modules/affix/affix-horizontal-alignment.js.map +0 -1
  106. package/esm2015/lib/modules/affix/affix-offset-change.js +0 -2
  107. package/esm2015/lib/modules/affix/affix-offset-change.js.map +0 -1
  108. package/esm2015/lib/modules/affix/affix-offset.js +0 -2
  109. package/esm2015/lib/modules/affix/affix-offset.js.map +0 -1
  110. package/esm2015/lib/modules/affix/affix-placement-change.js +0 -2
  111. package/esm2015/lib/modules/affix/affix-placement-change.js.map +0 -1
  112. package/esm2015/lib/modules/affix/affix-placement.js +0 -2
  113. package/esm2015/lib/modules/affix/affix-placement.js.map +0 -1
  114. package/esm2015/lib/modules/affix/affix-utils.js +0 -18
  115. package/esm2015/lib/modules/affix/affix-utils.js.map +0 -1
  116. package/esm2015/lib/modules/affix/affix-vertical-alignment.js +0 -2
  117. package/esm2015/lib/modules/affix/affix-vertical-alignment.js.map +0 -1
  118. package/esm2015/lib/modules/affix/affix.directive.js +0 -100
  119. package/esm2015/lib/modules/affix/affix.directive.js.map +0 -1
  120. package/esm2015/lib/modules/affix/affix.module.js +0 -18
  121. package/esm2015/lib/modules/affix/affix.module.js.map +0 -1
  122. package/esm2015/lib/modules/affix/affix.service.js +0 -24
  123. package/esm2015/lib/modules/affix/affix.service.js.map +0 -1
  124. package/esm2015/lib/modules/affix/affixer.js +0 -349
  125. package/esm2015/lib/modules/affix/affixer.js.map +0 -1
  126. package/esm2015/lib/modules/affix/dom-utils.js +0 -77
  127. package/esm2015/lib/modules/affix/dom-utils.js.map +0 -1
  128. package/esm2015/lib/modules/dock/dock-dom-adapter.service.js +0 -80
  129. package/esm2015/lib/modules/dock/dock-dom-adapter.service.js.map +0 -1
  130. package/esm2015/lib/modules/dock/dock-insert-component-config.js +0 -2
  131. package/esm2015/lib/modules/dock/dock-insert-component-config.js.map +0 -1
  132. package/esm2015/lib/modules/dock/dock-item-config.js +0 -2
  133. package/esm2015/lib/modules/dock/dock-item-config.js.map +0 -1
  134. package/esm2015/lib/modules/dock/dock-item-reference.js +0 -2
  135. package/esm2015/lib/modules/dock/dock-item-reference.js.map +0 -1
  136. package/esm2015/lib/modules/dock/dock-item.js +0 -29
  137. package/esm2015/lib/modules/dock/dock-item.js.map +0 -1
  138. package/esm2015/lib/modules/dock/dock-location.js +0 -19
  139. package/esm2015/lib/modules/dock/dock-location.js.map +0 -1
  140. package/esm2015/lib/modules/dock/dock-options.js +0 -2
  141. package/esm2015/lib/modules/dock/dock-options.js.map +0 -1
  142. package/esm2015/lib/modules/dock/dock.component.js +0 -95
  143. package/esm2015/lib/modules/dock/dock.component.js.map +0 -1
  144. package/esm2015/lib/modules/dock/dock.module.js +0 -20
  145. package/esm2015/lib/modules/dock/dock.module.js.map +0 -1
  146. package/esm2015/lib/modules/dock/dock.service.js +0 -95
  147. package/esm2015/lib/modules/dock/dock.service.js.map +0 -1
  148. package/esm2015/lib/modules/dock/sort-by-stack-order.js +0 -13
  149. package/esm2015/lib/modules/dock/sort-by-stack-order.js.map +0 -1
  150. package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js +0 -27
  151. package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js.map +0 -1
  152. package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js +0 -2
  153. package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js.map +0 -1
  154. package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js +0 -17
  155. package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js.map +0 -1
  156. package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js +0 -83
  157. package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js.map +0 -1
  158. package/esm2015/lib/modules/format/app-format.js +0 -18
  159. package/esm2015/lib/modules/format/app-format.js.map +0 -1
  160. package/esm2015/lib/modules/id/id.directive.js +0 -34
  161. package/esm2015/lib/modules/id/id.directive.js.map +0 -1
  162. package/esm2015/lib/modules/id/id.module.js +0 -16
  163. package/esm2015/lib/modules/id/id.module.js.map +0 -1
  164. package/esm2015/lib/modules/log/log.module.js +0 -16
  165. package/esm2015/lib/modules/log/log.module.js.map +0 -1
  166. package/esm2015/lib/modules/log/log.service.js +0 -23
  167. package/esm2015/lib/modules/log/log.service.js.map +0 -1
  168. package/esm2015/lib/modules/media-query/media-breakpoints.js +0 -20
  169. package/esm2015/lib/modules/media-query/media-breakpoints.js.map +0 -1
  170. package/esm2015/lib/modules/media-query/media-query-listener.js +0 -2
  171. package/esm2015/lib/modules/media-query/media-query-listener.js.map +0 -1
  172. package/esm2015/lib/modules/media-query/media-query.module.js +0 -16
  173. package/esm2015/lib/modules/media-query/media-query.module.js.map +0 -1
  174. package/esm2015/lib/modules/media-query/media-query.service.js +0 -121
  175. package/esm2015/lib/modules/media-query/media-query.service.js.map +0 -1
  176. package/esm2015/lib/modules/mutation/mutation-observer-service.js +0 -16
  177. package/esm2015/lib/modules/mutation/mutation-observer-service.js.map +0 -1
  178. package/esm2015/lib/modules/numeric/numeric-symbol.js +0 -2
  179. package/esm2015/lib/modules/numeric/numeric-symbol.js.map +0 -1
  180. package/esm2015/lib/modules/numeric/numeric.module.js +0 -20
  181. package/esm2015/lib/modules/numeric/numeric.module.js.map +0 -1
  182. package/esm2015/lib/modules/numeric/numeric.options.js +0 -41
  183. package/esm2015/lib/modules/numeric/numeric.options.js.map +0 -1
  184. package/esm2015/lib/modules/numeric/numeric.pipe.js +0 -83
  185. package/esm2015/lib/modules/numeric/numeric.pipe.js.map +0 -1
  186. package/esm2015/lib/modules/numeric/numeric.service.js +0 -189
  187. package/esm2015/lib/modules/numeric/numeric.service.js.map +0 -1
  188. package/esm2015/lib/modules/overlay/overlay-adapter.service.js +0 -41
  189. package/esm2015/lib/modules/overlay/overlay-adapter.service.js.map +0 -1
  190. package/esm2015/lib/modules/overlay/overlay-config.js +0 -2
  191. package/esm2015/lib/modules/overlay/overlay-config.js.map +0 -1
  192. package/esm2015/lib/modules/overlay/overlay-context.js +0 -10
  193. package/esm2015/lib/modules/overlay/overlay-context.js.map +0 -1
  194. package/esm2015/lib/modules/overlay/overlay-instance.js +0 -55
  195. package/esm2015/lib/modules/overlay/overlay-instance.js.map +0 -1
  196. package/esm2015/lib/modules/overlay/overlay.component.js +0 -154
  197. package/esm2015/lib/modules/overlay/overlay.component.js.map +0 -1
  198. package/esm2015/lib/modules/overlay/overlay.module.js +0 -18
  199. package/esm2015/lib/modules/overlay/overlay.module.js.map +0 -1
  200. package/esm2015/lib/modules/overlay/overlay.service.js +0 -120
  201. package/esm2015/lib/modules/overlay/overlay.service.js.map +0 -1
  202. package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js +0 -20
  203. package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js.map +0 -1
  204. package/esm2015/lib/modules/percent-pipe/percent.pipe.js +0 -48
  205. package/esm2015/lib/modules/percent-pipe/percent.pipe.js.map +0 -1
  206. package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js +0 -184
  207. package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js.map +0 -1
  208. package/esm2015/lib/modules/shared/number-format/number-format-utility.js +0 -72
  209. package/esm2015/lib/modules/shared/number-format/number-format-utility.js.map +0 -1
  210. package/esm2015/lib/modules/shared/sky-core-resources.module.js +0 -50
  211. package/esm2015/lib/modules/shared/sky-core-resources.module.js.map +0 -1
  212. package/esm2015/lib/modules/title/set-title-args.js +0 -2
  213. package/esm2015/lib/modules/title/set-title-args.js.map +0 -1
  214. package/esm2015/lib/modules/title/title.service.js +0 -31
  215. package/esm2015/lib/modules/title/title.service.js.map +0 -1
  216. package/esm2015/lib/modules/ui-config/ui-config.service.js +0 -21
  217. package/esm2015/lib/modules/ui-config/ui-config.service.js.map +0 -1
  218. package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js +0 -2
  219. package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js.map +0 -1
  220. package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js +0 -2
  221. package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js.map +0 -1
  222. package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js +0 -10
  223. package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js.map +0 -1
  224. package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js +0 -2
  225. package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js.map +0 -1
  226. package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js +0 -2
  227. package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js.map +0 -1
  228. package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js +0 -116
  229. package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js.map +0 -1
  230. package/esm2015/lib/modules/viewkeeper/viewkeeper.js +0 -251
  231. package/esm2015/lib/modules/viewkeeper/viewkeeper.js.map +0 -1
  232. package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js +0 -16
  233. package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js.map +0 -1
  234. package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js +0 -39
  235. package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js.map +0 -1
  236. package/esm2015/lib/modules/window/window-ref.js +0 -30
  237. package/esm2015/lib/modules/window/window-ref.js.map +0 -1
  238. package/esm2015/skyux-core.js +0 -5
  239. package/esm2015/skyux-core.js.map +0 -1
  240. package/esm2015/testing/mock-media-query.service.js +0 -41
  241. package/esm2015/testing/mock-media-query.service.js.map +0 -1
  242. package/esm2015/testing/mock-ui-config.service.js +0 -59
  243. package/esm2015/testing/mock-ui-config.service.js.map +0 -1
  244. package/esm2015/testing/public-api.js +0 -3
  245. package/esm2015/testing/public-api.js.map +0 -1
  246. package/esm2015/testing/skyux-core-testing.js +0 -5
  247. package/esm2015/testing/skyux-core-testing.js.map +0 -1
  248. package/fesm2015/skyux-core-testing.js.map +0 -1
  249. package/fesm2015/skyux-core.js.map +0 -1
@@ -2624,7 +2624,7 @@
2624
2624
  "name": "NgModule"
2625
2625
  },
2626
2626
  "arguments": {
2627
- "obj": "{\n imports: [CommonModule],\n declarations: [SkyDockComponent],\n entryComponents: [SkyDockComponent],\n providers: [MutationObserverService],\n}"
2627
+ "obj": "{\n imports: [CommonModule],\n declarations: [SkyDockComponent],\n providers: [MutationObserverService],\n}"
2628
2628
  }
2629
2629
  }
2630
2630
  ],
@@ -2641,7 +2641,7 @@
2641
2641
  "sources": [
2642
2642
  {
2643
2643
  "fileName": "projects/core/src/modules/dock/dock.module.ts",
2644
- "line": 14,
2644
+ "line": 13,
2645
2645
  "character": 13
2646
2646
  }
2647
2647
  ]
@@ -4676,7 +4676,7 @@
4676
4676
  "name": "NgModule"
4677
4677
  },
4678
4678
  "arguments": {
4679
- "obj": "{\n imports: [CommonModule],\n declarations: [SkyOverlayComponent],\n entryComponents: [SkyOverlayComponent],\n}"
4679
+ "obj": "{\n imports: [CommonModule],\n declarations: [SkyOverlayComponent],\n}"
4680
4680
  }
4681
4681
  }
4682
4682
  ],
@@ -4693,7 +4693,7 @@
4693
4693
  "sources": [
4694
4694
  {
4695
4695
  "fileName": "projects/core/src/modules/overlay/overlay.module.ts",
4696
- "line": 11,
4696
+ "line": 10,
4697
4697
  "character": 13
4698
4698
  }
4699
4699
  ]
@@ -0,0 +1,60 @@
1
+ export * from './lib/modules/adapter-service/adapter.module';
2
+ export * from './lib/modules/adapter-service/adapter.service';
3
+ export * from './lib/modules/adapter-service/focusable-children-options';
4
+ export * from './lib/modules/affix/affix-auto-fit-context';
5
+ export * from './lib/modules/affix/affix-config';
6
+ export * from './lib/modules/affix/affix-horizontal-alignment';
7
+ export * from './lib/modules/affix/affix-offset';
8
+ export * from './lib/modules/affix/affix-offset-change';
9
+ export * from './lib/modules/affix/affix-placement';
10
+ export * from './lib/modules/affix/affix-placement-change';
11
+ export * from './lib/modules/affix/affix-vertical-alignment';
12
+ export * from './lib/modules/affix/affix.module';
13
+ export * from './lib/modules/affix/affix.service';
14
+ export * from './lib/modules/affix/affixer';
15
+ export * from './lib/modules/dock/dock-insert-component-config';
16
+ export * from './lib/modules/dock/dock-item';
17
+ export * from './lib/modules/dock/dock-item-config';
18
+ export * from './lib/modules/dock/dock-location';
19
+ export * from './lib/modules/dock/dock-options';
20
+ export * from './lib/modules/dock/dock.module';
21
+ export * from './lib/modules/dock/dock.service';
22
+ export * from './lib/modules/dynamic-component/dynamic-component-location';
23
+ export * from './lib/modules/dynamic-component/dynamic-component-options';
24
+ export * from './lib/modules/dynamic-component/dynamic-component.module';
25
+ export * from './lib/modules/dynamic-component/dynamic-component.service';
26
+ export * from './lib/modules/format/app-format';
27
+ export * from './lib/modules/id/id.module';
28
+ export * from './lib/modules/log/log.module';
29
+ export * from './lib/modules/log/log.service';
30
+ export * from './lib/modules/media-query/media-breakpoints';
31
+ export * from './lib/modules/media-query/media-query-listener';
32
+ export * from './lib/modules/media-query/media-query.module';
33
+ export * from './lib/modules/media-query/media-query.service';
34
+ export * from './lib/modules/mutation/mutation-observer-service';
35
+ export * from './lib/modules/numeric/numeric-symbol';
36
+ export * from './lib/modules/numeric/numeric.module';
37
+ export * from './lib/modules/numeric/numeric.options';
38
+ export * from './lib/modules/numeric/numeric.pipe';
39
+ export * from './lib/modules/numeric/numeric.service';
40
+ export * from './lib/modules/overlay/overlay-config';
41
+ export * from './lib/modules/overlay/overlay-instance';
42
+ export * from './lib/modules/overlay/overlay.module';
43
+ export * from './lib/modules/overlay/overlay.service';
44
+ export * from './lib/modules/percent-pipe/percent-pipe.module';
45
+ export * from './lib/modules/percent-pipe/percent.pipe';
46
+ export * from './lib/modules/scrollable-host/scrollable-host.service';
47
+ export * from './lib/modules/title/set-title-args';
48
+ export * from './lib/modules/title/title.service';
49
+ export * from './lib/modules/ui-config/ui-config.service';
50
+ export * from './lib/modules/viewkeeper/viewkeeper-host-options';
51
+ export * from './lib/modules/viewkeeper/viewkeeper-options';
52
+ export * from './lib/modules/viewkeeper/viewkeeper.module';
53
+ export * from './lib/modules/viewkeeper/viewkeeper.service';
54
+ export * from './lib/modules/window/window-ref';
55
+ // Components and directives must be exported to support Angular's "partial" Ivy compiler.
56
+ // Obscure names are used to indicate types are not part of the public API.
57
+ export { SkyAffixDirective as λ1 } from './lib/modules/affix/affix.directive';
58
+ export { SkyIdDirective as λ2 } from './lib/modules/id/id.directive';
59
+ export { SkyViewkeeperDirective as λ3 } from './lib/modules/viewkeeper/viewkeeper.directive';
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMERBQTBELENBQUM7QUFFekUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYywyREFBMkQsQ0FBQztBQUUxRSxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsK0NBQStDLENBQUM7QUFFOUQsY0FBYyxrREFBa0QsQ0FBQztBQUVqRSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMseUNBQXlDLENBQUM7QUFFeEQsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYywyQ0FBMkMsQ0FBQztBQUUxRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsMEZBQTBGO0FBQzFGLDJFQUEyRTtBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLElBQUksRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsSUFBSSxFQUFFLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLElBQUksRUFBRSxFQUFFLE1BQU0sK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9hZGFwdGVyLXNlcnZpY2UvZm9jdXNhYmxlLWNoaWxkcmVuLW9wdGlvbnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4LWF1dG8tZml0LWNvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeC1ob3Jpem9udGFsLWFsaWdubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4LW9mZnNldCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4LW9mZnNldC1jaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeC1wbGFjZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeC1wbGFjZW1lbnQtY2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvYWZmaXgvYWZmaXgtdmVydGljYWwtYWxpZ25tZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvYWZmaXgvYWZmaXgubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvYWZmaXgvYWZmaXguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2RvY2svZG9jay1pbnNlcnQtY29tcG9uZW50LWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2RvY2svZG9jay1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZG9jay9kb2NrLWl0ZW0tY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZG9jay9kb2NrLWxvY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZG9jay9kb2NrLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9kb2NrL2RvY2subW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZG9jay9kb2NrLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LWxvY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2Zvcm1hdC9hcHAtZm9ybWF0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9pZC9pZC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2xvZy9sb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbG9nL2xvZy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9tZWRpYS1xdWVyeS9tZWRpYS1icmVha3BvaW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL21lZGlhLXF1ZXJ5L21lZGlhLXF1ZXJ5LWxpc3RlbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbWVkaWEtcXVlcnkvbWVkaWEtcXVlcnkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbWVkaWEtcXVlcnkvbWVkaWEtcXVlcnkuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbnVtZXJpYy9udW1lcmljLXN5bWJvbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9udW1lcmljL251bWVyaWMub3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbnVtZXJpYy9udW1lcmljLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9vdmVybGF5L292ZXJsYXktaW5zdGFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9vdmVybGF5L292ZXJsYXkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvb3ZlcmxheS9vdmVybGF5LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3BlcmNlbnQtcGlwZS9wZXJjZW50LXBpcGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvcGVyY2VudC1waXBlL3BlcmNlbnQucGlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvc2Nyb2xsYWJsZS1ob3N0L3Njcm9sbGFibGUtaG9zdC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90aXRsZS9zZXQtdGl0bGUtYXJncyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RpdGxlL3RpdGxlLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3VpLWNvbmZpZy91aS1jb25maWcuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLWhvc3Qtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy93aW5kb3cvd2luZG93LXJlZic7XG5cbi8vIENvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMgbXVzdCBiZSBleHBvcnRlZCB0byBzdXBwb3J0IEFuZ3VsYXIncyBcInBhcnRpYWxcIiBJdnkgY29tcGlsZXIuXG4vLyBPYnNjdXJlIG5hbWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHR5cGVzIGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS5cbmV4cG9ydCB7IFNreUFmZml4RGlyZWN0aXZlIGFzIM67MSB9IGZyb20gJy4vbGliL21vZHVsZXMvYWZmaXgvYWZmaXguZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreUlkRGlyZWN0aXZlIGFzIM67MiB9IGZyb20gJy4vbGliL21vZHVsZXMvaWQvaWQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNreVZpZXdrZWVwZXJEaXJlY3RpdmUgYXMgzrszIH0gZnJvbSAnLi9saWIvbW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXIuZGlyZWN0aXZlJztcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @deprecated The `SkyCoreAdapterService` no longer needs the `SkyCoreAdapterModule`.
5
+ * The `SkyCoreAdapterModule` can be removed from your project.
6
+ */
7
+ export class SkyCoreAdapterModule {
8
+ }
9
+ SkyCoreAdapterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCoreAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ SkyCoreAdapterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCoreAdapterModule });
11
+ SkyCoreAdapterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCoreAdapterModule });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCoreAdapterModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{}]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvYWRhcHRlci1zZXJ2aWNlL2FkYXB0ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXpDOzs7R0FHRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7a0hBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFFBQVE7bUJBQUMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhlIGBTa3lDb3JlQWRhcHRlclNlcnZpY2VgIG5vIGxvbmdlciBuZWVkcyB0aGUgYFNreUNvcmVBZGFwdGVyTW9kdWxlYC5cbiAqIFRoZSBgU2t5Q29yZUFkYXB0ZXJNb2R1bGVgIGNhbiBiZSByZW1vdmVkIGZyb20geW91ciBwcm9qZWN0LlxuICovXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgU2t5Q29yZUFkYXB0ZXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,218 @@
1
+ import { Injectable, RendererFactory2, } from '@angular/core';
2
+ import { SkyMediaBreakpoints } from '../media-query/media-breakpoints';
3
+ import * as i0 from "@angular/core";
4
+ const SKY_TABBABLE_SELECTOR = [
5
+ 'a[href]',
6
+ 'area[href]',
7
+ 'input:not([disabled])',
8
+ 'button:not([disabled])',
9
+ 'select:not([disabled])',
10
+ 'textarea:not([disabled])',
11
+ 'iframe',
12
+ 'object',
13
+ 'embed',
14
+ '*[contenteditable=true]:not([disabled])',
15
+ '*[tabindex]:not([disabled])',
16
+ ].join(', ');
17
+ export class SkyCoreAdapterService {
18
+ constructor(rendererFactory) {
19
+ this.rendererFactory = rendererFactory;
20
+ this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
21
+ }
22
+ /**
23
+ * Set the responsive container CSS class for a given element.
24
+ *
25
+ * @param elementRef - The element that will recieve the new CSS class.
26
+ * @param breakpoint - The SkyMediaBreakpoint will determine which class
27
+ * gets set. For example a SkyMediaBreakpoint of `xs` will set a CSS class of `sky-responsive-container-xs`.
28
+ */
29
+ setResponsiveContainerClass(elementRef, breakpoint) {
30
+ const nativeEl = elementRef.nativeElement;
31
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-xs');
32
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-sm');
33
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-md');
34
+ this.renderer.removeClass(nativeEl, 'sky-responsive-container-lg');
35
+ let newClass;
36
+ switch (breakpoint) {
37
+ case SkyMediaBreakpoints.xs: {
38
+ newClass = 'sky-responsive-container-xs';
39
+ break;
40
+ }
41
+ case SkyMediaBreakpoints.sm: {
42
+ newClass = 'sky-responsive-container-sm';
43
+ break;
44
+ }
45
+ case SkyMediaBreakpoints.md: {
46
+ newClass = 'sky-responsive-container-md';
47
+ break;
48
+ }
49
+ default: {
50
+ newClass = 'sky-responsive-container-lg';
51
+ break;
52
+ }
53
+ }
54
+ this.renderer.addClass(nativeEl, newClass);
55
+ }
56
+ /**
57
+ * This method temporarily enables/disables pointer events.
58
+ * This is helpful to prevent iFrames from interfering with drag events.
59
+ *
60
+ * @param enable - Set to `true` to enable pointer events. Set to `false` to disable.
61
+ */
62
+ toggleIframePointerEvents(enable) {
63
+ const iframes = document.querySelectorAll('iframe');
64
+ for (let i = 0; i < iframes.length; i++) {
65
+ // Setting to empty string will allow iframe to fall back to its prior CSS assignment.
66
+ iframes[i].style.pointerEvents = enable ? '' : 'none';
67
+ }
68
+ }
69
+ /**
70
+ * Focuses on the first element found with an `autofocus` attribute inside the supplied `elementRef`.
71
+ *
72
+ * @param elementRef - The element to search within.
73
+ * @return Returns `true` if a child element with autofocus is found.
74
+ */
75
+ applyAutoFocus(elementRef) {
76
+ const elementWithAutoFocus = elementRef.nativeElement.querySelector('[autofocus]');
77
+ // Child was found with the autofocus property. Set focus and return true.
78
+ if (elementWithAutoFocus) {
79
+ elementWithAutoFocus.focus();
80
+ return true;
81
+ }
82
+ // No children were found with autofocus property. Return false.
83
+ return false;
84
+ }
85
+ /**
86
+ * Sets focus on the first focusable child of the `elementRef` parameter.
87
+ * If no focusable children are found, and `focusOnContainerIfNoChildrenFound` is `true`,
88
+ * focus will be set on the container element.
89
+ *
90
+ * @param elementRef - The element to search within.
91
+ * @param containerSelector - A CSS selector indicating the container that should
92
+ * recieve focus if no focusable children are found.
93
+ * @param focusOnContainerIfNoChildrenFound - It set to `true`, the container will
94
+ * recieve focus if no focusable children are found.
95
+ */
96
+ getFocusableChildrenAndApplyFocus(elementRef, containerSelector, focusOnContainerIfNoChildrenFound = false) {
97
+ const containerElement = elementRef.nativeElement.querySelector(containerSelector);
98
+ const focusableChildren = this.getFocusableChildren(containerElement);
99
+ // Focus first focusable child if available. Otherwise, set focus on container.
100
+ if (!this.focusFirstElement(focusableChildren) &&
101
+ focusOnContainerIfNoChildrenFound) {
102
+ containerElement.focus();
103
+ }
104
+ }
105
+ /**
106
+ * Returns an array of all focusable children of provided `element`.
107
+ *
108
+ * @param element - The HTMLElement to search within.
109
+ * @param options - Options for getting focusable children.
110
+ */
111
+ getFocusableChildren(element, options) {
112
+ let elements = Array.prototype.slice.call(element.querySelectorAll(SKY_TABBABLE_SELECTOR));
113
+ // Unless ignoreTabIndex = true, filter out elements with tabindex = -1.
114
+ if (!options || !options.ignoreTabIndex) {
115
+ elements = elements.filter((el) => {
116
+ return el.tabIndex !== -1;
117
+ });
118
+ }
119
+ // Unless ignoreVisibility = true, filter out elements that are not visible.
120
+ if (!options || !options.ignoreVisibility) {
121
+ elements = elements.filter((el) => {
122
+ return this.isVisible(el);
123
+ });
124
+ }
125
+ return elements;
126
+ }
127
+ /**
128
+ * Returns the clientWidth of the provided elementRef.
129
+ * @param elementRef - The element to calculate width from.
130
+ */
131
+ getWidth(elementRef) {
132
+ return elementRef.nativeElement.clientWidth;
133
+ }
134
+ /**
135
+ * Checks if an event target has a higher z-index than a given element.
136
+ * @param target The event target element.
137
+ * @param element The element to test against. A z-index must be explicitly set for this element.
138
+ */
139
+ isTargetAboveElement(target, element) {
140
+ const zIndex = getComputedStyle(element).zIndex;
141
+ let el = target;
142
+ while (el) {
143
+ // Getting the computed style only works for elements that exist in the DOM.
144
+ // In certain scenarios, an element is removed after a click event; by the time the event
145
+ // bubbles up to other elements, however, the element has been removed and the computed style returns empty.
146
+ // In this case, we'll need to check the z-index directly, via the style property.
147
+ const targetZIndex = getComputedStyle(el).zIndex || el.style.zIndex;
148
+ if (targetZIndex !== '' &&
149
+ targetZIndex !== 'auto' &&
150
+ +targetZIndex > +zIndex) {
151
+ return true;
152
+ }
153
+ el = el.parentElement;
154
+ }
155
+ return false;
156
+ }
157
+ /**
158
+ * Remove inline height styles from the provided elements.
159
+ * @param elementRef - The element to search within.
160
+ * @param selector - The CSS selector to use when finding elements for removing height.
161
+ */
162
+ resetHeight(elementRef, selector) {
163
+ const children = elementRef.nativeElement.querySelectorAll(selector);
164
+ /* istanbul ignore else */
165
+ if (children.length > 0) {
166
+ for (let i = 0; i < children.length; i++) {
167
+ // Setting style attributes with Web API requires null instead of undefined.
168
+ // tslint:disable-next-line: no-null-keyword
169
+ children[i].style.height = null;
170
+ }
171
+ }
172
+ }
173
+ /**
174
+ * Sets all element heights to match the height of the tallest element.
175
+ * @param elementRef - The element to search within.
176
+ * @param selector - The CSS selector to use when finding elements for syncing height.
177
+ */
178
+ syncMaxHeight(elementRef, selector) {
179
+ const children = elementRef.nativeElement.querySelectorAll(selector);
180
+ /* istanbul ignore else */
181
+ if (children.length > 0) {
182
+ let maxHeight = 0;
183
+ for (let i = 0; i < children.length; i++) {
184
+ maxHeight = Math.max(maxHeight, children[i].offsetHeight);
185
+ }
186
+ for (let i = 0; i < children.length; i++) {
187
+ children[i].style.height = maxHeight + 'px';
188
+ }
189
+ }
190
+ }
191
+ focusFirstElement(list) {
192
+ if (list.length > 0) {
193
+ list[0].focus();
194
+ return true;
195
+ }
196
+ return false;
197
+ }
198
+ isVisible(element) {
199
+ const style = window.getComputedStyle(element);
200
+ const isHidden = style.display === 'none' || style.visibility === 'hidden';
201
+ if (isHidden) {
202
+ return false;
203
+ }
204
+ const hasBounds = !!(element.offsetWidth ||
205
+ element.offsetHeight ||
206
+ element.getClientRects().length);
207
+ return hasBounds;
208
+ }
209
+ }
210
+ SkyCoreAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCoreAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
211
+ SkyCoreAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCoreAdapterService, providedIn: 'root' });
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyCoreAdapterService, decorators: [{
213
+ type: Injectable,
214
+ args: [{
215
+ providedIn: 'root',
216
+ }]
217
+ }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBSXZFLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsU0FBUztJQUNULFlBQVk7SUFDWix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFDMUIsUUFBUTtJQUNSLFFBQVE7SUFDUixPQUFPO0lBQ1AseUNBQXlDO0lBQ3pDLDZCQUE2QjtDQUM5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUtiLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFBb0IsZUFBaUM7UUFBakMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwyQkFBMkIsQ0FDaEMsVUFBc0IsRUFDdEIsVUFBK0I7UUFFL0IsTUFBTSxRQUFRLEdBQWdCLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFF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QUM7SUFDZixDQUFDO0lBRU8sU0FBUyxDQUFDLE9BQW9CO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQztRQUMzRSxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FDbEIsT0FBTyxDQUFDLFdBQVc7WUFDbkIsT0FBTyxDQUFDLFlBQVk7WUFDcEIsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FDaEMsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O2tIQWxQVSxxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lNZWRpYUJyZWFrcG9pbnRzIH0gZnJvbSAnLi4vbWVkaWEtcXVlcnkvbWVkaWEtYnJlYWtwb2ludHMnO1xuXG5pbXBvcnQgeyBTa3lGb2N1c2FibGVDaGlsZHJlbk9wdGlvbnMgfSBmcm9tICcuL2ZvY3VzYWJsZS1jaGlsZHJlbi1vcHRpb25zJztcblxuY29uc3QgU0tZX1RBQkJBQkxFX1NFTEVDVE9SID0gW1xuICAnYVtocmVmXScsXG4gICdhcmVhW2hyZWZdJyxcbiAgJ2lucHV0Om5vdChbZGlzYWJsZWRdKScsXG4gICdidXR0b246bm90KFtkaXNhYmxlZF0pJyxcbiAgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSknLFxuICAndGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pJyxcbiAgJ2lmcmFtZScsXG4gICdvYmplY3QnLFxuICAnZW1iZWQnLFxuICAnKltjb250ZW50ZWRpdGFibGU9dHJ1ZV06bm90KFtkaXNhYmxlZF0pJyxcbiAgJypbdGFiaW5kZXhdOm5vdChbZGlzYWJsZWRdKScsXG5dLmpvaW4oJywgJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDb3JlQWRhcHRlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIpIHtcbiAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcmVzcG9uc2l2ZSBjb250YWluZXIgQ1NTIGNsYXNzIGZvciBhIGdpdmVuIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHJlY2lldmUgdGhlIG5ldyBDU1MgY2xhc3MuXG4gICAqIEBwYXJhbSBicmVha3BvaW50IC0gVGhlIFNreU1lZGlhQnJlYWtwb2ludCB3aWxsIGRldGVybWluZSB3aGljaCBjbGFzc1xuICAgKiBnZXRzIHNldC4gRm9yIGV4YW1wbGUgYSBTa3lNZWRpYUJyZWFrcG9pbnQgb2YgYHhzYCB3aWxsIHNldCBhIENTUyBjbGFzcyBvZiBgc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzYC5cbiAgICovXG4gIHB1YmxpYyBzZXRSZXNwb25zaXZlQ29udGFpbmVyQ2xhc3MoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IG5hdGl2ZUVsOiBIVE1MRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXIteHMnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXNtJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCcpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbGcnKTtcblxuICAgIGxldCBuZXdDbGFzczogc3RyaW5nO1xuXG4gICAgc3dpdGNoIChicmVha3BvaW50KSB7XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMueHM6IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMuc206IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXNtJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMubWQ6IHtcbiAgICAgICAgbmV3Q2xhc3MgPSAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLW1kJztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1sZyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobmF0aXZlRWwsIG5ld0NsYXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB0ZW1wb3JhcmlseSBlbmFibGVzL2Rpc2FibGVzIHBvaW50ZXIgZXZlbnRzLlxuICAgKiBUaGlzIGlzIGhlbHBmdWwgdG8gcHJldmVudCBpRnJhbWVzIGZyb20gaW50ZXJmZXJpbmcgd2l0aCBkcmFnIGV2ZW50cy5cbiAgICpcbiAgICogQHBhcmFtIGVuYWJsZSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHBvaW50ZXIgZXZlbnRzLiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlLlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZUlmcmFtZVBvaW50ZXJFdmVudHMoZW5hYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgaWZyYW1lcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lmcmFtZScpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWZyYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gU2V0dGluZyB0byBlbXB0eSBzdHJpbmcgd2lsbCBhbGxvdyBpZnJhbWUgdG8gZmFsbCBiYWNrIHRvIGl0cyBwcmlvciBDU1MgYXNzaWdubWVudC5cbiAgICAgIGlmcmFtZXNbaV0uc3R5bGUucG9pbnRlckV2ZW50cyA9IGVuYWJsZSA/ICcnIDogJ25vbmUnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb2N1c2VzIG9uIHRoZSBmaXJzdCBlbGVtZW50IGZvdW5kIHdpdGggYW4gYGF1dG9mb2N1c2AgYXR0cmlidXRlIGluc2lkZSB0aGUgc3VwcGxpZWQgYGVsZW1lbnRSZWZgLlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIFRoZSBlbGVtZW50IHRvIHNlYXJjaCB3aXRoaW4uXG4gICAqIEByZXR1cm4gUmV0dXJucyBgdHJ1ZWAgaWYgYSBjaGlsZCBlbGVtZW50IHdpdGggYXV0b2ZvY3VzIGlzIGZvdW5kLlxuICAgKi9cbiAgcHVibGljIGFwcGx5QXV0b0ZvY3VzKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbGVtZW50V2l0aEF1dG9Gb2N1cyA9XG4gICAgICBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW2F1dG9mb2N1c10nKTtcblxuICAgIC8vIENoaWxkIHdhcyBmb3VuZCB3aXRoIHRoZSBhdXRvZm9jdXMgcHJvcGVydHkuIFNldCBmb2N1cyBhbmQgcmV0dXJuIHRydWUuXG4gICAgaWYgKGVsZW1lbnRXaXRoQXV0b0ZvY3VzKSB7XG4gICAgICBlbGVtZW50V2l0aEF1dG9Gb2N1cy5mb2N1cygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gTm8gY2hpbGRyZW4gd2VyZSBmb3VuZCB3aXRoIGF1dG9mb2N1cyBwcm9wZXJ0eS4gUmV0dXJuIGZhbHNlLlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgY2hpbGQgb2YgdGhlIGBlbGVtZW50UmVmYCBwYXJhbWV0ZXIuXG4gICAqIElmIG5vIGZvY3VzYWJsZSBjaGlsZHJlbiBhcmUgZm91bmQsIGFuZCBgZm9jdXNPbkNvbnRhaW5lcklmTm9DaGlsZHJlbkZvdW5kYCBpcyBgdHJ1ZWAsXG4gICAqIGZvY3VzIHdpbGwgYmUgc2V0IG9uIHRoZSBjb250YWluZXIgZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBAcGFyYW0gY29udGFpbmVyU2VsZWN0b3IgLSBBIENTUyBzZWxlY3RvciBpbmRpY2F0aW5nIHRoZSBjb250YWluZXIgdGhhdCBzaG91bGRcbiAgICogcmVjaWV2ZSBmb2N1cyBpZiBubyBmb2N1c2FibGUgY2hpbGRyZW4gYXJlIGZvdW5kLlxuICAgKiBAcGFyYW0gZm9jdXNPbkNvbnRhaW5lcklmTm9DaGlsZHJlbkZvdW5kIC0gSXQgc2V0IHRvIGB0cnVlYCwgdGhlIGNvbnRhaW5lciB3aWxsXG4gICAqIHJlY2lldmUgZm9jdXMgaWYgbm8gZm9jdXNhYmxlIGNoaWxkcmVuIGFyZSBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyBnZXRGb2N1c2FibGVDaGlsZHJlbkFuZEFwcGx5Rm9jdXMoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBjb250YWluZXJTZWxlY3Rvcjogc3RyaW5nLFxuICAgIGZvY3VzT25Db250YWluZXJJZk5vQ2hpbGRyZW5Gb3VuZDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPVxuICAgICAgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoY29udGFpbmVyU2VsZWN0b3IpO1xuICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkcmVuID0gdGhpcy5nZXRGb2N1c2FibGVDaGlsZHJlbihjb250YWluZXJFbGVtZW50KTtcblxuICAgIC8vIEZvY3VzIGZpcnN0IGZvY3VzYWJsZSBjaGlsZCBpZiBhdmFpbGFibGUuIE90aGVyd2lzZSwgc2V0IGZvY3VzIG9uIGNvbnRhaW5lci5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5mb2N1c0ZpcnN0RWxlbWVudChmb2N1c2FibGVDaGlsZHJlbikgJiZcbiAgICAgIGZvY3VzT25Db250YWluZXJJZk5vQ2hpbGRyZW5Gb3VuZFxuICAgICkge1xuICAgICAgY29udGFpbmVyRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCBmb2N1c2FibGUgY2hpbGRyZW4gb2YgcHJvdmlkZWQgYGVsZW1lbnRgLlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBIVE1MRWxlbWVudCB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIGdldHRpbmcgZm9jdXNhYmxlIGNoaWxkcmVuLlxuICAgKi9cbiAgcHVibGljIGdldEZvY3VzYWJsZUNoaWxkcmVuKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIG9wdGlvbnM/OiBTa3lGb2N1c2FibGVDaGlsZHJlbk9wdGlvbnNcbiAgKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgbGV0IGVsZW1lbnRzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoXG4gICAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoU0tZX1RBQkJBQkxFX1NFTEVDVE9SKVxuICAgICk7XG5cbiAgICAvLyBVbmxlc3MgaWdub3JlVGFiSW5kZXggPSB0cnVlLCBmaWx0ZXIgb3V0IGVsZW1lbnRzIHdpdGggdGFiaW5kZXggPSAtMS5cbiAgICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMuaWdub3JlVGFiSW5kZXgpIHtcbiAgICAgIGVsZW1lbnRzID0gZWxlbWVudHMuZmlsdGVyKChlbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGVsLnRhYkluZGV4ICE9PSAtMTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFVubGVzcyBpZ25vcmVWaXNpYmlsaXR5ID0gdHJ1ZSwgZmlsdGVyIG91dCBlbGVtZW50cyB0aGF0IGFyZSBub3QgdmlzaWJsZS5cbiAgICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMuaWdub3JlVmlzaWJpbGl0eSkge1xuICAgICAgZWxlbWVudHMgPSBlbGVtZW50cy5maWx0ZXIoKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGUoZWwpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsZW1lbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNsaWVudFdpZHRoIG9mIHRoZSBwcm92aWRlZCBlbGVtZW50UmVmLlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIFRoZSBlbGVtZW50IHRvIGNhbGN1bGF0ZSB3aWR0aCBmcm9tLlxuICAgKi9cbiAgcHVibGljIGdldFdpZHRoKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiBudW1iZXIge1xuICAgIHJldHVybiBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGFuIGV2ZW50IHRhcmdldCBoYXMgYSBoaWdoZXIgei1pbmRleCB0aGFuIGEgZ2l2ZW4gZWxlbWVudC5cbiAgICogQHBhcmFtIHRhcmdldCBUaGUgZXZlbnQgdGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIHRlc3QgYWdhaW5zdC4gQSB6LWluZGV4IG11c3QgYmUgZXhwbGljaXRseSBzZXQgZm9yIHRoaXMgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBpc1RhcmdldEFib3ZlRWxlbWVudChcbiAgICB0YXJnZXQ6IEV2ZW50VGFyZ2V0LFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHpJbmRleDogc3RyaW5nID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS56SW5kZXg7XG5cbiAgICBsZXQgZWw6IEhUTUxFbGVtZW50ID0gdGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgd2hpbGUgKGVsKSB7XG4gICAgICAvLyBHZXR0aW5nIHRoZSBjb21wdXRlZCBzdHlsZSBvbmx5IHdvcmtzIGZvciBlbGVtZW50cyB0aGF0IGV4aXN0IGluIHRoZSBET00uXG4gICAgICAvLyBJbiBjZXJ0YWluIHNjZW5hcmlvcywgYW4gZWxlbWVudCBpcyByZW1vdmVkIGFmdGVyIGEgY2xpY2sgZXZlbnQ7IGJ5IHRoZSB0aW1lIHRoZSBldmVudFxuICAgICAgLy8gYnViYmxlcyB1cCB0byBvdGhlciBlbGVtZW50cywgaG93ZXZlciwgdGhlIGVsZW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBhbmQgdGhlIGNvbXB1dGVkIHN0eWxlIHJldHVybnMgZW1wdHkuXG4gICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIHotaW5kZXggZGlyZWN0bHksIHZpYSB0aGUgc3R5bGUgcHJvcGVydHkuXG4gICAgICBjb25zdCB0YXJnZXRaSW5kZXg6IHN0cmluZyA9XG4gICAgICAgIGdldENvbXB1dGVkU3R5bGUoZWwpLnpJbmRleCB8fCBlbC5zdHlsZS56SW5kZXg7XG4gICAgICBpZiAoXG4gICAgICAgIHRhcmdldFpJbmRleCAhPT0gJycgJiZcbiAgICAgICAgdGFyZ2V0WkluZGV4ICE9PSAnYXV0bycgJiZcbiAgICAgICAgK3RhcmdldFpJbmRleCA+ICt6SW5kZXhcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5saW5lIGhlaWdodCBzdHlsZXMgZnJvbSB0aGUgcHJvdmlkZWQgZWxlbWVudHMuXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gVGhlIGVsZW1lbnQgdG8gc2VhcmNoIHdpdGhpbi5cbiAgICogQHBhcmFtIHNlbGVjdG9yIC0gVGhlIENTUyBzZWxlY3RvciB0byB1c2Ugd2hlbiBmaW5kaW5nIGVsZW1lbnRzIGZvciByZW1vdmluZyBoZWlnaHQuXG4gICAqL1xuICBwdWJsaWMgcmVzZXRIZWlnaHQoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgc2VsZWN0b3I6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gU2V0dGluZyBzdHlsZSBhdHRyaWJ1dGVzIHdpdGggV2ViIEFQSSByZXF1aXJlcyBudWxsIGluc3RlYWQgb2YgdW5kZWZpbmVkLlxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW51bGwta2V5d29yZFxuICAgICAgICBjaGlsZHJlbltpXS5zdHlsZS5oZWlnaHQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFsbCBlbGVtZW50IGhlaWdodHMgdG8gbWF0Y2ggdGhlIGhlaWdodCBvZiB0aGUgdGFsbGVzdCBlbGVtZW50LlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIFRoZSBlbGVtZW50IHRvIHNlYXJjaCB3aXRoaW4uXG4gICAqIEBwYXJhbSBzZWxlY3RvciAtIFRoZSBDU1Mgc2VsZWN0b3IgdG8gdXNlIHdoZW4gZmluZGluZyBlbGVtZW50cyBmb3Igc3luY2luZyBoZWlnaHQuXG4gICAqL1xuICBwdWJsaWMgc3luY01heEhlaWdodChlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBzZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IG1heEhlaWdodCA9IDA7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG1heEhlaWdodCA9IE1hdGgubWF4KG1heEhlaWdodCwgY2hpbGRyZW5baV0ub2Zmc2V0SGVpZ2h0KTtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY2hpbGRyZW5baV0uc3R5bGUuaGVpZ2h0ID0gbWF4SGVpZ2h0ICsgJ3B4JztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzRmlyc3RFbGVtZW50KGxpc3Q6IEFycmF5PEhUTUxFbGVtZW50Pik6IGJvb2xlYW4ge1xuICAgIGlmIChsaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGxpc3RbMF0uZm9jdXMoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzVmlzaWJsZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgY29uc3QgaXNIaWRkZW4gPSBzdHlsZS5kaXNwbGF5ID09PSAnbm9uZScgfHwgc3R5bGUudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbic7XG4gICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzQm91bmRzID0gISEoXG4gICAgICBlbGVtZW50Lm9mZnNldFdpZHRoIHx8XG4gICAgICBlbGVtZW50Lm9mZnNldEhlaWdodCB8fFxuICAgICAgZWxlbWVudC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aFxuICAgICk7XG4gICAgcmV0dXJuIGhhc0JvdW5kcztcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWNoaWxkcmVuLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvYWRhcHRlci1zZXJ2aWNlL2ZvY3VzYWJsZS1jaGlsZHJlbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE9wdGlvbnMgZm9yIGdldHRpbmcgZm9jdXNhYmxlIGNoaWxkcmVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreUZvY3VzYWJsZUNoaWxkcmVuT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgYGdldEZvY3VzYWJsZUNoaWxkcmVuKClgIGZ1bmN0aW9uIHdpbGwgZmlsdGVyIG91dCBlbGVtZW50cyB3aXRoXG4gICAqIGEgYHRhYkluZGV4YCBvZiBgLTFgLiBTZXR0aW5nIGBpZ25vcmVUYWJJbmRleCA9IHRydWVgIHdpbGwgaWdub3JlIHRoaXMgZmlsdGVyLlxuICAgKi9cbiAgaWdub3JlVGFiSW5kZXg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgYGdldEZvY3VzYWJsZUNoaWxkcmVuKClgIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdmlzaWJsZSBlbGVtZW50cy5cbiAgICogU2V0dGluZyBgaWdub3JlVmlzaWJpbGl0eSA9IHRydWVgIHdpbGwgaWdub3JlIHRoaXMgZmlsdGVyLlxuICAgKi9cbiAgaWdub3JlVmlzaWJpbGl0eT86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ export var SkyAffixAutoFitContext;
2
+ (function (SkyAffixAutoFitContext) {
3
+ /**
4
+ * Auto-fit functionality will respect the nearest overflow parent element's dimensions.
5
+ */
6
+ SkyAffixAutoFitContext[SkyAffixAutoFitContext["OverflowParent"] = 0] = "OverflowParent";
7
+ /**
8
+ * Auto-fit functionality will respect the browser viewport dimensions.
9
+ */
10
+ SkyAffixAutoFitContext[SkyAffixAutoFitContext["Viewport"] = 1] = "Viewport";
11
+ })(SkyAffixAutoFitContext || (SkyAffixAutoFitContext = {}));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgtYXV0by1maXQtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeC1hdXRvLWZpdC1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHNCQVVYO0FBVkQsV0FBWSxzQkFBc0I7SUFDaEM7O09BRUc7SUFDSCx1RkFBa0IsQ0FBQTtJQUVsQjs7T0FFRztJQUNILDJFQUFZLENBQUE7QUFDZCxDQUFDLEVBVlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQVVqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFNreUFmZml4QXV0b0ZpdENvbnRleHQge1xuICAvKipcbiAgICogQXV0by1maXQgZnVuY3Rpb25hbGl0eSB3aWxsIHJlc3BlY3QgdGhlIG5lYXJlc3Qgb3ZlcmZsb3cgcGFyZW50IGVsZW1lbnQncyBkaW1lbnNpb25zLlxuICAgKi9cbiAgT3ZlcmZsb3dQYXJlbnQgPSAwLFxuXG4gIC8qKlxuICAgKiBBdXRvLWZpdCBmdW5jdGlvbmFsaXR5IHdpbGwgcmVzcGVjdCB0aGUgYnJvd3NlciB2aWV3cG9ydCBkaW1lbnNpb25zLlxuICAgKi9cbiAgVmlld3BvcnQgPSAxLFxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5QWZmaXhBdXRvRml0Q29udGV4dCB9IGZyb20gJy4vYWZmaXgtYXV0by1maXQtY29udGV4dCc7XG5pbXBvcnQgeyBTa3lBZmZpeEhvcml6b250YWxBbGlnbm1lbnQgfSBmcm9tICcuL2FmZml4LWhvcml6b250YWwtYWxpZ25tZW50JztcbmltcG9ydCB7IFNreUFmZml4T2Zmc2V0IH0gZnJvbSAnLi9hZmZpeC1vZmZzZXQnO1xuaW1wb3J0IHsgU2t5QWZmaXhQbGFjZW1lbnQgfSBmcm9tICcuL2FmZml4LXBsYWNlbWVudCc7XG5pbXBvcnQgeyBTa3lBZmZpeFZlcnRpY2FsQWxpZ25tZW50IH0gZnJvbSAnLi9hZmZpeC12ZXJ0aWNhbC1hbGlnbm1lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreUFmZml4Q29uZmlnIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGljaCBwYXJlbnQgZWxlbWVudCBpcyB1c2VkIGJ5IHRoZSBhdXRvLWZpdCBmdW5jdGlvbmFsaXR5LlxuICAgKi9cbiAgYXV0b0ZpdENvbnRleHQ/OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wdGlvbmFsIG9mZnNldCBpcyBhZGRlZCB0byAob3Igc3VidHJhY3RlZCBmcm9tKSB0aGUgW1tTa3lBZmZpeEF1dG9GaXRDb250ZXh0XV0gZWxlbWVudCdzXG4gICAqIG9mZnNldCBkdXJpbmcgYW4gYXV0by1maXQgcGxhY2VtZW50IGNhbGN1bGF0aW9uLiBUaGlzIHZhbHVlIGlzIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBjb25zaWRlclxuICAgKiBhbm90aGVyIGBwb3NpdGlvbjogZml4ZWRgIGVsZW1lbnQgb24gdGhlIHBhZ2UgKHN1Y2ggYXMgYSBuYXZiYXIpIHdoZW4gdGhlIGF1dG8tZml0XG4gICAqIGZ1bmN0aW9uYWxpdHkgYXR0ZW1wdHMgdG8gZmluZCB0aGUgYmVzdCBwb3NzaWJsZSBwbGFjZW1lbnQuXG4gICAqIChJbiB0aGUgY2FzZSBvZiBhIG5hdmJhciwgeW91IHdvdWxkIGFkZCBhIGB0b3BgIHZhbHVlIGVxdWFsIHRvIHRoZSBuYXZiYXIncyBoZWlnaHQgaW4gcGl4ZWxzLilcbiAgICovXG4gIGF1dG9GaXRPdmVyZmxvd09mZnNldD86IFNreUFmZml4T2Zmc2V0O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGFmZml4IHNlcnZpY2Ugc2hvdWxkIHRyeSBhbmQgZmluZCB0aGUgYmVzdCBwbGFjZW1lbnQgZm9yIHRoZSBhZmZpeGVkIGVsZW1lbnRcbiAgICogaWYgdGhlIGVsZW1lbnQgd291bGQgYmUgaGlkZGVuIG90aGVyd2lzZS4gSWYgdGhpcyBzZXR0aW5nIGlzIGRpc2FibGVkLCB0aGUgYWZmaXggc2VydmljZSB3aWxsXG4gICAqIGZvcmNlIHRoZSBwbGFjZW1lbnQgb2YgdGhlIGFmZml4ZWQgZWxlbWVudC5cbiAgICovXG4gIGVuYWJsZUF1dG9GaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIGFmZml4ZWQgZWxlbWVudCB0byB0aGUgYmFzZSBlbGVtZW50LlxuICAgKi9cbiAgaG9yaXpvbnRhbEFsaWdubWVudD86IFNreUFmZml4SG9yaXpvbnRhbEFsaWdubWVudDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBhZmZpeGVkIGVsZW1lbnQgc2hvdWxkIHJlbWFpbiBhZmZpeGVkIHRvIHRoZSBiYXNlIGVsZW1lbnQgd2hlbiB0aGUgd2luZG93IGlzIHNjcm9sbGVkIG9yIHJlc2l6ZWQuXG4gICAqL1xuICBpc1N0aWNreT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwbGFjZW1lbnQgb2YgdGhlIGFmZml4ZWQgZWxlbWVudCBhcm91bmQgdGhlIGJhc2UgZWxlbWVudC5cbiAgICovXG4gIHBsYWNlbWVudD86IFNreUFmZml4UGxhY2VtZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgdmVydGljYWwgYWxpZ25tZW50IG9mIHRoZSBhZmZpeGVkIGVsZW1lbnQgdG8gdGhlIGJhc2UgZWxlbWVudC5cbiAgICovXG4gIHZlcnRpY2FsQWxpZ25tZW50PzogU2t5QWZmaXhWZXJ0aWNhbEFsaWdubWVudDtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgtaG9yaXpvbnRhbC1hbGlnbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvYWZmaXgvYWZmaXgtaG9yaXpvbnRhbC1hbGlnbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGhvcml6b250YWwgYWxpZ25tZW50IG9mIHRoZSBhZmZpeGVkIGVsZW1lbnQgdG8gdGhlIGJhc2UgZWxlbWVudC5cbiAqL1xuZXhwb3J0IHR5cGUgU2t5QWZmaXhIb3Jpem9udGFsQWxpZ25tZW50ID0gJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgtb2Zmc2V0LWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeC1vZmZzZXQtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lBZmZpeE9mZnNldCB9IGZyb20gJy4vYWZmaXgtb2Zmc2V0JztcblxuLyoqXG4gKiBUaGUgYXJndW1lbnRzIHN1cHBsaWVkIHRvIHRoZSBhZmZpeCBvZmZzZXQgY2hhbmdlIGV2ZW50IGxpc3RlbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreUFmZml4T2Zmc2V0Q2hhbmdlIHtcbiAgb2Zmc2V0PzogU2t5QWZmaXhPZmZzZXQ7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgtb2Zmc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4LW9mZnNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lBZmZpeE9mZnNldCB7XG4gIGJvdHRvbT86IG51bWJlcjtcblxuICBsZWZ0PzogbnVtYmVyO1xuXG4gIHJpZ2h0PzogbnVtYmVyO1xuXG4gIHRvcD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgtcGxhY2VtZW50LWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeC1wbGFjZW1lbnQtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lBZmZpeFBsYWNlbWVudCB9IGZyb20gJy4vYWZmaXgtcGxhY2VtZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBTa3lBZmZpeFBsYWNlbWVudENoYW5nZSB7XG4gIC8qKlxuICAgKiBUaGUgY2hhbmdlZCBwbGFjZW1lbnQgdmFsdWUuXG4gICAqL1xuICBwbGFjZW1lbnQ6IFNreUFmZml4UGxhY2VtZW50IHwgbnVsbDtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgtcGxhY2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4LXBsYWNlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgcGxhY2VtZW50IG9mIHRoZSBhZmZpeGVkIGVsZW1lbnQgYXJvdW5kIHRoZSBiYXNlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFNreUFmZml4UGxhY2VtZW50ID0gJ2Fib3ZlJyB8ICdiZWxvdycgfCAnbGVmdCcgfCAncmlnaHQnO1xuIl19
@@ -0,0 +1,18 @@
1
+ export function getNextPlacement(placement) {
2
+ const placements = ['above', 'right', 'below', 'left'];
3
+ let index = placements.indexOf(placement) + 1;
4
+ if (index >= placements.length) {
5
+ index = 0;
6
+ }
7
+ return placements[index];
8
+ }
9
+ export function getInversePlacement(placement) {
10
+ const pairings = {
11
+ above: 'below',
12
+ below: 'above',
13
+ right: 'left',
14
+ left: 'right',
15
+ };
16
+ return pairings[placement];
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvYWZmaXgvYWZmaXgtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixTQUE0QjtJQUU1QixNQUFNLFVBQVUsR0FBd0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU1RSxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxJQUFJLEtBQUssSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQzlCLEtBQUssR0FBRyxDQUFDLENBQUM7S0FDWDtJQUVELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFNBQTRCO0lBRTVCLE1BQU0sUUFBUSxHQUF1QztRQUNuRCxLQUFLLEVBQUUsT0FBTztRQUNkLEtBQUssRUFBRSxPQUFPO1FBQ2QsS0FBSyxFQUFFLE1BQU07UUFDYixJQUFJLEVBQUUsT0FBTztLQUNkLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5QWZmaXhQbGFjZW1lbnQgfSBmcm9tICcuL2FmZml4LXBsYWNlbWVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0UGxhY2VtZW50KFxuICBwbGFjZW1lbnQ6IFNreUFmZml4UGxhY2VtZW50XG4pOiBTa3lBZmZpeFBsYWNlbWVudCB7XG4gIGNvbnN0IHBsYWNlbWVudHM6IFNreUFmZml4UGxhY2VtZW50W10gPSBbJ2Fib3ZlJywgJ3JpZ2h0JywgJ2JlbG93JywgJ2xlZnQnXTtcblxuICBsZXQgaW5kZXggPSBwbGFjZW1lbnRzLmluZGV4T2YocGxhY2VtZW50KSArIDE7XG4gIGlmIChpbmRleCA+PSBwbGFjZW1lbnRzLmxlbmd0aCkge1xuICAgIGluZGV4ID0gMDtcbiAgfVxuXG4gIHJldHVybiBwbGFjZW1lbnRzW2luZGV4XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludmVyc2VQbGFjZW1lbnQoXG4gIHBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnRcbik6IFNreUFmZml4UGxhY2VtZW50IHtcbiAgY29uc3QgcGFpcmluZ3M6IHsgW186IHN0cmluZ106IFNreUFmZml4UGxhY2VtZW50IH0gPSB7XG4gICAgYWJvdmU6ICdiZWxvdycsXG4gICAgYmVsb3c6ICdhYm92ZScsXG4gICAgcmlnaHQ6ICdsZWZ0JyxcbiAgICBsZWZ0OiAncmlnaHQnLFxuICB9O1xuXG4gIHJldHVybiBwYWlyaW5nc1twbGFjZW1lbnRdO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgtdmVydGljYWwtYWxpZ25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4LXZlcnRpY2FsLWFsaWdubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgdmVydGljYWwgYWxpZ25tZW50IG9mIHRoZSBhZmZpeGVkIGVsZW1lbnQgdG8gdGhlIGJhc2UgZWxlbWVudC5cbiAqL1xuZXhwb3J0IHR5cGUgU2t5QWZmaXhWZXJ0aWNhbEFsaWdubWVudCA9ICd0b3AnIHwgJ21pZGRsZScgfCAnYm90dG9tJztcbiJdfQ==
@@ -0,0 +1,100 @@
1
+ import { Directive, ElementRef, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import { SkyAffixAutoFitContext } from './affix-auto-fit-context';
5
+ import { SkyAffixService } from './affix.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./affix.service";
8
+ /**
9
+ * Affixes the host element to a base element.
10
+ */
11
+ export class SkyAffixDirective {
12
+ constructor(elementRef, affixService) {
13
+ this.affixService = affixService;
14
+ /**
15
+ * Fires when the affixed element's offset changes.
16
+ */
17
+ this.affixOffsetChange = new EventEmitter();
18
+ /**
19
+ * Fires when the affixed element's overflow container is scrolled.
20
+ */
21
+ this.affixOverflowScroll = new EventEmitter();
22
+ /**
23
+ * Fires when the placement value changes.
24
+ */
25
+ this.affixPlacementChange = new EventEmitter();
26
+ this.ngUnsubscribe = new Subject();
27
+ this.affixer = this.affixService.createAffixer(elementRef);
28
+ this.affixer.offsetChange
29
+ .pipe(takeUntil(this.ngUnsubscribe))
30
+ .subscribe((change) => this.affixOffsetChange.emit(change));
31
+ this.affixer.overflowScroll
32
+ .pipe(takeUntil(this.ngUnsubscribe))
33
+ .subscribe((change) => this.affixOverflowScroll.emit(change));
34
+ this.affixer.placementChange
35
+ .pipe(takeUntil(this.ngUnsubscribe))
36
+ .subscribe((change) => this.affixPlacementChange.emit(change));
37
+ }
38
+ ngOnChanges(changes) {
39
+ /* istanbul ignore else */
40
+ if (changes.affixAutoFitContext ||
41
+ changes.affixAutoFitOverflowOffset ||
42
+ changes.affixEnableAutoFit ||
43
+ changes.affixHorizontalAlignment ||
44
+ changes.affixIsSticky ||
45
+ changes.affixPlacement ||
46
+ changes.affixVerticalAlignment) {
47
+ this.updateAlignment();
48
+ }
49
+ }
50
+ ngOnDestroy() {
51
+ this.affixOffsetChange.complete();
52
+ this.affixOverflowScroll.complete();
53
+ this.affixPlacementChange.complete();
54
+ this.ngUnsubscribe.next();
55
+ this.ngUnsubscribe.complete();
56
+ this.affixer.destroy();
57
+ }
58
+ updateAlignment() {
59
+ this.affixer.affixTo(this.skyAffixTo, {
60
+ autoFitContext: this.affixAutoFitContext,
61
+ autoFitOverflowOffset: this.affixAutoFitOverflowOffset,
62
+ enableAutoFit: this.affixEnableAutoFit,
63
+ horizontalAlignment: this.affixHorizontalAlignment,
64
+ isSticky: this.affixIsSticky,
65
+ placement: this.affixPlacement,
66
+ verticalAlignment: this.affixVerticalAlignment,
67
+ });
68
+ }
69
+ }
70
+ SkyAffixDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAffixDirective, deps: [{ token: i0.ElementRef }, { token: i1.SkyAffixService }], target: i0.ɵɵFactoryTarget.Directive });
71
+ SkyAffixDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyAffixDirective, selector: "[skyAffixTo]", inputs: { skyAffixTo: "skyAffixTo", affixAutoFitContext: "affixAutoFitContext", affixAutoFitOverflowOffset: "affixAutoFitOverflowOffset", affixEnableAutoFit: "affixEnableAutoFit", affixHorizontalAlignment: "affixHorizontalAlignment", affixIsSticky: "affixIsSticky", affixPlacement: "affixPlacement", affixVerticalAlignment: "affixVerticalAlignment" }, outputs: { affixOffsetChange: "affixOffsetChange", affixOverflowScroll: "affixOverflowScroll", affixPlacementChange: "affixPlacementChange" }, usesOnChanges: true, ngImport: i0 });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAffixDirective, decorators: [{
73
+ type: Directive,
74
+ args: [{
75
+ selector: '[skyAffixTo]',
76
+ }]
77
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyAffixService }]; }, propDecorators: { skyAffixTo: [{
78
+ type: Input
79
+ }], affixAutoFitContext: [{
80
+ type: Input
81
+ }], affixAutoFitOverflowOffset: [{
82
+ type: Input
83
+ }], affixEnableAutoFit: [{
84
+ type: Input
85
+ }], affixHorizontalAlignment: [{
86
+ type: Input
87
+ }], affixIsSticky: [{
88
+ type: Input
89
+ }], affixPlacement: [{
90
+ type: Input
91
+ }], affixVerticalAlignment: [{
92
+ type: Input
93
+ }], affixOffsetChange: [{
94
+ type: Output
95
+ }], affixOverflowScroll: [{
96
+ type: Output
97
+ }], affixPlacementChange: [{
98
+ type: Output
99
+ }] } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU9sRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUdsRDs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUF1RTVCLFlBQVksVUFBc0IsRUFBVSxZQUE2QjtRQUE3QixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUF0QnpFOztXQUVHO1FBRUksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFFcEU7O1dBRUc7UUFFSSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXREOztXQUVHO1FBRUkseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFJbEUsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYzthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWU7YUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QywwQkFBMEI7UUFDMUIsSUFDRSxPQUFPLENBQUMsbUJBQW1CO1lBQzNCLE9BQU8sQ0FBQywwQkFBMEI7WUFDbEMsT0FBTyxDQUFDLGtCQUFrQjtZQUMxQixPQUFPLENBQUMsd0JBQXdCO1lBQ2hDLE9BQU8sQ0FBQyxhQUFhO1lBQ3JCLE9BQU8sQ0FBQyxjQUFjO1lBQ3RCLE9BQU8sQ0FBQyxzQkFBc0IsRUFDOUI7WUFDQSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BDLGNBQWMsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQ3hDLHFCQUFxQixFQUFFLElBQUksQ0FBQywwQkFBMEI7WUFDdEQsYUFBYSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDdEMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtZQUNsRCxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDNUIsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzlCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7U0FDL0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OEdBekhVLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCOytIQU1RLFVBQVU7c0JBRGhCLEtBQUs7Z0JBT0MsbUJBQW1CO3NCQUR6QixLQUFLO2dCQU9DLDBCQUEwQjtzQkFEaEMsS0FBSztnQkFPQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBT0Msd0JBQXdCO3NCQUQ5QixLQUFLO2dCQU9DLGFBQWE7c0JBRG5CLEtBQUs7Z0JBT0MsY0FBYztzQkFEcEIsS0FBSztnQkFPQyxzQkFBc0I7c0JBRDVCLEtBQUs7Z0JBT0MsaUJBQWlCO3NCQUR2QixNQUFNO2dCQU9BLG1CQUFtQjtzQkFEekIsTUFBTTtnQkFPQSxvQkFBb0I7c0JBRDFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUFmZml4QXV0b0ZpdENvbnRleHQgfSBmcm9tICcuL2FmZml4LWF1dG8tZml0LWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5QWZmaXhIb3Jpem9udGFsQWxpZ25tZW50IH0gZnJvbSAnLi9hZmZpeC1ob3Jpem9udGFsLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTa3lBZmZpeE9mZnNldCB9IGZyb20gJy4vYWZmaXgtb2Zmc2V0JztcbmltcG9ydCB7IFNreUFmZml4T2Zmc2V0Q2hhbmdlIH0gZnJvbSAnLi9hZmZpeC1vZmZzZXQtY2hhbmdlJztcbmltcG9ydCB7IFNreUFmZml4UGxhY2VtZW50IH0gZnJvbSAnLi9hZmZpeC1wbGFjZW1lbnQnO1xuaW1wb3J0IHsgU2t5QWZmaXhQbGFjZW1lbnRDaGFuZ2UgfSBmcm9tICcuL2FmZml4LXBsYWNlbWVudC1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5QWZmaXhWZXJ0aWNhbEFsaWdubWVudCB9IGZyb20gJy4vYWZmaXgtdmVydGljYWwtYWxpZ25tZW50JztcbmltcG9ydCB7IFNreUFmZml4U2VydmljZSB9IGZyb20gJy4vYWZmaXguc2VydmljZSc7XG5pbXBvcnQgeyBTa3lBZmZpeGVyIH0gZnJvbSAnLi9hZmZpeGVyJztcblxuLyoqXG4gKiBBZmZpeGVzIHRoZSBob3N0IGVsZW1lbnQgdG8gYSBiYXNlIGVsZW1lbnQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lBZmZpeFRvXScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFmZml4RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIGJhc2UgZWxlbWVudCB0byBhZmZpeCB0aGUgaG9zdCBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreUFmZml4VG86IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBgYXV0b0ZpdENvbnRleHRgIHByb3BlcnR5IG9mIFtbU2t5QWZmaXhDb25maWddXS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhZmZpeEF1dG9GaXRDb250ZXh0OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBgYXV0b0ZpdE92ZXJmbG93T2Zmc2V0YCBwcm9wZXJ0eSBvZiBbW1NreUFmZml4Q29uZmlnXV0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWZmaXhBdXRvRml0T3ZlcmZsb3dPZmZzZXQ6IFNreUFmZml4T2Zmc2V0O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBgZW5hYmxlQXV0b0ZpdGAgcHJvcGVydHkgb2YgW1tTa3lBZmZpeENvbmZpZ11dLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFmZml4RW5hYmxlQXV0b0ZpdDogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYGhvcml6b250YWxBbGlnbm1lbnRgIHByb3BlcnR5IG9mIFtbU2t5QWZmaXhDb25maWddXS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhZmZpeEhvcml6b250YWxBbGlnbm1lbnQ6IFNreUFmZml4SG9yaXpvbnRhbEFsaWdubWVudDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYGlzU3RpY2t5YCBwcm9wZXJ0eSBvZiBbW1NreUFmZml4Q29uZmlnXV0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWZmaXhJc1N0aWNreTogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYHBsYWNlbWVudGAgcHJvcGVydHkgb2YgW1tTa3lBZmZpeENvbmZpZ11dLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFmZml4UGxhY2VtZW50OiBTa3lBZmZpeFBsYWNlbWVudDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYHZlcnRpY2FsQWxpZ25tZW50YCBwcm9wZXJ0eSBvZiBbW1NreUFmZml4Q29uZmlnXV0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWZmaXhWZXJ0aWNhbEFsaWdubWVudDogU2t5QWZmaXhWZXJ0aWNhbEFsaWdubWVudDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYWZmaXhlZCBlbGVtZW50J3Mgb2Zmc2V0IGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFmZml4T2Zmc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lBZmZpeE9mZnNldENoYW5nZT4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYWZmaXhlZCBlbGVtZW50J3Mgb3ZlcmZsb3cgY29udGFpbmVyIGlzIHNjcm9sbGVkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhZmZpeE92ZXJmbG93U2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBwbGFjZW1lbnQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWZmaXhQbGFjZW1lbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUFmZml4UGxhY2VtZW50Q2hhbmdlPigpO1xuXG4gIHByaXZhdGUgYWZmaXhlcjogU2t5QWZmaXhlcjtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgYWZmaXhTZXJ2aWNlOiBTa3lBZmZpeFNlcnZpY2UpIHtcbiAgICB0aGlzLmFmZml4ZXIgPSB0aGlzLmFmZml4U2VydmljZS5jcmVhdGVBZmZpeGVyKGVsZW1lbnRSZWYpO1xuXG4gICAgdGhpcy5hZmZpeGVyLm9mZnNldENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHRoaXMuYWZmaXhPZmZzZXRDaGFuZ2UuZW1pdChjaGFuZ2UpKTtcblxuICAgIHRoaXMuYWZmaXhlci5vdmVyZmxvd1Njcm9sbFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHRoaXMuYWZmaXhPdmVyZmxvd1Njcm9sbC5lbWl0KGNoYW5nZSkpO1xuXG4gICAgdGhpcy5hZmZpeGVyLnBsYWNlbWVudENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHRoaXMuYWZmaXhQbGFjZW1lbnRDaGFuZ2UuZW1pdChjaGFuZ2UpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzLmFmZml4QXV0b0ZpdENvbnRleHQgfHxcbiAgICAgIGNoYW5nZXMuYWZmaXhBdXRvRml0T3ZlcmZsb3dPZmZzZXQgfHxcbiAgICAgIGNoYW5nZXMuYWZmaXhFbmFibGVBdXRvRml0IHx8XG4gICAgICBjaGFuZ2VzLmFmZml4SG9yaXpvbnRhbEFsaWdubWVudCB8fFxuICAgICAgY2hhbmdlcy5hZmZpeElzU3RpY2t5IHx8XG4gICAgICBjaGFuZ2VzLmFmZml4UGxhY2VtZW50IHx8XG4gICAgICBjaGFuZ2VzLmFmZml4VmVydGljYWxBbGlnbm1lbnRcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlQWxpZ25tZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYWZmaXhPZmZzZXRDaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLmFmZml4T3ZlcmZsb3dTY3JvbGwuY29tcGxldGUoKTtcbiAgICB0aGlzLmFmZml4UGxhY2VtZW50Q2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLmFmZml4ZXIuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBbGlnbm1lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hZmZpeGVyLmFmZml4VG8odGhpcy5za3lBZmZpeFRvLCB7XG4gICAgICBhdXRvRml0Q29udGV4dDogdGhpcy5hZmZpeEF1dG9GaXRDb250ZXh0LFxuICAgICAgYXV0b0ZpdE92ZXJmbG93T2Zmc2V0OiB0aGlzLmFmZml4QXV0b0ZpdE92ZXJmbG93T2Zmc2V0LFxuICAgICAgZW5hYmxlQXV0b0ZpdDogdGhpcy5hZmZpeEVuYWJsZUF1dG9GaXQsXG4gICAgICBob3Jpem9udGFsQWxpZ25tZW50OiB0aGlzLmFmZml4SG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICAgIGlzU3RpY2t5OiB0aGlzLmFmZml4SXNTdGlja3ksXG4gICAgICBwbGFjZW1lbnQ6IHRoaXMuYWZmaXhQbGFjZW1lbnQsXG4gICAgICB2ZXJ0aWNhbEFsaWdubWVudDogdGhpcy5hZmZpeFZlcnRpY2FsQWxpZ25tZW50LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { SkyAffixDirective } from './affix.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class SkyAffixModule {
6
+ }
7
+ SkyAffixModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAffixModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ SkyAffixModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAffixModule, declarations: [SkyAffixDirective], imports: [CommonModule], exports: [SkyAffixDirective] });
9
+ SkyAffixModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAffixModule, imports: [[CommonModule]] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAffixModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [CommonModule],
14
+ exports: [SkyAffixDirective],
15
+ declarations: [SkyAffixDirective],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXgubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPdEQsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxpQkFGVixpQkFBaUIsYUFGdEIsWUFBWSxhQUNaLGlCQUFpQjs0R0FHaEIsY0FBYyxZQUpoQixDQUFDLFlBQVksQ0FBQzsyRkFJWixjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQzVCLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBZmZpeERpcmVjdGl2ZSB9IGZyb20gJy4vYWZmaXguZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTa3lBZmZpeERpcmVjdGl2ZV0sXG4gIGRlY2xhcmF0aW9uczogW1NreUFmZml4RGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWZmaXhNb2R1bGUge31cbiJdfQ==