@carbon/charts 0.41.20 → 0.41.24

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 (417) hide show
  1. package/CHANGELOG.md +28 -46
  2. package/axis-chart.d.ts +4 -4
  3. package/axis-chart.js +46 -46
  4. package/axis-chart.js.map +1 -1
  5. package/build/demo/create-codesandbox.d.ts +42 -42
  6. package/build/demo/data/bar.d.ts +2 -2
  7. package/build/demo/data/index.d.ts +13 -13
  8. package/build/demo/data/line.d.ts +4 -4
  9. package/build/demo/data/meter.d.ts +1 -1
  10. package/build/src/axis-chart.d.ts +4 -4
  11. package/build/src/chart.d.ts +3 -3
  12. package/build/src/charts/area-stacked.d.ts +2 -2
  13. package/build/src/charts/area.d.ts +2 -2
  14. package/build/src/charts/bar-grouped.d.ts +2 -2
  15. package/build/src/charts/bar-simple.d.ts +2 -2
  16. package/build/src/charts/bar-stacked.d.ts +2 -2
  17. package/build/src/charts/bubble.d.ts +2 -2
  18. package/build/src/charts/combo.d.ts +2 -2
  19. package/build/src/charts/donut.d.ts +2 -2
  20. package/build/src/charts/gauge.d.ts +3 -3
  21. package/build/src/charts/index.d.ts +16 -16
  22. package/build/src/charts/line.d.ts +2 -2
  23. package/build/src/charts/lollipop.d.ts +2 -2
  24. package/build/src/charts/meter.d.ts +3 -3
  25. package/build/src/charts/pie.d.ts +3 -3
  26. package/build/src/charts/radar.d.ts +2 -2
  27. package/build/src/charts/scatter.d.ts +2 -2
  28. package/build/src/charts/treemap.d.ts +2 -2
  29. package/build/src/components/axes/axis.d.ts +3 -3
  30. package/build/src/components/axes/chart-clip.d.ts +2 -2
  31. package/build/src/components/axes/grid-brush.d.ts +1 -1
  32. package/build/src/components/axes/grid.d.ts +1 -1
  33. package/build/src/components/axes/ruler-stacked.d.ts +1 -1
  34. package/build/src/components/axes/ruler.d.ts +2 -2
  35. package/build/src/components/axes/toolbar.d.ts +2 -2
  36. package/build/src/components/axes/two-dimensional-axes.d.ts +2 -2
  37. package/build/src/components/axes/zero-line.d.ts +1 -1
  38. package/build/src/components/axes/zoom-bar.d.ts +2 -2
  39. package/build/src/components/component.d.ts +1 -1
  40. package/build/src/components/essentials/legend.d.ts +1 -1
  41. package/build/src/components/essentials/threshold.d.ts +3 -3
  42. package/build/src/components/essentials/title-meter.d.ts +1 -1
  43. package/build/src/components/essentials/title.d.ts +1 -1
  44. package/build/src/components/essentials/tooltip-axis.d.ts +1 -1
  45. package/build/src/components/essentials/tooltip.d.ts +3 -3
  46. package/build/src/components/graphs/area-stacked.d.ts +1 -1
  47. package/build/src/components/graphs/area.d.ts +1 -1
  48. package/build/src/components/graphs/bar-grouped.d.ts +2 -2
  49. package/build/src/components/graphs/bar-simple.d.ts +1 -1
  50. package/build/src/components/graphs/bar-stacked.d.ts +1 -1
  51. package/build/src/components/graphs/bar.d.ts +1 -1
  52. package/build/src/components/graphs/bubble.d.ts +2 -2
  53. package/build/src/components/graphs/donut.d.ts +1 -1
  54. package/build/src/components/graphs/gauge.d.ts +1 -1
  55. package/build/src/components/graphs/line.d.ts +1 -1
  56. package/build/src/components/graphs/lollipop.d.ts +1 -1
  57. package/build/src/components/graphs/meter.d.ts +1 -1
  58. package/build/src/components/graphs/pie.d.ts +1 -1
  59. package/build/src/components/graphs/radar.d.ts +1 -1
  60. package/build/src/components/graphs/scatter-stacked.d.ts +1 -1
  61. package/build/src/components/graphs/scatter.d.ts +2 -2
  62. package/build/src/components/graphs/skeleton-lines.d.ts +1 -1
  63. package/build/src/components/graphs/skeleton.d.ts +1 -1
  64. package/build/src/components/graphs/treemap.d.ts +1 -1
  65. package/build/src/components/index.d.ts +36 -36
  66. package/build/src/components/layout/layout.d.ts +3 -3
  67. package/build/src/components/layout/spacer.d.ts +1 -1
  68. package/build/src/configuration-non-customizable.d.ts +7 -7
  69. package/build/src/configuration.d.ts +2 -2
  70. package/build/src/interfaces/axis-scales.d.ts +7 -7
  71. package/build/src/interfaces/charts.d.ts +11 -4
  72. package/build/src/interfaces/components.d.ts +3 -3
  73. package/build/src/interfaces/enums.d.ts +1 -1
  74. package/build/src/interfaces/index.d.ts +7 -7
  75. package/build/src/interfaces/layout.d.ts +1 -1
  76. package/build/src/interfaces/model.d.ts +1 -1
  77. package/build/src/model-cartesian-charts.d.ts +1 -1
  78. package/build/src/model-gauge.d.ts +1 -1
  79. package/build/src/model-meter.d.ts +1 -1
  80. package/build/src/model-pie.d.ts +1 -1
  81. package/build/src/model.d.ts +1 -9
  82. package/build/src/services/angle-utils.d.ts +1 -1
  83. package/build/src/services/curves.d.ts +2 -2
  84. package/build/src/services/essentials/dom-utils.d.ts +2 -2
  85. package/build/src/services/essentials/events.d.ts +1 -1
  86. package/build/src/services/essentials/gradient-utils.d.ts +1 -1
  87. package/build/src/services/essentials/transitions.d.ts +2 -2
  88. package/build/src/services/index.d.ts +7 -7
  89. package/build/src/services/scales-cartesian.d.ts +2 -2
  90. package/build/src/services/service.d.ts +1 -1
  91. package/build/src/services/time-series.d.ts +1 -1
  92. package/build/src/services/zoom.d.ts +2 -2
  93. package/build/src/tools.d.ts +2 -2
  94. package/build/stories/all.stories.d.ts +1 -1
  95. package/build/stories/tutorials/index.d.ts +11 -11
  96. package/build/stories/tutorials.stories.d.ts +1 -1
  97. package/bundle.js +1 -1
  98. package/chart.d.ts +3 -3
  99. package/chart.js +35 -35
  100. package/chart.js.map +1 -1
  101. package/charts/area-stacked.d.ts +2 -2
  102. package/charts/area-stacked.js +8 -8
  103. package/charts/area-stacked.js.map +1 -1
  104. package/charts/area.d.ts +2 -2
  105. package/charts/area.js +8 -8
  106. package/charts/area.js.map +1 -1
  107. package/charts/bar-grouped.d.ts +2 -2
  108. package/charts/bar-grouped.js +7 -7
  109. package/charts/bar-grouped.js.map +1 -1
  110. package/charts/bar-simple.d.ts +2 -2
  111. package/charts/bar-simple.js +7 -7
  112. package/charts/bar-simple.js.map +1 -1
  113. package/charts/bar-stacked.d.ts +2 -2
  114. package/charts/bar-stacked.js +7 -7
  115. package/charts/bar-stacked.js.map +1 -1
  116. package/charts/bubble.d.ts +2 -2
  117. package/charts/bubble.js +7 -7
  118. package/charts/bubble.js.map +1 -1
  119. package/charts/combo.d.ts +2 -2
  120. package/charts/combo.js +12 -12
  121. package/charts/combo.js.map +1 -1
  122. package/charts/donut.d.ts +2 -2
  123. package/charts/donut.js +7 -7
  124. package/charts/donut.js.map +1 -1
  125. package/charts/gauge.d.ts +3 -3
  126. package/charts/gauge.js +5 -5
  127. package/charts/gauge.js.map +1 -1
  128. package/charts/index.d.ts +16 -16
  129. package/charts/index.js +16 -16
  130. package/charts/index.js.map +1 -1
  131. package/charts/line.d.ts +2 -2
  132. package/charts/line.js +5 -5
  133. package/charts/line.js.map +1 -1
  134. package/charts/lollipop.d.ts +2 -2
  135. package/charts/lollipop.js +7 -7
  136. package/charts/lollipop.js.map +1 -1
  137. package/charts/meter.d.ts +3 -3
  138. package/charts/meter.js +18 -18
  139. package/charts/meter.js.map +1 -1
  140. package/charts/pie.d.ts +3 -3
  141. package/charts/pie.js +8 -8
  142. package/charts/pie.js.map +1 -1
  143. package/charts/radar.d.ts +2 -2
  144. package/charts/radar.js +5 -5
  145. package/charts/radar.js.map +1 -1
  146. package/charts/scatter.d.ts +2 -2
  147. package/charts/scatter.js +7 -7
  148. package/charts/scatter.js.map +1 -1
  149. package/charts/treemap.d.ts +2 -2
  150. package/charts/treemap.js +4 -4
  151. package/charts/treemap.js.map +1 -1
  152. package/components/axes/axis.d.ts +3 -3
  153. package/components/axes/axis.js +98 -98
  154. package/components/axes/axis.js.map +1 -1
  155. package/components/axes/chart-clip.d.ts +2 -2
  156. package/components/axes/chart-clip.js +9 -9
  157. package/components/axes/chart-clip.js.map +1 -1
  158. package/components/axes/grid-brush.d.ts +1 -1
  159. package/components/axes/grid-brush.js +32 -32
  160. package/components/axes/grid-brush.js.map +1 -1
  161. package/components/axes/grid.d.ts +1 -1
  162. package/components/axes/grid.js +34 -34
  163. package/components/axes/grid.js.map +1 -1
  164. package/components/axes/ruler-stacked.d.ts +1 -1
  165. package/components/axes/ruler-stacked.js +5 -5
  166. package/components/axes/ruler-stacked.js.map +1 -1
  167. package/components/axes/ruler.d.ts +2 -2
  168. package/components/axes/ruler.js +36 -36
  169. package/components/axes/ruler.js.map +1 -1
  170. package/components/axes/toolbar.d.ts +2 -2
  171. package/components/axes/toolbar.js +85 -85
  172. package/components/axes/toolbar.js.map +1 -1
  173. package/components/axes/two-dimensional-axes.d.ts +2 -2
  174. package/components/axes/two-dimensional-axes.js +13 -13
  175. package/components/axes/two-dimensional-axes.js.map +1 -1
  176. package/components/axes/zero-line.d.ts +1 -1
  177. package/components/axes/zero-line.js +12 -12
  178. package/components/axes/zero-line.js.map +1 -1
  179. package/components/axes/zoom-bar.d.ts +2 -2
  180. package/components/axes/zoom-bar.js +114 -114
  181. package/components/axes/zoom-bar.js.map +1 -1
  182. package/components/component.d.ts +1 -1
  183. package/components/component.js +13 -13
  184. package/components/component.js.map +1 -1
  185. package/components/essentials/legend.d.ts +1 -1
  186. package/components/essentials/legend.js +95 -92
  187. package/components/essentials/legend.js.map +1 -1
  188. package/components/essentials/threshold.d.ts +3 -3
  189. package/components/essentials/threshold.js +39 -39
  190. package/components/essentials/threshold.js.map +1 -1
  191. package/components/essentials/title-meter.d.ts +1 -1
  192. package/components/essentials/title-meter.js +42 -42
  193. package/components/essentials/title-meter.js.map +1 -1
  194. package/components/essentials/title.d.ts +1 -1
  195. package/components/essentials/title.js +19 -19
  196. package/components/essentials/title.js.map +1 -1
  197. package/components/essentials/tooltip-axis.d.ts +1 -1
  198. package/components/essentials/tooltip-axis.js +23 -23
  199. package/components/essentials/tooltip-axis.js.map +1 -1
  200. package/components/essentials/tooltip.d.ts +3 -3
  201. package/components/essentials/tooltip.js +31 -31
  202. package/components/essentials/tooltip.js.map +1 -1
  203. package/components/graphs/area-stacked.d.ts +1 -1
  204. package/components/graphs/area-stacked.js +28 -29
  205. package/components/graphs/area-stacked.js.map +1 -1
  206. package/components/graphs/area.d.ts +1 -1
  207. package/components/graphs/area.js +62 -57
  208. package/components/graphs/area.js.map +1 -1
  209. package/components/graphs/bar-grouped.d.ts +2 -2
  210. package/components/graphs/bar-grouped.js +56 -56
  211. package/components/graphs/bar-grouped.js.map +1 -1
  212. package/components/graphs/bar-simple.d.ts +1 -1
  213. package/components/graphs/bar-simple.js +45 -45
  214. package/components/graphs/bar-simple.js.map +1 -1
  215. package/components/graphs/bar-stacked.d.ts +1 -1
  216. package/components/graphs/bar-stacked.js +50 -51
  217. package/components/graphs/bar-stacked.js.map +1 -1
  218. package/components/graphs/bar.d.ts +1 -1
  219. package/components/graphs/bar.js +4 -4
  220. package/components/graphs/bar.js.map +1 -1
  221. package/components/graphs/bubble.d.ts +2 -2
  222. package/components/graphs/bubble.js +19 -19
  223. package/components/graphs/bubble.js.map +1 -1
  224. package/components/graphs/donut.d.ts +1 -1
  225. package/components/graphs/donut.js +20 -20
  226. package/components/graphs/donut.js.map +1 -1
  227. package/components/graphs/gauge.d.ts +1 -1
  228. package/components/graphs/gauge.js +89 -87
  229. package/components/graphs/gauge.js.map +1 -1
  230. package/components/graphs/line.d.ts +1 -1
  231. package/components/graphs/line.js +33 -33
  232. package/components/graphs/line.js.map +1 -1
  233. package/components/graphs/lollipop.d.ts +1 -1
  234. package/components/graphs/lollipop.js +32 -32
  235. package/components/graphs/lollipop.js.map +1 -1
  236. package/components/graphs/meter.d.ts +1 -1
  237. package/components/graphs/meter.js +39 -39
  238. package/components/graphs/meter.js.map +1 -1
  239. package/components/graphs/pie.d.ts +1 -1
  240. package/components/graphs/pie.js +102 -100
  241. package/components/graphs/pie.js.map +1 -1
  242. package/components/graphs/radar.d.ts +1 -1
  243. package/components/graphs/radar.js +180 -180
  244. package/components/graphs/radar.js.map +1 -1
  245. package/components/graphs/scatter-stacked.d.ts +1 -1
  246. package/components/graphs/scatter-stacked.js +22 -22
  247. package/components/graphs/scatter-stacked.js.map +1 -1
  248. package/components/graphs/scatter.d.ts +2 -2
  249. package/components/graphs/scatter.js +67 -66
  250. package/components/graphs/scatter.js.map +1 -1
  251. package/components/graphs/skeleton-lines.d.ts +1 -1
  252. package/components/graphs/skeleton-lines.js +27 -27
  253. package/components/graphs/skeleton-lines.js.map +1 -1
  254. package/components/graphs/skeleton.d.ts +1 -1
  255. package/components/graphs/skeleton.js +85 -85
  256. package/components/graphs/skeleton.js.map +1 -1
  257. package/components/graphs/treemap.d.ts +1 -1
  258. package/components/graphs/treemap.js +82 -82
  259. package/components/graphs/treemap.js.map +1 -1
  260. package/components/index.d.ts +36 -36
  261. package/components/index.js +36 -36
  262. package/components/index.js.map +1 -1
  263. package/components/layout/layout.d.ts +3 -3
  264. package/components/layout/layout.js +28 -28
  265. package/components/layout/layout.js.map +1 -1
  266. package/components/layout/spacer.d.ts +1 -1
  267. package/components/layout/spacer.js +10 -10
  268. package/components/layout/spacer.js.map +1 -1
  269. package/configuration-non-customizable.d.ts +7 -7
  270. package/configuration-non-customizable.js +37 -37
  271. package/configuration-non-customizable.js.map +1 -1
  272. package/configuration.d.ts +2 -2
  273. package/configuration.js +81 -78
  274. package/configuration.js.map +1 -1
  275. package/demo/create-codesandbox.d.ts +42 -42
  276. package/demo/create-codesandbox.js +100 -100
  277. package/demo/create-codesandbox.js.map +1 -1
  278. package/demo/data/area.js +220 -190
  279. package/demo/data/area.js.map +1 -1
  280. package/demo/data/bar.d.ts +2 -2
  281. package/demo/data/bar.js +302 -302
  282. package/demo/data/bar.js.map +1 -1
  283. package/demo/data/bubble.js +108 -108
  284. package/demo/data/bubble.js.map +1 -1
  285. package/demo/data/combo.js +323 -323
  286. package/demo/data/combo.js.map +1 -1
  287. package/demo/data/donut.js +19 -19
  288. package/demo/data/donut.js.map +1 -1
  289. package/demo/data/gauge.js +20 -20
  290. package/demo/data/gauge.js.map +1 -1
  291. package/demo/data/high-scale.js +3 -3
  292. package/demo/data/high-scale.js.map +1 -1
  293. package/demo/data/index.d.ts +13 -13
  294. package/demo/data/index.js +299 -299
  295. package/demo/data/index.js.map +1 -1
  296. package/demo/data/line.d.ts +4 -4
  297. package/demo/data/line.js +332 -332
  298. package/demo/data/line.js.map +1 -1
  299. package/demo/data/lollipop.js +19 -19
  300. package/demo/data/lollipop.js.map +1 -1
  301. package/demo/data/meter.d.ts +1 -1
  302. package/demo/data/meter.js +22 -22
  303. package/demo/data/meter.js.map +1 -1
  304. package/demo/data/pie.js +17 -17
  305. package/demo/data/pie.js.map +1 -1
  306. package/demo/data/radar.js +84 -84
  307. package/demo/data/radar.js.map +1 -1
  308. package/demo/data/scatter.js +125 -125
  309. package/demo/data/scatter.js.map +1 -1
  310. package/demo/data/step.js +11 -11
  311. package/demo/data/step.js.map +1 -1
  312. package/demo/data/time-series-axis.js +164 -164
  313. package/demo/data/time-series-axis.js.map +1 -1
  314. package/demo/data/toolbar.js +15 -15
  315. package/demo/data/toolbar.js.map +1 -1
  316. package/demo/data/treemap.js +63 -63
  317. package/demo/data/treemap.js.map +1 -1
  318. package/demo/data/zoom-bar.js +65 -65
  319. package/demo/data/zoom-bar.js.map +1 -1
  320. package/demo/styles.css +1 -1
  321. package/demo/styles.min.css +1 -1
  322. package/demo/tsconfig.tsbuildinfo +45 -45
  323. package/index.d.ts +3 -3
  324. package/index.js +3 -3
  325. package/index.js.map +1 -1
  326. package/interfaces/a11y.js.map +1 -1
  327. package/interfaces/axis-scales.d.ts +7 -7
  328. package/interfaces/axis-scales.js.map +1 -1
  329. package/interfaces/charts.d.ts +11 -4
  330. package/interfaces/charts.js.map +1 -1
  331. package/interfaces/components.d.ts +3 -3
  332. package/interfaces/components.js.map +1 -1
  333. package/interfaces/enums.d.ts +1 -1
  334. package/interfaces/enums.js +1 -1
  335. package/interfaces/enums.js.map +1 -1
  336. package/interfaces/events.js.map +1 -1
  337. package/interfaces/index.d.ts +7 -7
  338. package/interfaces/index.js +2 -2
  339. package/interfaces/index.js.map +1 -1
  340. package/interfaces/layout.d.ts +1 -1
  341. package/interfaces/layout.js.map +1 -1
  342. package/interfaces/model.d.ts +1 -1
  343. package/interfaces/model.js.map +1 -1
  344. package/model-cartesian-charts.d.ts +1 -1
  345. package/model-cartesian-charts.js +7 -7
  346. package/model-cartesian-charts.js.map +1 -1
  347. package/model-gauge.d.ts +1 -1
  348. package/model-gauge.js +2 -2
  349. package/model-gauge.js.map +1 -1
  350. package/model-meter.d.ts +1 -1
  351. package/model-meter.js +7 -7
  352. package/model-meter.js.map +1 -1
  353. package/model-pie.d.ts +1 -1
  354. package/model-pie.js +1 -1
  355. package/model-pie.js.map +1 -1
  356. package/model.d.ts +1 -9
  357. package/model.js +31 -42
  358. package/model.js.map +1 -1
  359. package/package.json +2 -3
  360. package/polyfills.js +9 -9
  361. package/polyfills.js.map +1 -1
  362. package/services/angle-utils.d.ts +1 -1
  363. package/services/angle-utils.js +9 -9
  364. package/services/angle-utils.js.map +1 -1
  365. package/services/curves.d.ts +2 -2
  366. package/services/curves.js +6 -6
  367. package/services/curves.js.map +1 -1
  368. package/services/essentials/dom-utils.d.ts +2 -2
  369. package/services/essentials/dom-utils.js +37 -37
  370. package/services/essentials/dom-utils.js.map +1 -1
  371. package/services/essentials/events.d.ts +1 -1
  372. package/services/essentials/events.js +3 -3
  373. package/services/essentials/events.js.map +1 -1
  374. package/services/essentials/gradient-utils.d.ts +1 -1
  375. package/services/essentials/gradient-utils.js +25 -25
  376. package/services/essentials/gradient-utils.js.map +1 -1
  377. package/services/essentials/transitions.d.ts +2 -2
  378. package/services/essentials/transitions.js +8 -8
  379. package/services/essentials/transitions.js.map +1 -1
  380. package/services/index.d.ts +7 -7
  381. package/services/index.js +7 -7
  382. package/services/index.js.map +1 -1
  383. package/services/scales-cartesian.d.ts +2 -2
  384. package/services/scales-cartesian.js +57 -60
  385. package/services/scales-cartesian.js.map +1 -1
  386. package/services/service.d.ts +1 -1
  387. package/services/service.js.map +1 -1
  388. package/services/time-series.d.ts +1 -1
  389. package/services/time-series.js +27 -27
  390. package/services/time-series.js.map +1 -1
  391. package/services/zoom.d.ts +2 -2
  392. package/services/zoom.js +20 -20
  393. package/services/zoom.js.map +1 -1
  394. package/styles/_type.scss +7 -7
  395. package/styles/color-palatte.scss +218 -218
  396. package/styles/colors.scss +3 -3
  397. package/styles/components/_axis.scss +5 -5
  398. package/styles/components/_ruler.scss +2 -2
  399. package/styles/components/_threshold.scss +1 -1
  400. package/styles/components/_title.scss +3 -3
  401. package/styles/components/_toolbar.scss +1 -1
  402. package/styles/components/_tooltip.scss +6 -6
  403. package/styles/components/index.scss +16 -16
  404. package/styles/graphs/_bubble.scss +1 -1
  405. package/styles/graphs/_radar.scss +2 -2
  406. package/styles/graphs/_scatter.scss +1 -1
  407. package/styles/graphs/_treemap.scss +1 -1
  408. package/styles/graphs/index.scss +9 -9
  409. package/styles/styles-g10.scss +2 -2
  410. package/styles/styles-g100.scss +2 -2
  411. package/styles/styles-g90.scss +2 -2
  412. package/styles/styles-white.scss +2 -2
  413. package/styles/styles.scss +10 -10
  414. package/tools.d.ts +2 -2
  415. package/tools.js +26 -26
  416. package/tools.js.map +1 -1
  417. package/tsconfig.tsbuildinfo +173 -173
