@skyux/core 5.2.2 → 5.5.0-beta.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 (316) hide show
  1. package/README.md +6 -4
  2. package/bundles/skyux-core-testing.umd.js +6 -6
  3. package/bundles/skyux-core.umd.js +140 -129
  4. package/documentation.json +293 -24
  5. package/esm2015/index.js +60 -0
  6. package/esm2015/index.js.map +1 -0
  7. package/esm2015/lib/modules/adapter-service/adapter.module.js +16 -0
  8. package/esm2015/lib/modules/adapter-service/adapter.module.js.map +1 -0
  9. package/esm2015/lib/modules/adapter-service/adapter.service.js +218 -0
  10. package/esm2015/lib/modules/adapter-service/adapter.service.js.map +1 -0
  11. package/esm2015/lib/modules/adapter-service/focusable-children-options.js +2 -0
  12. package/esm2015/lib/modules/adapter-service/focusable-children-options.js.map +1 -0
  13. package/esm2015/lib/modules/affix/affix-auto-fit-context.js +12 -0
  14. package/esm2015/lib/modules/affix/affix-auto-fit-context.js.map +1 -0
  15. package/esm2015/lib/modules/affix/affix-config.js +2 -0
  16. package/esm2015/lib/modules/affix/affix-config.js.map +1 -0
  17. package/esm2015/lib/modules/affix/affix-horizontal-alignment.js +2 -0
  18. package/esm2015/lib/modules/affix/affix-horizontal-alignment.js.map +1 -0
  19. package/esm2015/lib/modules/affix/affix-offset-change.js +2 -0
  20. package/esm2015/lib/modules/affix/affix-offset-change.js.map +1 -0
  21. package/esm2015/lib/modules/affix/affix-offset.js +2 -0
  22. package/esm2015/lib/modules/affix/affix-offset.js.map +1 -0
  23. package/esm2015/lib/modules/affix/affix-placement-change.js +2 -0
  24. package/esm2015/lib/modules/affix/affix-placement-change.js.map +1 -0
  25. package/esm2015/lib/modules/affix/affix-placement.js +2 -0
  26. package/esm2015/lib/modules/affix/affix-placement.js.map +1 -0
  27. package/esm2015/lib/modules/affix/affix-utils.js +18 -0
  28. package/esm2015/lib/modules/affix/affix-utils.js.map +1 -0
  29. package/esm2015/lib/modules/affix/affix-vertical-alignment.js +2 -0
  30. package/esm2015/lib/modules/affix/affix-vertical-alignment.js.map +1 -0
  31. package/esm2015/lib/modules/affix/affix.directive.js +100 -0
  32. package/esm2015/lib/modules/affix/affix.directive.js.map +1 -0
  33. package/esm2015/lib/modules/affix/affix.module.js +18 -0
  34. package/esm2015/lib/modules/affix/affix.module.js.map +1 -0
  35. package/esm2015/lib/modules/affix/affix.service.js +24 -0
  36. package/esm2015/lib/modules/affix/affix.service.js.map +1 -0
  37. package/esm2015/lib/modules/affix/affixer.js +349 -0
  38. package/esm2015/lib/modules/affix/affixer.js.map +1 -0
  39. package/esm2015/lib/modules/affix/dom-utils.js +77 -0
  40. package/esm2015/lib/modules/affix/dom-utils.js.map +1 -0
  41. package/esm2015/lib/modules/dock/dock-dom-adapter.service.js +80 -0
  42. package/esm2015/lib/modules/dock/dock-dom-adapter.service.js.map +1 -0
  43. package/esm2015/lib/modules/dock/dock-insert-component-config.js +2 -0
  44. package/esm2015/lib/modules/dock/dock-insert-component-config.js.map +1 -0
  45. package/esm2015/lib/modules/dock/dock-item-config.js +2 -0
  46. package/esm2015/lib/modules/dock/dock-item-config.js.map +1 -0
  47. package/esm2015/lib/modules/dock/dock-item-reference.js +2 -0
  48. package/esm2015/lib/modules/dock/dock-item-reference.js.map +1 -0
  49. package/esm2015/lib/modules/dock/dock-item.js +29 -0
  50. package/esm2015/lib/modules/dock/dock-item.js.map +1 -0
  51. package/esm2015/lib/modules/dock/dock-location.js +19 -0
  52. package/esm2015/lib/modules/dock/dock-location.js.map +1 -0
  53. package/esm2015/lib/modules/dock/dock-options.js +2 -0
  54. package/esm2015/lib/modules/dock/dock-options.js.map +1 -0
  55. package/esm2015/lib/modules/dock/dock.component.js +95 -0
  56. package/esm2015/lib/modules/dock/dock.component.js.map +1 -0
  57. package/esm2015/lib/modules/dock/dock.module.js +20 -0
  58. package/esm2015/lib/modules/dock/dock.module.js.map +1 -0
  59. package/esm2015/lib/modules/dock/dock.service.js +92 -0
  60. package/esm2015/lib/modules/dock/dock.service.js.map +1 -0
  61. package/esm2015/lib/modules/dock/sort-by-stack-order.js +13 -0
  62. package/esm2015/lib/modules/dock/sort-by-stack-order.js.map +1 -0
  63. package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js +27 -0
  64. package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js.map +1 -0
  65. package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js +2 -0
  66. package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js.map +1 -0
  67. package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js +17 -0
  68. package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js.map +1 -0
  69. package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js +83 -0
  70. package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js.map +1 -0
  71. package/esm2015/lib/modules/format/app-format.js +18 -0
  72. package/esm2015/lib/modules/format/app-format.js.map +1 -0
  73. package/esm2015/lib/modules/id/id.directive.js +34 -0
  74. package/esm2015/lib/modules/id/id.directive.js.map +1 -0
  75. package/esm2015/lib/modules/id/id.module.js +16 -0
  76. package/esm2015/lib/modules/id/id.module.js.map +1 -0
  77. package/esm2015/lib/modules/log/log.module.js +16 -0
  78. package/esm2015/lib/modules/log/log.module.js.map +1 -0
  79. package/esm2015/lib/modules/log/log.service.js +22 -0
  80. package/esm2015/lib/modules/log/log.service.js.map +1 -0
  81. package/esm2015/lib/modules/media-query/media-breakpoints.js +20 -0
  82. package/esm2015/lib/modules/media-query/media-breakpoints.js.map +1 -0
  83. package/esm2015/lib/modules/media-query/media-query-listener.js +2 -0
  84. package/esm2015/lib/modules/media-query/media-query-listener.js.map +1 -0
  85. package/esm2015/lib/modules/media-query/media-query.module.js +16 -0
  86. package/esm2015/lib/modules/media-query/media-query.module.js.map +1 -0
  87. package/esm2015/lib/modules/media-query/media-query.service.js +121 -0
  88. package/esm2015/lib/modules/media-query/media-query.service.js.map +1 -0
  89. package/esm2015/lib/modules/mutation/mutation-observer-service.js +16 -0
  90. package/esm2015/lib/modules/mutation/mutation-observer-service.js.map +1 -0
  91. package/esm2015/lib/modules/numeric/numeric-symbol.js +2 -0
  92. package/esm2015/lib/modules/numeric/numeric-symbol.js.map +1 -0
  93. package/esm2015/lib/modules/numeric/numeric.module.js +20 -0
  94. package/esm2015/lib/modules/numeric/numeric.module.js.map +1 -0
  95. package/esm2015/lib/modules/numeric/numeric.options.js +41 -0
  96. package/esm2015/lib/modules/numeric/numeric.options.js.map +1 -0
  97. package/esm2015/lib/modules/numeric/numeric.pipe.js +83 -0
  98. package/esm2015/lib/modules/numeric/numeric.pipe.js.map +1 -0
  99. package/esm2015/lib/modules/numeric/numeric.service.js +188 -0
  100. package/esm2015/lib/modules/numeric/numeric.service.js.map +1 -0
  101. package/esm2015/lib/modules/overlay/overlay-adapter.service.js +41 -0
  102. package/esm2015/lib/modules/overlay/overlay-adapter.service.js.map +1 -0
  103. package/esm2015/lib/modules/overlay/overlay-config.js +2 -0
  104. package/esm2015/lib/modules/overlay/overlay-config.js.map +1 -0
  105. package/esm2015/lib/modules/overlay/overlay-context.js +10 -0
  106. package/esm2015/lib/modules/overlay/overlay-context.js.map +1 -0
  107. package/esm2015/lib/modules/overlay/overlay-instance.js +55 -0
  108. package/esm2015/lib/modules/overlay/overlay-instance.js.map +1 -0
  109. package/esm2015/lib/modules/overlay/overlay.component.js +154 -0
  110. package/esm2015/lib/modules/overlay/overlay.component.js.map +1 -0
  111. package/esm2015/lib/modules/overlay/overlay.module.js +18 -0
  112. package/esm2015/lib/modules/overlay/overlay.module.js.map +1 -0
  113. package/esm2015/lib/modules/overlay/overlay.service.js +120 -0
  114. package/esm2015/lib/modules/overlay/overlay.service.js.map +1 -0
  115. package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js +20 -0
  116. package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js.map +1 -0
  117. package/esm2015/lib/modules/percent-pipe/percent.pipe.js +48 -0
  118. package/esm2015/lib/modules/percent-pipe/percent.pipe.js.map +1 -0
  119. package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js +163 -0
  120. package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js.map +1 -0
  121. package/esm2015/lib/modules/shared/number-format/number-format-utility.js +74 -0
  122. package/esm2015/lib/modules/shared/number-format/number-format-utility.js.map +1 -0
  123. package/esm2015/lib/modules/shared/sky-core-resources.module.js +50 -0
  124. package/esm2015/lib/modules/shared/sky-core-resources.module.js.map +1 -0
  125. package/esm2015/lib/modules/title/set-title-args.js +2 -0
  126. package/esm2015/lib/modules/title/set-title-args.js.map +1 -0
  127. package/esm2015/lib/modules/title/title.service.js +31 -0
  128. package/esm2015/lib/modules/title/title.service.js.map +1 -0
  129. package/esm2015/lib/modules/ui-config/ui-config.service.js +21 -0
  130. package/esm2015/lib/modules/ui-config/ui-config.service.js.map +1 -0
  131. package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js +2 -0
  132. package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js.map +1 -0
  133. package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js +2 -0
  134. package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js.map +1 -0
  135. package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js +10 -0
  136. package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js.map +1 -0
  137. package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js +2 -0
  138. package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js.map +1 -0
  139. package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js +2 -0
  140. package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js.map +1 -0
  141. package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js +116 -0
  142. package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js.map +1 -0
  143. package/esm2015/lib/modules/viewkeeper/viewkeeper.js +254 -0
  144. package/esm2015/lib/modules/viewkeeper/viewkeeper.js.map +1 -0
  145. package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js +16 -0
  146. package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js.map +1 -0
  147. package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js +39 -0
  148. package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js.map +1 -0
  149. package/esm2015/lib/modules/window/window-ref.js +30 -0
  150. package/esm2015/lib/modules/window/window-ref.js.map +1 -0
  151. package/esm2015/skyux-core.js +2 -2
  152. package/esm2015/skyux-core.js.map +1 -0
  153. package/esm2015/testing/mock-media-query.service.js +4 -4
  154. package/esm2015/testing/mock-media-query.service.js.map +1 -0
  155. package/esm2015/testing/mock-ui-config.service.js +4 -4
  156. package/esm2015/testing/mock-ui-config.service.js.map +1 -0
  157. package/esm2015/testing/public-api.js +1 -1
  158. package/esm2015/testing/public-api.js.map +1 -0
  159. package/esm2015/testing/skyux-core-testing.js +1 -1
  160. package/esm2015/testing/skyux-core-testing.js.map +1 -0
  161. package/fesm2015/skyux-core-testing.js +6 -6
  162. package/fesm2015/skyux-core-testing.js.map +1 -1
  163. package/fesm2015/skyux-core.js +179 -168
  164. package/fesm2015/skyux-core.js.map +1 -1
  165. package/index.d.ts +57 -0
  166. package/{modules → lib/modules}/adapter-service/adapter.module.d.ts +0 -0
  167. package/{modules → lib/modules}/adapter-service/adapter.service.d.ts +0 -0
  168. package/{modules → lib/modules}/adapter-service/focusable-children-options.d.ts +0 -0
  169. package/{modules → lib/modules}/affix/affix-auto-fit-context.d.ts +0 -0
  170. package/{modules → lib/modules}/affix/affix-config.d.ts +0 -0
  171. package/{modules → lib/modules}/affix/affix-horizontal-alignment.d.ts +0 -0
  172. package/{modules → lib/modules}/affix/affix-offset-change.d.ts +0 -0
  173. package/{modules → lib/modules}/affix/affix-offset.d.ts +0 -0
  174. package/{modules → lib/modules}/affix/affix-placement-change.d.ts +0 -0
  175. package/{modules → lib/modules}/affix/affix-placement.d.ts +0 -0
  176. package/{modules → lib/modules}/affix/affix-utils.d.ts +0 -0
  177. package/{modules → lib/modules}/affix/affix-vertical-alignment.d.ts +0 -0
  178. package/{modules → lib/modules}/affix/affix.directive.d.ts +0 -0
  179. package/{modules → lib/modules}/affix/affix.module.d.ts +0 -0
  180. package/{modules → lib/modules}/affix/affix.service.d.ts +0 -0
  181. package/{modules → lib/modules}/affix/affixer.d.ts +0 -0
  182. package/{modules → lib/modules}/affix/dom-utils.d.ts +0 -0
  183. package/{modules → lib/modules}/dock/dock-dom-adapter.service.d.ts +0 -0
  184. package/{modules → lib/modules}/dock/dock-insert-component-config.d.ts +0 -0
  185. package/{modules → lib/modules}/dock/dock-item-config.d.ts +0 -0
  186. package/{modules → lib/modules}/dock/dock-item-reference.d.ts +0 -0
  187. package/{modules → lib/modules}/dock/dock-item.d.ts +0 -0
  188. package/{modules → lib/modules}/dock/dock-location.d.ts +0 -0
  189. package/{modules → lib/modules}/dock/dock-options.d.ts +0 -0
  190. package/{modules → lib/modules}/dock/dock.component.d.ts +0 -0
  191. package/{modules → lib/modules}/dock/dock.module.d.ts +0 -0
  192. package/{modules → lib/modules}/dock/dock.service.d.ts +0 -0
  193. package/{modules → lib/modules}/dock/sort-by-stack-order.d.ts +0 -0
  194. package/{modules → lib/modules}/dynamic-component/dynamic-component-location.d.ts +0 -0
  195. package/{modules → lib/modules}/dynamic-component/dynamic-component-options.d.ts +0 -0
  196. package/{modules → lib/modules}/dynamic-component/dynamic-component.module.d.ts +0 -0
  197. package/{modules → lib/modules}/dynamic-component/dynamic-component.service.d.ts +0 -0
  198. package/{modules → lib/modules}/format/app-format.d.ts +0 -0
  199. package/{modules → lib/modules}/id/id.directive.d.ts +0 -0
  200. package/{modules → lib/modules}/id/id.module.d.ts +0 -0
  201. package/{modules → lib/modules}/log/log.module.d.ts +0 -0
  202. package/{modules → lib/modules}/log/log.service.d.ts +0 -0
  203. package/{modules → lib/modules}/media-query/media-breakpoints.d.ts +0 -0
  204. package/{modules → lib/modules}/media-query/media-query-listener.d.ts +0 -0
  205. package/{modules → lib/modules}/media-query/media-query.module.d.ts +0 -0
  206. package/{modules → lib/modules}/media-query/media-query.service.d.ts +4 -0
  207. package/{modules → lib/modules}/mutation/mutation-observer-service.d.ts +0 -0
  208. package/{modules → lib/modules}/numeric/numeric-symbol.d.ts +0 -0
  209. package/{modules → lib/modules}/numeric/numeric.module.d.ts +0 -0
  210. package/{modules → lib/modules}/numeric/numeric.options.d.ts +2 -2
  211. package/{modules → lib/modules}/numeric/numeric.pipe.d.ts +2 -2
  212. package/{modules → lib/modules}/numeric/numeric.service.d.ts +0 -0
  213. package/{modules → lib/modules}/overlay/overlay-adapter.service.d.ts +0 -0
  214. package/{modules → lib/modules}/overlay/overlay-config.d.ts +0 -0
  215. package/{modules → lib/modules}/overlay/overlay-context.d.ts +0 -0
  216. package/{modules → lib/modules}/overlay/overlay-instance.d.ts +0 -0
  217. package/{modules → lib/modules}/overlay/overlay.component.d.ts +0 -0
  218. package/{modules → lib/modules}/overlay/overlay.module.d.ts +0 -0
  219. package/{modules → lib/modules}/overlay/overlay.service.d.ts +0 -0
  220. package/{modules → lib/modules}/percent-pipe/percent-pipe.module.d.ts +0 -0
  221. package/{modules → lib/modules}/percent-pipe/percent.pipe.d.ts +0 -0
  222. package/{modules → lib/modules}/scrollable-host/scrollable-host.service.d.ts +0 -0
  223. package/{modules → lib/modules}/shared/number-format/number-format-utility.d.ts +0 -0
  224. package/{modules → lib/modules}/shared/sky-core-resources.module.d.ts +0 -0
  225. package/{modules → lib/modules}/title/set-title-args.d.ts +0 -0
  226. package/{modules → lib/modules}/title/title.service.d.ts +0 -0
  227. package/{modules → lib/modules}/ui-config/ui-config.service.d.ts +0 -0
  228. package/{modules → lib/modules}/viewkeeper/viewkeeper-boundary-info.d.ts +0 -0
  229. package/{modules → lib/modules}/viewkeeper/viewkeeper-fixed-styles.d.ts +0 -0
  230. package/{modules → lib/modules}/viewkeeper/viewkeeper-host-options.d.ts +0 -0
  231. package/{modules → lib/modules}/viewkeeper/viewkeeper-offset.d.ts +0 -0
  232. package/{modules → lib/modules}/viewkeeper/viewkeeper-options.d.ts +0 -0
  233. package/{modules → lib/modules}/viewkeeper/viewkeeper.d.ts +0 -0
  234. package/{modules → lib/modules}/viewkeeper/viewkeeper.directive.d.ts +0 -0
  235. package/{modules → lib/modules}/viewkeeper/viewkeeper.module.d.ts +0 -0
  236. package/{modules → lib/modules}/viewkeeper/viewkeeper.service.d.ts +0 -0
  237. package/{modules → lib/modules}/window/window-ref.d.ts +0 -0
  238. package/package.json +19 -5
  239. package/skyux-core.d.ts +1 -1
  240. package/LICENSE +0 -21
  241. package/bundles/skyux-core-testing.umd.js.map +0 -1
  242. package/bundles/skyux-core.umd.js.map +0 -1
  243. package/esm2015/modules/adapter-service/adapter.module.js +0 -16
  244. package/esm2015/modules/adapter-service/adapter.service.js +0 -218
  245. package/esm2015/modules/adapter-service/focusable-children-options.js +0 -2
  246. package/esm2015/modules/affix/affix-auto-fit-context.js +0 -12
  247. package/esm2015/modules/affix/affix-config.js +0 -2
  248. package/esm2015/modules/affix/affix-horizontal-alignment.js +0 -2
  249. package/esm2015/modules/affix/affix-offset-change.js +0 -2
  250. package/esm2015/modules/affix/affix-offset.js +0 -2
  251. package/esm2015/modules/affix/affix-placement-change.js +0 -2
  252. package/esm2015/modules/affix/affix-placement.js +0 -2
  253. package/esm2015/modules/affix/affix-utils.js +0 -18
  254. package/esm2015/modules/affix/affix-vertical-alignment.js +0 -2
  255. package/esm2015/modules/affix/affix.directive.js +0 -98
  256. package/esm2015/modules/affix/affix.module.js +0 -18
  257. package/esm2015/modules/affix/affix.service.js +0 -24
  258. package/esm2015/modules/affix/affixer.js +0 -349
  259. package/esm2015/modules/affix/dom-utils.js +0 -77
  260. package/esm2015/modules/dock/dock-dom-adapter.service.js +0 -79
  261. package/esm2015/modules/dock/dock-insert-component-config.js +0 -2
  262. package/esm2015/modules/dock/dock-item-config.js +0 -2
  263. package/esm2015/modules/dock/dock-item-reference.js +0 -2
  264. package/esm2015/modules/dock/dock-item.js +0 -29
  265. package/esm2015/modules/dock/dock-location.js +0 -19
  266. package/esm2015/modules/dock/dock-options.js +0 -2
  267. package/esm2015/modules/dock/dock.component.js +0 -95
  268. package/esm2015/modules/dock/dock.module.js +0 -20
  269. package/esm2015/modules/dock/dock.service.js +0 -91
  270. package/esm2015/modules/dock/sort-by-stack-order.js +0 -13
  271. package/esm2015/modules/dynamic-component/dynamic-component-location.js +0 -27
  272. package/esm2015/modules/dynamic-component/dynamic-component-options.js +0 -2
  273. package/esm2015/modules/dynamic-component/dynamic-component.module.js +0 -17
  274. package/esm2015/modules/dynamic-component/dynamic-component.service.js +0 -82
  275. package/esm2015/modules/format/app-format.js +0 -18
  276. package/esm2015/modules/id/id.directive.js +0 -34
  277. package/esm2015/modules/id/id.module.js +0 -16
  278. package/esm2015/modules/log/log.module.js +0 -16
  279. package/esm2015/modules/log/log.service.js +0 -22
  280. package/esm2015/modules/media-query/media-breakpoints.js +0 -20
  281. package/esm2015/modules/media-query/media-query-listener.js +0 -2
  282. package/esm2015/modules/media-query/media-query.module.js +0 -16
  283. package/esm2015/modules/media-query/media-query.service.js +0 -117
  284. package/esm2015/modules/mutation/mutation-observer-service.js +0 -16
  285. package/esm2015/modules/numeric/numeric-symbol.js +0 -2
  286. package/esm2015/modules/numeric/numeric.module.js +0 -20
  287. package/esm2015/modules/numeric/numeric.options.js +0 -41
  288. package/esm2015/modules/numeric/numeric.pipe.js +0 -81
  289. package/esm2015/modules/numeric/numeric.service.js +0 -188
  290. package/esm2015/modules/overlay/overlay-adapter.service.js +0 -41
  291. package/esm2015/modules/overlay/overlay-config.js +0 -2
  292. package/esm2015/modules/overlay/overlay-context.js +0 -10
  293. package/esm2015/modules/overlay/overlay-instance.js +0 -55
  294. package/esm2015/modules/overlay/overlay.component.js +0 -152
  295. package/esm2015/modules/overlay/overlay.module.js +0 -18
  296. package/esm2015/modules/overlay/overlay.service.js +0 -119
  297. package/esm2015/modules/percent-pipe/percent-pipe.module.js +0 -20
  298. package/esm2015/modules/percent-pipe/percent.pipe.js +0 -48
  299. package/esm2015/modules/scrollable-host/scrollable-host.service.js +0 -154
  300. package/esm2015/modules/shared/number-format/number-format-utility.js +0 -74
  301. package/esm2015/modules/shared/sky-core-resources.module.js +0 -50
  302. package/esm2015/modules/title/set-title-args.js +0 -2
  303. package/esm2015/modules/title/title.service.js +0 -30
  304. package/esm2015/modules/ui-config/ui-config.service.js +0 -21
  305. package/esm2015/modules/viewkeeper/viewkeeper-boundary-info.js +0 -2
  306. package/esm2015/modules/viewkeeper/viewkeeper-fixed-styles.js +0 -2
  307. package/esm2015/modules/viewkeeper/viewkeeper-host-options.js +0 -10
  308. package/esm2015/modules/viewkeeper/viewkeeper-offset.js +0 -2
  309. package/esm2015/modules/viewkeeper/viewkeeper-options.js +0 -2
  310. package/esm2015/modules/viewkeeper/viewkeeper.directive.js +0 -113
  311. package/esm2015/modules/viewkeeper/viewkeeper.js +0 -254
  312. package/esm2015/modules/viewkeeper/viewkeeper.module.js +0 -16
  313. package/esm2015/modules/viewkeeper/viewkeeper.service.js +0 -38
  314. package/esm2015/modules/window/window-ref.js +0 -30
  315. package/esm2015/public-api.js +0 -60
  316. package/public-api.d.ts +0 -57
