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