@mui/x-charts 7.13.0 → 7.15.0

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 (751) hide show
  1. package/BarChart/BarChart.js +180 -183
  2. package/BarChart/BarClipPath.js +17 -25
  3. package/BarChart/BarElement.js +33 -43
  4. package/BarChart/BarLabel/BarLabel.d.ts +1 -1
  5. package/BarChart/BarLabel/BarLabel.js +25 -34
  6. package/BarChart/BarLabel/BarLabel.types.js +1 -5
  7. package/BarChart/BarLabel/BarLabelItem.js +31 -39
  8. package/BarChart/BarLabel/BarLabelPlot.js +13 -21
  9. package/BarChart/BarLabel/barLabelClasses.d.ts +1 -1
  10. package/BarChart/BarLabel/barLabelClasses.js +9 -19
  11. package/BarChart/BarLabel/getBarLabel.js +2 -9
  12. package/BarChart/BarLabel/index.js +2 -25
  13. package/BarChart/BarPlot.js +39 -46
  14. package/BarChart/checkScaleErrors.js +6 -12
  15. package/BarChart/extremums.js +45 -18
  16. package/BarChart/formatter.js +9 -16
  17. package/BarChart/getColor.js +1 -7
  18. package/BarChart/getRadius.js +2 -9
  19. package/BarChart/index.js +4 -49
  20. package/BarChart/legend.js +3 -9
  21. package/BarChart/package.json +2 -2
  22. package/BarChart/plugin.js +8 -15
  23. package/BarChart/types.js +1 -5
  24. package/BarChart/useBarChartProps.js +17 -25
  25. package/CHANGELOG.md +151 -2
  26. package/ChartContainer/ChartContainer.js +164 -172
  27. package/ChartContainer/index.js +1 -16
  28. package/ChartContainer/package.json +2 -2
  29. package/ChartContainer/useChartContainerProps.d.ts +8 -8
  30. package/ChartContainer/useChartContainerProps.js +13 -23
  31. package/ChartContainer/useDefaultizeAxis.d.ts +6 -5
  32. package/ChartContainer/useDefaultizeAxis.js +22 -21
  33. package/ChartsAxis/ChartsAxis.js +24 -32
  34. package/ChartsAxis/axisClasses.js +4 -11
  35. package/ChartsAxis/index.js +2 -27
  36. package/ChartsAxis/package.json +2 -2
  37. package/ChartsAxisHighlight/ChartsAxisHighlight.js +55 -51
  38. package/ChartsAxisHighlight/index.js +1 -16
  39. package/ChartsAxisHighlight/package.json +2 -2
  40. package/ChartsClipPath/ChartsClipPath.js +17 -25
  41. package/ChartsClipPath/index.js +1 -16
  42. package/ChartsClipPath/package.json +2 -2
  43. package/ChartsGrid/ChartsGrid.d.ts +1 -1
  44. package/ChartsGrid/ChartsGrid.js +38 -44
  45. package/ChartsGrid/chartsGridClasses.js +5 -13
  46. package/ChartsGrid/index.js +2 -27
  47. package/ChartsGrid/package.json +2 -2
  48. package/ChartsLegend/ChartsLegend.js +33 -41
  49. package/ChartsLegend/ContinuousColorLegend.js +66 -73
  50. package/ChartsLegend/DefaultChartsLegend.js +38 -46
  51. package/ChartsLegend/LegendPerItem.js +30 -39
  52. package/ChartsLegend/PiecewiseColorLegend.js +36 -44
  53. package/ChartsLegend/chartsLegend.types.js +1 -5
  54. package/ChartsLegend/chartsLegendClasses.js +4 -11
  55. package/ChartsLegend/index.js +6 -71
  56. package/ChartsLegend/legend.types.js +1 -5
  57. package/ChartsLegend/legendItemsPlacement.js +6 -13
  58. package/ChartsLegend/package.json +2 -2
  59. package/ChartsLegend/useAxis.js +6 -14
  60. package/ChartsLegend/utils.js +9 -16
  61. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +15 -23
  62. package/ChartsOnAxisClickHandler/index.js +1 -16
  63. package/ChartsOnAxisClickHandler/package.json +2 -2
  64. package/ChartsOverlay/ChartsLoadingOverlay.js +12 -21
  65. package/ChartsOverlay/ChartsNoDataOverlay.js +12 -21
  66. package/ChartsOverlay/ChartsOverlay.js +13 -23
  67. package/ChartsOverlay/index.js +3 -26
  68. package/ChartsOverlay/package.json +2 -2
  69. package/ChartsReferenceLine/ChartsReferenceLine.js +21 -29
  70. package/ChartsReferenceLine/ChartsXReferenceLine.js +22 -31
  71. package/ChartsReferenceLine/ChartsYReferenceLine.js +22 -31
  72. package/ChartsReferenceLine/chartsReferenceLineClasses.js +5 -13
  73. package/ChartsReferenceLine/common.js +6 -13
  74. package/ChartsReferenceLine/index.js +2 -27
  75. package/ChartsReferenceLine/package.json +2 -2
  76. package/{modern → ChartsSurface}/ChartsSurface.js +7 -3
  77. package/ChartsSurface/index.d.ts +1 -0
  78. package/ChartsSurface/index.js +1 -0
  79. package/ChartsSurface/package.json +6 -0
  80. package/ChartsText/ChartsText.js +18 -26
  81. package/ChartsText/index.js +1 -12
  82. package/ChartsText/package.json +2 -2
  83. package/ChartsTooltip/ChartsAxisTooltipContent.js +22 -30
  84. package/ChartsTooltip/ChartsItemTooltipContent.js +18 -26
  85. package/ChartsTooltip/ChartsTooltip.js +34 -42
  86. package/ChartsTooltip/ChartsTooltipTable.js +11 -16
  87. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +44 -52
  88. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +32 -40
  89. package/ChartsTooltip/chartsTooltipClasses.js +4 -11
  90. package/ChartsTooltip/index.js +7 -82
  91. package/ChartsTooltip/package.json +2 -2
  92. package/ChartsTooltip/utils.js +9 -21
  93. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +29 -37
  94. package/ChartsVoronoiHandler/index.js +1 -16
  95. package/ChartsVoronoiHandler/package.json +2 -2
  96. package/ChartsXAxis/ChartsXAxis.js +90 -87
  97. package/ChartsXAxis/index.js +1 -16
  98. package/ChartsXAxis/package.json +2 -2
  99. package/ChartsYAxis/ChartsYAxis.js +78 -79
  100. package/ChartsYAxis/index.js +1 -16
  101. package/ChartsYAxis/package.json +2 -2
  102. package/Gauge/Gauge.js +52 -60
  103. package/Gauge/GaugeContainer.js +51 -59
  104. package/Gauge/GaugeProvider.js +17 -28
  105. package/Gauge/GaugeReferenceArc.js +11 -20
  106. package/Gauge/GaugeValueArc.js +11 -20
  107. package/Gauge/GaugeValueText.js +18 -26
  108. package/Gauge/gaugeClasses.js +6 -14
  109. package/Gauge/index.js +7 -87
  110. package/Gauge/package.json +2 -2
  111. package/Gauge/utils.js +2 -9
  112. package/LineChart/AnimatedArea.js +35 -44
  113. package/LineChart/AnimatedLine.js +36 -45
  114. package/LineChart/AreaElement.js +33 -43
  115. package/LineChart/AreaPlot.js +30 -38
  116. package/LineChart/LineChart.js +185 -188
  117. package/LineChart/LineElement.js +33 -43
  118. package/LineChart/LineHighlightElement.js +20 -30
  119. package/LineChart/LineHighlightPlot.js +28 -36
  120. package/LineChart/LinePlot.js +30 -38
  121. package/LineChart/MarkElement.js +40 -48
  122. package/LineChart/MarkPlot.js +33 -41
  123. package/LineChart/extremums.js +23 -15
  124. package/LineChart/formatter.js +9 -16
  125. package/LineChart/getColor.js +1 -7
  126. package/LineChart/index.js +11 -126
  127. package/LineChart/legend.js +3 -9
  128. package/LineChart/package.json +2 -2
  129. package/LineChart/plugin.js +8 -15
  130. package/LineChart/useLineChartProps.js +14 -22
  131. package/PieChart/PieArc.js +34 -44
  132. package/PieChart/PieArcLabel.js +30 -40
  133. package/PieChart/PieArcLabelPlot.js +59 -67
  134. package/PieChart/PieArcPlot.js +56 -64
  135. package/PieChart/PieChart.js +180 -183
  136. package/PieChart/PiePlot.js +29 -37
  137. package/PieChart/dataTransform/transition.js +2 -8
  138. package/PieChart/dataTransform/useTransformData.js +7 -16
  139. package/PieChart/formatter.js +10 -17
  140. package/PieChart/getColor.js +1 -7
  141. package/PieChart/getPieCoordinates.js +4 -10
  142. package/PieChart/index.js +7 -82
  143. package/PieChart/legend.js +3 -9
  144. package/PieChart/package.json +2 -2
  145. package/PieChart/plugin.js +5 -12
  146. package/ResponsiveChartContainer/ResizableContainer.js +2 -8
  147. package/ResponsiveChartContainer/ResponsiveChartContainer.js +151 -159
  148. package/ResponsiveChartContainer/index.js +1 -16
  149. package/ResponsiveChartContainer/package.json +2 -2
  150. package/ResponsiveChartContainer/useChartContainerDimensions.js +7 -17
  151. package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +8 -16
  152. package/ScatterChart/Scatter.js +26 -34
  153. package/ScatterChart/ScatterChart.js +198 -201
  154. package/ScatterChart/ScatterPlot.js +21 -29
  155. package/ScatterChart/extremums.js +29 -21
  156. package/ScatterChart/formatter.js +3 -9
  157. package/ScatterChart/getColor.js +1 -7
  158. package/ScatterChart/index.js +3 -38
  159. package/ScatterChart/legend.js +3 -9
  160. package/ScatterChart/package.json +2 -2
  161. package/ScatterChart/plugin.js +8 -15
  162. package/ScatterChart/useScatterChartProps.js +10 -18
  163. package/SparkLineChart/SparkLineChart.js +163 -171
  164. package/SparkLineChart/index.js +1 -16
  165. package/SparkLineChart/package.json +2 -2
  166. package/colorPalettes/colorPalettes.js +9 -18
  167. package/colorPalettes/index.js +1 -16
  168. package/colorPalettes/package.json +2 -2
  169. package/constants/package.json +6 -0
  170. package/context/CartesianProvider/Cartesian.types.d.ts +59 -0
  171. package/context/CartesianProvider/CartesianContext.d.ts +1 -22
  172. package/context/CartesianProvider/CartesianContext.js +2 -10
  173. package/context/CartesianProvider/CartesianProvider.d.ts +1 -21
  174. package/context/CartesianProvider/CartesianProvider.js +19 -29
  175. package/context/CartesianProvider/computeValue.d.ts +18 -31
  176. package/context/CartesianProvider/computeValue.js +42 -52
  177. package/context/CartesianProvider/defaultizeAxis.d.ts +4 -4
  178. package/context/CartesianProvider/defaultizeAxis.js +6 -14
  179. package/context/CartesianProvider/getAxisExtremum.d.ts +3 -2
  180. package/context/CartesianProvider/getAxisExtremum.js +12 -13
  181. package/context/CartesianProvider/index.d.ts +1 -0
  182. package/context/CartesianProvider/index.js +8 -48
  183. package/context/CartesianProvider/useCartesianContext.d.ts +1 -1
  184. package/context/CartesianProvider/useCartesianContext.js +5 -14
  185. package/context/CartesianProvider/zoom.d.ts +10 -0
  186. package/context/CartesianProvider/zoom.js +19 -0
  187. package/context/DrawingProvider.d.ts +7 -2
  188. package/context/DrawingProvider.js +24 -27
  189. package/context/HighlightedProvider/HighlightedContext.js +2 -9
  190. package/context/HighlightedProvider/HighlightedProvider.js +24 -32
  191. package/context/HighlightedProvider/createIsFaded.js +2 -9
  192. package/context/HighlightedProvider/createIsHighlighted.js +2 -9
  193. package/context/HighlightedProvider/index.js +4 -49
  194. package/context/HighlightedProvider/useHighlighted.js +4 -11
  195. package/context/HighlightedProvider/useItemHighlighted.js +3 -9
  196. package/context/InteractionProvider.d.ts +2 -2
  197. package/context/InteractionProvider.js +13 -22
  198. package/context/PluginProvider/ColorProcessor.types.js +1 -5
  199. package/context/PluginProvider/ExtremumGetter.types.d.ts +11 -1
  200. package/context/PluginProvider/ExtremumGetter.types.js +1 -5
  201. package/context/PluginProvider/Plugin.types.js +1 -5
  202. package/context/PluginProvider/PluginContext.js +2 -10
  203. package/context/PluginProvider/PluginProvider.js +8 -15
  204. package/context/PluginProvider/SeriesFormatter.types.js +1 -5
  205. package/context/PluginProvider/index.js +10 -115
  206. package/context/PluginProvider/mergePlugins.d.ts +6 -6
  207. package/context/PluginProvider/mergePlugins.js +6 -13
  208. package/context/PluginProvider/useColorProcessor.js +4 -12
  209. package/context/PluginProvider/useSeriesFormatter.js +4 -12
  210. package/context/PluginProvider/useXExtremumGetter.js +4 -12
  211. package/context/PluginProvider/useYExtremumGetter.js +4 -12
  212. package/context/SeriesProvider/Series.types.js +1 -5
  213. package/context/SeriesProvider/SeriesContext.js +2 -10
  214. package/context/SeriesProvider/SeriesProvider.js +14 -21
  215. package/context/SeriesProvider/index.js +7 -48
  216. package/context/SeriesProvider/processSeries.js +6 -14
  217. package/context/ZAxisContextProvider.js +36 -45
  218. package/context/context.types.js +1 -5
  219. package/context/index.js +2 -27
  220. package/context/package.json +2 -2
  221. package/hooks/index.js +7 -115
  222. package/hooks/package.json +2 -2
  223. package/hooks/useAxis.js +5 -12
  224. package/hooks/useAxisEvents.js +20 -26
  225. package/hooks/useChartDimensions.js +5 -14
  226. package/hooks/useChartId.js +4 -12
  227. package/hooks/useColorScale.js +9 -19
  228. package/hooks/useDrawingArea.js +4 -12
  229. package/hooks/useInteractionItemProps.js +7 -16
  230. package/hooks/useMounted.js +4 -13
  231. package/hooks/useReducedMotion.js +6 -12
  232. package/hooks/useScale.js +8 -15
  233. package/hooks/useSeries.js +8 -19
  234. package/hooks/useSvgRef.js +4 -12
  235. package/hooks/useTicks.js +7 -16
  236. package/index.js +27 -292
  237. package/internals/SlotComponentPropsFromProps.js +1 -5
  238. package/internals/cleanId.js +1 -7
  239. package/internals/colorScale.js +8 -16
  240. package/internals/components/AxisSharedComponents.js +8 -15
  241. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +17 -27
  242. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +7 -15
  243. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +7 -15
  244. package/internals/components/ChartsAxesGradients/index.js +1 -16
  245. package/internals/configInit.js +1 -7
  246. package/internals/defaultizeColor.d.ts +16 -16
  247. package/internals/defaultizeColor.js +5 -12
  248. package/internals/defaultizeValueFormatter.js +3 -10
  249. package/internals/domUtils.d.ts +2 -0
  250. package/internals/domUtils.js +19 -15
  251. package/internals/geometry.js +1 -7
  252. package/internals/getCurve.js +11 -17
  253. package/internals/getLabel.js +1 -7
  254. package/internals/getPercentageValue.js +1 -7
  255. package/internals/getSVGPoint.js +1 -7
  256. package/internals/getScale.js +8 -14
  257. package/internals/getSymbol.js +1 -7
  258. package/internals/getWordsByLines.js +5 -12
  259. package/internals/index.d.ts +3 -0
  260. package/internals/index.js +40 -306
  261. package/internals/isBandScale.js +1 -7
  262. package/internals/isCartesian.js +4 -11
  263. package/internals/isDefined.js +1 -7
  264. package/internals/isInfinity.js +1 -7
  265. package/internals/notNull.js +1 -7
  266. package/internals/package.json +2 -2
  267. package/internals/stackSeries.js +16 -23
  268. package/internals/ts-generic.js +1 -5
  269. package/internals/useAnimatedPath.d.ts +1 -1
  270. package/internals/useAnimatedPath.js +21 -26
  271. package/internals/warning.js +2 -9
  272. package/models/axis.d.ts +4 -0
  273. package/models/axis.js +6 -8
  274. package/models/colorMapping.js +1 -5
  275. package/models/helpers.js +1 -5
  276. package/models/index.js +4 -38
  277. package/models/layout.js +1 -5
  278. package/models/package.json +2 -2
  279. package/models/seriesType/bar.js +1 -5
  280. package/models/seriesType/common.js +1 -5
  281. package/models/seriesType/config.js +1 -5
  282. package/models/seriesType/index.js +6 -61
  283. package/models/seriesType/line.js +1 -5
  284. package/models/seriesType/pie.js +1 -5
  285. package/models/seriesType/scatter.js +1 -5
  286. package/models/stacking.js +1 -5
  287. package/models/z-axis.js +1 -5
  288. package/modern/BarChart/BarChart.js +6 -1
  289. package/modern/BarChart/BarLabel/BarLabel.js +4 -4
  290. package/modern/BarChart/BarPlot.js +4 -3
  291. package/modern/BarChart/extremums.js +42 -7
  292. package/modern/ChartContainer/useChartContainerProps.js +1 -1
  293. package/modern/ChartContainer/useDefaultizeAxis.js +16 -5
  294. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +23 -9
  295. package/modern/ChartsGrid/ChartsGrid.js +12 -10
  296. package/modern/ChartsLegend/ContinuousColorLegend.js +3 -2
  297. package/modern/ChartsLegend/LegendPerItem.js +5 -4
  298. package/{esm → modern/ChartsSurface}/ChartsSurface.js +7 -3
  299. package/modern/ChartsSurface/index.js +1 -0
  300. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  301. package/modern/ChartsXAxis/ChartsXAxis.js +14 -3
  302. package/modern/ChartsYAxis/ChartsYAxis.js +11 -4
  303. package/modern/LineChart/LineChart.js +6 -1
  304. package/modern/LineChart/MarkElement.js +4 -2
  305. package/modern/LineChart/extremums.js +20 -4
  306. package/modern/PieChart/PieChart.js +10 -5
  307. package/modern/ScatterChart/ScatterChart.js +6 -1
  308. package/modern/ScatterChart/extremums.js +26 -10
  309. package/modern/context/CartesianProvider/CartesianProvider.js +2 -5
  310. package/modern/context/CartesianProvider/computeValue.js +20 -23
  311. package/modern/context/CartesianProvider/getAxisExtremum.js +11 -5
  312. package/modern/context/CartesianProvider/index.js +1 -0
  313. package/modern/context/CartesianProvider/zoom.js +19 -0
  314. package/modern/context/DrawingProvider.js +11 -3
  315. package/modern/hooks/useAxisEvents.js +5 -2
  316. package/modern/index.js +1 -1
  317. package/modern/internals/domUtils.js +16 -3
  318. package/modern/internals/index.js +4 -0
  319. package/modern/internals/useAnimatedPath.js +17 -13
  320. package/modern/models/axis.js +5 -0
  321. package/modern/tests/firePointerEvent.js +35 -0
  322. package/node/BarChart/BarChart.js +356 -0
  323. package/node/BarChart/BarClipPath.js +50 -0
  324. package/node/BarChart/BarElement.js +119 -0
  325. package/node/BarChart/BarLabel/BarLabel.js +60 -0
  326. package/node/BarChart/BarLabel/BarLabel.types.js +5 -0
  327. package/node/BarChart/BarLabel/BarLabelItem.js +127 -0
  328. package/node/BarChart/BarLabel/BarLabelPlot.js +83 -0
  329. package/node/BarChart/BarLabel/barLabelClasses.js +29 -0
  330. package/{esm → node}/BarChart/BarLabel/getBarLabel.js +9 -2
  331. package/node/BarChart/BarLabel/index.js +25 -0
  332. package/{esm → node}/BarChart/BarPlot.js +47 -38
  333. package/{esm → node}/BarChart/checkScaleErrors.js +12 -6
  334. package/node/BarChart/extremums.js +83 -0
  335. package/{esm → node}/BarChart/formatter.js +16 -9
  336. package/{esm → node}/BarChart/getColor.js +7 -1
  337. package/{esm → node}/BarChart/getRadius.js +9 -2
  338. package/node/BarChart/index.js +49 -0
  339. package/{esm/LineChart → node/BarChart}/legend.js +9 -3
  340. package/node/BarChart/plugin.js +17 -0
  341. package/node/BarChart/types.js +5 -0
  342. package/{esm → node}/BarChart/useBarChartProps.js +25 -17
  343. package/node/ChartContainer/ChartContainer.js +258 -0
  344. package/node/ChartContainer/index.js +16 -0
  345. package/node/ChartContainer/useChartContainerProps.js +92 -0
  346. package/node/ChartContainer/useDefaultizeAxis.js +40 -0
  347. package/{esm → node}/ChartsAxis/ChartsAxis.js +32 -24
  348. package/node/ChartsAxis/axisClasses.js +12 -0
  349. package/node/ChartsAxis/index.js +27 -0
  350. package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +144 -0
  351. package/node/ChartsAxisHighlight/index.js +16 -0
  352. package/node/ChartsClipPath/ChartsClipPath.js +59 -0
  353. package/node/ChartsClipPath/index.js +16 -0
  354. package/node/ChartsGrid/ChartsGrid.js +141 -0
  355. package/node/ChartsGrid/chartsGridClasses.js +14 -0
  356. package/node/ChartsGrid/index.js +27 -0
  357. package/node/ChartsLegend/ChartsLegend.js +114 -0
  358. package/{esm → node}/ChartsLegend/ContinuousColorLegend.js +74 -65
  359. package/node/ChartsLegend/DefaultChartsLegend.js +105 -0
  360. package/{esm → node}/ChartsLegend/LegendPerItem.js +40 -29
  361. package/{esm → node}/ChartsLegend/PiecewiseColorLegend.js +44 -36
  362. package/node/ChartsLegend/chartsLegend.types.js +5 -0
  363. package/node/ChartsLegend/chartsLegendClasses.js +12 -0
  364. package/node/ChartsLegend/index.js +71 -0
  365. package/node/ChartsLegend/legend.types.js +5 -0
  366. package/{esm → node}/ChartsLegend/legendItemsPlacement.js +13 -6
  367. package/node/ChartsLegend/useAxis.js +47 -0
  368. package/node/ChartsLegend/utils.js +23 -0
  369. package/{esm → node}/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +23 -15
  370. package/node/ChartsOnAxisClickHandler/index.js +16 -0
  371. package/node/ChartsOverlay/ChartsLoadingOverlay.js +43 -0
  372. package/node/ChartsOverlay/ChartsNoDataOverlay.js +43 -0
  373. package/node/ChartsOverlay/ChartsOverlay.js +41 -0
  374. package/node/ChartsOverlay/index.js +26 -0
  375. package/node/ChartsReferenceLine/ChartsReferenceLine.js +82 -0
  376. package/node/ChartsReferenceLine/ChartsXReferenceLine.js +109 -0
  377. package/node/ChartsReferenceLine/ChartsYReferenceLine.js +109 -0
  378. package/node/ChartsReferenceLine/chartsReferenceLineClasses.js +14 -0
  379. package/node/ChartsReferenceLine/common.js +27 -0
  380. package/node/ChartsReferenceLine/index.js +27 -0
  381. package/{ChartsSurface.js → node/ChartsSurface/ChartsSurface.js} +6 -2
  382. package/node/ChartsSurface/index.js +16 -0
  383. package/{esm → node}/ChartsText/ChartsText.js +26 -18
  384. package/node/ChartsText/index.js +12 -0
  385. package/node/ChartsTooltip/ChartsAxisTooltipContent.js +88 -0
  386. package/node/ChartsTooltip/ChartsItemTooltipContent.js +60 -0
  387. package/node/ChartsTooltip/ChartsTooltip.js +162 -0
  388. package/{esm → node}/ChartsTooltip/ChartsTooltipTable.js +16 -11
  389. package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +129 -0
  390. package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +98 -0
  391. package/node/ChartsTooltip/chartsTooltipClasses.js +12 -0
  392. package/node/ChartsTooltip/index.js +82 -0
  393. package/{esm → node}/ChartsTooltip/utils.js +21 -9
  394. package/{esm → node}/ChartsVoronoiHandler/ChartsVoronoiHandler.js +37 -29
  395. package/node/ChartsVoronoiHandler/index.js +16 -0
  396. package/{esm → node}/ChartsXAxis/ChartsXAxis.js +98 -79
  397. package/node/ChartsXAxis/index.js +16 -0
  398. package/{esm → node}/ChartsYAxis/ChartsYAxis.js +86 -71
  399. package/node/ChartsYAxis/index.js +16 -0
  400. package/node/Gauge/Gauge.js +157 -0
  401. package/{esm → node}/Gauge/GaugeContainer.js +59 -51
  402. package/node/Gauge/GaugeProvider.js +99 -0
  403. package/node/Gauge/GaugeReferenceArc.js +44 -0
  404. package/node/Gauge/GaugeValueArc.js +51 -0
  405. package/node/Gauge/GaugeValueText.js +77 -0
  406. package/node/Gauge/gaugeClasses.js +15 -0
  407. package/node/Gauge/index.js +87 -0
  408. package/{esm → node}/Gauge/utils.js +9 -2
  409. package/node/LineChart/AnimatedArea.js +112 -0
  410. package/node/LineChart/AnimatedLine.js +115 -0
  411. package/node/LineChart/AreaElement.js +119 -0
  412. package/{esm → node}/LineChart/AreaPlot.js +38 -30
  413. package/node/LineChart/LineChart.js +357 -0
  414. package/node/LineChart/LineElement.js +119 -0
  415. package/node/LineChart/LineHighlightElement.js +90 -0
  416. package/node/LineChart/LineHighlightPlot.js +126 -0
  417. package/{esm → node}/LineChart/LinePlot.js +38 -30
  418. package/node/LineChart/MarkElement.js +140 -0
  419. package/{esm → node}/LineChart/MarkPlot.js +41 -33
  420. package/{esm → node}/LineChart/extremums.js +31 -7
  421. package/{esm → node}/LineChart/formatter.js +16 -9
  422. package/{esm → node}/LineChart/getColor.js +7 -1
  423. package/node/LineChart/index.js +126 -0
  424. package/{esm/BarChart → node/LineChart}/legend.js +9 -3
  425. package/node/LineChart/plugin.js +17 -0
  426. package/{esm → node}/LineChart/useLineChartProps.js +22 -14
  427. package/node/PieChart/PieArc.js +117 -0
  428. package/node/PieChart/PieArcLabel.js +117 -0
  429. package/node/PieChart/PieArcLabelPlot.js +202 -0
  430. package/node/PieChart/PieArcPlot.js +184 -0
  431. package/node/PieChart/PieChart.js +401 -0
  432. package/{esm → node}/PieChart/PiePlot.js +37 -29
  433. package/{esm → node}/PieChart/dataTransform/transition.js +8 -2
  434. package/{esm → node}/PieChart/dataTransform/useTransformData.js +16 -7
  435. package/node/PieChart/formatter.js +53 -0
  436. package/node/PieChart/getColor.js +12 -0
  437. package/node/PieChart/getPieCoordinates.js +25 -0
  438. package/node/PieChart/index.js +82 -0
  439. package/{esm → node}/PieChart/legend.js +9 -3
  440. package/node/PieChart/plugin.js +14 -0
  441. package/{esm → node}/ResponsiveChartContainer/ResizableContainer.js +8 -2
  442. package/node/ResponsiveChartContainer/ResponsiveChartContainer.js +233 -0
  443. package/node/ResponsiveChartContainer/index.js +16 -0
  444. package/{esm → node}/ResponsiveChartContainer/useChartContainerDimensions.js +17 -7
  445. package/{esm → node}/ResponsiveChartContainer/useResponsiveChartContainerProps.js +16 -8
  446. package/{esm → node}/ScatterChart/Scatter.js +34 -26
  447. package/node/ScatterChart/ScatterChart.js +363 -0
  448. package/node/ScatterChart/ScatterPlot.js +107 -0
  449. package/node/ScatterChart/extremums.js +63 -0
  450. package/node/ScatterChart/formatter.js +17 -0
  451. package/{esm → node}/ScatterChart/getColor.js +7 -1
  452. package/node/ScatterChart/index.js +38 -0
  453. package/{esm → node}/ScatterChart/legend.js +9 -3
  454. package/node/ScatterChart/plugin.js +17 -0
  455. package/{esm → node}/ScatterChart/useScatterChartProps.js +18 -10
  456. package/node/SparkLineChart/SparkLineChart.js +356 -0
  457. package/node/SparkLineChart/index.js +16 -0
  458. package/node/colorPalettes/colorPalettes.js +18 -0
  459. package/node/colorPalettes/index.js +16 -0
  460. package/node/context/CartesianProvider/Cartesian.types.js +5 -0
  461. package/node/context/CartesianProvider/CartesianContext.js +21 -0
  462. package/node/context/CartesianProvider/CartesianProvider.js +54 -0
  463. package/{esm → node}/context/CartesianProvider/computeValue.js +49 -45
  464. package/node/context/CartesianProvider/defaultizeAxis.js +21 -0
  465. package/node/context/CartesianProvider/getAxisExtremum.js +27 -0
  466. package/node/context/CartesianProvider/index.js +61 -0
  467. package/node/context/CartesianProvider/useCartesianContext.js +17 -0
  468. package/node/context/CartesianProvider/zoom.js +26 -0
  469. package/node/context/DrawingProvider.js +87 -0
  470. package/node/context/HighlightedProvider/HighlightedContext.js +39 -0
  471. package/node/context/HighlightedProvider/HighlightedProvider.js +100 -0
  472. package/{esm → node}/context/HighlightedProvider/createIsFaded.js +9 -2
  473. package/{esm → node}/context/HighlightedProvider/createIsHighlighted.js +9 -2
  474. package/node/context/HighlightedProvider/index.js +49 -0
  475. package/node/context/HighlightedProvider/useHighlighted.js +27 -0
  476. package/{esm → node}/context/HighlightedProvider/useItemHighlighted.js +9 -3
  477. package/node/context/InteractionProvider.js +85 -0
  478. package/node/context/PluginProvider/ColorProcessor.types.js +5 -0
  479. package/node/context/PluginProvider/ExtremumGetter.types.js +5 -0
  480. package/node/context/PluginProvider/Plugin.types.js +5 -0
  481. package/node/context/PluginProvider/PluginContext.js +21 -0
  482. package/node/context/PluginProvider/PluginProvider.js +26 -0
  483. package/node/context/PluginProvider/SeriesFormatter.types.js +5 -0
  484. package/node/context/PluginProvider/index.js +115 -0
  485. package/{esm → node}/context/PluginProvider/mergePlugins.js +13 -6
  486. package/node/context/PluginProvider/useColorProcessor.js +23 -0
  487. package/node/context/PluginProvider/useSeriesFormatter.js +23 -0
  488. package/node/context/PluginProvider/useXExtremumGetter.js +23 -0
  489. package/node/context/PluginProvider/useYExtremumGetter.js +23 -0
  490. package/node/context/SeriesProvider/Series.types.js +5 -0
  491. package/node/context/SeriesProvider/SeriesContext.js +16 -0
  492. package/node/context/SeriesProvider/SeriesProvider.js +38 -0
  493. package/node/context/SeriesProvider/index.js +49 -0
  494. package/{esm → node}/context/SeriesProvider/processSeries.js +14 -6
  495. package/node/context/ZAxisContextProvider.js +103 -0
  496. package/node/context/context.types.js +5 -0
  497. package/node/context/index.js +27 -0
  498. package/node/hooks/index.js +115 -0
  499. package/node/hooks/useAxis.js +24 -0
  500. package/{esm → node}/hooks/useAxisEvents.js +29 -17
  501. package/node/hooks/useChartDimensions.js +25 -0
  502. package/node/hooks/useChartId.js +16 -0
  503. package/node/hooks/useColorScale.js +37 -0
  504. package/node/hooks/useDrawingArea.js +30 -0
  505. package/node/hooks/useInteractionItemProps.js +55 -0
  506. package/node/hooks/useMounted.js +25 -0
  507. package/{esm → node}/hooks/useReducedMotion.js +12 -6
  508. package/node/hooks/useScale.js +30 -0
  509. package/{esm → node}/hooks/useSeries.js +19 -8
  510. package/node/hooks/useSvgRef.js +20 -0
  511. package/{esm → node}/hooks/useTicks.js +16 -7
  512. package/node/index.js +298 -0
  513. package/node/internals/SlotComponentPropsFromProps.js +5 -0
  514. package/node/internals/cleanId.js +12 -0
  515. package/node/internals/colorScale.js +24 -0
  516. package/node/internals/components/AxisSharedComponents.js +33 -0
  517. package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +105 -0
  518. package/node/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +64 -0
  519. package/node/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +48 -0
  520. package/node/internals/components/ChartsAxesGradients/index.js +16 -0
  521. package/{esm → node}/internals/configInit.js +7 -1
  522. package/node/internals/defaultizeColor.js +21 -0
  523. package/node/internals/defaultizeValueFormatter.js +17 -0
  524. package/{esm → node}/internals/domUtils.js +30 -7
  525. package/{esm → node}/internals/geometry.js +7 -1
  526. package/node/internals/getCurve.js +45 -0
  527. package/node/internals/getLabel.js +9 -0
  528. package/{esm → node}/internals/getPercentageValue.js +7 -1
  529. package/{esm → node}/internals/getSVGPoint.js +7 -1
  530. package/node/internals/getScale.js +23 -0
  531. package/{esm → node}/internals/getSymbol.js +7 -1
  532. package/node/internals/getWordsByLines.js +21 -0
  533. package/node/internals/index.js +335 -0
  534. package/node/internals/isBandScale.js +9 -0
  535. package/node/internals/isCartesian.js +14 -0
  536. package/node/internals/isDefined.js +9 -0
  537. package/node/internals/isInfinity.js +9 -0
  538. package/node/internals/notNull.js +9 -0
  539. package/{esm → node}/internals/stackSeries.js +23 -16
  540. package/node/internals/ts-generic.js +5 -0
  541. package/node/internals/useAnimatedPath.js +42 -0
  542. package/{esm → node}/internals/warning.js +9 -2
  543. package/node/models/axis.js +18 -0
  544. package/node/models/colorMapping.js +5 -0
  545. package/node/models/helpers.js +5 -0
  546. package/node/models/index.js +38 -0
  547. package/node/models/layout.js +5 -0
  548. package/node/models/seriesType/bar.js +5 -0
  549. package/node/models/seriesType/common.js +5 -0
  550. package/node/models/seriesType/config.js +5 -0
  551. package/node/models/seriesType/index.js +71 -0
  552. package/node/models/seriesType/line.js +5 -0
  553. package/node/models/seriesType/pie.js +5 -0
  554. package/node/models/seriesType/scatter.js +5 -0
  555. package/node/models/stacking.js +5 -0
  556. package/node/models/z-axis.js +5 -0
  557. package/node/tests/firePointerEvent.js +42 -0
  558. package/node/themeAugmentation/index.js +38 -0
  559. package/package.json +8 -8
  560. package/tests/firePointerEvent.js +35 -0
  561. package/themeAugmentation/components.d.ts +2 -12
  562. package/themeAugmentation/index.js +3 -38
  563. package/themeAugmentation/overrides.d.ts +6 -7
  564. package/themeAugmentation/package.json +2 -2
  565. package/themeAugmentation/props.d.ts +3 -14
  566. package/context/CartesianProvider/normalizeAxis.d.ts +0 -5
  567. package/context/CartesianProvider/normalizeAxis.js +0 -23
  568. package/esm/BarChart/BarChart.js +0 -343
  569. package/esm/BarChart/BarClipPath.js +0 -42
  570. package/esm/BarChart/BarElement.js +0 -109
  571. package/esm/BarChart/BarLabel/BarLabel.js +0 -51
  572. package/esm/BarChart/BarLabel/BarLabelItem.js +0 -119
  573. package/esm/BarChart/BarLabel/BarLabelPlot.js +0 -75
  574. package/esm/BarChart/BarLabel/barLabelClasses.js +0 -19
  575. package/esm/BarChart/BarLabel/index.js +0 -2
  576. package/esm/BarChart/extremums.js +0 -40
  577. package/esm/BarChart/index.js +0 -4
  578. package/esm/BarChart/plugin.js +0 -10
  579. package/esm/ChartContainer/ChartContainer.js +0 -250
  580. package/esm/ChartContainer/index.js +0 -1
  581. package/esm/ChartContainer/useChartContainerProps.js +0 -82
  582. package/esm/ChartContainer/useDefaultizeAxis.js +0 -19
  583. package/esm/ChartsAxis/axisClasses.js +0 -5
  584. package/esm/ChartsAxis/index.js +0 -2
  585. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +0 -120
  586. package/esm/ChartsAxisHighlight/index.js +0 -1
  587. package/esm/ChartsClipPath/ChartsClipPath.js +0 -51
  588. package/esm/ChartsClipPath/index.js +0 -1
  589. package/esm/ChartsGrid/ChartsGrid.js +0 -131
  590. package/esm/ChartsGrid/chartsGridClasses.js +0 -6
  591. package/esm/ChartsGrid/index.js +0 -2
  592. package/esm/ChartsLegend/ChartsLegend.js +0 -106
  593. package/esm/ChartsLegend/DefaultChartsLegend.js +0 -97
  594. package/esm/ChartsLegend/chartsLegend.types.js +0 -1
  595. package/esm/ChartsLegend/chartsLegendClasses.js +0 -5
  596. package/esm/ChartsLegend/index.js +0 -6
  597. package/esm/ChartsLegend/legend.types.js +0 -1
  598. package/esm/ChartsLegend/useAxis.js +0 -39
  599. package/esm/ChartsLegend/utils.js +0 -16
  600. package/esm/ChartsOnAxisClickHandler/index.js +0 -1
  601. package/esm/ChartsOverlay/ChartsLoadingOverlay.js +0 -34
  602. package/esm/ChartsOverlay/ChartsNoDataOverlay.js +0 -34
  603. package/esm/ChartsOverlay/ChartsOverlay.js +0 -31
  604. package/esm/ChartsOverlay/index.js +0 -3
  605. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +0 -74
  606. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +0 -100
  607. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +0 -100
  608. package/esm/ChartsReferenceLine/chartsReferenceLineClasses.js +0 -6
  609. package/esm/ChartsReferenceLine/common.js +0 -20
  610. package/esm/ChartsReferenceLine/index.js +0 -2
  611. package/esm/ChartsText/index.js +0 -1
  612. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +0 -80
  613. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +0 -52
  614. package/esm/ChartsTooltip/ChartsTooltip.js +0 -154
  615. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -121
  616. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -90
  617. package/esm/ChartsTooltip/chartsTooltipClasses.js +0 -5
  618. package/esm/ChartsTooltip/index.js +0 -7
  619. package/esm/ChartsVoronoiHandler/index.js +0 -1
  620. package/esm/ChartsXAxis/index.js +0 -1
  621. package/esm/ChartsYAxis/index.js +0 -1
  622. package/esm/Gauge/Gauge.js +0 -149
  623. package/esm/Gauge/GaugeProvider.js +0 -88
  624. package/esm/Gauge/GaugeReferenceArc.js +0 -35
  625. package/esm/Gauge/GaugeValueArc.js +0 -42
  626. package/esm/Gauge/GaugeValueText.js +0 -69
  627. package/esm/Gauge/gaugeClasses.js +0 -7
  628. package/esm/Gauge/index.js +0 -7
  629. package/esm/LineChart/AnimatedArea.js +0 -103
  630. package/esm/LineChart/AnimatedLine.js +0 -106
  631. package/esm/LineChart/AreaElement.js +0 -109
  632. package/esm/LineChart/LineChart.js +0 -344
  633. package/esm/LineChart/LineElement.js +0 -109
  634. package/esm/LineChart/LineHighlightElement.js +0 -80
  635. package/esm/LineChart/LineHighlightPlot.js +0 -118
  636. package/esm/LineChart/MarkElement.js +0 -128
  637. package/esm/LineChart/index.js +0 -11
  638. package/esm/LineChart/plugin.js +0 -10
  639. package/esm/PieChart/PieArc.js +0 -107
  640. package/esm/PieChart/PieArcLabel.js +0 -107
  641. package/esm/PieChart/PieArcLabelPlot.js +0 -194
  642. package/esm/PieChart/PieArcPlot.js +0 -176
  643. package/esm/PieChart/PieChart.js +0 -388
  644. package/esm/PieChart/formatter.js +0 -46
  645. package/esm/PieChart/getColor.js +0 -6
  646. package/esm/PieChart/getPieCoordinates.js +0 -19
  647. package/esm/PieChart/index.js +0 -7
  648. package/esm/PieChart/plugin.js +0 -7
  649. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -225
  650. package/esm/ResponsiveChartContainer/index.js +0 -1
  651. package/esm/ScatterChart/ScatterChart.js +0 -350
  652. package/esm/ScatterChart/ScatterPlot.js +0 -99
  653. package/esm/ScatterChart/extremums.js +0 -39
  654. package/esm/ScatterChart/formatter.js +0 -11
  655. package/esm/ScatterChart/index.js +0 -3
  656. package/esm/ScatterChart/plugin.js +0 -10
  657. package/esm/SparkLineChart/SparkLineChart.js +0 -348
  658. package/esm/SparkLineChart/index.js +0 -1
  659. package/esm/colorPalettes/colorPalettes.js +0 -9
  660. package/esm/colorPalettes/index.js +0 -1
  661. package/esm/context/CartesianProvider/CartesianContext.js +0 -13
  662. package/esm/context/CartesianProvider/CartesianProvider.js +0 -50
  663. package/esm/context/CartesianProvider/defaultizeAxis.js +0 -13
  664. package/esm/context/CartesianProvider/getAxisExtremum.js +0 -14
  665. package/esm/context/CartesianProvider/index.js +0 -8
  666. package/esm/context/CartesianProvider/normalizeAxis.js +0 -15
  667. package/esm/context/CartesianProvider/useCartesianContext.js +0 -8
  668. package/esm/context/DrawingProvider.js +0 -68
  669. package/esm/context/HighlightedProvider/HighlightedContext.js +0 -32
  670. package/esm/context/HighlightedProvider/HighlightedProvider.js +0 -92
  671. package/esm/context/HighlightedProvider/index.js +0 -4
  672. package/esm/context/HighlightedProvider/useHighlighted.js +0 -20
  673. package/esm/context/InteractionProvider.js +0 -76
  674. package/esm/context/PluginProvider/ColorProcessor.types.js +0 -1
  675. package/esm/context/PluginProvider/ExtremumGetter.types.js +0 -1
  676. package/esm/context/PluginProvider/Plugin.types.js +0 -1
  677. package/esm/context/PluginProvider/PluginContext.js +0 -13
  678. package/esm/context/PluginProvider/PluginProvider.js +0 -19
  679. package/esm/context/PluginProvider/SeriesFormatter.types.js +0 -1
  680. package/esm/context/PluginProvider/index.js +0 -10
  681. package/esm/context/PluginProvider/useColorProcessor.js +0 -15
  682. package/esm/context/PluginProvider/useSeriesFormatter.js +0 -15
  683. package/esm/context/PluginProvider/useXExtremumGetter.js +0 -15
  684. package/esm/context/PluginProvider/useYExtremumGetter.js +0 -15
  685. package/esm/context/SeriesProvider/Series.types.js +0 -1
  686. package/esm/context/SeriesProvider/SeriesContext.js +0 -8
  687. package/esm/context/SeriesProvider/SeriesProvider.js +0 -31
  688. package/esm/context/SeriesProvider/index.js +0 -8
  689. package/esm/context/ZAxisContextProvider.js +0 -94
  690. package/esm/context/context.types.js +0 -1
  691. package/esm/context/index.js +0 -2
  692. package/esm/hooks/index.js +0 -7
  693. package/esm/hooks/useAxis.js +0 -17
  694. package/esm/hooks/useChartDimensions.js +0 -16
  695. package/esm/hooks/useChartId.js +0 -8
  696. package/esm/hooks/useColorScale.js +0 -27
  697. package/esm/hooks/useDrawingArea.js +0 -22
  698. package/esm/hooks/useInteractionItemProps.js +0 -46
  699. package/esm/hooks/useMounted.js +0 -16
  700. package/esm/hooks/useScale.js +0 -23
  701. package/esm/hooks/useSvgRef.js +0 -12
  702. package/esm/index.js +0 -26
  703. package/esm/internals/SlotComponentPropsFromProps.js +0 -1
  704. package/esm/internals/cleanId.js +0 -6
  705. package/esm/internals/colorScale.js +0 -16
  706. package/esm/internals/components/AxisSharedComponents.js +0 -26
  707. package/esm/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +0 -95
  708. package/esm/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +0 -56
  709. package/esm/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +0 -40
  710. package/esm/internals/components/ChartsAxesGradients/index.js +0 -1
  711. package/esm/internals/defaultizeColor.js +0 -14
  712. package/esm/internals/defaultizeValueFormatter.js +0 -10
  713. package/esm/internals/getCurve.js +0 -39
  714. package/esm/internals/getLabel.js +0 -3
  715. package/esm/internals/getScale.js +0 -17
  716. package/esm/internals/getWordsByLines.js +0 -14
  717. package/esm/internals/index.js +0 -37
  718. package/esm/internals/isBandScale.js +0 -3
  719. package/esm/internals/isCartesian.js +0 -7
  720. package/esm/internals/isDefined.js +0 -3
  721. package/esm/internals/isInfinity.js +0 -3
  722. package/esm/internals/notNull.js +0 -3
  723. package/esm/internals/ts-generic.js +0 -1
  724. package/esm/internals/useAnimatedPath.js +0 -29
  725. package/esm/internals/useIsRTL.js +0 -5
  726. package/esm/models/axis.js +0 -6
  727. package/esm/models/colorMapping.js +0 -1
  728. package/esm/models/helpers.js +0 -1
  729. package/esm/models/index.js +0 -4
  730. package/esm/models/layout.js +0 -1
  731. package/esm/models/seriesType/bar.js +0 -1
  732. package/esm/models/seriesType/common.js +0 -1
  733. package/esm/models/seriesType/config.js +0 -1
  734. package/esm/models/seriesType/index.js +0 -16
  735. package/esm/models/seriesType/line.js +0 -1
  736. package/esm/models/seriesType/pie.js +0 -1
  737. package/esm/models/seriesType/scatter.js +0 -1
  738. package/esm/models/stacking.js +0 -1
  739. package/esm/models/z-axis.js +0 -1
  740. package/esm/themeAugmentation/index.js +0 -3
  741. package/internals/useIsRTL.d.ts +0 -1
  742. package/internals/useIsRTL.js +0 -12
  743. package/modern/context/CartesianProvider/normalizeAxis.js +0 -15
  744. package/modern/internals/useIsRTL.js +0 -5
  745. /package/{ChartsSurface.d.ts → ChartsSurface/ChartsSurface.d.ts} +0 -0
  746. /package/{constants.d.ts → constants/index.d.ts} +0 -0
  747. /package/{esm/constants.js → constants/index.js} +0 -0
  748. /package/{esm/BarChart/BarLabel/BarLabel.types.js → context/CartesianProvider/Cartesian.types.js} +0 -0
  749. /package/modern/{constants.js → constants/index.js} +0 -0
  750. /package/{esm/BarChart/types.js → modern/context/CartesianProvider/Cartesian.types.js} +0 -0
  751. /package/{constants.js → node/constants/index.js} +0 -0
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import useSlotProps from '@mui/utils/useSlotProps';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { useThemeProps, useTheme } from '@mui/material/styles';
9
+ import { useRtl } from '@mui/system/RtlProvider';
9
10
  import { useCartesianContext } from '../context/CartesianProvider';
