@mui/x-charts 9.8.0 → 9.10.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 (434) hide show
  1. package/BarChart/AnimatedBarElement.d.mts +1 -1
  2. package/BarChart/AnimatedBarElement.d.ts +1 -1
  3. package/BarChart/BarClipPath.d.mts +1 -1
  4. package/BarChart/BarClipPath.d.ts +1 -1
  5. package/BarChart/BarElement.d.mts +1 -1
  6. package/BarChart/BarElement.d.ts +1 -1
  7. package/BarChart/BarLabel/BarLabelItem.d.mts +1 -1
  8. package/BarChart/BarLabel/BarLabelItem.d.ts +1 -1
  9. package/BarChart/BarLabel/BarLabelPlot.d.mts +2 -1
  10. package/BarChart/BarLabel/BarLabelPlot.d.ts +2 -1
  11. package/BarChart/BatchBarPlot/BarGroup.d.mts +1 -1
  12. package/BarChart/BatchBarPlot/BarGroup.d.ts +1 -1
  13. package/BarChart/BatchBarPlot/BatchBarPlot.d.mts +2 -1
  14. package/BarChart/BatchBarPlot/BatchBarPlot.d.ts +2 -1
  15. package/BarChart/FocusedBar.d.mts +1 -1
  16. package/BarChart/FocusedBar.d.ts +1 -1
  17. package/BarChart/IndividualBarPlot.d.mts +2 -1
  18. package/BarChart/IndividualBarPlot.d.ts +2 -1
  19. package/BarChart/barClasses.d.mts +1 -1
  20. package/BarChart/barClasses.d.ts +1 -1
  21. package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.mts +10 -10
  22. package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.ts +10 -10
  23. package/BarChart/seriesConfig/bar/tooltipPosition.d.mts +2 -3
  24. package/BarChart/seriesConfig/bar/tooltipPosition.d.ts +2 -3
  25. package/BarChart/seriesConfig/bar/tooltipPosition.js +19 -15
  26. package/BarChart/seriesConfig/bar/tooltipPosition.mjs +18 -14
  27. package/BarChart/seriesConfig/index.js +2 -2
  28. package/BarChart/seriesConfig/index.mjs +2 -2
  29. package/BarChart/useBarPlotData.d.mts +5 -1
  30. package/BarChart/useBarPlotData.d.ts +5 -1
  31. package/BarChart/useBarPlotData.js +102 -25
  32. package/BarChart/useBarPlotData.mjs +102 -26
  33. package/CHANGELOG.md +230 -0
  34. package/ChartsAxis/ChartsAxis.d.mts +2 -1
  35. package/ChartsAxis/ChartsAxis.d.ts +2 -1
  36. package/ChartsAxisHighlight/ChartsAxisHighlight.d.mts +2 -1
  37. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +2 -1
  38. package/ChartsAxisHighlight/ChartsXAxisHighlight.d.mts +2 -1
  39. package/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +2 -1
  40. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +22 -5
  41. package/ChartsAxisHighlight/ChartsXAxisHighlight.mjs +23 -6
  42. package/ChartsAxisHighlight/ChartsYAxisHighlight.d.mts +2 -1
  43. package/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +2 -1
  44. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +22 -5
  45. package/ChartsAxisHighlight/ChartsYAxisHighlight.mjs +23 -6
  46. package/ChartsAxisHighlight/getSampledBandHighlight.d.mts +27 -0
  47. package/ChartsAxisHighlight/getSampledBandHighlight.d.ts +27 -0
  48. package/ChartsAxisHighlight/getSampledBandHighlight.js +35 -0
  49. package/ChartsAxisHighlight/getSampledBandHighlight.mjs +29 -0
  50. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.d.mts +1 -1
  51. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.d.ts +1 -1
  52. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.d.mts +2 -1
  53. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.d.ts +2 -1
  54. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.d.mts +1 -1
  55. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.d.ts +1 -1
  56. package/ChartsBrushOverlay/ChartsBrushOverlay.d.mts +2 -1
  57. package/ChartsBrushOverlay/ChartsBrushOverlay.d.ts +2 -1
  58. package/ChartsClipPath/ChartsClipPath.d.mts +1 -1
  59. package/ChartsClipPath/ChartsClipPath.d.ts +1 -1
  60. package/ChartsDataProvider/ChartsDataProvider.d.mts +1 -1
  61. package/ChartsDataProvider/ChartsDataProvider.d.ts +1 -1
  62. package/ChartsDataProvider/useChartsDataProviderProps.d.mts +1 -1
  63. package/ChartsDataProvider/useChartsDataProviderProps.d.ts +1 -1
  64. package/ChartsGrid/ChartsGrid.d.mts +1 -1
  65. package/ChartsGrid/ChartsGrid.d.ts +1 -1
  66. package/ChartsGrid/ChartsHorizontalGrid.d.mts +2 -1
  67. package/ChartsGrid/ChartsHorizontalGrid.d.ts +2 -1
  68. package/ChartsGrid/ChartsVerticalGrid.d.mts +2 -1
  69. package/ChartsGrid/ChartsVerticalGrid.d.ts +2 -1
  70. package/ChartsLabel/labelGradientClasses.d.mts +1 -1
  71. package/ChartsLabel/labelGradientClasses.d.ts +1 -1
  72. package/ChartsLabel/labelMarkClasses.d.mts +1 -1
  73. package/ChartsLabel/labelMarkClasses.d.ts +1 -1
  74. package/ChartsLegend/chartsLegend.types.d.mts +2 -1
  75. package/ChartsLegend/chartsLegend.types.d.ts +2 -1
  76. package/ChartsLegend/chartsLegendClasses.d.mts +1 -1
  77. package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  78. package/ChartsLegend/continuousColorLegendClasses.d.mts +1 -1
  79. package/ChartsLegend/continuousColorLegendClasses.d.ts +1 -1
  80. package/ChartsLegend/piecewiseColorLegendClasses.d.mts +1 -1
  81. package/ChartsLegend/piecewiseColorLegendClasses.d.ts +1 -1
  82. package/ChartsLocalizationProvider/ChartsLocalizationProvider.d.mts +1 -1
  83. package/ChartsLocalizationProvider/ChartsLocalizationProvider.d.ts +1 -1
  84. package/ChartsOverlay/ChartsLoadingOverlay.d.mts +1 -1
  85. package/ChartsOverlay/ChartsLoadingOverlay.d.ts +1 -1
  86. package/ChartsOverlay/ChartsNoDataOverlay.d.mts +1 -1
  87. package/ChartsOverlay/ChartsNoDataOverlay.d.ts +1 -1
  88. package/ChartsOverlay/ChartsOverlay.d.mts +1 -1
  89. package/ChartsOverlay/ChartsOverlay.d.ts +1 -1
  90. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.d.mts +2 -1
  91. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.d.ts +2 -1
  92. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.d.mts +2 -1
  93. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.d.ts +2 -1
  94. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.d.mts +2 -1
  95. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.d.ts +2 -1
  96. package/ChartsRadialDataProvider/ChartsRadialDataProvider.d.mts +1 -1
  97. package/ChartsRadialDataProvider/ChartsRadialDataProvider.d.ts +1 -1
  98. package/ChartsRadialDataProvider/useChartsRadialDataProviderProps.d.mts +1 -1
  99. package/ChartsRadialDataProvider/useChartsRadialDataProviderProps.d.ts +1 -1
  100. package/ChartsRadialGrid/ChartsRadialGrid.d.mts +1 -1
  101. package/ChartsRadialGrid/ChartsRadialGrid.d.ts +1 -1
  102. package/ChartsRadialGrid/ChartsRadiusGrid.d.mts +2 -1
  103. package/ChartsRadialGrid/ChartsRadiusGrid.d.ts +2 -1
  104. package/ChartsRadialGrid/ChartsRotationGrid.d.mts +2 -1
  105. package/ChartsRadialGrid/ChartsRotationGrid.d.ts +2 -1
  106. package/ChartsRadiusAxis/ChartsRadiusAxis.d.mts +1 -1
  107. package/ChartsRadiusAxis/ChartsRadiusAxis.d.ts +1 -1
  108. package/ChartsRadiusAxis/chartsRadiusAxisClasses.d.mts +1 -1
  109. package/ChartsRadiusAxis/chartsRadiusAxisClasses.d.ts +1 -1
  110. package/ChartsRadiusAxis/createGetLabelTextAnchors.d.mts +6 -6
  111. package/ChartsRadiusAxis/createGetLabelTextAnchors.d.ts +6 -6
  112. package/ChartsReferenceLine/ChartsReferenceLine.d.mts +1 -1
  113. package/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
  114. package/ChartsReferenceLine/ChartsXReferenceLine.d.mts +2 -2
  115. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +2 -2
  116. package/ChartsReferenceLine/ChartsYReferenceLine.d.mts +2 -2
  117. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +2 -2
  118. package/ChartsRotationAxis/ChartsRotationAxis.d.mts +1 -1
  119. package/ChartsRotationAxis/ChartsRotationAxis.d.ts +1 -1
  120. package/ChartsRotationAxis/chartsRotationAxisClasses.d.mts +1 -1
  121. package/ChartsRotationAxis/chartsRotationAxisClasses.d.ts +1 -1
  122. package/ChartsText/ChartsText.d.mts +1 -1
  123. package/ChartsText/ChartsText.d.ts +1 -1
  124. package/ChartsTooltip/ChartTooltip.types.d.mts +2 -1
  125. package/ChartsTooltip/ChartTooltip.types.d.ts +2 -1
  126. package/ChartsTooltip/ChartsAxisTooltipContent.d.mts +1 -1
  127. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -1
  128. package/ChartsTooltip/ChartsItemTooltipContent.d.mts +2 -1
  129. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +2 -1
  130. package/ChartsTooltip/ChartsTooltip.d.mts +1 -1
  131. package/ChartsTooltip/ChartsTooltip.d.ts +1 -1
  132. package/ChartsTooltip/ChartsTooltipContainer.d.mts +5 -2
  133. package/ChartsTooltip/ChartsTooltipContainer.d.ts +5 -2
  134. package/ChartsTooltip/ChartsTooltipContainer.js +1 -5
  135. package/ChartsTooltip/ChartsTooltipContainer.mjs +2 -6
  136. package/ChartsTooltip/ChartsTooltipTable.d.mts +1 -1
  137. package/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
  138. package/ChartsTooltip/chartsTooltipClasses.d.mts +1 -1
  139. package/ChartsTooltip/chartsTooltipClasses.d.ts +1 -1
  140. package/ChartsTooltip/useItemTooltip.d.mts +1 -1
  141. package/ChartsTooltip/useItemTooltip.d.ts +1 -1
  142. package/ChartsXAxis/ChartsGroupedXAxisTicks.d.mts +2 -1
  143. package/ChartsXAxis/ChartsGroupedXAxisTicks.d.ts +2 -1
  144. package/ChartsXAxis/ChartsSingleXAxisTicks.d.mts +2 -1
  145. package/ChartsXAxis/ChartsSingleXAxisTicks.d.ts +2 -1
  146. package/ChartsXAxis/ChartsXAxis.d.mts +1 -1
  147. package/ChartsXAxis/ChartsXAxis.d.ts +1 -1
  148. package/ChartsXAxis/ChartsXAxisImpl.d.mts +2 -1
  149. package/ChartsXAxis/ChartsXAxisImpl.d.ts +2 -1
  150. package/ChartsXAxis/useAxisTicksProps.d.mts +2573 -2573
  151. package/ChartsXAxis/useAxisTicksProps.d.ts +2573 -2573
  152. package/ChartsXAxis/utilities.d.mts +1 -1
  153. package/ChartsXAxis/utilities.d.ts +1 -1
  154. package/ChartsYAxis/ChartsGroupedYAxisTicks.d.mts +2 -1
  155. package/ChartsYAxis/ChartsGroupedYAxisTicks.d.ts +2 -1
  156. package/ChartsYAxis/ChartsSingleYAxisTicks.d.mts +2 -1
  157. package/ChartsYAxis/ChartsSingleYAxisTicks.d.ts +2 -1
  158. package/ChartsYAxis/ChartsYAxis.d.mts +1 -1
  159. package/ChartsYAxis/ChartsYAxis.d.ts +1 -1
  160. package/ChartsYAxis/ChartsYAxisImpl.d.mts +2 -1
  161. package/ChartsYAxis/ChartsYAxisImpl.d.ts +2 -1
  162. package/ChartsYAxis/useAxisTicksProps.d.mts +2573 -2573
  163. package/ChartsYAxis/useAxisTicksProps.d.ts +2573 -2573
  164. package/ChartsYAxis/utilities.d.mts +1 -1
  165. package/ChartsYAxis/utilities.d.ts +1 -1
  166. package/Gauge/GaugeProvider.d.mts +1 -1
  167. package/Gauge/GaugeProvider.d.ts +1 -1
  168. package/Gauge/GaugeReferenceArc.d.mts +1 -1
  169. package/Gauge/GaugeReferenceArc.d.ts +1 -1
  170. package/Gauge/GaugeValueArc.d.mts +1 -1
  171. package/Gauge/GaugeValueArc.d.ts +1 -1
  172. package/Gauge/GaugeValueText.d.mts +1 -1
  173. package/Gauge/GaugeValueText.d.ts +1 -1
  174. package/LineChart/AnimatedArea.d.mts +1 -1
  175. package/LineChart/AnimatedArea.d.ts +1 -1
  176. package/LineChart/AppearingMask.d.mts +1 -1
  177. package/LineChart/AppearingMask.d.ts +1 -1
  178. package/LineChart/AreaElement.d.mts +1 -1
  179. package/LineChart/AreaElement.d.ts +1 -1
  180. package/LineChart/AreaPlot.d.mts +4 -4
  181. package/LineChart/AreaPlot.d.ts +4 -4
  182. package/LineChart/AreaPlot.js +4 -5
  183. package/LineChart/AreaPlot.mjs +4 -5
  184. package/LineChart/CircleMarkElement.d.mts +1 -1
  185. package/LineChart/CircleMarkElement.d.ts +1 -1
  186. package/LineChart/FocusedLineMark.d.mts +1 -1
  187. package/LineChart/FocusedLineMark.d.ts +1 -1
  188. package/LineChart/LineElement.d.mts +1 -1
  189. package/LineChart/LineElement.d.ts +1 -1
  190. package/LineChart/LineHighlightElement.d.mts +1 -1
  191. package/LineChart/LineHighlightElement.d.ts +1 -1
  192. package/LineChart/LineHighlightPlot.d.mts +1 -1
  193. package/LineChart/LineHighlightPlot.d.ts +1 -1
  194. package/LineChart/LinePlot.d.mts +4 -4
  195. package/LineChart/LinePlot.d.ts +4 -4
  196. package/LineChart/LinePlot.js +7 -7
  197. package/LineChart/LinePlot.mjs +7 -7
  198. package/LineChart/MarkElement.d.mts +1 -1
  199. package/LineChart/MarkElement.d.ts +1 -1
  200. package/LineChart/MarkPlot.d.mts +6 -5
  201. package/LineChart/MarkPlot.d.ts +6 -5
  202. package/LineChart/MarkPlot.js +1 -1
  203. package/LineChart/MarkPlot.mjs +1 -1
  204. package/LineChart/lineClasses.d.mts +1 -1
  205. package/LineChart/lineClasses.d.ts +1 -1
  206. package/LineChart/seriesConfig/index.js +2 -2
  207. package/LineChart/seriesConfig/index.mjs +2 -2
  208. package/LineChart/seriesConfig/tooltipPosition.d.mts +2 -3
  209. package/LineChart/seriesConfig/tooltipPosition.d.ts +2 -3
  210. package/LineChart/seriesConfig/tooltipPosition.js +14 -14
  211. package/LineChart/seriesConfig/tooltipPosition.mjs +13 -13
  212. package/LineChart/useLineItemClickHandler.d.mts +12 -0
  213. package/LineChart/useLineItemClickHandler.d.ts +12 -0
  214. package/LineChart/useLineItemClickHandler.js +54 -0
  215. package/LineChart/useLineItemClickHandler.mjs +48 -0
  216. package/LineChart/useLinePlotData.d.mts +13 -1
  217. package/LineChart/useLinePlotData.d.ts +13 -1
  218. package/LineChart/useLinePlotData.js +90 -33
  219. package/LineChart/useLinePlotData.mjs +92 -34
  220. package/PieChart/FocusedPieArc.d.mts +1 -1
  221. package/PieChart/FocusedPieArc.d.ts +1 -1
  222. package/PieChart/PieArcLabelPlot.d.mts +3 -2
  223. package/PieChart/PieArcLabelPlot.d.ts +3 -2
  224. package/PieChart/PieArcPlot.d.mts +3 -2
  225. package/PieChart/PieArcPlot.d.ts +3 -2
  226. package/PieChart/PiePlot.d.mts +1 -1
  227. package/PieChart/PiePlot.d.ts +1 -1
  228. package/PieChart/pieClasses.d.mts +1 -1
  229. package/PieChart/pieClasses.d.ts +1 -1
  230. package/PieChart/seriesConfig/index.js +2 -2
  231. package/PieChart/seriesConfig/index.mjs +2 -2
  232. package/PieChart/seriesConfig/tooltipPosition.d.mts +2 -3
  233. package/PieChart/seriesConfig/tooltipPosition.d.ts +2 -3
  234. package/PieChart/seriesConfig/tooltipPosition.js +7 -11
  235. package/PieChart/seriesConfig/tooltipPosition.mjs +6 -10
  236. package/RadarChart/FocusedRadarMark.d.mts +1 -1
  237. package/RadarChart/FocusedRadarMark.d.ts +1 -1
  238. package/RadarChart/RadarAxis/RadarAxis.d.mts +1 -1
  239. package/RadarChart/RadarAxis/RadarAxis.d.ts +1 -1
  240. package/RadarChart/RadarAxis/RadarAxis.utils.d.mts +5 -5
  241. package/RadarChart/RadarAxis/RadarAxis.utils.d.ts +5 -5
  242. package/RadarChart/RadarAxisHighlight/RadarAxisHighlight.d.mts +1 -1
  243. package/RadarChart/RadarAxisHighlight/RadarAxisHighlight.d.ts +1 -1
  244. package/RadarChart/RadarDataProvider/RadarDataProvider.d.mts +2 -1
  245. package/RadarChart/RadarDataProvider/RadarDataProvider.d.ts +2 -1
  246. package/RadarChart/RadarGrid/CircularRadarGrid.d.mts +2 -1
  247. package/RadarChart/RadarGrid/CircularRadarGrid.d.ts +2 -1
  248. package/RadarChart/RadarGrid/CircularRadarStripes.d.mts +2 -1
  249. package/RadarChart/RadarGrid/CircularRadarStripes.d.ts +2 -1
  250. package/RadarChart/RadarGrid/RadarGrid.d.mts +2 -1
  251. package/RadarChart/RadarGrid/RadarGrid.d.ts +2 -1
  252. package/RadarChart/RadarGrid/SharpRadarGrid.d.mts +2 -1
  253. package/RadarChart/RadarGrid/SharpRadarGrid.d.ts +2 -1
  254. package/RadarChart/RadarGrid/SharpRadarStripes.d.mts +2 -1
  255. package/RadarChart/RadarGrid/SharpRadarStripes.d.ts +2 -1
  256. package/RadarChart/RadarMetricLabels/RadarMetricLabels.d.mts +2 -1
  257. package/RadarChart/RadarMetricLabels/RadarMetricLabels.d.ts +2 -1
  258. package/RadarChart/RadarSeriesPlot/RadarSeriesArea.d.mts +2 -1
  259. package/RadarChart/RadarSeriesPlot/RadarSeriesArea.d.ts +2 -1
  260. package/RadarChart/RadarSeriesPlot/RadarSeriesMarks.d.mts +2 -1
  261. package/RadarChart/RadarSeriesPlot/RadarSeriesMarks.d.ts +2 -1
  262. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.d.mts +1 -1
  263. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.d.ts +1 -1
  264. package/RadarChart/RadarSeriesPlot/useInteractionAllItemProps.d.mts +1 -1
  265. package/RadarChart/RadarSeriesPlot/useInteractionAllItemProps.d.ts +1 -1
  266. package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.mts +12 -12
  267. package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +12 -12
  268. package/RadarChart/radarClasses.d.mts +1 -1
  269. package/RadarChart/radarClasses.d.ts +1 -1
  270. package/RadarChart/seriesConfig/index.js +2 -2
  271. package/RadarChart/seriesConfig/index.mjs +2 -2
  272. package/RadarChart/seriesConfig/tooltipPosition.d.mts +2 -3
  273. package/RadarChart/seriesConfig/tooltipPosition.d.ts +2 -3
  274. package/RadarChart/seriesConfig/tooltipPosition.js +9 -16
  275. package/RadarChart/seriesConfig/tooltipPosition.mjs +8 -15
  276. package/RadarChart/useRadarChartProps.d.mts +1 -1
  277. package/RadarChart/useRadarChartProps.d.ts +1 -1
  278. package/ScatterChart/BatchScatter.d.mts +2 -1
  279. package/ScatterChart/BatchScatter.d.ts +2 -1
  280. package/ScatterChart/FocusedScatterMark.d.mts +1 -1
  281. package/ScatterChart/FocusedScatterMark.d.ts +1 -1
  282. package/ScatterChart/HighlightedScatterMark.d.mts +1 -1
  283. package/ScatterChart/HighlightedScatterMark.d.ts +1 -1
  284. package/ScatterChart/Scatter.d.mts +1 -1
  285. package/ScatterChart/Scatter.d.ts +1 -1
  286. package/ScatterChart/ScatterChart.d.mts +2 -1
  287. package/ScatterChart/ScatterChart.d.ts +2 -1
  288. package/ScatterChart/ScatterMarker.d.mts +1 -1
  289. package/ScatterChart/ScatterMarker.d.ts +1 -1
  290. package/ScatterChart/ScatterMarker.types.d.mts +2 -1
  291. package/ScatterChart/ScatterMarker.types.d.ts +2 -1
  292. package/ScatterChart/ScatterPlot.d.mts +1 -1
  293. package/ScatterChart/ScatterPlot.d.ts +1 -1
  294. package/ScatterChart/async/ScatterAsync.d.mts +2 -1
  295. package/ScatterChart/async/ScatterAsync.d.ts +2 -1
  296. package/ScatterChart/async/ScatterAsyncBatch.d.mts +1 -1
  297. package/ScatterChart/async/ScatterAsyncBatch.d.ts +1 -1
  298. package/ScatterChart/scatterClasses.d.mts +1 -1
  299. package/ScatterChart/scatterClasses.d.ts +1 -1
  300. package/ScatterChart/seriesConfig/index.js +2 -2
  301. package/ScatterChart/seriesConfig/index.mjs +2 -2
  302. package/ScatterChart/seriesConfig/tooltipPosition.d.mts +2 -3
  303. package/ScatterChart/seriesConfig/tooltipPosition.d.ts +2 -3
  304. package/ScatterChart/seriesConfig/tooltipPosition.js +13 -13
  305. package/ScatterChart/seriesConfig/tooltipPosition.mjs +12 -12
  306. package/ScatterChart/useScatterPlotData.d.mts +1 -1
  307. package/ScatterChart/useScatterPlotData.d.ts +1 -1
  308. package/SparkLineChart/SparkLineChart.d.mts +1 -1
  309. package/SparkLineChart/SparkLineChart.d.ts +1 -1
  310. package/Toolbar/Toolbar.types.d.mts +2 -1
  311. package/Toolbar/Toolbar.types.d.ts +2 -1
  312. package/context/ChartsProvider/ChartsProvider.d.mts +1 -1
  313. package/context/ChartsProvider/ChartsProvider.d.ts +1 -1
  314. package/context/ChartsSlotsContext.d.mts +1 -1
  315. package/context/ChartsSlotsContext.d.ts +1 -1
  316. package/index.js +1 -1
  317. package/index.mjs +1 -1
  318. package/internals/colorScale.d.mts +1 -1
  319. package/internals/colorScale.d.ts +1 -1
  320. package/internals/components/ChartsAccessibilityProxy/ChartsAccessibilityProxy.d.mts +2 -1
  321. package/internals/components/ChartsAccessibilityProxy/ChartsAccessibilityProxy.d.ts +2 -1
  322. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.mts +2 -1
  323. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +2 -1
  324. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.d.mts +1 -1
  325. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.d.ts +1 -1
  326. package/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.d.mts +1 -1
  327. package/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.d.ts +1 -1
  328. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.d.mts +2 -1
  329. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.d.ts +2 -1
  330. package/internals/configInit.d.mts +1 -1
  331. package/internals/configInit.d.ts +1 -1
  332. package/internals/consumeSlots.d.mts +1 -1
  333. package/internals/consumeSlots.d.ts +1 -1
  334. package/internals/consumeThemeProps.d.mts +1 -1
  335. package/internals/consumeThemeProps.d.ts +1 -1
  336. package/internals/createCommonKeyboardFocusHandler.d.mts +1 -1
  337. package/internals/createCommonKeyboardFocusHandler.d.ts +1 -1
  338. package/internals/createGetBarDimensions.d.mts +14 -1
  339. package/internals/createGetBarDimensions.d.ts +14 -1
  340. package/internals/createGetBarDimensions.js +45 -0
  341. package/internals/createGetBarDimensions.mjs +45 -0
  342. package/internals/geometry.js +1 -1
  343. package/internals/geometry.mjs +1 -1
  344. package/internals/getGraphemeCount.d.mts +2 -2
  345. package/internals/getGraphemeCount.d.ts +2 -2
  346. package/internals/getGroupingConfig.d.mts +1 -1
  347. package/internals/getGroupingConfig.d.ts +1 -1
  348. package/internals/identifierCleaner.d.mts +1 -1
  349. package/internals/identifierCleaner.d.ts +1 -1
  350. package/internals/index.d.mts +1 -2
  351. package/internals/index.d.ts +1 -2
  352. package/internals/index.js +12 -8
  353. package/internals/index.mjs +1 -2
  354. package/internals/invertScale.d.mts +1 -1
  355. package/internals/invertScale.d.ts +1 -1
  356. package/internals/plugins/corePlugins/useChartSeries/processSeries.d.mts +1 -1
  357. package/internals/plugins/corePlugins/useChartSeries/processSeries.d.ts +1 -1
  358. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.mts +4 -4
  359. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +4 -4
  360. package/internals/plugins/corePlugins/useChartSeriesConfig/types/index.d.mts +1 -1
  361. package/internals/plugins/corePlugins/useChartSeriesConfig/types/index.d.ts +1 -1
  362. package/internals/plugins/corePlugins/useChartSeriesConfig/types/index.js +4 -4
  363. package/internals/plugins/corePlugins/useChartSeriesConfig/types/index.mjs +1 -1
  364. package/internals/plugins/corePlugins/useChartSeriesConfig/types/seriesConfig.types.d.mts +11 -6
  365. package/internals/plugins/corePlugins/useChartSeriesConfig/types/seriesConfig.types.d.ts +11 -6
  366. package/internals/plugins/corePlugins/useChartSeriesConfig/types/tooltipItemPositionSelector.types.d.mts +18 -0
  367. package/internals/plugins/corePlugins/useChartSeriesConfig/types/tooltipItemPositionSelector.types.d.ts +18 -0
  368. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.d.mts +3 -3
  369. package/internals/plugins/featurePlugins/useChartBrush/useChartBrush.selectors.d.ts +3 -3
  370. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.d.mts +1 -1
  371. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.d.ts +1 -1
  372. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.mts +2 -2
  373. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +2 -2
  374. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.d.mts +1 -1
  375. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisDomainLimit.d.ts +1 -1
  376. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.d.mts +1 -1
  377. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.d.ts +1 -1
  378. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.mts +2 -0
  379. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +2 -0
  380. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +12 -0
  381. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.mjs +1 -0
  382. package/internals/plugins/featurePlugins/useChartCartesianAxis/sampling.selectors.d.mts +26 -0
  383. package/internals/plugins/featurePlugins/useChartCartesianAxis/sampling.selectors.d.ts +26 -0
  384. package/internals/plugins/featurePlugins/useChartCartesianAxis/sampling.selectors.js +89 -0
  385. package/internals/plugins/featurePlugins/useChartCartesianAxis/sampling.selectors.mjs +81 -0
  386. package/internals/plugins/featurePlugins/useChartCartesianAxis/sampling.types.d.mts +93 -0
  387. package/internals/plugins/featurePlugins/useChartCartesianAxis/sampling.types.d.ts +93 -0
  388. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.mts +5 -0
  389. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +5 -0
  390. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.mts +70 -70
  391. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +70 -70
  392. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.mts +78 -78
  393. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +78 -78
  394. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.mts +7 -7
  395. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +7 -7
  396. package/internals/plugins/featurePlugins/useChartItemClick/useChartItemClick.d.mts +1 -1
  397. package/internals/plugins/featurePlugins/useChartItemClick/useChartItemClick.d.ts +1 -1
  398. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.mts +1 -1
  399. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.ts +1 -1
  400. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisTriggerTooltip.d.mts +1 -1
  401. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisTriggerTooltip.d.ts +1 -1
  402. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.mts +4 -9
  403. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +4 -9
  404. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.js +2 -53
  405. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.mjs +2 -53
  406. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.selectors.d.mts +1 -1
  407. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.selectors.d.ts +1 -1
  408. package/internals/seriesSelectorOfType.d.mts +6 -6
  409. package/internals/seriesSelectorOfType.d.ts +6 -6
  410. package/internals/sizeScale.d.mts +1 -1
  411. package/internals/sizeScale.d.ts +1 -1
  412. package/internals/sliceUntil.d.mts +2 -2
  413. package/internals/sliceUntil.d.ts +2 -2
  414. package/models/axis.d.mts +5 -4
  415. package/models/axis.d.ts +5 -4
  416. package/models/seriesType/config.d.mts +8 -4
  417. package/models/seriesType/config.d.ts +8 -4
  418. package/models/seriesType/index.d.mts +1 -1
  419. package/models/seriesType/index.d.ts +1 -1
  420. package/models/seriesType/line.d.mts +14 -1
  421. package/models/seriesType/line.d.ts +14 -1
  422. package/package.json +4 -4
  423. package/internals/plugins/corePlugins/useChartSeriesConfig/types/tooltipItemPositionGetter.types.d.mts +0 -45
  424. package/internals/plugins/corePlugins/useChartSeriesConfig/types/tooltipItemPositionGetter.types.d.ts +0 -45
  425. package/internals/plugins/featurePlugins/useGeoProjection/useGeoProjection.selectors.d.mts +0 -48
  426. package/internals/plugins/featurePlugins/useGeoProjection/useGeoProjection.selectors.d.ts +0 -48
  427. package/internals/plugins/featurePlugins/useGeoProjection/useGeoProjection.selectors.js +0 -124
  428. package/internals/plugins/featurePlugins/useGeoProjection/useGeoProjection.selectors.mjs +0 -117
  429. package/internals/plugins/featurePlugins/useGeoProjection/useGeoProjection.types.d.mts +0 -73
  430. package/internals/plugins/featurePlugins/useGeoProjection/useGeoProjection.types.d.ts +0 -73
  431. /package/internals/plugins/corePlugins/useChartSeriesConfig/types/{tooltipItemPositionGetter.types.js → tooltipItemPositionSelector.types.js} +0 -0
  432. /package/internals/plugins/corePlugins/useChartSeriesConfig/types/{tooltipItemPositionGetter.types.mjs → tooltipItemPositionSelector.types.mjs} +0 -0
  433. /package/internals/plugins/featurePlugins/{useGeoProjection/useGeoProjection.types.js → useChartCartesianAxis/sampling.types.js} +0 -0
  434. /package/internals/plugins/featurePlugins/{useGeoProjection/useGeoProjection.types.mjs → useChartCartesianAxis/sampling.types.mjs} +0 -0
