@net7/components 4.2.1 → 4.2.3-rc4

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 (286) hide show
  1. package/README.md +2 -1
  2. package/esm2022/lib/components/advanced-autocomplete/advanced-autocomplete.mjs +25 -0
  3. package/esm2022/lib/components/advanced-autocomplete/advanced-autocomplete.mock.mjs +147 -0
  4. package/esm2022/lib/components/alert/alert.mjs +24 -0
  5. package/{esm2020 → esm2022}/lib/components/alert/alert.mock.mjs +2 -2
  6. package/esm2022/lib/components/anchor-wrapper/anchor-wrapper.mjs +35 -0
  7. package/esm2022/lib/components/avatar/avatar.mjs +34 -0
  8. package/esm2022/lib/components/breadcrumbs/breadcrumbs.mjs +25 -0
  9. package/{esm2020 → esm2022}/lib/components/breadcrumbs/breadcrumbs.mock.mjs +8 -8
  10. package/esm2022/lib/components/bubble-chart/bubble-chart.mjs +336 -0
  11. package/{esm2020 → esm2022}/lib/components/bubble-chart/bubble-chart.mock.mjs +249 -249
  12. package/esm2022/lib/components/button/button.mjs +26 -0
  13. package/{esm2020 → esm2022}/lib/components/button/button.mock.mjs +3 -3
  14. package/esm2022/lib/components/carousel/carousel.mjs +97 -0
  15. package/esm2022/lib/components/carousel/carousel.mock.mjs +157 -0
  16. package/esm2022/lib/components/chart/chart.mjs +37 -0
  17. package/esm2022/lib/components/chart/chart.mock.mjs +127 -0
  18. package/esm2022/lib/components/content-placeholder/content-placeholder.mjs +17 -0
  19. package/{esm2020 → esm2022}/lib/components/content-placeholder/content-placeholder.mock.mjs +6 -3
  20. package/esm2022/lib/components/data-widget/data-widget.mjs +29 -0
  21. package/{esm2020 → esm2022}/lib/components/data-widget/data-widget.mock.mjs +4 -4
  22. package/esm2022/lib/components/datepicker/datepicker.mjs +44 -0
  23. package/esm2022/lib/components/facet/facet.mjs +24 -0
  24. package/esm2022/lib/components/facet/facet.mock.mjs +169 -0
  25. package/esm2022/lib/components/facet-header/facet-header.mjs +24 -0
  26. package/esm2022/lib/components/facet-year-range/facet-year-range.mjs +53 -0
  27. package/esm2022/lib/components/file-selector/file-selector.mjs +41 -0
  28. package/{esm2020 → esm2022}/lib/components/file-selector/file-selector.mock.mjs +2 -2
  29. package/esm2022/lib/components/footer/footer.mjs +26 -0
  30. package/esm2022/lib/components/footer/footer.mock.mjs +60 -0
  31. package/esm2022/lib/components/header/header.mjs +53 -0
  32. package/esm2022/lib/components/header/header.mock.mjs +119 -0
  33. package/esm2022/lib/components/hero/hero.mjs +41 -0
  34. package/{esm2020 → esm2022}/lib/components/hero/hero.mock.mjs +5 -5
  35. package/esm2022/lib/components/histogram-range/histogram-range.mjs +390 -0
  36. package/{esm2020 → esm2022}/lib/components/histogram-range/histogram-range.mock.mjs +4 -4
  37. package/esm2022/lib/components/icon/icon.mjs +21 -0
  38. package/{esm2020 → esm2022}/lib/components/icon/icon.mock.mjs +2 -2
  39. package/esm2022/lib/components/image-viewer/image-viewer.mjs +57 -0
  40. package/esm2022/lib/components/image-viewer/image-viewer.mock.mjs +29 -0
  41. package/esm2022/lib/components/image-viewer-tools/image-viewer-tools.mjs +28 -0
  42. package/esm2022/lib/components/image-viewer-tools/image-viewer-tools.mock.mjs +54 -0
  43. package/esm2022/lib/components/inner-title/inner-title.mjs +40 -0
  44. package/esm2022/lib/components/inner-title/inner-title.mock.mjs +53 -0
  45. package/esm2022/lib/components/input-checkbox/input-checkbox.mjs +24 -0
  46. package/esm2022/lib/components/input-checkbox/input-checkbox.mock.mjs +31 -0
  47. package/esm2022/lib/components/input-link/input-link.mjs +24 -0
  48. package/esm2022/lib/components/input-link/input-link.mock.mjs +66 -0
  49. package/{esm2020 → esm2022}/lib/components/input-select/input-select.mjs +5 -5
  50. package/esm2022/lib/components/input-text/input-text.mjs +34 -0
  51. package/esm2022/lib/components/input-textarea/input-textarea.mjs +21 -0
  52. package/esm2022/lib/components/item-preview/item-preview.mjs +25 -0
  53. package/esm2022/lib/components/item-preview/item-preview.mock.mjs +46 -0
  54. package/esm2022/lib/components/loader/loader.mjs +16 -0
  55. package/{esm2020 → esm2022}/lib/components/loader/loader.mock.mjs +2 -2
  56. package/esm2022/lib/components/map/map.mjs +66 -0
  57. package/{esm2020 → esm2022}/lib/components/map/map.mock.mjs +14 -10
  58. package/esm2022/lib/components/metadata-viewer/metadata-viewer.mjs +19 -0
  59. package/esm2022/lib/components/metadata-viewer/metadata-viewer.mock.mjs +75 -0
  60. package/esm2022/lib/components/mirador/mirador.mjs +36 -0
  61. package/esm2022/lib/components/mirador/mirador.mock.mjs +23 -0
  62. package/esm2022/lib/components/mirador/miradorTheme.mjs +220 -0
  63. package/esm2022/lib/components/nav/nav.mjs +27 -0
  64. package/esm2022/lib/components/nav/nav.mock.mjs +46 -0
  65. package/esm2022/lib/components/pagination/pagination.mjs +31 -0
  66. package/esm2022/lib/components/pagination/pagination.mock.mjs +27 -0
  67. package/esm2022/lib/components/progress-line/progress-line.mjs +19 -0
  68. package/esm2022/lib/components/sidebar-header/sidebar-header.mjs +24 -0
  69. package/esm2022/lib/components/signup/signup.mjs +44 -0
  70. package/{esm2020 → esm2022}/lib/components/signup/signup.mock.mjs +14 -14
  71. package/esm2022/lib/components/simple-autocomplete/simple-autocomplete.mjs +25 -0
  72. package/esm2022/lib/components/simple-autocomplete/simple-autocomplete.mock.mjs +22 -0
  73. package/esm2022/lib/components/table/table.mjs +35 -0
  74. package/esm2022/lib/components/table/table.mock.mjs +156 -0
  75. package/esm2022/lib/components/tag/tag.mjs +35 -0
  76. package/esm2022/lib/components/text-viewer/text-viewer.mjs +42 -0
  77. package/{esm2020 → esm2022}/lib/components/text-viewer/text-viewer.mock.mjs +4 -4
  78. package/esm2022/lib/components/timeline/timeline.mjs +51 -0
  79. package/esm2022/lib/components/timeline/timeline.mock.mjs +137 -0
  80. package/esm2022/lib/components/toast/toast.mjs +24 -0
  81. package/esm2022/lib/components/toast/toast.mock.mjs +65 -0
  82. package/esm2022/lib/components/tooltip-content/tooltip-content.mjs +25 -0
  83. package/{esm2020 → esm2022}/lib/components/tooltip-content/tooltip-content.mock.mjs +9 -8
  84. package/esm2022/lib/components/tree/tree.mjs +25 -0
  85. package/{esm2020 → esm2022}/lib/components/tree/tree.mock.mjs +44 -44
  86. package/esm2022/lib/components/wizard/wizard.mjs +24 -0
  87. package/{esm2020 → esm2022}/lib/components/wizard/wizard.mock.mjs +6 -6
  88. package/esm2022/lib/dv-components-lib.module.mjs +211 -0
  89. package/{esm2020 → esm2022}/lib/shared-interfaces.mjs +1 -1
  90. package/esm2022/public-api.mjs +105 -0
  91. package/fesm2022/net7-components.mjs +6091 -0
  92. package/fesm2022/net7-components.mjs.map +1 -0
  93. package/lib/components/advanced-autocomplete/advanced-autocomplete.d.ts +22 -22
  94. package/lib/components/alert/alert.d.ts +2 -2
  95. package/lib/components/anchor-wrapper/anchor-wrapper.d.ts +1 -1
  96. package/lib/components/avatar/avatar.d.ts +1 -1
  97. package/lib/components/breadcrumbs/breadcrumbs.d.ts +1 -1
  98. package/lib/components/bubble-chart/bubble-chart.d.ts +3 -3
  99. package/lib/components/button/button.d.ts +1 -1
  100. package/lib/components/carousel/carousel.d.ts +1 -1
  101. package/lib/components/chart/chart.d.ts +2 -2
  102. package/lib/components/content-placeholder/content-placeholder.d.ts +6 -6
  103. package/lib/components/data-widget/data-widget.d.ts +1 -1
  104. package/lib/components/datepicker/datepicker.d.ts +4 -4
  105. package/lib/components/facet/facet.d.ts +23 -23
  106. package/lib/components/facet-header/facet-header.d.ts +1 -1
  107. package/lib/components/facet-year-range/facet-year-range.d.ts +9 -9
  108. package/lib/components/file-selector/file-selector.d.ts +1 -1
  109. package/lib/components/footer/footer.d.ts +4 -4
  110. package/lib/components/header/header.d.ts +1 -1
  111. package/lib/components/hero/hero.d.ts +16 -16
  112. package/lib/components/histogram-range/histogram-range.d.ts +3 -3
  113. package/lib/components/icon/icon.d.ts +1 -1
  114. package/lib/components/image-viewer/image-viewer.d.ts +1 -1
  115. package/lib/components/image-viewer-tools/image-viewer-tools.d.ts +3 -3
  116. package/lib/components/inner-title/inner-title.d.ts +1 -1
  117. package/lib/components/input-checkbox/input-checkbox.d.ts +1 -1
  118. package/lib/components/input-link/input-link.d.ts +1 -1
  119. package/lib/components/input-select/input-select.d.ts +1 -1
  120. package/lib/components/input-text/input-text.d.ts +1 -1
  121. package/lib/components/input-textarea/input-textarea.d.ts +2 -2
  122. package/lib/components/item-preview/item-preview.d.ts +40 -40
  123. package/lib/components/loader/loader.d.ts +1 -1
  124. package/lib/components/map/map.d.ts +1 -1
  125. package/lib/components/metadata-viewer/metadata-viewer.d.ts +19 -19
  126. package/lib/components/mirador/mirador.d.ts +15 -0
  127. package/lib/components/mirador/mirador.mock.d.ts +6 -0
  128. package/lib/components/mirador/miradorTheme.d.ts +218 -0
  129. package/lib/components/nav/nav.d.ts +1 -1
  130. package/lib/components/pagination/pagination.d.ts +1 -1
  131. package/lib/components/progress-line/progress-line.d.ts +1 -1
  132. package/lib/components/sidebar-header/sidebar-header.d.ts +1 -1
  133. package/lib/components/signup/signup.d.ts +1 -1
  134. package/lib/components/simple-autocomplete/simple-autocomplete.d.ts +11 -11
  135. package/lib/components/table/table.d.ts +1 -1
  136. package/lib/components/tag/tag.d.ts +1 -1
  137. package/lib/components/text-viewer/text-viewer.d.ts +1 -1
  138. package/lib/components/timeline/timeline.d.ts +1 -1
  139. package/lib/components/toast/toast.d.ts +1 -1
  140. package/lib/components/tooltip-content/tooltip-content.d.ts +1 -1
  141. package/lib/components/tree/tree.d.ts +20 -20
  142. package/lib/components/wizard/wizard.d.ts +30 -30
  143. package/lib/dv-components-lib.module.d.ts +19 -18
  144. package/lib/shared-interfaces.d.ts +3 -3
  145. package/package.json +8 -14
  146. package/public-api.d.ts +2 -0
  147. package/src/lib/styles/_imports.scss +54 -56
  148. package/src/lib/styles/atoms/_button.scss +37 -30
  149. package/src/lib/styles/components/_advanced-autocomplete.scss +15 -38
  150. package/src/lib/styles/components/_alert.scss +6 -18
  151. package/src/lib/styles/components/_anchor-wrapper.scss +3 -4
  152. package/src/lib/styles/components/_avatar.scss +1 -4
  153. package/src/lib/styles/components/_breadcrumbs.scss +12 -23
  154. package/src/lib/styles/components/_bubble-chart.scss +3 -4
  155. package/src/lib/styles/components/_button.scss +3 -13
  156. package/src/lib/styles/components/_carousel.scss +18 -46
  157. package/src/lib/styles/components/_chart.scss +3 -4
  158. package/src/lib/styles/components/_content-placeholder.scss +17 -17
  159. package/src/lib/styles/components/_data-widget.scss +5 -17
  160. package/src/lib/styles/components/_datepicker.scss +3 -4
  161. package/src/lib/styles/components/_facet-header.scss +3 -8
  162. package/src/lib/styles/components/_facet-year-range.scss +7 -12
  163. package/src/lib/styles/components/_facet.scss +11 -28
  164. package/src/lib/styles/components/_file-selector.scss +3 -4
  165. package/src/lib/styles/components/_footer.scss +7 -28
  166. package/src/lib/styles/components/_header.scss +15 -76
  167. package/src/lib/styles/components/_hero.scss +10 -20
  168. package/src/lib/styles/components/_histogram-range.scss +1 -2
  169. package/src/lib/styles/components/_icon.scss +1 -3
  170. package/src/lib/styles/components/_image-viewer-tools.scss +31 -40
  171. package/src/lib/styles/components/_image-viewer.scss +20 -36
  172. package/src/lib/styles/components/_inner-title.scss +13 -39
  173. package/src/lib/styles/components/_input-checkbox.scss +6 -10
  174. package/src/lib/styles/components/_input-link.scss +4 -10
  175. package/src/lib/styles/components/_input-select.scss +2 -7
  176. package/src/lib/styles/components/_input-text.scss +5 -10
  177. package/src/lib/styles/components/_input-textarea.scss +3 -8
  178. package/src/lib/styles/components/_item-preview.scss +10 -36
  179. package/src/lib/styles/components/_loader.scss +1 -2
  180. package/src/lib/styles/components/_map.scss +2 -3
  181. package/src/lib/styles/components/_metadata-viewer.scss +7 -12
  182. package/src/lib/styles/components/_mirador.scss +19 -0
  183. package/src/lib/styles/components/_nav.scss +5 -11
  184. package/src/lib/styles/components/_pagination.scss +29 -33
  185. package/src/lib/styles/components/_progress-line.scss +3 -10
  186. package/src/lib/styles/components/_sidebar-header.scss +3 -8
  187. package/src/lib/styles/components/_signup.scss +48 -49
  188. package/src/lib/styles/components/_simple-autocomplete.scss +5 -12
  189. package/src/lib/styles/components/_table.scss +5 -18
  190. package/src/lib/styles/components/_tag.scss +7 -10
  191. package/src/lib/styles/components/_text-viewer.scss +33 -88
  192. package/src/lib/styles/components/_timeline.scss +3 -4
  193. package/src/lib/styles/components/_toast.scss +7 -17
  194. package/src/lib/styles/components/_tooltip-content.scss +3 -4
  195. package/src/lib/styles/components/_tree.scss +26 -22
  196. package/src/lib/styles/components/_wizard.scss +36 -29
  197. package/src/lib/styles/generic/_color_scheme.scss +2 -2
  198. package/src/lib/styles/generic/_mixins.scss +28 -31
  199. package/src/lib/styles/generic/_variables.scss +9 -11
  200. package/src/lib/styles/global/_forms.scss +38 -63
  201. package/src/lib/styles/global/_global.scss +3 -5
  202. package/src/lib/styles/global/_normalize.scss +17 -57
  203. package/src/lib/styles/global/_typography.scss +25 -23
  204. package/src/lib/styles/utilities/_grids.scss +40 -79
  205. package/esm2020/lib/components/advanced-autocomplete/advanced-autocomplete.mjs +0 -25
  206. package/esm2020/lib/components/advanced-autocomplete/advanced-autocomplete.mock.mjs +0 -100
  207. package/esm2020/lib/components/alert/alert.mjs +0 -24
  208. package/esm2020/lib/components/anchor-wrapper/anchor-wrapper.mjs +0 -35
  209. package/esm2020/lib/components/avatar/avatar.mjs +0 -34
  210. package/esm2020/lib/components/breadcrumbs/breadcrumbs.mjs +0 -25
  211. package/esm2020/lib/components/bubble-chart/bubble-chart.mjs +0 -329
  212. package/esm2020/lib/components/button/button.mjs +0 -26
  213. package/esm2020/lib/components/carousel/carousel.mjs +0 -89
  214. package/esm2020/lib/components/carousel/carousel.mock.mjs +0 -136
  215. package/esm2020/lib/components/chart/chart.mjs +0 -37
  216. package/esm2020/lib/components/chart/chart.mock.mjs +0 -112
  217. package/esm2020/lib/components/content-placeholder/content-placeholder.mjs +0 -17
  218. package/esm2020/lib/components/data-widget/data-widget.mjs +0 -29
  219. package/esm2020/lib/components/datepicker/datepicker.mjs +0 -44
  220. package/esm2020/lib/components/facet/facet.mjs +0 -24
  221. package/esm2020/lib/components/facet/facet.mock.mjs +0 -103
  222. package/esm2020/lib/components/facet-header/facet-header.mjs +0 -24
  223. package/esm2020/lib/components/facet-year-range/facet-year-range.mjs +0 -53
  224. package/esm2020/lib/components/file-selector/file-selector.mjs +0 -39
  225. package/esm2020/lib/components/footer/footer.mjs +0 -26
  226. package/esm2020/lib/components/footer/footer.mock.mjs +0 -58
  227. package/esm2020/lib/components/header/header.mjs +0 -53
  228. package/esm2020/lib/components/header/header.mock.mjs +0 -101
  229. package/esm2020/lib/components/hero/hero.mjs +0 -41
  230. package/esm2020/lib/components/histogram-range/histogram-range.mjs +0 -390
  231. package/esm2020/lib/components/icon/icon.mjs +0 -21
  232. package/esm2020/lib/components/image-viewer/image-viewer.mjs +0 -55
  233. package/esm2020/lib/components/image-viewer/image-viewer.mock.mjs +0 -25
  234. package/esm2020/lib/components/image-viewer-tools/image-viewer-tools.mjs +0 -28
  235. package/esm2020/lib/components/image-viewer-tools/image-viewer-tools.mock.mjs +0 -54
  236. package/esm2020/lib/components/inner-title/inner-title.mjs +0 -40
  237. package/esm2020/lib/components/inner-title/inner-title.mock.mjs +0 -53
  238. package/esm2020/lib/components/input-checkbox/input-checkbox.mjs +0 -24
  239. package/esm2020/lib/components/input-checkbox/input-checkbox.mock.mjs +0 -25
  240. package/esm2020/lib/components/input-link/input-link.mjs +0 -24
  241. package/esm2020/lib/components/input-link/input-link.mock.mjs +0 -38
  242. package/esm2020/lib/components/input-text/input-text.mjs +0 -34
  243. package/esm2020/lib/components/input-textarea/input-textarea.mjs +0 -21
  244. package/esm2020/lib/components/item-preview/item-preview.mjs +0 -25
  245. package/esm2020/lib/components/item-preview/item-preview.mock.mjs +0 -43
  246. package/esm2020/lib/components/loader/loader.mjs +0 -16
  247. package/esm2020/lib/components/map/map.mjs +0 -64
  248. package/esm2020/lib/components/metadata-viewer/metadata-viewer.mjs +0 -19
  249. package/esm2020/lib/components/metadata-viewer/metadata-viewer.mock.mjs +0 -74
  250. package/esm2020/lib/components/nav/nav.mjs +0 -27
  251. package/esm2020/lib/components/nav/nav.mock.mjs +0 -36
  252. package/esm2020/lib/components/pagination/pagination.mjs +0 -31
  253. package/esm2020/lib/components/pagination/pagination.mock.mjs +0 -23
  254. package/esm2020/lib/components/progress-line/progress-line.mjs +0 -19
  255. package/esm2020/lib/components/sidebar-header/sidebar-header.mjs +0 -24
  256. package/esm2020/lib/components/signup/signup.mjs +0 -44
  257. package/esm2020/lib/components/simple-autocomplete/simple-autocomplete.mjs +0 -25
  258. package/esm2020/lib/components/simple-autocomplete/simple-autocomplete.mock.mjs +0 -15
  259. package/esm2020/lib/components/table/table.mjs +0 -35
  260. package/esm2020/lib/components/table/table.mock.mjs +0 -152
  261. package/esm2020/lib/components/tag/tag.mjs +0 -35
  262. package/esm2020/lib/components/text-viewer/text-viewer.mjs +0 -42
  263. package/esm2020/lib/components/timeline/timeline.mjs +0 -51
  264. package/esm2020/lib/components/timeline/timeline.mock.mjs +0 -137
  265. package/esm2020/lib/components/toast/toast.mjs +0 -24
  266. package/esm2020/lib/components/toast/toast.mock.mjs +0 -51
  267. package/esm2020/lib/components/tooltip-content/tooltip-content.mjs +0 -25
  268. package/esm2020/lib/components/tree/tree.mjs +0 -25
  269. package/esm2020/lib/components/wizard/wizard.mjs +0 -24
  270. package/esm2020/lib/dv-components-lib.module.mjs +0 -211
  271. package/esm2020/public-api.mjs +0 -103
  272. package/fesm2015/net7-components.mjs +0 -5421
  273. package/fesm2015/net7-components.mjs.map +0 -1
  274. package/fesm2020/net7-components.mjs +0 -5434
  275. package/fesm2020/net7-components.mjs.map +0 -1
  276. /package/{esm2020 → esm2022}/lib/components/avatar/avatar.mock.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/components/datepicker/datepicker.mock.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/components/facet-header/facet-header.mock.mjs +0 -0
  279. /package/{esm2020 → esm2022}/lib/components/facet-year-range/facet-year-range.mock.mjs +0 -0
  280. /package/{esm2020 → esm2022}/lib/components/input-select/input-select.mock.mjs +0 -0
  281. /package/{esm2020 → esm2022}/lib/components/input-text/input-text.mock.mjs +0 -0
  282. /package/{esm2020 → esm2022}/lib/components/input-textarea/input-textarea.mock.mjs +0 -0
  283. /package/{esm2020 → esm2022}/lib/components/progress-line/progress-line.mock.mjs +0 -0
  284. /package/{esm2020 → esm2022}/lib/components/sidebar-header/sidebar-header.mock.mjs +0 -0
  285. /package/{esm2020 → esm2022}/lib/components/tag/tag.mock.mjs +0 -0
  286. /package/{esm2020 → esm2022}/net7-components.mjs +0 -0
