@semcore/d3-chart 16.5.0 → 17.0.0-prerelease.8

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 (439) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/lib/cjs/AnimatedClipPath.js +28 -41
  3. package/lib/cjs/AnimatedClipPath.js.map +1 -1
  4. package/lib/cjs/Area.js +187 -223
  5. package/lib/cjs/Area.js.map +1 -1
  6. package/lib/cjs/Axis.js +248 -327
  7. package/lib/cjs/Axis.js.map +1 -1
  8. package/lib/cjs/Bar.js +162 -185
  9. package/lib/cjs/Bar.js.map +1 -1
  10. package/lib/cjs/Bubble.js +219 -248
  11. package/lib/cjs/Bubble.js.map +1 -1
  12. package/lib/cjs/CompactHorizontalBar.js +448 -482
  13. package/lib/cjs/CompactHorizontalBar.js.map +1 -1
  14. package/lib/cjs/Donut.js +349 -396
  15. package/lib/cjs/Donut.js.map +1 -1
  16. package/lib/cjs/Dots.js +67 -86
  17. package/lib/cjs/Dots.js.map +1 -1
  18. package/lib/cjs/GroupBar.js +78 -93
  19. package/lib/cjs/GroupBar.js.map +1 -1
  20. package/lib/cjs/HorizontalBar.js +149 -167
  21. package/lib/cjs/HorizontalBar.js.map +1 -1
  22. package/lib/cjs/Hover.js +178 -207
  23. package/lib/cjs/Hover.js.map +1 -1
  24. package/lib/cjs/Line.js +182 -222
  25. package/lib/cjs/Line.js.map +1 -1
  26. package/lib/cjs/Pattern.js +124 -126
  27. package/lib/cjs/Pattern.js.map +1 -1
  28. package/lib/cjs/Plot.js +100 -126
  29. package/lib/cjs/Plot.js.map +1 -1
  30. package/lib/cjs/Radar.js +576 -681
  31. package/lib/cjs/Radar.js.map +1 -1
  32. package/lib/cjs/RadialTree.js +518 -571
  33. package/lib/cjs/RadialTree.js.map +1 -1
  34. package/lib/cjs/Reference.js +147 -178
  35. package/lib/cjs/Reference.js.map +1 -1
  36. package/lib/cjs/ResponsiveContainer.js +64 -82
  37. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  38. package/lib/cjs/ScatterPlot.js +169 -199
  39. package/lib/cjs/ScatterPlot.js.map +1 -1
  40. package/lib/cjs/StackBar.js +135 -177
  41. package/lib/cjs/StackBar.js.map +1 -1
  42. package/lib/cjs/StackedArea.js +60 -73
  43. package/lib/cjs/StackedArea.js.map +1 -1
  44. package/lib/cjs/Tooltip.js +193 -208
  45. package/lib/cjs/Tooltip.js.map +1 -1
  46. package/lib/cjs/Venn.js +182 -217
  47. package/lib/cjs/Venn.js.map +1 -1
  48. package/lib/cjs/a11y/DataAccessibilityTable.js +45 -83
  49. package/lib/cjs/a11y/DataAccessibilityTable.js.map +1 -1
  50. package/lib/cjs/a11y/PlotA11yModule.js +37 -97
  51. package/lib/cjs/a11y/PlotA11yModule.js.map +1 -1
  52. package/lib/cjs/a11y/PlotA11yView.js +97 -91
  53. package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
  54. package/lib/cjs/a11y/bezier.js +17 -23
  55. package/lib/cjs/a11y/bezier.js.map +1 -1
  56. package/lib/cjs/a11y/focus.js +16 -16
  57. package/lib/cjs/a11y/focus.js.map +1 -1
  58. package/lib/cjs/a11y/hints.js +72 -75
  59. package/lib/cjs/a11y/hints.js.map +1 -1
  60. package/lib/cjs/a11y/insights.js +354 -525
  61. package/lib/cjs/a11y/insights.js.map +1 -1
  62. package/lib/cjs/a11y/intl.js +5 -5
  63. package/lib/cjs/a11y/intl.js.map +1 -1
  64. package/lib/cjs/a11y/locale.js +12 -19
  65. package/lib/cjs/a11y/locale.js.map +1 -1
  66. package/lib/cjs/a11y/serialize.js +164 -203
  67. package/lib/cjs/a11y/serialize.js.map +1 -1
  68. package/lib/cjs/a11y/summarize.js +7 -6
  69. package/lib/cjs/a11y/summarize.js.map +1 -1
  70. package/lib/cjs/a11y/translations/module/__intergalactic-dynamic-locales.js +16 -16
  71. package/lib/cjs/a11y/translations/module/__intergalactic-dynamic-locales.js.map +1 -1
  72. package/lib/cjs/a11y/translations/module/de.json +2 -2
  73. package/lib/cjs/a11y/translations/module/en.json +2 -2
  74. package/lib/cjs/a11y/translations/module/es.json +2 -2
  75. package/lib/cjs/a11y/translations/module/fr.json +2 -2
  76. package/lib/cjs/a11y/translations/module/it.json +2 -2
  77. package/lib/cjs/a11y/translations/module/ja.json +2 -2
  78. package/lib/cjs/a11y/translations/module/ko.json +2 -2
  79. package/lib/cjs/a11y/translations/module/nl.json +2 -2
  80. package/lib/cjs/a11y/translations/module/pl.json +2 -2
  81. package/lib/cjs/a11y/translations/module/pt.json +2 -2
  82. package/lib/cjs/a11y/translations/module/sv.json +2 -2
  83. package/lib/cjs/a11y/translations/module/tr.json +2 -2
  84. package/lib/cjs/a11y/translations/module/vi.json +2 -2
  85. package/lib/cjs/a11y/translations/module/zh.json +2 -2
  86. package/lib/cjs/a11y/translations/view/__intergalactic-dynamic-locales.js +16 -16
  87. package/lib/cjs/a11y/translations/view/__intergalactic-dynamic-locales.js.map +1 -1
  88. package/lib/cjs/color.js +1 -1
  89. package/lib/cjs/color.js.map +1 -1
  90. package/lib/cjs/component/Chart/AbstractChart.js +421 -466
  91. package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
  92. package/lib/cjs/component/Chart/AbstractChart.type.js.map +1 -1
  93. package/lib/cjs/component/Chart/AreaChart.js +97 -115
  94. package/lib/cjs/component/Chart/AreaChart.js.map +1 -1
  95. package/lib/cjs/component/Chart/AreaChart.type.js.map +1 -1
  96. package/lib/cjs/component/Chart/BarChart.js +229 -216
  97. package/lib/cjs/component/Chart/BarChart.js.map +1 -1
  98. package/lib/cjs/component/Chart/BarChart.type.js.map +1 -1
  99. package/lib/cjs/component/Chart/BubbleChart.js +114 -136
  100. package/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
  101. package/lib/cjs/component/Chart/BubbleChart.type.js.map +1 -1
  102. package/lib/cjs/component/Chart/CigaretteChart.js +280 -305
  103. package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
  104. package/lib/cjs/component/Chart/CompactHorizontalBarChart.js +76 -108
  105. package/lib/cjs/component/Chart/CompactHorizontalBarChart.js.map +1 -1
  106. package/lib/cjs/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
  107. package/lib/cjs/component/Chart/DonutChart.js +80 -95
  108. package/lib/cjs/component/Chart/DonutChart.js.map +1 -1
  109. package/lib/cjs/component/Chart/DonutChart.type.js.map +1 -1
  110. package/lib/cjs/component/Chart/HistogramChart.js +126 -148
  111. package/lib/cjs/component/Chart/HistogramChart.js.map +1 -1
  112. package/lib/cjs/component/Chart/HistogramChart.type.js.map +1 -1
  113. package/lib/cjs/component/Chart/LineChart.js +95 -113
  114. package/lib/cjs/component/Chart/LineChart.js.map +1 -1
  115. package/lib/cjs/component/Chart/LineChart.type.js.map +1 -1
  116. package/lib/cjs/component/Chart/RadarChart.js +84 -110
  117. package/lib/cjs/component/Chart/RadarChart.js.map +1 -1
  118. package/lib/cjs/component/Chart/RadarChart.type.js.map +1 -1
  119. package/lib/cjs/component/Chart/ScatterPlotChart.js +119 -143
  120. package/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -1
  121. package/lib/cjs/component/Chart/ScatterPlotChart.type.js.map +1 -1
  122. package/lib/cjs/component/Chart/VennChart.js +103 -122
  123. package/lib/cjs/component/Chart/VennChart.js.map +1 -1
  124. package/lib/cjs/component/Chart/VennChart.type.js.map +1 -1
  125. package/lib/cjs/component/Chart/index.js +2 -2
  126. package/lib/cjs/component/Chart/index.js.map +1 -1
  127. package/lib/cjs/component/ChartLegend/BaseLegend.js +72 -105
  128. package/lib/cjs/component/ChartLegend/BaseLegend.js.map +1 -1
  129. package/lib/cjs/component/ChartLegend/BaseLegend.type.js.map +1 -1
  130. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +58 -70
  131. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
  132. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.type.js.map +1 -1
  133. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +208 -221
  134. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
  135. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js +1 -1
  136. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
  137. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +63 -73
  138. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
  139. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
  140. package/lib/cjs/component/ChartLegend/index.js +4 -4
  141. package/lib/cjs/component/ChartLegend/index.js.map +1 -1
  142. package/lib/cjs/component/Cigarette/Cigarette.js +115 -129
  143. package/lib/cjs/component/Cigarette/Cigarette.js.map +1 -1
  144. package/lib/cjs/component/StackGroupBar/StackGroupBar.js +107 -137
  145. package/lib/cjs/component/StackGroupBar/StackGroupBar.js.map +1 -1
  146. package/lib/cjs/component/SvgElement.js +7 -7
  147. package/lib/cjs/component/SvgElement.js.map +1 -1
  148. package/lib/cjs/createElement.js +66 -65
  149. package/lib/cjs/createElement.js.map +1 -1
  150. package/lib/cjs/index.js +62 -62
  151. package/lib/cjs/style/axis.shadow.css +3 -0
  152. package/lib/cjs/style/plot.shadow.css +1 -3
  153. package/lib/cjs/style/plotA11yModule.shadow.css +10 -11
  154. package/lib/cjs/style/plotA11yView.shadow.css +13 -26
  155. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +15 -15
  156. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
  157. package/lib/cjs/types/Axis.d.js.map +1 -1
  158. package/lib/cjs/types/CompactHorizontalBar.d.js.map +1 -1
  159. package/lib/cjs/types/Hover.d.js.map +1 -1
  160. package/lib/cjs/types/Line.d.js.map +1 -1
  161. package/lib/cjs/types/Plot.d.js.map +1 -1
  162. package/lib/cjs/types/Radar.d.js.map +1 -1
  163. package/lib/cjs/types/ResponsiveContainer.d.js.map +1 -1
  164. package/lib/cjs/types/Tooltip.d.js.map +1 -1
  165. package/lib/cjs/types/Venn.d.js.map +1 -1
  166. package/lib/cjs/types/index.d.js +80 -80
  167. package/lib/cjs/types/index.d.js.map +1 -1
  168. package/lib/cjs/utils.js +122 -145
  169. package/lib/cjs/utils.js.map +1 -1
  170. package/lib/es6/AnimatedClipPath.js +24 -37
  171. package/lib/es6/AnimatedClipPath.js.map +1 -1
  172. package/lib/es6/Area.js +179 -215
  173. package/lib/es6/Area.js.map +1 -1
  174. package/lib/es6/Axis.js +242 -321
  175. package/lib/es6/Axis.js.map +1 -1
  176. package/lib/es6/Bar.js +154 -177
  177. package/lib/es6/Bar.js.map +1 -1
  178. package/lib/es6/Bubble.js +206 -235
  179. package/lib/es6/Bubble.js.map +1 -1
  180. package/lib/es6/CompactHorizontalBar.js +433 -467
  181. package/lib/es6/CompactHorizontalBar.js.map +1 -1
  182. package/lib/es6/Donut.js +337 -384
  183. package/lib/es6/Donut.js.map +1 -1
  184. package/lib/es6/Dots.js +60 -79
  185. package/lib/es6/Dots.js.map +1 -1
  186. package/lib/es6/GroupBar.js +74 -89
  187. package/lib/es6/GroupBar.js.map +1 -1
  188. package/lib/es6/HorizontalBar.js +141 -159
  189. package/lib/es6/HorizontalBar.js.map +1 -1
  190. package/lib/es6/Hover.js +174 -203
  191. package/lib/es6/Hover.js.map +1 -1
  192. package/lib/es6/Line.js +173 -213
  193. package/lib/es6/Line.js.map +1 -1
  194. package/lib/es6/Pattern.js +68 -74
  195. package/lib/es6/Pattern.js.map +1 -1
  196. package/lib/es6/Plot.js +95 -121
  197. package/lib/es6/Plot.js.map +1 -1
  198. package/lib/es6/Radar.js +554 -659
  199. package/lib/es6/Radar.js.map +1 -1
  200. package/lib/es6/RadialTree.js +500 -553
  201. package/lib/es6/RadialTree.js.map +1 -1
  202. package/lib/es6/Reference.js +140 -171
  203. package/lib/es6/Reference.js.map +1 -1
  204. package/lib/es6/ResponsiveContainer.js +58 -76
  205. package/lib/es6/ResponsiveContainer.js.map +1 -1
  206. package/lib/es6/ScatterPlot.js +161 -191
  207. package/lib/es6/ScatterPlot.js.map +1 -1
  208. package/lib/es6/StackBar.js +130 -172
  209. package/lib/es6/StackBar.js.map +1 -1
  210. package/lib/es6/StackedArea.js +56 -69
  211. package/lib/es6/StackedArea.js.map +1 -1
  212. package/lib/es6/Tooltip.js +183 -198
  213. package/lib/es6/Tooltip.js.map +1 -1
  214. package/lib/es6/Venn.js +169 -204
  215. package/lib/es6/Venn.js.map +1 -1
  216. package/lib/es6/a11y/DataAccessibilityTable.js +41 -80
  217. package/lib/es6/a11y/DataAccessibilityTable.js.map +1 -1
  218. package/lib/es6/a11y/PlotA11yModule.js +35 -95
  219. package/lib/es6/a11y/PlotA11yModule.js.map +1 -1
  220. package/lib/es6/a11y/PlotA11yView.js +89 -84
  221. package/lib/es6/a11y/PlotA11yView.js.map +1 -1
  222. package/lib/es6/a11y/bezier.js +16 -23
  223. package/lib/es6/a11y/bezier.js.map +1 -1
  224. package/lib/es6/a11y/focus.js +15 -16
  225. package/lib/es6/a11y/focus.js.map +1 -1
  226. package/lib/es6/a11y/hints.js +67 -73
  227. package/lib/es6/a11y/hints.js.map +1 -1
  228. package/lib/es6/a11y/insights.js +353 -524
  229. package/lib/es6/a11y/insights.js.map +1 -1
  230. package/lib/es6/a11y/intl.js +4 -5
  231. package/lib/es6/a11y/intl.js.map +1 -1
  232. package/lib/es6/a11y/locale.js +11 -18
  233. package/lib/es6/a11y/locale.js.map +1 -1
  234. package/lib/es6/a11y/serialize.js +162 -203
  235. package/lib/es6/a11y/serialize.js.map +1 -1
  236. package/lib/es6/a11y/summarize.js +6 -6
  237. package/lib/es6/a11y/summarize.js.map +1 -1
  238. package/lib/es6/a11y/translations/module/__intergalactic-dynamic-locales.js +15 -15
  239. package/lib/es6/a11y/translations/module/__intergalactic-dynamic-locales.js.map +1 -1
  240. package/lib/es6/a11y/translations/module/de.json +2 -2
  241. package/lib/es6/a11y/translations/module/en.json +2 -2
  242. package/lib/es6/a11y/translations/module/es.json +2 -2
  243. package/lib/es6/a11y/translations/module/fr.json +2 -2
  244. package/lib/es6/a11y/translations/module/it.json +2 -2
  245. package/lib/es6/a11y/translations/module/ja.json +2 -2
  246. package/lib/es6/a11y/translations/module/ko.json +2 -2
  247. package/lib/es6/a11y/translations/module/nl.json +2 -2
  248. package/lib/es6/a11y/translations/module/pl.json +2 -2
  249. package/lib/es6/a11y/translations/module/pt.json +2 -2
  250. package/lib/es6/a11y/translations/module/sv.json +2 -2
  251. package/lib/es6/a11y/translations/module/tr.json +2 -2
  252. package/lib/es6/a11y/translations/module/vi.json +2 -2
  253. package/lib/es6/a11y/translations/module/zh.json +2 -2
  254. package/lib/es6/a11y/translations/view/__intergalactic-dynamic-locales.js +15 -15
  255. package/lib/es6/a11y/translations/view/__intergalactic-dynamic-locales.js.map +1 -1
  256. package/lib/es6/color.js +1 -1
  257. package/lib/es6/color.js.map +1 -1
  258. package/lib/es6/component/Chart/AbstractChart.js +416 -462
  259. package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
  260. package/lib/es6/component/Chart/AbstractChart.type.js.map +1 -1
  261. package/lib/es6/component/Chart/AreaChart.js +92 -111
  262. package/lib/es6/component/Chart/AreaChart.js.map +1 -1
  263. package/lib/es6/component/Chart/AreaChart.type.js.map +1 -1
  264. package/lib/es6/component/Chart/BarChart.js +225 -213
  265. package/lib/es6/component/Chart/BarChart.js.map +1 -1
  266. package/lib/es6/component/Chart/BarChart.type.js.map +1 -1
  267. package/lib/es6/component/Chart/BubbleChart.js +109 -132
  268. package/lib/es6/component/Chart/BubbleChart.js.map +1 -1
  269. package/lib/es6/component/Chart/BubbleChart.type.js.map +1 -1
  270. package/lib/es6/component/Chart/CigaretteChart.js +276 -301
  271. package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
  272. package/lib/es6/component/Chart/CompactHorizontalBarChart.js +70 -103
  273. package/lib/es6/component/Chart/CompactHorizontalBarChart.js.map +1 -1
  274. package/lib/es6/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
  275. package/lib/es6/component/Chart/DonutChart.js +74 -90
  276. package/lib/es6/component/Chart/DonutChart.js.map +1 -1
  277. package/lib/es6/component/Chart/DonutChart.type.js.map +1 -1
  278. package/lib/es6/component/Chart/HistogramChart.js +121 -144
  279. package/lib/es6/component/Chart/HistogramChart.js.map +1 -1
  280. package/lib/es6/component/Chart/HistogramChart.type.js.map +1 -1
  281. package/lib/es6/component/Chart/LineChart.js +90 -109
  282. package/lib/es6/component/Chart/LineChart.js.map +1 -1
  283. package/lib/es6/component/Chart/LineChart.type.js.map +1 -1
  284. package/lib/es6/component/Chart/RadarChart.js +80 -107
  285. package/lib/es6/component/Chart/RadarChart.js.map +1 -1
  286. package/lib/es6/component/Chart/RadarChart.type.js.map +1 -1
  287. package/lib/es6/component/Chart/ScatterPlotChart.js +113 -138
  288. package/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -1
  289. package/lib/es6/component/Chart/ScatterPlotChart.type.js.map +1 -1
  290. package/lib/es6/component/Chart/VennChart.js +97 -117
  291. package/lib/es6/component/Chart/VennChart.js.map +1 -1
  292. package/lib/es6/component/Chart/VennChart.type.js.map +1 -1
  293. package/lib/es6/component/ChartLegend/BaseLegend.js +70 -104
  294. package/lib/es6/component/ChartLegend/BaseLegend.js.map +1 -1
  295. package/lib/es6/component/ChartLegend/BaseLegend.type.js.map +1 -1
  296. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +53 -65
  297. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
  298. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.type.js.map +1 -1
  299. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +198 -211
  300. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
  301. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js +1 -1
  302. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
  303. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +58 -68
  304. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
  305. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
  306. package/lib/es6/component/Cigarette/Cigarette.js +108 -122
  307. package/lib/es6/component/Cigarette/Cigarette.js.map +1 -1
  308. package/lib/es6/component/StackGroupBar/StackGroupBar.js +100 -130
  309. package/lib/es6/component/StackGroupBar/StackGroupBar.js.map +1 -1
  310. package/lib/es6/component/SvgElement.js +4 -5
  311. package/lib/es6/component/SvgElement.js.map +1 -1
  312. package/lib/es6/createElement.js +55 -54
  313. package/lib/es6/createElement.js.map +1 -1
  314. package/lib/es6/style/axis.shadow.css +3 -0
  315. package/lib/es6/style/plot.shadow.css +1 -3
  316. package/lib/es6/style/plotA11yModule.shadow.css +10 -11
  317. package/lib/es6/style/plotA11yView.shadow.css +13 -26
  318. package/lib/es6/translations/__intergalactic-dynamic-locales.js +14 -14
  319. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
  320. package/lib/es6/types/Axis.d.js.map +1 -1
  321. package/lib/es6/types/CompactHorizontalBar.d.js.map +1 -1
  322. package/lib/es6/types/Hover.d.js.map +1 -1
  323. package/lib/es6/types/Line.d.js.map +1 -1
  324. package/lib/es6/types/Plot.d.js.map +1 -1
  325. package/lib/es6/types/Radar.d.js.map +1 -1
  326. package/lib/es6/types/ResponsiveContainer.d.js.map +1 -1
  327. package/lib/es6/types/Tooltip.d.js.map +1 -1
  328. package/lib/es6/types/Venn.d.js.map +1 -1
  329. package/lib/es6/utils.js +105 -144
  330. package/lib/es6/utils.js.map +1 -1
  331. package/lib/esm/AnimatedClipPath.mjs +24 -36
  332. package/lib/esm/Area.mjs +178 -149
  333. package/lib/esm/Axis.mjs +241 -242
  334. package/lib/esm/Bar.mjs +155 -137
  335. package/lib/esm/Bubble.mjs +205 -171
  336. package/lib/esm/CompactHorizontalBar.mjs +428 -383
  337. package/lib/esm/Donut.mjs +315 -266
  338. package/lib/esm/Dots.mjs +60 -49
  339. package/lib/esm/GroupBar.mjs +71 -75
  340. package/lib/esm/HorizontalBar.mjs +142 -120
  341. package/lib/esm/Hover.mjs +173 -163
  342. package/lib/esm/Line.mjs +174 -145
  343. package/lib/esm/Pattern.mjs +67 -63
  344. package/lib/esm/Plot.mjs +98 -95
  345. package/lib/esm/Radar.mjs +550 -498
  346. package/lib/esm/RadialTree.mjs +512 -416
  347. package/lib/esm/Reference.mjs +137 -122
  348. package/lib/esm/ResponsiveContainer.mjs +58 -69
  349. package/lib/esm/ScatterPlot.mjs +163 -162
  350. package/lib/esm/StackBar.mjs +126 -147
  351. package/lib/esm/StackedArea.mjs +53 -61
  352. package/lib/esm/Tooltip.mjs +185 -175
  353. package/lib/esm/Venn.mjs +170 -170
  354. package/lib/esm/a11y/DataAccessibilityTable.mjs +46 -73
  355. package/lib/esm/a11y/PlotA11yModule.mjs +37 -80
  356. package/lib/esm/a11y/PlotA11yView.mjs +99 -74
  357. package/lib/esm/a11y/bezier.mjs +16 -23
  358. package/lib/esm/a11y/focus.mjs +15 -16
  359. package/lib/esm/a11y/hints.mjs +65 -71
  360. package/lib/esm/a11y/insights.mjs +347 -495
  361. package/lib/esm/a11y/intl.mjs +4 -5
  362. package/lib/esm/a11y/locale.mjs +12 -14
  363. package/lib/esm/a11y/serialize.mjs +139 -152
  364. package/lib/esm/a11y/summarize.mjs +3 -3
  365. package/lib/esm/a11y/translations/module/__intergalactic-dynamic-locales.mjs +1 -1
  366. package/lib/esm/a11y/translations/module/de.json.mjs +2 -4
  367. package/lib/esm/a11y/translations/module/en.json.mjs +2 -4
  368. package/lib/esm/a11y/translations/module/es.json.mjs +2 -4
  369. package/lib/esm/a11y/translations/module/fr.json.mjs +2 -4
  370. package/lib/esm/a11y/translations/module/it.json.mjs +2 -4
  371. package/lib/esm/a11y/translations/module/ja.json.mjs +2 -4
  372. package/lib/esm/a11y/translations/module/ko.json.mjs +2 -4
  373. package/lib/esm/a11y/translations/module/nl.json.mjs +2 -4
  374. package/lib/esm/a11y/translations/module/pl.json.mjs +2 -4
  375. package/lib/esm/a11y/translations/module/pt.json.mjs +2 -4
  376. package/lib/esm/a11y/translations/module/sv.json.mjs +2 -4
  377. package/lib/esm/a11y/translations/module/tr.json.mjs +2 -4
  378. package/lib/esm/a11y/translations/module/vi.json.mjs +2 -4
  379. package/lib/esm/a11y/translations/module/zh.json.mjs +2 -4
  380. package/lib/esm/a11y/translations/view/__intergalactic-dynamic-locales.mjs +1 -1
  381. package/lib/esm/color.mjs +1 -1
  382. package/lib/esm/component/Chart/AbstractChart.mjs +422 -415
  383. package/lib/esm/component/Chart/AreaChart.mjs +92 -91
  384. package/lib/esm/component/Chart/BarChart.mjs +225 -177
  385. package/lib/esm/component/Chart/BubbleChart.mjs +110 -118
  386. package/lib/esm/component/Chart/CigaretteChart.mjs +277 -268
  387. package/lib/esm/component/Chart/CompactHorizontalBarChart.mjs +70 -87
  388. package/lib/esm/component/Chart/DonutChart.mjs +74 -84
  389. package/lib/esm/component/Chart/HistogramChart.mjs +121 -117
  390. package/lib/esm/component/Chart/LineChart.mjs +90 -89
  391. package/lib/esm/component/Chart/RadarChart.mjs +81 -97
  392. package/lib/esm/component/Chart/ScatterPlotChart.mjs +113 -111
  393. package/lib/esm/component/Chart/VennChart.mjs +98 -111
  394. package/lib/esm/component/ChartLegend/BaseLegend.mjs +75 -97
  395. package/lib/esm/component/ChartLegend/LegendFlex/LegendFlex.mjs +54 -55
  396. package/lib/esm/component/ChartLegend/LegendItem/LegendItem.mjs +194 -165
  397. package/lib/esm/component/ChartLegend/LegendItem/LegendItem.type.mjs +1 -1
  398. package/lib/esm/component/ChartLegend/LegendTable/LegendTable.mjs +60 -58
  399. package/lib/esm/component/Cigarette/Cigarette.mjs +109 -99
  400. package/lib/esm/component/StackGroupBar/StackGroupBar.mjs +97 -111
  401. package/lib/esm/component/SvgElement.mjs +4 -4
  402. package/lib/esm/createElement.mjs +54 -37
  403. package/lib/esm/style/axis.shadow.css +3 -0
  404. package/lib/esm/style/plot.shadow.css +1 -3
  405. package/lib/esm/style/plotA11yModule.shadow.css +10 -11
  406. package/lib/esm/style/plotA11yView.shadow.css +13 -26
  407. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +1 -1
  408. package/lib/esm/utils.mjs +103 -138
  409. package/lib/types/Axis.d.ts +4 -0
  410. package/lib/types/CompactHorizontalBar.d.ts +1 -1
  411. package/lib/types/Hover.d.ts +1 -1
  412. package/lib/types/Line.d.ts +1 -1
  413. package/lib/types/Plot.d.ts +1 -1
  414. package/lib/types/Radar.d.ts +1 -1
  415. package/lib/types/ResponsiveContainer.d.ts +1 -1
  416. package/lib/types/Tooltip.d.ts +1 -3
  417. package/lib/types/Venn.d.ts +1 -1
  418. package/lib/types/a11y/PlotA11yModule.d.ts +4 -11
  419. package/lib/types/a11y/PlotA11yView.d.ts +12 -1
  420. package/lib/types/a11y/translations/module/__intergalactic-dynamic-locales.d.ts +14 -14
  421. package/lib/types/component/Chart/AbstractChart.d.ts +1 -1
  422. package/lib/types/component/Chart/AbstractChart.type.d.ts +1 -1
  423. package/lib/types/component/Chart/AreaChart.type.d.ts +1 -1
  424. package/lib/types/component/Chart/BarChart.type.d.ts +1 -1
  425. package/lib/types/component/Chart/BubbleChart.type.d.ts +1 -1
  426. package/lib/types/component/Chart/CompactHorizontalBarChart.type.d.ts +1 -1
  427. package/lib/types/component/Chart/DonutChart.type.d.ts +1 -1
  428. package/lib/types/component/Chart/HistogramChart.type.d.ts +1 -1
  429. package/lib/types/component/Chart/LineChart.type.d.ts +1 -1
  430. package/lib/types/component/Chart/RadarChart.type.d.ts +1 -1
  431. package/lib/types/component/Chart/ScatterPlotChart.type.d.ts +1 -1
  432. package/lib/types/component/Chart/VennChart.type.d.ts +1 -1
  433. package/lib/types/component/ChartLegend/BaseLegend.d.ts +1 -1
  434. package/lib/types/component/ChartLegend/BaseLegend.type.d.ts +1 -1
  435. package/lib/types/component/ChartLegend/LegendFlex/LegendFlex.type.d.ts +1 -1
  436. package/lib/types/component/ChartLegend/LegendItem/LegendItem.type.d.ts +1 -1
  437. package/lib/types/component/ChartLegend/LegendTable/LegendTable.type.d.ts +1 -1
  438. package/lib/types/utils.d.ts +10 -10
  439. package/package.json +11 -14
