@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
@@ -0,0 +1,29 @@
1
+ import { Subject } from 'rxjs';
2
+ /**
3
+ * Represents a single item added to the dock.
4
+ */
5
+ export class SkyDockItem {
6
+ /**
7
+ * @param componentInstance The item's component instance.
8
+ * @param stackOrder The assigned stack order of the docked item.
9
+ */
10
+ constructor(componentInstance, stackOrder) {
11
+ this.componentInstance = componentInstance;
12
+ this.stackOrder = stackOrder;
13
+ this._destroyed = new Subject();
14
+ }
15
+ /**
16
+ * An event that emits when the item is removed from the dock.
17
+ */
18
+ get destroyed() {
19
+ return this._destroyed.asObservable();
20
+ }
21
+ /**
22
+ * Removes the item from the dock.
23
+ */
24
+ destroy() {
25
+ this._destroyed.next();
26
+ this._destroyed.complete();
27
+ }
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2RvY2svZG9jay1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQVV0Qjs7O09BR0c7SUFDSCxZQUNrQixpQkFBb0IsRUFDcEIsVUFBa0I7UUFEbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFHO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFSNUIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFTdEMsQ0FBQztJQWhCSjs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQWFEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSBpdGVtIGFkZGVkIHRvIHRoZSBkb2NrLlxuICovXG5leHBvcnQgY2xhc3MgU2t5RG9ja0l0ZW08VD4ge1xuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCBlbWl0cyB3aGVuIHRoZSBpdGVtIGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jay5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGVzdHJveWVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9kZXN0cm95ZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gY29tcG9uZW50SW5zdGFuY2UgVGhlIGl0ZW0ncyBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBzdGFja09yZGVyIFRoZSBhc3NpZ25lZCBzdGFjayBvcmRlciBvZiB0aGUgZG9ja2VkIGl0ZW0uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50SW5zdGFuY2U6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWNrT3JkZXI6IG51bWJlclxuICApIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIGl0ZW0gZnJvbSB0aGUgZG9jay5cbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The location on the page where the dock component should be rendered.
3
+ */
4
+ export var SkyDockLocation;
5
+ (function (SkyDockLocation) {
6
+ /**
7
+ * Renders the dock component before a given element.
8
+ */
9
+ SkyDockLocation[SkyDockLocation["BeforeElement"] = 0] = "BeforeElement";
10
+ /**
11
+ * Renders the dock component as the last element inside the BODY element.
12
+ */
13
+ SkyDockLocation[SkyDockLocation["BodyBottom"] = 1] = "BodyBottom";
14
+ /**
15
+ * Renders the dock component as the last element inside a given element.
16
+ */
17
+ SkyDockLocation[SkyDockLocation["ElementBottom"] = 2] = "ElementBottom";
18
+ })(SkyDockLocation || (SkyDockLocation = {}));
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1sb2NhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9kb2NrL2RvY2stbG9jYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxlQWVYO0FBZkQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsdUVBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsaUVBQVUsQ0FBQTtJQUVWOztPQUVHO0lBQ0gsdUVBQWEsQ0FBQTtBQUNmLENBQUMsRUFmVyxlQUFlLEtBQWYsZUFBZSxRQWUxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGxvY2F0aW9uIG9uIHRoZSBwYWdlIHdoZXJlIHRoZSBkb2NrIGNvbXBvbmVudCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBlbnVtIFNreURvY2tMb2NhdGlvbiB7XG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBkb2NrIGNvbXBvbmVudCBiZWZvcmUgYSBnaXZlbiBlbGVtZW50LlxuICAgKi9cbiAgQmVmb3JlRWxlbWVudCxcblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgZG9jayBjb21wb25lbnQgYXMgdGhlIGxhc3QgZWxlbWVudCBpbnNpZGUgdGhlIEJPRFkgZWxlbWVudC5cbiAgICovXG4gIEJvZHlCb3R0b20sXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIGRvY2sgY29tcG9uZW50IGFzIHRoZSBsYXN0IGVsZW1lbnQgaW5zaWRlIGEgZ2l2ZW4gZWxlbWVudC5cbiAgICovXG4gIEVsZW1lbnRCb3R0b20sXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2RvY2svZG9jay1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEb2NrTG9jYXRpb24gfSBmcm9tICcuL2RvY2stbG9jYXRpb24nO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGFkZGluZyBhIGRvY2sgY29tcG9uZW50IHRvIHRoZSBwYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreURvY2tPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvbiB0aGUgcGFnZSB3aGVyZSB0aGUgZG9jayBjb21wb25lbnQgc2hvdWxkIGJlIHJlbmRlcmVkLlxuICAgKi9cbiAgbG9jYXRpb24/OiBTa3lEb2NrTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2UgZWxlbWVudCB1c2VkIHdoZW4gdXNpbmcgdGhlIGBCZWZvcmVFbGVtZW50YCBvciBgRWxlbWVudEJvdHRvbWAgbG9jYXRpb25zLlxuICAgKi9cbiAgcmVmZXJlbmNlRWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIHotaW5kZXggZm9yIHRoZSBkb2NrIGVsZW1lbnRcbiAgICovXG4gIHpJbmRleD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -0,0 +1,88 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, Injector, ViewChild, ViewContainerRef, } from '@angular/core';
2
+ import { SkyDockDomAdapterService } from './dock-dom-adapter.service';
3
+ import { SkyDockLocation } from './dock-location';
4
+ import { sortByStackOrder } from './sort-by-stack-order';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./dock-dom-adapter.service";
7
+ /**
8
+ * @internal
9
+ */
10
+ export class SkyDockComponent {
11
+ constructor(changeDetector, resolver, elementRef, injector, domAdapter) {
12
+ this.changeDetector = changeDetector;
13
+ this.resolver = resolver;
14
+ this.elementRef = elementRef;
15
+ this.injector = injector;
16
+ this.domAdapter = domAdapter;
17
+ this.itemRefs = [];
18
+ }
19
+ insertComponent(component, config = {}) {
20
+ const factory = this.resolver.resolveComponentFactory(component);
21
+ const injector = Injector.create({
22
+ providers: config.providers || [],
23
+ parent: this.injector,
24
+ });
25
+ const componentRef = this.target.createComponent(factory, undefined, injector);
26
+ const stackOrder = config.stackOrder !== null && config.stackOrder !== undefined
27
+ ? config.stackOrder
28
+ : this.getHighestStackOrder();
29
+ this.itemRefs.push({
30
+ componentRef,
31
+ stackOrder,
32
+ });
33
+ this.sortItemsByStackOrder();
34
+ this.changeDetector.markForCheck();
35
+ return {
36
+ componentRef,
37
+ stackOrder,
38
+ };
39
+ }
40
+ removeItem(item) {
41
+ const viewRef = item.componentRef.hostView;
42
+ this.target.remove(this.target.indexOf(viewRef));
43
+ const found = this.itemRefs.find((i) => i.componentRef.hostView === viewRef);
44
+ this.itemRefs.splice(this.itemRefs.indexOf(found), 1);
45
+ }
46
+ setOptions(options) {
47
+ this.options = options;
48
+ switch (this.options?.location) {
49
+ case SkyDockLocation.BeforeElement:
50
+ this.domAdapter.unbindDock(this.elementRef);
51
+ break;
52
+ case SkyDockLocation.ElementBottom:
53
+ this.domAdapter.setSticky(this.elementRef);
54
+ break;
55
+ case SkyDockLocation.BodyBottom:
56
+ default:
57
+ this.domAdapter.watchDomChanges(this.elementRef);
58
+ break;
59
+ }
60
+ if (this.options?.zIndex) {
61
+ this.domAdapter.setZIndex(this.options.zIndex, this.elementRef);
62
+ }
63
+ }
64
+ sortItemsByStackOrder() {
65
+ this.itemRefs.sort(sortByStackOrder);
66
+ // Reassign the correct index for each view.
67
+ this.itemRefs.forEach((item, i) => this.target.move(item.componentRef.hostView, i));
68
+ }
69
+ getHighestStackOrder() {
70
+ if (this.itemRefs.length === 0) {
71
+ return 0;
72
+ }
73
+ return this.itemRefs[0].stackOrder + 1;
74
+ }
75
+ }
76
+ SkyDockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDockComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ElementRef }, { token: i0.Injector }, { token: i1.SkyDockDomAdapterService }], target: i0.ɵɵFactoryTarget.Component });
77
+ SkyDockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyDockComponent, selector: "sky-dock", providers: [SkyDockDomAdapterService], viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #target></ng-container>\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host:not(.sky-dock-unbound){position:fixed;left:0;bottom:0;right:0}:host.sky-dock-sticky{position:sticky}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDockComponent, decorators: [{
79
+ type: Component,
80
+ args: [{ selector: 'sky-dock', providers: [SkyDockDomAdapterService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container #target></ng-container>\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host:not(.sky-dock-unbound){position:fixed;left:0;bottom:0;right:0}:host.sky-dock-sticky{position:sticky}\n"] }]
81
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ElementRef }, { type: i0.Injector }, { type: i1.SkyDockDomAdapterService }]; }, propDecorators: { target: [{
82
+ type: ViewChild,
83
+ args: ['target', {
84
+ read: ViewContainerRef,
85
+ static: true,
86
+ }]
87
+ }] } });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvZG9jay9kb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9kb2NrL2RvY2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsUUFBUSxFQUVSLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFFekQ7O0dBRUc7QUFRSCxNQUFNLE9BQU8sZ0JBQWdCO0lBVzNCLFlBQ1UsY0FBaUMsRUFDakMsUUFBa0MsRUFDbEMsVUFBc0IsRUFDdEIsUUFBa0IsRUFDbEIsVUFBb0M7UUFKcEMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQVB0QyxhQUFRLEdBQWdDLEVBQUUsQ0FBQztJQVFoRCxDQUFDO0lBRUcsZUFBZSxDQUNwQixTQUFrQixFQUNsQixTQUF1QyxFQUFFO1FBRXpDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN0QixDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FDOUMsT0FBTyxFQUNQLFNBQVMsRUFDVCxRQUFRLENBQ1QsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUNkLE1BQU0sQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUztZQUMzRCxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFlBQVk7WUFDWixVQUFVO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuQyxPQUFPO1lBQ0wsWUFBWTtZQUNaLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUErQjtRQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRWpELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUM5QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUMzQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUF1QjtRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQzlCLEtBQUssZUFBZSxDQUFDLGFBQWE7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDNUMsTUFBTTtZQUNSLEtBQUssZUFBZSxDQUFDLGFBQWE7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNSLEtBQUssZUFBZSxDQUFDLFVBQVUsQ0FBQztZQUNoQztnQkFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2pELE1BQU07U0FDVDtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXJDLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDOUIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OzZHQXBHVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixtQ0FIaEIsQ0FBQyx3QkFBd0IsQ0FBQyx1R0FPN0IsZ0JBQWdCLDJDQ2pDMUIseUNBQ0E7MkZENEJhLGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxVQUFVLGFBR1QsQ0FBQyx3QkFBd0IsQ0FBQyxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzT0FTdkMsTUFBTTtzQkFKYixTQUFTO3VCQUFDLFFBQVEsRUFBRTt3QkFDbkIsSUFBSSxFQUFFLGdCQUFnQjt3QkFDdEIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RvcixcbiAgVHlwZSxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RG9ja0RvbUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9kb2NrLWRvbS1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5RG9ja0luc2VydENvbXBvbmVudENvbmZpZyB9IGZyb20gJy4vZG9jay1pbnNlcnQtY29tcG9uZW50LWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lEb2NrSXRlbVJlZmVyZW5jZSB9IGZyb20gJy4vZG9jay1pdGVtLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBTa3lEb2NrTG9jYXRpb24gfSBmcm9tICcuL2RvY2stbG9jYXRpb24nO1xuaW1wb3J0IHsgU2t5RG9ja09wdGlvbnMgfSBmcm9tICcuL2RvY2stb3B0aW9ucyc7XG5pbXBvcnQgeyBzb3J0QnlTdGFja09yZGVyIH0gZnJvbSAnLi9zb3J0LWJ5LXN0YWNrLW9yZGVyJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRvY2snLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvY2suY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5RG9ja0RvbUFkYXB0ZXJTZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreURvY2tDb21wb25lbnQge1xuICBwcml2YXRlIG9wdGlvbnM6IFNreURvY2tPcHRpb25zO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldCcsIHtcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSB0YXJnZXQ6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgcHJpdmF0ZSBpdGVtUmVmczogU2t5RG9ja0l0ZW1SZWZlcmVuY2U8YW55PltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGRvbUFkYXB0ZXI6IFNreURvY2tEb21BZGFwdGVyU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGluc2VydENvbXBvbmVudDxUPihcbiAgICBjb21wb25lbnQ6IFR5cGU8VD4sXG4gICAgY29uZmlnOiBTa3lEb2NrSW5zZXJ0Q29tcG9uZW50Q29uZmlnID0ge31cbiAgKTogU2t5RG9ja0l0ZW1SZWZlcmVuY2U8VD4ge1xuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCk7XG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBjb25maWcucHJvdmlkZXJzIHx8IFtdLFxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy50YXJnZXQuY3JlYXRlQ29tcG9uZW50PFQ+KFxuICAgICAgZmFjdG9yeSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGluamVjdG9yXG4gICAgKTtcbiAgICBjb25zdCBzdGFja09yZGVyID1cbiAgICAgIGNvbmZpZy5zdGFja09yZGVyICE9PSBudWxsICYmIGNvbmZpZy5zdGFja09yZGVyICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBjb25maWcuc3RhY2tPcmRlclxuICAgICAgICA6IHRoaXMuZ2V0SGlnaGVzdFN0YWNrT3JkZXIoKTtcblxuICAgIHRoaXMuaXRlbVJlZnMucHVzaCh7XG4gICAgICBjb21wb25lbnRSZWYsXG4gICAgICBzdGFja09yZGVyLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zb3J0SXRlbXNCeVN0YWNrT3JkZXIoKTtcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29tcG9uZW50UmVmLFxuICAgICAgc3RhY2tPcmRlcixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUl0ZW0oaXRlbTogU2t5RG9ja0l0ZW1SZWZlcmVuY2U8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdSZWYgPSBpdGVtLmNvbXBvbmVudFJlZi5ob3N0VmlldztcbiAgICB0aGlzLnRhcmdldC5yZW1vdmUodGhpcy50YXJnZXQuaW5kZXhPZih2aWV3UmVmKSk7XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuaXRlbVJlZnMuZmluZChcbiAgICAgIChpKSA9PiBpLmNvbXBvbmVudFJlZi5ob3N0VmlldyA9PT0gdmlld1JlZlxuICAgICk7XG4gICAgdGhpcy5pdGVtUmVmcy5zcGxpY2UodGhpcy5pdGVtUmVmcy5pbmRleE9mKGZvdW5kKSwgMSk7XG4gIH1cblxuICBwdWJsaWMgc2V0T3B0aW9ucyhvcHRpb25zOiBTa3lEb2NrT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucz8ubG9jYXRpb24pIHtcbiAgICAgIGNhc2UgU2t5RG9ja0xvY2F0aW9uLkJlZm9yZUVsZW1lbnQ6XG4gICAgICAgIHRoaXMuZG9tQWRhcHRlci51bmJpbmREb2NrKHRoaXMuZWxlbWVudFJlZik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTa3lEb2NrTG9jYXRpb24uRWxlbWVudEJvdHRvbTpcbiAgICAgICAgdGhpcy5kb21BZGFwdGVyLnNldFN0aWNreSh0aGlzLmVsZW1lbnRSZWYpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2t5RG9ja0xvY2F0aW9uLkJvZHlCb3R0b206XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmRvbUFkYXB0ZXIud2F0Y2hEb21DaGFuZ2VzKHRoaXMuZWxlbWVudFJlZik7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnM/LnpJbmRleCkge1xuICAgICAgdGhpcy5kb21BZGFwdGVyLnNldFpJbmRleCh0aGlzLm9wdGlvbnMuekluZGV4LCB0aGlzLmVsZW1lbnRSZWYpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc29ydEl0ZW1zQnlTdGFja09yZGVyKCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbVJlZnMuc29ydChzb3J0QnlTdGFja09yZGVyKTtcblxuICAgIC8vIFJlYXNzaWduIHRoZSBjb3JyZWN0IGluZGV4IGZvciBlYWNoIHZpZXcuXG4gICAgdGhpcy5pdGVtUmVmcy5mb3JFYWNoKChpdGVtLCBpKSA9PlxuICAgICAgdGhpcy50YXJnZXQubW92ZShpdGVtLmNvbXBvbmVudFJlZi5ob3N0VmlldywgaSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIaWdoZXN0U3RhY2tPcmRlcigpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLml0ZW1SZWZzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaXRlbVJlZnNbMF0uc3RhY2tPcmRlciArIDE7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI3RhcmdldD48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { MutationObserverService } from '../mutation/mutation-observer-service';
4
+ import { SkyDockComponent } from './dock.component';
5
+ import * as i0 from "@angular/core";
6
+ export class SkyDockModule {
7
+ }
8
+ SkyDockModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ SkyDockModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDockModule, declarations: [SkyDockComponent], imports: [CommonModule] });
10
+ SkyDockModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDockModule, providers: [MutationObserverService], imports: [[CommonModule]] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDockModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ declarations: [SkyDockComponent],
16
+ providers: [MutationObserverService],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvZG9jay9kb2NrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxpQkFIVCxnQkFBZ0IsYUFEckIsWUFBWTsyR0FJWCxhQUFhLGFBRmIsQ0FBQyx1QkFBdUIsQ0FBQyxZQUYzQixDQUFDLFlBQVksQ0FBQzsyRkFJWixhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNdXRhdGlvbk9ic2VydmVyU2VydmljZSB9IGZyb20gJy4uL211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLXNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTa3lEb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9kb2NrLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtTa3lEb2NrQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbTXV0YXRpb25PYnNlcnZlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NrTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,95 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { SkyDynamicComponentLocation } from '../dynamic-component/dynamic-component-location';
3
+ import { SkyDynamicComponentService } from '../dynamic-component/dynamic-component.service';
4
+ import { SkyDockItem } from './dock-item';
5
+ import { SkyDockLocation } from './dock-location';
6
+ import { SkyDockComponent } from './dock.component';
7
+ import { sortByStackOrder } from './sort-by-stack-order';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../dynamic-component/dynamic-component.service";
10
+ /**
11
+ * This service docks components to specific areas on the page.
12
+ */
13
+ export class SkyDockService {
14
+ constructor(dynamicComponentService) {
15
+ this.dynamicComponentService = dynamicComponentService;
16
+ }
17
+ /**
18
+ * Returns all docked items.
19
+ */
20
+ get items() {
21
+ return SkyDockService._items;
22
+ }
23
+ /**
24
+ * Docks a component to the bottom of the page.
25
+ * @param component The component to dock.
26
+ * @param config Options that affect the docking action.
27
+ */
28
+ insertComponent(component, config) {
29
+ if (!SkyDockService.dockRef) {
30
+ this.createDock();
31
+ }
32
+ const itemRef = SkyDockService.dockRef.instance.insertComponent(component, config);
33
+ const item = new SkyDockItem(itemRef.componentRef.instance, itemRef.stackOrder);
34
+ item.destroyed.subscribe(() => {
35
+ SkyDockService.dockRef.instance.removeItem(itemRef);
36
+ SkyDockService._items.splice(SkyDockService._items.indexOf(item), 1);
37
+ if (SkyDockService._items.length === 0) {
38
+ this.destroyDock();
39
+ }
40
+ });
41
+ SkyDockService._items.push(item);
42
+ SkyDockService._items.sort(sortByStackOrder);
43
+ return item;
44
+ }
45
+ /**
46
+ * Sets options for the positioning and styling of the dock component. Since the dock service is a
47
+ * singleton instance, these options will be applied to all components inserted into the dock. In
48
+ * order to create a seperate dock with different options, consumers should provide a different
49
+ * instance of the dock service.
50
+ * @param options The options for positioning and styling
51
+ */
52
+ setDockOptions(options) {
53
+ this.options = options;
54
+ }
55
+ createDock() {
56
+ let dockOptions;
57
+ if (this.options) {
58
+ let dynamicLocation;
59
+ switch (this.options.location) {
60
+ case SkyDockLocation.BeforeElement:
61
+ dynamicLocation = SkyDynamicComponentLocation.BeforeElement;
62
+ break;
63
+ case SkyDockLocation.ElementBottom:
64
+ dynamicLocation = SkyDynamicComponentLocation.ElementBottom;
65
+ break;
66
+ default:
67
+ dynamicLocation = SkyDynamicComponentLocation.BodyTop;
68
+ break;
69
+ }
70
+ dockOptions = {
71
+ location: dynamicLocation,
72
+ referenceEl: this.options.referenceEl,
73
+ };
74
+ }
75
+ SkyDockService.dockRef = this.dynamicComponentService.createComponent(SkyDockComponent, dockOptions);
76
+ SkyDockService.dockRef.instance.setOptions(this.options);
77
+ }
78
+ destroyDock() {
79
+ this.dynamicComponentService.removeComponent(SkyDockService.dockRef);
80
+ SkyDockService.dockRef = undefined;
81
+ }
82
+ }
83
+ SkyDockService._items = [];
84
+ SkyDockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDockService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable });
85
+ SkyDockService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDockService, providedIn: 'any' });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDockService, decorators: [{
87
+ type: Injectable,
88
+ args: [{
89
+ // Must be 'any' so that the dock component is created in the context of its module's injector.
90
+ // If set to 'root', the component's dependency injections would only be derived from the root
91
+ // injector and may loose context if the dock was opened from within a lazy-loaded module.
92
+ providedIn: 'any',
93
+ }]
94
+ }], ctorParameters: function () { return [{ type: i1.SkyDynamicComponentService }]; } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2RvY2svZG9jay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBRS9ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTlGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRzVGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFFekQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8sY0FBYztJQWF6QixZQUFvQix1QkFBbUQ7UUFBbkQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUE0QjtJQUFHLENBQUM7SUFUM0U7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDZCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQU1EOzs7O09BSUc7SUFDSSxlQUFlLENBQ3BCLFNBQWtCLEVBQ2xCLE1BQXFDO1FBRXJDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO1lBQzNCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtRQUVELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDN0QsU0FBUyxFQUNULE1BQU0sQ0FDUCxDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQzFCLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUM3QixPQUFPLENBQUMsVUFBVSxDQUNuQixDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVCLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTdDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGNBQWMsQ0FBQyxPQUF1QjtRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLFdBQXVDLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksZUFBNEMsQ0FBQztZQUNqRCxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM3QixLQUFLLGVBQWUsQ0FBQyxhQUFhO29CQUNoQyxlQUFlLEdBQUcsMkJBQTJCLENBQUMsYUFBYSxDQUFDO29CQUM1RCxNQUFNO2dCQUNSLEtBQUssZUFBZSxDQUFDLGFBQWE7b0JBQ2hDLGVBQWUsR0FBRywyQkFBMkIsQ0FBQyxhQUFhLENBQUM7b0JBQzVELE1BQU07Z0JBQ1I7b0JBQ0UsZUFBZSxHQUFHLDJCQUEyQixDQUFDLE9BQU8sQ0FBQztvQkFDdEQsTUFBTTthQUNUO1lBRUQsV0FBVyxHQUFHO2dCQUNaLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2FBQ3RDLENBQUM7U0FDSDtRQUVELGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FDbkUsZ0JBQWdCLEVBQ2hCLFdBQVcsQ0FDWixDQUFDO1FBQ0YsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxjQUFjLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUNyQyxDQUFDOztBQTdGYyxxQkFBTSxHQUF1QixFQUFHLENBQUE7MkdBRnBDLGNBQWM7K0dBQWQsY0FBYyxjQUZiLEtBQUs7MkZBRU4sY0FBYztrQkFOMUIsVUFBVTttQkFBQztvQkFDViwrRkFBK0Y7b0JBQy9GLDhGQUE4RjtvQkFDOUYsMEZBQTBGO29CQUMxRixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uIH0gZnJvbSAnLi4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtbG9jYXRpb24nO1xuaW1wb3J0IHsgU2t5RHluYW1pY0NvbXBvbmVudE9wdGlvbnMgfSBmcm9tICcuLi9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC1vcHRpb25zJztcbmltcG9ydCB7IFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreURvY2tJbnNlcnRDb21wb25lbnRDb25maWcgfSBmcm9tICcuL2RvY2staW5zZXJ0LWNvbXBvbmVudC1jb25maWcnO1xuaW1wb3J0IHsgU2t5RG9ja0l0ZW0gfSBmcm9tICcuL2RvY2staXRlbSc7XG5pbXBvcnQgeyBTa3lEb2NrTG9jYXRpb24gfSBmcm9tICcuL2RvY2stbG9jYXRpb24nO1xuaW1wb3J0IHsgU2t5RG9ja09wdGlvbnMgfSBmcm9tICcuL2RvY2stb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lEb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9kb2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBzb3J0QnlTdGFja09yZGVyIH0gZnJvbSAnLi9zb3J0LWJ5LXN0YWNrLW9yZGVyJztcblxuLyoqXG4gKiBUaGlzIHNlcnZpY2UgZG9ja3MgY29tcG9uZW50cyB0byBzcGVjaWZpYyBhcmVhcyBvbiB0aGUgcGFnZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICAvLyBNdXN0IGJlICdhbnknIHNvIHRoYXQgdGhlIGRvY2sgY29tcG9uZW50IGlzIGNyZWF0ZWQgaW4gdGhlIGNvbnRleHQgb2YgaXRzIG1vZHVsZSdzIGluamVjdG9yLlxuICAvLyBJZiBzZXQgdG8gJ3Jvb3QnLCB0aGUgY29tcG9uZW50J3MgZGVwZW5kZW5jeSBpbmplY3Rpb25zIHdvdWxkIG9ubHkgYmUgZGVyaXZlZCBmcm9tIHRoZSByb290XG4gIC8vIGluamVjdG9yIGFuZCBtYXkgbG9vc2UgY29udGV4dCBpZiB0aGUgZG9jayB3YXMgb3BlbmVkIGZyb20gd2l0aGluIGEgbGF6eS1sb2FkZWQgbW9kdWxlLlxuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9ja1NlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRpYyBkb2NrUmVmOiBDb21wb25lbnRSZWY8U2t5RG9ja0NvbXBvbmVudD47XG4gIHByaXZhdGUgc3RhdGljIF9pdGVtczogU2t5RG9ja0l0ZW08YW55PltdID0gW107XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGRvY2tlZCBpdGVtcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXRlbXMoKTogU2t5RG9ja0l0ZW08YW55PltdIHtcbiAgICByZXR1cm4gU2t5RG9ja1NlcnZpY2UuX2l0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBvcHRpb25zOiBTa3lEb2NrT3B0aW9ucztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGR5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSkge31cblxuICAvKipcbiAgICogRG9ja3MgYSBjb21wb25lbnQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudCBUaGUgY29tcG9uZW50IHRvIGRvY2suXG4gICAqIEBwYXJhbSBjb25maWcgT3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgZG9ja2luZyBhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgaW5zZXJ0Q29tcG9uZW50PFQ+KFxuICAgIGNvbXBvbmVudDogVHlwZTxUPixcbiAgICBjb25maWc/OiBTa3lEb2NrSW5zZXJ0Q29tcG9uZW50Q29uZmlnXG4gICk6IFNreURvY2tJdGVtPFQ+IHtcbiAgICBpZiAoIVNreURvY2tTZXJ2aWNlLmRvY2tSZWYpIHtcbiAgICAgIHRoaXMuY3JlYXRlRG9jaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1SZWYgPSBTa3lEb2NrU2VydmljZS5kb2NrUmVmLmluc3RhbmNlLmluc2VydENvbXBvbmVudChcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gICAgY29uc3QgaXRlbSA9IG5ldyBTa3lEb2NrSXRlbShcbiAgICAgIGl0ZW1SZWYuY29tcG9uZW50UmVmLmluc3RhbmNlLFxuICAgICAgaXRlbVJlZi5zdGFja09yZGVyXG4gICAgKTtcblxuICAgIGl0ZW0uZGVzdHJveWVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBTa3lEb2NrU2VydmljZS5kb2NrUmVmLmluc3RhbmNlLnJlbW92ZUl0ZW0oaXRlbVJlZik7XG4gICAgICBTa3lEb2NrU2VydmljZS5faXRlbXMuc3BsaWNlKFNreURvY2tTZXJ2aWNlLl9pdGVtcy5pbmRleE9mKGl0ZW0pLCAxKTtcbiAgICAgIGlmIChTa3lEb2NrU2VydmljZS5faXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveURvY2soKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIFNreURvY2tTZXJ2aWNlLl9pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIFNreURvY2tTZXJ2aWNlLl9pdGVtcy5zb3J0KHNvcnRCeVN0YWNrT3JkZXIpO1xuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBvcHRpb25zIGZvciB0aGUgcG9zaXRpb25pbmcgYW5kIHN0eWxpbmcgb2YgdGhlIGRvY2sgY29tcG9uZW50LiBTaW5jZSB0aGUgZG9jayBzZXJ2aWNlIGlzIGFcbiAgICogc2luZ2xldG9uIGluc3RhbmNlLCB0aGVzZSBvcHRpb25zIHdpbGwgYmUgYXBwbGllZCB0byBhbGwgY29tcG9uZW50cyBpbnNlcnRlZCBpbnRvIHRoZSBkb2NrLiBJblxuICAgKiBvcmRlciB0byBjcmVhdGUgYSBzZXBlcmF0ZSBkb2NrIHdpdGggZGlmZmVyZW50IG9wdGlvbnMsIGNvbnN1bWVycyBzaG91bGQgcHJvdmlkZSBhIGRpZmZlcmVudFxuICAgKiBpbnN0YW5jZSBvZiB0aGUgZG9jayBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgcG9zaXRpb25pbmcgYW5kIHN0eWxpbmdcbiAgICovXG4gIHB1YmxpYyBzZXREb2NrT3B0aW9ucyhvcHRpb25zOiBTa3lEb2NrT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURvY2soKTogdm9pZCB7XG4gICAgbGV0IGRvY2tPcHRpb25zOiBTa3lEeW5hbWljQ29tcG9uZW50T3B0aW9ucztcblxuICAgIGlmICh0aGlzLm9wdGlvbnMpIHtcbiAgICAgIGxldCBkeW5hbWljTG9jYXRpb246IFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbjtcbiAgICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmxvY2F0aW9uKSB7XG4gICAgICAgIGNhc2UgU2t5RG9ja0xvY2F0aW9uLkJlZm9yZUVsZW1lbnQ6XG4gICAgICAgICAgZHluYW1pY0xvY2F0aW9uID0gU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkJlZm9yZUVsZW1lbnQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU2t5RG9ja0xvY2F0aW9uLkVsZW1lbnRCb3R0b206XG4gICAgICAgICAgZHluYW1pY0xvY2F0aW9uID0gU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkVsZW1lbnRCb3R0b207XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgZHluYW1pY0xvY2F0aW9uID0gU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkJvZHlUb3A7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRvY2tPcHRpb25zID0ge1xuICAgICAgICBsb2NhdGlvbjogZHluYW1pY0xvY2F0aW9uLFxuICAgICAgICByZWZlcmVuY2VFbDogdGhpcy5vcHRpb25zLnJlZmVyZW5jZUVsLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBTa3lEb2NrU2VydmljZS5kb2NrUmVmID0gdGhpcy5keW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoXG4gICAgICBTa3lEb2NrQ29tcG9uZW50LFxuICAgICAgZG9ja09wdGlvbnNcbiAgICApO1xuICAgIFNreURvY2tTZXJ2aWNlLmRvY2tSZWYuaW5zdGFuY2Uuc2V0T3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95RG9jaygpOiB2b2lkIHtcbiAgICB0aGlzLmR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudChTa3lEb2NrU2VydmljZS5kb2NrUmVmKTtcbiAgICBTa3lEb2NrU2VydmljZS5kb2NrUmVmID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export function sortByStackOrder(a, b) {
5
+ if (a.stackOrder > b.stackOrder) {
6
+ return -1;
7
+ }
8
+ if (a.stackOrder < b.stackOrder) {
9
+ return 1;
10
+ }
11
+ return 0;
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1ieS1zdGFjay1vcmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9kb2NrL3NvcnQtYnktc3RhY2stb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsQ0FBTSxFQUFFLENBQU07SUFDN0MsSUFBSSxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUU7UUFDL0IsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUNYO0lBRUQsSUFBSSxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUU7UUFDL0IsT0FBTyxDQUFDLENBQUM7S0FDVjtJQUVELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0QnlTdGFja09yZGVyKGE6IGFueSwgYjogYW55KTogbnVtYmVyIHtcbiAgaWYgKGEuc3RhY2tPcmRlciA+IGIuc3RhY2tPcmRlcikge1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIGlmIChhLnN0YWNrT3JkZXIgPCBiLnN0YWNrT3JkZXIpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIHJldHVybiAwO1xufVxuIl19
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The location on the page where the dynamic component should be rendered.
3
+ */
4
+ export var SkyDynamicComponentLocation;
5
+ (function (SkyDynamicComponentLocation) {
6
+ /**
7
+ * Renders the dynamic component before a given element.
8
+ */
9
+ SkyDynamicComponentLocation[SkyDynamicComponentLocation["BeforeElement"] = 0] = "BeforeElement";
10
+ /**
11
+ * Renders the dynamic component as the last element inside the BODY element.
12
+ */
13
+ SkyDynamicComponentLocation[SkyDynamicComponentLocation["BodyBottom"] = 1] = "BodyBottom";
14
+ /**
15
+ * Renders the dynamic component as the first element inside the BODY element.
16
+ */
17
+ SkyDynamicComponentLocation[SkyDynamicComponentLocation["BodyTop"] = 2] = "BodyTop";
18
+ /**
19
+ * Renders the dynamic component as the last element inside a given element.
20
+ */
21
+ SkyDynamicComponentLocation[SkyDynamicComponentLocation["ElementBottom"] = 3] = "ElementBottom";
22
+ /**
23
+ * Renders the dynamic component as the first element inside a given element.
24
+ */
25
+ SkyDynamicComponentLocation[SkyDynamicComponentLocation["ElementTop"] = 4] = "ElementTop";
26
+ })(SkyDynamicComponentLocation || (SkyDynamicComponentLocation = {}));
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQtbG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvZHluYW1pYy1jb21wb25lbnQvZHluYW1pYy1jb21wb25lbnQtbG9jYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSwyQkF5Qlg7QUF6QkQsV0FBWSwyQkFBMkI7SUFDckM7O09BRUc7SUFDSCwrRkFBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCx5RkFBVSxDQUFBO0lBRVY7O09BRUc7SUFDSCxtRkFBTyxDQUFBO0lBRVA7O09BRUc7SUFDSCwrRkFBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCx5RkFBVSxDQUFBO0FBQ1osQ0FBQyxFQXpCVywyQkFBMkIsS0FBM0IsMkJBQTJCLFFBeUJ0QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGxvY2F0aW9uIG9uIHRoZSBwYWdlIHdoZXJlIHRoZSBkeW5hbWljIGNvbXBvbmVudCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBlbnVtIFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbiB7XG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBkeW5hbWljIGNvbXBvbmVudCBiZWZvcmUgYSBnaXZlbiBlbGVtZW50LlxuICAgKi9cbiAgQmVmb3JlRWxlbWVudCxcblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgZHluYW1pYyBjb21wb25lbnQgYXMgdGhlIGxhc3QgZWxlbWVudCBpbnNpZGUgdGhlIEJPRFkgZWxlbWVudC5cbiAgICovXG4gIEJvZHlCb3R0b20sXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIGR5bmFtaWMgY29tcG9uZW50IGFzIHRoZSBmaXJzdCBlbGVtZW50IGluc2lkZSB0aGUgQk9EWSBlbGVtZW50LlxuICAgKi9cbiAgQm9keVRvcCxcblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgZHluYW1pYyBjb21wb25lbnQgYXMgdGhlIGxhc3QgZWxlbWVudCBpbnNpZGUgYSBnaXZlbiBlbGVtZW50LlxuICAgKi9cbiAgRWxlbWVudEJvdHRvbSxcblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgZHluYW1pYyBjb21wb25lbnQgYXMgdGhlIGZpcnN0IGVsZW1lbnQgaW5zaWRlIGEgZ2l2ZW4gZWxlbWVudC5cbiAgICovXG4gIEVsZW1lbnRUb3AsXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24gfSBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50LWxvY2F0aW9uJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBhZGRpbmcgYSBkeW5hbWljIGNvbXBvbmVudCB0byB0aGUgcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lEeW5hbWljQ29tcG9uZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb24gdGhlIHBhZ2Ugd2hlcmUgdGhlIGR5bmFtaWMgY29tcG9uZW50IHNob3VsZCBiZSByZW5kZXJlZC5cbiAgICovXG4gIGxvY2F0aW9uPzogU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVmZXJlbmNlIGVsZW1lbnQgdXNlZCB3aGVuIHVzaW5nIHRoZSBgRWxlbWVudFRvcGAgb3IgYEVsZW1lbnRCb3R0b21gIGxvY2F0aW9ucy5cbiAgICovXG4gIHJlZmVyZW5jZUVsPzogSFRNTEVsZW1lbnQ7XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { NgModule } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Provides services required to create dynamic components on the page.
5
+ * @deprecated The `SkyDynamicComponentService` no longer needs the `SkyDynamicComponentModule`.
6
+ * The `SkyDynamicComponentModule` can be removed from your project.
7
+ */
8
+ export class SkyDynamicComponentModule {
9
+ }
10
+ SkyDynamicComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDynamicComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ SkyDynamicComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDynamicComponentModule });
12
+ SkyDynamicComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDynamicComponentModule });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDynamicComponentModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{}]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6Qzs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLHlCQUF5Qjs7c0hBQXpCLHlCQUF5Qjt1SEFBekIseUJBQXlCO3VIQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBQcm92aWRlcyBzZXJ2aWNlcyByZXF1aXJlZCB0byBjcmVhdGUgZHluYW1pYyBjb21wb25lbnRzIG9uIHRoZSBwYWdlLlxuICogQGRlcHJlY2F0ZWQgVGhlIGBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZWAgbm8gbG9uZ2VyIG5lZWRzIHRoZSBgU2t5RHluYW1pY0NvbXBvbmVudE1vZHVsZWAuXG4gKiBUaGUgYFNreUR5bmFtaWNDb21wb25lbnRNb2R1bGVgIGNhbiBiZSByZW1vdmVkIGZyb20geW91ciBwcm9qZWN0LlxuICovXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgU2t5RHluYW1pY0NvbXBvbmVudE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,83 @@
1
+ import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, RendererFactory2, } from '@angular/core';
2
+ import { SkyAppWindowRef } from '../window/window-ref';
3
+ import { SkyDynamicComponentLocation } from './dynamic-component-location';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../window/window-ref";
6
+ /**
7
+ * Angular service for creating and rendering a dynamic component.
8
+ */
9
+ export class SkyDynamicComponentService {
10
+ constructor(componentFactoryResolver, applicationRef, injector, windowRef, rendererFactory) {
11
+ this.componentFactoryResolver = componentFactoryResolver;
12
+ this.applicationRef = applicationRef;
13
+ this.injector = injector;
14
+ this.windowRef = windowRef;
15
+ // Based on suggestions from https://github.com/angular/angular/issues/17824
16
+ // for accessing an instance of Renderer2 in a service since Renderer2 can't
17
+ // be injected into a service. Passing undefined for both parameters results
18
+ // in the default renderer which is what we want here.
19
+ this.renderer = rendererFactory.createRenderer(undefined, undefined);
20
+ }
21
+ /**
22
+ * Creates an instance of the specified component and adds it to the specified location
23
+ * on the page.
24
+ * @param options Options for creating the dynamic component.
25
+ */
26
+ createComponent(componentType, options) {
27
+ options = options || {
28
+ location: SkyDynamicComponentLocation.BodyBottom,
29
+ };
30
+ const componentRef = this.componentFactoryResolver
31
+ .resolveComponentFactory(componentType)
32
+ .create(this.injector);
33
+ this.applicationRef.attachView(componentRef.hostView);
34
+ const el = this.getRootNode(componentRef);
35
+ const bodyEl = this.windowRef.nativeWindow.document.body;
36
+ switch (options.location) {
37
+ case SkyDynamicComponentLocation.BeforeElement:
38
+ this.renderer.insertBefore(options.referenceEl.parentElement, el, options.referenceEl);
39
+ break;
40
+ case SkyDynamicComponentLocation.ElementTop:
41
+ this.renderer.insertBefore(options.referenceEl, el, options.referenceEl.firstChild);
42
+ break;
43
+ case SkyDynamicComponentLocation.ElementBottom:
44
+ this.renderer.appendChild(options.referenceEl, el);
45
+ break;
46
+ case SkyDynamicComponentLocation.BodyTop:
47
+ this.renderer.insertBefore(bodyEl, el, bodyEl.firstChild);
48
+ break;
49
+ default:
50
+ this.renderer.appendChild(bodyEl, el);
51
+ break;
52
+ }
53
+ return componentRef;
54
+ }
55
+ /**
56
+ * Removes a component ref from the page
57
+ * @param componentRef Component ref for the component being removed
58
+ */
59
+ removeComponent(componentRef) {
60
+ if (!componentRef) {
61
+ return;
62
+ }
63
+ this.applicationRef.detachView(componentRef.hostView);
64
+ componentRef.destroy();
65
+ }
66
+ getRootNode(componentRef) {
67
+ // Technique for retrieving the component's root node taken from here:
68
+ // https://malcoded.com/posts/angular-dynamic-components
69
+ return componentRef.hostView.rootNodes[0];
70
+ }
71
+ }
72
+ SkyDynamicComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i1.SkyAppWindowRef }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
73
+ SkyDynamicComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDynamicComponentService, providedIn: 'any' });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDynamicComponentService, decorators: [{
75
+ type: Injectable,
76
+ args: [{
77
+ // Must be 'any' so that the component is created in the context of its module's injector.
78
+ // If set to 'root', the component's dependency injections would only be derived from the root
79
+ // injector and may loose context if the component is created within a lazy-loaded module.
80
+ providedIn: 'any',
81
+ }]
82
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }, { type: i1.SkyAppWindowRef }, { type: i0.RendererFactory2 }]; } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9keW5hbWljLWNvbXBvbmVudC9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsd0JBQXdCLEVBR3hCLFVBQVUsRUFDVixRQUFRLEVBRVIsZ0JBQWdCLEdBRWpCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBRzNFOztHQUVHO0FBT0gsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUNVLHdCQUFrRCxFQUNsRCxjQUE4QixFQUM5QixRQUFrQixFQUNsQixTQUEwQixFQUNsQyxlQUFpQztRQUp6Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBR2xDLDRFQUE0RTtRQUM1RSw0RUFBNEU7UUFDNUUsNkVBQTZFO1FBQzdFLHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUNwQixhQUFzQixFQUN0QixPQUFvQztRQUVwQyxPQUFPLEdBQUcsT0FBTyxJQUFJO1lBQ25CLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxVQUFVO1NBQ2pELENBQUM7UUFFRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsd0JBQXdCO2FBQy9DLHVCQUF1QixDQUFJLGFBQWEsQ0FBQzthQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0RCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFFekQsUUFBUSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3hCLEtBQUssMkJBQTJCLENBQUMsYUFBYTtnQkFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQ3hCLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUNqQyxFQUFFLEVBQ0YsT0FBTyxDQUFDLFdBQVcsQ0FDcEIsQ0FBQztnQkFDRixNQUFNO1lBQ1IsS0FBSywyQkFBMkIsQ0FBQyxVQUFVO2dCQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FDeEIsT0FBTyxDQUFDLFdBQVcsRUFDbkIsRUFBRSxFQUNGLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUMvQixDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLDJCQUEyQixDQUFDLGFBQWE7Z0JBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELE1BQU07WUFDUixLQUFLLDJCQUEyQixDQUFDLE9BQU87Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNO1lBQ1I7Z0JBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO1NBQ1Q7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZSxDQUFJLFlBQTZCO1FBQ3JELElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sV0FBVyxDQUFJLFlBQTZCO1FBQ2xELHNFQUFzRTtRQUN0RSx3REFBd0Q7UUFDeEQsT0FBUSxZQUFZLENBQUMsUUFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7dUhBdEZVLDBCQUEwQjsySEFBMUIsMEJBQTBCLGNBRnpCLEtBQUs7MkZBRU4sMEJBQTBCO2tCQU50QyxVQUFVO21CQUFDO29CQUNWLDBGQUEwRjtvQkFDMUYsOEZBQThGO29CQUM5RiwwRkFBMEY7b0JBQzFGLFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3RhYmxlLFxuICBJbmplY3RvcixcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxuICBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5QXBwV2luZG93UmVmIH0gZnJvbSAnLi4vd2luZG93L3dpbmRvdy1yZWYnO1xuXG5pbXBvcnQgeyBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24gfSBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50LWxvY2F0aW9uJztcbmltcG9ydCB7IFNreUR5bmFtaWNDb21wb25lbnRPcHRpb25zIH0gZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudC1vcHRpb25zJztcblxuLyoqXG4gKiBBbmd1bGFyIHNlcnZpY2UgZm9yIGNyZWF0aW5nIGFuZCByZW5kZXJpbmcgYSBkeW5hbWljIGNvbXBvbmVudC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAvLyBNdXN0IGJlICdhbnknIHNvIHRoYXQgdGhlIGNvbXBvbmVudCBpcyBjcmVhdGVkIGluIHRoZSBjb250ZXh0IG9mIGl0cyBtb2R1bGUncyBpbmplY3Rvci5cbiAgLy8gSWYgc2V0IHRvICdyb290JywgdGhlIGNvbXBvbmVudCdzIGRlcGVuZGVuY3kgaW5qZWN0aW9ucyB3b3VsZCBvbmx5IGJlIGRlcml2ZWQgZnJvbSB0aGUgcm9vdFxuICAvLyBpbmplY3RvciBhbmQgbWF5IGxvb3NlIGNvbnRleHQgaWYgdGhlIGNvbXBvbmVudCBpcyBjcmVhdGVkIHdpdGhpbiBhIGxhenktbG9hZGVkIG1vZHVsZS5cbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSB3aW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZixcbiAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTJcbiAgKSB7XG4gICAgLy8gQmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNzgyNFxuICAgIC8vIGZvciBhY2Nlc3NpbmcgYW4gaW5zdGFuY2Ugb2YgUmVuZGVyZXIyIGluIGEgc2VydmljZSBzaW5jZSBSZW5kZXJlcjIgY2FuJ3RcbiAgICAvLyBiZSBpbmplY3RlZCBpbnRvIGEgc2VydmljZS4gIFBhc3NpbmcgdW5kZWZpbmVkIGZvciBib3RoIHBhcmFtZXRlcnMgcmVzdWx0c1xuICAgIC8vIGluIHRoZSBkZWZhdWx0IHJlbmRlcmVyIHdoaWNoIGlzIHdoYXQgd2Ugd2FudCBoZXJlLlxuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgdGhlIHNwZWNpZmllZCBjb21wb25lbnQgYW5kIGFkZHMgaXQgdG8gdGhlIHNwZWNpZmllZCBsb2NhdGlvblxuICAgKiBvbiB0aGUgcGFnZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhlIGR5bmFtaWMgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUNvbXBvbmVudDxUPihcbiAgICBjb21wb25lbnRUeXBlOiBUeXBlPFQ+LFxuICAgIG9wdGlvbnM/OiBTa3lEeW5hbWljQ29tcG9uZW50T3B0aW9uc1xuICApOiBDb21wb25lbnRSZWY8VD4ge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHtcbiAgICAgIGxvY2F0aW9uOiBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uQm9keUJvdHRvbSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxUPihjb21wb25lbnRUeXBlKVxuICAgICAgLmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcblxuICAgIHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgY29uc3QgZWwgPSB0aGlzLmdldFJvb3ROb2RlKGNvbXBvbmVudFJlZik7XG5cbiAgICBjb25zdCBib2R5RWwgPSB0aGlzLndpbmRvd1JlZi5uYXRpdmVXaW5kb3cuZG9jdW1lbnQuYm9keTtcblxuICAgIHN3aXRjaCAob3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgY2FzZSBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uQmVmb3JlRWxlbWVudDpcbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoXG4gICAgICAgICAgb3B0aW9ucy5yZWZlcmVuY2VFbC5wYXJlbnRFbGVtZW50LFxuICAgICAgICAgIGVsLFxuICAgICAgICAgIG9wdGlvbnMucmVmZXJlbmNlRWxcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5FbGVtZW50VG9wOlxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgICAgICBvcHRpb25zLnJlZmVyZW5jZUVsLFxuICAgICAgICAgIGVsLFxuICAgICAgICAgIG9wdGlvbnMucmVmZXJlbmNlRWwuZmlyc3RDaGlsZFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkVsZW1lbnRCb3R0b206XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQob3B0aW9ucy5yZWZlcmVuY2VFbCwgZWwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLkJvZHlUb3A6XG4gICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGJvZHlFbCwgZWwsIGJvZHlFbC5maXJzdENoaWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGJvZHlFbCwgZWwpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBjb21wb25lbnQgcmVmIGZyb20gdGhlIHBhZ2VcbiAgICogQHBhcmFtIGNvbXBvbmVudFJlZiBDb21wb25lbnQgcmVmIGZvciB0aGUgY29tcG9uZW50IGJlaW5nIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVDb21wb25lbnQ8VD4oY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4pOiB2b2lkIHtcbiAgICBpZiAoIWNvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIGdldFJvb3ROb2RlPFQ+KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+KTogYW55IHtcbiAgICAvLyBUZWNobmlxdWUgZm9yIHJldHJpZXZpbmcgdGhlIGNvbXBvbmVudCdzIHJvb3Qgbm9kZSB0YWtlbiBmcm9tIGhlcmU6XG4gICAgLy8gaHR0cHM6Ly9tYWxjb2RlZC5jb20vcG9zdHMvYW5ndWxhci1keW5hbWljLWNvbXBvbmVudHNcbiAgICByZXR1cm4gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8VD4pLnJvb3ROb2Rlc1swXTtcbiAgfVxufVxuIl19
@@ -0,0 +1,18 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SkyAppFormat {
4
+ formatText(format, ...args) {
5
+ return String(format).replace(/\{(\d+)\}/g, function (match, capture) {
6
+ return args[parseInt(capture, 10)];
7
+ });
8
+ }
9
+ }
10
+ SkyAppFormat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAppFormat, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
11
+ SkyAppFormat.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAppFormat, providedIn: 'root' });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAppFormat, decorators: [{
13
+ type: Injectable,
14
+ args: [{
15
+ providedIn: 'root',
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWZvcm1hdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9mb3JtYXQvYXBwLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sWUFBWTtJQUNoQixVQUFVLENBQUMsTUFBYyxFQUFFLEdBQUcsSUFBVztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQzNCLFlBQVksRUFDWixVQUFVLEtBQUssRUFBRSxPQUFPO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7O3lHQVJVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBcHBGb3JtYXQge1xuICBwdWJsaWMgZm9ybWF0VGV4dChmb3JtYXQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBzdHJpbmcge1xuICAgIHJldHVybiBTdHJpbmcoZm9ybWF0KS5yZXBsYWNlKFxuICAgICAgL1xceyhcXGQrKVxcfS9nLFxuICAgICAgZnVuY3Rpb24gKG1hdGNoLCBjYXB0dXJlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGFyZ3NbcGFyc2VJbnQoY2FwdHVyZSwgMTApXTtcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { Directive, ElementRef, Renderer2 } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ let idIndex = 0;
4
+ function generateId() {
5
+ idIndex++;
6
+ return `sky-id-gen__${idIndex}`;
7
+ }
8
+ /**
9
+ * Sets the element's `id` attribute to a unique ID. To reference this unique ID on other elements,
10
+ * such as in a `label` element's `for` attribute, assign this directive to a template reference
11
+ * variable, then use its `id` property.
12
+ */
13
+ export class SkyIdDirective {
14
+ constructor(elRef, renderer) {
15
+ // Generate and apply the ID before the template is rendered
16
+ // to avoid a changed-after-checked error.
17
+ const id = generateId();
18
+ renderer.setAttribute(elRef.nativeElement, 'id', id);
19
+ this._id = id;
20
+ }
21
+ get id() {
22
+ return this._id;
23
+ }
24
+ }
25
+ SkyIdDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyIdDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
26
+ SkyIdDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyIdDirective, selector: "[skyId]", exportAs: ["skyId"], ngImport: i0 });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyIdDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: '[skyId]',
31
+ exportAs: 'skyId',
32
+ }]
33
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2lkL2lkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWpFLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQixTQUFTLFVBQVU7SUFDakIsT0FBTyxFQUFFLENBQUM7SUFFVixPQUFPLGVBQWUsT0FBTyxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUVEOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8sY0FBYztJQU96QixZQUFZLEtBQWlCLEVBQUUsUUFBbUI7UUFDaEQsNERBQTREO1FBQzVELDBDQUEwQztRQUMxQyxNQUFNLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUV4QixRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFkRCxJQUFXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQzs7MkdBSFUsY0FBYzsrRkFBZCxjQUFjOzJGQUFkLGNBQWM7a0JBSjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFFBQVEsRUFBRSxPQUFPO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuZnVuY3Rpb24gZ2VuZXJhdGVJZCgpOiBzdHJpbmcge1xuICBpZEluZGV4Kys7XG5cbiAgcmV0dXJuIGBza3ktaWQtZ2VuX18ke2lkSW5kZXh9YDtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBlbGVtZW50J3MgYGlkYCBhdHRyaWJ1dGUgdG8gYSB1bmlxdWUgSUQuIFRvIHJlZmVyZW5jZSB0aGlzIHVuaXF1ZSBJRCBvbiBvdGhlciBlbGVtZW50cyxcbiAqIHN1Y2ggYXMgaW4gYSBgbGFiZWxgIGVsZW1lbnQncyBgZm9yYCBhdHRyaWJ1dGUsIGFzc2lnbiB0aGlzIGRpcmVjdGl2ZSB0byBhIHRlbXBsYXRlIHJlZmVyZW5jZVxuICogdmFyaWFibGUsIHRoZW4gdXNlIGl0cyBgaWRgIHByb3BlcnR5LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5SWRdJyxcbiAgZXhwb3J0QXM6ICdza3lJZCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUlkRGlyZWN0aXZlIHtcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIHByaXZhdGUgX2lkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZWxSZWY6IEVsZW1lbnRSZWYsIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAvLyBHZW5lcmF0ZSBhbmQgYXBwbHkgdGhlIElEIGJlZm9yZSB0aGUgdGVtcGxhdGUgaXMgcmVuZGVyZWRcbiAgICAvLyB0byBhdm9pZCBhIGNoYW5nZWQtYWZ0ZXItY2hlY2tlZCBlcnJvci5cbiAgICBjb25zdCBpZCA9IGdlbmVyYXRlSWQoKTtcblxuICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbFJlZi5uYXRpdmVFbGVtZW50LCAnaWQnLCBpZCk7XG5cbiAgICB0aGlzLl9pZCA9IGlkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SkyIdDirective } from './id.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class SkyIdModule {
5
+ }
6
+ SkyIdModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyIdModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ SkyIdModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyIdModule, declarations: [SkyIdDirective], exports: [SkyIdDirective] });
8
+ SkyIdModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyIdModule });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyIdModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [SkyIdDirective],
13
+ exports: [SkyIdDirective],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2lkL2lkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNaEQsTUFBTSxPQUFPLFdBQVc7O3dHQUFYLFdBQVc7eUdBQVgsV0FBVyxpQkFIUCxjQUFjLGFBQ25CLGNBQWM7eUdBRWIsV0FBVzsyRkFBWCxXQUFXO2tCQUp2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUlkRGlyZWN0aXZlIH0gZnJvbSAnLi9pZC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTa3lJZERpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtTa3lJZERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUlkTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @deprecated The `SkyLogService` no longer needs the `SkyLogModule`.
5
+ * The `SkyLogModule` can be removed from your project.
6
+ */
7
+ export class SkyLogModule {
8
+ }
9
+ SkyLogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ SkyLogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLogModule });
11
+ SkyLogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLogModule });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLogModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{}]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9sb2cvbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6Qzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sWUFBWTs7eUdBQVosWUFBWTswR0FBWixZQUFZOzBHQUFaLFlBQVk7MkZBQVosWUFBWTtrQkFEeEIsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBUaGUgYFNreUxvZ1NlcnZpY2VgIG5vIGxvbmdlciBuZWVkcyB0aGUgYFNreUxvZ01vZHVsZWAuXG4gKiBUaGUgYFNreUxvZ01vZHVsZWAgY2FuIGJlIHJlbW92ZWQgZnJvbSB5b3VyIHByb2plY3QuXG4gKi9cbkBOZ01vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBTa3lMb2dNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @deprecated The `SkyLogService` will be removed in the next major version of `@skyux/core`.
5
+ */
6
+ export class SkyLogService {
7
+ warn(message, ...optionalParams) {
8
+ /*istanbul ignore else */
9
+ if (window.console) {
10
+ // eslint-disable-next-line prefer-spread,prefer-rest-params
11
+ window.console.warn.apply(window.console, arguments);
12
+ }
13
+ }
14
+ }
15
+ SkyLogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ SkyLogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLogService, providedIn: 'root' });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyLogService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root',
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvbG9nL2xvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFDakIsSUFBSSxDQUFDLE9BQWEsRUFBRSxHQUFHLGNBQXFCO1FBQ2pELHlCQUF5QjtRQUN6QixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDbEIsNERBQTREO1lBQzVELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQzs7MEdBUFUsYUFBYTs4R0FBYixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBUaGUgYFNreUxvZ1NlcnZpY2VgIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBAc2t5dXgvY29yZWAuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMb2dTZXJ2aWNlIHtcbiAgcHVibGljIHdhcm4obWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKTogdm9pZCB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh3aW5kb3cuY29uc29sZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1zcHJlYWQscHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgICB3aW5kb3cuY29uc29sZS53YXJuLmFwcGx5KHdpbmRvdy5jb25zb2xlLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ export var SkyMediaBreakpoints;
2
+ (function (SkyMediaBreakpoints) {
3
+ /**
4
+ * Indicates screen widths of 767px or less.
5
+ */
6
+ SkyMediaBreakpoints[SkyMediaBreakpoints["xs"] = 1] = "xs";
7
+ /**
8
+ * Indicates screen widths of 768px to 991px.
9
+ */
10
+ SkyMediaBreakpoints[SkyMediaBreakpoints["sm"] = 2] = "sm";
11
+ /**
12
+ * Indicates screen widths of 992px to 1199px.
13
+ */
14
+ SkyMediaBreakpoints[SkyMediaBreakpoints["md"] = 3] = "md";
15
+ /**
16
+ * Indicates screen widths of 1200px or greater.
17
+ */
18
+ SkyMediaBreakpoints[SkyMediaBreakpoints["lg"] = 4] = "lg";
19
+ })(SkyMediaBreakpoints || (SkyMediaBreakpoints = {}));
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtYnJlYWtwb2ludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvbWVkaWEtcXVlcnkvbWVkaWEtYnJlYWtwb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBb0JYO0FBcEJELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gseURBQU0sQ0FBQTtJQUVOOztPQUVHO0lBQ0gseURBQUUsQ0FBQTtJQUVGOztPQUVHO0lBQ0gseURBQUUsQ0FBQTtJQUVGOztPQUVHO0lBQ0gseURBQUUsQ0FBQTtBQUNKLENBQUMsRUFwQlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQW9COUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTa3lNZWRpYUJyZWFrcG9pbnRzIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBzY3JlZW4gd2lkdGhzIG9mIDc2N3B4IG9yIGxlc3MuXG4gICAqL1xuICB4cyA9IDEsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBzY3JlZW4gd2lkdGhzIG9mIDc2OHB4IHRvIDk5MXB4LlxuICAgKi9cbiAgc20sXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBzY3JlZW4gd2lkdGhzIG9mIDk5MnB4IHRvIDExOTlweC5cbiAgICovXG4gIG1kLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgc2NyZWVuIHdpZHRocyBvZiAxMjAwcHggb3IgZ3JlYXRlci5cbiAgICovXG4gIGxnLFxufVxuIl19