@@ -0,0 +1,390 @@
1
+ /* eslint-disable no-use-before-define */
2
+ //---------------------------
3
+ // HISTOGRAM-RANGE.ts
4
+ //---------------------------
5
+ import { Component, Input } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ export class HistogramRangeComponent {
9
+ constructor() {
10
+ this.sliders = [];
11
+ this._loaded = false;
12
+ this.draw = () => {
13
+ const { d3 } = this;
14
+ const { width, margin, height, items, colours, containerId, axis, setSliders, } = this.data;
15
+ // data validation
16
+ const rangeMode = items.every((d) => d.range);
17
+ if (!rangeMode && items.some((d) => !d.range)) {
18
+ throw Error('All items must have the "range" property');
19
+ }
20
+ // Helpers - Start:
21
+ const LABELtoX = d3
22
+ .scaleBand()
23
+ .domain(items.map((d) => d.label))
24
+ .range([0, width])
25
+ .paddingInner(0.17)
26
+ .paddingOuter(1);
27
+ const XtoLABEL = (value) => {
28
+ const domain = LABELtoX.domain();
29
+ const paddingOuter = LABELtoX(domain[0]);
30
+ const eachBand = LABELtoX.step();
31
+ const index = Math.floor((value - paddingOuter) / eachBand);
32
+ return domain[Math.max(0, Math.min(index, domain.length - 1))];
33
+ };
34
+ // YEAR SELECTION CIRCLES
35
+ // let sliders;
36
+ if (setSliders && this.sliders) {
37
+ this.sliders = setSliders.map((d) => ({
38
+ x: LABELtoX(d) + LABELtoX.bandwidth() / 2,
39
+ y: height,
40
+ }));
41
+ }
42
+ else {
43
+ this.sliders = d3
44
+ .extent(items, (d) => d.label)
45
+ .map((d) => ({ x: LABELtoX(d) + LABELtoX.bandwidth() / 2, y: height }));
46
+ }
47
+ const isInRange = (y) => {
48
+ const allItems = this.sliders.map((d) => XtoLABEL(d.x));
49
+ if (y >= d3.min(allItems) && y <= d3.max(allItems))
50
+ return true;
51
+ return false;
52
+ };
53
+ function colourBars(d) {
54
+ if (isInRange(d.label))
55
+ return 'url(#gradient)';
56
+ return '#e3e3e3';
57
+ }
58
+ this.colourBars = colourBars;
59
+ this.getSelectedRange = () => {
60
+ const rangeStart = items.find((it) => it.label === XtoLABEL(this.sliders[0].x));
61
+ const rangeEnd = items.find((it) => it.label === XtoLABEL(this.sliders[1].x));
62
+ return [
63
+ rangeStart.payload,
64
+ rangeMode ? rangeEnd.range.payload : rangeEnd.payload,
65
+ ];
66
+ };
67
+ // Helpers - End.
68
+ // clear HTML contents
69
+ document.getElementById(containerId).innerHTML = '';
70
+ const svg = d3
71
+ .select(`#${containerId}`)
72
+ .attr('viewBox', `0 0 ${width + margin.left + margin.right} ${height + margin.top + margin.bottom}`);
73
+ this.svg = svg;
74
+ const scaleHeight = d3
75
+ .scaleSymlog() // most similar scale to the original
76
+ .domain([0, d3.max(items, (d) => d.value)])
77
+ .range([height, 0]);
78
+ // GRADIENT
79
+ const defs = svg.append('defs'); // definitions
80
+ const gradient = defs
81
+ .append('linearGradient')
82
+ .attr('id', 'gradient')
83
+ .attr('gradientUnits', 'userSpaceOnUse')
84
+ .attr('x1', 0)
85
+ .attr('y1', height)
86
+ .attr('x2', 0)
87
+ .attr('y2', margin.top);
88
+ gradient
89
+ .append('stop')
90
+ .attr('class', 'start')
91
+ .attr('offset', '0%')
92
+ .attr('stop-color', colours.bottom) // bottom gradient
93
+ .attr('stop-opacity', 1);
94
+ gradient
95
+ .append('stop')
96
+ .attr('class', 'end')
97
+ .attr('offset', '100%')
98
+ .attr('stop-color', colours.top) // top gradient
99
+ .attr('stop-opacity', 1);
100
+ // DRAW INSIDE MARGINS
101
+ const g = svg
102
+ .append('g')
103
+ .attr('class', 'chart')
104
+ .attr('transform', `translate(${margin.left},${margin.top})`);
105
+ const barsLayer = g.append('g').attr('class', 'bars');
106
+ const controlsLayer = g.append('g').attr('class', 'controls');
107
+ // BAR CHART
108
+ barsLayer // bars
109
+ .selectAll('rect.bars')
110
+ .data(items)
111
+ .join('rect')
112
+ .attr('class', 'bars')
113
+ .attr('width', LABELtoX.bandwidth)
114
+ .attr('height', (d) => height - scaleHeight(d.value))
115
+ .attr('y', (d) => scaleHeight(d.value))
116
+ .attr('x', (d) => LABELtoX(d.label))
117
+ .attr('data-start', (d) => d.payload) // make the data easily accessible
118
+ .attr('data-end', (d) => (d.range ? d.range.payload : d.payload))
119
+ .attr('fill', 'url(#gradient)');
120
+ barsLayer // catch bar events
121
+ .on('mousemove', (event) => {
122
+ const year = XtoLABEL(this.getEventCoords(event).x);
123
+ d3.selectAll('rect.bars').attr('fill', (d) => {
124
+ if (year === d.label)
125
+ return '#B0CCF8';
126
+ return colourBars(d);
127
+ });
128
+ })
129
+ .on('mouseout', () => {
130
+ d3.selectAll('rect.bars').attr('fill', (d) => colourBars(d));
131
+ })
132
+ .on('click', (event) => {
133
+ const label = XtoLABEL(this.getEventCoords(event).x);
134
+ const xAxisValue = LABELtoX(label) + LABELtoX.bandwidth() / 2;
135
+ const newValue = {
136
+ x: xAxisValue,
137
+ y: height,
138
+ };
139
+ this.sliders = [
140
+ // avoid joining the two objects!
141
+ { ...newValue },
142
+ { ...newValue },
143
+ ];
144
+ rangePicker
145
+ .data(this.sliders)
146
+ .select('circle')
147
+ .transition()
148
+ .ease(d3.easeQuadOut)
149
+ .duration(550)
150
+ .attr('cx', (d) => d.x);
151
+ controlsLayer
152
+ .select('path.blueline')
153
+ .transition()
154
+ .ease(d3.easeQuadOut)
155
+ .duration(550)
156
+ .attr('d', d3.line()(this.sliders.map((d) => [d.x, d.y])));
157
+ controlsLayer
158
+ .selectAll('text')
159
+ .transition()
160
+ .ease(d3.easeQuadOut)
161
+ .duration(550)
162
+ .attr('x', () => xAxisValue)
163
+ .text((d, i) => {
164
+ if (!rangeMode)
165
+ return label;
166
+ const item = items.find((it) => it.label === label);
167
+ if (i > 0)
168
+ return item.range.label;
169
+ return item.label;
170
+ });
171
+ g.selectAll('rect.bars').attr('fill', (d) => colourBars(d));
172
+ this.textCollision(this.sliders);
173
+ this.emit('rangeselected', this.getSelectedRange());
174
+ });
175
+ controlsLayer // gray line
176
+ .append('path')
177
+ .attr('class', 'grayline')
178
+ .attr('d', d3.line()([
179
+ [0, height],
180
+ [width, height],
181
+ ]))
182
+ .attr('stroke-width', 2)
183
+ .attr('opacity', 1)
184
+ .attr('stroke', '#C1C5C7');
185
+ controlsLayer // blue line
186
+ .append('path')
187
+ .attr('class', 'blueline')
188
+ .attr('d', d3.line()(this.sliders.map((d) => [d.x, d.y])))
189
+ .attr('stroke-width', 2)
190
+ .attr('stroke', colours.accent);
191
+ const rangePicker = controlsLayer
192
+ .selectAll('g.rangepicker')
193
+ .data(this.sliders.sort((a, b) => d3.ascending(a.x, b.x)))
194
+ .join('g')
195
+ .attr('class', 'rangepicker');
196
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
197
+ const self = this; // FIXME: Allow use of class "this" inside dragging update;
198
+ /**
199
+ * Animate the elements while the user is dragging one of the range selectors
200
+ */
201
+ function draggingUpdate(event, data) {
202
+ const label = XtoLABEL(event.x);
203
+ const xAxisValue = LABELtoX(label) + LABELtoX.bandwidth() / 2;
204
+ const yb = [];
205
+ g.selectAll('circle').each(function setBallPosition() {
206
+ yb.push({ x: +d3.select(this).attr('cx'), y: height });
207
+ });
208
+ self.sliders = yb.sort((a, b) => d3.ascending(a.x, b.x));
209
+ // move the circle
210
+ d3.select(this)
211
+ .select('circle')
212
+ .attr('cx', (data.x = xAxisValue));
213
+ // move the blue line
214
+ controlsLayer
215
+ .select('path.blueline')
216
+ .attr('d', d3.line()(self.sliders.map((d) => [d.x, d.y])));
217
+ // change the text position
218
+ d3.select(this)
219
+ .select('text')
220
+ .attr('x', () => xAxisValue);
221
+ // change the text values
222
+ controlsLayer.selectAll('text').text((d) => {
223
+ const l = XtoLABEL(d.x);
224
+ if (!rangeMode)
225
+ return l;
226
+ const position = self.sliders.findIndex((slider) => slider.x === d.x);
227
+ const range = self.getSelectedRange();
228
+ if (position === 1)
229
+ return range[1];
230
+ return range[0];
231
+ });
232
+ self.textCollision(self.sliders);
233
+ // colour the bars
234
+ g.selectAll('rect.bars').attr('fill', (d) => colourBars(d));
235
+ }
236
+ rangePicker // drag handler
237
+ .call(d3
238
+ .drag()
239
+ .on('drag', draggingUpdate)
240
+ .on('end', (event, data) => {
241
+ // update one last time to prevent desyncing
242
+ draggingUpdate(event, data);
243
+ // emit the selected range
244
+ this.emit('rangeselected', this.getSelectedRange());
245
+ }));
246
+ rangePicker
247
+ .append('circle')
248
+ .attr('cx', (d) => d.x)
249
+ .attr('cy', (d) => d.y)
250
+ .attr('r', 9)
251
+ .attr('fill', 'white')
252
+ .attr('stroke-width', 2)
253
+ .attr('stroke', colours.accent)
254
+ .attr('style', 'cursor: pointer');
255
+ rangePicker
256
+ .attr('text-anchor', 'middle')
257
+ .attr('font-family', 'Roboto, Arial, sans-serif')
258
+ .attr('font-size', '12px')
259
+ .append('text')
260
+ .attr('y', (d) => d.y + margin.bottom / 2)
261
+ .attr('x', (d) => d.x)
262
+ .attr('fill', colours.accent)
263
+ .text((d, i) => {
264
+ const l = XtoLABEL(d.x);
265
+ if (rangeMode && i === 1) {
266
+ return items.find((item) => item.label === l).range.label;
267
+ }
268
+ return l;
269
+ });
270
+ if (axis?.yAxis?.show) {
271
+ const yAxis = d3
272
+ .axisLeft(scaleHeight)
273
+ .ticks(axis.yAxis.tickAmount ?? 2)
274
+ .tickValues(axis.yAxis.values ? axis.yAxis.values : null);
275
+ const yAxisGroup = svg
276
+ .append('g')
277
+ .attr('transform', `translate(${margin.left}, ${margin.top})`)
278
+ .call(yAxis);
279
+ yAxisGroup.selectAll('path, line').style('stroke', colours.accent);
280
+ yAxisGroup.selectAll('text').style('fill', colours.accent);
281
+ }
282
+ };
283
+ /** Avoid collision of the slider labels */
284
+ this.textCollision = (sliders) => {
285
+ // pre-requisites
286
+ const controlsLayer = this.d3.select('g.chart').select('g.controls');
287
+ const { items, margin } = this.data;
288
+ const rangeMode = items.every((d) => d.range);
289
+ // run collision detection
290
+ const isColliding = sliders[0].x === sliders[1].x;
291
+ if (rangeMode && isColliding) {
292
+ controlsLayer
293
+ .selectAll('text')
294
+ .attr('y', (d, i) => i > 0 ? d.y + margin.bottom / 2 + 12 : d.y + margin.bottom / 2)
295
+ .text((d, i) => {
296
+ const range = this.getSelectedRange();
297
+ return range[i];
298
+ });
299
+ }
300
+ else {
301
+ controlsLayer.selectAll('text').attr('y', (d) => d.y + margin.bottom / 2);
302
+ }
303
+ };
304
+ /** Public api that allows to dinamically change the bars */
305
+ this.setBars = (newBars) => {
306
+ this.data.items = newBars;
307
+ this.draw();
308
+ this.d3.selectAll('rect.bars').attr('fill', (d) => this.colourBars(d));
309
+ };
310
+ /** Public api that allows to dinamically change the slider position */
311
+ this.setSliders = ([startLabel, endLabel], emit = true) => {
312
+ // setSliders([1450, 1575])
313
+ this.data.setSliders = [`${startLabel}`, `${endLabel}`];
314
+ this.draw();
315
+ this.d3.selectAll('rect.bars').attr('fill', (d) => this.colourBars(d));
316
+ const range = this.getSelectedRange();
317
+ if (emit)
318
+ this.emit('rangeselected', range);
319
+ this.textCollision(this.sliders);
320
+ return range;
321
+ };
322
+ }
323
+ ngAfterContentChecked() {
324
+ /*
325
+ Waits for the dom to be loaded, then fires the draw function
326
+ that renders the chart.
327
+ */
328
+ if (this.data) {
329
+ if (this._loaded)
330
+ return;
331
+ this._loaded = true;
332
+ setTimeout(() => {
333
+ import('d3').then((module) => {
334
+ this.d3 = module;
335
+ this.draw();
336
+ this.emitLoaded(true);
337
+ if (this.data && this.data.setDraw) {
338
+ this.data.setDraw(this.draw);
339
+ }
340
+ if (this.data.setApi) {
341
+ // expose the component api
342
+ this.data.setApi({
343
+ setSliders: this.setSliders,
344
+ setBars: this.setBars,
345
+ });
346
+ }
347
+ // eslint-disable-next-line dot-notation
348
+ // window['setSliders'] = this.setSliders;
349
+ });
350
+ });
351
+ }
352
+ }
353
+ /** Get x-axis position from label */
354
+ labelToX() {
355
+ return this.d3
356
+ .scaleBand()
357
+ .domain(this.data.items.map((d) => d.label))
358
+ .range([0, this.data.width])
359
+ .paddingInner(0.17)
360
+ .paddingOuter(1);
361
+ }
362
+ /**
363
+ * Get an event with viewBox coordinates and
364
+ * parse them in absolute coordinates
365
+ */
366
+ getEventCoords(event) {
367
+ const m = event.target.getScreenCTM();
368
+ const point = this.svg.node().createSVGPoint();
369
+ point.x = event.clientX;
370
+ point.y = event.clientY;
371
+ return point.matrixTransform(m.inverse());
372
+ }
373
+ /** Emits an event when the component has loaded */
374
+ emitLoaded(payload) {
375
+ if (!this.emit)
376
+ return;
377
+ this.emit('loaded', payload);
378
+ }
379
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: HistogramRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
380
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: HistogramRangeComponent, selector: "n7-histogram-range", inputs: { data: "data", emit: "emit" }, ngImport: i0, template: "<div *ngIf=\"data\" class=\"n7-histogram-range\">\n <svg #histogramRange [id]=\"data.containerId\"></svg>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
381
+ }
382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: HistogramRangeComponent, decorators: [{
383
+ type: Component,
384
+ args: [{ selector: 'n7-histogram-range', template: "<div *ngIf=\"data\" class=\"n7-histogram-range\">\n <svg #histogramRange [id]=\"data.containerId\"></svg>\n</div>\n" }]
385
+ }], propDecorators: { data: [{
386
+ type: Input
387
+ }], emit: [{
388
+ type: Input
389
+ }] } });
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9ncmFtLXJhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHYtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2hpc3RvZ3JhbS1yYW5nZS9oaXN0b2dyYW0tcmFuZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdi1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvaGlzdG9ncmFtLXJhbmdlL2hpc3RvZ3JhbS1yYW5nZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUN6Qyw2QkFBNkI7QUFDN0IscUJBQXFCO0FBQ3JCLDZCQUE2QjtBQUU3QixPQUFPLEVBQXVCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQTJGdEUsTUFBTSxPQUFPLHVCQUF1QjtJQUpwQztRQVdVLFlBQU8sR0FBWSxFQUFFLENBQUM7UUFLdEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQW9DeEIsU0FBSSxHQUFHLEdBQUcsRUFBRTtZQUNWLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTSxFQUNKLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxPQUFPLEVBQ1AsV0FBVyxFQUNYLElBQUksRUFDSixVQUFVLEdBQ1gsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBRWQsa0JBQWtCO1lBQ2xCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE1BQU0sS0FBSyxDQUFD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LENBQUM7YUFDM0MsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0IsWUFBWSxDQUFDLElBQUksQ0FBQzthQUNsQixZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxLQUFLO1FBQ2xCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMvQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDeEIsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBcUJELG1EQUFtRDtJQUNuRCxVQUFVLENBQUMsT0FBTztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7OEdBeGFVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGtHQ2hHcEMsc0hBR0E7OzJGRDZGYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0Usb0JBQW9COzhCQUlyQixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBISVNUT0dSQU0tUkFOR0UudHNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmltcG9ydCB7IEFmdGVyQ29udGVudENoZWNrZWQsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8qKlxuICogSW50ZXJmYWNlIGZvciBIaXN0b2dyYW1SYW5nZUNvbXBvbmVudCdzIFwiZGF0YVwiXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9ncmFtUmFuZ2VEYXRhIHtcbiAgLyoqXG4gICAqIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaGlzdG9ncmFtLXJhbmdlIHN2Z1xuICAgKi9cbiAgY29udGFpbmVySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIHRvdGFsIHdpZHRoIGZvciB0aGUgc3ZnIGVsZW1lbnRcbiAgICovXG4gIHdpZHRoOiBudW1iZXI7XG4gIC8qKlxuICAgKiB0b3RhbCBoZWlnaHQgZm9yIHRoZSBzdmcgZWxlbWVudFxuICAgKi9cbiAgaGVpZ2h0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBtYXJnaW5zIG9mIHRoZSBzdmdcbiAgICovXG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICByaWdodDogbnVtYmVyO1xuICAgIHRvcDogbnVtYmVyO1xuICAgIGJvdHRvbTogbnVtYmVyO1xuICB9O1xuICAvKipcbiAgICogVGhlbWUgb2YgdGhlIGhpc3RvZ3JhbVxuICAgKi9cbiAgY29sb3Vyczoge1xuICAgIHRvcDogc3RyaW5nO1xuICAgIGJvdHRvbTogc3RyaW5nO1xuICAgIGFjY2VudDogc3RyaW5nO1xuICB9O1xuICAvKipcbiAgICogRGF0YSBmb3IgdGhlIGhpc3RvZ3JhbSBiYXJzXG4gICAqL1xuICBpdGVtczoge1xuICAgIC8qKiBkZWZhdWx0IGxhYmVsIG9mIHRoZSBpdGVtICovXG4gICAgbGFiZWw6IHN0cmluZztcbiAgICAvKiogeS1heGlzIHZhbHVlIG9mIHRoZSBiYXIgKGhlaWdodCkgKi9cbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIC8qKiBwYXlsb2FkIHRoYXQgdGhlIGl0ZW0gc2hvdWxkIGVtaXQgd2hlbiBzZWxlY3RlZCAqL1xuICAgIHBheWxvYWQ6IGFueTtcbiAgICAvKipcbiAgICAgKiAndXBwZXInIHZhbHVlcyBvZiB0aGUgcmFuZ2UuXG4gICAgICogb25seSB1c2VkIHdoZW4gZWFjaCBiYXIgcmVwcmVzZW50cyBhIHJhbmdlLlxuICAgICAqL1xuICAgIHJhbmdlPzoge1xuICAgICAgLyoqIGxhYmVsIGxvYWRlZCB3aGVuIHNlbGVjdGVkIGJ5IHRoZSByaWdodC1tb3N0IHBvaW50ZXIgKi9cbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICAvKiogcGF5bG9hZCBlbWl0dGVkIHdoZW4gc2VsZWN0ZWQgYnkgdGhlIHJpZ2h0LW1vc3QgcG9pbnRlciAqL1xuICAgICAgcGF5bG9hZDogYW55O1xuICAgIH07XG4gIH1bXTtcbiAgLyoqXG4gICAqIEF4aXMgc2V0dGluZ3NcbiAgICovXG4gIGF4aXM/OiB7XG4gICAgLyoqIFkgQXhpcyBzZXR0aW5ncyAqL1xuICAgIHlBeGlzPzoge1xuICAgICAgLyoqIFR1cm4gb24gYW5kIG9mZiB0aGUgYXhpcyAqL1xuICAgICAgc2hvdz86IGJvb2xlYW47XG4gICAgICAvKiogTWFudWFsbHkgc2V0IHRoZSBheGlzIHZhbHVlcyB0byBzaG93ICovXG4gICAgICB2YWx1ZXM/OiBudW1iZXJbXTtcbiAgICAgIC8qKiBIb3cgbWFueSB0aWNrcyBkbyB5b3Ugd2FudCB0byBzZWUgKi9cbiAgICAgIHRpY2tBbW91bnQ/OiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIGV4cG9zZSB0aGUgZHJhdyBmdW5jdGlvbiBvdXRzaWRlIG9mIG43LWZyb250ZW5kL2NvbXBvbmVudHMgbGlicmFyeVxuICAgKiB0aGlzIGlzIG5lZWRlZCB0byByZWRyYXcgYnViYmxlLWNoYXJ0LWNvbXBvbmVudCBvbiBjb21tYW5kXG4gICAqL1xuICBzZXREcmF3PzogYW55O1xuICAvKipcbiAgICogc2V0U2xpZGVyc1xuICAgKi9cbiAgc2V0U2xpZGVycz86IExhYmVsQ291cGxlO1xuICAvKipcbiAgICogUHVibGljIGFwaVxuICAgKi9cbiAgc2V0QXBpPzogYW55O1xufVxuXG50eXBlIFNsaWRlcnMgPSB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH1bXTtcbnR5cGUgTGFiZWxDb3VwbGUgPSBbc3RyaW5nLCBzdHJpbmddO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduNy1oaXN0b2dyYW0tcmFuZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGlzdG9ncmFtLXJhbmdlLmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBIaXN0b2dyYW1SYW5nZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuICBASW5wdXQoKSBkYXRhOiBIaXN0b2dyYW1SYW5nZURhdGE7XG5cbiAgQElucHV0KCkgZW1pdDogYW55O1xuXG4gIHByaXZhdGUgZDM7XG5cbiAgcHJpdmF0ZSBzbGlkZXJzOiBTbGlkZXJzID0gW107XG5cbiAgLyoqIGQzIHNlbGVjdGlvbiBzdmcgcm9vdCAqL1xuICBwcml2YXRlIHN2ZztcblxuICBwcml2YXRlIF9sb2FkZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGNvbG91ckJhcnM7XG5cbiAgcHJpdmF0ZSBnZXRTZWxlY3RlZFJhbmdlO1xuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICAvKlxuICAgICAgICAgV2FpdHMgZm9yIHRoZSBkb20gdG8gYmUgbG9hZGVkLCB0aGVuIGZpcmVzIHRoZSBkcmF3IGZ1bmN0aW9uXG4gICAgICAgICB0aGF0IHJlbmRlcnMgdGhlIGNoYXJ0LlxuICAgICovXG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgaWYgKHRoaXMuX2xvYWRlZCkgcmV0dXJuO1xuICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpbXBvcnQoJ2QzJykudGhlbigobW9kdWxlKSA9PiB7XG4gICAgICAgICAgdGhpcy5kMyA9IG1vZHVsZTtcbiAgICAgICAgICB0aGlzLmRyYXcoKTtcbiAgICAgICAgICB0aGlzLmVtaXRMb2FkZWQodHJ1ZSk7XG4gICAgICAgICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEuc2V0RHJhdykge1xuICAgICAgICAgICAgdGhpcy5kYXRhLnNldERyYXcodGhpcy5kcmF3KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuZGF0YS5zZXRBcGkpIHtcbiAgICAgICAgICAgIC8vIGV4cG9zZSB0aGUgY29tcG9uZW50IGFwaVxuICAgICAgICAgICAgdGhpcy5kYXRhLnNldEFwaSh7XG4gICAgICAgICAgICAgIHNldFNsaWRlcnM6IHRoaXMuc2V0U2xpZGVycyxcbiAgICAgICAgICAgICAgc2V0QmFyczogdGhpcy5zZXRCYXJzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkb3Qtbm90YXRpb25cbiAgICAgICAgICAvLyB3aW5kb3dbJ3NldFNsaWRlcnMnXSA9IHRoaXMuc2V0U2xpZGVycztcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkcmF3ID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgZDMgfSA9IHRoaXM7XG4gICAgY29uc3Qge1xuICAgICAgd2lkdGgsXG4gICAgICBtYXJnaW4sXG4gICAgICBoZWlnaHQsXG4gICAgICBpdGVtcyxcbiAgICAgIGNvbG91cnMsXG4gICAgICBjb250YWluZXJJZCxcbiAgICAgIGF4aXMsXG4gICAgICBzZXRTbGlkZXJzLFxuICAgIH0gPSB0aGlzLmRhdGE7XG5cbiAgICAvLyBkYXRhIHZhbGlkYXRpb25cbiAgICBjb25zdCByYW5nZU1vZGUgPSBpdGVtcy5ldmVyeSgoZCkgPT4gZC5yYW5nZSk7XG4gICAgaWYgKCFyYW5nZU1vZGUgJiYgaXRlbXMuc29tZSgoZCkgPT4gIWQucmFuZ2UpKSB7XG4gICAgICB0aHJvdyBFcnJvcignQWxsIGl0ZW1zIG11c3QgaGF2ZSB0aGUgXCJyYW5nZVwiIHByb3BlcnR5Jyk7XG4gICAgfVxuXG4gICAgLy8gSGVscGVycyAtIFN0YXJ0OlxuICAgIGNvbnN0IExBQkVMdG9YID0gZDNcbiAgICAgIC5zY2FsZUJhbmQoKVxuICAgICAgLmRvbWFpbihpdGVtcy5tYXAoKGQpID0+IGQubGFiZWwpKVxuICAgICAgLnJhbmdlKFswLCB3aWR0aF0pXG4gICAgICAucGFkZGluZ0lubmVyKDAuMTcpXG4gICAgICAucGFkZGluZ091dGVyKDEpO1xuXG4gICAgY29uc3QgWHRvTEFCRUwgPSAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IGRvbWFpbiA9IExBQkVMdG9YLmRvbWFpbigpO1xuICAgICAgY29uc3QgcGFkZGluZ091dGVyID0gTEFCRUx0b1goZG9tYWluWzBdKTtcbiAgICAgIGNvbnN0IGVhY2hCYW5kID0gTEFCRUx0b1guc3RlcCgpO1xuICAgICAgY29uc3QgaW5kZXggPSBNYXRoLmZsb29yKCh2YWx1ZSAtIHBhZGRpbmdPdXRlcikgLyBlYWNoQmFuZCk7XG4gICAgICByZXR1cm4gZG9tYWluW01hdGgubWF4KDAsIE1hdGgubWluKGluZGV4LCBkb21haW4ubGVuZ3RoIC0gMSkpXTtcbiAgICB9O1xuXG4gICAgLy8gWUVBUiBTRUxFQ1RJT04gQ0lSQ0xFU1xuICAgIC8vIGxldCBzbGlkZXJzO1xuICAgIGlmIChzZXRTbGlkZXJzICYmIHRoaXMuc2xpZGVycykge1xuICAgICAgdGhpcy5zbGlkZXJzID0gc2V0U2xpZGVycy5tYXAoKGQpID0+ICh7XG4gICAgICAgIHg6IExBQkVMdG9YKGQpICsgTEFCRUx0b1guYmFuZHdpZHRoKCkgLyAyLFxuICAgICAgICB5OiBoZWlnaHQsXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2xpZGVycyA9IGQzXG4gICAgICAgIC5leHRlbnQoaXRlbXMsIChkKSA9PiBkLmxhYmVsKVxuICAgICAgICAubWFwKChkKSA9PiAoeyB4OiBMQUJFTHRvWChkKSArIExBQkVMdG9YLmJhbmR3aWR0aCgpIC8gMiwgeTogaGVpZ2h0IH0pKTtcbiAgICB9XG5cbiAgICBjb25zdCBpc0luUmFuZ2UgPSAoeSkgPT4ge1xuICAgICAgY29uc3QgYWxsSXRlbXMgPSB0aGlzLnNsaWRlcnMubWFwKChkKSA9PiBYdG9MQUJFTChkLngpKTtcbiAgICAgIGlmICh5ID49IGQzLm1pbihhbGxJdGVtcykgJiYgeSA8PSBkMy5tYXgoYWxsSXRlbXMpKSByZXR1cm4gdHJ1ZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gY29sb3VyQmFycyhkKSB7XG4gICAgICBpZiAoaXNJblJhbmdlKGQubGFiZWwpKSByZXR1cm4gJ3VybCgjZ3JhZGllbnQpJztcbiAgICAgIHJldHVybiAnI2UzZTNlMyc7XG4gICAgfVxuICAgIHRoaXMuY29sb3VyQmFycyA9IGNvbG91ckJhcnM7XG5cbiAgICB0aGlzLmdldFNlbGVjdGVkUmFuZ2UgPSAoKSA9PiB7XG4gICAgICBjb25zdCByYW5nZVN0YXJ0ID0gaXRlbXMuZmluZChcbiAgICAgICAgKGl0KSA9PiBpdC5sYWJlbCA9PT0gWHRvTEFCRUwodGhpcy5zbGlkZXJzWzBdLngpXG4gICAgICApO1xuICAgICAgY29uc3QgcmFuZ2VFbmQgPSBpdGVtcy5maW5kKFxuICAgICAgICAoaXQpID0+IGl0LmxhYmVsID09PSBYdG9MQUJFTCh0aGlzLnNsaWRlcnNbMV0ueClcbiAgICAgICk7XG4gICAgICByZXR1cm4gW1xuICAgICAgICByYW5nZVN0YXJ0LnBheWxvYWQsXG4gICAgICAgIHJhbmdlTW9kZSA/IHJhbmdlRW5kLnJhbmdlLnBheWxvYWQgOiByYW5nZUVuZC5wYXlsb2FkLFxuICAgICAgXTtcbiAgICB9O1xuICAgIC8vIEhlbHBlcnMgLSBFbmQuXG5cbiAgICAvLyBjbGVhciBIVE1MIGNvbnRlbnRzXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY29udGFpbmVySWQpLmlubmVySFRNTCA9ICcnO1xuICAgIGNvbnN0IHN2ZyA9IGQzXG4gICAgICAuc2VsZWN0KGAjJHtjb250YWluZXJJZH1gKVxuICAgICAgLmF0dHIoXG4gICAgICAgICd2aWV3Qm94JyxcbiAgICAgICAgYDAgMCAke3dpZHRoICsgbWFyZ2luLmxlZnQgKyBtYXJnaW4ucmlnaHR9ICR7aGVpZ2h0ICsgbWFyZ2luLnRvcCArIG1hcmdpbi5ib3R0b219YFxuICAgICAgKTtcbiAgICB0aGlzLnN2ZyA9IHN2ZztcblxuICAgIGNvbnN0IHNjYWxlSGVpZ2h0ID0gZDNcbiAgICAgIC5zY2FsZVN5bWxvZygpIC8vIG1vc3Qgc2ltaWxhciBzY2FsZSB0byB0aGUgb3JpZ2luYWxcbiAgICAgIC5kb21haW4oWzAsIGQzLm1heChpdGVtcywgKGQpID0+IGQudmFsdWUpXSlcbiAgICAgIC5yYW5nZShbaGVpZ2h0LCAwXSk7XG5cbiAgICAvLyBHUkFESUVOVFxuICAgIGNvbnN0IGRlZnMgPSBzdmcuYXBwZW5kKCdkZWZzJyk7IC8vIGRlZmluaXRpb25zXG4gICAgY29uc3QgZ3JhZGllbnQgPSBkZWZzXG4gICAgICAuYXBwZW5kKCdsaW5lYXJHcmFkaWVudCcpXG4gICAgICAuYXR0cignaWQnLCAnZ3JhZGllbnQnKVxuICAgICAgLmF0dHIoJ2dyYWRpZW50VW5pdHMnLCAndXNlclNwYWNlT25Vc2UnKVxuICAgICAgLmF0dHIoJ3gxJywgMClcbiAgICAgIC5hdHRyKCd5MScsIGhlaWdodClcbiAgICAgIC5hdHRyKCd4MicsIDApXG4gICAgICAuYXR0cigneTInLCBtYXJnaW4udG9wKTtcbiAgICBncmFkaWVudFxuICAgICAgLmFwcGVuZCgnc3RvcCcpXG4gICAgICAuYXR0cignY2xhc3MnLCAnc3RhcnQnKVxuICAgICAgLmF0dHIoJ29mZnNldCcsICcwJScpXG4gICAgICAuYXR0cignc3RvcC1jb2xvcicsIGNvbG91cnMuYm90dG9tKSAvLyBib3R0b20gZ3JhZGllbnRcbiAgICAgIC5hdHRyKCdzdG9wLW9wYWNpdHknLCAxKTtcbiAgICBncmFkaWVudFxuICAgICAgLmFwcGVuZCgnc3RvcCcpXG4gICAgICAuYXR0cignY2xhc3MnLCAnZW5kJylcbiAgICAgIC5hdHRyKCdvZmZzZXQnLCAnMTAwJScpXG4gICAgICAuYXR0cignc3RvcC1jb2xvcicsIGNvbG91cnMudG9wKSAvLyB0b3AgZ3JhZGllbnRcbiAgICAgIC5hdHRyKCdzdG9wLW9wYWNpdHknLCAxKTtcblxuICAgIC8vIERSQVcgSU5TSURFIE1BUkdJTlNcbiAgICBjb25zdCBnID0gc3ZnXG4gICAgICAuYXBwZW5kKCdnJylcbiAgICAgIC5hdHRyKCdjbGFzcycsICdjaGFydCcpXG4gICAgICAuYXR0cigndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgke21hcmdpbi5sZWZ0fSwke21hcmdpbi50b3B9KWApO1xuXG4gICAgY29uc3QgYmFyc0xheWVyID0gZy5hcHBlbmQoJ2cnKS5hdHRyKCdjbGFzcycsICdiYXJzJyk7XG4gICAgY29uc3QgY29udHJvbHNMYXllciA9IGcuYXBwZW5kKCdnJykuYXR0cignY2xhc3MnLCAnY29udHJvbHMnKTtcblxuICAgIC8vIEJBUiBDSEFSVFxuICAgIGJhcnNMYXllciAvLyBiYXJzXG4gICAgICAuc2VsZWN0QWxsKCdyZWN0LmJhcnMnKVxuICAgICAgLmRhdGEoaXRlbXMpXG4gICAgICAuam9pbigncmVjdCcpXG4gICAgICAuYXR0cignY2xhc3MnLCAnYmFycycpXG4gICAgICAuYXR0cignd2lkdGgnLCBMQUJFTHRvWC5iYW5kd2lkdGgpXG4gICAgICAuYXR0cignaGVpZ2h0JywgKGQpID0+IGhlaWdodCAtIHNjYWxlSGVpZ2h0KGQudmFsdWUpKVxuICAgICAgLmF0dHIoJ3knLCAoZCkgPT4gc2NhbGVIZWlnaHQoZC52YWx1ZSkpXG4gICAgICAuYXR0cigneCcsIChkKSA9PiBMQUJFTHRvWChkLmxhYmVsKSlcbiAgICAgIC5hdHRyKCdkYXRhLXN0YXJ0JywgKGQpID0+IGQucGF5bG9hZCkgLy8gbWFrZSB0aGUgZGF0YSBlYXNpbHkgYWNjZXNzaWJsZVxuICAgICAgLmF0dHIoJ2RhdGEtZW5kJywgKGQpID0+IChkLnJhbmdlID8gZC5yYW5nZS5wYXlsb2FkIDogZC5wYXlsb2FkKSlcbiAgICAgIC5hdHRyKCdmaWxsJywgJ3VybCgjZ3JhZGllbnQpJyk7XG5cbiAgICBiYXJzTGF5ZXIgLy8gY2F0Y2ggYmFyIGV2ZW50c1xuICAgICAgLm9uKCdtb3VzZW1vdmUnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgeWVhciA9IFh0b0xBQkVMKHRoaXMuZ2V0RXZlbnRDb29yZHMoZXZlbnQpLngpO1xuICAgICAgICBkMy5zZWxlY3RBbGwoJ3JlY3QuYmFycycpLmF0dHIoJ2ZpbGwnLCAoZCkgPT4ge1xuICAgICAgICAgIGlmICh5ZWFyID09PSBkLmxhYmVsKSByZXR1cm4gJyNCMENDRjgnO1xuICAgICAgICAgIHJldHVybiBjb2xvdXJCYXJzKGQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAub24oJ21vdXNlb3V0JywgKCkgPT4ge1xuICAgICAgICBkMy5zZWxlY3RBbGwoJ3JlY3QuYmFycycpLmF0dHIoJ2ZpbGwnLCAoZCkgPT4gY29sb3VyQmFycyhkKSk7XG4gICAgICB9KVxuICAgICAgLm9uKCdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBsYWJlbCA9IFh0b0xBQkVMKHRoaXMuZ2V0RXZlbnRDb29yZHMoZXZlbnQpLngpO1xuICAgICAgICBjb25zdCB4QXhpc1ZhbHVlID0gTEFCRUx0b1gobGFiZWwpICsgTEFCRUx0b1guYmFuZHdpZHRoKCkgLyAyO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHtcbiAgICAgICAgICB4OiB4QXhpc1ZhbHVlLFxuICAgICAgICAgIHk6IGhlaWdodCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zbGlkZXJzID0gW1xuICAgICAgICAgIC8vIGF2b2lkIGpvaW5pbmcgdGhlIHR3byBvYmplY3RzIVxuICAgICAgICAgIHsgLi4ubmV3VmFsdWUgfSxcbiAgICAgICAgICB7IC4uLm5ld1ZhbHVlIH0sXG4gICAgICAgIF07XG4gICAgICAgIHJhbmdlUGlja2VyXG4gICAgICAgICAgLmRhdGEodGhpcy5zbGlkZXJzKVxuICAgICAgICAgIC5zZWxlY3QoJ2NpcmNsZScpXG4gICAgICAgICAgLnRyYW5zaXRpb24oKVxuICAgICAgICAgIC5lYXNlKGQzLmVhc2VRdWFkT3V0KVxuICAgICAgICAgIC5kdXJhdGlvbig1NTApXG4gICAgICAgICAgLmF0dHIoJ2N4JywgKGQpID0+IGQueCk7XG4gICAgICAgIGNvbnRyb2xzTGF5ZXJcbiAgICAgICAgICAuc2VsZWN0KCdwYXRoLmJsdWVsaW5lJylcbiAgICAgICAgICAudHJhbnNpdGlvbigpXG4gICAgICAgICAgLmVhc2UoZDMuZWFzZVF1YWRPdXQpXG4gICAgICAgICAgLmR1cmF0aW9uKDU1MClcbiAgICAgICAgICAuYXR0cignZCcsIGQzLmxpbmUoKSh0aGlzLnNsaWRlcnMubWFwKChkKSA9PiBbZC54LCBkLnldKSkpO1xuICAgICAgICBjb250cm9sc0xheWVyXG4gICAgICAgICAgLnNlbGVjdEFsbCgndGV4dCcpXG4gICAgICAgICAgLnRyYW5zaXRpb24oKVxuICAgICAgICAgIC5lYXNlKGQzLmVhc2VRdWFkT3V0KVxuICAgICAgICAgIC5kdXJhdGlvbig1NTApXG4gICAgICAgICAgLmF0dHIoJ3gnLCAoKSA9PiB4QXhpc1ZhbHVlKVxuICAgICAgICAgIC50ZXh0KChkLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJhbmdlTW9kZSkgcmV0dXJuIGxhYmVsO1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zLmZpbmQoKGl0KSA9PiBpdC5sYWJlbCA9PT0gbGFiZWwpO1xuICAgICAgICAgICAgaWYgKGkgPiAwKSByZXR1cm4gaXRlbS5yYW5nZS5sYWJlbDtcbiAgICAgICAgICAgIHJldHVybiBpdGVtLmxhYmVsO1xuICAgICAgICAgIH0pO1xuICAgICAgICBnLnNlbGVjdEFsbCgncmVjdC5iYXJzJykuYXR0cignZmlsbCcsIChkKSA9PiBjb2xvdXJCYXJzKGQpKTtcbiAgICAgICAgdGhpcy50ZXh0Q29sbGlzaW9uKHRoaXMuc2xpZGVycyk7XG4gICAgICAgIHRoaXMuZW1pdCgncmFuZ2VzZWxlY3RlZCcsIHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpKTtcbiAgICAgIH0pO1xuXG4gICAgY29udHJvbHNMYXllciAvLyBncmF5IGxpbmVcbiAgICAgIC5hcHBlbmQoJ3BhdGgnKVxuICAgICAgLmF0dHIoJ2NsYXNzJywgJ2dyYXlsaW5lJylcbiAgICAgIC5hdHRyKFxuICAgICAgICAnZCcsXG4gICAgICAgIGQzLmxpbmUoKShbXG4gICAgICAgICAgWzAsIGhlaWdodF0sXG4gICAgICAgICAgW3dpZHRoLCBoZWlnaHRdLFxuICAgICAgICBdKVxuICAgICAgKVxuICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIDIpXG4gICAgICAuYXR0cignb3BhY2l0eScsIDEpXG4gICAgICAuYXR0cignc3Ryb2tlJywgJyNDMUM1QzcnKTtcblxuICAgIGNvbnRyb2xzTGF5ZXIgLy8gYmx1ZSBsaW5lXG4gICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgIC5hdHRyKCdjbGFzcycsICdibHVlbGluZScpXG4gICAgICAuYXR0cignZCcsIGQzLmxpbmUoKSh0aGlzLnNsaWRlcnMubWFwKChkKSA9PiBbZC54LCBkLnldKSkpXG4gICAgICAuYXR0cignc3Ryb2tlLXdpZHRoJywgMilcbiAgICAgIC5hdHRyKCdzdHJva2UnLCBjb2xvdXJzLmFjY2VudCk7XG5cbiAgICBjb25zdCByYW5nZVBpY2tlciA9IGNvbnRyb2xzTGF5ZXJcbiAgICAgIC5zZWxlY3RBbGwoJ2cucmFuZ2VwaWNrZXInKVxuICAgICAgLmRhdGEodGhpcy5zbGlkZXJzLnNvcnQoKGEsIGIpID0+IGQzLmFzY2VuZGluZyhhLngsIGIueCkpKVxuICAgICAgLmpvaW4oJ2cnKVxuICAgICAgLmF0dHIoJ2NsYXNzJywgJ3JhbmdlcGlja2VyJyk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzZWxmID0gdGhpczsgLy8gRklYTUU6IEFsbG93IHVzZSBvZiBjbGFzcyBcInRoaXNcIiBpbnNpZGUgZHJhZ2dpbmcgdXBkYXRlO1xuICAgIC8qKlxuICAgICAqIEFuaW1hdGUgdGhlIGVsZW1lbnRzIHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nIG9uZSBvZiB0aGUgcmFuZ2Ugc2VsZWN0b3JzXG4gICAgICovXG4gICAgZnVuY3Rpb24gZHJhZ2dpbmdVcGRhdGUoZXZlbnQsIGRhdGEpIHtcbiAgICAgIGNvbnN0IGxhYmVsID0gWHRvTEFCRUwoZXZlbnQueCk7XG4gICAgICBjb25zdCB4QXhpc1ZhbHVlID0gTEFCRUx0b1gobGFiZWwpICsgTEFCRUx0b1guYmFuZHdpZHRoKCkgLyAyO1xuICAgICAgY29uc3QgeWIgPSBbXTtcbiAgICAgIGcuc2VsZWN0QWxsKCdjaXJjbGUnKS5lYWNoKGZ1bmN0aW9uIHNldEJhbGxQb3NpdGlvbigpIHtcbiAgICAgICAgeWIucHVzaCh7IHg6ICtkMy5zZWxlY3QodGhpcykuYXR0cignY3gnKSwgeTogaGVpZ2h0IH0pO1xuICAgICAgfSk7XG4gICAgICBzZWxmLnNsaWRlcnMgPSB5Yi5zb3J0KChhLCBiKSA9PiBkMy5hc2NlbmRpbmcoYS54LCBiLngpKTtcbiAgICAgIC8vIG1vdmUgdGhlIGNpcmNsZVxuICAgICAgZDMuc2VsZWN0KHRoaXMpXG4gICAgICAgIC5zZWxlY3QoJ2NpcmNsZScpXG4gICAgICAgIC5hdHRyKCdjeCcsIChkYXRhLnggPSB4QXhpc1ZhbHVlKSk7XG4gICAgICAvLyBtb3ZlIHRoZSBibHVlIGxpbmVcbiAgICAgIGNvbnRyb2xzTGF5ZXJcbiAgICAgICAgLnNlbGVjdCgncGF0aC5ibHVlbGluZScpXG4gICAgICAgIC5hdHRyKCdkJywgZDMubGluZSgpKHNlbGYuc2xpZGVycy5tYXAoKGQpID0+IFtkLngsIGQueV0pKSk7XG4gICAgICAvLyBjaGFuZ2UgdGhlIHRleHQgcG9zaXRpb25cbiAgICAgIGQzLnNlbGVjdCh0aGlzKVxuICAgICAgICAuc2VsZWN0KCd0ZXh0JylcbiAgICAgICAgLmF0dHIoJ3gnLCAoKSA9PiB4QXhpc1ZhbHVlKTtcbiAgICAgIC8vIGNoYW5nZSB0aGUgdGV4dCB2YWx1ZXNcbiAgICAgIGNvbnRyb2xzTGF5ZXIuc2VsZWN0QWxsKCd0ZXh0JykudGV4dCgoZCkgPT4ge1xuICAgICAgICBjb25zdCBsID0gWHRvTEFCRUwoZC54KTtcbiAgICAgICAgaWYgKCFyYW5nZU1vZGUpIHJldHVybiBsO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHNlbGYuc2xpZGVycy5maW5kSW5kZXgoKHNsaWRlcikgPT4gc2xpZGVyLnggPT09IGQueCk7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZi5nZXRTZWxlY3RlZFJhbmdlKCk7XG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMSkgcmV0dXJuIHJhbmdlWzFdO1xuICAgICAgICByZXR1cm4gcmFuZ2VbMF07XG4gICAgICB9KTtcbiAgICAgIHNlbGYudGV4dENvbGxpc2lvbihzZWxmLnNsaWRlcnMpO1xuICAgICAgLy8gY29sb3VyIHRoZSBiYXJzXG4gICAgICBnLnNlbGVjdEFsbCgncmVjdC5iYXJzJykuYXR0cignZmlsbCcsIChkKSA9PiBjb2xvdXJCYXJzKGQpKTtcbiAgICB9XG5cbiAgICByYW5nZVBpY2tlciAvLyBkcmFnIGhhbmRsZXJcbiAgICAgIC5jYWxsKFxuICAgICAgICBkM1xuICAgICAgICAgIC5kcmFnKClcbiAgICAgICAgICAub24oJ2RyYWcnLCBkcmFnZ2luZ1VwZGF0ZSlcbiAgICAgICAgICAub24oJ2VuZCcsIChldmVudCwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgLy8gdXBkYXRlIG9uZSBsYXN0IHRpbWUgdG8gcHJldmVudCBkZXN5bmNpbmdcbiAgICAgICAgICAgIGRyYWdnaW5nVXBkYXRlKGV2ZW50LCBkYXRhKTtcbiAgICAgICAgICAgIC8vIGVtaXQgdGhlIHNlbGVjdGVkIHJhbmdlXG4gICAgICAgICAgICB0aGlzLmVtaXQoJ3Jhbmdlc2VsZWN0ZWQnLCB0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICByYW5nZVBpY2tlclxuICAgICAgLmFwcGVuZCgnY2lyY2xlJylcbiAgICAgIC5hdHRyKCdjeCcsIChkKSA9PiBkLngpXG4gICAgICAuYXR0cignY3knLCAoZCkgPT4gZC55KVxuICAgICAgLmF0dHIoJ3InLCA5KVxuICAgICAgLmF0dHIoJ2ZpbGwnLCAnd2hpdGUnKVxuICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIDIpXG4gICAgICAuYXR0cignc3Ryb2tlJywgY29sb3Vycy5hY2NlbnQpXG4gICAgICAuYXR0cignc3R5bGUnLCAnY3Vyc29yOiBwb2ludGVyJyk7XG5cbiAgICByYW5nZVBpY2tlclxuICAgICAgLmF0dHIoJ3RleHQtYW5jaG9yJywgJ21pZGRsZScpXG4gICAgICAuYXR0cignZm9udC1mYW1pbHknLCAnUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZicpXG4gICAgICAuYXR0cignZm9udC1zaXplJywgJzEycHgnKVxuICAgICAgLmFwcGVuZCgndGV4dCcpXG4gICAgICAuYXR0cigneScsIChkKSA9PiBkLnkgKyBtYXJnaW4uYm90dG9tIC8gMilcbiAgICAgIC5hdHRyKCd4JywgKGQpID0+IGQueClcbiAgICAgIC5hdHRyKCdmaWxsJywgY29sb3Vycy5hY2NlbnQpXG4gICAgICAudGV4dCgoZCwgaSkgPT4ge1xuICAgICAgICBjb25zdCBsID0gWHRvTEFCRUwoZC54KTtcbiAgICAgICAgaWYgKHJhbmdlTW9kZSAmJiBpID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubGFiZWwgPT09IGwpLnJhbmdlLmxhYmVsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsO1xuICAgICAgfSk7XG5cbiAgICBpZiAoYXhpcz8ueUF4aXM/LnNob3cpIHtcbiAgICAgIGNvbnN0IHlBeGlzID0gZDNcbiAgICAgICAgLmF4aXNMZWZ0KHNjYWxlSGVpZ2h0KVxuICAgICAgICAudGlja3MoYXhpcy55QXhpcy50aWNrQW1vdW50ID8/IDIpXG4gICAgICAgIC50aWNrVmFsdWVzKGF4aXMueUF4aXMudmFsdWVzID8gYXhpcy55QXhpcy52YWx1ZXMgOiBudWxsKTtcbiAgICAgIGNvbnN0IHlBeGlzR3JvdXAgPSBzdmdcbiAgICAgICAgLmFwcGVuZCgnZycpXG4gICAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKCR7bWFyZ2luLmxlZnR9LCAke21hcmdpbi50b3B9KWApXG4gICAgICAgIC5jYWxsKHlBeGlzKTtcblxuICAgICAgeUF4aXNHcm91cC5zZWxlY3RBbGwoJ3BhdGgsIGxpbmUnKS5zdHlsZSgnc3Ryb2tlJywgY29sb3Vycy5hY2NlbnQpO1xuICAgICAgeUF4aXNHcm91cC5zZWxlY3RBbGwoJ3RleHQnKS5zdHlsZSgnZmlsbCcsIGNvbG91cnMuYWNjZW50KTtcbiAgICB9XG4gIH07XG5cbiAgLyoqIEF2b2lkIGNvbGxpc2lvbiBvZiB0aGUgc2xpZGVyIGxhYmVscyAqL1xuICB0ZXh0Q29sbGlzaW9uID0gKHNsaWRlcnM6IFNsaWRlcnMpID0+IHtcbiAgICAvLyBwcmUtcmVxdWlzaXRlc1xuICAgIGNvbnN0IGNvbnRyb2xzTGF5ZXIgPSB0aGlzLmQzLnNlbGVjdCgnZy5jaGFydCcpLnNlbGVjdCgnZy5jb250cm9scycpO1xuICAgIGNvbnN0IHsgaXRlbXMsIG1hcmdpbiB9ID0gdGhpcy5kYXRhO1xuICAgIGNvbnN0IHJhbmdlTW9kZSA9IGl0ZW1zLmV2ZXJ5KChkKSA9PiBkLnJhbmdlKTtcbiAgICAvLyBydW4gY29sbGlzaW9uIGRldGVjdGlvblxuICAgIGNvbnN0IGlzQ29sbGlkaW5nID0gc2xpZGVyc1swXS54ID09PSBzbGlkZXJzWzFdLng7XG4gICAgaWYgKHJhbmdlTW9kZSAmJiBpc0NvbGxpZGluZykge1xuICAgICAgY29udHJvbHNMYXllclxuICAgICAgICAuc2VsZWN0QWxsKCd0ZXh0JylcbiAgICAgICAgLmF0dHIoJ3knLCAoZCwgaSkgPT5cbiAgICAgICAgICBpID4gMCA/IGQueSArIG1hcmdpbi5ib3R0b20gLyAyICsgMTIgOiBkLnkgKyBtYXJnaW4uYm90dG9tIC8gMlxuICAgICAgICApXG4gICAgICAgIC50ZXh0KChkLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmFuZ2UgPSB0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKTtcbiAgICAgICAgICByZXR1cm4gcmFuZ2VbaV07XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250cm9sc0xheWVyLnNlbGVjdEFsbCgndGV4dCcpLmF0dHIoJ3knLCAoZCkgPT4gZC55ICsgbWFyZ2luLmJvdHRvbSAvIDIpO1xuICAgIH1cbiAgfTtcblxuICAvKiogR2V0IHgtYXhpcyBwb3NpdGlvbiBmcm9tIGxhYmVsICovXG4gIGxhYmVsVG9YKCkge1xuICAgIHJldHVybiB0aGlzLmQzXG4gICAgICAuc2NhbGVCYW5kKClcbiAgICAgIC5kb21haW4odGhpcy5kYXRhLml0ZW1zLm1hcCgoZCkgPT4gZC5sYWJlbCkpXG4gICAgICAucmFuZ2UoWzAsIHRoaXMuZGF0YS53aWR0aF0pXG4gICAgICAucGFkZGluZ0lubmVyKDAuMTcpXG4gICAgICAucGFkZGluZ091dGVyKDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBldmVudCB3aXRoIHZpZXdCb3ggY29vcmRpbmF0ZXMgYW5kXG4gICAqIHBhcnNlIHRoZW0gaW4gYWJzb2x1dGUgY29vcmRpbmF0ZXNcbiAgICovXG4gIGdldEV2ZW50Q29vcmRzKGV2ZW50KTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHtcbiAgICBjb25zdCBtID0gZXZlbnQudGFyZ2V0LmdldFNjcmVlbkNUTSgpO1xuICAgIGNvbnN0IHBvaW50ID0gdGhpcy5zdmcubm9kZSgpLmNyZWF0ZVNWR1BvaW50KCk7XG4gICAgcG9pbnQueCA9IGV2ZW50LmNsaWVudFg7XG4gICAgcG9pbnQueSA9IGV2ZW50LmNsaWVudFk7XG4gICAgcmV0dXJuIHBvaW50Lm1hdHJpeFRyYW5zZm9ybShtLmludmVyc2UoKSk7XG4gIH1cblxuICAvKiogUHVibGljIGFwaSB0aGF0IGFsbG93cyB0byBkaW5hbWljYWxseSBjaGFuZ2UgdGhlIGJhcnMgKi9cbiAgc2V0QmFycyA9IChuZXdCYXJzKSA9PiB7XG4gICAgdGhpcy5kYXRhLml0ZW1zID0gbmV3QmFycztcbiAgICB0aGlzLmRyYXcoKTtcbiAgICB0aGlzLmQzLnNlbGVjdEFsbCgncmVjdC5iYXJzJykuYXR0cignZmlsbCcsIChkKSA9PiB0aGlzLmNvbG91ckJhcnMoZCkpO1xuICB9O1xuXG4gIC8qKiBQdWJsaWMgYXBpIHRoYXQgYWxsb3dzIHRvIGRpbmFtaWNhbGx5IGNoYW5nZSB0aGUgc2xpZGVyIHBvc2l0aW9uICovXG4gIHNldFNsaWRlcnMgPSAoW3N0YXJ0TGFiZWwsIGVuZExhYmVsXTogTGFiZWxDb3VwbGUsIGVtaXQgPSB0cnVlKSA9PiB7XG4gICAgLy8gc2V0U2xpZGVycyhbMTQ1MCwgMTU3NV0pXG4gICAgdGhpcy5kYXRhLnNldFNsaWRlcnMgPSBbYCR7c3RhcnRMYWJlbH1gLCBgJHtlbmRMYWJlbH1gXTtcbiAgICB0aGlzLmRyYXcoKTtcbiAgICB0aGlzLmQzLnNlbGVjdEFsbCgncmVjdC5iYXJzJykuYXR0cignZmlsbCcsIChkKSA9PiB0aGlzLmNvbG91ckJhcnMoZCkpO1xuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5nZXRTZWxlY3RlZFJhbmdlKCk7XG4gICAgaWYgKGVtaXQpIHRoaXMuZW1pdCgncmFuZ2VzZWxlY3RlZCcsIHJhbmdlKTtcbiAgICB0aGlzLnRleHRDb2xsaXNpb24odGhpcy5zbGlkZXJzKTtcbiAgICByZXR1cm4gcmFuZ2U7XG4gIH07XG5cbiAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgbG9hZGVkICovXG4gIGVtaXRMb2FkZWQocGF5bG9hZCkge1xuICAgIGlmICghdGhpcy5lbWl0KSByZXR1cm47XG4gICAgdGhpcy5lbWl0KCdsb2FkZWQnLCBwYXlsb2FkKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRhdGFcIiBjbGFzcz1cIm43LWhpc3RvZ3JhbS1yYW5nZVwiPlxuICA8c3ZnICNoaXN0b2dyYW1SYW5nZSBbaWRdPVwiZGF0YS5jb250YWluZXJJZFwiPjwvc3ZnPlxuPC9kaXY+XG4iXX0=
@@ -11,14 +11,14 @@ export const HISTOGRAM_RANGE_MOCK = {
11
11
  left: 25,
12
12
  right: 5,
13
13
  top: 10,
14
- bottom: 45
14
+ bottom: 45,
15
15
  },
