@skyux/core 5.9.4 → 6.0.0-beta.10

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 (267) hide show
  1. package/documentation.json +727 -503
  2. package/esm2020/index.mjs +64 -0
  3. package/esm2020/lib/modules/adapter-service/adapter.module.mjs +16 -0
  4. package/esm2020/lib/modules/adapter-service/adapter.service.mjs +225 -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 +346 -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 +132 -0
  40. package/esm2020/lib/modules/log/types/log-deprecation-args.mjs +2 -0
  41. package/esm2020/lib/modules/log/types/log-level-token.mjs +6 -0
  42. package/esm2020/lib/modules/log/types/log-level.mjs +2 -0
  43. package/esm2020/lib/modules/media-query/media-breakpoints.mjs +20 -0
  44. package/esm2020/lib/modules/media-query/media-query-listener.mjs +2 -0
  45. package/esm2020/lib/modules/media-query/media-query.module.mjs +16 -0
  46. package/esm2020/lib/modules/media-query/media-query.service.mjs +121 -0
  47. package/esm2020/lib/modules/mutation/mutation-observer-service.mjs +16 -0
  48. package/esm2020/lib/modules/numeric/numeric-symbol.mjs +2 -0
  49. package/esm2020/lib/modules/numeric/numeric.module.mjs +20 -0
  50. package/esm2020/lib/modules/numeric/numeric.options.mjs +46 -0
  51. package/esm2020/lib/modules/numeric/numeric.pipe.mjs +80 -0
  52. package/esm2020/lib/modules/numeric/numeric.service.mjs +186 -0
  53. package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +41 -0
  54. package/esm2020/lib/modules/overlay/overlay-config.mjs +2 -0
  55. package/esm2020/lib/modules/overlay/overlay-context.mjs +10 -0
  56. package/esm2020/lib/modules/overlay/overlay-instance.mjs +55 -0
  57. package/esm2020/lib/modules/overlay/overlay.component.mjs +149 -0
  58. package/esm2020/lib/modules/overlay/overlay.module.mjs +17 -0
  59. package/esm2020/lib/modules/overlay/overlay.service.mjs +120 -0
  60. package/esm2020/lib/modules/percent-pipe/percent-pipe.module.mjs +20 -0
  61. package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +48 -0
  62. package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +117 -0
  63. package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +73 -0
  64. package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +184 -0
  65. package/esm2020/lib/modules/shared/number-format/number-format-utility.mjs +71 -0
  66. package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +50 -0
  67. package/esm2020/lib/modules/title/set-title-args.mjs +2 -0
  68. package/esm2020/lib/modules/title/title.service.mjs +31 -0
  69. package/esm2020/lib/modules/ui-config/ui-config.service.mjs +21 -0
  70. package/esm2020/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +2 -0
  71. package/esm2020/lib/modules/viewkeeper/viewkeeper-fixed-styles.mjs +2 -0
  72. package/esm2020/lib/modules/viewkeeper/viewkeeper-host-options.mjs +10 -0
  73. package/esm2020/lib/modules/viewkeeper/viewkeeper-offset.mjs +2 -0
  74. package/esm2020/lib/modules/viewkeeper/viewkeeper-options.mjs +2 -0
  75. package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +116 -0
  76. package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +251 -0
  77. package/esm2020/lib/modules/viewkeeper/viewkeeper.module.mjs +16 -0
  78. package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +39 -0
  79. package/esm2020/lib/modules/window/window-ref.mjs +30 -0
  80. package/esm2020/skyux-core.mjs +5 -0
  81. package/esm2020/testing/mock-media-query.service.mjs +41 -0
  82. package/esm2020/testing/mock-ui-config.service.mjs +59 -0
  83. package/esm2020/testing/public-api.mjs +3 -0
  84. package/esm2020/testing/skyux-core-testing.mjs +5 -0
  85. package/fesm2015/{skyux-core-testing.js → skyux-core-testing.mjs} +7 -7
  86. package/fesm2015/skyux-core-testing.mjs.map +1 -0
  87. package/fesm2015/skyux-core.mjs +3343 -0
  88. package/fesm2015/skyux-core.mjs.map +1 -0
  89. package/fesm2020/skyux-core-testing.mjs +103 -0
  90. package/fesm2020/skyux-core-testing.mjs.map +1 -0
  91. package/{fesm2015/skyux-core.js → fesm2020/skyux-core.mjs} +270 -178
  92. package/fesm2020/skyux-core.mjs.map +1 -0
  93. package/index.d.ts +2 -0
  94. package/lib/modules/log/log.service.d.ts +37 -3
  95. package/lib/modules/log/types/log-deprecation-args.d.ts +27 -0
  96. package/lib/modules/log/types/log-level-token.d.ts +6 -0
  97. package/lib/modules/log/types/log-level.d.ts +8 -0
  98. package/lib/modules/numeric/numeric.options.d.ts +6 -1
  99. package/lib/modules/numeric/numeric.pipe.d.ts +2 -4
  100. package/lib/modules/numeric/numeric.service.d.ts +2 -2
  101. package/lib/modules/resize-observer/resize-observer-media-query.service.d.ts +0 -1
  102. package/package.json +35 -11
  103. package/testing/package.json +5 -5
  104. package/bundles/skyux-core-testing.umd.js +0 -459
  105. package/bundles/skyux-core.umd.js +0 -3848
  106. package/esm2015/index.js +0 -62
  107. package/esm2015/index.js.map +0 -1
  108. package/esm2015/lib/modules/adapter-service/adapter.module.js +0 -16
  109. package/esm2015/lib/modules/adapter-service/adapter.module.js.map +0 -1
  110. package/esm2015/lib/modules/adapter-service/adapter.service.js +0 -226
  111. package/esm2015/lib/modules/adapter-service/adapter.service.js.map +0 -1
  112. package/esm2015/lib/modules/adapter-service/focusable-children-options.js +0 -2
  113. package/esm2015/lib/modules/adapter-service/focusable-children-options.js.map +0 -1
  114. package/esm2015/lib/modules/affix/affix-auto-fit-context.js +0 -12
  115. package/esm2015/lib/modules/affix/affix-auto-fit-context.js.map +0 -1
  116. package/esm2015/lib/modules/affix/affix-config.js +0 -2
  117. package/esm2015/lib/modules/affix/affix-config.js.map +0 -1
  118. package/esm2015/lib/modules/affix/affix-horizontal-alignment.js +0 -2
  119. package/esm2015/lib/modules/affix/affix-horizontal-alignment.js.map +0 -1
  120. package/esm2015/lib/modules/affix/affix-offset-change.js +0 -2
  121. package/esm2015/lib/modules/affix/affix-offset-change.js.map +0 -1
  122. package/esm2015/lib/modules/affix/affix-offset.js +0 -2
  123. package/esm2015/lib/modules/affix/affix-offset.js.map +0 -1
  124. package/esm2015/lib/modules/affix/affix-placement-change.js +0 -2
  125. package/esm2015/lib/modules/affix/affix-placement-change.js.map +0 -1
  126. package/esm2015/lib/modules/affix/affix-placement.js +0 -2
  127. package/esm2015/lib/modules/affix/affix-placement.js.map +0 -1
  128. package/esm2015/lib/modules/affix/affix-utils.js +0 -18
  129. package/esm2015/lib/modules/affix/affix-utils.js.map +0 -1
  130. package/esm2015/lib/modules/affix/affix-vertical-alignment.js +0 -2
  131. package/esm2015/lib/modules/affix/affix-vertical-alignment.js.map +0 -1
  132. package/esm2015/lib/modules/affix/affix.directive.js +0 -100
  133. package/esm2015/lib/modules/affix/affix.directive.js.map +0 -1
  134. package/esm2015/lib/modules/affix/affix.module.js +0 -18
  135. package/esm2015/lib/modules/affix/affix.module.js.map +0 -1
  136. package/esm2015/lib/modules/affix/affix.service.js +0 -24
  137. package/esm2015/lib/modules/affix/affix.service.js.map +0 -1
  138. package/esm2015/lib/modules/affix/affixer.js +0 -349
  139. package/esm2015/lib/modules/affix/affixer.js.map +0 -1
  140. package/esm2015/lib/modules/affix/dom-utils.js +0 -77
  141. package/esm2015/lib/modules/affix/dom-utils.js.map +0 -1
  142. package/esm2015/lib/modules/dock/dock-dom-adapter.service.js +0 -80
  143. package/esm2015/lib/modules/dock/dock-dom-adapter.service.js.map +0 -1
  144. package/esm2015/lib/modules/dock/dock-insert-component-config.js +0 -2
  145. package/esm2015/lib/modules/dock/dock-insert-component-config.js.map +0 -1
  146. package/esm2015/lib/modules/dock/dock-item-config.js +0 -2
  147. package/esm2015/lib/modules/dock/dock-item-config.js.map +0 -1
  148. package/esm2015/lib/modules/dock/dock-item-reference.js +0 -2
  149. package/esm2015/lib/modules/dock/dock-item-reference.js.map +0 -1
  150. package/esm2015/lib/modules/dock/dock-item.js +0 -29
  151. package/esm2015/lib/modules/dock/dock-item.js.map +0 -1
  152. package/esm2015/lib/modules/dock/dock-location.js +0 -19
  153. package/esm2015/lib/modules/dock/dock-location.js.map +0 -1
  154. package/esm2015/lib/modules/dock/dock-options.js +0 -2
  155. package/esm2015/lib/modules/dock/dock-options.js.map +0 -1
  156. package/esm2015/lib/modules/dock/dock.component.js +0 -95
  157. package/esm2015/lib/modules/dock/dock.component.js.map +0 -1
  158. package/esm2015/lib/modules/dock/dock.module.js +0 -20
  159. package/esm2015/lib/modules/dock/dock.module.js.map +0 -1
  160. package/esm2015/lib/modules/dock/dock.service.js +0 -95
  161. package/esm2015/lib/modules/dock/dock.service.js.map +0 -1
  162. package/esm2015/lib/modules/dock/sort-by-stack-order.js +0 -13
  163. package/esm2015/lib/modules/dock/sort-by-stack-order.js.map +0 -1
  164. package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js +0 -27
  165. package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js.map +0 -1
  166. package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js +0 -2
  167. package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js.map +0 -1
  168. package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js +0 -17
  169. package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js.map +0 -1
  170. package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js +0 -83
  171. package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js.map +0 -1
  172. package/esm2015/lib/modules/format/app-format.js +0 -18
  173. package/esm2015/lib/modules/format/app-format.js.map +0 -1
  174. package/esm2015/lib/modules/id/id.directive.js +0 -34
  175. package/esm2015/lib/modules/id/id.directive.js.map +0 -1
  176. package/esm2015/lib/modules/id/id.module.js +0 -16
  177. package/esm2015/lib/modules/id/id.module.js.map +0 -1
  178. package/esm2015/lib/modules/log/log.module.js +0 -16
  179. package/esm2015/lib/modules/log/log.module.js.map +0 -1
  180. package/esm2015/lib/modules/log/log.service.js +0 -23
  181. package/esm2015/lib/modules/log/log.service.js.map +0 -1
  182. package/esm2015/lib/modules/media-query/media-breakpoints.js +0 -20
  183. package/esm2015/lib/modules/media-query/media-breakpoints.js.map +0 -1
  184. package/esm2015/lib/modules/media-query/media-query-listener.js +0 -2
  185. package/esm2015/lib/modules/media-query/media-query-listener.js.map +0 -1
  186. package/esm2015/lib/modules/media-query/media-query.module.js +0 -16
  187. package/esm2015/lib/modules/media-query/media-query.module.js.map +0 -1
  188. package/esm2015/lib/modules/media-query/media-query.service.js +0 -121
  189. package/esm2015/lib/modules/media-query/media-query.service.js.map +0 -1
  190. package/esm2015/lib/modules/mutation/mutation-observer-service.js +0 -16
  191. package/esm2015/lib/modules/mutation/mutation-observer-service.js.map +0 -1
  192. package/esm2015/lib/modules/numeric/numeric-symbol.js +0 -2
  193. package/esm2015/lib/modules/numeric/numeric-symbol.js.map +0 -1
  194. package/esm2015/lib/modules/numeric/numeric.module.js +0 -20
  195. package/esm2015/lib/modules/numeric/numeric.module.js.map +0 -1
  196. package/esm2015/lib/modules/numeric/numeric.options.js +0 -41
  197. package/esm2015/lib/modules/numeric/numeric.options.js.map +0 -1
  198. package/esm2015/lib/modules/numeric/numeric.pipe.js +0 -83
  199. package/esm2015/lib/modules/numeric/numeric.pipe.js.map +0 -1
  200. package/esm2015/lib/modules/numeric/numeric.service.js +0 -189
  201. package/esm2015/lib/modules/numeric/numeric.service.js.map +0 -1
  202. package/esm2015/lib/modules/overlay/overlay-adapter.service.js +0 -41
  203. package/esm2015/lib/modules/overlay/overlay-adapter.service.js.map +0 -1
  204. package/esm2015/lib/modules/overlay/overlay-config.js +0 -2
  205. package/esm2015/lib/modules/overlay/overlay-config.js.map +0 -1
  206. package/esm2015/lib/modules/overlay/overlay-context.js +0 -10
  207. package/esm2015/lib/modules/overlay/overlay-context.js.map +0 -1
  208. package/esm2015/lib/modules/overlay/overlay-instance.js +0 -55
  209. package/esm2015/lib/modules/overlay/overlay-instance.js.map +0 -1
  210. package/esm2015/lib/modules/overlay/overlay.component.js +0 -154
  211. package/esm2015/lib/modules/overlay/overlay.component.js.map +0 -1
  212. package/esm2015/lib/modules/overlay/overlay.module.js +0 -18
  213. package/esm2015/lib/modules/overlay/overlay.module.js.map +0 -1
  214. package/esm2015/lib/modules/overlay/overlay.service.js +0 -120
  215. package/esm2015/lib/modules/overlay/overlay.service.js.map +0 -1
  216. package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js +0 -20
  217. package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js.map +0 -1
  218. package/esm2015/lib/modules/percent-pipe/percent.pipe.js +0 -48
  219. package/esm2015/lib/modules/percent-pipe/percent.pipe.js.map +0 -1
  220. package/esm2015/lib/modules/resize-observer/resize-observer-media-query.service.js +0 -117
  221. package/esm2015/lib/modules/resize-observer/resize-observer-media-query.service.js.map +0 -1
  222. package/esm2015/lib/modules/resize-observer/resize-observer.service.js +0 -73
  223. package/esm2015/lib/modules/resize-observer/resize-observer.service.js.map +0 -1
  224. package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js +0 -184
  225. package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js.map +0 -1
  226. package/esm2015/lib/modules/shared/number-format/number-format-utility.js +0 -72
  227. package/esm2015/lib/modules/shared/number-format/number-format-utility.js.map +0 -1
  228. package/esm2015/lib/modules/shared/sky-core-resources.module.js +0 -50
  229. package/esm2015/lib/modules/shared/sky-core-resources.module.js.map +0 -1
  230. package/esm2015/lib/modules/title/set-title-args.js +0 -2
  231. package/esm2015/lib/modules/title/set-title-args.js.map +0 -1
  232. package/esm2015/lib/modules/title/title.service.js +0 -31
  233. package/esm2015/lib/modules/title/title.service.js.map +0 -1
  234. package/esm2015/lib/modules/ui-config/ui-config.service.js +0 -21
  235. package/esm2015/lib/modules/ui-config/ui-config.service.js.map +0 -1
  236. package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js +0 -2
  237. package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js.map +0 -1
  238. package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js +0 -2
  239. package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js.map +0 -1
  240. package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js +0 -10
  241. package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js.map +0 -1
  242. package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js +0 -2
  243. package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js.map +0 -1
  244. package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js +0 -2
  245. package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js.map +0 -1
  246. package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js +0 -116
  247. package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js.map +0 -1
  248. package/esm2015/lib/modules/viewkeeper/viewkeeper.js +0 -251
  249. package/esm2015/lib/modules/viewkeeper/viewkeeper.js.map +0 -1
  250. package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js +0 -16
  251. package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js.map +0 -1
  252. package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js +0 -39
  253. package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js.map +0 -1
  254. package/esm2015/lib/modules/window/window-ref.js +0 -30
  255. package/esm2015/lib/modules/window/window-ref.js.map +0 -1
  256. package/esm2015/skyux-core.js +0 -5
  257. package/esm2015/skyux-core.js.map +0 -1
  258. package/esm2015/testing/mock-media-query.service.js +0 -41
  259. package/esm2015/testing/mock-media-query.service.js.map +0 -1
  260. package/esm2015/testing/mock-ui-config.service.js +0 -59
  261. package/esm2015/testing/mock-ui-config.service.js.map +0 -1
  262. package/esm2015/testing/public-api.js +0 -3
  263. package/esm2015/testing/public-api.js.map +0 -1
  264. package/esm2015/testing/skyux-core-testing.js +0 -5
  265. package/esm2015/testing/skyux-core-testing.js.map +0 -1
  266. package/fesm2015/skyux-core-testing.js.map +0 -1
  267. package/fesm2015/skyux-core.js.map +0 -1