10
11
  import { useTicks } from '../hooks/useTicks';
11
12
  import { useDrawingArea } from '../hooks/useDrawingArea';
@@ -84,7 +85,7 @@ function ChartsYAxis(inProps) {
84
85
  sx
85
86
  } = defaultizedProps;
86
87
  const theme = useTheme();
87
- const isRTL = theme.direction === 'rtl';
88
+ const isRtl = useRtl();
88
89
  const classes = useUtilityClasses(_extends({}, defaultizedProps, {
89
90
  theme
90
91
  }));
@@ -92,7 +93,8 @@ function ChartsYAxis(inProps) {
92
93
  left,
93
94
  top,
94
95
  width,
95
- height
96
+ height,
97
+ isPointInside
96
98
  } = useDrawingArea();
97
99
  const tickSize = disableTicks ? 4 : tickSizeProp;
98
100
  const yTicks = useTicks({
@@ -112,7 +114,7 @@ function ChartsYAxis(inProps) {
112
114
  const Tick = slots?.axisTick ?? 'line';
113
115
  const TickLabel = slots?.axisTickLabel ?? ChartsText;
114
116
  const Label = slots?.axisLabel ?? ChartsText;
115
- const revertAnchor = !isRTL && position === 'right' || isRTL && position !== 'right';
117
+ const revertAnchor = !isRtl && position === 'right' || isRtl && position !== 'right';
116
118
  const axisTickLabelProps = useSlotProps({
117
119
  elementType: TickLabel,
118
120
  externalSlotProps: slotProps?.axisTickLabel,
@@ -172,7 +174,12 @@ function ChartsYAxis(inProps) {
172
174
  const xTickLabel = positionSign * (tickSize + 2);
173
175
  const yTickLabel = labelOffset;
174
176
  const skipLabel = typeof tickLabelInterval === 'function' && !tickLabelInterval?.(value, index);
175
- const showLabel = offset >= top - 1 && offset <= height + top + 1;
177
+ const showLabel = isPointInside({
178
+ x: -1,
179
+ y: offset
180
+ }, {
181
+ direction: 'y'
182
+ });
176
183
  if (!showLabel) {
177
184
  return null;
178
185
  }
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
+ import { useThemeProps } from '@mui/material/styles';
4
5
  import { AreaPlot } from './AreaPlot';
5
6
  import { LinePlot } from './LinePlot';
6
7
  import { ResponsiveChartContainer } from '../ResponsiveChartContainer';
@@ -26,7 +27,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
27
  *
27
28
  * - [LineChart API](https://mui.com/x/api/charts/line-chart/)
28
29
  */
29
- const LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
30
+ const LineChart = /*#__PURE__*/React.forwardRef(function LineChart(inProps, ref) {
31
+ const props = useThemeProps({
32
+ props: inProps,
33
+ name: 'MuiLineChart'
34
+ });
30
35
  const {
31
36
  chartContainerProps,
32
37
  axisClickHandlerProps,
@@ -76,8 +76,10 @@ function MarkElement(props) {
76
76
  axis
77
77
  } = React.useContext(InteractionContext);
78
78
  const position = useSpring({
79
- x,
80
- y,
79
+ to: {
80
+ x,
81
+ y
82
+ },
81
83
  immediate: skipAnimation
82
84
  });
83
85
  const ownerState = {
@@ -6,9 +6,18 @@ export const getExtremumX = params => {
6
6
  const maxX = Math.max(...(axis.data ?? []));
7
7
  return [minX, maxX];
8
8
  };
9
- function getSeriesExtremums(getValues, stackedData) {
10
- return stackedData.reduce((seriesAcc, stackedValue) => {
9
+ function getSeriesExtremums(getValues, stackedData, filter) {
10
+ return stackedData.reduce((seriesAcc, stackedValue, index) => {
11
11
  const [base, value] = getValues(stackedValue);
12
+ if (filter && (!filter({
13
+ y: base,
14
+ x: null
15
+ }, index) || !filter({
16
+ y: value,
17
+ x: null
18
+ }, index))) {
19
+ return seriesAcc;
20
+ }
12
21
  return [Math.min(base, value, seriesAcc[0]), Math.max(base, value, seriesAcc[1])];
13
22
  }, [Infinity, -Infinity]);
14
23
  }
@@ -16,7 +25,8 @@ export const getExtremumY = params => {
16
25
  const {
17
26
  series,
18
27
  axis,
19
- isDefaultAxis
28
+ isDefaultAxis,
29
+ getFilters
20
30
  } = params;
21
31
  return Object.keys(series).filter(seriesId => {
22
32
  const yAxisId = series[seriesId].yAxisId ?? series[seriesId].yAxisKey;
@@ -27,10 +37,16 @@ export const getExtremumY = params => {
27
37
  stackedData
28
38
  } = series[seriesId];
29
39
  const isArea = area !== undefined;
40
+ const filter = getFilters?.({
41
+ currentAxisId: axis.id,
42
+ isDefaultAxis,
43
+ seriesXAxisId: series[seriesId].xAxisId ?? series[seriesId].xAxisKey,
44
+ seriesYAxisId: series[seriesId].yAxisId ?? series[seriesId].yAxisKey
45
+ });
30
46
 
31
47
  // Since this series is not used to display an area, we do not consider the base (the d[0]).
32
48
  const getValues = isArea && axis.scaleType !== 'log' && typeof series[seriesId].baseline !== 'string' ? d => d : d => [d[1], d[1]];
33
- const seriesExtremums = getSeriesExtremums(getValues, stackedData);
49
+ const seriesExtremums = getSeriesExtremums(getValues, stackedData, filter);
34
50
  const [seriesMin, seriesMax] = seriesExtremums;
35
51
  return [Math.min(seriesMin, acc[0]), Math.max(seriesMax, acc[1])];
36
52
  }, [Infinity, -Infinity]);
@@ -3,6 +3,8 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "sx", "tooltip", "axisHighlight", "skipAnimation", "legend", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "onItemClick", "loading", "highlightedItem", "onHighlightChange", "className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import { useRtl } from '@mui/system/RtlProvider';
7
+ import { useThemeProps } from '@mui/material/styles';
6
8
  import { ResponsiveChartContainer } from '../ResponsiveChartContainer';
7
9
  import { ChartsAxis } from '../ChartsAxis/ChartsAxis';
8
10
  import { DEFAULT_X_AXIS_KEY } from '../constants';
@@ -10,7 +12,6 @@ import { ChartsTooltip } from '../ChartsTooltip';
10
12
  import { ChartsLegend } from '../ChartsLegend';
11
13
  import { ChartsAxisHighlight } from '../ChartsAxisHighlight';
12
14
  import { PiePlot } from './PiePlot';
13
- import { useIsRTL } from '../internals/useIsRTL';
14
15
  import { ChartsOverlay } from '../ChartsOverlay';
15
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
17
  const defaultMargin = {
@@ -36,7 +37,11 @@ const defaultRTLMargin = {
36
37
  *
37
38
  * - [PieChart API](https://mui.com/x/api/charts/pie-chart/)
38
39
  */
39
- const PieChart = /*#__PURE__*/React.forwardRef(function PieChart(props, ref) {
40
+ const PieChart = /*#__PURE__*/React.forwardRef(function PieChart(inProps, ref) {
41
+ const props = useThemeProps({
42
+ props: inProps,
43
+ name: 'MuiPieChart'
44
+ });
40
45
  const {
41
46
  xAxis,
42
47
  yAxis,
@@ -69,13 +74,13 @@ const PieChart = /*#__PURE__*/React.forwardRef(function PieChart(props, ref) {
69
74
  className
70
75
  } = props,
71
76
  other = _objectWithoutPropertiesLoose(props, _excluded);
72
- const isRTL = useIsRTL();
73
- const margin = _extends({}, isRTL ? defaultRTLMargin : defaultMargin, marginProps);
77
+ const isRtl = useRtl();
78
+ const margin = _extends({}, isRtl ? defaultRTLMargin : defaultMargin, marginProps);
74
79
  const legend = _extends({
75
80
  direction: 'column',
76
81
  position: {
77
82
  vertical: 'middle',
78
- horizontal: isRTL ? 'left' : 'right'
83
+ horizontal: isRtl ? 'left' : 'right'
79
84
  }
80
85
  }, legendProps);
81
86
  return /*#__PURE__*/_jsxs(ResponsiveChartContainer, _extends({}, other, {
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
+ import { useThemeProps } from '@mui/material/styles';
4
5
  import { ScatterPlot } from './ScatterPlot';
5
6
  import { ResponsiveChartContainer } from '../ResponsiveChartContainer';
6
7
  import { ChartsAxis } from '../ChartsAxis';
@@ -23,7 +24,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
24
  *
24
25
  * - [ScatterChart API](https://mui.com/x/api/charts/scatter-chart/)
25
26
  */
26
- const ScatterChart = /*#__PURE__*/React.forwardRef(function ScatterChart(props, ref) {
27
+ const ScatterChart = /*#__PURE__*/React.forwardRef(function ScatterChart(inProps, ref) {
28
+ const props = useThemeProps({
29
+ props: inProps,
30
+ name: 'MuiScatterChart'
31
+ });
27
32
  const {
28
33
  chartContainerProps,
29
34
  zAxisProps,
@@ -5,16 +5,24 @@ export const getExtremumX = params => {
5
5
  const {
6
6
  series,
7
7
  axis,
8
- isDefaultAxis
8
+ isDefaultAxis,
9
+ getFilters
9
10
  } = params;
10
11
  return Object.keys(series).filter(seriesId => {
11
12
  const axisId = series[seriesId].xAxisId ?? series[seriesId].xAxisKey;
12
13
  return axisId === axis.id || axisId === undefined && isDefaultAxis;
13
14
  }).reduce((acc, seriesId) => {
14
- const seriesMinMax = series[seriesId].data.reduce((accSeries, {
15
- x
16
- }) => {
17
- return mergeMinMax(accSeries, [x, x]);
15
+ const filter = getFilters?.({
16
+ currentAxisId: axis.id,
17
+ isDefaultAxis,
18
+ seriesXAxisId: series[seriesId].xAxisId ?? series[seriesId].xAxisKey,
19
+ seriesYAxisId: series[seriesId].yAxisId ?? series[seriesId].yAxisKey
20
+ });
21
+ const seriesMinMax = series[seriesId].data.reduce((accSeries, d, dataIndex) => {
22
+ if (filter && !filter(d, dataIndex)) {
23
+ return accSeries;
24
+ }
25
+ return mergeMinMax(accSeries, [d.x, d.x]);
18
26
  }, [Infinity, -Infinity]);
19
27
  return mergeMinMax(acc, seriesMinMax);
20
28
  }, [Infinity, -Infinity]);
@@ -23,16 +31,24 @@ export const getExtremumY = params => {
23
31
  const {
24
32
  series,
25
33
  axis,
26
- isDefaultAxis
34
+ isDefaultAxis,
35
+ getFilters
27
36
  } = params;
28
37
  return Object.keys(series).filter(seriesId => {
29
38
  const axisId = series[seriesId].yAxisId ?? series[seriesId].yAxisKey;
30
39
  return axisId === axis.id || axisId === undefined && isDefaultAxis;
31
40
  }).reduce((acc, seriesId) => {
32
- const seriesMinMax = series[seriesId].data.reduce((accSeries, {
33
- y
34
- }) => {
35
- return mergeMinMax(accSeries, [y, y]);
41
+ const filter = getFilters?.({
42
+ currentAxisId: axis.id,
43
+ isDefaultAxis,
44
+ seriesXAxisId: series[seriesId].xAxisId ?? series[seriesId].xAxisKey,
45
+ seriesYAxisId: series[seriesId].yAxisId ?? series[seriesId].yAxisKey
46
+ });
47
+ const seriesMinMax = series[seriesId].data.reduce((accSeries, d, dataIndex) => {
48
+ if (filter && !filter(d, dataIndex)) {
49
+ return accSeries;
50
+ }
51
+ return mergeMinMax(accSeries, [d.y, d.y]);
36
52
  }, [Infinity, -Infinity]);
37
53
  return mergeMinMax(acc, seriesMinMax);
38
54
  }, [Infinity, -Infinity]);
@@ -10,7 +10,6 @@ function CartesianProvider(props) {
10
10
  const {
11
11
  xAxis,
12
12
  yAxis,
13
- dataset,
14
13
  children
15
14
  } = props;
16
15
  const formattedSeries = useSeries();
@@ -22,17 +21,15 @@ function CartesianProvider(props) {
22
21
  formattedSeries,
23
22
  axis: xAxis,
24
23
  extremumGetters: xExtremumGetters,
25
- dataset,
26
24
  axisDirection: 'x'
27
- }), [drawingArea, formattedSeries, xAxis, xExtremumGetters, dataset]);
25
+ }), [drawingArea, formattedSeries, xAxis, xExtremumGetters]);
28
26
  const yValues = React.useMemo(() => computeValue({
29
27
  drawingArea,
30
28
  formattedSeries,
31
29
  axis: yAxis,
32
30
  extremumGetters: yExtremumGetters,
33
- dataset,
34
31
  axisDirection: 'y'
35
- }), [drawingArea, formattedSeries, yAxis, yExtremumGetters, dataset]);
32
+ }), [drawingArea, formattedSeries, yAxis, yExtremumGetters]);
36
33
  const value = React.useMemo(() => ({
37
34
  isInitialized: true,
38
35
  data: {
@@ -4,22 +4,12 @@ import { isBandScaleConfig, isPointScaleConfig } from '../../models/axis';
4
4
  import { getColorScale, getOrdinalColorScale } from '../../internals/colorScale';
5
5
  import { getTickNumber } from '../../hooks/useTicks';
6
6
  import { getScale } from '../../internals/getScale';
7
+ import { zoomScaleRange } from './zoom';
7
8
  import { getAxisExtremum } from './getAxisExtremum';
8
- import { normalizeAxis } from './normalizeAxis';
9
9
  const getRange = (drawingArea, axisDirection, isReverse) => {
10
10
  const range = axisDirection === 'x' ? [drawingArea.left, drawingArea.left + drawingArea.width] : [drawingArea.top + drawingArea.height, drawingArea.top];
11
11
  return isReverse ? range.reverse() : range;
12
12
  };
13
- const zoomedScaleRange = (scaleRange, zoomRange) => {
14
- const rangeGap = scaleRange[1] - scaleRange[0];
15
- const zoomGap = zoomRange[1] - zoomRange[0];
16
-
17
- // If current zoom show the scale between p1 and p2 percents
18
- // The range should be extended by adding [0, p1] and [p2, 100] segments
19
- const min = scaleRange[0] - zoomRange[0] * rangeGap / zoomGap;
20
- const max = scaleRange[1] + (100 - zoomRange[1]) * rangeGap / zoomGap;
21
- return [min, max];
22
- };
23
13
  const isDateData = data => data?.[0] instanceof Date;
24
14
  function createDateFormatter(axis, range) {
25
15
  const timeScale = scaleTime(axis.data, range);
@@ -32,32 +22,37 @@ const DEFAULT_BAR_GAP_RATIO = 0.1;
32
22
  export function computeValue({
33
23
  drawingArea,
34
24
  formattedSeries,
35
- axis: inAxis,
25
+ axis: allAxis,
36
26
  extremumGetters,
37
- dataset,
38
27
  axisDirection,
39
- zoomData
28
+ zoomData,
29
+ zoomOptions,
30
+ getFilters
40
31
  }) {
41
- const allAxis = normalizeAxis(inAxis, dataset, axisDirection);
42
32
  const completeAxis = {};
43
- allAxis.forEach((axis, axisIndex) => {
33
+ allAxis.forEach((eachAxis, axisIndex) => {
34
+ const axis = eachAxis;
44
35
  const isDefaultAxis = axisIndex === 0;
45
- const [minData, maxData] = getAxisExtremum(axis, extremumGetters, isDefaultAxis, formattedSeries);
36
+ const zoomOption = zoomOptions?.[axis.id];
46
37
  const zoom = zoomData?.find(({
47
38
  axisId
48
39
  }) => axisId === axis.id);
49
40
  const zoomRange = zoom ? [zoom.start, zoom.end] : [0, 100];
50
41
  const range = getRange(drawingArea, axisDirection, axis.reverse);
42
+ const [minData, maxData] = getAxisExtremum(axis, extremumGetters, isDefaultAxis, formattedSeries, zoom === undefined && !zoomOption ? getFilters : undefined // Do not apply filtering if zoom is already defined.
43
+ );
44
+ const data = axis.data ?? [];
51
45
  if (isBandScaleConfig(axis)) {
52
46
  const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
53
47
  const barGapRatio = axis.barGapRatio ?? DEFAULT_BAR_GAP_RATIO;
54
48
  // Reverse range because ordinal scales are presented from top to bottom on y-axis
55
49
  const scaleRange = axisDirection === 'x' ? range : [range[1], range[0]];
56
- const zoomedRange = zoomedScaleRange(scaleRange, zoomRange);
50
+ const zoomedRange = zoomScaleRange(scaleRange, zoomRange);
57
51
  completeAxis[axis.id] = _extends({
58
52
  categoryGapRatio,
59
53
  barGapRatio
60
54
  }, axis, {
55
+ data,
61
56
  scale: scaleBand(axis.data, zoomedRange).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
62
57
  tickNumber: axis.data.length,
63
58
  colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? getOrdinalColorScale(_extends({
@@ -71,8 +66,9 @@ export function computeValue({
71
66
  }
72
67
  if (isPointScaleConfig(axis)) {
73
68
  const scaleRange = axisDirection === 'x' ? range : [...range].reverse();
74
- const zoomedRange = zoomedScaleRange(scaleRange, zoomRange);
69
+ const zoomedRange = zoomScaleRange(scaleRange, zoomRange);
75
70
  completeAxis[axis.id] = _extends({}, axis, {
71
+ data,
76
72
  scale: scalePoint(axis.data, zoomedRange),
77
73
  tickNumber: axis.data.length,
78
74
  colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? getOrdinalColorScale(_extends({
@@ -89,19 +85,20 @@ export function computeValue({
89
85
  return;
90
86
  }
91
87
  const scaleType = axis.scaleType ?? 'linear';
92
- const extremums = [axis.min ?? minData, axis.max ?? maxData];
88
+ const axisExtremums = [axis.min ?? minData, axis.max ?? maxData];
93
89
  const rawTickNumber = getTickNumber(_extends({}, axis, {
94
90
  range,
95
- domain: extremums
91
+ domain: axisExtremums
96
92
  }));
97
93
  const tickNumber = rawTickNumber / ((zoomRange[1] - zoomRange[0]) / 100);
98
- const zoomedRange = zoomedScaleRange(range, zoomRange);
94
+ const zoomedRange = zoomScaleRange(range, zoomRange);
99
95
 
100
96
  // TODO: move nice to prop? Disable when there is zoom?
101
- const scale = getScale(scaleType, extremums, zoomedRange).nice(rawTickNumber);
97
+ const scale = getScale(scaleType, axisExtremums, zoomedRange).nice(rawTickNumber);
102
98
  const [minDomain, maxDomain] = scale.domain();
103
99
  const domain = [axis.min ?? minDomain, axis.max ?? maxDomain];
104
100
  completeAxis[axis.id] = _extends({}, axis, {
101
+ data,
105
102
  scaleType: scaleType,
106
103
  scale: scale.domain(domain),
107
104
  tickNumber,
@@ -1,14 +1,20 @@
1
- const axisExtremumCallback = (acc, chartType, axis, getters, isDefaultAxis, formattedSeries) => {
1
+ const axisExtremumCallback = (acc, chartType, axis, getters, isDefaultAxis, formattedSeries, getFilters) => {
2
2
  const getter = getters[chartType];
3
3
  const series = formattedSeries[chartType]?.series ?? {};
4
4
  const [minChartTypeData, maxChartTypeData] = getter?.({
5
5
  series,
6
6
  axis,
7
- isDefaultAxis
7
+ isDefaultAxis,
8
+ getFilters
8
9
  }) ?? [Infinity, -Infinity];
9
- return [Math.min(minChartTypeData, acc[0]), Math.max(maxChartTypeData, acc[1])];
10
+ const [minData, maxData] = acc;
11
+ return [Math.min(minChartTypeData, minData), Math.max(maxChartTypeData, maxData)];
10
12
  };
11
- export const getAxisExtremum = (axis, getters, isDefaultAxis, formattedSeries) => {
13
+ export const getAxisExtremum = (axis, getters, isDefaultAxis, formattedSeries, getFilters) => {
12
14
  const charTypes = Object.keys(getters);
13
- return charTypes.reduce((acc, charType) => axisExtremumCallback(acc, charType, axis, getters, isDefaultAxis, formattedSeries), [Infinity, -Infinity]);
15
+ const extremums = charTypes.reduce((acc, charType) => axisExtremumCallback(acc, charType, axis, getters, isDefaultAxis, formattedSeries, getFilters), [Infinity, -Infinity]);
16
+ if (Number.isNaN(extremums[0]) || Number.isNaN(extremums[1])) {
17
+ return [Infinity, -Infinity];
18
+ }
19
+ return extremums;
14
20
  };
@@ -2,6 +2,7 @@ import { computeValue } from './computeValue';
2
2
  export * from './CartesianProvider';
3
3
  export * from './CartesianContext';
4
4
  export * from './useCartesianContext';
5
+ export * from './Cartesian.types';
5
6
  const cartesianProviderUtils = {
6
7
  computeValue
7
8
  };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Applies the zoom into the scale range.
3
+ * It changes the screen coordinates that the scale covers.
4
+ * Not the data that is displayed.
5
+ *
6
+ * @param scaleRange the original range in real screen coordinates.
7
+ * @param zoomRange the zoom range in percentage.
8
+ * @returns zoomed range in real screen coordinates.
9
+ */
10
+ export const zoomScaleRange = (scaleRange, zoomRange) => {
11
+ const rangeGap = scaleRange[1] - scaleRange[0];
12
+ const zoomGap = zoomRange[1] - zoomRange[0];
13
+
14
+ // If current zoom show the scale between p1 and p2 percents
15
+ // The range should be extended by adding [0, p1] and [p2, 100] segments
16
+ const min = scaleRange[0] - zoomRange[0] * rangeGap / zoomGap;
17
+ const max = scaleRange[1] + (100 - zoomRange[1]) * rangeGap / zoomGap;
18
+ return [min, max];
19
+ };
@@ -42,12 +42,20 @@ export function DrawingProvider(props) {
42
42
  const isPointInside = React.useCallback(({
43
43
  x,
44
44
  y
45
- }, targetElement) => {
45
+ }, options) => {
46
46
  // For element allowed to overflow, wrapping them in <g data-drawing-container /> make them fully part of the drawing area.
47
- if (targetElement && targetElement.closest('[data-drawing-container]')) {
47
+ if (options?.targetElement && options?.targetElement.closest('[data-drawing-container]')) {
48
48
  return true;
49
49
  }
50
- return x >= drawingArea.left && x <= drawingArea.left + drawingArea.width && y >= drawingArea.top && y <= drawingArea.top + drawingArea.height;
50
+ const isInsideX = x >= drawingArea.left - 1 && x <= drawingArea.left + drawingArea.width;
51
+ const isInsideY = y >= drawingArea.top - 1 && y <= drawingArea.top + drawingArea.height;
52
+ if (options?.direction === 'x') {
53
+ return isInsideX;
54
+ }
55
+ if (options?.direction === 'y') {
56
+ return isInsideY;
57
+ }
58
+ return isInsideX && isInsideY;
51
59
  }, [drawingArea]);
52
60
  const value = React.useMemo(() => _extends({
53
61
  chartId: chartId ?? ''
@@ -44,7 +44,8 @@ export const useAxisEvents = disableAxisListener => {
44
44
  const value = scale.invert(mouseValue);
45
45
  if (axisData === undefined) {
46
46
  return {
47
- value
47
+ value,
48
+ index: -1
48
49
  };
49
50
  }
50
51
  const valueAsNumber = getAsANumber(value);
@@ -98,7 +99,9 @@ export const useAxisEvents = disableAxisListener => {
98
99
  const svgPoint = getSVGPoint(element, target);
99
100
  mousePosition.current.x = svgPoint.x;
100
101
  mousePosition.current.y = svgPoint.y;
101
- if (!drawingArea.isPointInside(svgPoint, event.target)) {
102
+ if (!drawingArea.isPointInside(svgPoint, {
103
+ targetElement: event.target
104
+ })) {
102
105
  if (mousePosition.current.isInChart) {
103
106
  dispatch({
104
107
  type: 'exitChart'
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts v7.13.0
2
+ * @mui/x-charts v7.15.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -20,7 +20,7 @@ const SPAN_STYLE = {
20
20
  whiteSpace: 'pre'
21
21
  };
22
22
  const STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];
23
- const MEASUREMENT_SPAN_ID = 'mui_measurement_span';
23
+ export const MEASUREMENT_SPAN_ID = 'mui_measurement_span';
24
24
 
25
25
  /**
26
26
  *
@@ -57,7 +57,7 @@ function camelToMiddleLine(text) {
57
57
  * @returns CSS styling string
58
58
  */
59
59
  export const getStyleString = style => Object.keys(style).sort().reduce((result, s) => `${result}${camelToMiddleLine(s)}:${autoCompleteStyle(s, style[s])};`, '');
60
-
60
+ let domCleanTimeout;
61
61
  /**
62
62
  *
63
63
  * @param text The string to estimate
@@ -105,6 +105,13 @@ export const getStringSize = (text, style = {}) => {
105
105
  } else {
106
106
  stringCache.cacheCount += 1;
107
107
  }
108
+ if (domCleanTimeout) {
109
+ clearTimeout(domCleanTimeout);
110
+ }
111
+ domCleanTimeout = setTimeout(() => {
112
+ // Limit node cleaning to once per render cycle
113
+ measurementSpan.textContent = '';
114
+ }, 0);
108
115
  return result;
109
116
  } catch (e) {
110
117
  return {
@@ -112,4 +119,10 @@ export const getStringSize = (text, style = {}) => {
112
119
  height: 0
113
120
  };
114
121
  }
115
- };
122
+ };
123
+
124
+ // eslint-disable-next-line @typescript-eslint/naming-convention
125
+ export function unstable_cleanupDOM() {
126
+ // const measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);
127
+ // measurementSpan?.remove();
128
+ }
@@ -20,6 +20,8 @@ export * from './configInit';
20
20
  export * from './getLabel';
21
21
  export * from './getSVGPoint';
22
22
  export * from './isDefined';
23
+ export { unstable_cleanupDOM } from './domUtils';
24
+ export * from './getScale';
23
25
 
24
26
  // contexts
25
27
 
@@ -29,6 +31,8 @@ export * from '../context/InteractionProvider';
29
31
  export * from '../context/SeriesProvider';
30
32
  export * from '../context/ZAxisContextProvider';
31
33
  export * from '../context/PluginProvider';
34
+ export { getAxisExtremum } from '../context/CartesianProvider/getAxisExtremum';
35
+
32
36
  // series configuration
33
37
  export * from '../models/seriesType/config';
34
38
  export * from '../models/seriesType/common';
@@ -1,21 +1,25 @@
1
1
  import * as React from 'react';
2
2
  import { interpolateString } from '@mui/x-charts-vendor/d3-interpolate';
3
- import { useSpring, to } from '@react-spring/web';
3
+ import { useSpring } from '@react-spring/web';
4
4
  function usePrevious(value) {
5
- const ref = React.useRef(null);
6
- React.useEffect(() => {
7
- ref.current = value;
8
- }, [value]);
5
+ const ref = React.useRef({
6
+ currentPath: value,
7
+ previousPath: undefined
8
+ });
9
+ if (ref.current.currentPath !== value) {
10
+ ref.current = {
11
+ currentPath: value,
12
+ previousPath: ref.current.currentPath
13
+ };
14
+ }
9
15
  return ref.current;
10
16
  }
11
-
12
- // Taken from Nivo
13
17
  export const useAnimatedPath = (path, skipAnimation) => {
14
- const previousPath = usePrevious(path);
15
- const interpolator = React.useMemo(() => previousPath ? interpolateString(previousPath, path) : () => path, [previousPath, path]);
16
- const {
18
+ const memoryRef = usePrevious(path);
19
+ const interpolator = React.useMemo(() => memoryRef.previousPath ? interpolateString(memoryRef.previousPath, memoryRef.currentPath) : () => memoryRef.currentPath, [memoryRef.currentPath, memoryRef.previousPath]);
20
+ const [{
17
21
  value
18
- } = useSpring({
22
+ }] = useSpring({
19
23
  from: {
20
24
  value: 0
21
25
  },
@@ -24,6 +28,6 @@ export const useAnimatedPath = (path, skipAnimation) => {
24
28
  },
25
29
  reset: true,
26
30
  immediate: skipAnimation
27
- });
28
- return to([value], interpolator);
31
+ }, [memoryRef.currentPath]);
32
+ return value.to(interpolator);
29
33
  };
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Use this type instead of `AxisScaleConfig` when the values
3
+ * shouldn't be provided by the user.
4
+ */
5
+
1
6
  export function isBandScaleConfig(scaleConfig) {
2
7
  return scaleConfig.scaleType === 'band';
3
8
  }
@@ -0,0 +1,35 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { fireEvent } from '@mui/internal-test-utils';
3
+ export function firePointerEvent(target, type, options) {
4
+ const originalGetBoundingClientRect = target.getBoundingClientRect;
5
+ target.getBoundingClientRect = () => ({
6
+ x: 0,
7
+ y: 0,
8
+ bottom: 0,
9
+ height: 0,
10
+ left: 0,
11
+ right: 0,
12
+ top: 0,
13
+ width: 0,
14
+ toJSON() {
15
+ return {
16
+ x: 0,
17
+ y: 0,
18
+ bottom: 0,
19
+ height: 0,
20
+ left: 0,
21
+ right: 0,
22
+ top: 0,
23
+ width: 0
24
+ };
25
+ }
26
+ });
27
+ const event = new window.PointerEvent(type, _extends({
28
+ bubbles: true,
29
+ cancelable: true,
30
+ composed: true,
31
+ isPrimary: true
32
+ }, options));
33
+ fireEvent(target, event);
34
+ target.getBoundingClientRect = originalGetBoundingClientRect;
35
+ }