@@ -0,0 +1,254 @@
1
+ const CLS_VIEWKEEPER_FIXED = 'sky-viewkeeper-fixed';
2
+ const EVT_AFTER_VIEWKEEPER_SYNC = 'afterViewkeeperSync';
3
+ let styleEl;
4
+ let nextIdIndex;
5
+ function ensureStyleEl() {
6
+ if (!styleEl) {
7
+ styleEl = document.createElement('style');
8
+ let css = document.createTextNode(`
9
+ .${CLS_VIEWKEEPER_FIXED} {
10
+ position: fixed !important;
11
+ z-index: 999;
12
+ opacity: 0.95;
13
+ overflow: hidden;
14
+ }
15
+
16
+ .sky-theme-modern .${CLS_VIEWKEEPER_FIXED} {
17
+ box-shadow: 0px 1px 8px -1px rgba(0, 0, 0, 0.3);
18
+ opacity: initial;
19
+ }
20
+ `);
21
+ styleEl.appendChild(css);
22
+ document.head.appendChild(styleEl);
23
+ }
24
+ }
25
+ function nextId() {
26
+ nextIdIndex = (nextIdIndex || 0) + 1;
27
+ return 'viewkeeper-' + nextIdIndex;
28
+ }
29
+ function getOffset(el, scrollableHost) {
30
+ const rect = el.getBoundingClientRect();
31
+ const parent = scrollableHost ? scrollableHost : document.documentElement;
32
+ return {
33
+ top: rect.top + parent.scrollTop,
34
+ left: rect.left + parent.scrollLeft,
35
+ };
36
+ }
37
+ function px(value) {
38
+ let pxValue = value ? value.toString() : '';
39
+ if (typeof value === 'number') {
40
+ pxValue = value + 'px';
41
+ }
42
+ return pxValue;
43
+ }
44
+ function setElPosition(el, left, top, width, marginTop) {
45
+ el.style.top = px(top);
46
+ el.style.left = px(left);
47
+ el.style.marginTop = px(marginTop);
48
+ /*istanbul ignore else*/
49
+ /* sanity check */
50
+ if (width !== null) {
51
+ el.style.width = px(width);
52
+ }
53
+ }
54
+ function getHeightWithMargin(el) {
55
+ const computedStyle = getComputedStyle(el);
56
+ return (el.offsetHeight +
57
+ parseInt(computedStyle.marginTop, 10) +
58
+ parseInt(computedStyle.marginBottom, 10));
59
+ }
60
+ function createCustomEvent(name) {
61
+ const evt = document.createEvent('CustomEvent');
62
+ evt.initCustomEvent(name, false, false, undefined);
63
+ return evt;
64
+ }
65
+ export class SkyViewkeeper {
66
+ constructor(options) {
67
+ options = options || /* istanbul ignore next */ {};
68
+ this.setWidth = options.setWidth;
69
+ this.id = nextId();
70
+ this.el = options.el;
71
+ this.boundaryEl = options.boundaryEl;
72
+ this.scrollableHost = options.scrollableHost;
73
+ this.verticalOffset = options.verticalOffset || 0;
74
+ this.verticalOffsetEl = options.verticalOffsetEl;
75
+ this.viewportMarginTop = options.viewportMarginTop || 0;
76
+ this.syncElPositionHandler = () => this.syncElPosition();
77
+ if (this.verticalOffsetEl) {
78
+ this.verticalOffsetEl.addEventListener(EVT_AFTER_VIEWKEEPER_SYNC, this.syncElPositionHandler);
79
+ }
80
+ window.addEventListener('scroll', this.syncElPositionHandler, true);
81
+ window.addEventListener('resize', this.syncElPositionHandler);
82
+ window.addEventListener('orientationchange', this.syncElPositionHandler);
83
+ ensureStyleEl();
84
+ this.syncElPosition();
85
+ }
86
+ set viewportMarginTop(margin) {
87
+ this._viewportMarginTop = margin;
88
+ }
89
+ get viewportMarginTop() {
90
+ if (this.scrollableHost) {
91
+ return 0;
92
+ }
93
+ else {
94
+ return this._viewportMarginTop;
95
+ }
96
+ }
97
+ syncElPosition() {
98
+ const verticalOffset = this.calculateVerticalOffset();
99
+ // When the element isn't visible, its size can't be calculated, so don't attempt syncing position in this case.
100
+ if (this.el.offsetWidth === 0 && this.el.offsetHeight === 0) {
101
+ return;
102
+ }
103
+ const boundaryInfo = this.getBoundaryInfo();
104
+ const fixedStyles = this.getFixedStyles(boundaryInfo, verticalOffset);
105
+ const doFixEl = this.shouldFixEl(boundaryInfo, verticalOffset);
106
+ if (this.needsUpdating(doFixEl, fixedStyles)) {
107
+ if (doFixEl) {
108
+ this.fixEl(boundaryInfo, fixedStyles);
109
+ }
110
+ else {
111
+ this.unfixEl();
112
+ }
113
+ }
114
+ const evt = createCustomEvent(EVT_AFTER_VIEWKEEPER_SYNC);
115
+ this.el.dispatchEvent(evt);
116
+ }
117
+ destroy() {
118
+ if (!this.isDestroyed) {
119
+ window.removeEventListener('scroll', this.syncElPositionHandler, true);
120
+ window.removeEventListener('resize', this.syncElPositionHandler);
121
+ window.removeEventListener('orientationchange', this.syncElPositionHandler);
122
+ this.unfixEl();
123
+ if (this.verticalOffsetEl) {
124
+ this.verticalOffsetEl.removeEventListener(EVT_AFTER_VIEWKEEPER_SYNC, this.syncElPositionHandler);
125
+ }
126
+ this.el = this.boundaryEl = this.verticalOffsetEl = undefined;
127
+ this.isDestroyed = true;
128
+ }
129
+ }
130
+ getSpacerId() {
131
+ return this.id + '-spacer';
132
+ }
133
+ unfixEl() {
134
+ const spacerEl = document.getElementById(this.getSpacerId());
135
+ if (spacerEl) {
136
+ spacerEl.parentElement.removeChild(spacerEl);
137
+ }
138
+ this.el.classList.remove(CLS_VIEWKEEPER_FIXED);
139
+ this.currentElFixedLeft =
140
+ this.currentElFixedTop =
141
+ this.currentElFixedWidth =
142
+ undefined;
143
+ let width;
144
+ if (this.setWidth) {
145
+ width = 'auto';
146
+ }
147
+ setElPosition(this.el, '', '', width, '');
148
+ }
149
+ calculateVerticalOffset() {
150
+ let offset = this.verticalOffset;
151
+ if (this.verticalOffsetEl) {
152
+ const verticalOffsetElTopStyle = this.verticalOffsetEl.style.top;
153
+ const verticalOffsetElTop = parseInt(verticalOffsetElTopStyle, 10) || 0;
154
+ offset += this.verticalOffsetEl.offsetHeight + verticalOffsetElTop;
155
+ }
156
+ else if (this.scrollableHost) {
157
+ offset += this.scrollableHost.getBoundingClientRect().top;
158
+ }
159
+ return offset;
160
+ }
161
+ shouldFixEl(boundaryInfo, verticalOffset) {
162
+ let anchorTop;
163
+ let doFixEl;
164
+ if (boundaryInfo.spacerEl) {
165
+ anchorTop = getOffset(boundaryInfo.spacerEl, this.scrollableHost).top;
166
+ }
167
+ else {
168
+ anchorTop = getOffset(this.el, this.scrollableHost).top;
169
+ }
170
+ doFixEl =
171
+ boundaryInfo.scrollTop + verticalOffset + this.viewportMarginTop >
172
+ anchorTop;
173
+ return doFixEl;
174
+ }
175
+ getFixedStyles(boundaryInfo, verticalOffset) {
176
+ let elFixedTop;
177
+ // If the element needs to be fixed, this will calculate its position. The position
178
+ // will be 0 (fully visible) unless the user is scrolling the boundary out of view.
179
+ // In that case, the element should begin to scroll out of view with the
180
+ // rest of the boundary by setting its top position to a negative value.
181
+ elFixedTop = Math.min(boundaryInfo.boundaryBottom -
182
+ boundaryInfo.elHeight -
183
+ boundaryInfo.scrollTop, verticalOffset);
184
+ const elFixedWidth = boundaryInfo.boundaryEl.getBoundingClientRect().width;
185
+ const elFixedLeft = boundaryInfo.boundaryOffset.left - boundaryInfo.scrollLeft;
186
+ return {
187
+ elFixedLeft,
188
+ elFixedTop,
189
+ elFixedWidth,
190
+ };
191
+ }
192
+ needsUpdating(doFixEl, fixedStyles) {
193
+ if ((doFixEl &&
194
+ this.currentElFixedLeft === fixedStyles.elFixedLeft &&
195
+ this.currentElFixedTop === fixedStyles.elFixedTop &&
196
+ this.currentElFixedWidth === fixedStyles.elFixedWidth) ||
197
+ (!doFixEl &&
198
+ !(this.currentElFixedLeft !== undefined &&
199
+ this.currentElFixedLeft !== null))) {
200
+ // The element is either currently fixed and its position and width do not need
201
+ // to change, or the element is not currently fixed and does not need to be fixed.
202
+ // No changes are needed.
203
+ return false;
204
+ }
205
+ return true;
206
+ }
207
+ fixEl(boundaryInfo, fixedStyles) {
208
+ const el = this.el;
209
+ /* istanbul ignore else */
210
+ /* sanity check */
211
+ if (!boundaryInfo.spacerEl) {
212
+ const spacerHeight = boundaryInfo.elHeight;
213
+ const spacerEl = document.createElement('div');
214
+ spacerEl.id = boundaryInfo.spacerId;
215
+ spacerEl.style.height = px(spacerHeight);
216
+ el.parentNode.insertBefore(spacerEl, el.nextSibling);
217
+ }
218
+ el.classList.add(CLS_VIEWKEEPER_FIXED);
219
+ this.currentElFixedTop = fixedStyles.elFixedTop;
220
+ this.currentElFixedLeft = fixedStyles.elFixedLeft;
221
+ this.currentElFixedWidth = fixedStyles.elFixedWidth;
222
+ let width;
223
+ if (this.setWidth) {
224
+ width = fixedStyles.elFixedWidth;
225
+ }
226
+ setElPosition(el, fixedStyles.elFixedLeft, fixedStyles.elFixedTop, width, this.viewportMarginTop);
227
+ }
228
+ getBoundaryInfo() {
229
+ const spacerId = this.getSpacerId();
230
+ const spacerEl = document.getElementById(spacerId);
231
+ const boundaryEl = this.boundaryEl;
232
+ const boundaryOffset = getOffset(boundaryEl, this.scrollableHost);
233
+ const boundaryTop = boundaryOffset.top;
234
+ const boundaryBottom = boundaryTop + boundaryEl.getBoundingClientRect().height;
235
+ const scrollLeft = this.scrollableHost
236
+ ? this.scrollableHost.scrollLeft
237
+ : document.documentElement.scrollLeft;
238
+ const scrollTop = this.scrollableHost
239
+ ? this.scrollableHost.scrollTop
240
+ : document.documentElement.scrollTop;
241
+ const elHeight = getHeightWithMargin(this.el);
242
+ return {
243
+ boundaryBottom,
244
+ boundaryOffset,
245
+ boundaryEl,
246
+ elHeight,
247
+ scrollLeft,
248
+ scrollTop,
249
+ spacerId,
250
+ spacerEl,
251
+ };
252
+ }
253
+ }
254
+ //# sourceMappingURL=viewkeeper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewkeeper.js","sourceRoot":"","sources":["../../../../../../../../libs/components/core/src/lib/modules/viewkeeper/viewkeeper.ts"],"names":[],"mappings":"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","sourcesContent":["import { SkyViewkeeperBoundaryInfo } from './viewkeeper-boundary-info';\n\nimport { SkyViewkeeperFixedStyles } from './viewkeeper-fixed-styles';\n\nimport { SkyViewkeeperOffset } from './viewkeeper-offset';\n\nimport { SkyViewkeeperOptions } from './viewkeeper-options';\n\nconst CLS_VIEWKEEPER_FIXED = 'sky-viewkeeper-fixed';\nconst EVT_AFTER_VIEWKEEPER_SYNC = 'afterViewkeeperSync';\n\nlet styleEl: HTMLStyleElement;\nlet nextIdIndex: number;\n\nfunction ensureStyleEl(): void {\n if (!styleEl) {\n styleEl = document.createElement('style');\n\n let css = document.createTextNode(`\n.${CLS_VIEWKEEPER_FIXED} {\n position: fixed !important;\n z-index: 999;\n opacity: 0.95;\n overflow: hidden;\n}\n\n.sky-theme-modern .${CLS_VIEWKEEPER_FIXED} {\n box-shadow: 0px 1px 8px -1px rgba(0, 0, 0, 0.3);\n opacity: initial;\n}\n`);\n\n styleEl.appendChild(css);\n\n document.head.appendChild(styleEl);\n }\n}\n\nfunction nextId(): string {\n nextIdIndex = (nextIdIndex || 0) + 1;\n\n return 'viewkeeper-' + nextIdIndex;\n}\n\nfunction getOffset(\n el: HTMLElement,\n scrollableHost?: HTMLElement\n): SkyViewkeeperOffset {\n const rect = el.getBoundingClientRect();\n const parent = scrollableHost ? scrollableHost : document.documentElement;\n\n return {\n top: rect.top + parent.scrollTop,\n left: rect.left + parent.scrollLeft,\n };\n}\n\nfunction px(value: number | string): string {\n let pxValue = value ? value.toString() : '';\n\n if (typeof value === 'number') {\n pxValue = value + 'px';\n }\n\n return pxValue;\n}\n\nfunction setElPosition(\n el: HTMLElement,\n left: number | string,\n top: number | string,\n width: number | string,\n marginTop: number | string\n): void {\n el.style.top = px(top);\n el.style.left = px(left);\n el.style.marginTop = px(marginTop);\n\n /*istanbul ignore else*/\n /* sanity check */\n if (width !== null) {\n el.style.width = px(width);\n }\n}\n\nfunction getHeightWithMargin(el: HTMLElement): number {\n const computedStyle = getComputedStyle(el);\n\n return (\n el.offsetHeight +\n parseInt(computedStyle.marginTop, 10) +\n parseInt(computedStyle.marginBottom, 10)\n );\n}\n\nfunction createCustomEvent(name: any): CustomEvent<any> {\n const evt = document.createEvent('CustomEvent');\n\n evt.initCustomEvent(name, false, false, undefined);\n\n return evt;\n}\n\nexport class SkyViewkeeper {\n private setWidth: boolean;\n\n private id: string;\n\n private el: HTMLElement;\n\n private boundaryEl: HTMLElement;\n\n private verticalOffset: number;\n\n private verticalOffsetEl: HTMLElement;\n\n private set viewportMarginTop(margin: number) {\n this._viewportMarginTop = margin;\n }\n\n private get viewportMarginTop(): number {\n if (this.scrollableHost) {\n return 0;\n } else {\n return this._viewportMarginTop;\n }\n }\n\n private isDestroyed: boolean;\n\n private currentElFixedTop: number;\n\n private currentElFixedLeft: number;\n\n private currentElFixedWidth: number;\n\n private scrollableHost: HTMLElement;\n\n private syncElPositionHandler: () => void;\n\n private _viewportMarginTop: number;\n\n constructor(options: SkyViewkeeperOptions) {\n options = options || /* istanbul ignore next */ {};\n\n this.setWidth = options.setWidth;\n this.id = nextId();\n this.el = options.el;\n this.boundaryEl = options.boundaryEl;\n this.scrollableHost = options.scrollableHost;\n this.verticalOffset = options.verticalOffset || 0;\n this.verticalOffsetEl = options.verticalOffsetEl;\n this.viewportMarginTop = options.viewportMarginTop || 0;\n\n this.syncElPositionHandler = () => this.syncElPosition();\n\n if (this.verticalOffsetEl) {\n this.verticalOffsetEl.addEventListener(\n EVT_AFTER_VIEWKEEPER_SYNC,\n this.syncElPositionHandler\n );\n }\n\n window.addEventListener('scroll', this.syncElPositionHandler, true);\n window.addEventListener('resize', this.syncElPositionHandler);\n window.addEventListener('orientationchange', this.syncElPositionHandler);\n\n ensureStyleEl();\n\n this.syncElPosition();\n }\n\n public syncElPosition(): void {\n const verticalOffset = this.calculateVerticalOffset();\n\n // When the element isn't visible, its size can't be calculated, so don't attempt syncing position in this case.\n if (this.el.offsetWidth === 0 && this.el.offsetHeight === 0) {\n return;\n }\n\n const boundaryInfo = this.getBoundaryInfo();\n const fixedStyles = this.getFixedStyles(boundaryInfo, verticalOffset);\n\n const doFixEl = this.shouldFixEl(boundaryInfo, verticalOffset);\n\n if (this.needsUpdating(doFixEl, fixedStyles)) {\n if (doFixEl) {\n this.fixEl(boundaryInfo, fixedStyles);\n } else {\n this.unfixEl();\n }\n }\n\n const evt = createCustomEvent(EVT_AFTER_VIEWKEEPER_SYNC);\n\n this.el.dispatchEvent(evt);\n }\n\n public destroy(): void {\n if (!this.isDestroyed) {\n window.removeEventListener('scroll', this.syncElPositionHandler, true);\n window.removeEventListener('resize', this.syncElPositionHandler);\n window.removeEventListener(\n 'orientationchange',\n this.syncElPositionHandler\n );\n\n this.unfixEl();\n\n if (this.verticalOffsetEl) {\n this.verticalOffsetEl.removeEventListener(\n EVT_AFTER_VIEWKEEPER_SYNC,\n this.syncElPositionHandler\n );\n }\n\n this.el = this.boundaryEl = this.verticalOffsetEl = undefined;\n\n this.isDestroyed = true;\n }\n }\n\n private getSpacerId(): string {\n return this.id + '-spacer';\n }\n\n private unfixEl(): void {\n const spacerEl = document.getElementById(this.getSpacerId());\n\n if (spacerEl) {\n spacerEl.parentElement.removeChild(spacerEl);\n }\n\n this.el.classList.remove(CLS_VIEWKEEPER_FIXED);\n\n this.currentElFixedLeft =\n this.currentElFixedTop =\n this.currentElFixedWidth =\n undefined;\n\n let width: string;\n\n if (this.setWidth) {\n width = 'auto';\n }\n\n setElPosition(this.el, '', '', width, '');\n }\n\n private calculateVerticalOffset(): number {\n let offset = this.verticalOffset;\n\n if (this.verticalOffsetEl) {\n const verticalOffsetElTopStyle = this.verticalOffsetEl.style.top;\n const verticalOffsetElTop = parseInt(verticalOffsetElTopStyle, 10) || 0;\n\n offset += this.verticalOffsetEl.offsetHeight + verticalOffsetElTop;\n } else if (this.scrollableHost) {\n offset += this.scrollableHost.getBoundingClientRect().top;\n }\n\n return offset;\n }\n\n private shouldFixEl(\n boundaryInfo: SkyViewkeeperBoundaryInfo,\n verticalOffset: number\n ): boolean {\n let anchorTop: number;\n let doFixEl: boolean;\n\n if (boundaryInfo.spacerEl) {\n anchorTop = getOffset(boundaryInfo.spacerEl, this.scrollableHost).top;\n } else {\n anchorTop = getOffset(this.el, this.scrollableHost).top;\n }\n\n doFixEl =\n boundaryInfo.scrollTop + verticalOffset + this.viewportMarginTop >\n anchorTop;\n\n return doFixEl;\n }\n\n private getFixedStyles(\n boundaryInfo: SkyViewkeeperBoundaryInfo,\n verticalOffset: number\n ): SkyViewkeeperFixedStyles {\n let elFixedTop: number;\n\n // If the element needs to be fixed, this will calculate its position. The position\n // will be 0 (fully visible) unless the user is scrolling the boundary out of view.\n // In that case, the element should begin to scroll out of view with the\n // rest of the boundary by setting its top position to a negative value.\n elFixedTop = Math.min(\n boundaryInfo.boundaryBottom -\n boundaryInfo.elHeight -\n boundaryInfo.scrollTop,\n verticalOffset\n );\n\n const elFixedWidth = boundaryInfo.boundaryEl.getBoundingClientRect().width;\n const elFixedLeft =\n boundaryInfo.boundaryOffset.left - boundaryInfo.scrollLeft;\n\n return {\n elFixedLeft,\n elFixedTop,\n elFixedWidth,\n };\n }\n\n private needsUpdating(\n doFixEl: boolean,\n fixedStyles: SkyViewkeeperFixedStyles\n ): boolean {\n if (\n (doFixEl &&\n this.currentElFixedLeft === fixedStyles.elFixedLeft &&\n this.currentElFixedTop === fixedStyles.elFixedTop &&\n this.currentElFixedWidth === fixedStyles.elFixedWidth) ||\n (!doFixEl &&\n !(\n this.currentElFixedLeft !== undefined &&\n this.currentElFixedLeft !== null\n ))\n ) {\n // The element is either currently fixed and its position and width do not need\n // to change, or the element is not currently fixed and does not need to be fixed.\n // No changes are needed.\n return false;\n }\n\n return true;\n }\n\n private fixEl(\n boundaryInfo: SkyViewkeeperBoundaryInfo,\n fixedStyles: SkyViewkeeperFixedStyles\n ): void {\n const el = this.el;\n\n /* istanbul ignore else */\n /* sanity check */\n if (!boundaryInfo.spacerEl) {\n const spacerHeight = boundaryInfo.elHeight;\n\n const spacerEl = document.createElement('div');\n spacerEl.id = boundaryInfo.spacerId;\n spacerEl.style.height = px(spacerHeight);\n\n el.parentNode.insertBefore(spacerEl, el.nextSibling);\n }\n\n el.classList.add(CLS_VIEWKEEPER_FIXED);\n\n this.currentElFixedTop = fixedStyles.elFixedTop;\n this.currentElFixedLeft = fixedStyles.elFixedLeft;\n this.currentElFixedWidth = fixedStyles.elFixedWidth;\n\n let width: number;\n\n if (this.setWidth) {\n width = fixedStyles.elFixedWidth;\n }\n\n setElPosition(\n el,\n fixedStyles.elFixedLeft,\n fixedStyles.elFixedTop,\n width,\n this.viewportMarginTop\n );\n }\n\n private getBoundaryInfo(): SkyViewkeeperBoundaryInfo {\n const spacerId = this.getSpacerId();\n\n const spacerEl = document.getElementById(spacerId);\n\n const boundaryEl = this.boundaryEl;\n\n const boundaryOffset = getOffset(boundaryEl, this.scrollableHost);\n const boundaryTop = boundaryOffset.top;\n const boundaryBottom =\n boundaryTop + boundaryEl.getBoundingClientRect().height;\n\n const scrollLeft = this.scrollableHost\n ? this.scrollableHost.scrollLeft\n : document.documentElement.scrollLeft;\n const scrollTop = this.scrollableHost\n ? this.scrollableHost.scrollTop\n : document.documentElement.scrollTop;\n\n const elHeight = getHeightWithMargin(this.el);\n\n return {\n boundaryBottom,\n boundaryOffset,\n boundaryEl,\n elHeight,\n scrollLeft,\n scrollTop,\n spacerId,\n spacerEl,\n };\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SkyViewkeeperDirective } from './viewkeeper.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class SkyViewkeeperModule {
5
+ }
6
+ SkyViewkeeperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyViewkeeperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ SkyViewkeeperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyViewkeeperModule, declarations: [SkyViewkeeperDirective], exports: [SkyViewkeeperDirective] });
8
+ SkyViewkeeperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyViewkeeperModule });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyViewkeeperModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [SkyViewkeeperDirective],
13
+ exports: [SkyViewkeeperDirective],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=viewkeeper.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewkeeper.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/core/src/lib/modules/viewkeeper/viewkeeper.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;;AAMhE,MAAM,OAAO,mBAAmB;;iHAAnB,mBAAmB;kHAAnB,mBAAmB,iBAHf,sBAAsB,aAC3B,sBAAsB;kHAErB,mBAAmB;4FAAnB,mBAAmB;kBAJ/B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;iBAClC","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { SkyViewkeeperDirective } from './viewkeeper.directive';\n\n@NgModule({\n declarations: [SkyViewkeeperDirective],\n exports: [SkyViewkeeperDirective],\n})\nexport class SkyViewkeeperModule {}\n"]}
@@ -0,0 +1,39 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { SkyViewkeeper } from './viewkeeper';
3
+ import { SkyViewkeeperHostOptions } from './viewkeeper-host-options';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./viewkeeper-host-options";
6
+ /**
7
+ * Provides methods for creating and destroying viewkeeper instances.
8
+ */
9
+ export class SkyViewkeeperService {
10
+ constructor(hostOptions) {
11
+ this.hostOptions = hostOptions;
12
+ }
13
+ /**
14
+ *
15
+ * @param options Creates a viewkeeper instance, applying host options where applicable.
16
+ */
17
+ create(options) {
18
+ options = Object.assign({}, this.hostOptions || {}, options);
19
+ return new SkyViewkeeper(options);
20
+ }
21
+ /**
22
+ * Destroys a viewkeeper instance.
23
+ * @param vk Viewkeeper instance to destroy.
24
+ */
25
+ destroy(vk) {
26
+ vk.destroy();
27
+ }
28
+ }
29
+ SkyViewkeeperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyViewkeeperService, deps: [{ token: i1.SkyViewkeeperHostOptions, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
30
+ SkyViewkeeperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyViewkeeperService, providedIn: 'root' });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyViewkeeperService, decorators: [{
32
+ type: Injectable,
33
+ args: [{
34
+ providedIn: 'root',
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: i1.SkyViewkeeperHostOptions, decorators: [{
37
+ type: Optional
38
+ }] }]; } });
39
+ //# sourceMappingURL=viewkeeper.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewkeeper.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/core/src/lib/modules/viewkeeper/viewkeeper.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;;;AAIrE;;GAEG;AAIH,MAAM,OAAO,oBAAoB;IAC/B,YAAgC,WAAsC;QAAtC,gBAAW,GAAX,WAAW,CAA2B;IAAG,CAAC;IAE1E;;;OAGG;IACI,MAAM,CAAC,OAA6B;QACzC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAE7D,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,EAAiB;QAC9B,EAAE,CAAC,OAAO,EAAE,CAAC;IACf,CAAC;;kHAnBU,oBAAoB;sHAApB,oBAAoB,cAFnB,MAAM;4FAEP,oBAAoB;kBAHhC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;0BAEc,QAAQ","sourcesContent":["import { Injectable, Optional } from '@angular/core';\n\nimport { SkyViewkeeper } from './viewkeeper';\n\nimport { SkyViewkeeperHostOptions } from './viewkeeper-host-options';\n\nimport { SkyViewkeeperOptions } from './viewkeeper-options';\n\n/**\n * Provides methods for creating and destroying viewkeeper instances.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyViewkeeperService {\n constructor(@Optional() private hostOptions?: SkyViewkeeperHostOptions) {}\n\n /**\n *\n * @param options Creates a viewkeeper instance, applying host options where applicable.\n */\n public create(options: SkyViewkeeperOptions): SkyViewkeeper {\n options = Object.assign({}, this.hostOptions || {}, options);\n\n return new SkyViewkeeper(options);\n }\n\n /**\n * Destroys a viewkeeper instance.\n * @param vk Viewkeeper instance to destroy.\n */\n public destroy(vk: SkyViewkeeper): void {\n vk.destroy();\n }\n}\n"]}
@@ -0,0 +1,30 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @internal
5
+ */
6
+ export function getWindow() {
7
+ return window;
8
+ }
9
+ /**
10
+ * The application window reference service references the global window variable.
11
+ * After users inject SkyAppWindowRef into a component, they can use the service to interact with
12
+ * window properties and event handlers by referencing its nativeWindow property.
13
+ */
14
+ export class SkyAppWindowRef {
15
+ /**
16
+ * References the global `window` variable.
17
+ */
18
+ get nativeWindow() {
19
+ return getWindow();
20
+ }
21
+ }
22
+ SkyAppWindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAppWindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ SkyAppWindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAppWindowRef, providedIn: 'root' });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAppWindowRef, decorators: [{
25
+ type: Injectable,
26
+ args: [{
27
+ providedIn: 'root',
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=window-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-ref.js","sourceRoot":"","sources":["../../../../../../../../libs/components/core/src/lib/modules/window/window-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;AAE3C;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AAIH,MAAM,OAAO,eAAe;IAC1B;;OAEG;IACH,IAAW,YAAY;QACrB,OAAO,SAAS,EAAE,CAAC;IACrB,CAAC;;6GANU,eAAe;iHAAf,eAAe,cAFd,MAAM;4FAEP,eAAe;kBAH3B,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB","sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\nexport function getWindow(): any {\n return window;\n}\n\n/**\n * The application window reference service references the global window variable.\n * After users inject SkyAppWindowRef into a component, they can use the service to interact with\n * window properties and event handlers by referencing its nativeWindow property.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAppWindowRef {\n /**\n * References the global `window` variable.\n */\n public get nativeWindow(): any {\n return getWindow();\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NreXV4LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
4
+ export * from './index';
5
+ //# sourceMappingURL=skyux-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-core.js","sourceRoot":"","sources":["../../../../../libs/components/core/src/skyux-core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
@@ -33,9 +33,9 @@ MockSkyMediaQueryService.xs = '(max-width: 767px)';
33
33
  MockSkyMediaQueryService.sm = '(min-width: 768px) and (max-width: 991px)';
34
34
  MockSkyMediaQueryService.md = '(min-width: 992px) and (max-width: 1199px)';
35
35
  MockSkyMediaQueryService.lg = '(min-width: 1200px)';
36
- MockSkyMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
- MockSkyMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyMediaQueryService });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
36
+ MockSkyMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
+ MockSkyMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyMediaQueryService });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
39
39
  type: Injectable
40
40
  }], ctorParameters: function () { return []; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1tZWRpYS1xdWVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS90ZXN0aW5nL3NyYy9tb2NrLW1lZGlhLXF1ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUNMLG1CQUFtQixFQUVuQixvQkFBb0IsR0FDckIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBR3JELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxvQkFBb0I7SUFvQmhFO1FBQ0UsS0FBSyxDQUNILElBQUksTUFBTSxDQUFDO1lBQ1Qsb0JBQW9CLEVBQUUsSUFBSTtTQUMzQixDQUFDLENBQ0gsQ0FBQztRQVhHLHVCQUFrQixHQUFHLElBQUksZUFBZSxDQUM3QyxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7UUFFTSx3QkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7SUFRckQsQ0FBQztJQXBCRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLFdBQWdDO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUM7SUFDekMsQ0FBQztJQWdCTSxTQUFTLENBQUMsUUFBK0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxDQUFDLFdBQWdDLEVBQUUsRUFBRTtnQkFDekMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sSUFBSSxDQUFDLElBQXlCO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sT0FBTyxLQUFVLENBQUM7O0FBeENYLDJCQUFFLEdBQUcsb0JBQW9CLENBQUM7QUFDMUIsMkJBQUUsR0FBRywyQ0FBMkMsQ0FBQztBQUNqRCwyQkFBRSxHQUFHLDRDQUE0QyxDQUFDO0FBQ2xELDJCQUFFLEdBQUcscUJBQXFCLENBQUM7c0hBSjlCLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgU2t5TWVkaWFRdWVyeUxpc3RlbmVyLFxuICBTa3lNZWRpYVF1ZXJ5U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9ja1NreU1lZGlhUXVlcnlTZXJ2aWNlIGV4dGVuZHMgU2t5TWVkaWFRdWVyeVNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIHhzID0gJyhtYXgtd2lkdGg6IDc2N3B4KSc7XG4gIHB1YmxpYyBzdGF0aWMgc20gPSAnKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCknO1xuICBwdWJsaWMgc3RhdGljIG1kID0gJyhtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSc7XG4gIHB1YmxpYyBzdGF0aWMgbGcgPSAnKG1pbi13aWR0aDogMTIwMHB4KSc7XG5cbiAgcHVibGljIGdldCBjdXJyZW50KCk6IFNreU1lZGlhQnJlYWtwb2ludHMge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50QnJlYWtwb2ludHM7XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnQoYnJlYWtwb2ludHM6IFNreU1lZGlhQnJlYWtwb2ludHMpIHtcbiAgICB0aGlzLl9jdXJyZW50QnJlYWtwb2ludHMgPSBicmVha3BvaW50cztcbiAgfVxuXG4gIHB1YmxpYyBjdXJyZW50TW9ja1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreU1lZGlhQnJlYWtwb2ludHM+KFxuICAgIHRoaXMuY3VycmVudFxuICApO1xuXG4gIHByaXZhdGUgX2N1cnJlbnRCcmVha3BvaW50cyA9IFNreU1lZGlhQnJlYWtwb2ludHMubWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXG4gICAgICBuZXcgTmdab25lKHtcbiAgICAgICAgZW5hYmxlTG9uZ1N0YWNrVHJhY2U6IHRydWUsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRNb2NrU3ViamVjdC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGJyZWFrcG9pbnRzOiBTa3lNZWRpYUJyZWFrcG9pbnRzKSA9PiB7XG4gICAgICAgIGxpc3RlbmVyKGJyZWFrcG9pbnRzKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZmlyZShhcmdzOiBTa3lNZWRpYUJyZWFrcG9pbnRzKTogdm9pZCB7XG4gICAgdGhpcy5fY3VycmVudEJyZWFrcG9pbnRzID0gYXJncztcbiAgICB0aGlzLmN1cnJlbnRNb2NrU3ViamVjdC5uZXh0KHRoaXMuX2N1cnJlbnRCcmVha3BvaW50cyk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHt9XG59XG4iXX0=
41
+ //# sourceMappingURL=mock-media-query.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-media-query.service.js","sourceRoot":"","sources":["../../../../../../libs/components/core/testing/src/mock-media-query.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EACL,mBAAmB,EAEnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAgB,MAAM,MAAM,CAAC;;AAGrD,MAAM,OAAO,wBAAyB,SAAQ,oBAAoB;IAoBhE;QACE,KAAK,CACH,IAAI,MAAM,CAAC;YACT,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CACH,CAAC;QAXG,uBAAkB,GAAG,IAAI,eAAe,CAC7C,IAAI,CAAC,OAAO,CACb,CAAC;QAEM,wBAAmB,GAAG,mBAAmB,CAAC,EAAE,CAAC;IAQrD,CAAC;IApBD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAW,OAAO,CAAC,WAAgC;QACjD,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;IACzC,CAAC;IAgBM,SAAS,CAAC,QAA+B;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,CAAC,WAAgC,EAAE,EAAE;gBACzC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACxB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,IAAyB;QACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC;IAEM,OAAO,KAAU,CAAC;;AAxCX,2BAAE,GAAG,oBAAoB,CAAC;AAC1B,2BAAE,GAAG,2CAA2C,CAAC;AACjD,2BAAE,GAAG,4CAA4C,CAAC;AAClD,2BAAE,GAAG,qBAAqB,CAAC;sHAJ9B,wBAAwB;0HAAxB,wBAAwB;4FAAxB,wBAAwB;kBADpC,UAAU","sourcesContent":["import { Injectable, NgZone } from '@angular/core';\n\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static xs = '(max-width: 767px)';\n public static sm = '(min-width: 768px) and (max-width: 991px)';\n public static md = '(min-width: 992px) and (max-width: 1199px)';\n public static lg = '(min-width: 1200px)';\n\n public get current(): SkyMediaBreakpoints {\n return this._currentBreakpoints;\n }\n\n public set current(breakpoints: SkyMediaBreakpoints) {\n this._currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n private _currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n })\n );\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this._currentBreakpoints = args;\n this.currentMockSubject.next(this._currentBreakpoints);\n }\n\n public destroy(): void {}\n}\n"]}
@@ -51,9 +51,9 @@ export class MockSkyUIConfigService extends SkyUIConfigService {
51
51
  }
52
52
  }