@@ -12,43 +12,43 @@ var __extends = (this && this.__extends) || (function () {
12
12
  };
13
13
  })();
14
14
  // Internal Imports
15
- import { Component } from "../component";
16
- import { Roles, Events, ColorClassNameTypes } from "../../interfaces";
17
- import { Tools } from "../../tools";
15
+ import { Component } from '../component';
16
+ import { Roles, Events, ColorClassNameTypes } from '../../interfaces';
17
+ import { Tools } from '../../tools';
18
18
  // D3 Imports
19
- import { select } from "d3-selection";
19
+ import { select } from 'd3-selection';
20
20
  var Scatter = /** @class */ (function (_super) {
21
21
  __extends(Scatter, _super);
22
22
  function Scatter() {
23
23
  var _this = _super !== null && _super.apply(this, arguments) || this;
24
- _this.type = "scatter";
24
+ _this.type = 'scatter';
25
25
  _this.handleChartHolderOnHover = function (event) {
26
26
  _this.parent
27
- .selectAll("circle.dot")
28
- .transition(_this.services.transitions.getTransition("chart-holder-hover-scatter"))
29
- .attr("opacity", 1);
27
+ .selectAll('circle.dot')
28
+ .transition(_this.services.transitions.getTransition('chart-holder-hover-scatter'))
29
+ .attr('opacity', 1);
30
30
  };
31
31
  _this.handleChartHolderOnMouseOut = function (event) {
32
32
  _this.parent
33
- .selectAll("circle.dot")
34
- .transition(_this.services.transitions.getTransition("chart-holder-mouseout-scatter"))
35
- .attr("opacity", 0);
33
+ .selectAll('circle.dot')
34
+ .transition(_this.services.transitions.getTransition('chart-holder-mouseout-scatter'))
35
+ .attr('opacity', 0);
36
36
  };
37
37
  _this.handleLegendOnHover = function (event) {
38
38
  var hoveredElement = event.detail.hoveredElement;
39
39
  var groupMapsTo = _this.getOptions().data.groupMapsTo;
40
40
  _this.parent
41
- .selectAll("circle.dot")
42
- .transition(_this.services.transitions.getTransition("legend-hover-scatter"))
43
- .attr("opacity", function (d) {
44
- return d[groupMapsTo] !== hoveredElement.datum()["name"] ? 0.3 : 1;
41
+ .selectAll('circle.dot')
42
+ .transition(_this.services.transitions.getTransition('legend-hover-scatter'))
43
+ .attr('opacity', function (d) {
44
+ return d[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1;
45
45
  });
46
46
  };
47
47
  _this.handleLegendMouseOut = function (event) {
48
48
  _this.parent
49
- .selectAll("circle.dot")
50
- .transition(_this.services.transitions.getTransition("legend-mouseout-scatter"))
51
- .attr("opacity", 1);
49
+ .selectAll('circle.dot')
50
+ .transition(_this.services.transitions.getTransition('legend-mouseout-scatter'))
51
+ .attr('opacity', 1);
52
52
  };
53
53
  return _this;
54
54
  }
@@ -68,7 +68,7 @@ var Scatter = /** @class */ (function (_super) {
68
68
  };
69
69
  Scatter.prototype.filterBasedOnZoomDomain = function (data) {
70
70
  var domainIdentifier = this.services.cartesianScales.getDomainIdentifier(data);
71
- var zoomDomain = this.model.get("zoomDomain");
71
+ var zoomDomain = this.model.get('zoomDomain');
72
72
  if (zoomDomain !== undefined) {
73
73
  return data.filter(function (d) {
74
74
  return d[domainIdentifier].getTime() > zoomDomain[0].getTime() &&
@@ -86,7 +86,7 @@ var Scatter = /** @class */ (function (_super) {
86
86
  var percentage = Object.keys(options.axes).some(function (axis) { return options.axes[axis].percentage; });
87
87
  scatterData = this.model.getStackedData({
88
88
  groups: this.configs.groups,
89
- percentage: percentage
89
+ percentage: percentage,
90
90
  });
91
91
  }
92
92
  else {
@@ -102,8 +102,8 @@ var Scatter = /** @class */ (function (_super) {
102
102
  return this.filterBasedOnZoomDomain(scatterData);
103
103
  };
104
104
  Scatter.prototype.render = function (animate) {
105
- var isScatterEnabled = Tools.getProperty(this.getOptions(), "points", "enabled") ||
106
- Tools.getProperty(this.getOptions(), "bubble", "enabled");
105
+ var isScatterEnabled = Tools.getProperty(this.getOptions(), 'points', 'enabled') ||
106
+ Tools.getProperty(this.getOptions(), 'bubble', 'enabled');
107
107
  if (!isScatterEnabled) {
108
108
  return;
109
109
  }
@@ -114,16 +114,16 @@ var Scatter = /** @class */ (function (_super) {
114
114
  var domainIdentifier = this.services.cartesianScales.getDomainIdentifier();
115
115
  // Update data on dot groups
116
116
  var circles = svg
117
- .selectAll("circle.dot")
117
+ .selectAll('circle.dot')
118
118
  .data(this.getScatterData(), function (datum) { return datum[groupMapsTo] + "-" + datum[domainIdentifier]; });
119
119
  // Remove circles that need to be removed
120
- circles.exit().attr("opacity", 0).remove();
120
+ circles.exit().attr('opacity', 0).remove();
121
121
  // Add the dot groups that need to be introduced
122
122
  var enteringCircles = circles
123
123
  .enter()
124
- .append("circle")
125
- .classed("dot", true)
126
- .attr("opacity", 0);
124
+ .append('circle')
125
+ .classed('dot', true)
126
+ .attr('opacity', 0);
127
127
  // Apply styling & position
128
128
  var circlesToStyle = enteringCircles.merge(circles);
129
129
  this.styleCircles(circlesToStyle, animate);
@@ -171,8 +171,8 @@ var Scatter = /** @class */ (function (_super) {
171
171
  var fadeInOnChartHolderMouseover = this.configs.fadeInOnChartHolderMouseover;
172
172
  selection
173
173
  .raise()
174
- .classed("dot", true)
175
- .attr("class", function (d) {
174
+ .classed('dot', true)
175
+ .attr('class', function (d) {
176
176
  var domainIdentifier = cartesianScales.getDomainIdentifier(d);
177
177
  var isFilled = _this.model.getIsFilled(d[groupMapsTo], d[domainIdentifier], d, filled);
178
178
  var classNamesNeeded = isFilled
@@ -181,41 +181,41 @@ var Scatter = /** @class */ (function (_super) {
181
181
  return _this.model.getColorClassName({
182
182
  classNameTypes: classNamesNeeded,
183
183
  dataGroupName: d[groupMapsTo],
184
- originalClassName: "dot"
184
+ originalClassName: 'dot',
185
185
  });
186
186
  })
187
187
  // Set class to highlight the dots that are above all the thresholds, in both directions (vertical and horizontal)
188
- .classed("threshold-anomaly", function (d, i) {
188
+ .classed('threshold-anomaly', function (d, i) {
189
189
  return _this.isDatapointThresholdAnomaly(d, i);
190
190
  })
191
- .classed("filled", function (d) {
191
+ .classed('filled', function (d) {
192
192
  var domainIdentifier = cartesianScales.getDomainIdentifier(d);
193
193
  return _this.model.getIsFilled(d[groupMapsTo], d[domainIdentifier], d, filled);
194
194
  })
195
- .classed("unfilled", function (d) {
195
+ .classed('unfilled', function (d) {
196
196
  var domainIdentifier = cartesianScales.getDomainIdentifier(d);
197
197
  return !_this.model.getIsFilled(d[groupMapsTo], d[domainIdentifier], d, filled);
198
198
  })
199
- .transition(transitions.getTransition("scatter-update-enter", animate))
200
- .attr("cx", getXValue)
201
- .attr("cy", getYValue)
202
- .attr("r", options.points.radius)
203
- .style("fill", function (d) {
199
+ .transition(transitions.getTransition('scatter-update-enter', animate))
200
+ .attr('cx', getXValue)
201
+ .attr('cy', getYValue)
202
+ .attr('r', options.points.radius)
203
+ .style('fill', function (d) {
204
204
  var domainIdentifier = cartesianScales.getDomainIdentifier(d);
205
205
  if (_this.model.getIsFilled(d[groupMapsTo], d[domainIdentifier], d, filled)) {
206
206
  return _this.model.getFillColor(d[groupMapsTo], d[domainIdentifier], d);
207
207
  }
208
208
  })
209
- .style("stroke", function (d) {
209
+ .style('stroke', function (d) {
210
210
  var domainIdentifier = cartesianScales.getDomainIdentifier(d);
211
211
  return _this.model.getStrokeColor(d[groupMapsTo], d[domainIdentifier], d);
212
212
  })
213
- .attr("fill-opacity", filled ? fillOpacity : 1)
214
- .attr("opacity", fadeInOnChartHolderMouseover ? 0 : 1)
213
+ .attr('fill-opacity', filled ? fillOpacity : 1)
214
+ .attr('opacity', fadeInOnChartHolderMouseover ? 0 : 1)
215
215
  // a11y
216
- .attr("role", Roles.GRAPHICS_SYMBOL)
217
- .attr("aria-roledescription", "point")
218
- .attr("aria-label", function (d) {
216
+ .attr('role', Roles.GRAPHICS_SYMBOL)
217
+ .attr('aria-roledescription', 'point')
218
+ .attr('aria-label', function (d) {
219
219
  var rangeIdentifier = cartesianScales.getRangeIdentifier(d);
220
220
  return d[rangeIdentifier];
221
221
  });
@@ -226,76 +226,77 @@ var Scatter = /** @class */ (function (_super) {
226
226
  var self = this;
227
227
  var groupMapsTo = self.getOptions().data.groupMapsTo;
228
228
  this.parent
229
- .selectAll("circle")
230
- .on("mouseover", function (datum) {
229
+ .selectAll('circle')
230
+ .on('mouseover', function (datum) {
231
231
  var hoveredElement = select(this);
232
232
  hoveredElement
233
- .classed("hovered", true)
234
- .attr("class", function (d) {
233
+ .classed('hovered', true)
234
+ .attr('class', function (d) {
235
235
  return self.model.getColorClassName({
236
236
  classNameTypes: [ColorClassNameTypes.FILL],
237
237
  dataGroupName: d[groupMapsTo],
238
- originalClassName: hoveredElement.attr("class")
238
+ originalClassName: hoveredElement.attr('class'),
239
239
  });
240
240
  })
241
- .style("fill", function (d) {
241
+ .style('fill', function (d) {
242
242
  var domainIdentifier = self.services.cartesianScales.getDomainIdentifier(d);
243
243
  return self.model.getFillColor(d[groupMapsTo], d[domainIdentifier], d);
244
244
  })
245
- .classed("unfilled", false);
245
+ .classed('unfilled', false);
246
246
  // Show tooltip for single datapoint
247
247
  self.services.events.dispatchEvent(Events.Tooltip.SHOW, {
248
248
  hoveredElement: hoveredElement,
249
- data: [datum]
249
+ data: [datum],
250
250
  });
251
251
  // Dispatch mouse event
252
252
  self.services.events.dispatchEvent(Events.Scatter.SCATTER_MOUSEOVER, {
253
253
  element: hoveredElement,
254
- datum: datum
254
+ datum: datum,
255
255
  });
256
256
  })
257
- .on("mousemove", function (datum) {
257
+ .on('mousemove', function (datum) {
258
258
  var hoveredElement = select(this);
259
259
  // Dispatch mouse event
260
260
  self.services.events.dispatchEvent(Events.Scatter.SCATTER_MOUSEMOVE, {
261
261
  element: hoveredElement,
262
- datum: datum
262
+ datum: datum,
263
263
  });
264
264
  self.services.events.dispatchEvent(Events.Tooltip.MOVE);
265
265
  })
266
- .on("click", function (datum) {
266
+ .on('click', function (datum) {
267
267
  // Dispatch mouse event
268
268
  self.services.events.dispatchEvent(Events.Scatter.SCATTER_CLICK, {
269
269
  element: select(this),
270
- datum: datum
270
+ datum: datum,
271
271
  });
272
272
  })
273
- .on("mouseout", function (datum) {
273
+ .on('mouseout', function (datum) {
274
274
  var hoveredElement = select(this);
275
- hoveredElement.classed("hovered", false);
275
+ hoveredElement.classed('hovered', false);
276
276
  if (!self.configs.filled) {
277
277
  var filled = self.getOptions().points.filled;
278
278
  var domainIdentifier = self.services.cartesianScales.getDomainIdentifier(datum);
279
- hoveredElement.classed("unfilled", !self.model.getIsFilled(datum[groupMapsTo], datum[domainIdentifier], datum, filled))
280
- .style("fill", null);
279
+ hoveredElement
280
+ .classed('unfilled', !self.model.getIsFilled(datum[groupMapsTo], datum[domainIdentifier], datum, filled))
281
+ .style('fill', null);
281
282
  }
282
283
  // Dispatch mouse event
283
284
  self.services.events.dispatchEvent(Events.Scatter.SCATTER_MOUSEOUT, {
284
285
  element: hoveredElement,
285
- datum: datum
286
+ datum: datum,
286
287
  });
287
288
  // Hide tooltip
288
289
  self.services.events.dispatchEvent(Events.Tooltip.HIDE, {
289
- hoveredElement: hoveredElement
290
+ hoveredElement: hoveredElement,
290
291
  });
291
292
  });
292
293
  };
293
294
  Scatter.prototype.destroy = function () {
294
295
  // Remove event listeners
295
296
  this.parent
296
- .selectAll("circle")
297
- .on("mousemove", null)
298
- .on("mouseout", null);
297
+ .selectAll('circle')
298
+ .on('mousemove', null)
299
+ .on('mouseout', null);
299
300
  // Remove legend listeners
300
301
  var events = this.services.events;
301
302
  events.removeEventListener(Events.Legend.ITEM_HOVER, this.handleLegendOnHover);
@@ -1 +1 @@
1
- {"version":3,"file":"scatter.js","sourceRoot":"","sources":["scatter.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from \"../component\";\nimport { Roles, Events, ColorClassNameTypes } from \"../../interfaces\";\nimport { Tools } from \"../../tools\";\n\n// D3 Imports\nimport { select, Selection } from \"d3-selection\";\n\nexport class Scatter extends Component {\n\ttype = \"scatter\";\n\tscatterData: any;\n\n\tinit() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct circle on legend item hovers\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\t// Un-highlight circles on legend item mouseouts\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\n\t\tconst { fadeInOnChartHolderMouseover } = this.configs;\n\t\tif (fadeInOnChartHolderMouseover) {\n\t\t\t// Fade-in scatter circles\n\t\t\tevents.addEventListener(\n\t\t\t\tEvents.Chart.MOUSEOVER,\n\t\t\t\tthis.handleChartHolderOnHover\n\t\t\t);\n\t\t\t// Fade-out scatter circles\n\t\t\tevents.addEventListener(\n\t\t\t\tEvents.Chart.MOUSEOUT,\n\t\t\t\tthis.handleChartHolderOnMouseOut\n\t\t\t);\n\t\t}\n\t}\n\n\tfilterBasedOnZoomDomain(data) {\n\t\tconst domainIdentifier = this.services.cartesianScales.getDomainIdentifier(\n\t\t\tdata\n\t\t);\n\t\tconst zoomDomain = this.model.get(\"zoomDomain\");\n\t\tif (zoomDomain !== undefined) {\n\t\t\treturn data.filter(\n\t\t\t\t(d) =>\n\t\t\t\t\td[domainIdentifier].getTime() > zoomDomain[0].getTime() &&\n\t\t\t\t\td[domainIdentifier].getTime() < zoomDomain[1].getTime()\n\t\t\t);\n\t\t}\n\t\treturn data;\n\t}\n\n\tgetScatterData() {\n\t\tconst options = this.getOptions();\n\n\t\tconst { stacked } = this.configs;\n\n\t\tlet scatterData;\n\t\tif (stacked) {\n\t\t\tconst percentage = Object.keys(options.axes).some(\n\t\t\t\t(axis) => options.axes[axis].percentage\n\t\t\t);\n\t\t\tscatterData = this.model.getStackedData({\n\t\t\t\tgroups: this.configs.groups,\n\t\t\t\tpercentage\n\t\t\t});\n\t\t} else {\n\t\t\tscatterData = this.model\n\t\t\t\t.getDisplayData(this.configs.groups)\n\t\t\t\t.filter((d) => {\n\t\t\t\t\tconst rangeIdentifier = this.services.cartesianScales.getRangeIdentifier(\n\t\t\t\t\t\td\n\t\t\t\t\t);\n\t\t\t\t\treturn (\n\t\t\t\t\t\td[rangeIdentifier] !== undefined &&\n\t\t\t\t\t\td[rangeIdentifier] !== null\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t}\n\n\t\t// filter out datapoints that aren't part of the zoomed domain\n\t\treturn this.filterBasedOnZoomDomain(scatterData);\n\t}\n\n\trender(animate: boolean) {\n\t\tconst isScatterEnabled =\n\t\t\tTools.getProperty(this.getOptions(), \"points\", \"enabled\") ||\n\t\t\tTools.getProperty(this.getOptions(), \"bubble\", \"enabled\");\n\n\t\tif (!isScatterEnabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Grab container SVG\n\t\tconst svg = this.getContainerSVG({ withinChartClip: true });\n\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst domainIdentifier = this.services.cartesianScales.getDomainIdentifier();\n\n\t\t// Update data on dot groups\n\t\tconst circles = svg\n\t\t\t.selectAll(\"circle.dot\")\n\t\t\t.data(\n\t\t\t\tthis.getScatterData(),\n\t\t\t\t(datum) => `${datum[groupMapsTo]}-${datum[domainIdentifier]}`\n\t\t\t);\n\n\t\t// Remove circles that need to be removed\n\t\tcircles.exit().attr(\"opacity\", 0).remove();\n\n\t\t// Add the dot groups that need to be introduced\n\t\tconst enteringCircles = circles\n\t\t\t.enter()\n\t\t\t.append(\"circle\")\n\t\t\t.classed(\"dot\", true)\n\t\t\t.attr(\"opacity\", 0);\n\n\t\t// Apply styling & position\n\t\tconst circlesToStyle = enteringCircles.merge(circles);\n\t\tthis.styleCircles(circlesToStyle, animate);\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\t// A value is an anomaly if is above all defined domain and range thresholds\n\tisDatapointThresholdAnomaly(datum: any, index: number) {\n\t\tconst { handleThresholds } = this.configs;\n\t\tif (!handleThresholds) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst { cartesianScales } = this.services;\n\t\tconst orientation = cartesianScales.getOrientation();\n\n\t\t// Get highest domain and range thresholds\n\t\tconst [\n\t\t\txThreshold,\n\t\t\tyThreshold\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\tthis.services.cartesianScales.getHighestDomainThreshold(),\n\t\t\tthis.services.cartesianScales.getHighestRangeThreshold(),\n\t\t\torientation\n\t\t);\n\n\t\tconst [\n\t\t\tgetXValue,\n\t\t\tgetYValue\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\t(d, i) => this.services.cartesianScales.getDomainValue(d, i),\n\t\t\t(d, i) => this.services.cartesianScales.getRangeValue(d, i),\n\t\t\torientation\n\t\t);\n\n\t\t// Get datum x and y values\n\t\tconst xValue = getXValue(datum, index);\n\t\tconst yValue = getYValue(datum, index);\n\n\t\t// To be an anomaly, the value has to be higher or equal than the threshold value\n\t\t// (if are present, both range and domain threshold values)\n\t\tif (yThreshold && xThreshold) {\n\t\t\treturn (\n\t\t\t\tyValue <= yThreshold.scaleValue &&\n\t\t\t\txValue >= xThreshold.scaleValue\n\t\t\t);\n\t\t}\n\n\t\tif (yThreshold) {\n\t\t\treturn yValue <= yThreshold.scaleValue;\n\t\t}\n\n\t\tif (xThreshold) {\n\t\t\treturn xValue >= xThreshold.scaleValue;\n\t\t}\n\t}\n\n\tstyleCircles(selection: Selection<any, any, any, any>, animate: boolean) {\n\t\t// Chart options mixed with the internal configurations\n\t\tconst options = this.getOptions();\n\t\tconst { filled, fillOpacity } = options.points;\n\t\tconst { cartesianScales, transitions } = this.services;\n\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst getDomainValue = (d, i) => cartesianScales.getDomainValue(d, i);\n\t\tconst getRangeValue = (d, i) => cartesianScales.getRangeValue(d, i);\n\t\tconst [\n\t\t\tgetXValue,\n\t\t\tgetYValue\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\tgetDomainValue,\n\t\t\tgetRangeValue,\n\t\t\tcartesianScales.getOrientation()\n\t\t);\n\n\t\tconst { fadeInOnChartHolderMouseover } = this.configs;\n\t\tselection\n\t\t\t.raise()\n\t\t\t.classed(\"dot\", true)\n\t\t\t.attr(\"class\", (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\tconst isFilled = this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t\tconst classNamesNeeded = isFilled\n\t\t\t\t\t? [ColorClassNameTypes.FILL, ColorClassNameTypes.STROKE]\n\t\t\t\t\t: [ColorClassNameTypes.STROKE];\n\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: classNamesNeeded,\n\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\toriginalClassName: \"dot\"\n\t\t\t\t});\n\t\t\t})\n\t\t\t// Set class to highlight the dots that are above all the thresholds, in both directions (vertical and horizontal)\n\t\t\t.classed(\"threshold-anomaly\", (d, i) =>\n\t\t\t\tthis.isDatapointThresholdAnomaly(d, i)\n\t\t\t)\n\t\t\t.classed(\"filled\", (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t})\n\t\t\t.classed(\"unfilled\", (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn !this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t})\n\t\t\t.transition(\n\t\t\t\ttransitions.getTransition(\"scatter-update-enter\", animate)\n\t\t\t)\n\t\t\t.attr(\"cx\", getXValue)\n\t\t\t.attr(\"cy\", getYValue)\n\t\t\t.attr(\"r\", options.points.radius)\n\t\t\t.style(\"fill\", (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\tif (\n\t\t\t\t\tthis.model.getIsFilled(\n\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\td,\n\t\t\t\t\t\tfilled\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn this.model.getFillColor(\n\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\td\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.style(\"stroke\", (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn this.model.getStrokeColor(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td\n\t\t\t\t);\n\t\t\t})\n\t\t\t.attr(\"fill-opacity\", filled ? fillOpacity : 1)\n\t\t\t.attr(\"opacity\", fadeInOnChartHolderMouseover ? 0 : 1)\n\t\t\t// a11y\n\t\t\t.attr(\"role\", Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr(\"aria-roledescription\", \"point\")\n\t\t\t.attr(\"aria-label\", (d) => {\n\t\t\t\tconst rangeIdentifier = cartesianScales.getRangeIdentifier(d);\n\t\t\t\treturn d[rangeIdentifier];\n\t\t\t});\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\thandleChartHolderOnHover = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll(\"circle.dot\")\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t\"chart-holder-hover-scatter\"\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr(\"opacity\", 1);\n\t};\n\n\thandleChartHolderOnMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll(\"circle.dot\")\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t\"chart-holder-mouseout-scatter\"\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr(\"opacity\", 0);\n\t};\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tconst { groupMapsTo } = this.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll(\"circle.dot\")\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\"legend-hover-scatter\")\n\t\t\t)\n\t\t\t.attr(\"opacity\", (d) =>\n\t\t\t\td[groupMapsTo] !== hoveredElement.datum()[\"name\"] ? 0.3 : 1\n\t\t\t);\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll(\"circle.dot\")\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t\"legend-mouseout-scatter\"\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr(\"opacity\", 1);\n\t};\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tconst { groupMapsTo } = self.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll(\"circle\")\n\t\t\t.on(\"mouseover\", function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed(\"hovered\", true)\n\t\t\t\t\t.attr(\"class\", (d) =>\n\t\t\t\t\t\tself.model.getColorClassName({\n\t\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\t\t\toriginalClassName: hoveredElement.attr(\"class\")\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style(\"fill\", (d) => {\n\t\t\t\t\t\tconst domainIdentifier = self.services.cartesianScales.getDomainIdentifier(\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn self.model.getFillColor(\n\t\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t\t.classed(\"unfilled\", false);\n\n\t\t\t\t// Show tooltip for single datapoint\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t\tdata: [datum]\n\t\t\t\t});\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on(\"mousemove\", function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE);\n\t\t\t})\n\t\t\t.on(\"click\", function (datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_CLICK,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: select(this),\n\t\t\t\t\t\tdatum\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on(\"mouseout\", function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed(\"hovered\", false);\n\n\t\t\t\tif (!self.configs.filled) {\n\t\t\t\t\tconst { filled } = self.getOptions().points;\n\t\t\t\t\tconst domainIdentifier = self.services.cartesianScales.getDomainIdentifier(datum);\n\t\t\t\t\thoveredElement.classed(\"unfilled\", !self.model.getIsFilled(\n\t\t\t\t\t\tdatum[groupMapsTo],\n\t\t\t\t\t\tdatum[domainIdentifier],\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t\tfilled\n\t\t\t\t\t))\n\t\t\t\t\t.style(\"fill\", null);\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll(\"circle\")\n\t\t\t.on(\"mousemove\", null)\n\t\t\t.on(\"mouseout\", null);\n\n\t\t// Remove legend listeners\n\t\tconst { events } = this.services;\n\t\tevents.removeEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Chart.MOUSEOVER,\n\t\t\tthis.handleChartHolderOnHover\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Chart.MOUSEOUT,\n\t\t\tthis.handleChartHolderOnMouseOut\n\t\t);\n\t}\n}\n"]}
1
+ {"version":3,"file":"scatter.js","sourceRoot":"","sources":["scatter.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { Roles, Events, ColorClassNameTypes } from '../../interfaces';\nimport { Tools } from '../../tools';\n\n// D3 Imports\nimport { select, Selection } from 'd3-selection';\n\nexport class Scatter extends Component {\n\ttype = 'scatter';\n\tscatterData: any;\n\n\tinit() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct circle on legend item hovers\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\t// Un-highlight circles on legend item mouseouts\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\n\t\tconst { fadeInOnChartHolderMouseover } = this.configs;\n\t\tif (fadeInOnChartHolderMouseover) {\n\t\t\t// Fade-in scatter circles\n\t\t\tevents.addEventListener(\n\t\t\t\tEvents.Chart.MOUSEOVER,\n\t\t\t\tthis.handleChartHolderOnHover\n\t\t\t);\n\t\t\t// Fade-out scatter circles\n\t\t\tevents.addEventListener(\n\t\t\t\tEvents.Chart.MOUSEOUT,\n\t\t\t\tthis.handleChartHolderOnMouseOut\n\t\t\t);\n\t\t}\n\t}\n\n\tfilterBasedOnZoomDomain(data) {\n\t\tconst domainIdentifier = this.services.cartesianScales.getDomainIdentifier(\n\t\t\tdata\n\t\t);\n\t\tconst zoomDomain = this.model.get('zoomDomain');\n\t\tif (zoomDomain !== undefined) {\n\t\t\treturn data.filter(\n\t\t\t\t(d) =>\n\t\t\t\t\td[domainIdentifier].getTime() > zoomDomain[0].getTime() &&\n\t\t\t\t\td[domainIdentifier].getTime() < zoomDomain[1].getTime()\n\t\t\t);\n\t\t}\n\t\treturn data;\n\t}\n\n\tgetScatterData() {\n\t\tconst options = this.getOptions();\n\n\t\tconst { stacked } = this.configs;\n\n\t\tlet scatterData;\n\t\tif (stacked) {\n\t\t\tconst percentage = Object.keys(options.axes).some(\n\t\t\t\t(axis) => options.axes[axis].percentage\n\t\t\t);\n\t\t\tscatterData = this.model.getStackedData({\n\t\t\t\tgroups: this.configs.groups,\n\t\t\t\tpercentage,\n\t\t\t});\n\t\t} else {\n\t\t\tscatterData = this.model\n\t\t\t\t.getDisplayData(this.configs.groups)\n\t\t\t\t.filter((d) => {\n\t\t\t\t\tconst rangeIdentifier = this.services.cartesianScales.getRangeIdentifier(\n\t\t\t\t\t\td\n\t\t\t\t\t);\n\t\t\t\t\treturn (\n\t\t\t\t\t\td[rangeIdentifier] !== undefined &&\n\t\t\t\t\t\td[rangeIdentifier] !== null\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t}\n\n\t\t// filter out datapoints that aren't part of the zoomed domain\n\t\treturn this.filterBasedOnZoomDomain(scatterData);\n\t}\n\n\trender(animate: boolean) {\n\t\tconst isScatterEnabled =\n\t\t\tTools.getProperty(this.getOptions(), 'points', 'enabled') ||\n\t\t\tTools.getProperty(this.getOptions(), 'bubble', 'enabled');\n\n\t\tif (!isScatterEnabled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Grab container SVG\n\t\tconst svg = this.getContainerSVG({ withinChartClip: true });\n\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst domainIdentifier = this.services.cartesianScales.getDomainIdentifier();\n\n\t\t// Update data on dot groups\n\t\tconst circles = svg\n\t\t\t.selectAll('circle.dot')\n\t\t\t.data(\n\t\t\t\tthis.getScatterData(),\n\t\t\t\t(datum) => `${datum[groupMapsTo]}-${datum[domainIdentifier]}`\n\t\t\t);\n\n\t\t// Remove circles that need to be removed\n\t\tcircles.exit().attr('opacity', 0).remove();\n\n\t\t// Add the dot groups that need to be introduced\n\t\tconst enteringCircles = circles\n\t\t\t.enter()\n\t\t\t.append('circle')\n\t\t\t.classed('dot', true)\n\t\t\t.attr('opacity', 0);\n\n\t\t// Apply styling & position\n\t\tconst circlesToStyle = enteringCircles.merge(circles);\n\t\tthis.styleCircles(circlesToStyle, animate);\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\t// A value is an anomaly if is above all defined domain and range thresholds\n\tisDatapointThresholdAnomaly(datum: any, index: number) {\n\t\tconst { handleThresholds } = this.configs;\n\t\tif (!handleThresholds) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst { cartesianScales } = this.services;\n\t\tconst orientation = cartesianScales.getOrientation();\n\n\t\t// Get highest domain and range thresholds\n\t\tconst [\n\t\t\txThreshold,\n\t\t\tyThreshold,\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\tthis.services.cartesianScales.getHighestDomainThreshold(),\n\t\t\tthis.services.cartesianScales.getHighestRangeThreshold(),\n\t\t\torientation\n\t\t);\n\n\t\tconst [\n\t\t\tgetXValue,\n\t\t\tgetYValue,\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\t(d, i) => this.services.cartesianScales.getDomainValue(d, i),\n\t\t\t(d, i) => this.services.cartesianScales.getRangeValue(d, i),\n\t\t\torientation\n\t\t);\n\n\t\t// Get datum x and y values\n\t\tconst xValue = getXValue(datum, index);\n\t\tconst yValue = getYValue(datum, index);\n\n\t\t// To be an anomaly, the value has to be higher or equal than the threshold value\n\t\t// (if are present, both range and domain threshold values)\n\t\tif (yThreshold && xThreshold) {\n\t\t\treturn (\n\t\t\t\tyValue <= yThreshold.scaleValue &&\n\t\t\t\txValue >= xThreshold.scaleValue\n\t\t\t);\n\t\t}\n\n\t\tif (yThreshold) {\n\t\t\treturn yValue <= yThreshold.scaleValue;\n\t\t}\n\n\t\tif (xThreshold) {\n\t\t\treturn xValue >= xThreshold.scaleValue;\n\t\t}\n\t}\n\n\tstyleCircles(selection: Selection<any, any, any, any>, animate: boolean) {\n\t\t// Chart options mixed with the internal configurations\n\t\tconst options = this.getOptions();\n\t\tconst { filled, fillOpacity } = options.points;\n\t\tconst { cartesianScales, transitions } = this.services;\n\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst getDomainValue = (d, i) => cartesianScales.getDomainValue(d, i);\n\t\tconst getRangeValue = (d, i) => cartesianScales.getRangeValue(d, i);\n\t\tconst [\n\t\t\tgetXValue,\n\t\t\tgetYValue,\n\t\t] = Tools.flipDomainAndRangeBasedOnOrientation(\n\t\t\tgetDomainValue,\n\t\t\tgetRangeValue,\n\t\t\tcartesianScales.getOrientation()\n\t\t);\n\n\t\tconst { fadeInOnChartHolderMouseover } = this.configs;\n\t\tselection\n\t\t\t.raise()\n\t\t\t.classed('dot', true)\n\t\t\t.attr('class', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\tconst isFilled = this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t\tconst classNamesNeeded = isFilled\n\t\t\t\t\t? [ColorClassNameTypes.FILL, ColorClassNameTypes.STROKE]\n\t\t\t\t\t: [ColorClassNameTypes.STROKE];\n\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: classNamesNeeded,\n\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\toriginalClassName: 'dot',\n\t\t\t\t});\n\t\t\t})\n\t\t\t// Set class to highlight the dots that are above all the thresholds, in both directions (vertical and horizontal)\n\t\t\t.classed('threshold-anomaly', (d, i) =>\n\t\t\t\tthis.isDatapointThresholdAnomaly(d, i)\n\t\t\t)\n\t\t\t.classed('filled', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t})\n\t\t\t.classed('unfilled', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn !this.model.getIsFilled(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td,\n\t\t\t\t\tfilled\n\t\t\t\t);\n\t\t\t})\n\t\t\t.transition(\n\t\t\t\ttransitions.getTransition('scatter-update-enter', animate)\n\t\t\t)\n\t\t\t.attr('cx', getXValue)\n\t\t\t.attr('cy', getYValue)\n\t\t\t.attr('r', options.points.radius)\n\t\t\t.style('fill', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\tif (\n\t\t\t\t\tthis.model.getIsFilled(\n\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\td,\n\t\t\t\t\t\tfilled\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn this.model.getFillColor(\n\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\td\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.style('stroke', (d) => {\n\t\t\t\tconst domainIdentifier = cartesianScales.getDomainIdentifier(d);\n\t\t\t\treturn this.model.getStrokeColor(\n\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\td\n\t\t\t\t);\n\t\t\t})\n\t\t\t.attr('fill-opacity', filled ? fillOpacity : 1)\n\t\t\t.attr('opacity', fadeInOnChartHolderMouseover ? 0 : 1)\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'point')\n\t\t\t.attr('aria-label', (d) => {\n\t\t\t\tconst rangeIdentifier = cartesianScales.getRangeIdentifier(d);\n\t\t\t\treturn d[rangeIdentifier];\n\t\t\t});\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\thandleChartHolderOnHover = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'chart-holder-hover-scatter'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\thandleChartHolderOnMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'chart-holder-mouseout-scatter'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 0);\n\t};\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tconst { groupMapsTo } = this.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition('legend-hover-scatter')\n\t\t\t)\n\t\t\t.attr('opacity', (d) =>\n\t\t\t\td[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1\n\t\t\t);\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.dot')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-mouseout-scatter'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tconst { groupMapsTo } = self.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle')\n\t\t\t.on('mouseover', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.classed('hovered', true)\n\t\t\t\t\t.attr('class', (d) =>\n\t\t\t\t\t\tself.model.getColorClassName({\n\t\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\t\t\toriginalClassName: hoveredElement.attr('class'),\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (d) => {\n\t\t\t\t\t\tconst domainIdentifier = self.services.cartesianScales.getDomainIdentifier(\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn self.model.getFillColor(\n\t\t\t\t\t\t\td[groupMapsTo],\n\t\t\t\t\t\t\td[domainIdentifier],\n\t\t\t\t\t\t\td\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t\t.classed('unfilled', false);\n\n\t\t\t\t// Show tooltip for single datapoint\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t\tdata: [datum],\n\t\t\t\t});\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mousemove', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE);\n\t\t\t})\n\t\t\t.on('click', function (datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_CLICK,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: select(this),\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mouseout', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\tif (!self.configs.filled) {\n\t\t\t\t\tconst { filled } = self.getOptions().points;\n\t\t\t\t\tconst domainIdentifier = self.services.cartesianScales.getDomainIdentifier(\n\t\t\t\t\t\tdatum\n\t\t\t\t\t);\n\t\t\t\t\thoveredElement\n\t\t\t\t\t\t.classed(\n\t\t\t\t\t\t\t'unfilled',\n\t\t\t\t\t\t\t!self.model.getIsFilled(\n\t\t\t\t\t\t\t\tdatum[groupMapsTo],\n\t\t\t\t\t\t\t\tdatum[domainIdentifier],\n\t\t\t\t\t\t\t\tdatum,\n\t\t\t\t\t\t\t\tfilled\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.style('fill', null);\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Scatter.SCATTER_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('circle')\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null);\n\n\t\t// Remove legend listeners\n\t\tconst { events } = this.services;\n\t\tevents.removeEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Chart.MOUSEOVER,\n\t\t\tthis.handleChartHolderOnHover\n\t\t);\n\t\tevents.removeEventListener(\n\t\t\tEvents.Chart.MOUSEOUT,\n\t\t\tthis.handleChartHolderOnMouseOut\n\t\t);\n\t}\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Skeleton } from "../graphs/skeleton";
1
+ import { Skeleton } from '../graphs/skeleton';
2
2
  export declare class SkeletonLines extends Skeleton {
3
3
  type: string;
4
4
  xScale: any;
@@ -12,28 +12,28 @@ var __extends = (this && this.__extends) || (function () {
12
12
  };
13
13
  })();
14
14
  // Internal Imports
15
- import { Skeleton } from "../graphs/skeleton";
16
- import { DOMUtils } from "../../services";
17
- import { Tools } from "../../tools";
15
+ import { Skeleton } from '../graphs/skeleton';
16
+ import { DOMUtils } from '../../services';
17
+ import { Tools } from '../../tools';
18
18
  var SkeletonLines = /** @class */ (function (_super) {
19
19
  __extends(SkeletonLines, _super);
20
20
  function SkeletonLines() {
21
21
  var _this = _super !== null && _super.apply(this, arguments) || this;
22
- _this.type = "skeleton-lines";
22
+ _this.type = 'skeleton-lines';
23
23
  return _this;
24
24
  }
25
25
  SkeletonLines.prototype.render = function () {
26
26
  var svg = this.parent;
27
27
  var parent = svg.node().parentNode;
28
28
  var _a = DOMUtils.getSVGElementSize(parent, {
29
- useAttrs: true
29
+ useAttrs: true,
30
30
  }), width = _a.width, height = _a.height;
31
- svg.attr("width", width).attr("height", height);
32
- var isDataLoading = Tools.getProperty(this.getOptions(), "data", "loading");
33
- var isSparkline = !Tools.getProperty(this.getOptions(), "grid", "x", "enabled") &&
34
- !Tools.getProperty(this.getOptions(), "grid", "y", "enabled") &&
35
- !Tools.getProperty(this.getOptions(), "axes", "bottom", "visible") &&
36
- !Tools.getProperty(this.getOptions(), "axes", "left", "visible");
31
+ svg.attr('width', width).attr('height', height);
32
+ var isDataLoading = Tools.getProperty(this.getOptions(), 'data', 'loading');
33
+ var isSparkline = !Tools.getProperty(this.getOptions(), 'grid', 'x', 'enabled') &&
34
+ !Tools.getProperty(this.getOptions(), 'grid', 'y', 'enabled') &&
35
+ !Tools.getProperty(this.getOptions(), 'axes', 'bottom', 'visible') &&
36
+ !Tools.getProperty(this.getOptions(), 'axes', 'left', 'visible');
37
37
  // display a skeleton if there is no chart data or the loading flag is set to true
38
38
  if (isDataLoading && !isSparkline) {
39
39
  _super.prototype.renderGridSkeleton.call(this, isDataLoading);
@@ -51,33 +51,33 @@ var SkeletonLines = /** @class */ (function (_super) {
51
51
  this.drawSparkline(showShimmerEffect);
52
52
  this.updateBackdropStyle();
53
53
  if (showShimmerEffect) {
54
- this.setShimmerEffect("shimmer-lines");
54
+ this.setShimmerEffect('shimmer-lines');
55
55
  }
56
56
  };
57
57
  SkeletonLines.prototype.drawSparkline = function (showShimmerEffect) {
58
- var width = this.backdrop.attr("width");
58
+ var width = this.backdrop.attr('width');
59
59
  var ticksValues = [100];
60
- var sparklineSkeleton = DOMUtils.appendOrSelect(this.backdrop, "g.y.skeleton");
61
- var update = sparklineSkeleton.selectAll("line").data(ticksValues);
60
+ var sparklineSkeleton = DOMUtils.appendOrSelect(this.backdrop, 'g.y.skeleton');
61
+ var update = sparklineSkeleton.selectAll('line').data(ticksValues);
62
62
  update
63
63
  .enter()
64
- .append("line")
64
+ .append('line')
65
65
  .merge(update)
66
- .attr("x1", 0)
67
- .attr("x2", width)
68
- .attr("y1", function (d) { return d; })
69
- .attr("y2", function (d) { return d; });
66
+ .attr('x1', 0)
67
+ .attr('x2', width)
68
+ .attr('y1', function (d) { return d; })
69
+ .attr('y2', function (d) { return d; });
70
70
  sparklineSkeleton
71
- .selectAll("line")
72
- .classed("shimmer-effect-lines", showShimmerEffect)
73
- .classed("empty-state-lines", !showShimmerEffect);
71
+ .selectAll('line')
72
+ .classed('shimmer-effect-lines', showShimmerEffect)
73
+ .classed('empty-state-lines', !showShimmerEffect);
74
74
  };
75
75
  SkeletonLines.prototype.updateBackdropStyle = function () {
76
76
  var svg = this.parent;
77
- this.backdrop = DOMUtils.appendOrSelect(svg, "svg.chart-skeleton.DAII");
78
- var backdropRect = DOMUtils.appendOrSelect(this.backdrop, "rect.chart-skeleton-backdrop");
79
- backdropRect.classed("shimmer-effect-lines", false);
80
- backdropRect.classed("shimmer-effect-sparkline", true);
77
+ this.backdrop = DOMUtils.appendOrSelect(svg, 'svg.chart-skeleton.DAII');
78
+ var backdropRect = DOMUtils.appendOrSelect(this.backdrop, 'rect.chart-skeleton-backdrop');
79
+ backdropRect.classed('shimmer-effect-lines', false);
80
+ backdropRect.classed('shimmer-effect-sparkline', true);
81
81
  };
82
82
  return SkeletonLines;
83
83
  }(Skeleton));
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton-lines.js","sourceRoot":"","sources":["skeleton-lines.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAapC;IAAmC,iCAAQ;IAA3C;QAAA,qEAqFC;QApFA,UAAI,GAAG,gBAAgB,CAAC;;IAoFzB,CAAC;IA/EA,8BAAM,GAAN;QACC,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACxB,IAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC;QAC/B,IAAA;;UAEJ,EAFM,gBAAK,EAAE,kBAEb,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEhD,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACtC,IAAI,CAAC,UAAU,EAAE,EACjB,MAAM,EACN,SAAS,CACT,CAAC;QAEF,IAAM,WAAW,GAChB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC;YAC7D,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC;YAC7D,CAAC,KAAK,CAAC,WAAW,CACjB,IAAI,CAAC,UAAU,EAAE,EACjB,MAAM,EACN,QAAQ,EACR,SAAS,CACT;YACD,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAElE,kFAAkF;QAClF,IAAI,aAAa,IAAI,CAAC,WAAW,EAAE;YAClC,iBAAM,kBAAkB,YAAC,aAAa,CAAC,CAAC;SACxC;aAAM,IAAI,aAAa,IAAI,WAAW,EAAE;YACxC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;SAC5C;aAAM;YACN,IAAI,CAAC,cAAc,EAAE,CAAC;SACtB;IACF,CAAC;IAED,+CAAuB,GAAvB,UAAwB,iBAA0B;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACtC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,iBAAiB,EAAE;YACtB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;SACvC;IACF,CAAC;IAED,qCAAa,GAAb,UAAc,iBAA0B;QACvC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAM,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAM,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAChD,IAAI,CAAC,QAAQ,EACb,cAAc,CACd,CAAC;QACF,IAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM;aACJ,KAAK,EAAE;aACP,MAAM,CAAC,MAAM,CAAC;aACd,KAAK,CAAC,MAAM,CAAC;aACb,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aACb,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;aACjB,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC;aACpB,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC,CAAC;QAEvB,iBAAiB;aACf,SAAS,CAAC,MAAM,CAAC;aACjB,OAAO,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;aAClD,OAAO,CAAC,mBAAmB,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAED,2CAAmB,GAAnB;QACC,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAExB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QACxE,IAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAC3C,IAAI,CAAC,QAAQ,EACb,8BAA8B,CAC9B,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QACpD,YAAY,CAAC,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IACF,oBAAC;AAAD,CAAC,AArFD,CAAmC,QAAQ,GAqF1C","sourcesContent":["// Internal Imports\nimport { Skeleton } from \"../graphs/skeleton\";\nimport { DOMUtils } from \"../../services\";\nimport { Tools } from \"../../tools\";\nimport {\n\tSkeletons,\n\tCartesianOrientations,\n\tAlignments\n} from \"../../interfaces/enums\";\nimport * as Configuration from \"../../configuration\";\n\n// D3 Imports\nimport { scaleLinear } from \"d3-scale\";\nimport { easeLinear } from \"d3-ease\";\nimport { arc } from \"d3-shape\";\n\nexport class SkeletonLines extends Skeleton {\n\ttype = \"skeleton-lines\";\n\txScale: any;\n\tyScale: any;\n\tbackdrop: any;\n\n\trender() {\n\t\tconst svg = this.parent;\n\t\tconst parent = svg.node().parentNode;\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(parent, {\n\t\t\tuseAttrs: true\n\t\t});\n\t\tsvg.attr(\"width\", width).attr(\"height\", height);\n\n\t\tconst isDataLoading = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t\"data\",\n\t\t\t\"loading\"\n\t\t);\n\n\t\tconst isSparkline =\n\t\t\t!Tools.getProperty(this.getOptions(), \"grid\", \"x\", \"enabled\") &&\n\t\t\t!Tools.getProperty(this.getOptions(), \"grid\", \"y\", \"enabled\") &&\n\t\t\t!Tools.getProperty(\n\t\t\t\tthis.getOptions(),\n\t\t\t\t\"axes\",\n\t\t\t\t\"bottom\",\n\t\t\t\t\"visible\"\n\t\t\t) &&\n\t\t\t!Tools.getProperty(this.getOptions(), \"axes\", \"left\", \"visible\");\n\n\t\t// display a skeleton if there is no chart data or the loading flag is set to true\n\t\tif (isDataLoading && !isSparkline) {\n\t\t\tsuper.renderGridSkeleton(isDataLoading);\n\t\t} else if (isDataLoading && isSparkline) {\n\t\t\tthis.renderSparklineSkeleton(isDataLoading);\n\t\t} else {\n\t\t\tthis.removeSkeleton();\n\t\t}\n\t}\n\n\trenderSparklineSkeleton(showShimmerEffect: boolean) {\n\t\tthis.setScales();\n\t\tthis.drawBackdrop(showShimmerEffect);\n\t\tthis.drawSparkline(showShimmerEffect);\n\t\tthis.updateBackdropStyle();\n\t\tif (showShimmerEffect) {\n\t\t\tthis.setShimmerEffect(\"shimmer-lines\");\n\t\t}\n\t}\n\n\tdrawSparkline(showShimmerEffect: boolean) {\n\t\tconst width = this.backdrop.attr(\"width\");\n\t\tconst ticksValues = [100];\n\t\tconst sparklineSkeleton = DOMUtils.appendOrSelect(\n\t\t\tthis.backdrop,\n\t\t\t\"g.y.skeleton\"\n\t\t);\n\t\tconst update = sparklineSkeleton.selectAll(\"line\").data(ticksValues);\n\t\tupdate\n\t\t\t.enter()\n\t\t\t.append(\"line\")\n\t\t\t.merge(update)\n\t\t\t.attr(\"x1\", 0)\n\t\t\t.attr(\"x2\", width)\n\t\t\t.attr(\"y1\", (d) => d)\n\t\t\t.attr(\"y2\", (d) => d);\n\n\t\tsparklineSkeleton\n\t\t\t.selectAll(\"line\")\n\t\t\t.classed(\"shimmer-effect-lines\", showShimmerEffect)\n\t\t\t.classed(\"empty-state-lines\", !showShimmerEffect);\n\t}\n\n\tupdateBackdropStyle() {\n\t\tconst svg = this.parent;\n\n\t\tthis.backdrop = DOMUtils.appendOrSelect(svg, \"svg.chart-skeleton.DAII\");\n\t\tconst backdropRect = DOMUtils.appendOrSelect(\n\t\t\tthis.backdrop,\n\t\t\t\"rect.chart-skeleton-backdrop\"\n\t\t);\n\t\tbackdropRect.classed(\"shimmer-effect-lines\", false);\n\t\tbackdropRect.classed(\"shimmer-effect-sparkline\", true);\n\t}\n}\n"]}
1
+ {"version":3,"file":"skeleton-lines.js","sourceRoot":"","sources":["skeleton-lines.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Skeleton } from '../graphs/skeleton';\nimport { DOMUtils } from '../../services';\nimport { Tools } from '../../tools';\nimport {\n\tSkeletons,\n\tCartesianOrientations,\n\tAlignments,\n} from '../../interfaces/enums';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { scaleLinear } from 'd3-scale';\nimport { easeLinear } from 'd3-ease';\nimport { arc } from 'd3-shape';\n\nexport class SkeletonLines extends Skeleton {\n\ttype = 'skeleton-lines';\n\txScale: any;\n\tyScale: any;\n\tbackdrop: any;\n\n\trender() {\n\t\tconst svg = this.parent;\n\t\tconst parent = svg.node().parentNode;\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\t\tsvg.attr('width', width).attr('height', height);\n\n\t\tconst isDataLoading = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'data',\n\t\t\t'loading'\n\t\t);\n\n\t\tconst isSparkline =\n\t\t\t!Tools.getProperty(this.getOptions(), 'grid', 'x', 'enabled') &&\n\t\t\t!Tools.getProperty(this.getOptions(), 'grid', 'y', 'enabled') &&\n\t\t\t!Tools.getProperty(\n\t\t\t\tthis.getOptions(),\n\t\t\t\t'axes',\n\t\t\t\t'bottom',\n\t\t\t\t'visible'\n\t\t\t) &&\n\t\t\t!Tools.getProperty(this.getOptions(), 'axes', 'left', 'visible');\n\n\t\t// display a skeleton if there is no chart data or the loading flag is set to true\n\t\tif (isDataLoading && !isSparkline) {\n\t\t\tsuper.renderGridSkeleton(isDataLoading);\n\t\t} else if (isDataLoading && isSparkline) {\n\t\t\tthis.renderSparklineSkeleton(isDataLoading);\n\t\t} else {\n\t\t\tthis.removeSkeleton();\n\t\t}\n\t}\n\n\trenderSparklineSkeleton(showShimmerEffect: boolean) {\n\t\tthis.setScales();\n\t\tthis.drawBackdrop(showShimmerEffect);\n\t\tthis.drawSparkline(showShimmerEffect);\n\t\tthis.updateBackdropStyle();\n\t\tif (showShimmerEffect) {\n\t\t\tthis.setShimmerEffect('shimmer-lines');\n\t\t}\n\t}\n\n\tdrawSparkline(showShimmerEffect: boolean) {\n\t\tconst width = this.backdrop.attr('width');\n\t\tconst ticksValues = [100];\n\t\tconst sparklineSkeleton = DOMUtils.appendOrSelect(\n\t\t\tthis.backdrop,\n\t\t\t'g.y.skeleton'\n\t\t);\n\t\tconst update = sparklineSkeleton.selectAll('line').data(ticksValues);\n\t\tupdate\n\t\t\t.enter()\n\t\t\t.append('line')\n\t\t\t.merge(update)\n\t\t\t.attr('x1', 0)\n\t\t\t.attr('x2', width)\n\t\t\t.attr('y1', (d) => d)\n\t\t\t.attr('y2', (d) => d);\n\n\t\tsparklineSkeleton\n\t\t\t.selectAll('line')\n\t\t\t.classed('shimmer-effect-lines', showShimmerEffect)\n\t\t\t.classed('empty-state-lines', !showShimmerEffect);\n\t}\n\n\tupdateBackdropStyle() {\n\t\tconst svg = this.parent;\n\n\t\tthis.backdrop = DOMUtils.appendOrSelect(svg, 'svg.chart-skeleton.DAII');\n\t\tconst backdropRect = DOMUtils.appendOrSelect(\n\t\t\tthis.backdrop,\n\t\t\t'rect.chart-skeleton-backdrop'\n\t\t);\n\t\tbackdropRect.classed('shimmer-effect-lines', false);\n\t\tbackdropRect.classed('shimmer-effect-sparkline', true);\n\t}\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Component } from "../component";
1
+ import { Component } from '../component';
2
2
  export declare class Skeleton extends Component {
3
3
  type: string;
4
4
  xScale: any;