@@ -0,0 +1,132 @@
1
+ import { Inject, Injectable, Optional } from '@angular/core';
2
+ import { SkyAppFormat } from '../format/app-format';
3
+ import { SKY_LOG_LEVEL } from './types/log-level-token';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../format/app-format";
6
+ /**
7
+ * Logs information to the console based on the application's log level as provided by the `SKY_LOG_LEVEL` injection token. If no token is provided, only `error` logs will be shown.
8
+ * @internal
9
+ */
10
+ export class SkyLogService {
11
+ constructor(formatter, applicationLogLevel) {
12
+ this.formatter = formatter;
13
+ this.applicationLogLevel = applicationLogLevel;
14
+ if (!this.applicationLogLevel) {
15
+ this.applicationLogLevel = 3 /* Error */;
16
+ }
17
+ }
18
+ /**
19
+ * Logs a deprecation warning for a class, property, function, etc. This will be logged as a console warning unless a different log level is given in the the `args` parameter.
20
+ * @param name The name of the deprecated class, property, function, etc.
21
+ * @param args Information about the deprecation and replacement recommendations.
22
+ * @returns
23
+ */
24
+ async deprecated(name, args) {
25
+ const logLevel = args?.logLevel ?? 2 /* Warn */;
26
+ name = this.convertStringToCode(name);
27
+ if (this.canLog(logLevel)) {
28
+ const localizedStrings = [];
29
+ if (args?.deprecationMajorVersion) {
30
+ localizedStrings.push(this.formatter.formatText('{0} is deprecated starting in SKY UX {1}.', name, args.deprecationMajorVersion.toLocaleString()));
31
+ }
32
+ else {
33
+ localizedStrings.push(this.formatter.formatText('{0} is deprecated.', name));
34
+ }
35
+ if (args?.removalMajorVersion) {
36
+ localizedStrings.push(this.formatter.formatText('We will remove it in version {0}.', args.removalMajorVersion.toLocaleString()));
37
+ }
38
+ else {
39
+ localizedStrings.push('We will remove it in a future major version.');
40
+ }
41
+ if (args?.replacementRecommendation) {
42
+ localizedStrings.push(args.replacementRecommendation);
43
+ }
44
+ if (args?.moreInfoUrl) {
45
+ localizedStrings.push(this.formatter.formatText('For more information, see {0}.', args.moreInfoUrl));
46
+ }
47
+ this.logBasedOnLevel(logLevel, localizedStrings.join(' '));
48
+ }
49
+ return Promise.resolve();
50
+ }
51
+ /**
52
+ * Logs a console error if the application's log level is `SkyLogLevel.Error`.
53
+ * @param message The error message
54
+ * @param params Optional parameters for the error message.
55
+ */
56
+ error(message, params) {
57
+ if (this.canLog(3 /* Error */)) {
58
+ if (params) {
59
+ console.error(message, ...params);
60
+ }
61
+ else {
62
+ console.error(message);
63
+ }
64
+ }
65
+ }
66
+ /**
67
+ * Logs console information if the application's log level is `SkyLogLevel.Info` or above.
68
+ * @param message The infomational message
69
+ * @param params Optional parameters for the informational message.
70
+ */
71
+ info(message, params) {
72
+ if (this.canLog(1 /* Info */)) {
73
+ if (params) {
74
+ console.log(message, ...params);
75
+ }
76
+ else {
77
+ console.log(message);
78
+ }
79
+ }
80
+ }
81
+ /**
82
+ * Logs a console warning if the application's log level is `SkyLogLevel.Warn` or above.
83
+ * @param message The warning message
84
+ * @param params Optional parameters for the warning message.
85
+ */
86
+ warn(message, params) {
87
+ if (this.canLog(2 /* Warn */)) {
88
+ if (params) {
89
+ console.warn(message, ...params);
90
+ }
91
+ else {
92
+ console.warn(message);
93
+ }
94
+ }
95
+ }
96
+ convertStringToCode(typeString) {
97
+ if (typeString.charAt(0) !== '`' && typeString.charAt(-1) !== '`') {
98
+ typeString = '`' + typeString + '`';
99
+ }
100
+ return typeString;
101
+ }
102
+ canLog(intendedLogLevel) {
103
+ return intendedLogLevel >= this.applicationLogLevel;
104
+ }
105
+ logBasedOnLevel(logLevel, message, params) {
106
+ switch (logLevel) {
107
+ case 1 /* Info */:
108
+ this.info(message, params);
109
+ break;
110
+ case 2 /* Warn */:
111
+ this.warn(message, params);
112
+ break;
113
+ case 3 /* Error */:
114
+ this.error(message, params);
115
+ break;
116
+ }
117
+ }
118
+ }
119
+ SkyLogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogService, deps: [{ token: i1.SkyAppFormat }, { token: SKY_LOG_LEVEL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
120
+ SkyLogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogService, providedIn: 'root' });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyLogService, decorators: [{
122
+ type: Injectable,
123
+ args: [{
124
+ providedIn: 'root',
125
+ }]
126
+ }], ctorParameters: function () { return [{ type: i1.SkyAppFormat }, { type: undefined, decorators: [{
127
+ type: Optional
128
+ }, {
129
+ type: Inject,
130
+ args: [SKY_LOG_LEVEL]
131
+ }] }]; } });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvbG9nL2xvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFFeEQ7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFDVSxTQUF1QixFQUd2QixtQkFBZ0M7UUFIaEMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUd2Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQWE7UUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM3QixJQUFJLENBQUMsbUJBQW1CLGdCQUFvQixDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FDckIsSUFBWSxFQUNaLElBQTJCO1FBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxRQUFRLGdCQUFvQixDQUFDO1FBQ3BELElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1lBRTVCLElBQUksSUFBSSxFQUFFLHVCQUF1QixFQUFFO2dCQUNqQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUN2QiwyQ0FBMkMsRUFDM0MsSUFBSSxFQUNKLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsQ0FDOUMsQ0FDRixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsZ0JBQWdCLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FDdEQsQ0FBQzthQUNIO1lBRUQsSUFBSSxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQzdCLGdCQUFnQixDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQ3ZCLG1DQUFtQyxFQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLENBQzFDLENBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLGdCQUFnQixDQUFDLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2FBQ3ZFO1lBRUQsSUFBSSxJQUFJLEVBQUUseUJBQXlCLEVBQUU7Z0JBQ25DLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQzthQUN2RDtZQUVELElBQUksSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDckIsZ0JBQWdCLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FDdkIsZ0NBQWdDLEVBQ2hDLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQ0YsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUQ7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxPQUFlLEVBQUUsTUFBa0I7UUFDOUMsSUFBSSxJQUFJLENBQUMsTUFBTSxlQUFtQixFQUFFO1lBQ2xDLElBQUksTUFBTSxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN4QjtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQUMsT0FBZSxFQUFFLE1BQWtCO1FBQzdDLElBQUksSUFBSSxDQUFDLE1BQU0sY0FBa0IsRUFBRTtZQUNqQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO2FBQ2pDO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdEI7U0FDRjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLE9BQWUsRUFBRSxNQUFrQjtRQUM3QyxJQUFJLElBQUksQ0FBQyxNQUFNLGNBQWtCLEVBQUU7WUFDakMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQzthQUNsQztpQkFBTTtnQkFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsVUFBa0I7UUFDNUMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQ2pFLFVBQVUsR0FBRyxHQUFHLEdBQUcsVUFBVSxHQUFHLEdBQUcsQ0FBQztTQUNyQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxNQUFNLENBQUMsZ0JBQTZCO1FBQzFDLE9BQU8sZ0JBQWdCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3RELENBQUM7SUFFTyxlQUFlLENBQ3JCLFFBQXFCLEVBQ3JCLE9BQWUsRUFDZixNQUFrQjtRQUVsQixRQUFRLFFBQVEsRUFBRTtZQUNoQjtnQkFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDM0IsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMzQixNQUFNO1lBQ1I7Z0JBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzVCLE1BQU07U0FDVDtJQUNILENBQUM7OzBHQS9JVSxhQUFhLDhDQUlkLGFBQWE7OEdBSlosYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUlJLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5QXBwRm9ybWF0IH0gZnJvbSAnLi4vZm9ybWF0L2FwcC1mb3JtYXQnO1xuXG5pbXBvcnQgeyBTa3lMb2dEZXByZWNhdGVkQXJncyB9IGZyb20gJy4vdHlwZXMvbG9nLWRlcHJlY2F0aW9uLWFyZ3MnO1xuaW1wb3J0IHsgU2t5TG9nTGV2ZWwgfSBmcm9tICcuL3R5cGVzL2xvZy1sZXZlbCc7XG5pbXBvcnQgeyBTS1lfTE9HX0xFVkVMIH0gZnJvbSAnLi90eXBlcy9sb2ctbGV2ZWwtdG9rZW4nO1xuXG4vKipcbiAqIExvZ3MgaW5mb3JtYXRpb24gdG8gdGhlIGNvbnNvbGUgYmFzZWQgb24gdGhlIGFwcGxpY2F0aW9uJ3MgbG9nIGxldmVsIGFzIHByb3ZpZGVkIGJ5IHRoZSBgU0tZX0xPR19MRVZFTGAgaW5qZWN0aW9uIHRva2VuLiBJZiBubyB0b2tlbiBpcyBwcm92aWRlZCwgb25seSBgZXJyb3JgIGxvZ3Mgd2lsbCBiZSBzaG93bi5cbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TG9nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybWF0dGVyOiBTa3lBcHBGb3JtYXQsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFNLWV9MT0dfTEVWRUwpXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvbkxvZ0xldmVsOiBTa3lMb2dMZXZlbFxuICApIHtcbiAgICBpZiAoIXRoaXMuYXBwbGljYXRpb25Mb2dMZXZlbCkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbkxvZ0xldmVsID0gU2t5TG9nTGV2ZWwuRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYSBkZXByZWNhdGlvbiB3YXJuaW5nIGZvciBhIGNsYXNzLCBwcm9wZXJ0eSwgZnVuY3Rpb24sIGV0Yy4gVGhpcyB3aWxsIGJlIGxvZ2dlZCBhcyBhIGNvbnNvbGUgd2FybmluZyB1bmxlc3MgYSBkaWZmZXJlbnQgbG9nIGxldmVsIGlzIGdpdmVuIGluIHRoZSB0aGUgYGFyZ3NgIHBhcmFtZXRlci5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGRlcHJlY2F0ZWQgY2xhc3MsIHByb3BlcnR5LCBmdW5jdGlvbiwgZXRjLlxuICAgKiBAcGFyYW0gYXJncyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgZGVwcmVjYXRpb24gYW5kIHJlcGxhY2VtZW50IHJlY29tbWVuZGF0aW9ucy5cbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZXByZWNhdGVkKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBhcmdzPzogU2t5TG9nRGVwcmVjYXRlZEFyZ3NcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbG9nTGV2ZWwgPSBhcmdzPy5sb2dMZXZlbCA/PyBTa3lMb2dMZXZlbC5XYXJuO1xuICAgIG5hbWUgPSB0aGlzLmNvbnZlcnRTdHJpbmdUb0NvZGUobmFtZSk7XG5cbiAgICBpZiAodGhpcy5jYW5Mb2cobG9nTGV2ZWwpKSB7XG4gICAgICBjb25zdCBsb2NhbGl6ZWRTdHJpbmdzID0gW107XG5cbiAgICAgIGlmIChhcmdzPy5kZXByZWNhdGlvbk1ham9yVmVyc2lvbikge1xuICAgICAgICBsb2NhbGl6ZWRTdHJpbmdzLnB1c2goXG4gICAgICAgICAgdGhpcy5mb3JtYXR0ZXIuZm9ybWF0VGV4dChcbiAgICAgICAgICAgICd7MH0gaXMgZGVwcmVjYXRlZCBzdGFydGluZyBpbiBTS1kgVVggezF9LicsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgYXJncy5kZXByZWNhdGlvbk1ham9yVmVyc2lvbi50b0xvY2FsZVN0cmluZygpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9jYWxpemVkU3RyaW5ncy5wdXNoKFxuICAgICAgICAgIHRoaXMuZm9ybWF0dGVyLmZvcm1hdFRleHQoJ3swfSBpcyBkZXByZWNhdGVkLicsIG5hbWUpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhcmdzPy5yZW1vdmFsTWFqb3JWZXJzaW9uKSB7XG4gICAgICAgIGxvY2FsaXplZFN0cmluZ3MucHVzaChcbiAgICAgICAgICB0aGlzLmZvcm1hdHRlci5mb3JtYXRUZXh0KFxuICAgICAgICAgICAgJ1dlIHdpbGwgcmVtb3ZlIGl0IGluIHZlcnNpb24gezB9LicsXG4gICAgICAgICAgICBhcmdzLnJlbW92YWxNYWpvclZlcnNpb24udG9Mb2NhbGVTdHJpbmcoKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvY2FsaXplZFN0cmluZ3MucHVzaCgnV2Ugd2lsbCByZW1vdmUgaXQgaW4gYSBmdXR1cmUgbWFqb3IgdmVyc2lvbi4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFyZ3M/LnJlcGxhY2VtZW50UmVjb21tZW5kYXRpb24pIHtcbiAgICAgICAgbG9jYWxpemVkU3RyaW5ncy5wdXNoKGFyZ3MucmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGlmIChhcmdzPy5tb3JlSW5mb1VybCkge1xuICAgICAgICBsb2NhbGl6ZWRTdHJpbmdzLnB1c2goXG4gICAgICAgICAgdGhpcy5mb3JtYXR0ZXIuZm9ybWF0VGV4dChcbiAgICAgICAgICAgICdGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHswfS4nLFxuICAgICAgICAgICAgYXJncy5tb3JlSW5mb1VybFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2dCYXNlZE9uTGV2ZWwobG9nTGV2ZWwsIGxvY2FsaXplZFN0cmluZ3Muam9pbignICcpKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgYSBjb25zb2xlIGVycm9yIGlmIHRoZSBhcHBsaWNhdGlvbidzIGxvZyBsZXZlbCBpcyBgU2t5TG9nTGV2ZWwuRXJyb3JgLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZVxuICAgKiBAcGFyYW0gcGFyYW1zIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuTG9nKFNreUxvZ0xldmVsLkVycm9yKSkge1xuICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UsIC4uLnBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIGNvbnNvbGUgaW5mb3JtYXRpb24gaWYgdGhlIGFwcGxpY2F0aW9uJ3MgbG9nIGxldmVsIGlzIGBTa3lMb2dMZXZlbC5JbmZvYCBvciBhYm92ZS5cbiAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIGluZm9tYXRpb25hbCBtZXNzYWdlXG4gICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIGluZm9ybWF0aW9uYWwgbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyBpbmZvKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuTG9nKFNreUxvZ0xldmVsLkluZm8pKSB7XG4gICAgICBpZiAocGFyYW1zKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UsIC4uLnBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9ncyBhIGNvbnNvbGUgd2FybmluZyBpZiB0aGUgYXBwbGljYXRpb24ncyBsb2cgbGV2ZWwgaXMgYFNreUxvZ0xldmVsLldhcm5gIG9yIGFib3ZlLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgd2FybmluZyBtZXNzYWdlXG4gICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHdhcm5pbmcgbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyB3YXJuKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuTG9nKFNreUxvZ0xldmVsLldhcm4pKSB7XG4gICAgICBpZiAocGFyYW1zKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihtZXNzYWdlLCAuLi5wYXJhbXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFN0cmluZ1RvQ29kZSh0eXBlU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlU3RyaW5nLmNoYXJBdCgwKSAhPT0gJ2AnICYmIHR5cGVTdHJpbmcuY2hhckF0KC0xKSAhPT0gJ2AnKSB7XG4gICAgICB0eXBlU3RyaW5nID0gJ2AnICsgdHlwZVN0cmluZyArICdgJztcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVTdHJpbmc7XG4gIH1cblxuICBwcml2YXRlIGNhbkxvZyhpbnRlbmRlZExvZ0xldmVsOiBTa3lMb2dMZXZlbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpbnRlbmRlZExvZ0xldmVsID49IHRoaXMuYXBwbGljYXRpb25Mb2dMZXZlbDtcbiAgfVxuXG4gIHByaXZhdGUgbG9nQmFzZWRPbkxldmVsKFxuICAgIGxvZ0xldmVsOiBTa3lMb2dMZXZlbCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcGFyYW1zPzogdW5rbm93bltdXG4gICk6IHZvaWQge1xuICAgIHN3aXRjaCAobG9nTGV2ZWwpIHtcbiAgICAgIGNhc2UgU2t5TG9nTGV2ZWwuSW5mbzpcbiAgICAgICAgdGhpcy5pbmZvKG1lc3NhZ2UsIHBhcmFtcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBTa3lMb2dMZXZlbC5XYXJuOlxuICAgICAgICB0aGlzLndhcm4obWVzc2FnZSwgcGFyYW1zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFNreUxvZ0xldmVsLkVycm9yOlxuICAgICAgICB0aGlzLmVycm9yKG1lc3NhZ2UsIHBhcmFtcyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWRlcHJlY2F0aW9uLWFyZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvbG9nL3R5cGVzL2xvZy1kZXByZWNhdGlvbi1hcmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lMb2dMZXZlbCB9IGZyb20gJy4vbG9nLWxldmVsJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEFyZ3VtZW50cyB1c2VkIHdoZW4gbG9nZ2luZyB0aGF0IGEgY2xhc3MsIHByb3BlcnR5LCBmdW5jdGlvbiwgZXRjLiBpcyBkZXBjcmVjYXRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lMb2dEZXByZWNhdGVkQXJncyB7XG4gIC8qKlxuICAgKiBUaGUgbWFqb3IgdmVyc2lvbiB3aGljaCBkZXByZWNhdGVkIHRoZSBmZWF0dXJlLlxuICAgKi9cbiAgZGVwcmVjYXRpb25NYWpvclZlcnNpb24/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbG9nIGxldmVsIGZvciB0aGUgY29uc29sZSBsb2dnaW5nLiBUaGUgYFNreUxvZ1NlcnZpY2VgIHdpbGwgYXNzdW1lIGBTa3lMb2dMZXZlbC5XYXJuYCBpZiB0aGlzIGlzIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIGxvZ0xldmVsPzogU2t5TG9nTGV2ZWw7XG4gIC8qKlxuICAgKiBBIFVSTCB3aGljaCBnaXZlcyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkZXByZWNhdGlvbiBvciB0aGUgcmVwbGFjZW1lbnQgcmVjb21tZW5kYXRpb24uXG4gICAqL1xuICBtb3JlSW5mb1VybD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtYWpvciB2ZXJzaW9uIHdoaWNoIHdpbGwgcmVtb3ZlIHRoZSBkZXByZWNhdGVkIGZlYXR1cmUuXG4gICAqL1xuICByZW1vdmFsTWFqb3JWZXJzaW9uPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHJlY29tbWVuZGF0aW9uIGZvciBob3cgdG8gcmVwbGFjZSB0aGUgZGVwcmVjYXRlZCBmZWF0dXJlLlxuICAgKi9cbiAgcmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbj86IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * @internal
4
+ */
5
+ export const SKY_LOG_LEVEL = new InjectionToken('SkyLogLevel');
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWxldmVsLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2xvZy90eXBlcy9sb2ctbGV2ZWwtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBYyxhQUFhLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUxvZ0xldmVsIH0gZnJvbSAnLi9sb2ctbGV2ZWwnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgU0tZX0xPR19MRVZFTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTa3lMb2dMZXZlbD4oJ1NreUxvZ0xldmVsJyk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWxldmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2xvZy90eXBlcy9sb2ctbGV2ZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIFNreUxvZ0xldmVsIHtcbiAgSW5mbyA9IDEsXG4gIFdhcm4gPSAyLFxuICBFcnJvciA9IDMsXG59XG4iXX0=
@@ -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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcXVlcnktbGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvbWVkaWEtcXVlcnkvbWVkaWEtcXVlcnktbGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreU1lZGlhQnJlYWtwb2ludHMgfSBmcm9tICcuL21lZGlhLWJyZWFrcG9pbnRzJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgYSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBicmVha3BvaW50cyBjaGFuZ2UuIEl0IGlzIGNhbGxlZFxuICogd2l0aCBhIGBTa3lNZWRpYUJyZWFrcG9pbnRzYCBhcmd1bWVudCwgd2hpY2ggaXMgYW4gZW51bSB0aGF0IHJlcHJlc2VudHMgdGhlIG5ldyBicmVha3BvaW50LlxuICovXG5leHBvcnQgdHlwZSBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIgPSAoYXJnczogU2t5TWVkaWFCcmVha3BvaW50cykgPT4gdm9pZDtcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @deprecated The `SkyMediaQueryService` no longer needs the `SkyMediaQueryModule`.
5
+ * The `SkyMediaQueryModule` can be removed from your project.
6
+ */
7
+ export class SkyMediaQueryModule {
8
+ }
9
+ SkyMediaQueryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyMediaQueryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ SkyMediaQueryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyMediaQueryModule });
11
+ SkyMediaQueryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyMediaQueryModule });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyMediaQueryModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{}]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcXVlcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL21lZGlhLXF1ZXJ5L21lZGlhLXF1ZXJ5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6Qzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixRQUFRO21CQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFRoZSBgU2t5TWVkaWFRdWVyeVNlcnZpY2VgIG5vIGxvbmdlciBuZWVkcyB0aGUgYFNreU1lZGlhUXVlcnlNb2R1bGVgLlxuICogVGhlIGBTa3lNZWRpYVF1ZXJ5TW9kdWxlYCBjYW4gYmUgcmVtb3ZlZCBmcm9tIHlvdXIgcHJvamVjdC5cbiAqL1xuQE5nTW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIFNreU1lZGlhUXVlcnlNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,121 @@
1
+ import { Injectable, NgZone } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { SkyMediaBreakpoints } from './media-breakpoints';
4
+ import * as i0 from "@angular/core";
5
+ export class SkyMediaQueryService {
6
+ constructor(zone) {
7
+ this.zone = zone;
8
+ this.currentSubject = new BehaviorSubject(this.current);
9
+ this._current = SkyMediaBreakpoints.md;
10
+ this.breakpoints = [
11
+ {
12
+ mediaQueryString: SkyMediaQueryService.xs,
13
+ name: SkyMediaBreakpoints.xs,
14
+ },
15
+ {
16
+ mediaQueryString: SkyMediaQueryService.sm,
17
+ name: SkyMediaBreakpoints.sm,
18
+ },
19
+ {
20
+ mediaQueryString: SkyMediaQueryService.md,
21
+ name: SkyMediaBreakpoints.md,
22
+ },
23
+ {
24
+ mediaQueryString: SkyMediaQueryService.lg,
25
+ name: SkyMediaBreakpoints.lg,
26
+ },
27
+ ];
28
+ this.mediaQueries = [];
29
+ this.addListeners();
30
+ }
31
+ /**
32
+ * Returns the current breakpoint.
33
+ */
34
+ get current() {
35
+ return this._current;
36
+ }
37
+ ngOnDestroy() {
38
+ this.removeListeners();
39
+ this.currentSubject.complete();
40
+ }
41
+ /**
42
+ * Subscribes to screen size changes.
43
+ * @param listener Specifies a function that is called when breakpoints change.
44
+ */
45
+ subscribe(listener) {
46
+ return this.currentSubject.subscribe({
47
+ next: (breakpoints) => {
48
+ listener(breakpoints);
49
+ },
50
+ });
51
+ }
52
+ /**
53
+ * @internal
54
+ */
55
+ destroy() {
56
+ this.removeListeners();
57
+ this.currentSubject.complete();
58
+ }
59
+ addListeners() {
60
+ this.mediaQueries = this.breakpoints.map((breakpoint) => {
61
+ const mq = matchMedia(breakpoint.mediaQueryString);
62
+ const listener = (event) => {
63
+ // Run the check outside of Angular's change detection since Angular
64
+ // does not wrap matchMedia listeners in NgZone.
65
+ // See: https://blog.assaf.co/angular-2-change-detection-zones-and-an-example/
66
+ this.zone.run(() => {
67
+ if (event.matches) {
68
+ this.notifyBreakpointChange(breakpoint.name);
69
+ }
70
+ });
71
+ };
72
+ mq.addListener(listener);
73
+ if (mq.matches) {
74
+ this.notifyBreakpointChange(breakpoint.name);
75
+ }
76
+ return {
77
+ mediaQueryList: mq,
78
+ listener,
79
+ };
80
+ });
81
+ }
82
+ removeListeners() {
83
+ this.mediaQueries.forEach((mediaQuery) => {
84
+ mediaQuery.mediaQueryList.removeListener(mediaQuery.listener);
85
+ });
86
+ this.mediaQueries = [];
87
+ }
88
+ notifyBreakpointChange(breakpoint) {
89
+ this._current = breakpoint;
90
+ this.currentSubject.next(breakpoint);
91
+ }
92
+ }
93
+ /**
94
+ * The size for the `xs` breakpoint.
95
+ * @default "(max-width: 767px)"
96
+ */
97
+ SkyMediaQueryService.xs = '(max-width: 767px)';
98
+ /**
99
+ * The size for the `sm` breakpoint.
100
+ * @default "(min-width: 768px) and (max-width: 991px)"
101
+ */
102
+ SkyMediaQueryService.sm = '(min-width: 768px) and (max-width: 991px)';
103
+ /**
104
+ * The size for the `md` breakpoint.
105
+ * @default "(min-width: 992px) and (max-width: 1199px)"
106
+ */
107
+ SkyMediaQueryService.md = '(min-width: 992px) and (max-width: 1199px)';
108
+ /**
109
+ * The size for the `lg` breakpoint.
110
+ * @default "(min-width: 1200px)"
111
+ */
112
+ SkyMediaQueryService.lg = '(min-width: 1200px)';
113
+ SkyMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyMediaQueryService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
114
+ SkyMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyMediaQueryService, providedIn: 'root' });
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyMediaQueryService, decorators: [{
116
+ type: Injectable,
117
+ args: [{
118
+ providedIn: 'root',
119
+ }]
120
+ }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcXVlcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9tZWRpYS1xdWVyeS9tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU0xRCxNQUFNLE9BQU8sb0JBQW9CO0lBaUUvQixZQUFvQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQWpDeEIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FDMUMsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO1FBRU0sYUFBUSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUVsQyxnQkFBVyxHQUdiO1lBQ0o7Z0JBQ0UsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsRUFBRTtnQkFDekMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEVBQUU7YUFDN0I7WUFDRDtnQkFDRSxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsRUFBRTthQUM3QjtZQUNEO2dCQUNFLGdCQUFnQixFQUFFLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ3pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxFQUFFO2FBQzdCO1lBQ0Q7Z0JBQ0UsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsRUFBRTtnQkFDekMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEVBQUU7YUFDN0I7U0FDRixDQUFDO1FBRU0saUJBQVksR0FHZCxFQUFFLENBQUM7UUFHUCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQTFDRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQXVDTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsUUFBK0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLEVBQUUsQ0FBQyxXQUFnQyxFQUFFLEVBQUU7Z0JBQ3pDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtZQUMzRCxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFFbkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDOUIsb0VBQW9FO2dCQUNwRSxnREFBZ0Q7Z0JBQ2hELDhFQUE4RTtnQkFDOUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNqQixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7d0JBQ2pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQzlDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDO1lBRUYsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV6QixJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM5QztZQUVELE9BQU87Z0JBQ0wsY0FBYyxFQUFFLEVBQUU7Z0JBQ2xCLFFBQVE7YUFDVCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3ZDLFVBQVUsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxVQUErQjtRQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDOztBQW5JRDs7O0dBR0c7QUFDVyx1QkFBRSxHQUFHLG9CQUFxQixDQUFBO0FBRXhDOzs7R0FHRztBQUNXLHVCQUFFLEdBQUcsMkNBQTRDLENBQUE7QUFFL0Q7OztHQUdHO0FBQ1csdUJBQUUsR0FBRyw0Q0FBNkMsQ0FBQTtBQUVoRTs7O0dBR0c7QUFDVyx1QkFBRSxHQUFHLHFCQUFzQixDQUFBO2lIQXZCOUIsb0JBQW9CO3FIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cyB9IGZyb20gJy4vbWVkaWEtYnJlYWtwb2ludHMnO1xuaW1wb3J0IHsgU2t5TWVkaWFRdWVyeUxpc3RlbmVyIH0gZnJvbSAnLi9tZWRpYS1xdWVyeS1saXN0ZW5lcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lNZWRpYVF1ZXJ5U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBmb3IgdGhlIGB4c2AgYnJlYWtwb2ludC5cbiAgICogQGRlZmF1bHQgXCIobWF4LXdpZHRoOiA3NjdweClcIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB4cyA9ICcobWF4LXdpZHRoOiA3NjdweCknO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBmb3IgdGhlIGBzbWAgYnJlYWtwb2ludC5cbiAgICogQGRlZmF1bHQgXCIobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KVwiXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNtID0gJyhtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpJztcblxuICAvKipcbiAgICogVGhlIHNpemUgZm9yIHRoZSBgbWRgIGJyZWFrcG9pbnQuXG4gICAqIEBkZWZhdWx0IFwiKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpXCJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWQgPSAnKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpJztcblxuICAvKipcbiAgICogVGhlIHNpemUgZm9yIHRoZSBgbGdgIGJyZWFrcG9pbnQuXG4gICAqIEBkZWZhdWx0IFwiKG1pbi13aWR0aDogMTIwMHB4KVwiXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxnID0gJyhtaW4td2lkdGg6IDEyMDBweCknO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKTogU2t5TWVkaWFCcmVha3BvaW50cyB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTa3lNZWRpYUJyZWFrcG9pbnRzPihcbiAgICB0aGlzLmN1cnJlbnRcbiAgKTtcblxuICBwcml2YXRlIF9jdXJyZW50ID0gU2t5TWVkaWFCcmVha3BvaW50cy5tZDtcblxuICBwcml2YXRlIGJyZWFrcG9pbnRzOiB7XG4gICAgbWVkaWFRdWVyeVN0cmluZzogc3RyaW5nO1xuICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHM7XG4gIH1bXSA9IFtcbiAgICB7XG4gICAgICBtZWRpYVF1ZXJ5U3RyaW5nOiBTa3lNZWRpYVF1ZXJ5U2VydmljZS54cyxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMueHMsXG4gICAgfSxcbiAgICB7XG4gICAgICBtZWRpYVF1ZXJ5U3RyaW5nOiBTa3lNZWRpYVF1ZXJ5U2VydmljZS5zbSxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMuc20sXG4gICAgfSxcbiAgICB7XG4gICAgICBtZWRpYVF1ZXJ5U3RyaW5nOiBTa3lNZWRpYVF1ZXJ5U2VydmljZS5tZCxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMubWQsXG4gICAgfSxcbiAgICB7XG4gICAgICBtZWRpYVF1ZXJ5U3RyaW5nOiBTa3lNZWRpYVF1ZXJ5U2VydmljZS5sZyxcbiAgICAgIG5hbWU6IFNreU1lZGlhQnJlYWtwb2ludHMubGcsXG4gICAgfSxcbiAgXTtcblxuICBwcml2YXRlIG1lZGlhUXVlcmllczoge1xuICAgIG1lZGlhUXVlcnlMaXN0OiBNZWRpYVF1ZXJ5TGlzdDtcbiAgICBsaXN0ZW5lcjogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gICAgdGhpcy5hZGRMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xuICAgIHRoaXMuY3VycmVudFN1YmplY3QuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmVzIHRvIHNjcmVlbiBzaXplIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBsaXN0ZW5lciBTcGVjaWZpZXMgYSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIGJyZWFrcG9pbnRzIGNoYW5nZS5cbiAgICovXG4gIHB1YmxpYyBzdWJzY3JpYmUobGlzdGVuZXI6IFNreU1lZGlhUXVlcnlMaXN0ZW5lcik6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN1YmplY3Quc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChicmVha3BvaW50czogU2t5TWVkaWFCcmVha3BvaW50cykgPT4ge1xuICAgICAgICBsaXN0ZW5lcihicmVha3BvaW50cyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmN1cnJlbnRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFkZExpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLm1lZGlhUXVlcmllcyA9IHRoaXMuYnJlYWtwb2ludHMubWFwKChicmVha3BvaW50OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IG1xID0gbWF0Y2hNZWRpYShicmVha3BvaW50Lm1lZGlhUXVlcnlTdHJpbmcpO1xuXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IChldmVudDogYW55KSA9PiB7XG4gICAgICAgIC8vIFJ1biB0aGUgY2hlY2sgb3V0c2lkZSBvZiBBbmd1bGFyJ3MgY2hhbmdlIGRldGVjdGlvbiBzaW5jZSBBbmd1bGFyXG4gICAgICAgIC8vIGRvZXMgbm90IHdyYXAgbWF0Y2hNZWRpYSBsaXN0ZW5lcnMgaW4gTmdab25lLlxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vYmxvZy5hc3NhZi5jby9hbmd1bGFyLTItY2hhbmdlLWRldGVjdGlvbi16b25lcy1hbmQtYW4tZXhhbXBsZS9cbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50Lm1hdGNoZXMpIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5QnJlYWtwb2ludENoYW5nZShicmVha3BvaW50Lm5hbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBtcS5hZGRMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGlmIChtcS5tYXRjaGVzKSB7XG4gICAgICAgIHRoaXMubm90aWZ5QnJlYWtwb2ludENoYW5nZShicmVha3BvaW50Lm5hbWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBtZWRpYVF1ZXJ5TGlzdDogbXEsXG4gICAgICAgIGxpc3RlbmVyLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMubWVkaWFRdWVyaWVzLmZvckVhY2goKG1lZGlhUXVlcnkpID0+IHtcbiAgICAgIG1lZGlhUXVlcnkubWVkaWFRdWVyeUxpc3QucmVtb3ZlTGlzdGVuZXIobWVkaWFRdWVyeS5saXN0ZW5lcik7XG4gICAgfSk7XG4gICAgdGhpcy5tZWRpYVF1ZXJpZXMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5QnJlYWtwb2ludENoYW5nZShicmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzKTogdm9pZCB7XG4gICAgdGhpcy5fY3VycmVudCA9IGJyZWFrcG9pbnQ7XG4gICAgdGhpcy5jdXJyZW50U3ViamVjdC5uZXh0KGJyZWFrcG9pbnQpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class MutationObserverService {
4
+ create(callback) {
5
+ return new MutationObserver(callback);
6
+ }
7
+ }
8
+ MutationObserverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: MutationObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9
+ MutationObserverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: MutationObserverService, providedIn: 'root' });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: MutationObserverService, decorators: [{
11
+ type: Injectable,
12
+ args: [{
13
+ providedIn: 'root',
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb24tb2JzZXJ2ZXItc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyx1QkFBdUI7SUFDM0IsTUFBTSxDQUFDLFFBQWE7UUFDekIsT0FBTyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O29IQUhVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlIHtcbiAgcHVibGljIGNyZWF0ZShjYWxsYmFjazogYW55KTogTXV0YXRpb25PYnNlcnZlciB7XG4gICAgcmV0dXJuIG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1zeW1ib2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvbnVtZXJpYy9udW1lcmljLXN5bWJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lOdW1lcmljU3ltYm9sIHtcbiAgdmFsdWU6IG51bWJlcjtcbiAgbGFiZWw6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SkyI18nModule } from '@skyux/i18n';
3
+ import { SkyCoreResourcesModule } from '../shared/sky-core-resources.module';
4
+ import { SkyNumericPipe } from './numeric.pipe';
5
+ import * as i0 from "@angular/core";
6
+ export class SkyNumericModule {
7
+ }
8
+ SkyNumericModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ SkyNumericModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericModule, declarations: [SkyNumericPipe], imports: [SkyI18nModule, SkyCoreResourcesModule], exports: [SkyNumericPipe] });
10
+ SkyNumericModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericModule, providers: [SkyNumericPipe], imports: [[SkyI18nModule, SkyCoreResourcesModule]] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [SkyNumericPipe],
15
+ providers: [SkyNumericPipe],
16
+ imports: [SkyI18nModule, SkyCoreResourcesModule],
17
+ exports: [SkyNumericPipe],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvbnVtZXJpYy9udW1lcmljLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVFoRCxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBTFosY0FBYyxhQUVuQixhQUFhLEVBQUUsc0JBQXNCLGFBQ3JDLGNBQWM7OEdBRWIsZ0JBQWdCLGFBSmhCLENBQUMsY0FBYyxDQUFDLFlBQ2xCLENBQUMsYUFBYSxFQUFFLHNCQUFzQixDQUFDOzJGQUdyQyxnQkFBZ0I7a0JBTjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUM5QixTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQztvQkFDaEQsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJMThuTW9kdWxlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTa3lDb3JlUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1jb3JlLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lOdW1lcmljUGlwZSB9IGZyb20gJy4vbnVtZXJpYy5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5TnVtZXJpY1BpcGVdLFxuICBwcm92aWRlcnM6IFtTa3lOdW1lcmljUGlwZV0sXG4gIGltcG9ydHM6IFtTa3lJMThuTW9kdWxlLCBTa3lDb3JlUmVzb3VyY2VzTW9kdWxlXSxcbiAgZXhwb3J0czogW1NreU51bWVyaWNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TnVtZXJpY01vZHVsZSB7fVxuIl19
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Provides arguments for the number to format.
3
+ */
4
+ export class SkyNumericOptions {
5
+ constructor() {
6
+ /**
7
+ * Specifies the maximum number of digits after the decimal separator.
8
+ * @default 1
9
+ */
10
+ this.digits = 1;
11
+ /**
12
+ * Specifies how to format the number. Options are `currency` or `number`.
13
+ * @default "number"
14
+ */
15
+ this.format = 'number';
16
+ /**
17
+ * Specifies the format of the currency.
18
+ * @default "standard"
19
+ */
20
+ this.currencySign = 'standard';
21
+ /**
22
+ * Specifies the ISO4217 currency code to use for currency formatting. If you do not specify a
23
+ * currency code, the component uses the browser's culture to determine the currency unless your
24
+ * SPA provides a different culture with `SkyAppLocaleProvider`.
25
+ * @default "USD"
26
+ */
27
+ this.iso = 'USD';
28
+ /**
29
+ * Indicates whether to shorten numbers to rounded numbers and abbreviation characters
30
+ * such as K for thousands, M for millions, B for billions, and T for trillions.
31
+ */
32
+ this.truncate = true;
33
+ /**
34
+ * Specifies the starting point after which numbers are shortened to rounded numbers
35
+ * and abbreviation characters.
36
+ * @default 0
37
+ */
38
+ this.truncateAfter = 0;
39
+ }
40
+ }
41
+ /**
42
+ * @deprecated Use `SkyNumericOptions` instead.
43
+ */
44
+ export class NumericOptions extends SkyNumericOptions {
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNFOzs7V0FHRztRQUNJLFdBQU0sR0FBWSxDQUFDLENBQUM7UUFFM0I7OztXQUdHO1FBQ0ksV0FBTSxHQUFZLFFBQVEsQ0FBQztRQUVsQzs7O1dBR0c7UUFDSSxpQkFBWSxHQUErQixVQUFVLENBQUM7UUFFN0Q7Ozs7O1dBS0c7UUFDSSxRQUFHLEdBQVksS0FBSyxDQUFDO1FBYzVCOzs7V0FHRztRQUNJLGFBQVEsR0FBYSxJQUFJLENBQUM7UUFFakM7Ozs7V0FJRztRQUNJLGtCQUFhLEdBQVksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FBQTtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxpQkFBaUI7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHJvdmlkZXMgYXJndW1lbnRzIGZvciB0aGUgbnVtYmVyIHRvIGZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreU51bWVyaWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHNlcGFyYXRvci5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcHVibGljIGRpZ2l0cz86IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgdG8gZm9ybWF0IHRoZSBudW1iZXIuIE9wdGlvbnMgYXJlIGBjdXJyZW5jeWAgb3IgYG51bWJlcmAuXG4gICAqIEBkZWZhdWx0IFwibnVtYmVyXCJcbiAgICovXG4gIHB1YmxpYyBmb3JtYXQ/OiBzdHJpbmcgPSAnbnVtYmVyJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBmb3JtYXQgb2YgdGhlIGN1cnJlbmN5LlxuICAgKiBAZGVmYXVsdCBcInN0YW5kYXJkXCJcbiAgICovXG4gIHB1YmxpYyBjdXJyZW5jeVNpZ24/OiAnYWNjb3VudGluZycgfCAnc3RhbmRhcmQnID0gJ3N0YW5kYXJkJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBJU080MjE3IGN1cnJlbmN5IGNvZGUgdG8gdXNlIGZvciBjdXJyZW5jeSBmb3JtYXR0aW5nLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYVxuICAgKiBjdXJyZW5jeSBjb2RlLCB0aGUgY29tcG9uZW50IHVzZXMgdGhlIGJyb3dzZXIncyBjdWx0dXJlIHRvIGRldGVybWluZSB0aGUgY3VycmVuY3kgdW5sZXNzIHlvdXJcbiAgICogU1BBIHByb3ZpZGVzIGEgZGlmZmVyZW50IGN1bHR1cmUgd2l0aCBgU2t5QXBwTG9jYWxlUHJvdmlkZXJgLlxuICAgKiBAZGVmYXVsdCBcIlVTRFwiXG4gICAqL1xuICBwdWJsaWMgaXNvPzogc3RyaW5nID0gJ1VTRCc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbG9jYWxlIGNvZGUgdG8gdXNlIHdoZW4gZm9ybWF0dGluZy5cbiAgICovXG4gIHB1YmxpYyBsb2NhbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHNlcGFyYXRvci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXNcbiAgICogd2hlbiB0aGUgYHRydW5jYXRlYCBwcm9wZXJ0eSBpcyBzZXQgdG8gYGZhbHNlYC4gSWYgYGRpZ2l0c2Agc3BlY2lmaWVzIGEgbWF4aW11bSBudW1iZXIgb2ZcbiAgICogZGlnaXRzLCB0aGVuIGBtaW5EaWdpdHNgIG11c3QgYmUgbGVzcyB0aGFuIHRoYXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgbWluRGlnaXRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBzaG9ydGVuIG51bWJlcnMgdG8gcm91bmRlZCBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb24gY2hhcmFjdGVyc1xuICAgKiBzdWNoIGFzIEsgZm9yIHRob3VzYW5kcywgTSBmb3IgbWlsbGlvbnMsIEIgZm9yIGJpbGxpb25zLCBhbmQgVCBmb3IgdHJpbGxpb25zLlxuICAgKi9cbiAgcHVibGljIHRydW5jYXRlPzogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc3RhcnRpbmcgcG9pbnQgYWZ0ZXIgd2hpY2ggbnVtYmVycyBhcmUgc2hvcnRlbmVkIHRvIHJvdW5kZWQgbnVtYmVyc1xuICAgKiBhbmQgYWJicmV2aWF0aW9uIGNoYXJhY3RlcnMuXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHB1YmxpYyB0cnVuY2F0ZUFmdGVyPzogbnVtYmVyID0gMDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYFNreU51bWVyaWNPcHRpb25zYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgTnVtZXJpY09wdGlvbnMgZXh0ZW5kcyBTa3lOdW1lcmljT3B0aW9ucyB7fVxuIl19
@@ -0,0 +1,80 @@
1
+ import { ChangeDetectorRef, Pipe, } from '@angular/core';
2
+ import { SkyAppLocaleProvider } from '@skyux/i18n';
3
+ import { Subject } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { SkyNumericOptions } from './numeric.options';
6
+ import { SkyNumericService } from './numeric.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@skyux/i18n";
9
+ import * as i2 from "./numeric.service";
10
+ /**
11
+ * Shortens numbers to rounded numbers and abbreviation characters such as K for thousands,
12
+ * M for millions, B for billions, and T for trillions. The pipe also formats for currency.
13
+ * Be sure you have a space after the two curly brackets opening the pipe and
14
+ * a space before the two curly brackets closing the pipe or it will not work.
15
+ * Usage:
16
+ * ```
17
+ * {{ value | skyNumeric(config) }}
18
+ * ```
19
+ */
20
+ export class SkyNumericPipe {
21
+ constructor(localeProvider, numericService, changeDetector) {
22
+ this.localeProvider = localeProvider;
23
+ this.numericService = numericService;
24
+ this.changeDetector = changeDetector;
25
+ this.ngUnsubscribe = new Subject();
26
+ this.localeProvider
27
+ .getLocaleInfo()
28
+ .pipe(takeUntil(this.ngUnsubscribe))
29
+ .subscribe((localeInfo) => {
30
+ this.providerLocale = localeInfo.locale;
31
+ numericService.currentLocale = this.providerLocale;
32
+ this.changeDetector.markForCheck();
33
+ });
34
+ }
35
+ ngOnDestroy() {
36
+ this.ngUnsubscribe.next();
37
+ this.ngUnsubscribe.complete();
38
+ }
39
+ transform(value, config) {
40
+ const newCacheKey = (config ? JSON.stringify(config, Object.keys(config).sort()) : '') +
41
+ `${value}_${config?.locale || this.providerLocale}`;
42
+ /* If the value and locale are the same as the last transform then return the previous value
43
+ instead of reformatting. */
44
+ if (this.formattedValue && this.cacheKey === newCacheKey) {
45
+ return this.formattedValue;
46
+ }
47
+ const options = new SkyNumericOptions();
48
+ // The default number of digits is `1`. When truncate is disabled, set digits
49
+ // to `0` to avoid the unnecessary addition of `.0` at the end of the formatted number.
50
+ if (config && config.truncate === false && config.digits === undefined) {
51
+ options.digits = 0;
52
+ }
53
+ // If the minimum digits is less than the set maximum digits then throw an error
54
+ if (config &&
55
+ config.minDigits &&
56
+ config.digits &&
57
+ config.minDigits > config.digits) {
58
+ throw new Error('The `digits` property must be greater than or equal to the `minDigits` property');
59
+ // If there is a minimum digits given but not a maximum then default the maximum to the minimum
60
+ }
61
+ else if (config && config.minDigits && !config.digits) {
62
+ options.digits = config.minDigits;
63
+ }
64
+ Object.assign(options, config);
65
+ // Assign properties for proper result caching.
66
+ this.cacheKey = newCacheKey;
67
+ this.formattedValue = this.numericService.formatNumber(value, options);
68
+ return this.formattedValue;
69
+ }
70
+ }
71
+ SkyNumericPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericPipe, deps: [{ token: i1.SkyAppLocaleProvider }, { token: i2.SkyNumericService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
72
+ SkyNumericPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericPipe, name: "skyNumeric", pure: false });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyNumericPipe, decorators: [{
74
+ type: Pipe,
75
+ args: [{
76
+ name: 'skyNumeric',
77
+ pure: false,
78
+ }]
79
+ }], ctorParameters: function () { return [{ type: i1.SkyAppLocaleProvider }, { type: i2.SkyNumericService }, { type: i0.ChangeDetectorRef }]; } });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUV0RDs7Ozs7Ozs7O0dBU0c7QUFLSCxNQUFNLE9BQU8sY0FBYztJQU96QixZQUNVLGNBQW9DLEVBQzNCLGNBQWlDLEVBQzFDLGNBQWlDO1FBRmpDLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBTG5DLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU8xQyxJQUFJLENBQUMsY0FBYzthQUNoQixhQUFhLEVBQUU7YUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDeEMsY0FBYyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFhLEVBQUUsTUFBMEI7UUFDeEQsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xFLEdBQUcsS0FBSyxJQUFJLE1BQU0sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXREO21DQUMyQjtRQUMzQixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDeEQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzVCO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBRXhDLDZFQUE2RTtRQUM3RSx1RkFBdUY7UUFDdkYsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDdEUsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDcEI7UUFFRCxnRkFBZ0Y7UUFDaEYsSUFDRSxNQUFNO1lBQ04sTUFBTSxDQUFDLFNBQVM7WUFDaEIsTUFBTSxDQUFDLE1BQU07WUFDYixNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQ2hDO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FDYixpRkFBaUYsQ0FDbEYsQ0FBQztZQUVGLCtGQUErRjtTQUNoRzthQUFNLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUNuQztRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLCtDQUErQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUU1QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQzs7MkdBckVVLGNBQWM7eUdBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUoxQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkRlc3Ryb3ksXG4gIFBpcGUsXG4gIFBpcGVUcmFuc2Zvcm0sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5QXBwTG9jYWxlUHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TnVtZXJpY09wdGlvbnMgfSBmcm9tICcuL251bWVyaWMub3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lOdW1lcmljU2VydmljZSB9IGZyb20gJy4vbnVtZXJpYy5zZXJ2aWNlJztcblxuLyoqXG4gKiBTaG9ydGVucyBudW1iZXJzIHRvIHJvdW5kZWQgbnVtYmVycyBhbmQgYWJicmV2aWF0aW9uIGNoYXJhY3RlcnMgc3VjaCBhcyBLIGZvciB0aG91c2FuZHMsXG4gKiBNIGZvciBtaWxsaW9ucywgQiBmb3IgYmlsbGlvbnMsIGFuZCBUIGZvciB0cmlsbGlvbnMuIFRoZSBwaXBlIGFsc28gZm9ybWF0cyBmb3IgY3VycmVuY3kuXG4gKiBCZSBzdXJlIHlvdSBoYXZlIGEgc3BhY2UgYWZ0ZXIgdGhlIHR3byBjdXJseSBicmFja2V0cyBvcGVuaW5nIHRoZSBwaXBlIGFuZFxuICogYSBzcGFjZSBiZWZvcmUgdGhlIHR3byBjdXJseSBicmFja2V0cyBjbG9zaW5nIHRoZSBwaXBlIG9yIGl0IHdpbGwgbm90IHdvcmsuXG4gKiBVc2FnZTpcbiAqIGBgYFxuICoge3sgdmFsdWUgfCBza3lOdW1lcmljKGNvbmZpZykgfX1cbiAqIGBgYFxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lOdW1lcmljJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNreU51bWVyaWNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjYWNoZUtleTogc3RyaW5nO1xuICBwcml2YXRlIGZvcm1hdHRlZFZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcHJvdmlkZXJMb2NhbGU6IHN0cmluZztcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9jYWxlUHJvdmlkZXI6IFNreUFwcExvY2FsZVByb3ZpZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbnVtZXJpY1NlcnZpY2U6IFNreU51bWVyaWNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMubG9jYWxlUHJvdmlkZXJcbiAgICAgIC5nZXRMb2NhbGVJbmZvKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobG9jYWxlSW5mbykgPT4ge1xuICAgICAgICB0aGlzLnByb3ZpZGVyTG9jYWxlID0gbG9jYWxlSW5mby5sb2NhbGU7XG4gICAgICAgIG51bWVyaWNTZXJ2aWNlLmN1cnJlbnRMb2NhbGUgPSB0aGlzLnByb3ZpZGVyTG9jYWxlO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IG51bWJlciwgY29uZmlnPzogU2t5TnVtZXJpY09wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5ld0NhY2hlS2V5ID1cbiAgICAgIChjb25maWcgPyBKU09OLnN0cmluZ2lmeShjb25maWcsIE9iamVjdC5rZXlzKGNvbmZpZykuc29ydCgpKSA6ICcnKSArXG4gICAgICBgJHt2YWx1ZX1fJHtjb25maWc/LmxvY2FsZSB8fCB0aGlzLnByb3ZpZGVyTG9jYWxlfWA7XG5cbiAgICAvKiBJZiB0aGUgdmFsdWUgYW5kIGxvY2FsZSBhcmUgdGhlIHNhbWUgYXMgdGhlIGxhc3QgdHJhbnNmb3JtIHRoZW4gcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZVxuICAgIGluc3RlYWQgb2YgcmVmb3JtYXR0aW5nLiAqL1xuICAgIGlmICh0aGlzLmZvcm1hdHRlZFZhbHVlICYmIHRoaXMuY2FjaGVLZXkgPT09IG5ld0NhY2hlS2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0gbmV3IFNreU51bWVyaWNPcHRpb25zKCk7XG5cbiAgICAvLyBUaGUgZGVmYXVsdCBudW1iZXIgb2YgZGlnaXRzIGlzIGAxYC4gV2hlbiB0cnVuY2F0ZSBpcyBkaXNhYmxlZCwgc2V0IGRpZ2l0c1xuICAgIC8vIHRvIGAwYCB0byBhdm9pZCB0aGUgdW5uZWNlc3NhcnkgYWRkaXRpb24gb2YgYC4wYCBhdCB0aGUgZW5kIG9mIHRoZSBmb3JtYXR0ZWQgbnVtYmVyLlxuICAgIGlmIChjb25maWcgJiYgY29uZmlnLnRydW5jYXRlID09PSBmYWxzZSAmJiBjb25maWcuZGlnaXRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG9wdGlvbnMuZGlnaXRzID0gMDtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgbWluaW11bSBkaWdpdHMgaXMgbGVzcyB0aGFuIHRoZSBzZXQgbWF4aW11bSBkaWdpdHMgdGhlbiB0aHJvdyBhbiBlcnJvclxuICAgIGlmIChcbiAgICAgIGNvbmZpZyAmJlxuICAgICAgY29uZmlnLm1pbkRpZ2l0cyAmJlxuICAgICAgY29uZmlnLmRpZ2l0cyAmJlxuICAgICAgY29uZmlnLm1pbkRpZ2l0cyA+IGNvbmZpZy5kaWdpdHNcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZSBgZGlnaXRzYCBwcm9wZXJ0eSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgYG1pbkRpZ2l0c2AgcHJvcGVydHknXG4gICAgICApO1xuXG4gICAgICAvLyBJZiB0aGVyZSBpcyBhIG1pbmltdW0gZGlnaXRzIGdpdmVuIGJ1dCBub3QgYSBtYXhpbXVtIHRoZW4gZGVmYXVsdCB0aGUgbWF4aW11bSB0byB0aGUgbWluaW11bVxuICAgIH0gZWxzZSBpZiAoY29uZmlnICYmIGNvbmZpZy5taW5EaWdpdHMgJiYgIWNvbmZpZy5kaWdpdHMpIHtcbiAgICAgIG9wdGlvbnMuZGlnaXRzID0gY29uZmlnLm1pbkRpZ2l0cztcbiAgICB9XG5cbiAgICBPYmplY3QuYXNzaWduKG9wdGlvbnMsIGNvbmZpZyk7XG5cbiAgICAvLyBBc3NpZ24gcHJvcGVydGllcyBmb3IgcHJvcGVyIHJlc3VsdCBjYWNoaW5nLlxuICAgIHRoaXMuY2FjaGVLZXkgPSBuZXdDYWNoZUtleTtcblxuICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB0aGlzLm51bWVyaWNTZXJ2aWNlLmZvcm1hdE51bWJlcih2YWx1ZSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gIH1cbn1cbiJdfQ==