16
16
  axis: {
17
17
  yAxis: {
18
18
  show: true,
19
19
  values: [0, 10, 56],
20
20
  // tickAmount: 2
21
- }
21
+ },
22
22
  },
23
23
  // setSliders: ['1200', '1250'],
24
24
  items: [
@@ -238,6 +238,6 @@ export const HISTOGRAM_RANGE_MOCK = {
238
238
  label: '1800',
239
239
  },
240
240
  },
241
- ]
241
+ ],
242
242
  };
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9ncmFtLXJhbmdlLm1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdi1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvaGlzdG9ncmFtLXJhbmdlL2hpc3RvZ3JhbS1yYW5nZS5tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUF1QjtJQUN0RCxXQUFXLEVBQUUseUJBQXlCO0lBQ3RDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEVBQUU7SUFDVixPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsU0FBUztRQUNkLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLE1BQU0sRUFBRSxTQUFTO0tBQ2xCO0lBQ0QsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsQ0FBQztRQUNSLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELElBQUksRUFBRTtRQUNKLEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxJQUFJO1lBQ1YsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbkIsZ0JBQWdCO1NBQ2pCO0tBQ0Y7SUFDRCxnQ0FBZ0M7SUFDaEMsS0FBSyxFQUFFO1FBQ0w7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGlzdG9ncmFtUmFuZ2VEYXRhIH0gZnJvbSAnLi9oaXN0b2dyYW0tcmFuZ2UnO1xuXG5leHBvcnQgY29uc3QgSElTVE9HUkFNX1JBTkdFX01PQ0s6IEhpc3RvZ3JhbVJhbmdlRGF0YSA9IHtcbiAgY29udGFpbmVySWQ6ICdjb250YWluZXItZm9yLWhpc3RvZ3JhbScsXG4gIHdpZHRoOiA0MDAsXG4gIGhlaWdodDogNTAsXG4gIGNvbG91cnM6IHtcbiAgICB0b3A6ICcjNzA5MUIzJyxcbiAgICBib3R0b206ICcjOTZjMmYyJyxcbiAgICBhY2NlbnQ6ICcjMkY1MjhCJyxcbiAgfSxcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogMjUsXG4gICAgcmlnaHQ6IDUsXG4gICAgdG9wOiAxMCxcbiAgICBib3R0b206IDQ1XG4gIH0sXG4gIGF4aXM6IHtcbiAgICB5QXhpczoge1xuICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgIHZhbHVlczogWzAsIDEwLCA1Nl0sXG4gICAgICAvLyB0aWNrQW1vdW50OiAyXG4gICAgfVxuICB9LFxuICAvLyBzZXRTbGlkZXJzOiBbJzEyMDAnLCAnMTI1MCddLFxuICBpdGVtczogW1xuICAgIHtcbiAgICAgIGxhYmVsOiAnMTIwMCcsXG4gICAgICB2YWx1ZTogMSxcbiAgICAgIHBheWxvYWQ6IDEyMDAsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxMjI1LFxuICAgICAgICBsYWJlbDogJzEyMjUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTIyNScsXG4gICAgICB2YWx1ZTogMCxcbiAgICAgIHBheWxvYWQ6IDEyMjUsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxMjUwLFxuICAgICAgICBsYWJlbDogJzEyNTAnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTI1MCcsXG4gICAgICB2YWx1ZTogMixcbiAgICAgIHBheWxvYWQ6IDEyNTAsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxMjc1LFxuICAgICAgICBsYWJlbDogJzEyNzUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTI3NScsXG4gICAgICB2YWx1ZTogMixcbiAgICAgIHBheWxvYWQ6IDEyNzUsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxMzAwLFxuICAgICAgICBsYWJlbDogJzEzMDAnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTMwMCcsXG4gICAgICB2YWx1ZTogNixcbiAgICAgIHBheWxvYWQ6IDEzMDAsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxMzI1LFxuICAgICAgICBsYWJlbDogJzEzMjUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTMyNScsXG4gICAgICB2YWx1ZTogNSxcbiAgICAgIHBheWxvYWQ6IDEzMjUsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxMzUwLFxuICAgICAgICBsYWJlbDogJzEzNTAnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTM1MCcsXG4gICAgICB2YWx1ZTogMTAsXG4gICAgICBwYXlsb2FkOiAxMzUwLFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTM3NSxcbiAgICAgICAgbGFiZWw6ICcxMzc1JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzEzNzUnLFxuICAgICAgdmFsdWU6IDYsXG4gICAgICBwYXlsb2FkOiAxMzc1LFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTQwMCxcbiAgICAgICAgbGFiZWw6ICcxNDAwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE0MDAnLFxuICAgICAgdmFsdWU6IDEwLFxuICAgICAgcGF5bG9hZDogMTQwMCxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE0MjUsXG4gICAgICAgIGxhYmVsOiAnMTQyNScsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNDI1JyxcbiAgICAgIHZhbHVlOiAxMSxcbiAgICAgIHBheWxvYWQ6IDE0MjUsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNDUwLFxuICAgICAgICBsYWJlbDogJzE0NTAnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTQ1MCcsXG4gICAgICB2YWx1ZTogMTgsXG4gICAgICBwYXlsb2FkOiAxNDUwLFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTQ3NSxcbiAgICAgICAgbGFiZWw6ICcxNDc1JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE0NzUnLFxuICAgICAgdmFsdWU6IDMyLFxuICAgICAgcGF5bG9hZDogMTQ3NSxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE1MDAsXG4gICAgICAgIGxhYmVsOiAnMTUwMCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNTAwJyxcbiAgICAgIHZhbHVlOiAyOSxcbiAgICAgIHBheWxvYWQ6IDE1MDAsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNTI1LFxuICAgICAgICBsYWJlbDogJzE1MjUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTUyNScsXG4gICAgICB2YWx1ZTogMjYsXG4gICAgICBwYXlsb2FkOiAxNTI1LFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTU1MCxcbiAgICAgICAgbGFiZWw6ICcxNTUwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE1NTAnLFxuICAgICAgdmFsdWU6IDI1LFxuICAgICAgcGF5bG9hZDogMTU1MCxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE1NzUsXG4gICAgICAgIGxhYmVsOiAnMTU3NScsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNTc1JyxcbiAgICAgIHZhbHVlOiA1NixcbiAgICAgIHBheWxvYWQ6IDE1NzUsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNjAwLFxuICAgICAgICBsYWJlbDogJzE2MDAnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTYwMCcsXG4gICAgICB2YWx1ZTogMjcsXG4gICAgICBwYXlsb2FkOiAxNjAwLFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTYyNSxcbiAgICAgICAgbGFiZWw6ICcxNjI1JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE2MjUnLFxuICAgICAgdmFsdWU6IDIwLFxuICAgICAgcGF5bG9hZDogMTYyNSxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE2NTAsXG4gICAgICAgIGxhYmVsOiAnMTY1MCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNjUwJyxcbiAgICAgIHZhbHVlOiAxNSxcbiAgICAgIHBheWxvYWQ6IDE2NTAsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNjc1LFxuICAgICAgICBsYWJlbDogJzE2NzUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTY3NScsXG4gICAgICB2YWx1ZTogMTcsXG4gICAgICBwYXlsb2FkOiAxNjc1LFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTcwMCxcbiAgICAgICAgbGFiZWw6ICcxNzAwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE3MDAnLFxuICAgICAgdmFsdWU6IDEzLFxuICAgICAgcGF5bG9hZDogMTcwMCxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE3MjUsXG4gICAgICAgIGxhYmVsOiAnMTcyNScsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNzI1JyxcbiAgICAgIHZhbHVlOiAyMSxcbiAgICAgIHBheWxvYWQ6IDE3MjUsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNzUwLFxuICAgICAgICBsYWJlbDogJzE3NTAnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTc1MCcsXG4gICAgICB2YWx1ZTogMzMsXG4gICAgICBwYXlsb2FkOiAxNzUwLFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTc3NSxcbiAgICAgICAgbGFiZWw6ICcxNzc1JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE3NzUnLFxuICAgICAgdmFsdWU6IDM4LFxuICAgICAgcGF5bG9hZDogMTc3NSxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE4MDAsXG4gICAgICAgIGxhYmVsOiAnMTgwMCcsXG4gICAgICB9LFxuICAgIH0sXG4gIF1cbn07XG4iXX0=
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9ncmFtLXJhbmdlLm1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdi1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvaGlzdG9ncmFtLXJhbmdlL2hpc3RvZ3JhbS1yYW5nZS5tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUF1QjtJQUN0RCxXQUFXLEVBQUUseUJBQXlCO0lBQ3RDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEVBQUU7SUFDVixPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsU0FBUztRQUNkLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLE1BQU0sRUFBRSxTQUFTO0tBQ2xCO0lBQ0QsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsQ0FBQztRQUNSLEdBQUcsRUFBRSxFQUFFO1FBQ1AsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELElBQUksRUFBRTtRQUNKLEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxJQUFJO1lBQ1YsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbkIsZ0JBQWdCO1NBQ2pCO0tBQ0Y7SUFDRCxnQ0FBZ0M7SUFDaEMsS0FBSyxFQUFFO1FBQ0w7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLE1BQU07YUFDZDtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGlzdG9ncmFtUmFuZ2VEYXRhIH0gZnJvbSAnLi9oaXN0b2dyYW0tcmFuZ2UnO1xuXG5leHBvcnQgY29uc3QgSElTVE9HUkFNX1JBTkdFX01PQ0s6IEhpc3RvZ3JhbVJhbmdlRGF0YSA9IHtcbiAgY29udGFpbmVySWQ6ICdjb250YWluZXItZm9yLWhpc3RvZ3JhbScsXG4gIHdpZHRoOiA0MDAsXG4gIGhlaWdodDogNTAsXG4gIGNvbG91cnM6IHtcbiAgICB0b3A6ICcjNzA5MUIzJyxcbiAgICBib3R0b206ICcjOTZjMmYyJyxcbiAgICBhY2NlbnQ6ICcjMkY1MjhCJyxcbiAgfSxcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogMjUsXG4gICAgcmlnaHQ6IDUsXG4gICAgdG9wOiAxMCxcbiAgICBib3R0b206IDQ1LFxuICB9LFxuICBheGlzOiB7XG4gICAgeUF4aXM6IHtcbiAgICAgIHNob3c6IHRydWUsXG4gICAgICB2YWx1ZXM6IFswLCAxMCwgNTZdLFxuICAgICAgLy8gdGlja0Ftb3VudDogMlxuICAgIH0sXG4gIH0sXG4gIC8vIHNldFNsaWRlcnM6IFsnMTIwMCcsICcxMjUwJ10sXG4gIGl0ZW1zOiBbXG4gICAge1xuICAgICAgbGFiZWw6ICcxMjAwJyxcbiAgICAgIHZhbHVlOiAxLFxuICAgICAgcGF5bG9hZDogMTIwMCxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDEyMjUsXG4gICAgICAgIGxhYmVsOiAnMTIyNScsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxMjI1JyxcbiAgICAgIHZhbHVlOiAwLFxuICAgICAgcGF5bG9hZDogMTIyNSxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDEyNTAsXG4gICAgICAgIGxhYmVsOiAnMTI1MCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxMjUwJyxcbiAgICAgIHZhbHVlOiAyLFxuICAgICAgcGF5bG9hZDogMTI1MCxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDEyNzUsXG4gICAgICAgIGxhYmVsOiAnMTI3NScsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxMjc1JyxcbiAgICAgIHZhbHVlOiAyLFxuICAgICAgcGF5bG9hZDogMTI3NSxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDEzMDAsXG4gICAgICAgIGxhYmVsOiAnMTMwMCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxMzAwJyxcbiAgICAgIHZhbHVlOiA2LFxuICAgICAgcGF5bG9hZDogMTMwMCxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDEzMjUsXG4gICAgICAgIGxhYmVsOiAnMTMyNScsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxMzI1JyxcbiAgICAgIHZhbHVlOiA1LFxuICAgICAgcGF5bG9hZDogMTMyNSxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDEzNTAsXG4gICAgICAgIGxhYmVsOiAnMTM1MCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxMzUwJyxcbiAgICAgIHZhbHVlOiAxMCxcbiAgICAgIHBheWxvYWQ6IDEzNTAsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxMzc1LFxuICAgICAgICBsYWJlbDogJzEzNzUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTM3NScsXG4gICAgICB2YWx1ZTogNixcbiAgICAgIHBheWxvYWQ6IDEzNzUsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNDAwLFxuICAgICAgICBsYWJlbDogJzE0MDAnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTQwMCcsXG4gICAgICB2YWx1ZTogMTAsXG4gICAgICBwYXlsb2FkOiAxNDAwLFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTQyNSxcbiAgICAgICAgbGFiZWw6ICcxNDI1JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE0MjUnLFxuICAgICAgdmFsdWU6IDExLFxuICAgICAgcGF5bG9hZDogMTQyNSxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE0NTAsXG4gICAgICAgIGxhYmVsOiAnMTQ1MCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNDUwJyxcbiAgICAgIHZhbHVlOiAxOCxcbiAgICAgIHBheWxvYWQ6IDE0NTAsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNDc1LFxuICAgICAgICBsYWJlbDogJzE0NzUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTQ3NScsXG4gICAgICB2YWx1ZTogMzIsXG4gICAgICBwYXlsb2FkOiAxNDc1LFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTUwMCxcbiAgICAgICAgbGFiZWw6ICcxNTAwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE1MDAnLFxuICAgICAgdmFsdWU6IDI5LFxuICAgICAgcGF5bG9hZDogMTUwMCxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE1MjUsXG4gICAgICAgIGxhYmVsOiAnMTUyNScsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNTI1JyxcbiAgICAgIHZhbHVlOiAyNixcbiAgICAgIHBheWxvYWQ6IDE1MjUsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNTUwLFxuICAgICAgICBsYWJlbDogJzE1NTAnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTU1MCcsXG4gICAgICB2YWx1ZTogMjUsXG4gICAgICBwYXlsb2FkOiAxNTUwLFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTU3NSxcbiAgICAgICAgbGFiZWw6ICcxNTc1JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE1NzUnLFxuICAgICAgdmFsdWU6IDU2LFxuICAgICAgcGF5bG9hZDogMTU3NSxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE2MDAsXG4gICAgICAgIGxhYmVsOiAnMTYwMCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNjAwJyxcbiAgICAgIHZhbHVlOiAyNyxcbiAgICAgIHBheWxvYWQ6IDE2MDAsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNjI1LFxuICAgICAgICBsYWJlbDogJzE2MjUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTYyNScsXG4gICAgICB2YWx1ZTogMjAsXG4gICAgICBwYXlsb2FkOiAxNjI1LFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTY1MCxcbiAgICAgICAgbGFiZWw6ICcxNjUwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE2NTAnLFxuICAgICAgdmFsdWU6IDE1LFxuICAgICAgcGF5bG9hZDogMTY1MCxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE2NzUsXG4gICAgICAgIGxhYmVsOiAnMTY3NScsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNjc1JyxcbiAgICAgIHZhbHVlOiAxNyxcbiAgICAgIHBheWxvYWQ6IDE2NzUsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNzAwLFxuICAgICAgICBsYWJlbDogJzE3MDAnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTcwMCcsXG4gICAgICB2YWx1ZTogMTMsXG4gICAgICBwYXlsb2FkOiAxNzAwLFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTcyNSxcbiAgICAgICAgbGFiZWw6ICcxNzI1JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJzE3MjUnLFxuICAgICAgdmFsdWU6IDIxLFxuICAgICAgcGF5bG9hZDogMTcyNSxcbiAgICAgIHJhbmdlOiB7XG4gICAgICAgIHBheWxvYWQ6IDE3NTAsXG4gICAgICAgIGxhYmVsOiAnMTc1MCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICcxNzUwJyxcbiAgICAgIHZhbHVlOiAzMyxcbiAgICAgIHBheWxvYWQ6IDE3NTAsXG4gICAgICByYW5nZToge1xuICAgICAgICBwYXlsb2FkOiAxNzc1LFxuICAgICAgICBsYWJlbDogJzE3NzUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnMTc3NScsXG4gICAgICB2YWx1ZTogMzgsXG4gICAgICBwYXlsb2FkOiAxNzc1LFxuICAgICAgcmFuZ2U6IHtcbiAgICAgICAgcGF5bG9hZDogMTgwMCxcbiAgICAgICAgbGFiZWw6ICcxODAwJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn07XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class IconComponent {
5
+ onClick(value) {
6
+ if (!this.emit)
7
+ return;
8
+ this.emit('click', value);
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: IconComponent, selector: "n7-icon", inputs: { data: "data", emit: "emit" }, ngImport: i0, template: "<ng-container *ngIf=\"data as icon\">\n <span\n class=\"n7-icon\"\n *ngIf=\"icon.id\"\n [ngClass]=\"icon.id\"\n [ngStyle]=\"icon.style\"\n (click)=\"onClick(icon.payload)\"\n >\n </span>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: IconComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'n7-icon', template: "<ng-container *ngIf=\"data as icon\">\n <span\n class=\"n7-icon\"\n *ngIf=\"icon.id\"\n [ngClass]=\"icon.id\"\n [ngStyle]=\"icon.style\"\n (click)=\"onClick(icon.payload)\"\n >\n </span>\n</ng-container>\n" }]
16
+ }], propDecorators: { data: [{
17
+ type: Input
18
+ }], emit: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R2LWNvbXBvbmVudHMtbGliL3NyYy9saWIvY29tcG9uZW50cy9pY29uL2ljb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdi1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9qRCxNQUFNLE9BQU8sYUFBYTtJQUt4QixPQUFPLENBQUMsS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0FSVSxhQUFhO2tHQUFiLGFBQWEsdUZDUDFCLGlPQVVBOzsyRkRIYSxhQUFhO2tCQUp6QixTQUFTOytCQUNFLFNBQVM7OEJBSVYsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9zaGFyZWQtaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ243LWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgSWNvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRhdGE6IEljb247XG5cbiAgQElucHV0KCkgZW1pdDogKHR5cGU6IHN0cmluZywgcGF5bG9hZD86IHVua25vd24pID0+IHZvaWQ7XG5cbiAgb25DbGljayh2YWx1ZSkge1xuICAgIGlmICghdGhpcy5lbWl0KSByZXR1cm47XG4gICAgdGhpcy5lbWl0KCdjbGljaycsIHZhbHVlKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEgYXMgaWNvblwiPlxuICA8c3BhblxuICAgIGNsYXNzPVwibjctaWNvblwiXG4gICAgKm5nSWY9XCJpY29uLmlkXCJcbiAgICBbbmdDbGFzc109XCJpY29uLmlkXCJcbiAgICBbbmdTdHlsZV09XCJpY29uLnN0eWxlXCJcbiAgICAoY2xpY2spPVwib25DbGljayhpY29uLnBheWxvYWQpXCJcbiAgPlxuICA8L3NwYW4+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -3,6 +3,6 @@ export const ICON_MOCK = {
3
3
  payload: 'bell-click',
4
4
  style: {
5
5
  color: 'tomato',
6
- }
6
+ },
7
7
  };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHYtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBUztJQUM3QixFQUFFLEVBQUUsY0FBYztJQUNsQixPQUFPLEVBQUUsWUFBWTtJQUNyQixLQUFLLEVBQUU7UUFDTCxLQUFLLEVBQUUsUUFBUTtLQUNoQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vc2hhcmVkLWludGVyZmFjZXMnO1xuXG5leHBvcnQgY29uc3QgSUNPTl9NT0NLOiBJY29uID0ge1xuICBpZDogJ243LWljb24tYmVsbCcsXG4gIHBheWxvYWQ6ICdiZWxsLWNsaWNrJyxcbiAgc3R5bGU6IHtcbiAgICBjb2xvcjogJ3RvbWF0bycsXG4gIH1cbn07XG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHYtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBUztJQUM3QixFQUFFLEVBQUUsY0FBYztJQUNsQixPQUFPLEVBQUUsWUFBWTtJQUNyQixLQUFLLEVBQUU7UUFDTCxLQUFLLEVBQUUsUUFBUTtLQUNoQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vc2hhcmVkLWludGVyZmFjZXMnO1xuXG5leHBvcnQgY29uc3QgSUNPTl9NT0NLOiBJY29uID0ge1xuICBpZDogJ243LWljb24tYmVsbCcsXG4gIHBheWxvYWQ6ICdiZWxsLWNsaWNrJyxcbiAgc3R5bGU6IHtcbiAgICBjb2xvcjogJ3RvbWF0bycsXG4gIH0sXG59O1xuIl19