@@ -135,7 +135,7 @@ process.env.NODE_ENV !== "production" ? MarkPlot.propTypes /* remove-proptypes *
135
135
  /**
136
136
  * Callback fired when a line mark item is clicked.
137
137
  * @param {React.MouseEvent<SVGPathElement, MouseEvent>} event The event source of the callback.
138
- * @param {LineItemIdentifier} lineItemIdentifier The line mark item identifier.
138
+ * @param {LineItemClickIdentifier} lineItemIdentifier The line mark item identifier.
139
139
  */
140
140
  onItemClick: _propTypes.default.func,
141
141
  /**
@@ -128,7 +128,7 @@ process.env.NODE_ENV !== "production" ? MarkPlot.propTypes /* remove-proptypes *
128
128
  /**
129
129
  * Callback fired when a line mark item is clicked.
130
130
  * @param {React.MouseEvent<SVGPathElement, MouseEvent>} event The event source of the callback.
131
- * @param {LineItemIdentifier} lineItemIdentifier The line mark item identifier.
131
+ * @param {LineItemClickIdentifier} lineItemIdentifier The line mark item identifier.
132
132
  */
133
133
  onItemClick: PropTypes.func,
134
134
  /**
@@ -22,4 +22,4 @@ export interface UseUtilityClassesOptions {
22
22
  skipAnimation?: boolean;
23
23
  classes?: Partial<LineClasses>;
24
24
  }
25
- export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"line" | "area" | "mark" | "highlight" | "areaPlot" | "linePlot" | "markPlot", string>;
25
+ export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"area" | "areaPlot" | "highlight" | "line" | "linePlot" | "mark" | "markPlot", string>;
@@ -22,4 +22,4 @@ export interface UseUtilityClassesOptions {
22
22
  skipAnimation?: boolean;
23
23
  classes?: Partial<LineClasses>;
24
24
  }
25
- export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"line" | "area" | "mark" | "highlight" | "areaPlot" | "linePlot" | "markPlot", string>;
25
+ export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"area" | "areaPlot" | "highlight" | "line" | "linePlot" | "mark" | "markPlot", string>;
@@ -12,7 +12,7 @@ var _getColor = _interopRequireDefault(require("./getColor"));
12
12
  var _legend = _interopRequireDefault(require("./legend"));
13
13
  var _tooltip = _interopRequireWildcard(require("./tooltip"));
14
14
  var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
15
- var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
15
+ var _tooltipPosition = require("./tooltipPosition");
16
16
  var _getItemAtPosition = _interopRequireDefault(require("./getItemAtPosition"));
17
17
  var _keyboardFocusHandler = _interopRequireDefault(require("./keyboardFocusHandler"));
18
18
  var _identifierSerializer = require("../../internals/identifierSerializer");
@@ -24,7 +24,7 @@ const lineSeriesConfig = exports.lineSeriesConfig = {
24
24
  seriesProcessor: _seriesProcessor.default,
25
25
  legendGetter: _legend.default,
26
26
  tooltipGetter: _tooltip.default,
27
- tooltipItemPositionGetter: _tooltipPosition.default,
27
+ selectorTooltipItemPosition: _tooltipPosition.selectorTooltipItemPosition,
28
28
  axisTooltipGetter: _tooltip.axisTooltipGetter,
29
29
  xExtremumGetter: _extremums.getExtremumX,
30
30
  yExtremumGetter: _extremums.getExtremumY,
@@ -4,7 +4,7 @@ import getColor from "./getColor.mjs";
4
4
  import legendGetter from "./legend.mjs";
5
5
  import tooltipGetter, { axisTooltipGetter } from "./tooltip.mjs";
6
6
  import getSeriesWithDefaultValues from "./getSeriesWithDefaultValues.mjs";
7
- import tooltipItemPositionGetter from "./tooltipPosition.mjs";
7
+ import { selectorTooltipItemPosition } from "./tooltipPosition.mjs";
8
8
  import getItemAtPosition from "./getItemAtPosition.mjs";
9
9
  import keyboardFocusHandler from "./keyboardFocusHandler.mjs";
10
10
  import { identifierSerializerSeriesIdDataIndex } from "../../internals/identifierSerializer.mjs";
@@ -16,7 +16,7 @@ export const lineSeriesConfig = {
16
16
  seriesProcessor,
17
17
  legendGetter,
18
18
  tooltipGetter,
19
- tooltipItemPositionGetter,
19
+ selectorTooltipItemPosition,
20
20
  axisTooltipGetter,
21
21
  xExtremumGetter: getExtremumX,
22
22
  yExtremumGetter: getExtremumY,
@@ -1,3 +1,2 @@
1
- import type { TooltipItemPositionGetter } from "../../internals/plugins/corePlugins/useChartSeriesConfig/index.mjs";
2
- declare const tooltipItemPositionGetter: TooltipItemPositionGetter<'line'>;
3
- export default tooltipItemPositionGetter;
1
+ import type { TooltipItemPositionSelector } from "../../internals/plugins/corePlugins/useChartSeriesConfig/index.mjs";
2
+ export declare const selectorTooltipItemPosition: TooltipItemPositionSelector<'line'>;
@@ -1,3 +1,2 @@
1
- import type { TooltipItemPositionGetter } from "../../internals/plugins/corePlugins/useChartSeriesConfig/index.js";
2
- declare const tooltipItemPositionGetter: TooltipItemPositionGetter<'line'>;
3
- export default tooltipItemPositionGetter;
1
+ import type { TooltipItemPositionSelector } from "../../internals/plugins/corePlugins/useChartSeriesConfig/index.js";
2
+ export declare const selectorTooltipItemPosition: TooltipItemPositionSelector<'line'>;
@@ -3,31 +3,31 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
7
- const tooltipItemPositionGetter = params => {
8
- const {
9
- series,
10
- identifier,
11
- axesConfig
12
- } = params;
13
- if (!identifier || identifier.dataIndex === undefined) {
6
+ exports.selectorTooltipItemPosition = void 0;
7
+ var _store = require("@mui/x-internals/store");
8
+ var _useChartTooltip = require("../../internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors");
9
+ var _useChartSeries = require("../../internals/plugins/corePlugins/useChartSeries");
10
+ var _useChartCartesianAxisRendering = require("../../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors");
11
+ const selectorTooltipItemPosition = exports.selectorTooltipItemPosition = (0, _store.createSelectorMemoized)(_useChartTooltip.selectorChartsTooltipItem, _useChartSeries.selectorChartSeriesProcessed, _useChartCartesianAxisRendering.selectorChartXAxis, _useChartCartesianAxisRendering.selectorChartYAxis, function selectorTooltipItemPosition(identifier, series, xAxes, yAxes) {
12
+ if (!identifier || identifier.type !== 'line' || identifier.dataIndex === undefined) {
14
13
  return null;
15
14
  }
16
15
  const itemSeries = series.line?.series[identifier.seriesId];
17
16
  if (itemSeries == null) {
18
17
  return null;
19
18
  }
20
- if (axesConfig.x === undefined || axesConfig.y === undefined) {
19
+ const xAxis = xAxes.axis[itemSeries.xAxisId ?? xAxes.axisIds[0]];
20
+ const yAxis = yAxes.axis[itemSeries.yAxisId ?? yAxes.axisIds[0]];
21
+ if (xAxis === undefined || yAxis === undefined) {
21
22
  return null;
22
23
  }
23
- const xValue = axesConfig.x.data?.[identifier.dataIndex];
24
+ const xValue = xAxis.data?.[identifier.dataIndex];
24
25
  const yValue = itemSeries.data[identifier.dataIndex] == null ? null : itemSeries.visibleStackedData[identifier.dataIndex][1];
25
26
  if (xValue == null || yValue == null) {
26
27
  return null;
27
28
  }
28
29
  return {
29
- x: axesConfig.x.scale(xValue),
30
- y: axesConfig.y.scale(yValue)
30
+ x: xAxis.scale(xValue),
31
+ y: yAxis.scale(yValue)
31
32
  };
32
- };
33
- var _default = exports.default = tooltipItemPositionGetter;
33
+ });
@@ -1,27 +1,27 @@
1
- const tooltipItemPositionGetter = params => {
2
- const {
3
- series,
4
- identifier,
5
- axesConfig
6
- } = params;
7
- if (!identifier || identifier.dataIndex === undefined) {
1
+ import { createSelectorMemoized } from '@mui/x-internals/store';
2
+ import { selectorChartsTooltipItem } from "../../internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.mjs";
3
+ import { selectorChartSeriesProcessed } from "../../internals/plugins/corePlugins/useChartSeries/index.mjs";
4
+ import { selectorChartXAxis, selectorChartYAxis } from "../../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.mjs";
5
+ export const selectorTooltipItemPosition = createSelectorMemoized(selectorChartsTooltipItem, selectorChartSeriesProcessed, selectorChartXAxis, selectorChartYAxis, function selectorTooltipItemPosition(identifier, series, xAxes, yAxes) {
6
+ if (!identifier || identifier.type !== 'line' || identifier.dataIndex === undefined) {
8
7
  return null;
9
8
  }
10
9
  const itemSeries = series.line?.series[identifier.seriesId];
11
10
  if (itemSeries == null) {
12
11
  return null;
13
12
  }
14
- if (axesConfig.x === undefined || axesConfig.y === undefined) {
13
+ const xAxis = xAxes.axis[itemSeries.xAxisId ?? xAxes.axisIds[0]];
14
+ const yAxis = yAxes.axis[itemSeries.yAxisId ?? yAxes.axisIds[0]];
15
+ if (xAxis === undefined || yAxis === undefined) {
15
16
  return null;
16
17
  }
17
- const xValue = axesConfig.x.data?.[identifier.dataIndex];
18
+ const xValue = xAxis.data?.[identifier.dataIndex];
18
19
  const yValue = itemSeries.data[identifier.dataIndex] == null ? null : itemSeries.visibleStackedData[identifier.dataIndex][1];
19
20
  if (xValue == null || yValue == null) {
20
21
  return null;
21
22
  }
22
23
  return {
23
- x: axesConfig.x.scale(xValue),
24
- y: axesConfig.y.scale(yValue)
24
+ x: xAxis.scale(xValue),
25
+ y: yAxis.scale(yValue)
25
26
  };
26
- };
27
- export default tooltipItemPositionGetter;
27
+ });
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import type { LineItemClickIdentifier } from "../models/seriesType/line.mjs";
3
+ import type { SeriesId } from "../models/seriesType/common.mjs";
4
+ /**
5
+ * Creates a click handler for line and area paths that enriches the item
6
+ * identifier with the `dataIndex` of the closest data point along the x-axis.
7
+ *
8
+ * The index is derived from the click position, using the same logic as the
9
+ * axis interaction (tooltip, highlight, `onAxisClick`). The callback is not
10
+ * fired when the click position cannot be associated with a data point.
11
+ */
12
+ export declare function useLineItemClickHandler(onItemClick?: (event: React.MouseEvent<SVGElement, MouseEvent>, lineItemIdentifier: LineItemClickIdentifier) => void): ((event: React.MouseEvent<SVGElement, MouseEvent>, seriesId: SeriesId) => void) | undefined;
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import type { LineItemClickIdentifier } from "../models/seriesType/line.js";
3
+ import type { SeriesId } from "../models/seriesType/common.js";
4
+ /**
5
+ * Creates a click handler for line and area paths that enriches the item
6
+ * identifier with the `dataIndex` of the closest data point along the x-axis.
7
+ *
8
+ * The index is derived from the click position, using the same logic as the
9
+ * axis interaction (tooltip, highlight, `onAxisClick`). The callback is not
10
+ * fired when the click position cannot be associated with a data point.
11
+ */
12
+ export declare function useLineItemClickHandler(onItemClick?: (event: React.MouseEvent<SVGElement, MouseEvent>, lineItemIdentifier: LineItemClickIdentifier) => void): ((event: React.MouseEvent<SVGElement, MouseEvent>, seriesId: SeriesId) => void) | undefined;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useLineItemClickHandler = useLineItemClickHandler;
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _useChartsLayerContainerRef = require("../hooks/useChartsLayerContainerRef");
11
+ var _useAxis = require("../hooks/useAxis");
12
+ var _useLineSeries = require("../hooks/useLineSeries");
13
+ var _getChartPoint = require("../internals/getChartPoint");
14
+ var _getAxisValue = require("../internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue");
15
+ /**
16
+ * Creates a click handler for line and area paths that enriches the item
17
+ * identifier with the `dataIndex` of the closest data point along the x-axis.
18
+ *
19
+ * The index is derived from the click position, using the same logic as the
20
+ * axis interaction (tooltip, highlight, `onAxisClick`). The callback is not
21
+ * fired when the click position cannot be associated with a data point.
22
+ */
23
+ function useLineItemClickHandler(onItemClick) {
24
+ const chartsLayerContainerRef = (0, _useChartsLayerContainerRef.useChartsLayerContainerRef)();
25
+ const {
26
+ xAxis: xAxes,
27
+ xAxisIds
28
+ } = (0, _useAxis.useXAxes)();
29
+ const seriesData = (0, _useLineSeries.useLineSeriesContext)();
30
+ const defaultXAxisId = xAxisIds[0];
31
+ return React.useMemo(() => {
32
+ if (!onItemClick) {
33
+ return undefined;
34
+ }
35
+ return (event, seriesId) => {
36
+ const element = chartsLayerContainerRef.current;
37
+ const xAxisId = seriesData?.series[seriesId]?.xAxisId ?? defaultXAxisId;
38
+ const xAxis = xAxisId === undefined ? undefined : xAxes[xAxisId];
39
+ if (element === null || xAxis === undefined) {
40
+ return;
41
+ }
42
+ const point = (0, _getChartPoint.getChartPoint)(element, event);
43
+ const dataIndex = (0, _getAxisValue.getAxisIndex)(xAxis, point.x);
44
+ if (dataIndex === -1) {
45
+ return;
46
+ }
47
+ onItemClick(event, {
48
+ type: 'line',
49
+ seriesId,
50
+ dataIndex
51
+ });
52
+ };
53
+ }, [onItemClick, chartsLayerContainerRef, seriesData, defaultXAxisId, xAxes]);
54
+ }
@@ -0,0 +1,48 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { useChartsLayerContainerRef } from "../hooks/useChartsLayerContainerRef.mjs";
5
+ import { useXAxes } from "../hooks/useAxis.mjs";
6
+ import { useLineSeriesContext } from "../hooks/useLineSeries.mjs";
7
+ import { getChartPoint } from "../internals/getChartPoint.mjs";
8
+ import { getAxisIndex } from "../internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.mjs";
9
+ /**
10
+ * Creates a click handler for line and area paths that enriches the item
11
+ * identifier with the `dataIndex` of the closest data point along the x-axis.
12
+ *
13
+ * The index is derived from the click position, using the same logic as the
14
+ * axis interaction (tooltip, highlight, `onAxisClick`). The callback is not
15
+ * fired when the click position cannot be associated with a data point.
16
+ */
17
+ export function useLineItemClickHandler(onItemClick) {
18
+ const chartsLayerContainerRef = useChartsLayerContainerRef();
19
+ const {
20
+ xAxis: xAxes,
21
+ xAxisIds
22
+ } = useXAxes();
23
+ const seriesData = useLineSeriesContext();
24
+ const defaultXAxisId = xAxisIds[0];
25
+ return React.useMemo(() => {
26
+ if (!onItemClick) {
27
+ return undefined;
28
+ }
29
+ return (event, seriesId) => {
30
+ const element = chartsLayerContainerRef.current;
31
+ const xAxisId = seriesData?.series[seriesId]?.xAxisId ?? defaultXAxisId;
32
+ const xAxis = xAxisId === undefined ? undefined : xAxes[xAxisId];
33
+ if (element === null || xAxis === undefined) {
34
+ return;
35
+ }
36
+ const point = getChartPoint(element, event);
37
+ const dataIndex = getAxisIndex(xAxis, point.x);
38
+ if (dataIndex === -1) {
39
+ return;
40
+ }
41
+ onItemClick(event, {
42
+ type: 'line',
43
+ seriesId,
44
+ dataIndex
45
+ });
46
+ };
47
+ }, [onItemClick, chartsLayerContainerRef, seriesData, defaultXAxisId, xAxes]);
48
+ }
@@ -1,4 +1,5 @@
1
1
  import type { ComputedAxisConfig } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.mjs";