53
53
  }
54
- MockSkyUIConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyUIConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
55
- MockSkyUIConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyUIConfigService });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyUIConfigService, decorators: [{
54
+ MockSkyUIConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyUIConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
55
+ MockSkyUIConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyUIConfigService });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyUIConfigService, decorators: [{
57
57
  type: Injectable
58
58
  }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay11aS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdGVzdGluZy9zcmMvbW9jay11aS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVqRCxPQUFPLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHMUMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQUNyRCxTQUFTLENBQUMsR0FBVyxFQUFFLGFBQW1CO1FBQy9DLFFBQVEsR0FBRyxFQUFFO1lBQ1gsS0FBSyxpQkFBaUI7Z0JBQ3BCLE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JDLEtBQUssU0FBUztnQkFDWixPQUFPLFlBQVksQ0FBQyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzFELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLE9BQU8sWUFBWSxDQUFDO29CQUNsQixRQUFRLEVBQUU7d0JBQ1IsWUFBWSxFQUFFOzRCQUNaLFlBQVksRUFBRTtnQ0FDWixLQUFLLEVBQUU7b0NBQ0w7d0NBQ0UsRUFBRSxFQUFFLFFBQVE7d0NBQ1osV0FBVyxFQUFFLElBQUk7cUNBQ2xCO29DQUNEO3dDQUNFLEVBQUUsRUFBRSxRQUFRO3dDQUNaLFdBQVcsRUFBRSxJQUFJO3FDQUNsQjtpQ0FDRjs2QkFDRjs0QkFDRCxXQUFXLEVBQUU7Z0NBQ1g7b0NBQ0UsS0FBSyxFQUFFO3dDQUNMOzRDQUNFLEVBQUUsRUFBRSxRQUFROzRDQUNaLFdBQVcsRUFBRSxJQUFJO3lDQUNsQjtxQ0FDRjtpQ0FDRjtnQ0FDRDtvQ0FDRSxLQUFLLEVBQUU7d0NBQ0w7NENBQ0UsRUFBRSxFQUFFLFFBQVE7NENBQ1osV0FBVyxFQUFFLElBQUk7eUNBQ2xCO3FDQUNGO2lDQUNGOzZCQUNGO3lCQUNGO3dCQUNELGVBQWUsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7cUJBQ3RDO2lCQUNGLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDOztvSEEvQ1Usc0JBQXNCO3dIQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5VUlDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBvZiBhcyBvYnNlcnZhYmxlT2YgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1vY2tTa3lVSUNvbmZpZ1NlcnZpY2UgZXh0ZW5kcyBTa3lVSUNvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgZ2V0Q29uZmlnKGtleTogc3RyaW5nLCBkZWZhdWx0Q29uZmlnPzogYW55KTogYW55IHtcbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSAnZGVmYXVsdFNldHRpbmdzJzpcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGVPZihkZWZhdWx0Q29uZmlnKTtcbiAgICAgIGNhc2UgJ2JhZERhdGEnOlxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHsgaW52YWxpZFByb3BlcnR5OiAnaW52YWxpZERhdGEnIH0pO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHtcbiAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgdXNlclNldHRpbmdzOiB7XG4gICAgICAgICAgICAgIHNpbmdsZUNvbHVtbjoge1xuICAgICAgICAgICAgICAgIHRpbGVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAndGlsZS0xJyxcbiAgICAgICAgICAgICAgICAgICAgaXNDb2xsYXBzZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogJ3RpbGUtMicsXG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBtdWx0aUNvbHVtbjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHRpbGVzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogJ3RpbGUtMicsXG4gICAgICAgICAgICAgICAgICAgICAgaXNDb2xsYXBzZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdGlsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiAndGlsZS0xJyxcbiAgICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZWZhdWx0U2V0dGluZ3M6IFsndGlsZS0xJywgJ3RpbGUtMiddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
59
+ //# sourceMappingURL=mock-ui-config.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-ui-config.service.js","sourceRoot":"","sources":["../../../../../../libs/components/core/testing/src/mock-ui-config.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,EAAE,IAAI,YAAY,EAAE,MAAM,MAAM,CAAC;;AAG1C,MAAM,OAAO,sBAAuB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,GAAW,EAAE,aAAmB;QAC/C,QAAQ,GAAG,EAAE;YACX,KAAK,iBAAiB;gBACpB,OAAO,YAAY,CAAC,aAAa,CAAC,CAAC;YACrC,KAAK,SAAS;gBACZ,OAAO,YAAY,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,CAAC;gBACP,OAAO,YAAY,CAAC;oBAClB,QAAQ,EAAE;wBACR,YAAY,EAAE;4BACZ,YAAY,EAAE;gCACZ,KAAK,EAAE;oCACL;wCACE,EAAE,EAAE,QAAQ;wCACZ,WAAW,EAAE,IAAI;qCAClB;oCACD;wCACE,EAAE,EAAE,QAAQ;wCACZ,WAAW,EAAE,IAAI;qCAClB;iCACF;6BACF;4BACD,WAAW,EAAE;gCACX;oCACE,KAAK,EAAE;wCACL;4CACE,EAAE,EAAE,QAAQ;4CACZ,WAAW,EAAE,IAAI;yCAClB;qCACF;iCACF;gCACD;oCACE,KAAK,EAAE;wCACL;4CACE,EAAE,EAAE,QAAQ;4CACZ,WAAW,EAAE,IAAI;yCAClB;qCACF;iCACF;6BACF;yBACF;wBACD,eAAe,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;qBACtC;iBACF,CAAC,CAAC;aACJ;SACF;IACH,CAAC;;oHA/CU,sBAAsB;wHAAtB,sBAAsB;4FAAtB,sBAAsB;kBADlC,UAAU","sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { of as observableOf } from 'rxjs';\n\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public getConfig(key: string, defaultConfig?: any): any {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  export * from './mock-media-query.service';
2
2
  export * from './mock-ui-config.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdGVzdGluZy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vY2stbWVkaWEtcXVlcnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vY2stdWktY29uZmlnLnNlcnZpY2UnO1xuIl19
3
+ //# sourceMappingURL=public-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../../../libs/components/core/testing/src/public-api.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC","sourcesContent":["export * from './mock-media-query.service';\nexport * from './mock-ui-config.service';\n"]}
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtY29yZS10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS90ZXN0aW5nL3NyYy9za3l1eC1jb3JlLXRlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
5
+ //# sourceMappingURL=skyux-core-testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-core-testing.js","sourceRoot":"","sources":["../../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,cAAc,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"]}
@@ -34,9 +34,9 @@ MockSkyMediaQueryService.xs = '(max-width: 767px)';
34
34
  MockSkyMediaQueryService.sm = '(min-width: 768px) and (max-width: 991px)';
35
35
  MockSkyMediaQueryService.md = '(min-width: 992px) and (max-width: 1199px)';
36
36
  MockSkyMediaQueryService.lg = '(min-width: 1200px)';
37
- MockSkyMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
38
- MockSkyMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyMediaQueryService });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
37
+ MockSkyMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
38
+ MockSkyMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyMediaQueryService });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
40
40
  type: Injectable
