@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 +1 @@
1
- {"version":3,"file":"insights.js","names":["makeBezier","getPropByPath","obj","path","String","split","i","length","_typeof","movingAverage","data","frame","result","Math","floor","ceil","startIndex","max","endIndex","min","part","slice","sum","reduce","item","value","push","extractDataInsights","hints","config","_config$dataType","_hints$axesTitle$vert","_ref","insights","dataType","dataRange","groupKeys","_toConsumableArray","groups","dataTitle","axesTitle","vertical","horizontal","entitiesCount","keysMap","Object","fromEntries","keys","Array","isArray","map","key","fields","horizontalAxes","size","verticalAxes","valueAxes","possibleGroupKeys","filter","allData","row","Set","_ref2","_hints$titles$getHori","_hints$titles$getHori2","_hints$titles","_ref3","_hints$titles$getHori3","_hints$titles$getHori4","_hints$titles2","firstRow","lastRow","possibleValueKeys","concat","valuesKeys","possibleLabelKeys","labelsKey","fromKey","toKey","from","titles","getHorizontalAxesTitle","call","to","_hints$axesTitle$vert2","label","_iterator","_createForOfIteratorHelper","_step","_loop","_config$movingAverage","_config$movingAverage2","_insights","valueKey","values","average","variance","pow","standardDeviation","sqrt","trendStrengths","frameSize","longMovingAverageSize","longSize","shortMovingAverageSize","shortSize","longMovingAverage","shortMovingAverage","table","_values$i","_longMovingAverage$i","_shortMovingAverage$i","Number","NaN","toFixed","strengthsMap","growth","weak","medium","strong","reduction","recordTrend","_ref4","width","type","_hints$pointsDensity$","_hints$pointsDensity","_hints$pointsDensity$2","_hints$pointsDensity2","normalizedHeight","abs","pointsDensity","normalizedWidth","tang","trendStrength","trendTangens","strength","priority","change","dataKey","displayValue","generalTrend","valuesAxes","localTrends","_config$movingAverage3","notableDiff","lastSwitch","lastSwitchValue","shortWasAbove","_ref5","_hints$titles$getHori5","_hints$titles$getHori6","_hints$titles3","_ref6","_hints$titles$getHori7","_hints$titles$getHori8","_hints$titles4","shortIsAbove","diff","lastIndex","lastValue","apply","s","n","done","err","e","f","_ref7","_config$clustersGridS","_insights2","guessedXKey","guessedYKey","guessedValueKey","guessedLabelKey","normalized","x","y","gridSize","clustersGridSize","grid","usedX","usedY","_iterator2","_step2","_step2$value","add","orderedX","sort","a","b","orderedY","distancesX","index","distancesY","avgDistanceX","avgDistanceY","belowAvgDistancesX","belowAvgDistancesY","betweenDistanceX","betweenDistanceY","avgDistance","isNaN","takenY","takenX","_grid$gridX","_grid$gridX$gridY","_normalized$i","gridX","round","gridY","clusterId","members","clusters","_iterator3","parseInt","_step3","_iterator4","_step4","_clusters$grid$_x3$_y","_clusters$grid$_x3$_y2","pointHandled","_i4","_arr","xNeighbour","_i5","_arr2","_grid$xNeighbour","yNeighbour","undefined","clustersInsights","_hints$axesTitle$hori","_hints$axesTitle$vert3","_ref8","labels","_ref9","uniqueLabels","_ref0","_ref1","relativeSize","center","xLabel","yLabel","relativeSizeDistrivution","_defineProperty","POSITIVE_INFINITY","NEGATIVE_INFINITY","averageSize","cluster","smallerClusters","smallerSize","biggerClusters","biggerSize","normalizingSize","averageSizeNormalized","smallerSizeNormalized","biggerSizeNormalized","sizeMapBezier","weight","height","_i3","_clustersInsights","clustersInsight","mappedSize","_relativeSizeDistrivu2","sortedX","sortedY","_insights3","makeRowKey","join","allRowsIds","groupedValues","_groupedValues$key","_hints$titles$getHori9","_hints$titles$getHori0","_hints$titles5","groupKeyValue","groupName","rows","grouppingKeys","_fields","entries","_ref10","_group$groupName","_ref11","_slicedToArray","groupKey","group","_iterator5","_step5","_iterator6","_step6","_ref13","_hints$titles$valuesA","_hints$titles$getVert","_hints$titles6","field","getVerticalAxesTitle","averageValue","_ref12","_ref14","_hints$titles$valuesA2","_hints$titles$getValu","_hints$titles7","getValueAxesTitle","_insights4","_getPropByPath","fieldPath","startsWith","substring","_ref15","hasHighPriorityInsights","some","insight"],"sources":["../../../src/a11y/insights.ts"],"sourcesContent":["import { makeBezier } from './bezier';\nimport type { DataStructureHints, DataSummarizationConfig } from './hints';\n\nexport type TrendNode = {\n type: 'trend';\n priority: number;\n change: {\n from: number;\n to: number;\n strength:\n | 'strong-reduction'\n | 'reduction'\n | 'weak-reduction'\n | 'static'\n | 'weak-growth'\n | 'growth'\n | 'strong-growth';\n };\n from: unknown;\n to: unknown;\n dataKey: string | number;\n label?: string;\n};\nexport type GeneralTrendNode = Omit<TrendNode, 'type'> & { type: 'general-trend' };\nexport type ComparisonNode = {\n type: 'comparison';\n label?: string;\n priority: number;\n values: {\n value: unknown;\n label: string;\n }[];\n};\n\ntype ClusterRelativeSize =\n | 'significantly-smaller'\n | 'smaller'\n | 'slightly-smaller'\n | 'average'\n | 'slightly-bigger'\n | 'bigger'\n | 'significantly-bigger';\nexport type ClusterNode = {\n type: 'cluster';\n priority: number;\n size: number;\n labels: unknown[];\n center: {\n x: number;\n xLabel: string | number;\n y: number;\n yLabel: string | number;\n };\n relativeSize: ClusterRelativeSize;\n};\nexport type Insight = TrendNode | GeneralTrendNode | ComparisonNode | ClusterNode;\n\nexport type SerializableDataType =\n | 'time-series'\n | 'points-cloud'\n | 'values-set'\n | 'grouped-values'\n | 'indexed-groups';\n\nexport type AnalyzedData = {\n insights: Insight[];\n dataType: SerializableDataType;\n dataRange: {\n from: string | number | Date;\n to: string | number | Date;\n label: string | number | null;\n }[];\n dataTitle: string | null;\n entitiesCount: number;\n};\n\nconst getPropByPath = (obj: any, path: number | string | string[]): unknown => {\n if (typeof path === 'number') path = String(path);\n if (typeof path === 'string') path = path.split('.');\n for (let i = 0; i < path.length; i++) {\n if (typeof obj !== 'object' || obj === null) return obj;\n obj = obj[path[i]];\n }\n return obj;\n};\n\nconst movingAverage = (data: number[], frame: number) => {\n const result: number[] = [];\n frame = Math.floor(frame) % 2 === data.length % 2 ? Math.floor(frame) : Math.ceil(frame);\n\n for (let i = 0; i < data.length; i++) {\n let startIndex = Math.max(0, i - Math.floor(frame / 2));\n let endIndex = Math.min(data.length, i + Math.ceil(frame / 2));\n startIndex = Math.min(startIndex, Math.max(0, endIndex - frame));\n endIndex = Math.max(endIndex, Math.min(data.length, startIndex + frame));\n const part = data.slice(startIndex, endIndex);\n const sum = part.reduce((sum, item) => sum + item, 0);\n const value = sum / part.length;\n result.push(value);\n }\n return result;\n};\n\nexport const extractDataInsights = (\n data: Record<string, unknown>[] | Record<string, unknown>,\n hints: DataStructureHints,\n config: DataSummarizationConfig,\n): AnalyzedData => {\n let insights: AnalyzedData['insights'] = [];\n let dataType: AnalyzedData['dataType'] | null = config.dataType ?? hints.dataType;\n const dataRange: AnalyzedData['dataRange'] = [];\n let groupKeys = [...hints.groups];\n const dataTitle: string | null = hints.axesTitle.vertical ?? hints.axesTitle.horizontal;\n let entitiesCount = 0;\n\n const keysMap = Object.fromEntries(\n Object.keys((Array.isArray(data) ? data[0] : data) ?? {}).map((key) => [key, true]),\n );\n\n if (!dataType) {\n if (\n ((keysMap['y'] || keysMap['y1'] || keysMap['y2']) &&\n keysMap['x'] &&\n (keysMap['value'] || keysMap['label'])) ||\n (hints.fields.horizontalAxes.size > 0 &&\n hints.fields.verticalAxes.size > 0 &&\n hints.fields.valueAxes.size > 0)\n ) {\n dataType = 'points-cloud';\n } else if (Array.isArray(data) && data.length > 6) {\n dataType = 'time-series';\n } else if (Array.isArray(data) && Object.keys(keysMap).length >= 3) {\n const possibleGroupKeys = Object.keys(keysMap)\n .filter((key) => typeof data[0][key] === 'string')\n .filter((key) => {\n const allData = data.map((row) => row[key]);\n return new Set(allData).size === allData.length;\n });\n if (possibleGroupKeys.length === 1) {\n groupKeys = possibleGroupKeys;\n dataType = 'grouped-values';\n } else {\n dataType = 'values-set';\n }\n } else {\n dataType = 'values-set';\n }\n }\n\n if (dataType === 'grouped-values' && groupKeys.length === 0) {\n dataType = 'values-set';\n }\n\n if (Array.isArray(data)) {\n if (dataType === 'time-series') {\n const firstRow = data[0];\n const lastRow = data[data.length - 1];\n const possibleValueKeys = ['y', 'value', ...hints.fields.verticalAxes];\n const valuesKeys = possibleValueKeys.filter((key) => keysMap[key]);\n\n const possibleLabelKeys = ['label', 'x', ...hints.fields.horizontalAxes];\n const labelsKey = possibleLabelKeys.filter((key) => keysMap[key])[0];\n\n entitiesCount = Object.keys(valuesKeys).length;\n\n const fromKey = firstRow[labelsKey];\n const toKey = lastRow[labelsKey];\n const from =\n hints.titles.getHorizontalAxesTitle?.(fromKey as string) ??\n hints.titles.horizontalAxes[fromKey as string] ??\n (fromKey as string);\n const to =\n hints.titles.getHorizontalAxesTitle?.(toKey as string) ??\n hints.titles.horizontalAxes[toKey as string] ??\n (toKey as string);\n\n if (entitiesCount > 0) {\n dataRange.push({ from, to, label: hints.axesTitle.vertical ?? labelsKey });\n }\n\n for (const valueKey of valuesKeys) {\n const values = (data as Record<string, number>[])\n .map((row) => row[valueKey])\n .filter((value) => typeof value !== 'symbol');\n const sum = values.reduce((sum, value) => sum + value, 0);\n const average = sum / values.length;\n const variance =\n (1 / values.length) *\n values.map((value) => (value - average) ** 2).reduce((sum, item) => sum + item, 0);\n const standardDeviation = Math.sqrt(variance);\n const trendStrengths = ['static', 'weak', 'medium', 'strong'] as const;\n\n const frameSize = Math.sqrt(values.length);\n const longMovingAverageSize = config.movingAverage.longSize ?? frameSize;\n const shortMovingAverageSize = config.movingAverage.shortSize ?? Math.sqrt(frameSize);\n const longMovingAverage = movingAverage(values, longMovingAverageSize);\n const shortMovingAverage =\n values.length < 8 ? values : movingAverage(values, shortMovingAverageSize);\n\n const table = [];\n for (const i in values) {\n table.push({\n value: (values[i] ?? Number.NaN).toFixed(2),\n long: (longMovingAverage[i] ?? Number.NaN).toFixed(2),\n short: (shortMovingAverage[i] ?? Number.NaN).toFixed(2),\n });\n }\n\n const strengthsMap = {\n growth: {\n static: 'static',\n weak: 'weak-growth',\n medium: 'growth',\n strong: 'strong-growth',\n },\n reduction: {\n static: 'static',\n weak: 'weak-reduction',\n medium: 'reduction',\n strong: 'strong-reduction',\n },\n } as const;\n\n const recordTrend = ({\n value,\n width,\n label,\n type,\n }: {\n value: { from: number; to: number };\n width: number;\n label: { from: unknown; to: unknown; dataKey: string | number; displayValue?: string };\n type: 'general-trend' | 'trend';\n }): GeneralTrendNode | TrendNode | undefined => {\n for (let i = 0; i < trendStrengths.length; i++) {\n const normalizedHeight =\n Math.abs(value.from - value.to) / (hints.pointsDensity?.verticalAxes ?? 1);\n const normalizedWidth = width / (hints.pointsDensity?.horizontalAxes ?? 1);\n const tang = normalizedHeight / normalizedWidth;\n const trendStrength = trendStrengths[i];\n if (tang <= config.trendTangens[trendStrength] || i === trendStrengths.length - 1) {\n const strength =\n value.to > value.from\n ? strengthsMap.growth[trendStrength]\n : strengthsMap.reduction[trendStrength];\n\n return {\n type,\n priority: i,\n change: {\n from: value.from,\n to: value.to,\n strength,\n },\n from: label.from,\n to: label.to,\n dataKey: label.dataKey,\n label: label.displayValue,\n };\n }\n }\n };\n\n const generalTrend = recordTrend({\n type: 'general-trend',\n value: {\n from: shortMovingAverage[0],\n to: shortMovingAverage[shortMovingAverage.length - 1],\n },\n width: data.length,\n label: { from, to, dataKey: valueKey, displayValue: hints.titles.valuesAxes[valueKey] },\n })!;\n const localTrends: Insight[] = [];\n {\n const notableDiff = config.movingAverage.notableDiff ?? standardDeviation / 10;\n let lastSwitch = 0;\n let lastSwitchValue = shortMovingAverage[lastSwitch];\n let shortWasAbove = shortMovingAverage[0] > longMovingAverage[0];\n for (let i = 1; i < data.length; i++) {\n const shortIsAbove = shortMovingAverage[i] > longMovingAverage[i];\n const diff = Math.abs(shortMovingAverage[i] - longMovingAverage[i]);\n\n if (shortIsAbove === shortWasAbove) continue;\n if (diff < notableDiff) continue;\n if (i === 0 && lastSwitch === data.length - 1) continue;\n if (i === data.length - 1 && lastSwitch === 0) continue;\n i = Math.min(i, data.length - 1);\n\n const fromKey = data[lastSwitch][labelsKey];\n const toKey = data[i][labelsKey];\n const from =\n hints.titles.getHorizontalAxesTitle?.(fromKey as string) ??\n hints.titles.horizontalAxes[fromKey as string] ??\n fromKey;\n const to =\n hints.titles.getHorizontalAxesTitle?.(toKey as string) ??\n hints.titles.horizontalAxes[toKey as string] ??\n toKey;\n localTrends.push(\n recordTrend({\n type: 'trend',\n value: {\n from: lastSwitchValue,\n to: shortMovingAverage[i],\n },\n width: i - lastSwitch,\n label: {\n from,\n to,\n dataKey: valueKey,\n displayValue: hints.titles.valuesAxes[valueKey],\n },\n })!,\n );\n lastSwitch = i;\n lastSwitchValue = shortMovingAverage[lastSwitch];\n shortWasAbove = shortIsAbove;\n }\n\n if (lastSwitch !== 0) {\n const lastIndex = shortMovingAverage.length - 1;\n const lastValue = shortMovingAverage[lastIndex];\n if (Math.abs(lastSwitchValue - lastValue) > notableDiff) {\n localTrends.push(\n recordTrend({\n type: 'trend',\n value: {\n from: lastSwitchValue,\n to: lastValue,\n },\n width: lastIndex - lastSwitch,\n label: {\n from: data[lastSwitch][labelsKey],\n to: data[lastIndex][labelsKey],\n dataKey: valueKey,\n displayValue: hints.titles.valuesAxes[valueKey],\n },\n })!,\n );\n }\n }\n }\n insights.push(generalTrend);\n insights.push(...localTrends);\n }\n } else if (dataType === 'points-cloud') {\n const guessedXKey = [...hints.fields.horizontalAxes.values(), 'x'][0];\n const guessedYKey = [...hints.fields.verticalAxes.values(), 'y'][0];\n const guessedValueKey = [...hints.fields.valueAxes.values(), 'value'][0];\n const guessedLabelKey = keysMap['label'] ? 'label' : guessedValueKey;\n const normalized = data.map((row) => ({\n x: row[guessedXKey] as number,\n y: row[guessedYKey] as number,\n label: row[guessedLabelKey],\n value: row[guessedValueKey] as number,\n }));\n let gridSize =\n config.clustersGridSize ?? hints.grid.verticalAxes ?? hints.grid.horizontalAxes;\n if (!gridSize) {\n const usedX = new Set<number>();\n const usedY = new Set<number>();\n for (const { x, y } of normalized) {\n usedX.add(x);\n usedY.add(y);\n }\n const orderedX = [...usedX].sort((a, b) => a - b);\n const orderedY = [...usedY].sort((a, b) => a - b);\n const distancesX = orderedX.slice(0, -1).map((x, index) => orderedX[index + 1] - x);\n const distancesY = orderedY.slice(0, -1).map((y, index) => orderedY[index + 1] - y);\n const avgDistanceX = distancesX.reduce((sum, x) => sum + x, 0) / distancesX.length;\n const avgDistanceY = distancesY.reduce((sum, y) => sum + y, 0) / distancesY.length;\n const belowAvgDistancesX = distancesX.filter((x) => x < avgDistanceX);\n const belowAvgDistancesY = distancesY.filter((y) => y < avgDistanceY);\n const betweenDistanceX =\n belowAvgDistancesX.reduce((sum, x) => sum + x, 0) / belowAvgDistancesX.length;\n const betweenDistanceY =\n belowAvgDistancesY.reduce((sum, y) => sum + y, 0) / belowAvgDistancesY.length;\n let avgDistance = 0;\n if (!Number.isNaN(betweenDistanceX) && !Number.isNaN(betweenDistanceY)) {\n avgDistance = (betweenDistanceX + betweenDistanceY) / 2;\n } else if (!Number.isNaN(betweenDistanceX)) {\n avgDistance = betweenDistanceX;\n } else if (!Number.isNaN(betweenDistanceY)) {\n avgDistance = betweenDistanceY;\n } else {\n avgDistance = (avgDistanceX + avgDistanceY) / 2;\n }\n gridSize = Math.sqrt(Math.sqrt(avgDistance));\n }\n\n const grid: {\n [x: string]: { [y: string]: { clusterId: string; members: typeof normalized } };\n } = {};\n const takenY = new Set<number>();\n const takenX = new Set<number>();\n for (let i = 0; i < normalized.length; i++) {\n const { x, y } = normalized[i];\n const gridX = Math.round(x / gridSize!);\n const gridY = Math.round(y / gridSize!);\n takenY.add(y);\n takenX.add(x);\n grid[gridX] = grid[gridX] ?? {};\n grid[gridX][gridY] = grid[gridX][gridY] ?? { clusterId: `${gridX}_${gridY}`, members: [] };\n grid[gridX][gridY].members.push(normalized[i]);\n }\n const clusters: { [clusterId: string]: typeof normalized } = {};\n for (const x of Object.keys(grid).map((x) => Number.parseInt(x, 10))) {\n for (const y of Object.keys(grid[x]).map((y) => Number.parseInt(y, 10))) {\n let pointHandled = false;\n for (const xNeighbour of [x - 1, x, x + 1]) {\n for (const yNeighbour of [y - 1, y, y + 1]) {\n if (xNeighbour === undefined || yNeighbour === undefined) continue;\n if (xNeighbour === x && yNeighbour === y) continue;\n if (!grid[xNeighbour]?.[yNeighbour]) continue;\n pointHandled = true;\n grid[x][y].clusterId = grid[xNeighbour][yNeighbour].clusterId;\n break;\n }\n if (pointHandled) break;\n }\n clusters[grid[x][y].clusterId] = clusters[grid[x][y].clusterId] ?? [];\n clusters[grid[x][y].clusterId].push(...grid[x][y].members);\n }\n }\n const clustersInsights: ClusterNode[] = [];\n for (const clusterId in clusters) {\n const size = clusters[clusterId].reduce((sum, { value }) => sum + (value ?? 1), 0);\n const labels = [...clusters[clusterId]]\n .sort((a, b) => b.value - a.value)\n .map(({ label }) => label)\n .filter((label) => label !== undefined);\n const uniqueLabels = [...new Set(labels)];\n const x =\n clusters[clusterId].reduce((sum, { x }) => sum + x, 0) / clusters[clusterId].length;\n const y =\n clusters[clusterId].reduce((sum, { y }) => sum + y, 0) / clusters[clusterId].length;\n\n clustersInsights.push({\n type: 'cluster',\n priority: 1,\n size,\n labels: uniqueLabels,\n relativeSize: 'average',\n center: {\n x,\n y,\n xLabel: hints.axesTitle.horizontal ?? guessedXKey,\n yLabel: hints.axesTitle.vertical ?? guessedYKey,\n },\n });\n }\n entitiesCount = Object.keys(clusters).length;\n clustersInsights.sort((a, b) => b.size - a.size);\n\n const relativeSizeDistrivution = {\n ['significantly-bigger']: { max: Number.POSITIVE_INFINITY, min: 0.85 },\n ['bigger']: { min: 0.7, max: 0.85 },\n ['slightly-bigger']: { min: 0.6, max: 0.7 },\n ['average']: { min: 0.4, max: 0.6 },\n ['slightly-smaller']: { max: 0.4, min: 0.3 },\n ['smaller']: { min: 0.15, max: 0.3 },\n ['significantly-smaller']: { min: Number.NEGATIVE_INFINITY, max: 0.15 },\n } as { [key in ClusterRelativeSize]: { min: number; max: number } };\n const averageSize =\n clustersInsights.reduce((sum, cluster) => sum + cluster.size, 0) / clustersInsights.length;\n const smallerClusters = clustersInsights.filter((cluster) => cluster.size < averageSize);\n const smallerSize =\n smallerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / smallerClusters.length;\n const biggerClusters = clustersInsights.filter((cluster) => cluster.size > averageSize);\n const biggerSize =\n biggerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / biggerClusters.length;\n\n const normalizingSize = averageSize * 2;\n let averageSizeNormalized = averageSize / normalizingSize;\n let smallerSizeNormalized = smallerSize / normalizingSize;\n let biggerSizeNormalized = biggerSize / normalizingSize;\n\n smallerSizeNormalized = !Number.isNaN(smallerSizeNormalized) ? smallerSizeNormalized : 0.25;\n averageSizeNormalized = !Number.isNaN(averageSizeNormalized) ? averageSizeNormalized : 0.5;\n biggerSizeNormalized = !Number.isNaN(biggerSizeNormalized) ? biggerSizeNormalized : 0.75;\n\n const sizeMapBezier = makeBezier(\n [\n { x: 0, y: 0 },\n { x: 0.25, y: smallerSizeNormalized, weight: 10 },\n { x: 0.5, y: averageSizeNormalized },\n { x: 0.75, y: biggerSizeNormalized, weight: 10 },\n { x: 1, y: 1 },\n ],\n { width: 1, height: 1 },\n );\n\n for (const clustersInsight of clustersInsights) {\n const { size } = clustersInsight;\n const mappedSize = sizeMapBezier(size / normalizingSize);\n for (const relativeSize in relativeSizeDistrivution) {\n const { min, max } = relativeSizeDistrivution[relativeSize as ClusterRelativeSize];\n if (mappedSize > min && mappedSize <= max) {\n clustersInsight.relativeSize = relativeSize as ClusterRelativeSize;\n break;\n }\n }\n }\n\n insights.push(...clustersInsights);\n\n if (hints.axesTitle.horizontal) {\n const sortedX = [...takenX].sort((a, b) => a - b);\n dataRange.push({\n from: sortedX[0] as any,\n to: sortedX[sortedX.length - 1] as any,\n label: hints.axesTitle.horizontal,\n });\n }\n if (hints.axesTitle.vertical) {\n const sortedY = [...takenY].sort((a, b) => a - b);\n dataRange.push({\n from: sortedY[0] as any,\n to: sortedY[sortedY.length - 1] as any,\n label: hints.axesTitle.vertical,\n });\n }\n } else if (dataType === 'grouped-values') {\n const makeRowKey = (row: Record<string, unknown>) =>\n groupKeys.map((key, index) => `${index}-${getPropByPath(row, key)}`).join('-');\n const allRowsIds = data.map(makeRowKey);\n const groupedValues: {\n [groupId: string]: { groupName: string; rows: Record<string, unknown>[] };\n } = {};\n for (let i = 0; i < data.length; i++) {\n const row = data[i];\n const key = allRowsIds[i];\n const groupKeyValue = getPropByPath(row, groupKeys[0]) as string;\n groupedValues[key] = groupedValues[key] ?? {\n groupName: hints.titles.getHorizontalAxesTitle?.(groupKeyValue) ?? groupKeyValue,\n rows: [],\n };\n groupedValues[key].rows.push(row);\n }\n\n let fields = [...hints.fields.values];\n const grouppingKeys = Object.fromEntries(groupKeys.map((key) => [key, true]));\n if (fields.length === 0) {\n fields.push(...Object.keys(keysMap));\n }\n fields = fields.filter((key) => !grouppingKeys[key]);\n const groups = Object.entries(groupedValues).map(([groupKey, group]) => {\n const values: { label: string; value: unknown }[] = [];\n for (const row of group.rows) {\n for (const field of fields) {\n values.push({\n label:\n hints.titles.valuesAxes[field] ??\n hints.titles.getVerticalAxesTitle?.(field) ??\n (field as string),\n value: getPropByPath(row, field),\n });\n }\n }\n\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n const averageValue =\n values.reduce((sum, { value }) => sum + (value as number), 0) / values.length;\n return {\n label: group.groupName ?? groupKey,\n values,\n averageValue: !Number.isNaN(averageValue) ? averageValue : undefined,\n };\n });\n\n groups.sort((a, b) => {\n if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;\n return b.averageValue - a.averageValue;\n });\n entitiesCount = groups.length;\n insights.push(\n ...groups.map(\n (group) =>\n ({\n type: 'comparison',\n label: group.label,\n values: group.values,\n priority: 1,\n }) as ComparisonNode,\n ),\n );\n }\n }\n if (dataType === 'values-set') {\n const fields = [...hints.fields.values];\n if (fields.length === 0) {\n fields.push(...Object.keys(keysMap));\n }\n const values = fields.map((field) => ({\n label:\n hints.titles.valuesAxes[field] ??\n hints.titles.getValueAxesTitle?.(field) ??\n (field as string),\n value: getPropByPath(data, field),\n }));\n entitiesCount = values.length;\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n insights.push({\n type: 'comparison',\n values,\n priority: 1,\n });\n }\n if (dataType === 'indexed-groups') {\n const groups = [...hints.groups].map((groupKey) => {\n const values = [...hints.fields.values]\n .filter((fieldPath) => String(fieldPath).startsWith(`${groupKey}.`))\n .map((fieldPath) => ({\n label: getPropByPath(\n hints.titles.valuesAxes,\n String(fieldPath).substring(String(groupKey).length + 1),\n ),\n value: getPropByPath(data, String(fieldPath)),\n }));\n\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n const averageValue =\n values.reduce((sum, { value }) => sum + (value as number), 0) / values.length;\n return {\n label: getPropByPath(hints.titles.valuesAxes, String(groupKey)) ?? groupKey,\n values,\n averageValue: !Number.isNaN(averageValue) ? averageValue : undefined,\n };\n });\n\n groups.sort((a, b) => {\n if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;\n return b.averageValue - a.averageValue;\n });\n entitiesCount = groups.length;\n insights.push(\n ...groups.map(\n (group) =>\n ({\n type: 'comparison',\n label: group.label,\n values: group.values,\n priority: 1,\n }) as ComparisonNode,\n ),\n );\n }\n\n const hasHighPriorityInsights = insights.some((insight) => insight.priority > 0);\n if (hasHighPriorityInsights) {\n insights = insights.filter((insight) => insight.priority > 0);\n } else {\n insights = insights.slice(0, 1);\n }\n\n return { insights, dataType: dataType!, dataRange, dataTitle, entitiesCount };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"insights.js","names":["makeBezier","getPropByPath","obj","path","String","split","i","length","movingAverage","data","frame","result","Math","floor","ceil","startIndex","max","endIndex","min","part","slice","sum","reduce","item","value","push","extractDataInsights","hints","config","insights","dataType","dataRange","groupKeys","groups","dataTitle","axesTitle","vertical","horizontal","entitiesCount","keysMap","Object","fromEntries","keys","Array","isArray","map","key","fields","horizontalAxes","size","verticalAxes","valueAxes","possibleGroupKeys","filter","allData","row","Set","firstRow","lastRow","possibleValueKeys","valuesKeys","possibleLabelKeys","labelsKey","fromKey","toKey","from","titles","getHorizontalAxesTitle","to","label","valueKey","values","average","variance","standardDeviation","sqrt","trendStrengths","frameSize","longMovingAverageSize","longSize","shortMovingAverageSize","shortSize","longMovingAverage","shortMovingAverage","table","Number","NaN","toFixed","long","short","strengthsMap","growth","static","weak","medium","strong","reduction","recordTrend","width","type","normalizedHeight","abs","pointsDensity","normalizedWidth","tang","trendStrength","trendTangens","strength","priority","change","dataKey","displayValue","generalTrend","valuesAxes","localTrends","notableDiff","lastSwitch","lastSwitchValue","shortWasAbove","shortIsAbove","diff","lastIndex","lastValue","guessedXKey","guessedYKey","guessedValueKey","guessedLabelKey","normalized","x","y","gridSize","clustersGridSize","grid","usedX","usedY","add","orderedX","sort","a","b","orderedY","distancesX","index","distancesY","avgDistanceX","avgDistanceY","belowAvgDistancesX","belowAvgDistancesY","betweenDistanceX","betweenDistanceY","avgDistance","isNaN","takenY","takenX","gridX","round","gridY","clusterId","members","clusters","parseInt","pointHandled","xNeighbour","yNeighbour","undefined","clustersInsights","labels","uniqueLabels","relativeSize","center","xLabel","yLabel","relativeSizeDistrivution","POSITIVE_INFINITY","NEGATIVE_INFINITY","averageSize","cluster","smallerClusters","smallerSize","biggerClusters","biggerSize","normalizingSize","averageSizeNormalized","smallerSizeNormalized","biggerSizeNormalized","sizeMapBezier","weight","height","clustersInsight","mappedSize","sortedX","sortedY","makeRowKey","join","allRowsIds","groupedValues","groupKeyValue","groupName","rows","grouppingKeys","entries","groupKey","group","field","getVerticalAxesTitle","averageValue","getValueAxesTitle","fieldPath","startsWith","substring","hasHighPriorityInsights","some","insight"],"sources":["../../../src/a11y/insights.ts"],"sourcesContent":["import { makeBezier } from './bezier';\nimport type { DataStructureHints, DataSummarizationConfig } from './hints';\n\nexport type TrendNode = {\n type: 'trend';\n priority: number;\n change: {\n from: number;\n to: number;\n strength:\n | 'strong-reduction'\n | 'reduction'\n | 'weak-reduction'\n | 'static'\n | 'weak-growth'\n | 'growth'\n | 'strong-growth';\n };\n from: unknown;\n to: unknown;\n dataKey: string | number;\n label?: string;\n};\nexport type GeneralTrendNode = Omit<TrendNode, 'type'> & { type: 'general-trend' };\nexport type ComparisonNode = {\n type: 'comparison';\n label?: string;\n priority: number;\n values: {\n value: unknown;\n label: string;\n }[];\n};\n\ntype ClusterRelativeSize =\n | 'significantly-smaller'\n | 'smaller'\n | 'slightly-smaller'\n | 'average'\n | 'slightly-bigger'\n | 'bigger'\n | 'significantly-bigger';\nexport type ClusterNode = {\n type: 'cluster';\n priority: number;\n size: number;\n labels: unknown[];\n center: {\n x: number;\n xLabel: string | number;\n y: number;\n yLabel: string | number;\n };\n relativeSize: ClusterRelativeSize;\n};\nexport type Insight = TrendNode | GeneralTrendNode | ComparisonNode | ClusterNode;\n\nexport type SerializableDataType =\n | 'time-series'\n | 'points-cloud'\n | 'values-set'\n | 'grouped-values'\n | 'indexed-groups';\n\nexport type AnalyzedData = {\n insights: Insight[];\n dataType: SerializableDataType;\n dataRange: {\n from: string | number | Date;\n to: string | number | Date;\n label: string | number | null;\n }[];\n dataTitle: string | null;\n entitiesCount: number;\n};\n\nconst getPropByPath = (obj: any, path: number | string | string[]): unknown => {\n if (typeof path === 'number') path = String(path);\n if (typeof path === 'string') path = path.split('.');\n for (let i = 0; i < path.length; i++) {\n if (typeof obj !== 'object' || obj === null) return obj;\n obj = obj[path[i]];\n }\n return obj;\n};\n\nconst movingAverage = (data: number[], frame: number) => {\n const result: number[] = [];\n frame = Math.floor(frame) % 2 === data.length % 2 ? Math.floor(frame) : Math.ceil(frame);\n\n for (let i = 0; i < data.length; i++) {\n let startIndex = Math.max(0, i - Math.floor(frame / 2));\n let endIndex = Math.min(data.length, i + Math.ceil(frame / 2));\n startIndex = Math.min(startIndex, Math.max(0, endIndex - frame));\n endIndex = Math.max(endIndex, Math.min(data.length, startIndex + frame));\n const part = data.slice(startIndex, endIndex);\n const sum = part.reduce((sum, item) => sum + item, 0);\n const value = sum / part.length;\n result.push(value);\n }\n return result;\n};\n\nexport const extractDataInsights = (\n data: Record<string, unknown>[] | Record<string, unknown>,\n hints: DataStructureHints,\n config: DataSummarizationConfig,\n): AnalyzedData => {\n let insights: AnalyzedData['insights'] = [];\n let dataType: AnalyzedData['dataType'] | null = config.dataType ?? hints.dataType;\n const dataRange: AnalyzedData['dataRange'] = [];\n let groupKeys = [...hints.groups];\n const dataTitle: string | null = hints.axesTitle.vertical ?? hints.axesTitle.horizontal;\n let entitiesCount = 0;\n\n const keysMap = Object.fromEntries(\n Object.keys((Array.isArray(data) ? data[0] : data) ?? {}).map((key) => [key, true]),\n );\n\n if (!dataType) {\n if (\n ((keysMap['y'] || keysMap['y1'] || keysMap['y2']) &&\n keysMap['x'] &&\n (keysMap['value'] || keysMap['label'])) ||\n (hints.fields.horizontalAxes.size > 0 &&\n hints.fields.verticalAxes.size > 0 &&\n hints.fields.valueAxes.size > 0)\n ) {\n dataType = 'points-cloud';\n } else if (Array.isArray(data) && data.length > 6) {\n dataType = 'time-series';\n } else if (Array.isArray(data) && Object.keys(keysMap).length >= 3) {\n const possibleGroupKeys = Object.keys(keysMap)\n .filter((key) => typeof data[0][key] === 'string')\n .filter((key) => {\n const allData = data.map((row) => row[key]);\n return new Set(allData).size === allData.length;\n });\n if (possibleGroupKeys.length === 1) {\n groupKeys = possibleGroupKeys;\n dataType = 'grouped-values';\n } else {\n dataType = 'values-set';\n }\n } else {\n dataType = 'values-set';\n }\n }\n\n if (dataType === 'grouped-values' && groupKeys.length === 0) {\n dataType = 'values-set';\n }\n\n if (Array.isArray(data)) {\n if (dataType === 'time-series') {\n const firstRow = data[0];\n const lastRow = data[data.length - 1];\n const possibleValueKeys = ['y', 'value', ...hints.fields.verticalAxes];\n const valuesKeys = possibleValueKeys.filter((key) => keysMap[key]);\n\n const possibleLabelKeys = ['label', 'x', ...hints.fields.horizontalAxes];\n const labelsKey = possibleLabelKeys.filter((key) => keysMap[key])[0];\n\n entitiesCount = Object.keys(valuesKeys).length;\n\n const fromKey = firstRow[labelsKey];\n const toKey = lastRow[labelsKey];\n const from =\n hints.titles.getHorizontalAxesTitle?.(fromKey as string) ??\n hints.titles.horizontalAxes[fromKey as string] ??\n (fromKey as string);\n const to =\n hints.titles.getHorizontalAxesTitle?.(toKey as string) ??\n hints.titles.horizontalAxes[toKey as string] ??\n (toKey as string);\n\n if (entitiesCount > 0) {\n dataRange.push({ from, to, label: hints.axesTitle.vertical ?? labelsKey });\n }\n\n for (const valueKey of valuesKeys) {\n const values = (data as Record<string, number>[])\n .map((row) => row[valueKey])\n .filter((value) => typeof value !== 'symbol');\n const sum = values.reduce((sum, value) => sum + value, 0);\n const average = sum / values.length;\n const variance =\n (1 / values.length) *\n values.map((value) => (value - average) ** 2).reduce((sum, item) => sum + item, 0);\n const standardDeviation = Math.sqrt(variance);\n const trendStrengths = ['static', 'weak', 'medium', 'strong'] as const;\n\n const frameSize = Math.sqrt(values.length);\n const longMovingAverageSize = config.movingAverage.longSize ?? frameSize;\n const shortMovingAverageSize = config.movingAverage.shortSize ?? Math.sqrt(frameSize);\n const longMovingAverage = movingAverage(values, longMovingAverageSize);\n const shortMovingAverage =\n values.length < 8 ? values : movingAverage(values, shortMovingAverageSize);\n\n const table = [];\n for (const i in values) {\n table.push({\n value: (values[i] ?? Number.NaN).toFixed(2),\n long: (longMovingAverage[i] ?? Number.NaN).toFixed(2),\n short: (shortMovingAverage[i] ?? Number.NaN).toFixed(2),\n });\n }\n\n const strengthsMap = {\n growth: {\n static: 'static',\n weak: 'weak-growth',\n medium: 'growth',\n strong: 'strong-growth',\n },\n reduction: {\n static: 'static',\n weak: 'weak-reduction',\n medium: 'reduction',\n strong: 'strong-reduction',\n },\n } as const;\n\n const recordTrend = ({\n value,\n width,\n label,\n type,\n }: {\n value: { from: number; to: number };\n width: number;\n label: { from: unknown; to: unknown; dataKey: string | number; displayValue?: string };\n type: 'general-trend' | 'trend';\n }): GeneralTrendNode | TrendNode | undefined => {\n for (let i = 0; i < trendStrengths.length; i++) {\n const normalizedHeight =\n Math.abs(value.from - value.to) / (hints.pointsDensity?.verticalAxes ?? 1);\n const normalizedWidth = width / (hints.pointsDensity?.horizontalAxes ?? 1);\n const tang = normalizedHeight / normalizedWidth;\n const trendStrength = trendStrengths[i];\n if (tang <= config.trendTangens[trendStrength] || i === trendStrengths.length - 1) {\n const strength =\n value.to > value.from\n ? strengthsMap.growth[trendStrength]\n : strengthsMap.reduction[trendStrength];\n\n return {\n type,\n priority: i,\n change: {\n from: value.from,\n to: value.to,\n strength,\n },\n from: label.from,\n to: label.to,\n dataKey: label.dataKey,\n label: label.displayValue,\n };\n }\n }\n };\n\n const generalTrend = recordTrend({\n type: 'general-trend',\n value: {\n from: shortMovingAverage[0],\n to: shortMovingAverage[shortMovingAverage.length - 1],\n },\n width: data.length,\n label: { from, to, dataKey: valueKey, displayValue: hints.titles.valuesAxes[valueKey] },\n })!;\n const localTrends: Insight[] = [];\n {\n const notableDiff = config.movingAverage.notableDiff ?? standardDeviation / 10;\n let lastSwitch = 0;\n let lastSwitchValue = shortMovingAverage[lastSwitch];\n let shortWasAbove = shortMovingAverage[0] > longMovingAverage[0];\n for (let i = 1; i < data.length; i++) {\n const shortIsAbove = shortMovingAverage[i] > longMovingAverage[i];\n const diff = Math.abs(shortMovingAverage[i] - longMovingAverage[i]);\n\n if (shortIsAbove === shortWasAbove) continue;\n if (diff < notableDiff) continue;\n if (i === 0 && lastSwitch === data.length - 1) continue;\n if (i === data.length - 1 && lastSwitch === 0) continue;\n i = Math.min(i, data.length - 1);\n\n const fromKey = data[lastSwitch][labelsKey];\n const toKey = data[i][labelsKey];\n const from =\n hints.titles.getHorizontalAxesTitle?.(fromKey as string) ??\n hints.titles.horizontalAxes[fromKey as string] ??\n fromKey;\n const to =\n hints.titles.getHorizontalAxesTitle?.(toKey as string) ??\n hints.titles.horizontalAxes[toKey as string] ??\n toKey;\n localTrends.push(\n recordTrend({\n type: 'trend',\n value: {\n from: lastSwitchValue,\n to: shortMovingAverage[i],\n },\n width: i - lastSwitch,\n label: {\n from,\n to,\n dataKey: valueKey,\n displayValue: hints.titles.valuesAxes[valueKey],\n },\n })!,\n );\n lastSwitch = i;\n lastSwitchValue = shortMovingAverage[lastSwitch];\n shortWasAbove = shortIsAbove;\n }\n\n if (lastSwitch !== 0) {\n const lastIndex = shortMovingAverage.length - 1;\n const lastValue = shortMovingAverage[lastIndex];\n if (Math.abs(lastSwitchValue - lastValue) > notableDiff) {\n localTrends.push(\n recordTrend({\n type: 'trend',\n value: {\n from: lastSwitchValue,\n to: lastValue,\n },\n width: lastIndex - lastSwitch,\n label: {\n from: data[lastSwitch][labelsKey],\n to: data[lastIndex][labelsKey],\n dataKey: valueKey,\n displayValue: hints.titles.valuesAxes[valueKey],\n },\n })!,\n );\n }\n }\n }\n insights.push(generalTrend);\n insights.push(...localTrends);\n }\n } else if (dataType === 'points-cloud') {\n const guessedXKey = [...hints.fields.horizontalAxes.values(), 'x'][0];\n const guessedYKey = [...hints.fields.verticalAxes.values(), 'y'][0];\n const guessedValueKey = [...hints.fields.valueAxes.values(), 'value'][0];\n const guessedLabelKey = keysMap['label'] ? 'label' : guessedValueKey;\n const normalized = data.map((row) => ({\n x: row[guessedXKey] as number,\n y: row[guessedYKey] as number,\n label: row[guessedLabelKey],\n value: row[guessedValueKey] as number,\n }));\n let gridSize =\n config.clustersGridSize ?? hints.grid.verticalAxes ?? hints.grid.horizontalAxes;\n if (!gridSize) {\n const usedX = new Set<number>();\n const usedY = new Set<number>();\n for (const { x, y } of normalized) {\n usedX.add(x);\n usedY.add(y);\n }\n const orderedX = [...usedX].sort((a, b) => a - b);\n const orderedY = [...usedY].sort((a, b) => a - b);\n const distancesX = orderedX.slice(0, -1).map((x, index) => orderedX[index + 1] - x);\n const distancesY = orderedY.slice(0, -1).map((y, index) => orderedY[index + 1] - y);\n const avgDistanceX = distancesX.reduce((sum, x) => sum + x, 0) / distancesX.length;\n const avgDistanceY = distancesY.reduce((sum, y) => sum + y, 0) / distancesY.length;\n const belowAvgDistancesX = distancesX.filter((x) => x < avgDistanceX);\n const belowAvgDistancesY = distancesY.filter((y) => y < avgDistanceY);\n const betweenDistanceX =\n belowAvgDistancesX.reduce((sum, x) => sum + x, 0) / belowAvgDistancesX.length;\n const betweenDistanceY =\n belowAvgDistancesY.reduce((sum, y) => sum + y, 0) / belowAvgDistancesY.length;\n let avgDistance = 0;\n if (!Number.isNaN(betweenDistanceX) && !Number.isNaN(betweenDistanceY)) {\n avgDistance = (betweenDistanceX + betweenDistanceY) / 2;\n } else if (!Number.isNaN(betweenDistanceX)) {\n avgDistance = betweenDistanceX;\n } else if (!Number.isNaN(betweenDistanceY)) {\n avgDistance = betweenDistanceY;\n } else {\n avgDistance = (avgDistanceX + avgDistanceY) / 2;\n }\n gridSize = Math.sqrt(Math.sqrt(avgDistance));\n }\n\n const grid: {\n [x: string]: { [y: string]: { clusterId: string; members: typeof normalized } };\n } = {};\n const takenY = new Set<number>();\n const takenX = new Set<number>();\n for (let i = 0; i < normalized.length; i++) {\n const { x, y } = normalized[i];\n const gridX = Math.round(x / gridSize!);\n const gridY = Math.round(y / gridSize!);\n takenY.add(y);\n takenX.add(x);\n grid[gridX] = grid[gridX] ?? {};\n grid[gridX][gridY] = grid[gridX][gridY] ?? { clusterId: `${gridX}_${gridY}`, members: [] };\n grid[gridX][gridY].members.push(normalized[i]);\n }\n const clusters: { [clusterId: string]: typeof normalized } = {};\n for (const x of Object.keys(grid).map((x) => Number.parseInt(x, 10))) {\n for (const y of Object.keys(grid[x]).map((y) => Number.parseInt(y, 10))) {\n let pointHandled = false;\n for (const xNeighbour of [x - 1, x, x + 1]) {\n for (const yNeighbour of [y - 1, y, y + 1]) {\n if (xNeighbour === undefined || yNeighbour === undefined) continue;\n if (xNeighbour === x && yNeighbour === y) continue;\n if (!grid[xNeighbour]?.[yNeighbour]) continue;\n pointHandled = true;\n grid[x][y].clusterId = grid[xNeighbour][yNeighbour].clusterId;\n break;\n }\n if (pointHandled) break;\n }\n clusters[grid[x][y].clusterId] = clusters[grid[x][y].clusterId] ?? [];\n clusters[grid[x][y].clusterId].push(...grid[x][y].members);\n }\n }\n const clustersInsights: ClusterNode[] = [];\n for (const clusterId in clusters) {\n const size = clusters[clusterId].reduce((sum, { value }) => sum + (value ?? 1), 0);\n const labels = [...clusters[clusterId]]\n .sort((a, b) => b.value - a.value)\n .map(({ label }) => label)\n .filter((label) => label !== undefined);\n const uniqueLabels = [...new Set(labels)];\n const x =\n clusters[clusterId].reduce((sum, { x }) => sum + x, 0) / clusters[clusterId].length;\n const y =\n clusters[clusterId].reduce((sum, { y }) => sum + y, 0) / clusters[clusterId].length;\n\n clustersInsights.push({\n type: 'cluster',\n priority: 1,\n size,\n labels: uniqueLabels,\n relativeSize: 'average',\n center: {\n x,\n y,\n xLabel: hints.axesTitle.horizontal ?? guessedXKey,\n yLabel: hints.axesTitle.vertical ?? guessedYKey,\n },\n });\n }\n entitiesCount = Object.keys(clusters).length;\n clustersInsights.sort((a, b) => b.size - a.size);\n\n const relativeSizeDistrivution = {\n ['significantly-bigger']: { max: Number.POSITIVE_INFINITY, min: 0.85 },\n ['bigger']: { min: 0.7, max: 0.85 },\n ['slightly-bigger']: { min: 0.6, max: 0.7 },\n ['average']: { min: 0.4, max: 0.6 },\n ['slightly-smaller']: { max: 0.4, min: 0.3 },\n ['smaller']: { min: 0.15, max: 0.3 },\n ['significantly-smaller']: { min: Number.NEGATIVE_INFINITY, max: 0.15 },\n } as { [key in ClusterRelativeSize]: { min: number; max: number } };\n const averageSize =\n clustersInsights.reduce((sum, cluster) => sum + cluster.size, 0) / clustersInsights.length;\n const smallerClusters = clustersInsights.filter((cluster) => cluster.size < averageSize);\n const smallerSize =\n smallerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / smallerClusters.length;\n const biggerClusters = clustersInsights.filter((cluster) => cluster.size > averageSize);\n const biggerSize =\n biggerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / biggerClusters.length;\n\n const normalizingSize = averageSize * 2;\n let averageSizeNormalized = averageSize / normalizingSize;\n let smallerSizeNormalized = smallerSize / normalizingSize;\n let biggerSizeNormalized = biggerSize / normalizingSize;\n\n smallerSizeNormalized = !Number.isNaN(smallerSizeNormalized) ? smallerSizeNormalized : 0.25;\n averageSizeNormalized = !Number.isNaN(averageSizeNormalized) ? averageSizeNormalized : 0.5;\n biggerSizeNormalized = !Number.isNaN(biggerSizeNormalized) ? biggerSizeNormalized : 0.75;\n\n const sizeMapBezier = makeBezier(\n [\n { x: 0, y: 0 },\n { x: 0.25, y: smallerSizeNormalized, weight: 10 },\n { x: 0.5, y: averageSizeNormalized },\n { x: 0.75, y: biggerSizeNormalized, weight: 10 },\n { x: 1, y: 1 },\n ],\n { width: 1, height: 1 },\n );\n\n for (const clustersInsight of clustersInsights) {\n const { size } = clustersInsight;\n const mappedSize = sizeMapBezier(size / normalizingSize);\n for (const relativeSize in relativeSizeDistrivution) {\n const { min, max } = relativeSizeDistrivution[relativeSize as ClusterRelativeSize];\n if (mappedSize > min && mappedSize <= max) {\n clustersInsight.relativeSize = relativeSize as ClusterRelativeSize;\n break;\n }\n }\n }\n\n insights.push(...clustersInsights);\n\n if (hints.axesTitle.horizontal) {\n const sortedX = [...takenX].sort((a, b) => a - b);\n dataRange.push({\n from: sortedX[0] as any,\n to: sortedX[sortedX.length - 1] as any,\n label: hints.axesTitle.horizontal,\n });\n }\n if (hints.axesTitle.vertical) {\n const sortedY = [...takenY].sort((a, b) => a - b);\n dataRange.push({\n from: sortedY[0] as any,\n to: sortedY[sortedY.length - 1] as any,\n label: hints.axesTitle.vertical,\n });\n }\n } else if (dataType === 'grouped-values') {\n const makeRowKey = (row: Record<string, unknown>) =>\n groupKeys.map((key, index) => `${index}-${getPropByPath(row, key)}`).join('-');\n const allRowsIds = data.map(makeRowKey);\n const groupedValues: {\n [groupId: string]: { groupName: string; rows: Record<string, unknown>[] };\n } = {};\n for (let i = 0; i < data.length; i++) {\n const row = data[i];\n const key = allRowsIds[i];\n const groupKeyValue = getPropByPath(row, groupKeys[0]) as string;\n groupedValues[key] = groupedValues[key] ?? {\n groupName: hints.titles.getHorizontalAxesTitle?.(groupKeyValue) ?? groupKeyValue,\n rows: [],\n };\n groupedValues[key].rows.push(row);\n }\n\n let fields = [...hints.fields.values];\n const grouppingKeys = Object.fromEntries(groupKeys.map((key) => [key, true]));\n if (fields.length === 0) {\n fields.push(...Object.keys(keysMap));\n }\n fields = fields.filter((key) => !grouppingKeys[key]);\n const groups = Object.entries(groupedValues).map(([groupKey, group]) => {\n const values: { label: string; value: unknown }[] = [];\n for (const row of group.rows) {\n for (const field of fields) {\n values.push({\n label:\n hints.titles.valuesAxes[field] ??\n hints.titles.getVerticalAxesTitle?.(field) ??\n (field as string),\n value: getPropByPath(row, field),\n });\n }\n }\n\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n const averageValue =\n values.reduce((sum, { value }) => sum + (value as number), 0) / values.length;\n return {\n label: group.groupName ?? groupKey,\n values,\n averageValue: !Number.isNaN(averageValue) ? averageValue : undefined,\n };\n });\n\n groups.sort((a, b) => {\n if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;\n return b.averageValue - a.averageValue;\n });\n entitiesCount = groups.length;\n insights.push(\n ...groups.map(\n (group) =>\n ({\n type: 'comparison',\n label: group.label,\n values: group.values,\n priority: 1,\n }) as ComparisonNode,\n ),\n );\n }\n }\n if (dataType === 'values-set') {\n const fields = [...hints.fields.values];\n if (fields.length === 0) {\n fields.push(...Object.keys(keysMap));\n }\n const values = fields.map((field) => ({\n label:\n hints.titles.valuesAxes[field] ??\n hints.titles.getValueAxesTitle?.(field) ??\n (field as string),\n value: getPropByPath(data, field),\n }));\n entitiesCount = values.length;\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n insights.push({\n type: 'comparison',\n values,\n priority: 1,\n });\n }\n if (dataType === 'indexed-groups') {\n const groups = [...hints.groups].map((groupKey) => {\n const values = [...hints.fields.values]\n .filter((fieldPath) => String(fieldPath).startsWith(`${groupKey}.`))\n .map((fieldPath) => ({\n label: getPropByPath(\n hints.titles.valuesAxes,\n String(fieldPath).substring(String(groupKey).length + 1),\n ),\n value: getPropByPath(data, String(fieldPath)),\n }));\n\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n const averageValue =\n values.reduce((sum, { value }) => sum + (value as number), 0) / values.length;\n return {\n label: getPropByPath(hints.titles.valuesAxes, String(groupKey)) ?? groupKey,\n values,\n averageValue: !Number.isNaN(averageValue) ? averageValue : undefined,\n };\n });\n\n groups.sort((a, b) => {\n if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;\n return b.averageValue - a.averageValue;\n });\n entitiesCount = groups.length;\n insights.push(\n ...groups.map(\n (group) =>\n ({\n type: 'comparison',\n label: group.label,\n values: group.values,\n priority: 1,\n }) as ComparisonNode,\n ),\n );\n }\n\n const hasHighPriorityInsights = insights.some((insight) => insight.priority > 0);\n if (hasHighPriorityInsights) {\n insights = insights.filter((insight) => insight.priority > 0);\n } else {\n insights = insights.slice(0, 1);\n }\n\n return { insights, dataType: dataType!, dataRange, dataTitle, entitiesCount };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,9 @@
1
1
  import { createIntl, createIntlCache } from '@formatjs/intl';
2
2
  import { normalizeLocale } from './locale';
3
- var messagesCache = createIntlCache();
4
- var intlCache = {};
5
- export var getIntl = function getIntl(locale, translations, availableLocales) {
6
- var _normalizeLocale;
7
- locale = (_normalizeLocale = normalizeLocale(locale, availableLocales)) !== null && _normalizeLocale !== void 0 ? _normalizeLocale : 'en';
3
+ const messagesCache = createIntlCache();
4
+ const intlCache = {};
5
+ export const getIntl = (locale, translations, availableLocales) => {
6
+ locale = normalizeLocale(locale, availableLocales) ?? 'en';
8
7
  intlCache[locale] = createIntl({
9
8
  locale: locale,
10
9
  defaultLocale: 'en',
@@ -1 +1 @@
1
- {"version":3,"file":"intl.js","names":["createIntl","createIntlCache","normalizeLocale","messagesCache","intlCache","getIntl","locale","translations","availableLocales","_normalizeLocale","defaultLocale","messages"],"sources":["../../../src/a11y/intl.ts"],"sourcesContent":["import { createIntl, createIntlCache, type IntlShape } from '@formatjs/intl';\n\nimport { normalizeLocale } from './locale';\nimport type { localizedMessages as localizedMessagesTypeBase } from './translations/view/__intergalactic-dynamic-locales';\n\nexport type Intl = IntlShape<typeof localizedMessagesTypeBase['en']>;\nconst messagesCache = createIntlCache();\nconst intlCache: { [locale: string]: ReturnType<typeof createIntl> } = {};\nexport const getIntl = (\n locale: string,\n translations: { [messageId: string]: string },\n availableLocales: { [localeId: string]: any },\n) => {\n locale = normalizeLocale(locale, availableLocales) ?? 'en';\n intlCache[locale] = createIntl(\n {\n locale: locale,\n defaultLocale: 'en',\n messages: translations || {},\n },\n messagesCache,\n );\n return intlCache[locale] as Intl;\n};\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,eAAe,QAAwB,gBAAgB;AAE5E,SAASC,eAAe,QAAQ,UAAU;AAI1C,IAAMC,aAAa,GAAGF,eAAe,CAAC,CAAC;AACvC,IAAMG,SAA8D,GAAG,CAAC,CAAC;AACzE,OAAO,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAClBC,MAAc,EACdC,YAA6C,EAC7CC,gBAA6C,EAC1C;EAAA,IAAAC,gBAAA;EACHH,MAAM,IAAAG,gBAAA,GAAGP,eAAe,CAACI,MAAM,EAAEE,gBAAgB,CAAC,cAAAC,gBAAA,cAAAA,gBAAA,GAAI,IAAI;EAC1DL,SAAS,CAACE,MAAM,CAAC,GAAGN,UAAU,CAC5B;IACEM,MAAM,EAAEA,MAAM;IACdI,aAAa,EAAE,IAAI;IACnBC,QAAQ,EAAEJ,YAAY,IAAI,CAAC;EAC7B,CAAC,EACDJ,aACF,CAAC;EACD,OAAOC,SAAS,CAACE,MAAM,CAAC;AAC1B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"intl.js","names":["createIntl","createIntlCache","normalizeLocale","messagesCache","intlCache","getIntl","locale","translations","availableLocales","defaultLocale","messages"],"sources":["../../../src/a11y/intl.ts"],"sourcesContent":["import { createIntl, createIntlCache, type IntlShape } from '@formatjs/intl';\n\nimport { normalizeLocale } from './locale';\nimport type { localizedMessages as localizedMessagesTypeBase } from './translations/view/__intergalactic-dynamic-locales';\n\nexport type Intl = IntlShape<typeof localizedMessagesTypeBase['en']>;\nconst messagesCache = createIntlCache();\nconst intlCache: { [locale: string]: ReturnType<typeof createIntl> } = {};\nexport const getIntl = (\n locale: string,\n translations: { [messageId: string]: string },\n availableLocales: { [localeId: string]: any },\n) => {\n locale = normalizeLocale(locale, availableLocales) ?? 'en';\n intlCache[locale] = createIntl(\n {\n locale: locale,\n defaultLocale: 'en',\n messages: translations || {},\n },\n messagesCache,\n );\n return intlCache[locale] as Intl;\n};\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,eAAe,QAAwB,gBAAgB;AAE5E,SAASC,eAAe,QAAQ,UAAU;AAI1C,MAAMC,aAAa,GAAGF,eAAe,CAAC,CAAC;AACvC,MAAMG,SAA8D,GAAG,CAAC,CAAC;AACzE,OAAO,MAAMC,OAAO,GAAGA,CACrBC,MAAc,EACdC,YAA6C,EAC7CC,gBAA6C,KAC1C;EACHF,MAAM,GAAGJ,eAAe,CAACI,MAAM,EAAEE,gBAAgB,CAAC,IAAI,IAAI;EAC1DJ,SAAS,CAACE,MAAM,CAAC,GAAGN,UAAU,CAC5B;IACEM,MAAM,EAAEA,MAAM;IACdG,aAAa,EAAE,IAAI;IACnBC,QAAQ,EAAEH,YAAY,IAAI,CAAC;EAC7B,CAAC,EACDJ,aACF,CAAC;EACD,OAAOC,SAAS,CAACE,MAAM,CAAC;AAC1B,CAAC","ignoreList":[]}
@@ -1,39 +1,32 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- export var normalizeLocale = function normalizeLocale(providedLocale) {
3
- var _ref, _globalThis$navigator;
4
- var translations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5
- var translationNames = {};
6
- for (var _locale in translations) {
7
- translationNames[_locale.toLowerCase()] = _locale;
1
+ export const normalizeLocale = (providedLocale, translations = {}) => {
2
+ const translationNames = {};
3
+ for (const locale in translations) {
4
+ translationNames[locale.toLowerCase()] = locale;
8
5
  }
9
- providedLocale = (_ref = providedLocale !== null && providedLocale !== void 0 ? providedLocale : isAvailableLocale(globalThis === null || globalThis === void 0 || (_globalThis$navigator = globalThis.navigator) === null || _globalThis$navigator === void 0 ? void 0 : _globalThis$navigator.language, translations)) !== null && _ref !== void 0 ? _ref : 'en';
10
- var locale = providedLocale.toLowerCase();
6
+ providedLocale = providedLocale ?? isAvailableLocale(globalThis?.navigator?.language, translations) ?? 'en';
7
+ let locale = providedLocale.toLowerCase();
11
8
  if (locale.includes('-') && !translations[locale]) {
12
- var _locale$split = locale.split('-'),
13
- _locale$split2 = _slicedToArray(_locale$split, 1),
14
- localeBase = _locale$split2[0];
9
+ const [localeBase] = locale.split('-');
15
10
  if (translations[localeBase]) {
16
11
  locale = localeBase;
17
12
  }
18
13
  }
19
14
  locale = translationNames[locale] ? translationNames[locale] : locale;
20
15
  if (!translations[locale]) {
21
- var availableLocales = Object.keys(translations).join(', ');
16
+ const availableLocales = Object.keys(translations).join(', ');
22
17
  if (process.env.NODE_ENV !== 'production') {
23
18
  // eslint-disable-next-line no-console
24
- console.error("[Intergalactic @semcore/d3-charts a11y module]: No locale \"".concat(providedLocale, "\" available. Available locales: ").concat(availableLocales));
19
+ console.error(`[Intergalactic @semcore/d3-charts a11y module]: No locale "${providedLocale}" available. Available locales: ${availableLocales}`);
25
20
  }
26
21
  return null;
27
22
  }
28
23
  return locale;
29
24
  };
30
- var isAvailableLocale = function isAvailableLocale(locale, translations) {
25
+ const isAvailableLocale = (locale, translations) => {
31
26
  if (typeof locale !== 'string') {
32
27
  return undefined;
33
28
  }
34
- var _locale$split3 = locale.split('-'),
35
- _locale$split4 = _slicedToArray(_locale$split3, 1),
36
- localeBase = _locale$split4[0];
29
+ const [localeBase] = locale.split('-');
37
30
  if (!translations[localeBase]) {
38
31
  return undefined;
39
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"locale.js","names":["normalizeLocale","providedLocale","_ref","_globalThis$navigator","translations","arguments","length","undefined","translationNames","locale","toLowerCase","isAvailableLocale","globalThis","navigator","language","includes","_locale$split","split","_locale$split2","_slicedToArray","localeBase","availableLocales","Object","keys","join","process","env","NODE_ENV","console","error","concat","_locale$split3","_locale$split4"],"sources":["../../../src/a11y/locale.ts"],"sourcesContent":["export const normalizeLocale = (\n providedLocale: string,\n translations: { [locale: string]: {} } = {},\n) => {\n const translationNames: { [lowercasedName: string]: string } = {};\n for (const locale in translations) {\n translationNames[locale.toLowerCase()] = locale;\n }\n providedLocale =\n providedLocale ?? isAvailableLocale(globalThis?.navigator?.language, translations) ?? 'en';\n let locale = providedLocale.toLowerCase();\n if (locale.includes('-') && !translations[locale]) {\n const [localeBase] = locale.split('-');\n if (translations[localeBase]) {\n locale = localeBase;\n }\n }\n locale = translationNames[locale] ? translationNames[locale] : locale;\n if (!translations[locale]) {\n const availableLocales = Object.keys(translations).join(', ');\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(\n `[Intergalactic @semcore/d3-charts a11y module]: No locale \"${providedLocale}\" available. Available locales: ${availableLocales}`,\n );\n }\n return null;\n }\n return locale;\n};\n\nconst isAvailableLocale = (locale: string, translations: { [locale: string]: {} }) => {\n if (typeof locale !== 'string') {\n return undefined;\n }\n const [localeBase] = locale.split('-');\n if (!translations[localeBase]) {\n return undefined;\n }\n return localeBase;\n};\n"],"mappings":";AAAA,OAAO,IAAMA,eAAe,GAAG,SAAlBA,eAAeA,CAC1BC,cAAsB,EAEnB;EAAA,IAAAC,IAAA,EAAAC,qBAAA;EAAA,IADHC,YAAsC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE3C,IAAMG,gBAAsD,GAAG,CAAC,CAAC;EACjE,KAAK,IAAMC,OAAM,IAAIL,YAAY,EAAE;IACjCI,gBAAgB,CAACC,OAAM,CAACC,WAAW,CAAC,CAAC,CAAC,GAAGD,OAAM;EACjD;EACAR,cAAc,IAAAC,IAAA,GACZD,cAAc,aAAdA,cAAc,cAAdA,cAAc,GAAIU,iBAAiB,CAACC,UAAU,aAAVA,UAAU,gBAAAT,qBAAA,GAAVS,UAAU,CAAEC,SAAS,cAAAV,qBAAA,uBAArBA,qBAAA,CAAuBW,QAAQ,EAAEV,YAAY,CAAC,cAAAF,IAAA,cAAAA,IAAA,GAAI,IAAI;EAC5F,IAAIO,MAAM,GAAGR,cAAc,CAACS,WAAW,CAAC,CAAC;EACzC,IAAID,MAAM,CAACM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAACX,YAAY,CAACK,MAAM,CAAC,EAAE;IACjD,IAAAO,aAAA,GAAqBP,MAAM,CAACQ,KAAK,CAAC,GAAG,CAAC;MAAAC,cAAA,GAAAC,cAAA,CAAAH,aAAA;MAA/BI,UAAU,GAAAF,cAAA;IACjB,IAAId,YAAY,CAACgB,UAAU,CAAC,EAAE;MAC5BX,MAAM,GAAGW,UAAU;IACrB;EACF;EACAX,MAAM,GAAGD,gBAAgB,CAACC,MAAM,CAAC,GAAGD,gBAAgB,CAACC,MAAM,CAAC,GAAGA,MAAM;EACrE,IAAI,CAACL,YAAY,CAACK,MAAM,CAAC,EAAE;IACzB,IAAMY,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACnB,YAAY,CAAC,CAACoB,IAAI,CAAC,IAAI,CAAC;IAC7D,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC;MACAC,OAAO,CAACC,KAAK,gEAAAC,MAAA,CACmD7B,cAAc,uCAAA6B,MAAA,CAAmCT,gBAAgB,CACjI,CAAC;IACH;IACA,OAAO,IAAI;EACb;EACA,OAAOZ,MAAM;AACf,CAAC;AAED,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIF,MAAc,EAAEL,YAAsC,EAAK;EACpF,IAAI,OAAOK,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOF,SAAS;EAClB;EACA,IAAAwB,cAAA,GAAqBtB,MAAM,CAACQ,KAAK,CAAC,GAAG,CAAC;IAAAe,cAAA,GAAAb,cAAA,CAAAY,cAAA;IAA/BX,UAAU,GAAAY,cAAA;EACjB,IAAI,CAAC5B,YAAY,CAACgB,UAAU,CAAC,EAAE;IAC7B,OAAOb,SAAS;EAClB;EACA,OAAOa,UAAU;AACnB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"locale.js","names":["normalizeLocale","providedLocale","translations","translationNames","locale","toLowerCase","isAvailableLocale","globalThis","navigator","language","includes","localeBase","split","availableLocales","Object","keys","join","process","env","NODE_ENV","console","error","undefined"],"sources":["../../../src/a11y/locale.ts"],"sourcesContent":["export const normalizeLocale = (\n providedLocale: string,\n translations: { [locale: string]: {} } = {},\n) => {\n const translationNames: { [lowercasedName: string]: string } = {};\n for (const locale in translations) {\n translationNames[locale.toLowerCase()] = locale;\n }\n providedLocale =\n providedLocale ?? isAvailableLocale(globalThis?.navigator?.language, translations) ?? 'en';\n let locale = providedLocale.toLowerCase();\n if (locale.includes('-') && !translations[locale]) {\n const [localeBase] = locale.split('-');\n if (translations[localeBase]) {\n locale = localeBase;\n }\n }\n locale = translationNames[locale] ? translationNames[locale] : locale;\n if (!translations[locale]) {\n const availableLocales = Object.keys(translations).join(', ');\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(\n `[Intergalactic @semcore/d3-charts a11y module]: No locale \"${providedLocale}\" available. Available locales: ${availableLocales}`,\n );\n }\n return null;\n }\n return locale;\n};\n\nconst isAvailableLocale = (locale: string, translations: { [locale: string]: {} }) => {\n if (typeof locale !== 'string') {\n return undefined;\n }\n const [localeBase] = locale.split('-');\n if (!translations[localeBase]) {\n return undefined;\n }\n return localeBase;\n};\n"],"mappings":"AAAA,OAAO,MAAMA,eAAe,GAAGA,CAC7BC,cAAsB,EACtBC,YAAsC,GAAG,CAAC,CAAC,KACxC;EACH,MAAMC,gBAAsD,GAAG,CAAC,CAAC;EACjE,KAAK,MAAMC,MAAM,IAAIF,YAAY,EAAE;IACjCC,gBAAgB,CAACC,MAAM,CAACC,WAAW,CAAC,CAAC,CAAC,GAAGD,MAAM;EACjD;EACAH,cAAc,GACZA,cAAc,IAAIK,iBAAiB,CAACC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,EAAEP,YAAY,CAAC,IAAI,IAAI;EAC5F,IAAIE,MAAM,GAAGH,cAAc,CAACI,WAAW,CAAC,CAAC;EACzC,IAAID,MAAM,CAACM,QAAQ,CAAC,GAAG,CAAC,IAAI,CAACR,YAAY,CAACE,MAAM,CAAC,EAAE;IACjD,MAAM,CAACO,UAAU,CAAC,GAAGP,MAAM,CAACQ,KAAK,CAAC,GAAG,CAAC;IACtC,IAAIV,YAAY,CAACS,UAAU,CAAC,EAAE;MAC5BP,MAAM,GAAGO,UAAU;IACrB;EACF;EACAP,MAAM,GAAGD,gBAAgB,CAACC,MAAM,CAAC,GAAGD,gBAAgB,CAACC,MAAM,CAAC,GAAGA,MAAM;EACrE,IAAI,CAACF,YAAY,CAACE,MAAM,CAAC,EAAE;IACzB,MAAMS,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACb,YAAY,CAAC,CAACc,IAAI,CAAC,IAAI,CAAC;IAC7D,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC;MACAC,OAAO,CAACC,KAAK,CACX,8DAA8DpB,cAAc,mCAAmCY,gBAAgB,EACjI,CAAC;IACH;IACA,OAAO,IAAI;EACb;EACA,OAAOT,MAAM;AACf,CAAC;AAED,MAAME,iBAAiB,GAAGA,CAACF,MAAc,EAAEF,YAAsC,KAAK;EACpF,IAAI,OAAOE,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOkB,SAAS;EAClB;EACA,MAAM,CAACX,UAAU,CAAC,GAAGP,MAAM,CAACQ,KAAK,CAAC,GAAG,CAAC;EACtC,IAAI,CAACV,YAAY,CAACS,UAAU,CAAC,EAAE;IAC7B,OAAOW,SAAS;EAClB;EACA,OAAOX,UAAU;AACnB,CAAC","ignoreList":[]}