@@ -1,65 +1,50 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.extractDataInsights = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
11
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
7
  var _bezier = require("./bezier");
14
- var getPropByPath = function getPropByPath(obj, path) {
8
+ const getPropByPath = (obj, path) => {
15
9
  if (typeof path === 'number') path = String(path);
16
10
  if (typeof path === 'string') path = path.split('.');
17
- for (var i = 0; i < path.length; i++) {
18
- if ((0, _typeof2["default"])(obj) !== 'object' || obj === null) return obj;
11
+ for (let i = 0; i < path.length; i++) {
12
+ if (typeof obj !== 'object' || obj === null) return obj;
19
13
  obj = obj[path[i]];
20
14
  }
21
15
  return obj;
22
16
  };
23
- var movingAverage = function movingAverage(data, frame) {
24
- var result = [];
17
+ const movingAverage = (data, frame) => {
18
+ const result = [];
25
19
  frame = Math.floor(frame) % 2 === data.length % 2 ? Math.floor(frame) : Math.ceil(frame);
26
- for (var i = 0; i < data.length; i++) {
27
- var startIndex = Math.max(0, i - Math.floor(frame / 2));
28
- var endIndex = Math.min(data.length, i + Math.ceil(frame / 2));
20
+ for (let i = 0; i < data.length; i++) {
21
+ let startIndex = Math.max(0, i - Math.floor(frame / 2));
22
+ let endIndex = Math.min(data.length, i + Math.ceil(frame / 2));
29
23
  startIndex = Math.min(startIndex, Math.max(0, endIndex - frame));
30
24
  endIndex = Math.max(endIndex, Math.min(data.length, startIndex + frame));
31
- var part = data.slice(startIndex, endIndex);
32
- var sum = part.reduce(function (sum, item) {
33
- return sum + item;
34
- }, 0);
35
- var value = sum / part.length;
25
+ const part = data.slice(startIndex, endIndex);
26
+ const sum = part.reduce((sum, item) => sum + item, 0);
27
+ const value = sum / part.length;
36
28
  result.push(value);
37
29
  }
38
30
  return result;
39
31
  };
40
- var extractDataInsights = exports.extractDataInsights = function extractDataInsights(data, hints, config) {
41
- var _config$dataType, _hints$axesTitle$vert, _ref;
42
- var insights = [];
43
- var dataType = (_config$dataType = config.dataType) !== null && _config$dataType !== void 0 ? _config$dataType : hints.dataType;
44
- var dataRange = [];
45
- var groupKeys = (0, _toConsumableArray2["default"])(hints.groups);
46
- var dataTitle = (_hints$axesTitle$vert = hints.axesTitle.vertical) !== null && _hints$axesTitle$vert !== void 0 ? _hints$axesTitle$vert : hints.axesTitle.horizontal;
47
- var entitiesCount = 0;
48
- var keysMap = Object.fromEntries(Object.keys((_ref = Array.isArray(data) ? data[0] : data) !== null && _ref !== void 0 ? _ref : {}).map(function (key) {
49
- return [key, true];
50
- }));
32
+ const extractDataInsights = (data, hints, config) => {
33
+ let insights = [];
34
+ let dataType = config.dataType ?? hints.dataType;
35
+ const dataRange = [];
36
+ let groupKeys = [...hints.groups];
37
+ const dataTitle = hints.axesTitle.vertical ?? hints.axesTitle.horizontal;
38
+ let entitiesCount = 0;
39
+ const keysMap = Object.fromEntries(Object.keys((Array.isArray(data) ? data[0] : data) ?? {}).map(key => [key, true]));
51
40
  if (!dataType) {
52
41
  if ((keysMap['y'] || keysMap['y1'] || keysMap['y2']) && keysMap['x'] && (keysMap['value'] || keysMap['label']) || hints.fields.horizontalAxes.size > 0 && hints.fields.verticalAxes.size > 0 && hints.fields.valueAxes.size > 0) {
53
42
  dataType = 'points-cloud';
54
43
  } else if (Array.isArray(data) && data.length > 6) {
55
44
  dataType = 'time-series';
56
45
  } else if (Array.isArray(data) && Object.keys(keysMap).length >= 3) {
57
- var possibleGroupKeys = Object.keys(keysMap).filter(function (key) {
58
- return typeof data[0][key] === 'string';
59
- }).filter(function (key) {
60
- var allData = data.map(function (row) {
61
- return row[key];
62
- });
46
+ const possibleGroupKeys = Object.keys(keysMap).filter(key => typeof data[0][key] === 'string').filter(key => {
47
+ const allData = data.map(row => row[key]);
63
48
  return new Set(allData).size === allData.length;
64
49
  });
65
50
  if (possibleGroupKeys.length === 1) {
@@ -77,257 +62,194 @@ var extractDataInsights = exports.extractDataInsights = function extractDataInsi
77
62
  }
78
63
  if (Array.isArray(data)) {
79
64
  if (dataType === 'time-series') {
80
- var _ref2, _hints$titles$getHori, _hints$titles$getHori2, _hints$titles, _ref3, _hints$titles$getHori3, _hints$titles$getHori4, _hints$titles2;
81
- var firstRow = data[0];
82
- var lastRow = data[data.length - 1];
83
- var possibleValueKeys = ['y', 'value'].concat((0, _toConsumableArray2["default"])(hints.fields.verticalAxes));
84
- var valuesKeys = possibleValueKeys.filter(function (key) {
85
- return keysMap[key];
86
- });
87
- var possibleLabelKeys = ['label', 'x'].concat((0, _toConsumableArray2["default"])(hints.fields.horizontalAxes));
88
- var labelsKey = possibleLabelKeys.filter(function (key) {
89
- return keysMap[key];
90
- })[0];
65
+ const firstRow = data[0];
66
+ const lastRow = data[data.length - 1];
67
+ const possibleValueKeys = ['y', 'value', ...hints.fields.verticalAxes];
68
+ const valuesKeys = possibleValueKeys.filter(key => keysMap[key]);
69
+ const possibleLabelKeys = ['label', 'x', ...hints.fields.horizontalAxes];
70
+ const labelsKey = possibleLabelKeys.filter(key => keysMap[key])[0];
91
71
  entitiesCount = Object.keys(valuesKeys).length;
92
- var fromKey = firstRow[labelsKey];
93
- var toKey = lastRow[labelsKey];
94
- var from = (_ref2 = (_hints$titles$getHori = (_hints$titles$getHori2 = (_hints$titles = hints.titles).getHorizontalAxesTitle) === null || _hints$titles$getHori2 === void 0 ? void 0 : _hints$titles$getHori2.call(_hints$titles, fromKey)) !== null && _hints$titles$getHori !== void 0 ? _hints$titles$getHori : hints.titles.horizontalAxes[fromKey]) !== null && _ref2 !== void 0 ? _ref2 : fromKey;
95
- var to = (_ref3 = (_hints$titles$getHori3 = (_hints$titles$getHori4 = (_hints$titles2 = hints.titles).getHorizontalAxesTitle) === null || _hints$titles$getHori4 === void 0 ? void 0 : _hints$titles$getHori4.call(_hints$titles2, toKey)) !== null && _hints$titles$getHori3 !== void 0 ? _hints$titles$getHori3 : hints.titles.horizontalAxes[toKey]) !== null && _ref3 !== void 0 ? _ref3 : toKey;
72
+ const fromKey = firstRow[labelsKey];
73
+ const toKey = lastRow[labelsKey];
74
+ const from = hints.titles.getHorizontalAxesTitle?.(fromKey) ?? hints.titles.horizontalAxes[fromKey] ?? fromKey;
75
+ const to = hints.titles.getHorizontalAxesTitle?.(toKey) ?? hints.titles.horizontalAxes[toKey] ?? toKey;
96
76
  if (entitiesCount > 0) {
97
- var _hints$axesTitle$vert2;
98
77
  dataRange.push({
99
- from: from,
100
- to: to,
101
- label: (_hints$axesTitle$vert2 = hints.axesTitle.vertical) !== null && _hints$axesTitle$vert2 !== void 0 ? _hints$axesTitle$vert2 : labelsKey
78
+ from,
79
+ to,
80
+ label: hints.axesTitle.vertical ?? labelsKey
102
81
  });
103
82
  }
104
- var _iterator = (0, _createForOfIteratorHelper2["default"])(valuesKeys),
105
- _step;
106
- try {
107
- var _loop = function _loop() {
108
- var _config$movingAverage, _config$movingAverage2, _insights;
109
- var valueKey = _step.value;
110
- var values = data.map(function (row) {
111
- return row[valueKey];
112
- }).filter(function (value) {
113
- return (0, _typeof2["default"])(value) !== 'symbol';
83
+ for (const valueKey of valuesKeys) {
84
+ const values = data.map(row => row[valueKey]).filter(value => typeof value !== 'symbol');
85
+ const sum = values.reduce((sum, value) => sum + value, 0);
86
+ const average = sum / values.length;
87
+ const variance = 1 / values.length * values.map(value => (value - average) ** 2).reduce((sum, item) => sum + item, 0);
88
+ const standardDeviation = Math.sqrt(variance);
89
+ const trendStrengths = ['static', 'weak', 'medium', 'strong'];
90
+ const frameSize = Math.sqrt(values.length);
91
+ const longMovingAverageSize = config.movingAverage.longSize ?? frameSize;
92
+ const shortMovingAverageSize = config.movingAverage.shortSize ?? Math.sqrt(frameSize);
93
+ const longMovingAverage = movingAverage(values, longMovingAverageSize);
94
+ const shortMovingAverage = values.length < 8 ? values : movingAverage(values, shortMovingAverageSize);
95
+ const table = [];
96
+ for (const i in values) {
97
+ table.push({
98
+ value: (values[i] ?? Number.NaN).toFixed(2),
99
+ long: (longMovingAverage[i] ?? Number.NaN).toFixed(2),
100
+ short: (shortMovingAverage[i] ?? Number.NaN).toFixed(2)
114
101
  });
115
- var sum = values.reduce(function (sum, value) {
116
- return sum + value;
117
- }, 0);
118
- var average = sum / values.length;
119
- var variance = 1 / values.length * values.map(function (value) {
120
- return Math.pow(value - average, 2);
121
- }).reduce(function (sum, item) {
122
- return sum + item;
123
- }, 0);
124
- var standardDeviation = Math.sqrt(variance);
125
- var trendStrengths = ['static', 'weak', 'medium', 'strong'];
126
- var frameSize = Math.sqrt(values.length);
127
- var longMovingAverageSize = (_config$movingAverage = config.movingAverage.longSize) !== null && _config$movingAverage !== void 0 ? _config$movingAverage : frameSize;
128
- var shortMovingAverageSize = (_config$movingAverage2 = config.movingAverage.shortSize) !== null && _config$movingAverage2 !== void 0 ? _config$movingAverage2 : Math.sqrt(frameSize);
129
- var longMovingAverage = movingAverage(values, longMovingAverageSize);
130
- var shortMovingAverage = values.length < 8 ? values : movingAverage(values, shortMovingAverageSize);
131
- var table = [];
132
- for (var i in values) {
133
- var _values$i, _longMovingAverage$i, _shortMovingAverage$i;
134
- table.push({
135
- value: ((_values$i = values[i]) !== null && _values$i !== void 0 ? _values$i : Number.NaN).toFixed(2),
136
- "long": ((_longMovingAverage$i = longMovingAverage[i]) !== null && _longMovingAverage$i !== void 0 ? _longMovingAverage$i : Number.NaN).toFixed(2),
137
- "short": ((_shortMovingAverage$i = shortMovingAverage[i]) !== null && _shortMovingAverage$i !== void 0 ? _shortMovingAverage$i : Number.NaN).toFixed(2)
138
- });
102
+ }
103
+ const strengthsMap = {
104
+ growth: {
105
+ static: 'static',
106
+ weak: 'weak-growth',
107
+ medium: 'growth',
108
+ strong: 'strong-growth'
109
+ },
110
+ reduction: {
111
+ static: 'static',
112
+ weak: 'weak-reduction',
113
+ medium: 'reduction',
114
+ strong: 'strong-reduction'
139
115
  }
140
- var strengthsMap = {
141
- growth: {
142
- "static": 'static',
143
- weak: 'weak-growth',
144
- medium: 'growth',
145
- strong: 'strong-growth'
146
- },
147
- reduction: {
148
- "static": 'static',
149
- weak: 'weak-reduction',
150
- medium: 'reduction',
151
- strong: 'strong-reduction'
116
+ };
117
+ const recordTrend = ({
118
+ value,
119
+ width,
120
+ label,
121
+ type
122
+ }) => {
123
+ for (let i = 0; i < trendStrengths.length; i++) {
124
+ const normalizedHeight = Math.abs(value.from - value.to) / (hints.pointsDensity?.verticalAxes ?? 1);
125
+ const normalizedWidth = width / (hints.pointsDensity?.horizontalAxes ?? 1);
126
+ const tang = normalizedHeight / normalizedWidth;
127
+ const trendStrength = trendStrengths[i];
128
+ if (tang <= config.trendTangens[trendStrength] || i === trendStrengths.length - 1) {
129
+ const strength = value.to > value.from ? strengthsMap.growth[trendStrength] : strengthsMap.reduction[trendStrength];
130
+ return {
131
+ type,
132
+ priority: i,
133
+ change: {
134
+ from: value.from,
135
+ to: value.to,
136
+ strength
137
+ },
138
+ from: label.from,
139
+ to: label.to,
140
+ dataKey: label.dataKey,
141
+ label: label.displayValue
142
+ };
152
143
  }
153
- };
154
- var recordTrend = function recordTrend(_ref4) {
155
- var value = _ref4.value,
156
- width = _ref4.width,
157
- label = _ref4.label,
158
- type = _ref4.type;
159
- for (var _i = 0; _i < trendStrengths.length; _i++) {
160
- var _hints$pointsDensity$, _hints$pointsDensity, _hints$pointsDensity$2, _hints$pointsDensity2;
161
- var normalizedHeight = Math.abs(value.from - value.to) / ((_hints$pointsDensity$ = (_hints$pointsDensity = hints.pointsDensity) === null || _hints$pointsDensity === void 0 ? void 0 : _hints$pointsDensity.verticalAxes) !== null && _hints$pointsDensity$ !== void 0 ? _hints$pointsDensity$ : 1);
162
- var normalizedWidth = width / ((_hints$pointsDensity$2 = (_hints$pointsDensity2 = hints.pointsDensity) === null || _hints$pointsDensity2 === void 0 ? void 0 : _hints$pointsDensity2.horizontalAxes) !== null && _hints$pointsDensity$2 !== void 0 ? _hints$pointsDensity$2 : 1);
163
- var tang = normalizedHeight / normalizedWidth;
164
- var trendStrength = trendStrengths[_i];
165
- if (tang <= config.trendTangens[trendStrength] || _i === trendStrengths.length - 1) {
166
- var strength = value.to > value.from ? strengthsMap.growth[trendStrength] : strengthsMap.reduction[trendStrength];
167
- return {
168
- type: type,
169
- priority: _i,
170
- change: {
171
- from: value.from,
172
- to: value.to,
173
- strength: strength
174
- },
175
- from: label.from,
176
- to: label.to,
177
- dataKey: label.dataKey,
178
- label: label.displayValue
179
- };
144
+ }
145
+ };
146
+ const generalTrend = recordTrend({
147
+ type: 'general-trend',
148
+ value: {
149
+ from: shortMovingAverage[0],
150
+ to: shortMovingAverage[shortMovingAverage.length - 1]
151
+ },
152
+ width: data.length,
153
+ label: {
154
+ from,
155
+ to,
156
+ dataKey: valueKey,
157
+ displayValue: hints.titles.valuesAxes[valueKey]
158
+ }
159
+ });
160
+ const localTrends = [];
161
+ {
162
+ const notableDiff = config.movingAverage.notableDiff ?? standardDeviation / 10;
163
+ let lastSwitch = 0;
164
+ let lastSwitchValue = shortMovingAverage[lastSwitch];
165
+ let shortWasAbove = shortMovingAverage[0] > longMovingAverage[0];
166
+ for (let i = 1; i < data.length; i++) {
167
+ const shortIsAbove = shortMovingAverage[i] > longMovingAverage[i];
168
+ const diff = Math.abs(shortMovingAverage[i] - longMovingAverage[i]);
169
+ if (shortIsAbove === shortWasAbove) continue;
170
+ if (diff < notableDiff) continue;
171
+ if (i === 0 && lastSwitch === data.length - 1) continue;
172
+ if (i === data.length - 1 && lastSwitch === 0) continue;
173
+ i = Math.min(i, data.length - 1);
174
+ const fromKey = data[lastSwitch][labelsKey];
175
+ const toKey = data[i][labelsKey];
176
+ const from = hints.titles.getHorizontalAxesTitle?.(fromKey) ?? hints.titles.horizontalAxes[fromKey] ?? fromKey;
177
+ const to = hints.titles.getHorizontalAxesTitle?.(toKey) ?? hints.titles.horizontalAxes[toKey] ?? toKey;
178
+ localTrends.push(recordTrend({
179
+ type: 'trend',
180
+ value: {
181
+ from: lastSwitchValue,
182
+ to: shortMovingAverage[i]
183
+ },
184
+ width: i - lastSwitch,
185
+ label: {
186
+ from,
187
+ to,
188
+ dataKey: valueKey,
189
+ displayValue: hints.titles.valuesAxes[valueKey]
180
190
  }
181
- }
182
- };
183
- var generalTrend = recordTrend({
184
- type: 'general-trend',
185
- value: {
186
- from: shortMovingAverage[0],
187
- to: shortMovingAverage[shortMovingAverage.length - 1]
188
- },
189
- width: data.length,
190
- label: {
191
- from: from,
192
- to: to,
193
- dataKey: valueKey,
194
- displayValue: hints.titles.valuesAxes[valueKey]
195
- }
196
- });
197
- var localTrends = [];
198
- {
199
- var _config$movingAverage3;
200
- var notableDiff = (_config$movingAverage3 = config.movingAverage.notableDiff) !== null && _config$movingAverage3 !== void 0 ? _config$movingAverage3 : standardDeviation / 10;
201
- var lastSwitch = 0;
202
- var lastSwitchValue = shortMovingAverage[lastSwitch];
203
- var shortWasAbove = shortMovingAverage[0] > longMovingAverage[0];
204
- for (var _i2 = 1; _i2 < data.length; _i2++) {
205
- var _ref5, _hints$titles$getHori5, _hints$titles$getHori6, _hints$titles3, _ref6, _hints$titles$getHori7, _hints$titles$getHori8, _hints$titles4;
206
- var shortIsAbove = shortMovingAverage[_i2] > longMovingAverage[_i2];
207
- var diff = Math.abs(shortMovingAverage[_i2] - longMovingAverage[_i2]);
208
- if (shortIsAbove === shortWasAbove) continue;
209
- if (diff < notableDiff) continue;
210
- if (_i2 === 0 && lastSwitch === data.length - 1) continue;
211
- if (_i2 === data.length - 1 && lastSwitch === 0) continue;
212
- _i2 = Math.min(_i2, data.length - 1);
213
- var _fromKey = data[lastSwitch][labelsKey];
214
- var _toKey = data[_i2][labelsKey];
215
- var _from = (_ref5 = (_hints$titles$getHori5 = (_hints$titles$getHori6 = (_hints$titles3 = hints.titles).getHorizontalAxesTitle) === null || _hints$titles$getHori6 === void 0 ? void 0 : _hints$titles$getHori6.call(_hints$titles3, _fromKey)) !== null && _hints$titles$getHori5 !== void 0 ? _hints$titles$getHori5 : hints.titles.horizontalAxes[_fromKey]) !== null && _ref5 !== void 0 ? _ref5 : _fromKey;
216
- var _to = (_ref6 = (_hints$titles$getHori7 = (_hints$titles$getHori8 = (_hints$titles4 = hints.titles).getHorizontalAxesTitle) === null || _hints$titles$getHori8 === void 0 ? void 0 : _hints$titles$getHori8.call(_hints$titles4, _toKey)) !== null && _hints$titles$getHori7 !== void 0 ? _hints$titles$getHori7 : hints.titles.horizontalAxes[_toKey]) !== null && _ref6 !== void 0 ? _ref6 : _toKey;
191
+ }));
192
+ lastSwitch = i;
193
+ lastSwitchValue = shortMovingAverage[lastSwitch];
194
+ shortWasAbove = shortIsAbove;
195
+ }
196
+ if (lastSwitch !== 0) {
197
+ const lastIndex = shortMovingAverage.length - 1;
198
+ const lastValue = shortMovingAverage[lastIndex];
199
+ if (Math.abs(lastSwitchValue - lastValue) > notableDiff) {
217
200
  localTrends.push(recordTrend({
218
201
  type: 'trend',
219
202
  value: {
220
203
  from: lastSwitchValue,
221
- to: shortMovingAverage[_i2]
204
+ to: lastValue
222
205
  },
223
- width: _i2 - lastSwitch,
206
+ width: lastIndex - lastSwitch,
224
207
  label: {
225
- from: _from,
226
- to: _to,
208
+ from: data[lastSwitch][labelsKey],
209
+ to: data[lastIndex][labelsKey],
227
210
  dataKey: valueKey,
228
211
  displayValue: hints.titles.valuesAxes[valueKey]
229
212
  }
230
213
  }));
231
- lastSwitch = _i2;
232
- lastSwitchValue = shortMovingAverage[lastSwitch];
233
- shortWasAbove = shortIsAbove;
234
- }
235
- if (lastSwitch !== 0) {
236
- var lastIndex = shortMovingAverage.length - 1;
237
- var lastValue = shortMovingAverage[lastIndex];
238
- if (Math.abs(lastSwitchValue - lastValue) > notableDiff) {
239
- localTrends.push(recordTrend({
240
- type: 'trend',
241
- value: {
242
- from: lastSwitchValue,
243
- to: lastValue
244
- },
245
- width: lastIndex - lastSwitch,
246
- label: {
247
- from: data[lastSwitch][labelsKey],
248
- to: data[lastIndex][labelsKey],
249
- dataKey: valueKey,
250
- displayValue: hints.titles.valuesAxes[valueKey]
251
- }
252
- }));
253
- }
254
214
  }
255
215
  }
256
- insights.push(generalTrend);
257
- (_insights = insights).push.apply(_insights, localTrends);
258
- };
259
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
260
- _loop();
261
216
  }
262
- } catch (err) {
263
- _iterator.e(err);
264
- } finally {
265
- _iterator.f();
217
+ insights.push(generalTrend);
218
+ insights.push(...localTrends);
266
219
  }
267
220
  } else if (dataType === 'points-cloud') {
268
- var _ref7, _config$clustersGridS, _insights2;
269
- var guessedXKey = [].concat((0, _toConsumableArray2["default"])(hints.fields.horizontalAxes.values()), ['x'])[0];
270
- var guessedYKey = [].concat((0, _toConsumableArray2["default"])(hints.fields.verticalAxes.values()), ['y'])[0];
271
- var guessedValueKey = [].concat((0, _toConsumableArray2["default"])(hints.fields.valueAxes.values()), ['value'])[0];
272
- var guessedLabelKey = keysMap['label'] ? 'label' : guessedValueKey;
273
- var normalized = data.map(function (row) {
274
- return {
275
- x: row[guessedXKey],
276
- y: row[guessedYKey],
277
- label: row[guessedLabelKey],
278
- value: row[guessedValueKey]
279
- };
280
- });
281
- var gridSize = (_ref7 = (_config$clustersGridS = config.clustersGridSize) !== null && _config$clustersGridS !== void 0 ? _config$clustersGridS : hints.grid.verticalAxes) !== null && _ref7 !== void 0 ? _ref7 : hints.grid.horizontalAxes;
221
+ const guessedXKey = [...hints.fields.horizontalAxes.values(), 'x'][0];
222
+ const guessedYKey = [...hints.fields.verticalAxes.values(), 'y'][0];
223
+ const guessedValueKey = [...hints.fields.valueAxes.values(), 'value'][0];
224
+ const guessedLabelKey = keysMap['label'] ? 'label' : guessedValueKey;
225
+ const normalized = data.map(row => ({
226
+ x: row[guessedXKey],
227
+ y: row[guessedYKey],
228
+ label: row[guessedLabelKey],
229
+ value: row[guessedValueKey]
230
+ }));
231
+ let gridSize = config.clustersGridSize ?? hints.grid.verticalAxes ?? hints.grid.horizontalAxes;
282
232
  if (!gridSize) {
283
- var usedX = new Set();
284
- var usedY = new Set();
285
- var _iterator2 = (0, _createForOfIteratorHelper2["default"])(normalized),
286
- _step2;
287
- try {
288
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
289
- var _step2$value = _step2.value,
290
- x = _step2$value.x,
291
- y = _step2$value.y;
292
- usedX.add(x);
293
- usedY.add(y);
294
- }
295
- } catch (err) {
296
- _iterator2.e(err);
297
- } finally {
298
- _iterator2.f();
233
+ const usedX = new Set();
234
+ const usedY = new Set();
235
+ for (const {
236
+ x,
237
+ y
238
+ } of normalized) {
239
+ usedX.add(x);
240
+ usedY.add(y);
299
241
  }
300
- var orderedX = (0, _toConsumableArray2["default"])(usedX).sort(function (a, b) {
301
- return a - b;
302
- });
303
- var orderedY = (0, _toConsumableArray2["default"])(usedY).sort(function (a, b) {
304
- return a - b;
305
- });
306
- var distancesX = orderedX.slice(0, -1).map(function (x, index) {
307
- return orderedX[index + 1] - x;
308
- });
309
- var distancesY = orderedY.slice(0, -1).map(function (y, index) {
310
- return orderedY[index + 1] - y;
311
- });
312
- var avgDistanceX = distancesX.reduce(function (sum, x) {
313
- return sum + x;
314
- }, 0) / distancesX.length;
315
- var avgDistanceY = distancesY.reduce(function (sum, y) {
316
- return sum + y;
317
- }, 0) / distancesY.length;
318
- var belowAvgDistancesX = distancesX.filter(function (x) {
319
- return x < avgDistanceX;
320
- });
321
- var belowAvgDistancesY = distancesY.filter(function (y) {
322
- return y < avgDistanceY;
323
- });
324
- var betweenDistanceX = belowAvgDistancesX.reduce(function (sum, x) {
325
- return sum + x;
326
- }, 0) / belowAvgDistancesX.length;
327
- var betweenDistanceY = belowAvgDistancesY.reduce(function (sum, y) {
328
- return sum + y;
329
- }, 0) / belowAvgDistancesY.length;
330
- var avgDistance = 0;
242
+ const orderedX = [...usedX].sort((a, b) => a - b);
243
+ const orderedY = [...usedY].sort((a, b) => a - b);
244
+ const distancesX = orderedX.slice(0, -1).map((x, index) => orderedX[index + 1] - x);
245
+ const distancesY = orderedY.slice(0, -1).map((y, index) => orderedY[index + 1] - y);
246
+ const avgDistanceX = distancesX.reduce((sum, x) => sum + x, 0) / distancesX.length;
247
+ const avgDistanceY = distancesY.reduce((sum, y) => sum + y, 0) / distancesY.length;
248
+ const belowAvgDistancesX = distancesX.filter(x => x < avgDistanceX);
249
+ const belowAvgDistancesY = distancesY.filter(y => y < avgDistanceY);
250
+ const betweenDistanceX = belowAvgDistancesX.reduce((sum, x) => sum + x, 0) / belowAvgDistancesX.length;
251
+ const betweenDistanceY = belowAvgDistancesY.reduce((sum, y) => sum + y, 0) / belowAvgDistancesY.length;
252
+ let avgDistance = 0;
331
253
  if (!Number.isNaN(betweenDistanceX) && !Number.isNaN(betweenDistanceY)) {
332
254
  avgDistance = (betweenDistanceX + betweenDistanceY) / 2;
333
255
  } else if (!Number.isNaN(betweenDistanceX)) {
@@ -339,157 +261,118 @@ var extractDataInsights = exports.extractDataInsights = function extractDataInsi
339
261
  }
340
262
  gridSize = Math.sqrt(Math.sqrt(avgDistance));
341
263
  }
342
- var grid = {};
343
- var takenY = new Set();
344
- var takenX = new Set();
345
- for (var i = 0; i < normalized.length; i++) {
346
- var _grid$gridX, _grid$gridX$gridY;
347
- var _normalized$i = normalized[i],
348
- _x = _normalized$i.x,
349
- _y = _normalized$i.y;
350
- var gridX = Math.round(_x / gridSize);
351
- var gridY = Math.round(_y / gridSize);
352
- takenY.add(_y);
353
- takenX.add(_x);
354
- grid[gridX] = (_grid$gridX = grid[gridX]) !== null && _grid$gridX !== void 0 ? _grid$gridX : {};
355
- grid[gridX][gridY] = (_grid$gridX$gridY = grid[gridX][gridY]) !== null && _grid$gridX$gridY !== void 0 ? _grid$gridX$gridY : {
356
- clusterId: "".concat(gridX, "_").concat(gridY),
264
+ const grid = {};
265
+ const takenY = new Set();
266
+ const takenX = new Set();
267
+ for (let i = 0; i < normalized.length; i++) {
268
+ const {
269
+ x,
270
+ y
271
+ } = normalized[i];
272
+ const gridX = Math.round(x / gridSize);
273
+ const gridY = Math.round(y / gridSize);
274
+ takenY.add(y);
275
+ takenX.add(x);
276
+ grid[gridX] = grid[gridX] ?? {};
277
+ grid[gridX][gridY] = grid[gridX][gridY] ?? {
278
+ clusterId: `${gridX}_${gridY}`,
357
279
  members: []
358
280
  };
359
281
  grid[gridX][gridY].members.push(normalized[i]);
360
282
  }
361
- var clusters = {};
362
- var _iterator3 = (0, _createForOfIteratorHelper2["default"])(Object.keys(grid).map(function (x) {
363
- return Number.parseInt(x, 10);
364
- })),
365
- _step3;
366
- try {
367
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
368
- var _x3 = _step3.value;
369
- var _iterator4 = (0, _createForOfIteratorHelper2["default"])(Object.keys(grid[_x3]).map(function (y) {
370
- return Number.parseInt(y, 10);
371
- })),
372
- _step4;
373
- try {
374
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
375
- var _clusters$grid$_x3$_y, _clusters$grid$_x3$_y2;
376
- var _y3 = _step4.value;
377
- var pointHandled = false;
378
- for (var _i4 = 0, _arr = [_x3 - 1, _x3, _x3 + 1]; _i4 < _arr.length; _i4++) {
379
- var xNeighbour = _arr[_i4];
380
- for (var _i5 = 0, _arr2 = [_y3 - 1, _y3, _y3 + 1]; _i5 < _arr2.length; _i5++) {
381
- var _grid$xNeighbour;
382
- var yNeighbour = _arr2[_i5];
383
- if (xNeighbour === undefined || yNeighbour === undefined) continue;
384
- if (xNeighbour === _x3 && yNeighbour === _y3) continue;
385
- if (!((_grid$xNeighbour = grid[xNeighbour]) !== null && _grid$xNeighbour !== void 0 && _grid$xNeighbour[yNeighbour])) continue;
386
- pointHandled = true;
387
- grid[_x3][_y3].clusterId = grid[xNeighbour][yNeighbour].clusterId;
388
- break;
389
- }
390
- if (pointHandled) break;
391
- }
392
- clusters[grid[_x3][_y3].clusterId] = (_clusters$grid$_x3$_y = clusters[grid[_x3][_y3].clusterId]) !== null && _clusters$grid$_x3$_y !== void 0 ? _clusters$grid$_x3$_y : [];
393
- (_clusters$grid$_x3$_y2 = clusters[grid[_x3][_y3].clusterId]).push.apply(_clusters$grid$_x3$_y2, (0, _toConsumableArray2["default"])(grid[_x3][_y3].members));
283
+ const clusters = {};
284
+ for (const x of Object.keys(grid).map(x => Number.parseInt(x, 10))) {
285
+ for (const y of Object.keys(grid[x]).map(y => Number.parseInt(y, 10))) {
286
+ let pointHandled = false;
287
+ for (const xNeighbour of [x - 1, x, x + 1]) {
288
+ for (const yNeighbour of [y - 1, y, y + 1]) {
289
+ if (xNeighbour === undefined || yNeighbour === undefined) continue;
290
+ if (xNeighbour === x && yNeighbour === y) continue;
291
+ if (!grid[xNeighbour]?.[yNeighbour]) continue;
292
+ pointHandled = true;
293
+ grid[x][y].clusterId = grid[xNeighbour][yNeighbour].clusterId;
294
+ break;
394
295
  }
395
- } catch (err) {
396
- _iterator4.e(err);
397
- } finally {
398
- _iterator4.f();
296
+ if (pointHandled) break;
399
297
  }
298
+ clusters[grid[x][y].clusterId] = clusters[grid[x][y].clusterId] ?? [];
299
+ clusters[grid[x][y].clusterId].push(...grid[x][y].members);
400
300
  }
401
- } catch (err) {
402
- _iterator3.e(err);
403
- } finally {
404
- _iterator3.f();
405
301
  }
406
- var clustersInsights = [];
407
- for (var clusterId in clusters) {
408
- var _hints$axesTitle$hori, _hints$axesTitle$vert3;
409
- var size = clusters[clusterId].reduce(function (sum, _ref8) {
410
- var value = _ref8.value;
411
- return sum + (value !== null && value !== void 0 ? value : 1);
412
- }, 0);
413
- var labels = (0, _toConsumableArray2["default"])(clusters[clusterId]).sort(function (a, b) {
414
- return b.value - a.value;
415
- }).map(function (_ref9) {
416
- var label = _ref9.label;
417
- return label;
418
- }).filter(function (label) {
419
- return label !== undefined;
420
- });
421
- var uniqueLabels = (0, _toConsumableArray2["default"])(new Set(labels));
422
- var _x2 = clusters[clusterId].reduce(function (sum, _ref0) {
423
- var x = _ref0.x;
424
- return sum + x;
425
- }, 0) / clusters[clusterId].length;
426
- var _y2 = clusters[clusterId].reduce(function (sum, _ref1) {
427
- var y = _ref1.y;
428
- return sum + y;
429
- }, 0) / clusters[clusterId].length;
302
+ const clustersInsights = [];
303
+ for (const clusterId in clusters) {
304
+ const size = clusters[clusterId].reduce((sum, {
305
+ value
306
+ }) => sum + (value ?? 1), 0);
307
+ const labels = [...clusters[clusterId]].sort((a, b) => b.value - a.value).map(({
308
+ label
309
+ }) => label).filter(label => label !== undefined);
310
+ const uniqueLabels = [...new Set(labels)];
311
+ const x = clusters[clusterId].reduce((sum, {
312
+ x
313
+ }) => sum + x, 0) / clusters[clusterId].length;
314
+ const y = clusters[clusterId].reduce((sum, {
315
+ y
316
+ }) => sum + y, 0) / clusters[clusterId].length;
430
317
  clustersInsights.push({
431
318
  type: 'cluster',
432
319
  priority: 1,
433
- size: size,
320
+ size,
434
321
  labels: uniqueLabels,
435
322
  relativeSize: 'average',
436
323
  center: {
437
- x: _x2,
438
- y: _y2,
439
- xLabel: (_hints$axesTitle$hori = hints.axesTitle.horizontal) !== null && _hints$axesTitle$hori !== void 0 ? _hints$axesTitle$hori : guessedXKey,
440
- yLabel: (_hints$axesTitle$vert3 = hints.axesTitle.vertical) !== null && _hints$axesTitle$vert3 !== void 0 ? _hints$axesTitle$vert3 : guessedYKey
324
+ x,
325
+ y,
326
+ xLabel: hints.axesTitle.horizontal ?? guessedXKey,
327
+ yLabel: hints.axesTitle.vertical ?? guessedYKey
441
328
  }
442
329
  });
443
330
  }
444
331
  entitiesCount = Object.keys(clusters).length;
445
- clustersInsights.sort(function (a, b) {
446
- return b.size - a.size;
447
- });
448
- var relativeSizeDistrivution = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, 'significantly-bigger', {
449
- max: Number.POSITIVE_INFINITY,
450
- min: 0.85
451
- }), 'bigger', {
452
- min: 0.7,
453
- max: 0.85
454
- }), 'slightly-bigger', {
455
- min: 0.6,
456
- max: 0.7
457
- }), 'average', {
458
- min: 0.4,
459
- max: 0.6
460
- }), 'slightly-smaller', {
461
- max: 0.4,
462
- min: 0.3
463
- }), 'smaller', {
464
- min: 0.15,
465
- max: 0.3
466
- }), 'significantly-smaller', {
467
- min: Number.NEGATIVE_INFINITY,
468
- max: 0.15
469
- });
470
- var averageSize = clustersInsights.reduce(function (sum, cluster) {
471
- return sum + cluster.size;
472
- }, 0) / clustersInsights.length;
473
- var smallerClusters = clustersInsights.filter(function (cluster) {
474
- return cluster.size < averageSize;
475
- });
476
- var smallerSize = smallerClusters.reduce(function (sum, cluster) {
477
- return sum + cluster.size;
478
- }, 0) / smallerClusters.length;
479
- var biggerClusters = clustersInsights.filter(function (cluster) {
480
- return cluster.size > averageSize;
481
- });
482
- var biggerSize = biggerClusters.reduce(function (sum, cluster) {
483
- return sum + cluster.size;
484
- }, 0) / biggerClusters.length;
485
- var normalizingSize = averageSize * 2;
486
- var averageSizeNormalized = averageSize / normalizingSize;
487
- var smallerSizeNormalized = smallerSize / normalizingSize;
488
- var biggerSizeNormalized = biggerSize / normalizingSize;
332
+ clustersInsights.sort((a, b) => b.size - a.size);
333
+ const relativeSizeDistrivution = {
334
+ ['significantly-bigger']: {
335
+ max: Number.POSITIVE_INFINITY,
336
+ min: 0.85
337
+ },
338
+ ['bigger']: {
339
+ min: 0.7,
340
+ max: 0.85
341
+ },
342
+ ['slightly-bigger']: {
343
+ min: 0.6,
344
+ max: 0.7
345
+ },
346
+ ['average']: {
347
+ min: 0.4,
348
+ max: 0.6
349
+ },
350
+ ['slightly-smaller']: {
351
+ max: 0.4,
352
+ min: 0.3
353
+ },
354
+ ['smaller']: {
355
+ min: 0.15,
356
+ max: 0.3
357
+ },
358
+ ['significantly-smaller']: {
359
+ min: Number.NEGATIVE_INFINITY,
360
+ max: 0.15
361
+ }
362
+ };
363
+ const averageSize = clustersInsights.reduce((sum, cluster) => sum + cluster.size, 0) / clustersInsights.length;
364
+ const smallerClusters = clustersInsights.filter(cluster => cluster.size < averageSize);
365
+ const smallerSize = smallerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / smallerClusters.length;
366
+ const biggerClusters = clustersInsights.filter(cluster => cluster.size > averageSize);
367
+ const biggerSize = biggerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / biggerClusters.length;
368
+ const normalizingSize = averageSize * 2;
369
+ let averageSizeNormalized = averageSize / normalizingSize;
370
+ let smallerSizeNormalized = smallerSize / normalizingSize;
371
+ let biggerSizeNormalized = biggerSize / normalizingSize;
489
372
  smallerSizeNormalized = !Number.isNaN(smallerSizeNormalized) ? smallerSizeNormalized : 0.25;
490
373
  averageSizeNormalized = !Number.isNaN(averageSizeNormalized) ? averageSizeNormalized : 0.5;
491
374
  biggerSizeNormalized = !Number.isNaN(biggerSizeNormalized) ? biggerSizeNormalized : 0.75;
492
- var sizeMapBezier = (0, _bezier.makeBezier)([{
375
+ const sizeMapBezier = (0, _bezier.makeBezier)([{
493
376
  x: 0,
494
377
  y: 0
495
378
  }, {
@@ -510,25 +393,25 @@ var extractDataInsights = exports.extractDataInsights = function extractDataInsi
510
393
  width: 1,
511
394
  height: 1
512
395
  });
513
- for (var _i3 = 0, _clustersInsights = clustersInsights; _i3 < _clustersInsights.length; _i3++) {
514
- var clustersInsight = _clustersInsights[_i3];
515
- var _size = clustersInsight.size;
516
- var mappedSize = sizeMapBezier(_size / normalizingSize);
517
- for (var relativeSize in relativeSizeDistrivution) {
518
- var _relativeSizeDistrivu2 = relativeSizeDistrivution[relativeSize],
519
- min = _relativeSizeDistrivu2.min,
520
- max = _relativeSizeDistrivu2.max;
396
+ for (const clustersInsight of clustersInsights) {
397
+ const {
398
+ size
399
+ } = clustersInsight;
400
+ const mappedSize = sizeMapBezier(size / normalizingSize);
401
+ for (const relativeSize in relativeSizeDistrivution) {
402
+ const {
403
+ min,
404
+ max
405
+ } = relativeSizeDistrivution[relativeSize];
521
406
  if (mappedSize > min && mappedSize <= max) {
522
407
  clustersInsight.relativeSize = relativeSize;
523
408
  break;
524
409
  }
525
410
  }
526
411
  }
527
- (_insights2 = insights).push.apply(_insights2, clustersInsights);
412
+ insights.push(...clustersInsights);
528
413
  if (hints.axesTitle.horizontal) {
529
- var sortedX = (0, _toConsumableArray2["default"])(takenX).sort(function (a, b) {
530
- return a - b;
531
- });
414
+ const sortedX = [...takenX].sort((a, b) => a - b);
532
415
  dataRange.push({
533
416
  from: sortedX[0],
534
417
  to: sortedX[sortedX.length - 1],
@@ -536,9 +419,7 @@ var extractDataInsights = exports.extractDataInsights = function extractDataInsi
536
419
  });
537
420
  }
538
421
  if (hints.axesTitle.vertical) {
539
- var sortedY = (0, _toConsumableArray2["default"])(takenY).sort(function (a, b) {
540
- return a - b;
541
- });
422
+ const sortedY = [...takenY].sort((a, b) => a - b);
542
423
  dataRange.push({
543
424
  from: sortedY[0],
544
425
  to: sortedY[sortedY.length - 1],
@@ -546,177 +427,125 @@ var extractDataInsights = exports.extractDataInsights = function extractDataInsi
546
427
  });
547
428
  }
548
429
  } else if (dataType === 'grouped-values') {
549
- var _insights3;
550
- var makeRowKey = function makeRowKey(row) {
551
- return groupKeys.map(function (key, index) {
552
- return "".concat(index, "-").concat(getPropByPath(row, key));
553
- }).join('-');
554
- };
555
- var allRowsIds = data.map(makeRowKey);
556
- var groupedValues = {};
557
- for (var _i6 = 0; _i6 < data.length; _i6++) {
558
- var _groupedValues$key, _hints$titles$getHori9, _hints$titles$getHori0, _hints$titles5;
559
- var row = data[_i6];
560
- var key = allRowsIds[_i6];
561
- var groupKeyValue = getPropByPath(row, groupKeys[0]);
562
- groupedValues[key] = (_groupedValues$key = groupedValues[key]) !== null && _groupedValues$key !== void 0 ? _groupedValues$key : {
563
- groupName: (_hints$titles$getHori9 = (_hints$titles$getHori0 = (_hints$titles5 = hints.titles).getHorizontalAxesTitle) === null || _hints$titles$getHori0 === void 0 ? void 0 : _hints$titles$getHori0.call(_hints$titles5, groupKeyValue)) !== null && _hints$titles$getHori9 !== void 0 ? _hints$titles$getHori9 : groupKeyValue,
430
+ const makeRowKey = row => groupKeys.map((key, index) => `${index}-${getPropByPath(row, key)}`).join('-');
431
+ const allRowsIds = data.map(makeRowKey);
432
+ const groupedValues = {};
433
+ for (let i = 0; i < data.length; i++) {
434
+ const row = data[i];
435
+ const key = allRowsIds[i];
436
+ const groupKeyValue = getPropByPath(row, groupKeys[0]);
437
+ groupedValues[key] = groupedValues[key] ?? {
438
+ groupName: hints.titles.getHorizontalAxesTitle?.(groupKeyValue) ?? groupKeyValue,
564
439
  rows: []
565
440
  };
566
441
  groupedValues[key].rows.push(row);
567
442
  }
568
- var fields = (0, _toConsumableArray2["default"])(hints.fields.values);
569
- var grouppingKeys = Object.fromEntries(groupKeys.map(function (key) {
570
- return [key, true];
571
- }));
443
+ let fields = [...hints.fields.values];
444
+ const grouppingKeys = Object.fromEntries(groupKeys.map(key => [key, true]));
572
445
  if (fields.length === 0) {
573
- var _fields;
574
- (_fields = fields).push.apply(_fields, (0, _toConsumableArray2["default"])(Object.keys(keysMap)));
446
+ fields.push(...Object.keys(keysMap));
575
447
  }
576
- fields = fields.filter(function (key) {
577
- return !grouppingKeys[key];
578
- });
579
- var groups = Object.entries(groupedValues).map(function (_ref10) {
580
- var _group$groupName;
581
- var _ref11 = (0, _slicedToArray2["default"])(_ref10, 2),
582
- groupKey = _ref11[0],
583
- group = _ref11[1];
584
- var values = [];
585
- var _iterator5 = (0, _createForOfIteratorHelper2["default"])(group.rows),
586
- _step5;
587
- try {
588
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
589
- var _row = _step5.value;
590
- var _iterator6 = (0, _createForOfIteratorHelper2["default"])(fields),
591
- _step6;
592
- try {
593
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
594
- var _ref13, _hints$titles$valuesA, _hints$titles$getVert, _hints$titles6;
595
- var field = _step6.value;
596
- values.push({
597
- label: (_ref13 = (_hints$titles$valuesA = hints.titles.valuesAxes[field]) !== null && _hints$titles$valuesA !== void 0 ? _hints$titles$valuesA : (_hints$titles$getVert = (_hints$titles6 = hints.titles).getVerticalAxesTitle) === null || _hints$titles$getVert === void 0 ? void 0 : _hints$titles$getVert.call(_hints$titles6, field)) !== null && _ref13 !== void 0 ? _ref13 : field,
598
- value: getPropByPath(_row, field)
599
- });
600
- }
601
- } catch (err) {
602
- _iterator6.e(err);
603
- } finally {
604
- _iterator6.f();
605
- }
448
+ fields = fields.filter(key => !grouppingKeys[key]);
449
+ const groups = Object.entries(groupedValues).map(([groupKey, group]) => {
450
+ const values = [];
451
+ for (const row of group.rows) {
452
+ for (const field of fields) {
453
+ values.push({
454
+ label: hints.titles.valuesAxes[field] ?? hints.titles.getVerticalAxesTitle?.(field) ?? field,
455
+ value: getPropByPath(row, field)
456
+ });
606
457
  }
607
- } catch (err) {
608
- _iterator5.e(err);
609
- } finally {
610
- _iterator5.f();
611
458
  }
612
- values.sort(function (a, b) {
459
+ values.sort((a, b) => {
613
460
  if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;
614
461
  return b.value - a.value;
615
462
  });
616
- var averageValue = values.reduce(function (sum, _ref12) {
617
- var value = _ref12.value;
618
- return sum + value;
619
- }, 0) / values.length;
463
+ const averageValue = values.reduce((sum, {
464
+ value
465
+ }) => sum + value, 0) / values.length;
620
466
  return {
621
- label: (_group$groupName = group.groupName) !== null && _group$groupName !== void 0 ? _group$groupName : groupKey,
622
- values: values,
467
+ label: group.groupName ?? groupKey,
468
+ values,
623
469
  averageValue: !Number.isNaN(averageValue) ? averageValue : undefined
624
470
  };
625
471
  });
626
- groups.sort(function (a, b) {
472
+ groups.sort((a, b) => {
627
473
  if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;
628
474
  return b.averageValue - a.averageValue;
629
475
  });
630
476
  entitiesCount = groups.length;
631
- (_insights3 = insights).push.apply(_insights3, (0, _toConsumableArray2["default"])(groups.map(function (group) {
632
- return {
633
- type: 'comparison',
634
- label: group.label,
635
- values: group.values,
636
- priority: 1
637
- };
477
+ insights.push(...groups.map(group => ({
478
+ type: 'comparison',
479
+ label: group.label,
480
+ values: group.values,
481
+ priority: 1
638
482
  })));
639
483
  }
640
484
  }
641
485
  if (dataType === 'values-set') {
642
- var _fields2 = (0, _toConsumableArray2["default"])(hints.fields.values);
643
- if (_fields2.length === 0) {
644
- _fields2.push.apply(_fields2, (0, _toConsumableArray2["default"])(Object.keys(keysMap)));
486
+ const fields = [...hints.fields.values];
487
+ if (fields.length === 0) {
488
+ fields.push(...Object.keys(keysMap));
645
489
  }
646
- var values = _fields2.map(function (field) {
647
- var _ref14, _hints$titles$valuesA2, _hints$titles$getValu, _hints$titles7;
648
- return {
649
- label: (_ref14 = (_hints$titles$valuesA2 = hints.titles.valuesAxes[field]) !== null && _hints$titles$valuesA2 !== void 0 ? _hints$titles$valuesA2 : (_hints$titles$getValu = (_hints$titles7 = hints.titles).getValueAxesTitle) === null || _hints$titles$getValu === void 0 ? void 0 : _hints$titles$getValu.call(_hints$titles7, field)) !== null && _ref14 !== void 0 ? _ref14 : field,
650
- value: getPropByPath(data, field)
651
- };
652
- });
490
+ const values = fields.map(field => ({
491
+ label: hints.titles.valuesAxes[field] ?? hints.titles.getValueAxesTitle?.(field) ?? field,
492
+ value: getPropByPath(data, field)
493
+ }));
653
494
  entitiesCount = values.length;
654
- values.sort(function (a, b) {
495
+ values.sort((a, b) => {
655
496
  if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;
656
497
  return b.value - a.value;
657
498
  });
658
499
  insights.push({
659
500
  type: 'comparison',
660
- values: values,
501
+ values,
661
502
  priority: 1
662
503
  });
663
504
  }
664
505
  if (dataType === 'indexed-groups') {
665
- var _insights4;
666
- var _groups = (0, _toConsumableArray2["default"])(hints.groups).map(function (groupKey) {
667
- var _getPropByPath;
668
- var values = (0, _toConsumableArray2["default"])(hints.fields.values).filter(function (fieldPath) {
669
- return String(fieldPath).startsWith("".concat(groupKey, "."));
670
- }).map(function (fieldPath) {
671
- return {
672
- label: getPropByPath(hints.titles.valuesAxes, String(fieldPath).substring(String(groupKey).length + 1)),
673
- value: getPropByPath(data, String(fieldPath))
674
- };
675
- });
676
- values.sort(function (a, b) {
506
+ const groups = [...hints.groups].map(groupKey => {
507
+ const values = [...hints.fields.values].filter(fieldPath => String(fieldPath).startsWith(`${groupKey}.`)).map(fieldPath => ({
508
+ label: getPropByPath(hints.titles.valuesAxes, String(fieldPath).substring(String(groupKey).length + 1)),
509
+ value: getPropByPath(data, String(fieldPath))
510
+ }));
511
+ values.sort((a, b) => {
677
512
  if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;
678
513
  return b.value - a.value;
679
514
  });
680
- var averageValue = values.reduce(function (sum, _ref15) {
681
- var value = _ref15.value;
682
- return sum + value;
683
- }, 0) / values.length;
515
+ const averageValue = values.reduce((sum, {
516
+ value
517
+ }) => sum + value, 0) / values.length;
684
518
  return {
685
- label: (_getPropByPath = getPropByPath(hints.titles.valuesAxes, String(groupKey))) !== null && _getPropByPath !== void 0 ? _getPropByPath : groupKey,
686
- values: values,
519
+ label: getPropByPath(hints.titles.valuesAxes, String(groupKey)) ?? groupKey,
520
+ values,
687
521
  averageValue: !Number.isNaN(averageValue) ? averageValue : undefined
688
522
  };
689
523
  });
690
- _groups.sort(function (a, b) {
524
+ groups.sort((a, b) => {
691
525
  if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;
692
526
  return b.averageValue - a.averageValue;
693
527
  });
694
- entitiesCount = _groups.length;
695
- (_insights4 = insights).push.apply(_insights4, (0, _toConsumableArray2["default"])(_groups.map(function (group) {
696
- return {
697
- type: 'comparison',
698
- label: group.label,
699
- values: group.values,
700
- priority: 1
701
- };
528
+ entitiesCount = groups.length;
529
+ insights.push(...groups.map(group => ({
530
+ type: 'comparison',
531
+ label: group.label,
532
+ values: group.values,
533
+ priority: 1
702
534
  })));
703
535
  }
704
- var hasHighPriorityInsights = insights.some(function (insight) {
705
- return insight.priority > 0;
706
- });
536
+ const hasHighPriorityInsights = insights.some(insight => insight.priority > 0);
707
537
  if (hasHighPriorityInsights) {
708
- insights = insights.filter(function (insight) {
709
- return insight.priority > 0;
710
- });
538
+ insights = insights.filter(insight => insight.priority > 0);
711
539
  } else {
712
540
  insights = insights.slice(0, 1);
713
541
  }
714
542
  return {
715
- insights: insights,
543
+ insights,
716
544
  dataType: dataType,
717
- dataRange: dataRange,
718
- dataTitle: dataTitle,
719
- entitiesCount: entitiesCount
545
+ dataRange,
546
+ dataTitle,
547
+ entitiesCount
720
548
  };
721
549
  };
550
+ exports.extractDataInsights = extractDataInsights;
722
551
  //# sourceMappingURL=insights.js.map