41
41
  }], ctorParameters: function () { return []; } });
42
42
 
@@ -89,9 +89,9 @@ class MockSkyUIConfigService extends SkyUIConfigService {
89
89
  }
90
90
  }
91
91
  }
92
- MockSkyUIConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyUIConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
93
- MockSkyUIConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyUIConfigService });
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyUIConfigService, decorators: [{
92
+ MockSkyUIConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyUIConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
93
+ MockSkyUIConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyUIConfigService });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: MockSkyUIConfigService, decorators: [{
95
95
  type: Injectable
96
96
  }] });
97
97
 
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-core-testing.js","sources":["../../../projects/core/testing/src/mock-media-query.service.ts","../../../projects/core/testing/src/mock-ui-config.service.ts","../../../projects/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\n\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static xs = '(max-width: 767px)';\n public static sm = '(min-width: 768px) and (max-width: 991px)';\n public static md = '(min-width: 992px) and (max-width: 1199px)';\n public static lg = '(min-width: 1200px)';\n\n public get current(): SkyMediaBreakpoints {\n return this._currentBreakpoints;\n }\n\n public set current(breakpoints: SkyMediaBreakpoints) {\n this._currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n private _currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n })\n );\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this._currentBreakpoints = args;\n this.currentMockSubject.next(this._currentBreakpoints);\n }\n\n public destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { of as observableOf } from 'rxjs';\n\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public getConfig(key: string, defaultConfig?: any): any {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":";;;;;MAWa,wBAAyB,SAAQ,oBAAoB;IAoBhE;QACE,KAAK,CACH,IAAI,MAAM,CAAC;YACT,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CACH,CAAC;QAXG,uBAAkB,GAAG,IAAI,eAAe,CAC7C,IAAI,CAAC,OAAO,CACb,CAAC;QAEM,wBAAmB,GAAG,mBAAmB,CAAC,EAAE,CAAC;KAQpD;IApBD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;IAED,IAAW,OAAO,CAAC,WAAgC;QACjD,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;KACxC;IAgBM,SAAS,CAAC,QAA+B;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,CAAC,WAAgC;gBACrC,QAAQ,CAAC,WAAW,CAAC,CAAC;aACvB;SACF,CAAC,CAAC;KACJ;IAEM,IAAI,CAAC,IAAyB;QACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;KACxD;IAEM,OAAO,MAAW;;AAxCX,2BAAE,GAAG,oBAAoB,CAAC;AAC1B,2BAAE,GAAG,2CAA2C,CAAC;AACjD,2BAAE,GAAG,4CAA4C,CAAC;AAClD,2BAAE,GAAG,qBAAqB,CAAC;sHAJ9B,wBAAwB;0HAAxB,wBAAwB;4FAAxB,wBAAwB;kBADpC,UAAU;;;MCHE,sBAAuB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,GAAW,EAAE,aAAmB;QAC/C,QAAQ,GAAG;YACT,KAAK,iBAAiB;gBACpB,OAAOA,EAAY,CAAC,aAAa,CAAC,CAAC;YACrC,KAAK,SAAS;gBACZ,OAAOA,EAAY,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;YAC1D,SAAS;gBACP,OAAOA,EAAY,CAAC;oBAClB,QAAQ,EAAE;wBACR,YAAY,EAAE;4BACZ,YAAY,EAAE;gCACZ,KAAK,EAAE;oCACL;wCACE,EAAE,EAAE,QAAQ;wCACZ,WAAW,EAAE,IAAI;qCAClB;oCACD;wCACE,EAAE,EAAE,QAAQ;wCACZ,WAAW,EAAE,IAAI;qCAClB;iCACF;6BACF;4BACD,WAAW,EAAE;gCACX;oCACE,KAAK,EAAE;wCACL;4CACE,EAAE,EAAE,QAAQ;4CACZ,WAAW,EAAE,IAAI;yCAClB;qCACF;iCACF;gCACD;oCACE,KAAK,EAAE;wCACL;4CACE,EAAE,EAAE,QAAQ;4CACZ,WAAW,EAAE,IAAI;yCAClB;qCACF;iCACF;6BACF;yBACF;wBACD,eAAe,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;qBACtC;iBACF,CAAC,CAAC;aACJ;SACF;KACF;;oHA/CU,sBAAsB;wHAAtB,sBAAsB;4FAAtB,sBAAsB;kBADlC,UAAU;;;ACNX;;;;;;"}
1
+ {"version":3,"file":"skyux-core-testing.js","sources":["../../../../../libs/components/core/testing/src/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\n\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static xs = '(max-width: 767px)';\n public static sm = '(min-width: 768px) and (max-width: 991px)';\n public static md = '(min-width: 992px) and (max-width: 1199px)';\n public static lg = '(min-width: 1200px)';\n\n public get current(): SkyMediaBreakpoints {\n return this._currentBreakpoints;\n }\n\n public set current(breakpoints: SkyMediaBreakpoints) {\n this._currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n private _currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n })\n );\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this._currentBreakpoints = args;\n this.currentMockSubject.next(this._currentBreakpoints);\n }\n\n public destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { of as observableOf } from 'rxjs';\n\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public getConfig(key: string, defaultConfig?: any): any {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":";;;;;MAWa,wBAAyB,SAAQ,oBAAoB;IAoBhE;QACE,KAAK,CACH,IAAI,MAAM,CAAC;YACT,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CACH,CAAC;QAXG,uBAAkB,GAAG,IAAI,eAAe,CAC7C,IAAI,CAAC,OAAO,CACb,CAAC;QAEM,wBAAmB,GAAG,mBAAmB,CAAC,EAAE,CAAC;KAQpD;IApBD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;IAED,IAAW,OAAO,CAAC,WAAgC;QACjD,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;KACxC;IAgBM,SAAS,CAAC,QAA+B;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,CAAC,WAAgC;gBACrC,QAAQ,CAAC,WAAW,CAAC,CAAC;aACvB;SACF,CAAC,CAAC;KACJ;IAEM,IAAI,CAAC,IAAyB;QACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;KACxD;IAEM,OAAO,MAAW;;AAxCX,2BAAE,GAAG,oBAAoB,CAAC;AAC1B,2BAAE,GAAG,2CAA2C,CAAC;AACjD,2BAAE,GAAG,4CAA4C,CAAC;AAClD,2BAAE,GAAG,qBAAqB,CAAC;sHAJ9B,wBAAwB;0HAAxB,wBAAwB;4FAAxB,wBAAwB;kBADpC,UAAU;;;MCHE,sBAAuB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,GAAW,EAAE,aAAmB;QAC/C,QAAQ,GAAG;YACT,KAAK,iBAAiB;gBACpB,OAAOA,EAAY,CAAC,aAAa,CAAC,CAAC;YACrC,KAAK,SAAS;gBACZ,OAAOA,EAAY,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;YAC1D,SAAS;gBACP,OAAOA,EAAY,CAAC;oBAClB,QAAQ,EAAE;wBACR,YAAY,EAAE;4BACZ,YAAY,EAAE;gCACZ,KAAK,EAAE;oCACL;wCACE,EAAE,EAAE,QAAQ;wCACZ,WAAW,EAAE,IAAI;qCAClB;oCACD;wCACE,EAAE,EAAE,QAAQ;wCACZ,WAAW,EAAE,IAAI;qCAClB;iCACF;6BACF;4BACD,WAAW,EAAE;gCACX;oCACE,KAAK,EAAE;wCACL;4CACE,EAAE,EAAE,QAAQ;4CACZ,WAAW,EAAE,IAAI;yCAClB;qCACF;iCACF;gCACD;oCACE,KAAK,EAAE;wCACL;4CACE,EAAE,EAAE,QAAQ;4CACZ,WAAW,EAAE,IAAI;yCAClB;qCACF;iCACF;6BACF;yBACF;wBACD,eAAe,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;qBACtC;iBACF,CAAC,CAAC;aACJ;SACF;KACF;;oHA/CU,sBAAsB;wHAAtB,sBAAsB;4FAAtB,sBAAsB;kBADlC,UAAU;;;ACNX;;;;;;"}