2
+ import type { ZoomMap } from "../internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.mjs";
2
3
  import type { ChartsXAxisProps, ChartsYAxisProps } from "../models/index.mjs";
3
4
  import type { SeriesId } from "../models/seriesType/common.mjs";
4
5
  interface LinePlotDataPoint {
@@ -7,6 +8,17 @@ interface LinePlotDataPoint {
7
8
  color: string;
8
9
  gradientId?: string;
9
10
  hidden: boolean;
11
+ /** Skip the path animation: morphing between different sampled point counts looks wrong. */
12
+ isSampled: boolean;
10
13
  }
11
- export declare function useLinePlotData(xAxes: ComputedAxisConfig<ChartsXAxisProps>, yAxes: ComputedAxisConfig<ChartsYAxisProps>): LinePlotDataPoint[];
14
+ export declare function useLinePlotData(xAxes: ComputedAxisConfig<ChartsXAxisProps>, yAxes: ComputedAxisConfig<ChartsYAxisProps>,
15
+ /**
16
+ * Overrides the zoom span and pixel size used for sampling. The zoom-slider preview passes its
17
+ * full-range zoom and own width so its density stays stable while the main chart zooms, instead
18
+ * of reading the active zoom from the store.
19
+ */
20
+ samplingOverride?: {
21
+ zoomMap: ZoomMap;
22
+ availableSize: number;
23
+ }): LinePlotDataPoint[];
12
24
  export {};
@@ -1,4 +1,5 @@
1
1
  import type { ComputedAxisConfig } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
2
+ import type { ZoomMap } from "../internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.js";
2
3
  import type { ChartsXAxisProps, ChartsYAxisProps } from "../models/index.js";
3
4
  import type { SeriesId } from "../models/seriesType/common.js";
4
5
  interface LinePlotDataPoint {
@@ -7,6 +8,17 @@ interface LinePlotDataPoint {
7
8
  color: string;
8
9
  gradientId?: string;
9
10
  hidden: boolean;
11
+ /** Skip the path animation: morphing between different sampled point counts looks wrong. */
12
+ isSampled: boolean;
10
13
  }
11
- export declare function useLinePlotData(xAxes: ComputedAxisConfig<ChartsXAxisProps>, yAxes: ComputedAxisConfig<ChartsYAxisProps>): LinePlotDataPoint[];
14
+ export declare function useLinePlotData(xAxes: ComputedAxisConfig<ChartsXAxisProps>, yAxes: ComputedAxisConfig<ChartsYAxisProps>,
15
+ /**
16
+ * Overrides the zoom span and pixel size used for sampling. The zoom-slider preview passes its
17
+ * full-range zoom and own width so its density stays stable while the main chart zooms, instead
18
+ * of reading the active zoom from the store.
19
+ */
20
+ samplingOverride?: {
21
+ zoomMap: ZoomMap;
22
+ availableSize: number;
23
+ }): LinePlotDataPoint[];
12
24
  export {};
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
@@ -10,14 +11,43 @@ var _warning = require("@mui/x-internals/warning");
10
11
  var _d3Shape = require("@mui/x-charts-vendor/d3-shape");
11
12
  var _useChartGradientId = require("../hooks/useChartGradientId");
12
13
  var _scaleGuards = require("../internals/scaleGuards");
14
+ var _sampling = require("../internals/plugins/featurePlugins/useChartCartesianAxis/sampling.selectors");
15
+ var _useChartCartesianAxisRendering = require("../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors");
16
+ var _useChartSeriesConfig = require("../internals/plugins/corePlugins/useChartSeriesConfig");
17
+ var _useStore = require("../internals/store/useStore");
13
18
  var _getCurve = require("../internals/getCurve");
14
19
  var _hooks = require("../hooks");
15
20
  var _constants = require("../constants");
16
- function useLinePlotData(xAxes, yAxes) {
21
+ function useLinePlotData(xAxes, yAxes,
22
+ /**
23
+ * Overrides the zoom span and pixel size used for sampling. The zoom-slider preview passes its
24
+ * full-range zoom and own width so its density stays stable while the main chart zooms, instead
25
+ * of reading the active zoom from the store.
26
+ */
27
+ samplingOverride) {
17
28
  const seriesData = (0, _hooks.useLineSeriesContext)();
18
29
  const defaultXAxisId = (0, _hooks.useXAxes)().xAxisIds[0];
19
30
  const defaultYAxisId = (0, _hooks.useYAxes)().yAxisIds[0];
20
31
  const getGradientId = (0, _useChartGradientId.useChartGradientIdBuilder)();
32
+ const drawingArea = (0, _hooks.useDrawingArea)();
33
+ const store = (0, _useStore.useStore)();
34
+ const samplingState = store.use(_sampling.selectorChartSamplingState);
35
+ const sampledSeries = store.use(_sampling.selectorChartSamplingPyramids);
36
+ const activeZoomMap = store.use(_useChartCartesianAxisRendering.selectorChartZoomMap);
37
+ const zoomOptions = store.use(_useChartCartesianAxisRendering.selectorChartZoomOptionsLookup);
38
+ const sampler = store.use(_useChartSeriesConfig.selectorChartSeriesConfig).line?.sampler;
39
+ const zoomMap = samplingOverride?.zoomMap ?? activeZoomMap;
40
+ const samplingSize = samplingOverride?.availableSize ?? drawingArea.width;
41
+
42
+ // Skip the line animation while sampling is on, plus the first render after it turns off: the
43
+ // point count changes, so the path would morph.
44
+ const lineMethod = samplingState?.methods.line;
45
+ const samplingEnabled = lineMethod != null && lineMethod !== 'none';
46
+ const wasSamplingEnabled = React.useRef(samplingEnabled);
47
+ const skipSamplingAnimation = samplingEnabled || wasSamplingEnabled.current;
48
+ React.useEffect(() => {
49
+ wasSamplingEnabled.current = samplingEnabled;
50
+ }, [samplingEnabled]);
21
51
 
22
52
  // This memo prevents odd line chart behavior when hydrating.
23
53
  const allData = React.useMemo(() => {
@@ -61,39 +91,65 @@ function useLinePlotData(xAxes, yAxes) {
61
91
  }
62
92
  }
63
93
  const shouldExpand = curve?.includes('step') && !strictStepCurve && (0, _scaleGuards.isOrdinalScale)(xScale);
64
- const formattedData = xData?.flatMap((x, index) => {
65
- const nullData = data[index] == null;
66
- if (shouldExpand) {
67
- const rep = [{
68
- x,
69
- y: visibleStackedData[index],
70
- nullData,
71
- isExtension: false
72
- }];
73
- if (!nullData && (index === 0 || data[index - 1] == null)) {
74
- rep.unshift({
75
- x: (xScale(x) ?? 0) - (xScale.step() - xScale.bandwidth()) / 2,
76
- y: visibleStackedData[index],
77
- nullData,
78
- isExtension: true
79
- });
80
- }
81
- if (!nullData && (index === data.length - 1 || data[index + 1] == null)) {
82
- rep.push({
83
- x: (xScale(x) ?? 0) + (xScale.step() + xScale.bandwidth()) / 2,
94
+
95
+ // Only the plain (non-step) path is sampled; step expansion falls back to the full render.
96
+ const built = sampledSeries[seriesId];
97
+ const zoom = zoomMap?.get(xAxisId) ?? (built ? (0, _sampling.getFullRangeZoom)(xAxisId) : undefined);
98
+ let sampledBuckets = null;
99
+ if (samplingEnabled && built && zoom && !shouldExpand && xData) {
100
+ // Pro owns the sampling math; community flattens the buckets into a polyline.
101
+ sampledBuckets = sampler?.sample?.({
102
+ built,
103
+ zoom,
104
+ availableSize: samplingSize,
105
+ minSpan: zoomOptions[xAxisId]?.minSpan ?? 0,
106
+ algorithm: lineMethod,
107
+ getValues: () => Float64Array.from(visibleStackedData, point => point[1])
108
+ }) ?? null;
109
+ }
110
+ let formattedData;
111
+ if (sampledBuckets) {
112
+ // Buckets already hold the indices to render; flatten them.
113
+ formattedData = sampledBuckets.flatMap(bucket => Array.from(bucket.indices, index => ({
114
+ x: xData[index],
115
+ y: visibleStackedData[index],
116
+ nullData: data[index] == null
117
+ })));
118
+ } else {
119
+ formattedData = xData?.flatMap((x, index) => {
120
+ const nullData = data[index] == null;
121
+ if (shouldExpand) {
122
+ const rep = [{
123
+ x,
84
124
  y: visibleStackedData[index],
85
125
  nullData,
86
- isExtension: true
87
- });
126
+ isExtension: false
127
+ }];
128
+ if (!nullData && (index === 0 || data[index - 1] == null)) {
129
+ rep.unshift({
130
+ x: (xScale(x) ?? 0) - (xScale.step() - xScale.bandwidth()) / 2,
131
+ y: visibleStackedData[index],
132
+ nullData,
133
+ isExtension: true
134
+ });
135
+ }
136
+ if (!nullData && (index === data.length - 1 || data[index + 1] == null)) {
137
+ rep.push({
138
+ x: (xScale(x) ?? 0) + (xScale.step() + xScale.bandwidth()) / 2,
139
+ y: visibleStackedData[index],
140
+ nullData,
141
+ isExtension: true
142
+ });
143
+ }
144
+ return rep;
88
145
  }
89
- return rep;
90
- }
91
- return {
92
- x,
93
- y: visibleStackedData[index],
94
- nullData
95
- };
96
- }) ?? [];
146
+ return {
147
+ x,
148
+ y: visibleStackedData[index],
149
+ nullData
150
+ };
151
+ }) ?? [];
152
+ }
97
153
  const d3Data = connectNulls ? formattedData.filter(d => !d.nullData) : formattedData;
98
154
  const hidden = series[seriesId].hidden;
99
155
  const linePath = (0, _d3Shape.line)().x(d => d.isExtension ? d.x : xPosition(d.x)).defined(d => connectNulls || !d.nullData || !!d.isExtension).y(d => {
@@ -108,11 +164,12 @@ function useLinePlotData(xAxes, yAxes) {
108
164
  gradientId,
109
165
  d,
110
166
  seriesId,
111
- hidden: series[seriesId].hidden
167
+ hidden: series[seriesId].hidden,
168
+ isSampled: skipSamplingAnimation
112
169
  });
113
170
  }
114
171
  }
115
172
  return linePlotData;
116
- }, [seriesData, defaultXAxisId, defaultYAxisId, xAxes, yAxes, getGradientId]);
173
+ }, [seriesData, defaultXAxisId, defaultYAxisId, xAxes, yAxes, getGradientId, samplingEnabled, lineMethod, sampledSeries, zoomMap, samplingSize, zoomOptions, sampler, skipSamplingAnimation]);
117
174
  return allData;
118
175
  }