@mui/x-charts 7.22.3 → 8.0.0-alpha.1

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 (415) hide show
  1. package/BarChart/AnimatedBarElement.d.ts +15 -0
  2. package/BarChart/AnimatedBarElement.js +21 -0
  3. package/BarChart/BarChart.d.ts +11 -16
  4. package/BarChart/BarChart.js +9 -59
  5. package/BarChart/BarElement.d.ts +6 -1343
  6. package/BarChart/BarElement.js +10 -20
  7. package/BarChart/BarLabel/BarLabelItem.d.ts +1 -1
  8. package/BarChart/BarPlot.js +24 -6
  9. package/BarChart/extremums.js +3 -3
  10. package/BarChart/useBarChartProps.d.ts +2 -4
  11. package/BarChart/useBarChartProps.js +4 -11
  12. package/CHANGELOG.md +348 -12
  13. package/ChartContainer/ChartContainer.d.ts +4 -38
  14. package/ChartContainer/ChartContainer.js +15 -44
  15. package/ChartContainer/ResizableContainer.d.ts +22 -0
  16. package/ChartContainer/ResizableContainer.js +60 -0
  17. package/ChartContainer/useChartContainerProps.d.ts +8 -92
  18. package/ChartContainer/useChartContainerProps.js +29 -59
  19. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +1 -17
  20. package/ChartsAxisHighlight/ChartsAxisHighlight.js +10 -96
  21. package/ChartsAxisHighlight/ChartsAxisHighlight.types.d.ts +5 -0
  22. package/ChartsAxisHighlight/ChartsAxisHighlightPath.d.ts +6 -0
  23. package/ChartsAxisHighlight/ChartsAxisHighlightPath.js +34 -0
  24. package/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +10 -0
  25. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +53 -0
  26. package/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +10 -0
  27. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +53 -0
  28. package/ChartsAxisHighlight/chartsAxisHighlightClasses.d.ts +7 -0
  29. package/ChartsAxisHighlight/chartsAxisHighlightClasses.js +6 -0
  30. package/ChartsAxisHighlight/index.d.ts +3 -0
  31. package/ChartsAxisHighlight/index.js +4 -1
  32. package/ChartsGrid/ChartsGrid.js +1 -1
  33. package/ChartsGrid/ChartsHorizontalGrid.d.ts +2 -2
  34. package/ChartsGrid/ChartsHorizontalGrid.js +3 -3
  35. package/ChartsGrid/ChartsVerticalGrid.d.ts +2 -2
  36. package/ChartsGrid/ChartsVerticalGrid.js +3 -3
  37. package/ChartsLegend/ChartsLegend.js +0 -3
  38. package/ChartsLegend/DefaultChartsLegend.d.ts +0 -5
  39. package/ChartsLegend/DefaultChartsLegend.js +1 -12
  40. package/ChartsLegend/LegendPerItem.d.ts +3 -3
  41. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +11 -9
  42. package/ChartsOverlay/ChartsOverlay.d.ts +1 -1
  43. package/ChartsSurface/ChartsSurface.d.ts +0 -15
  44. package/ChartsSurface/ChartsSurface.js +35 -34
  45. package/ChartsTooltip/ChartTooltip.types.d.ts +15 -0
  46. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +7 -39
  47. package/ChartsTooltip/ChartsAxisTooltipContent.js +83 -72
  48. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +5 -28
  49. package/ChartsTooltip/ChartsItemTooltipContent.js +54 -44
  50. package/ChartsTooltip/ChartsTooltip.d.ts +3 -69
  51. package/ChartsTooltip/ChartsTooltip.js +162 -107
  52. package/ChartsTooltip/ChartsTooltipContainer.d.ts +33 -0
  53. package/ChartsTooltip/ChartsTooltipContainer.js +298 -0
  54. package/ChartsTooltip/chartsTooltipClasses.d.ts +1 -0
  55. package/ChartsTooltip/chartsTooltipClasses.js +18 -2
  56. package/ChartsTooltip/index.d.ts +3 -3
  57. package/ChartsTooltip/index.js +2 -3
  58. package/ChartsTooltip/useAxisTooltip.d.ts +2 -2
  59. package/ChartsTooltip/useAxisTooltip.js +21 -21
  60. package/ChartsTooltip/useItemTooltip.d.ts +1 -1
  61. package/ChartsTooltip/useItemTooltip.js +8 -7
  62. package/ChartsTooltip/utils.d.ts +5 -16
  63. package/ChartsTooltip/utils.js +45 -50
  64. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +50 -39
  65. package/Gauge/Gauge.d.ts +1 -1
  66. package/Gauge/Gauge.js +0 -6
  67. package/Gauge/GaugeContainer.d.ts +3 -3
  68. package/Gauge/GaugeContainer.js +60 -61
  69. package/LineChart/AnimatedArea.d.ts +0 -1333
  70. package/LineChart/AnimatedArea.js +9 -18
  71. package/LineChart/AnimatedLine.d.ts +0 -1333
  72. package/LineChart/AnimatedLine.js +9 -20
  73. package/LineChart/AreaElement.d.ts +1 -1
  74. package/LineChart/AreaPlot.js +14 -8
  75. package/LineChart/CircleMarkElement.js +6 -5
  76. package/LineChart/LineChart.d.ts +11 -17
  77. package/LineChart/LineChart.js +9 -60
  78. package/LineChart/LineElement.d.ts +1 -1
  79. package/LineChart/LineHighlightPlot.d.ts +1 -1
  80. package/LineChart/LineHighlightPlot.js +8 -11
  81. package/LineChart/LinePlot.js +14 -8
  82. package/LineChart/MarkElement.js +6 -5
  83. package/LineChart/MarkPlot.js +2 -6
  84. package/LineChart/extremums.js +10 -6
  85. package/LineChart/useLineChartProps.d.ts +2 -4
  86. package/LineChart/useLineChartProps.js +4 -11
  87. package/PieChart/PieArc.d.ts +0 -5
  88. package/PieChart/PieArc.js +1 -10
  89. package/PieChart/PieArcPlot.js +0 -5
  90. package/PieChart/PieChart.d.ts +10 -39
  91. package/PieChart/PieChart.js +20 -137
  92. package/PieChart/PiePlot.js +2 -2
  93. package/PieChart/getPieCoordinates.d.ts +2 -2
  94. package/README.md +4 -4
  95. package/ScatterChart/Scatter.js +6 -5
  96. package/ScatterChart/ScatterChart.d.ts +11 -17
  97. package/ScatterChart/ScatterChart.js +11 -60
  98. package/ScatterChart/ScatterPlot.js +3 -6
  99. package/ScatterChart/extremums.js +6 -6
  100. package/ScatterChart/useScatterChartProps.d.ts +2 -4
  101. package/ScatterChart/useScatterChartProps.js +3 -12
  102. package/SparkLineChart/SparkLineChart.d.ts +7 -8
  103. package/SparkLineChart/SparkLineChart.js +6 -33
  104. package/context/CartesianProvider/defaultizeAxis.d.ts +1 -1
  105. package/context/ChartDataProvider/ChartDataProvider.d.ts +31 -0
  106. package/{ResponsiveChartContainer/ResponsiveChartContainer.js → context/ChartDataProvider/ChartDataProvider.js} +45 -39
  107. package/context/ChartDataProvider/index.d.ts +1 -0
  108. package/context/ChartDataProvider/index.js +1 -0
  109. package/context/ChartDataProvider/useChartDataProviderProps.d.ts +94 -0
  110. package/context/ChartDataProvider/useChartDataProviderProps.js +66 -0
  111. package/{ChartContainer → context/ChartDataProvider}/useDefaultizeAxis.d.ts +12 -12
  112. package/{modern/ChartContainer → context/ChartDataProvider}/useDefaultizeAxis.js +1 -1
  113. package/context/{DrawingProvider.d.ts → DrawingAreaProvider/DrawingArea.types.d.ts} +3 -14
  114. package/context/DrawingAreaProvider/DrawingAreaContext.d.ts +8 -0
  115. package/context/DrawingAreaProvider/DrawingAreaContext.js +16 -0
  116. package/context/DrawingAreaProvider/DrawingAreaProvider.d.ts +3 -0
  117. package/{modern/context/DrawingProvider.js → context/DrawingAreaProvider/DrawingAreaProvider.js} +11 -41
  118. package/context/DrawingAreaProvider/index.d.ts +3 -0
  119. package/context/DrawingAreaProvider/index.js +3 -0
  120. package/context/HighlightedProvider/HighlightedContext.d.ts +0 -8
  121. package/context/HighlightedProvider/HighlightedProvider.js +1 -16
  122. package/context/InteractionProvider.d.ts +5 -48
  123. package/context/InteractionProvider.js +8 -64
  124. package/context/InteractionSelectors.d.ts +359 -0
  125. package/context/InteractionSelectors.js +12 -0
  126. package/context/PluginProvider/ExtremumGetter.types.d.ts +2 -2
  127. package/context/SizeProvider/Size.types.d.ts +30 -0
  128. package/context/SizeProvider/SizeContext.d.ts +4 -0
  129. package/context/SizeProvider/SizeContext.js +13 -0
  130. package/context/SizeProvider/SizeProvider.d.ts +11 -0
  131. package/context/SizeProvider/SizeProvider.js +26 -0
  132. package/context/SizeProvider/index.d.ts +4 -0
  133. package/context/SizeProvider/index.js +4 -0
  134. package/context/SizeProvider/useChartContainerDimensions.d.ts +9 -0
  135. package/{modern/ResponsiveChartContainer → context/SizeProvider}/useChartContainerDimensions.js +15 -7
  136. package/context/SizeProvider/useSize.d.ts +5 -0
  137. package/context/SizeProvider/useSize.js +13 -0
  138. package/context/SvgRefProvider/SvgRef.types.d.ts +8 -0
  139. package/context/SvgRefProvider/SvgRef.types.js +1 -0
  140. package/context/SvgRefProvider/SvgRefContext.d.ts +4 -0
  141. package/context/SvgRefProvider/SvgRefContext.js +17 -0
  142. package/context/SvgRefProvider/SvgRefProvider.d.ts +3 -0
  143. package/context/SvgRefProvider/SvgRefProvider.js +24 -0
  144. package/context/SvgRefProvider/index.d.ts +4 -0
  145. package/context/SvgRefProvider/index.js +4 -0
  146. package/context/SvgRefProvider/useSurfaceRef.d.ts +2 -0
  147. package/context/SvgRefProvider/useSurfaceRef.js +14 -0
  148. package/context/ZAxisContextProvider.d.ts +1 -1
  149. package/context/index.d.ts +2 -0
  150. package/context/index.js +2 -1
  151. package/hooks/useAxisEvents.js +32 -19
  152. package/hooks/useChartId.js +2 -2
  153. package/hooks/useDrawingArea.d.ts +2 -2
  154. package/hooks/useDrawingArea.js +2 -2
  155. package/hooks/useInteractionItemProps.js +19 -12
  156. package/hooks/useSvgRef.js +3 -3
  157. package/index.d.ts +1 -2
  158. package/index.js +2 -3
  159. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +1 -1
  160. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -4
  161. package/internals/computeAxisValue.d.ts +2 -2
  162. package/internals/defaultizeColor.d.ts +1 -8
  163. package/internals/getSymbol.js +19 -3
  164. package/internals/index.d.ts +7 -6
  165. package/internals/index.js +7 -6
  166. package/internals/plugins/models/index.d.ts +35 -0
  167. package/internals/plugins/models/index.js +1 -0
  168. package/internals/plugins/utils/ChartStore.d.ts +12 -0
  169. package/internals/plugins/utils/ChartStore.js +26 -0
  170. package/internals/plugins/utils/ChartsStore.d.ts +12 -0
  171. package/internals/plugins/utils/ChartsStore.js +26 -0
  172. package/internals/plugins/utils/selectors.d.ts +9 -0
  173. package/internals/plugins/utils/selectors.js +37 -0
  174. package/internals/useCharts.d.ts +6 -0
  175. package/internals/useCharts.js +29 -0
  176. package/internals/useSelector.d.ts +4 -0
  177. package/internals/useSelector.js +6 -0
  178. package/internals/useStore.d.ts +2 -0
  179. package/internals/useStore.js +17 -0
  180. package/internals/useStringInterpolator.js +1 -0
  181. package/models/seriesType/bar.d.ts +1 -1
  182. package/models/seriesType/common.d.ts +0 -10
  183. package/models/seriesType/config.d.ts +1 -1
  184. package/models/seriesType/line.d.ts +1 -1
  185. package/models/seriesType/pie.d.ts +1 -1
  186. package/models/seriesType/scatter.d.ts +1 -6
  187. package/modern/BarChart/AnimatedBarElement.js +21 -0
  188. package/modern/BarChart/BarChart.js +9 -59
  189. package/modern/BarChart/BarElement.js +10 -20
  190. package/modern/BarChart/BarPlot.js +24 -6
  191. package/modern/BarChart/extremums.js +3 -3
  192. package/modern/BarChart/useBarChartProps.js +4 -11
  193. package/modern/ChartContainer/ChartContainer.js +15 -44
  194. package/modern/ChartContainer/ResizableContainer.js +60 -0
  195. package/modern/ChartContainer/useChartContainerProps.js +29 -59
  196. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +10 -96
  197. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.types.js +1 -0
  198. package/modern/ChartsAxisHighlight/ChartsAxisHighlightPath.js +34 -0
  199. package/modern/ChartsAxisHighlight/ChartsXAxisHighlight.js +53 -0
  200. package/modern/ChartsAxisHighlight/ChartsYAxisHighlight.js +53 -0
  201. package/modern/ChartsAxisHighlight/chartsAxisHighlightClasses.js +6 -0
  202. package/modern/ChartsAxisHighlight/index.js +4 -1
  203. package/modern/ChartsGrid/ChartsGrid.js +1 -1
  204. package/modern/ChartsGrid/ChartsHorizontalGrid.js +3 -3
  205. package/modern/ChartsGrid/ChartsVerticalGrid.js +3 -3
  206. package/modern/ChartsLegend/ChartsLegend.js +0 -3
  207. package/modern/ChartsLegend/DefaultChartsLegend.js +1 -12
  208. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +11 -9
  209. package/modern/ChartsSurface/ChartsSurface.js +35 -34
  210. package/modern/ChartsTooltip/ChartTooltip.types.js +1 -0
  211. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +83 -72
  212. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +54 -44
  213. package/modern/ChartsTooltip/ChartsTooltip.js +162 -107
  214. package/modern/ChartsTooltip/ChartsTooltipContainer.js +298 -0
  215. package/modern/ChartsTooltip/chartsTooltipClasses.js +18 -2
  216. package/modern/ChartsTooltip/index.js +2 -3
  217. package/modern/ChartsTooltip/useAxisTooltip.js +21 -21
  218. package/modern/ChartsTooltip/useItemTooltip.js +8 -7
  219. package/modern/ChartsTooltip/utils.js +45 -50
  220. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +50 -39
  221. package/modern/Gauge/Gauge.js +0 -6
  222. package/modern/Gauge/GaugeContainer.js +60 -61
  223. package/modern/LineChart/AnimatedArea.js +9 -18
  224. package/modern/LineChart/AnimatedLine.js +9 -20
  225. package/modern/LineChart/AreaPlot.js +14 -8
  226. package/modern/LineChart/CircleMarkElement.js +6 -5
  227. package/modern/LineChart/LineChart.js +9 -60
  228. package/modern/LineChart/LineHighlightPlot.js +8 -11
  229. package/modern/LineChart/LinePlot.js +14 -8
  230. package/modern/LineChart/MarkElement.js +6 -5
  231. package/modern/LineChart/MarkPlot.js +2 -6
  232. package/modern/LineChart/extremums.js +10 -6
  233. package/modern/LineChart/useLineChartProps.js +4 -11
  234. package/modern/PieChart/PieArc.js +1 -10
  235. package/modern/PieChart/PieArcPlot.js +0 -5
  236. package/modern/PieChart/PieChart.js +20 -137
  237. package/modern/PieChart/PiePlot.js +2 -2
  238. package/modern/ScatterChart/Scatter.js +6 -5
  239. package/modern/ScatterChart/ScatterChart.js +11 -60
  240. package/modern/ScatterChart/ScatterPlot.js +3 -6
  241. package/modern/ScatterChart/extremums.js +6 -6
  242. package/modern/ScatterChart/useScatterChartProps.js +3 -12
  243. package/modern/SparkLineChart/SparkLineChart.js +6 -33
  244. package/modern/{ResponsiveChartContainer/ResponsiveChartContainer.js → context/ChartDataProvider/ChartDataProvider.js} +45 -39
  245. package/modern/context/ChartDataProvider/index.js +1 -0
  246. package/modern/context/ChartDataProvider/useChartDataProviderProps.js +66 -0
  247. package/{ChartContainer → modern/context/ChartDataProvider}/useDefaultizeAxis.js +1 -1
  248. package/modern/context/DrawingAreaProvider/DrawingArea.types.js +1 -0
  249. package/modern/context/DrawingAreaProvider/DrawingAreaContext.js +16 -0
  250. package/{context/DrawingProvider.js → modern/context/DrawingAreaProvider/DrawingAreaProvider.js} +11 -41
  251. package/modern/context/DrawingAreaProvider/index.js +3 -0
  252. package/modern/context/HighlightedProvider/HighlightedProvider.js +1 -16
  253. package/modern/context/InteractionProvider.js +8 -64
  254. package/modern/context/InteractionSelectors.js +12 -0
  255. package/modern/context/SizeProvider/Size.types.js +1 -0
  256. package/modern/context/SizeProvider/SizeContext.js +13 -0
  257. package/modern/context/SizeProvider/SizeProvider.js +26 -0
  258. package/modern/context/SizeProvider/index.js +4 -0
  259. package/{ResponsiveChartContainer → modern/context/SizeProvider}/useChartContainerDimensions.js +15 -7
  260. package/modern/context/SizeProvider/useSize.js +13 -0
  261. package/modern/context/SvgRefProvider/SvgRef.types.js +1 -0
  262. package/modern/context/SvgRefProvider/SvgRefContext.js +17 -0
  263. package/modern/context/SvgRefProvider/SvgRefProvider.js +24 -0
  264. package/modern/context/SvgRefProvider/index.js +4 -0
  265. package/modern/context/SvgRefProvider/useSurfaceRef.js +14 -0
  266. package/modern/context/index.js +2 -1
  267. package/modern/hooks/useAxisEvents.js +32 -19
  268. package/modern/hooks/useChartId.js +2 -2
  269. package/modern/hooks/useDrawingArea.js +2 -2
  270. package/modern/hooks/useInteractionItemProps.js +19 -12
  271. package/modern/hooks/useSvgRef.js +3 -3
  272. package/modern/index.js +2 -3
  273. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -4
  274. package/modern/internals/getSymbol.js +19 -3
  275. package/modern/internals/index.js +7 -6
  276. package/modern/internals/plugins/models/index.js +1 -0
  277. package/modern/internals/plugins/utils/ChartStore.js +26 -0
  278. package/modern/internals/plugins/utils/ChartsStore.js +26 -0
  279. package/modern/internals/plugins/utils/selectors.js +37 -0
  280. package/modern/internals/useCharts.js +29 -0
  281. package/modern/internals/useSelector.js +6 -0
  282. package/modern/internals/useStore.js +17 -0
  283. package/modern/internals/useStringInterpolator.js +1 -0
  284. package/node/BarChart/AnimatedBarElement.js +28 -0
  285. package/node/BarChart/BarChart.js +9 -59
  286. package/node/BarChart/BarElement.js +11 -21
  287. package/node/BarChart/BarPlot.js +22 -4
  288. package/node/BarChart/extremums.js +3 -3
  289. package/node/BarChart/useBarChartProps.js +4 -11
  290. package/node/ChartContainer/ChartContainer.js +14 -43
  291. package/node/ChartContainer/ResizableContainer.js +68 -0
  292. package/node/ChartContainer/useChartContainerProps.js +29 -60
  293. package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +12 -100
  294. package/node/ChartsAxisHighlight/ChartsAxisHighlightPath.js +40 -0
  295. package/node/ChartsAxisHighlight/ChartsXAxisHighlight.js +57 -0
  296. package/node/ChartsAxisHighlight/ChartsYAxisHighlight.js +57 -0
  297. package/node/ChartsAxisHighlight/chartsAxisHighlightClasses.js +14 -0
  298. package/node/ChartsAxisHighlight/index.js +33 -0
  299. package/node/ChartsGrid/ChartsGrid.js +2 -2
  300. package/node/ChartsGrid/ChartsHorizontalGrid.js +4 -4
  301. package/node/ChartsGrid/ChartsVerticalGrid.js +4 -4
  302. package/node/ChartsLegend/ChartsLegend.js +0 -3
  303. package/node/ChartsLegend/DefaultChartsLegend.js +1 -12
  304. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +11 -9
  305. package/node/ChartsSurface/ChartsSurface.js +35 -34
  306. package/node/ChartsTooltip/ChartsAxisTooltipContent.js +83 -73
  307. package/node/ChartsTooltip/ChartsItemTooltipContent.js +54 -45
  308. package/node/ChartsTooltip/ChartsTooltip.js +161 -106
  309. package/node/ChartsTooltip/ChartsTooltipContainer.js +304 -0
  310. package/node/ChartsTooltip/chartsTooltipClasses.js +22 -3
  311. package/node/ChartsTooltip/index.js +19 -28
  312. package/node/ChartsTooltip/useAxisTooltip.js +21 -21
  313. package/node/ChartsTooltip/useItemTooltip.js +8 -7
  314. package/node/ChartsTooltip/utils.js +46 -53
  315. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +51 -40
  316. package/node/Gauge/Gauge.js +0 -6
  317. package/node/Gauge/GaugeContainer.js +60 -61
  318. package/node/LineChart/AnimatedArea.js +9 -19
  319. package/node/LineChart/AnimatedLine.js +9 -21
  320. package/node/LineChart/AreaPlot.js +13 -7
  321. package/node/LineChart/CircleMarkElement.js +6 -5
  322. package/node/LineChart/LineChart.js +9 -60
  323. package/node/LineChart/LineHighlightPlot.js +8 -11
  324. package/node/LineChart/LinePlot.js +13 -7
  325. package/node/LineChart/MarkElement.js +6 -5
  326. package/node/LineChart/MarkPlot.js +2 -6
  327. package/node/LineChart/extremums.js +10 -6
  328. package/node/LineChart/useLineChartProps.js +4 -11
  329. package/node/PieChart/PieArc.js +1 -10
  330. package/node/PieChart/PieArcPlot.js +0 -5
  331. package/node/PieChart/PieChart.js +20 -137
  332. package/node/PieChart/PiePlot.js +2 -2
  333. package/node/ScatterChart/Scatter.js +6 -5
  334. package/node/ScatterChart/ScatterChart.js +11 -60
  335. package/node/ScatterChart/ScatterPlot.js +3 -6
  336. package/node/ScatterChart/extremums.js +6 -6
  337. package/node/ScatterChart/useScatterChartProps.js +3 -12
  338. package/node/SparkLineChart/SparkLineChart.js +6 -33
  339. package/node/{ResponsiveChartContainer/ResponsiveChartContainer.js → context/ChartDataProvider/ChartDataProvider.js} +45 -39
  340. package/node/context/ChartDataProvider/index.js +16 -0
  341. package/node/context/ChartDataProvider/useChartDataProviderProps.js +72 -0
  342. package/node/{ChartContainer → context/ChartDataProvider}/useDefaultizeAxis.js +1 -1
  343. package/node/context/DrawingAreaProvider/DrawingArea.types.js +5 -0
  344. package/node/context/DrawingAreaProvider/DrawingAreaContext.js +22 -0
  345. package/node/context/{DrawingProvider.js → DrawingAreaProvider/DrawingAreaProvider.js} +12 -44
  346. package/node/context/DrawingAreaProvider/index.js +38 -0
  347. package/node/context/HighlightedProvider/HighlightedProvider.js +1 -16
  348. package/node/context/InteractionProvider.js +9 -66
  349. package/node/context/InteractionSelectors.js +18 -0
  350. package/node/context/SizeProvider/Size.types.js +5 -0
  351. package/node/context/SizeProvider/SizeContext.js +20 -0
  352. package/node/context/SizeProvider/SizeProvider.js +29 -0
  353. package/node/context/SizeProvider/index.js +49 -0
  354. package/node/{ResponsiveChartContainer → context/SizeProvider}/useChartContainerDimensions.js +15 -7
  355. package/node/context/SizeProvider/useSize.js +20 -0
  356. package/node/context/SvgRefProvider/SvgRef.types.js +5 -0
  357. package/node/context/SvgRefProvider/SvgRefContext.js +23 -0
  358. package/node/context/SvgRefProvider/SvgRefProvider.js +31 -0
  359. package/node/context/SvgRefProvider/index.js +49 -0
  360. package/node/context/SvgRefProvider/useSurfaceRef.js +20 -0
  361. package/node/context/index.js +10 -2
  362. package/node/hooks/useAxisEvents.js +33 -19
  363. package/node/hooks/useChartId.js +2 -2
  364. package/node/hooks/useDrawingArea.js +2 -2
  365. package/node/hooks/useInteractionItemProps.js +20 -13
  366. package/node/hooks/useSvgRef.js +3 -3
  367. package/node/index.js +5 -16
  368. package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -4
  369. package/node/internals/getSymbol.js +19 -3
  370. package/node/internals/index.js +64 -44
  371. package/node/internals/plugins/models/index.js +5 -0
  372. package/node/internals/plugins/utils/ChartStore.js +33 -0
  373. package/node/internals/plugins/utils/ChartsStore.js +33 -0
  374. package/node/internals/plugins/utils/selectors.js +44 -0
  375. package/node/internals/useCharts.js +36 -0
  376. package/node/internals/useSelector.js +13 -0
  377. package/node/internals/useStore.js +24 -0
  378. package/node/internals/useStringInterpolator.js +2 -0
  379. package/package.json +8 -6
  380. package/themeAugmentation/props.d.ts +1 -2
  381. package/ChartsTooltip/DefaultChartsAxisTooltipContent.d.ts +0 -7
  382. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -123
  383. package/ChartsTooltip/DefaultChartsItemTooltipContent.d.ts +0 -8
  384. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -92
  385. package/ResponsiveChartContainer/ResizableContainer.d.ts +0 -9
  386. package/ResponsiveChartContainer/ResizableContainer.js +0 -26
  387. package/ResponsiveChartContainer/ResponsiveChartContainer.d.ts +0 -24
  388. package/ResponsiveChartContainer/index.d.ts +0 -1
  389. package/ResponsiveChartContainer/index.js +0 -1
  390. package/ResponsiveChartContainer/package.json +0 -6
  391. package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +0 -6
  392. package/ResponsiveChartContainer/useResponsiveChartContainerProps.d.ts +0 -19
  393. package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +0 -70
  394. package/internals/SlotComponentPropsFromProps.d.ts +0 -1
  395. package/models/helpers.d.ts +0 -3
  396. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -123
  397. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -92
  398. package/modern/ResponsiveChartContainer/ResizableContainer.js +0 -26
  399. package/modern/ResponsiveChartContainer/index.js +0 -1
  400. package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +0 -70
  401. package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -129
  402. package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -98
  403. package/node/ResponsiveChartContainer/ResizableContainer.js +0 -32
  404. package/node/ResponsiveChartContainer/index.js +0 -16
  405. package/node/ResponsiveChartContainer/useResponsiveChartContainerProps.js +0 -77
  406. /package/{internals/SlotComponentPropsFromProps.js → ChartsAxisHighlight/ChartsAxisHighlight.types.js} +0 -0
  407. /package/ChartsGrid/{styledCommonents.d.ts → styledComponents.d.ts} +0 -0
  408. /package/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
  409. /package/{models/helpers.js → ChartsTooltip/ChartTooltip.types.js} +0 -0
  410. /package/{modern/internals/SlotComponentPropsFromProps.js → context/DrawingAreaProvider/DrawingArea.types.js} +0 -0
  411. /package/{modern/models/helpers.js → context/SizeProvider/Size.types.js} +0 -0
  412. /package/modern/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
  413. /package/node/{internals/SlotComponentPropsFromProps.js → ChartsAxisHighlight/ChartsAxisHighlight.types.js} +0 -0
  414. /package/node/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
  415. /package/node/{models/helpers.js → ChartsTooltip/ChartTooltip.types.js} +0 -0
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.ChartsTooltipContainer = ChartsTooltipContainer;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
+ var React = _interopRequireWildcard(require("react"));
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _useLazyRef = _interopRequireDefault(require("@mui/utils/useLazyRef"));
15
+ var _styles = require("@mui/material/styles");
16
+ var _Popper = _interopRequireDefault(require("@mui/material/Popper"));
17
+ var _NoSsr = _interopRequireDefault(require("@mui/material/NoSsr"));
18
+ var _useSvgRef = require("../hooks/useSvgRef");
19
+ var _utils = require("./utils");
20
+ var _useSelector = require("../internals/useSelector");
21
+ var _useStore = require("../internals/useStore");
22
+ var _hooks = require("../hooks");
23
+ var _InteractionSelectors = require("../context/InteractionSelectors");
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+ const _excluded = ["trigger", "classes", "children"];
26
+ const ChartsTooltipRoot = (0, _styles.styled)(_Popper.default, {
27
+ name: 'MuiChartsTooltip',
28
+ slot: 'Root',
29
+ overridesResolver: (_, styles) => styles.root
30
+ })(({
31
+ theme
32
+ }) => ({
33
+ pointerEvents: 'none',
34
+ zIndex: theme.zIndex.modal
35
+ }));
36
+
37
+ /**
38
+ * Demos:
39
+ *
40
+ * - [ChartsTooltip](https://mui.com/x/react-charts/tooltip/)
41
+ *
42
+ * API:
43
+ *
44
+ * - [ChartsTooltip API](https://mui.com/x/api/charts/charts-tool-tip/)
45
+ */
46
+ function ChartsTooltipContainer(inProps) {
47
+ const props = (0, _styles.useThemeProps)({
48
+ props: inProps,
49
+ name: 'MuiChartsTooltipContainer'
50
+ });
51
+ const {
52
+ trigger = 'axis',
53
+ classes,
54
+ children
55
+ } = props,
56
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
57
+ const svgRef = (0, _useSvgRef.useSvgRef)();
58
+ const pointerType = (0, _utils.usePointerType)();
59
+ const xAxis = (0, _hooks.useXAxis)();
60
+ const xAxisHasData = xAxis.data !== undefined && xAxis.data.length !== 0;
61
+ const popperRef = React.useRef(null);
62
+ const positionRef = (0, _useLazyRef.default)(() => ({
63
+ x: 0,
64
+ y: 0
65
+ }));
66
+ const store = (0, _useStore.useStore)();
67
+ const isOpen = (0, _useSelector.useSelector)(store,
68
+ // eslint-disable-next-line no-nested-ternary
69
+ trigger === 'axis' ? xAxisHasData ? _InteractionSelectors.selectorChartsInteractionXAxisIsDefined : _InteractionSelectors.selectorChartsInteractionYAxisIsDefined : _InteractionSelectors.selectorChartsInteractionItemIsDefined);
70
+ const popperOpen = pointerType !== null && isOpen; // tooltipHasData;
71
+
72
+ React.useEffect(() => {
73
+ const element = svgRef.current;
74
+ if (element === null) {
75
+ return () => {};
76
+ }
77
+ const handleMove = event => {
78
+ // eslint-disable-next-line react-compiler/react-compiler
79
+ positionRef.current = {
80
+ x: event.clientX,
81
+ y: event.clientY
82
+ };
83
+ popperRef.current?.update();
84
+ };
85
+ element.addEventListener('pointermove', handleMove);
86
+ return () => {
87
+ element.removeEventListener('pointermove', handleMove);
88
+ };
89
+ }, [svgRef, positionRef]);
90
+ if (trigger === 'none') {
91
+ return null;
92
+ }
93
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NoSsr.default, {
94
+ children: popperOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(ChartsTooltipRoot, (0, _extends2.default)({
95
+ className: classes?.root,
96
+ open: popperOpen,
97
+ placement: pointerType?.pointerType === 'mouse' ? 'right-start' : 'top',
98
+ popperRef: popperRef,
99
+ anchorEl: {
100
+ getBoundingClientRect: () => ({
101
+ x: positionRef.current.x,
102
+ y: positionRef.current.y,
103
+ top: positionRef.current.y,
104
+ left: positionRef.current.x,
105
+ right: positionRef.current.x,
106
+ bottom: positionRef.current.y,
107
+ width: 0,
108
+ height: 0,
109
+ toJSON: () => ''
110
+ })
111
+ },
112
+ modifiers: [{
113
+ name: 'offset',
114
+ options: {
115
+ offset: [0, pointerType?.pointerType === 'touch' ? 40 - pointerType.height : 0]
116
+ }
117
+ }]
118
+ }, other, {
119
+ children: children
120
+ }))
121
+ });
122
+ }
123
+ process.env.NODE_ENV !== "production" ? ChartsTooltipContainer.propTypes = {
124
+ // ----------------------------- Warning --------------------------------
125
+ // | These PropTypes are generated from the TypeScript type definitions |
126
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
127
+ // ----------------------------------------------------------------------
128
+ /**
129
+ * An HTML element, [virtualElement](https://popper.js.org/docs/v2/virtual-elements/),
130
+ * or a function that returns either.
131
+ * It's used to set the position of the popper.
132
+ * The return value will passed as the reference object of the Popper instance.
133
+ */
134
+ anchorEl: _propTypes.default.oneOfType([(props, propName) => {
135
+ if (props[propName] == null) {
136
+ return new Error(`Prop '${propName}' is required but wasn't specified`);
137
+ }
138
+ if (typeof props[propName] !== 'object' || props[propName].nodeType !== 1) {
139
+ return new Error(`Expected prop '${propName}' to be of type Element`);
140
+ }
141
+ return null;
142
+ }, _propTypes.default.func, _propTypes.default.shape({
143
+ contextElement: (props, propName) => {
144
+ if (props[propName] == null) {
145
+ return null;
146
+ }
147
+ if (typeof props[propName] !== 'object' || props[propName].nodeType !== 1) {
148
+ return new Error(`Expected prop '${propName}' to be of type Element`);
149
+ }
150
+ return null;
151
+ },
152
+ getBoundingClientRect: _propTypes.default.func.isRequired
153
+ })]),
154
+ /**
155
+ * Popper render function or node.
156
+ */
157
+ children: _propTypes.default.node,
158
+ /**
159
+ * Override or extend the styles applied to the component.
160
+ */
161
+ classes: _propTypes.default.object,
162
+ /**
163
+ * The component used for the root node.
164
+ * Either a string to use a HTML element or a component.
165
+ */
166
+ component: _propTypes.default.elementType,
167
+ /**
168
+ * The components used for each slot inside the Popper.
169
+ * Either a string to use a HTML element or a component.
170
+ * @default {}
171
+ */
172
+ components: _propTypes.default.shape({
173
+ Root: _propTypes.default.elementType
174
+ }),
175
+ /**
176
+ * The props used for each slot inside the Popper.
177
+ * @default {}
178
+ */
179
+ componentsProps: _propTypes.default.shape({
180
+ root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
181
+ }),
182
+ /**
183
+ * An HTML element or function that returns one.
184
+ * The `container` will have the portal children appended to it.
185
+ *
186
+ * You can also provide a callback, which is called in a React layout effect.
187
+ * This lets you set the container from a ref, and also makes server-side rendering possible.
188
+ *
189
+ * By default, it uses the body of the top-level document object,
190
+ * so it's simply `document.body` most of the time.
191
+ */
192
+ container: _propTypes.default.oneOfType([(props, propName) => {
193
+ if (props[propName] == null) {
194
+ return new Error(`Prop '${propName}' is required but wasn't specified`);
195
+ }
196
+ if (typeof props[propName] !== 'object' || props[propName].nodeType !== 1) {
197
+ return new Error(`Expected prop '${propName}' to be of type Element`);
198
+ }
199
+ return null;
200
+ }, _propTypes.default.func]),
201
+ /**
202
+ * The `children` will be under the DOM hierarchy of the parent component.
203
+ * @default false
204
+ */
205
+ disablePortal: _propTypes.default.bool,
206
+ /**
207
+ * Always keep the children in the DOM.
208
+ * This prop can be useful in SEO situation or
209
+ * when you want to maximize the responsiveness of the Popper.
210
+ * @default false
211
+ */
212
+ keepMounted: _propTypes.default.bool,
213
+ /**
214
+ * Popper.js is based on a "plugin-like" architecture,
215
+ * most of its features are fully encapsulated "modifiers".
216
+ *
217
+ * A modifier is a function that is called each time Popper.js needs to
218
+ * compute the position of the popper.
219
+ * For this reason, modifiers should be very performant to avoid bottlenecks.
220
+ * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v2/modifiers/).
221
+ */
222
+ modifiers: _propTypes.default.arrayOf(_propTypes.default.shape({
223
+ data: _propTypes.default.object,
224
+ effect: _propTypes.default.func,
225
+ enabled: _propTypes.default.bool,
226
+ fn: _propTypes.default.func,
227
+ name: _propTypes.default.any,
228
+ options: _propTypes.default.object,
229
+ phase: _propTypes.default.oneOf(['afterMain', 'afterRead', 'afterWrite', 'beforeMain', 'beforeRead', 'beforeWrite', 'main', 'read', 'write']),
230
+ requires: _propTypes.default.arrayOf(_propTypes.default.string),
231
+ requiresIfExists: _propTypes.default.arrayOf(_propTypes.default.string)
232
+ })),
233
+ /**
234
+ * If `true`, the component is shown.
235
+ */
236
+ open: _propTypes.default.bool,
237
+ /**
238
+ * Popper placement.
239
+ * @default 'bottom'
240
+ */
241
+ placement: _propTypes.default.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
242
+ /**
243
+ * Options provided to the [`Popper.js`](https://popper.js.org/docs/v2/constructors/#options) instance.
244
+ * @default {}
245
+ */
246
+ popperOptions: _propTypes.default.shape({
247
+ modifiers: _propTypes.default.array,
248
+ onFirstUpdate: _propTypes.default.func,
249
+ placement: _propTypes.default.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
250
+ strategy: _propTypes.default.oneOf(['absolute', 'fixed'])
251
+ }),
252
+ /**
253
+ * A ref that points to the used popper instance.
254
+ */
255
+ popperRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
256
+ current: _propTypes.default.shape({
257
+ destroy: _propTypes.default.func.isRequired,
258
+ forceUpdate: _propTypes.default.func.isRequired,
259
+ setOptions: _propTypes.default.func.isRequired,
260
+ state: _propTypes.default.shape({
261
+ attributes: _propTypes.default.object.isRequired,
262
+ elements: _propTypes.default.object.isRequired,
263
+ modifiersData: _propTypes.default.object.isRequired,
264
+ options: _propTypes.default.object.isRequired,
265
+ orderedModifiers: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
266
+ placement: _propTypes.default.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']).isRequired,
267
+ rects: _propTypes.default.object.isRequired,
268
+ reset: _propTypes.default.bool.isRequired,
269
+ scrollParents: _propTypes.default.object.isRequired,
270
+ strategy: _propTypes.default.oneOf(['absolute', 'fixed']).isRequired,
271
+ styles: _propTypes.default.object.isRequired
272
+ }).isRequired,
273
+ update: _propTypes.default.func.isRequired
274
+ })
275
+ })]),
276
+ /**
277
+ * The props used for each slot inside the Popper.
278
+ * @default {}
279
+ */
280
+ slotProps: _propTypes.default.object,
281
+ /**
282
+ * The components used for each slot inside the Popper.
283
+ * Either a string to use a HTML element or a component.
284
+ * @default {}
285
+ */
286
+ slots: _propTypes.default.object,
287
+ /**
288
+ * The system prop that allows defining system overrides as well as additional CSS styles.
289
+ */
290
+ sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
291
+ /**
292
+ * Help supporting a react-transition-group/Transition component.
293
+ * @default false
294
+ */
295
+ transition: _propTypes.default.bool,
296
+ /**
297
+ * Select the kind of tooltip to display
298
+ * - 'item': Shows data about the item below the mouse.
299
+ * - 'axis': Shows values associated with the hovered x value
300
+ * - 'none': Does not display tooltip
301
+ * @default 'axis'
302
+ */
303
+ trigger: _propTypes.default.oneOf(['axis', 'item', 'none'])
304
+ } : void 0;
@@ -1,12 +1,31 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.chartsTooltipClasses = void 0;
7
8
  exports.getChartsTooltipUtilityClass = getChartsTooltipUtilityClass;
8
- var _utils = require("@mui/utils");
9
+ exports.useUtilityClasses = void 0;
10
+ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
11
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
12
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
9
13
  function getChartsTooltipUtilityClass(slot) {
10
- return (0, _utils.unstable_generateUtilityClass)('MuiChartsTooltip', slot);
14
+ return (0, _generateUtilityClass.default)('MuiChartsTooltip', slot);
11
15
  }
12
- const chartsTooltipClasses = exports.chartsTooltipClasses = (0, _utils.unstable_generateUtilityClasses)('MuiChartsTooltip', ['root', 'paper', 'table', 'row', 'cell', 'mark', 'markCell', 'labelCell', 'valueCell']);
16
+ const chartsTooltipClasses = exports.chartsTooltipClasses = (0, _generateUtilityClasses.default)('MuiChartsTooltip', ['root', 'paper', 'table', 'row', 'cell', 'mark', 'markCell', 'labelCell', 'valueCell']);
17
+ const useUtilityClasses = classes => {
18
+ const slots = {
19
+ root: ['root'],
20
+ paper: ['paper'],
21
+ table: ['table'],
22
+ row: ['row'],
23
+ cell: ['cell'],
24
+ mark: ['mark'],
25
+ markCell: ['markCell'],
26
+ labelCell: ['labelCell'],
27
+ valueCell: ['valueCell']
28
+ };
29
+ return (0, _composeClasses.default)(slots, getChartsTooltipUtilityClass, classes);
30
+ };
31
+ exports.useUtilityClasses = useUtilityClasses;
@@ -4,8 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  var _exportNames = {
7
+ getChartsTooltipUtilityClass: true,
8
+ chartsTooltipClasses: true,
7
9
  useMouseTracker: true
8
10
  };
11
+ Object.defineProperty(exports, "chartsTooltipClasses", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _chartsTooltipClasses.chartsTooltipClasses;
15
+ }
16
+ });
17
+ Object.defineProperty(exports, "getChartsTooltipUtilityClass", {
18
+ enumerable: true,
19
+ get: function () {
20
+ return _chartsTooltipClasses.getChartsTooltipUtilityClass;
21
+ }
22
+ });
9
23
  Object.defineProperty(exports, "useMouseTracker", {
10
24
  enumerable: true,
11
25
  get: function () {
@@ -24,18 +38,19 @@ Object.keys(_ChartsTooltip).forEach(function (key) {
24
38
  }
25
39
  });
26
40
  });
27
- var _chartsTooltipClasses = require("./chartsTooltipClasses");
28
- Object.keys(_chartsTooltipClasses).forEach(function (key) {
41
+ var _ChartsTooltipContainer = require("./ChartsTooltipContainer");
42
+ Object.keys(_ChartsTooltipContainer).forEach(function (key) {
29
43
  if (key === "default" || key === "__esModule") return;
30
44
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
- if (key in exports && exports[key] === _chartsTooltipClasses[key]) return;
45
+ if (key in exports && exports[key] === _ChartsTooltipContainer[key]) return;
32
46
  Object.defineProperty(exports, key, {
33
47
  enumerable: true,
34
48
  get: function () {
35
- return _chartsTooltipClasses[key];
49
+ return _ChartsTooltipContainer[key];
36
50
  }
37
51
  });
38
52
  });
53
+ var _chartsTooltipClasses = require("./chartsTooltipClasses");
39
54
  var _ChartsAxisTooltipContent = require("./ChartsAxisTooltipContent");
40
55
  Object.keys(_ChartsAxisTooltipContent).forEach(function (key) {
41
56
  if (key === "default" || key === "__esModule") return;
@@ -60,30 +75,6 @@ Object.keys(_ChartsItemTooltipContent).forEach(function (key) {
60
75
  }
61
76
  });
62
77
  });
63
- var _DefaultChartsAxisTooltipContent = require("./DefaultChartsAxisTooltipContent");
64
- Object.keys(_DefaultChartsAxisTooltipContent).forEach(function (key) {
65
- if (key === "default" || key === "__esModule") return;
66
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
67
- if (key in exports && exports[key] === _DefaultChartsAxisTooltipContent[key]) return;
68
- Object.defineProperty(exports, key, {
69
- enumerable: true,
70
- get: function () {
71
- return _DefaultChartsAxisTooltipContent[key];
72
- }
73
- });
74
- });
75
- var _DefaultChartsItemTooltipContent = require("./DefaultChartsItemTooltipContent");
76
- Object.keys(_DefaultChartsItemTooltipContent).forEach(function (key) {
77
- if (key === "default" || key === "__esModule") return;
78
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
79
- if (key in exports && exports[key] === _DefaultChartsItemTooltipContent[key]) return;
80
- Object.defineProperty(exports, key, {
81
- enumerable: true,
82
- get: function () {
83
- return _DefaultChartsItemTooltipContent[key];
84
- }
85
- });
86
- });
87
78
  var _ChartsTooltipTable = require("./ChartsTooltipTable");
88
79
  Object.keys(_ChartsTooltipTable).forEach(function (key) {
89
80
  if (key === "default" || key === "__esModule") return;
@@ -7,34 +7,33 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.useAxisTooltip = useAxisTooltip;
9
9
  var React = _interopRequireWildcard(require("react"));
10
- var _InteractionProvider = require("../context/InteractionProvider");
11
10
  var _useSeries = require("../hooks/useSeries");
12
11
  var _CartesianProvider = require("../context/CartesianProvider");
13
12
  var _ZAxisContextProvider = require("../context/ZAxisContextProvider");
14
13
  var _useColorProcessor = require("../context/PluginProvider/useColorProcessor");
14
+ var _useStore = require("../internals/useStore");
15
+ var _useSelector = require("../internals/useSelector");
15
16
  var _getLabel = require("../internals/getLabel");
16
17
  var _isCartesian = require("../internals/isCartesian");
17
18
  var _utils = require("./utils");
19
+ var _useAxis = require("../hooks/useAxis");
20
+ var _InteractionSelectors = require("../context/InteractionSelectors");
18
21
  function useAxisTooltip() {
19
- const {
20
- axis
21
- } = React.useContext(_InteractionProvider.InteractionContext);
22
+ const defaultXAxis = (0, _useAxis.useXAxis)();
23
+ const defaultYAxis = (0, _useAxis.useYAxis)();
24
+ const xAxisHasData = defaultXAxis.data !== undefined && defaultXAxis.data.length !== 0;
25
+ const store = (0, _useStore.useStore)();
26
+ const axisData = (0, _useSelector.useSelector)(store, xAxisHasData ? _InteractionSelectors.selectorChartsInteractionXAxis : _InteractionSelectors.selectorChartsInteractionYAxis);
22
27
  const series = (0, _useSeries.useSeries)();
23
28
  const {
24
29
  xAxis,
25
- yAxis,
26
- xAxisIds,
27
- yAxisIds
30
+ yAxis
28
31
  } = (0, _CartesianProvider.useCartesianContext)();
29
32
  const {
30
33
  zAxis,
31
34
  zAxisIds
32
35
  } = React.useContext(_ZAxisContextProvider.ZAxisContext);
33
36
  const colorProcessors = (0, _useColorProcessor.useColorProcessor)();
34
-
35
- // By default use the x-axis
36
- const isXaxis = axis.x !== null && axis.x.index !== -1;
37
- const axisData = isXaxis ? axis.x && axis.x : axis.y && axis.y;
38
37
  if (axisData === null) {
39
38
  return null;
40
39
  }
@@ -42,8 +41,8 @@ function useAxisTooltip() {
42
41
  index: dataIndex,
43
42
  value: axisValue
44
43
  } = axisData;
45
- const USED_AXIS_ID = isXaxis ? xAxisIds[0] : yAxisIds[0];
46
- const usedAxis = isXaxis ? xAxis[USED_AXIS_ID] : yAxis[USED_AXIS_ID];
44
+ const USED_AXIS_ID = xAxisHasData ? defaultXAxis.id : defaultYAxis.id;
45
+ const usedAxis = xAxisHasData ? defaultXAxis : defaultYAxis;
47
46
  const relevantSeries = Object.keys(series).filter(_isCartesian.isCartesianSeriesType).flatMap(seriesType => {
48
47
  const seriesOfType = series[seriesType];
49
48
  if (!seriesOfType) {
@@ -51,16 +50,16 @@ function useAxisTooltip() {
51
50
  }
52
51
  return seriesOfType.seriesOrder.map(seriesId => {
53
52
  const seriesToAdd = seriesOfType.series[seriesId];
54
- const providedXAxisId = seriesToAdd.xAxisId ?? seriesToAdd.xAxisKey;
55
- const providedYAxisId = seriesToAdd.yAxisId ?? seriesToAdd.yAxisKey;
56
- const axisKey = isXaxis ? providedXAxisId : providedYAxisId;
53
+ const providedXAxisId = seriesToAdd.xAxisId;
54
+ const providedYAxisId = seriesToAdd.yAxisId;
55
+ const axisKey = xAxisHasData ? providedXAxisId : providedYAxisId;
57
56
 
58
57
  // Test if the series uses the default axis
59
58
  if (axisKey === undefined || axisKey === USED_AXIS_ID) {
60
- const xAxisId = providedXAxisId ?? xAxisIds[0];
61
- const yAxisId = providedYAxisId ?? yAxisIds[0];
62
- const zAxisId = seriesToAdd.zAxisId ?? seriesToAdd.zAxisKey ?? zAxisIds[0];
63
- const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[xAxisId], yAxis[yAxisId], zAxisId && zAxis[zAxisId])(dataIndex) ?? '';
59
+ const xAxisId = providedXAxisId ?? defaultXAxis.id;
60
+ const yAxisId = providedYAxisId ?? defaultYAxis.id;
61
+ const zAxisId = 'zAxisId' in seriesToAdd ? seriesToAdd.zAxisId : zAxisIds[0];
62
+ const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[xAxisId], yAxis[yAxisId], zAxisId ? zAxis[zAxisId] : undefined)(dataIndex) ?? '';
64
63
  const value = seriesToAdd.data[dataIndex] ?? null;
65
64
  const formattedValue = seriesToAdd.valueFormatter(value, {
66
65
  dataIndex
@@ -82,7 +81,8 @@ function useAxisTooltip() {
82
81
  location: 'tooltip'
83
82
  });
84
83
  return {
85
- identifier: axis,
84
+ axisDirection: xAxisHasData ? 'x' : 'y',
85
+ dataIndex,
86
86
  seriesItems: relevantSeries,
87
87
  axisValue,
88
88
  axisFormattedValue
@@ -9,16 +9,17 @@ Object.defineProperty(exports, "__esModule", {
9
9
  exports.useItemTooltip = useItemTooltip;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _InteractionProvider = require("../context/InteractionProvider");
13
12
  var _useSeries = require("../hooks/useSeries");
14
13
  var _CartesianProvider = require("../context/CartesianProvider");
15
14
  var _ZAxisContextProvider = require("../context/ZAxisContextProvider");
16
15
  var _useColorProcessor = require("../context/PluginProvider/useColorProcessor");
17
16
  var _getLabel = require("../internals/getLabel");
17
+ var _InteractionSelectors = require("../context/InteractionSelectors");
18
+ var _useSelector = require("../internals/useSelector");
19
+ var _useStore = require("../internals/useStore");
18
20
  function useItemTooltip() {
19
- const {
20
- item
21
- } = React.useContext(_InteractionProvider.InteractionContext);
21
+ const store = (0, _useStore.useStore)();
22
+ const item = (0, _useSelector.useSelector)(store, _InteractionSelectors.selectorChartsInteractionItem);
22
23
  const series = (0, _useSeries.useSeries)();
23
24
  const {
24
25
  xAxis,
@@ -31,9 +32,9 @@ function useItemTooltip() {
31
32
  zAxisIds
32
33
  } = React.useContext(_ZAxisContextProvider.ZAxisContext);
33
34
  const colorProcessors = (0, _useColorProcessor.useColorProcessor)();
34
- const xAxisId = series.xAxisId ?? series.xAxisKey ?? xAxisIds[0];
35
- const yAxisId = series.yAxisId ?? series.yAxisKey ?? yAxisIds[0];
36
- const zAxisId = series.zAxisId ?? series.zAxisKey ?? zAxisIds[0];
35
+ const xAxisId = series.xAxisId ?? xAxisIds[0];
36
+ const yAxisId = series.yAxisId ?? yAxisIds[0];
37
+ const zAxisId = series.zAxisId ?? zAxisIds[0];
37
38
  if (!item || item.dataIndex === undefined) {
38
39
  return null;
39
40
  }
@@ -1,53 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.generateVirtualElement = generateVirtualElement;
9
- exports.getTooltipHasData = getTooltipHasData;
10
7
  exports.useMouseTracker = useMouseTracker;
8
+ exports.usePointerType = usePointerType;
11
9
  exports.utcFormatter = utcFormatter;
12
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
10
  var React = _interopRequireWildcard(require("react"));
14
11
  var _hooks = require("../hooks");
15
- function generateVirtualElement(mousePosition) {
16
- if (mousePosition === null) {
17
- return {
18
- getBoundingClientRect: () => ({
19
- width: 0,
20
- height: 0,
21
- x: 0,
22
- y: 0,
23
- top: 0,
24
- right: 0,
25
- bottom: 0,
26
- left: 0,
27
- toJSON: () => ''
28
- })
29
- };
30
- }
31
- const {
32
- x,
33
- y
34
- } = mousePosition;
35
- const boundingBox = {
36
- width: 0,
37
- height: 0,
38
- x,
39
- y,
40
- top: y,
41
- right: x,
42
- bottom: y,
43
- left: x
44
- };
45
- return {
46
- getBoundingClientRect: () => (0, _extends2.default)({}, boundingBox, {
47
- toJSON: () => JSON.stringify(boundingBox)
48
- })
49
- };
50
- }
12
+ /**
13
+ * @deprecated We recommend using vanilla JS to let popper track mouse position.
14
+ */
51
15
  function useMouseTracker() {
52
16
  const svgRef = (0, _hooks.useSvgRef)();
53
17
 
@@ -58,6 +22,7 @@ function useMouseTracker() {
58
22
  if (element === null) {
59
23
  return () => {};
60
24
  }
25
+ const controller = new AbortController();
61
26
  const handleOut = event => {
62
27
  if (event.pointerType !== 'mouse') {
63
28
  setMousePosition(null);
@@ -71,24 +36,52 @@ function useMouseTracker() {
71
36
  pointerType: event.pointerType
72
37
  });
73
38
  };
74
- element.addEventListener('pointerdown', handleMove);
75
- element.addEventListener('pointermove', handleMove);
76
- element.addEventListener('pointerup', handleOut);
39
+ element.addEventListener('pointerdown', handleMove, {
40
+ signal: controller.signal
41
+ });
42
+ element.addEventListener('pointermove', handleMove, {
43
+ signal: controller.signal
44
+ });
45
+ element.addEventListener('pointerup', handleOut, {
46
+ signal: controller.signal
47
+ });
77
48
  return () => {
78
- element.removeEventListener('pointerdown', handleMove);
79
- element.removeEventListener('pointermove', handleMove);
80
- element.removeEventListener('pointerup', handleOut);
49
+ // Calling `.abort()` removes ALL event listeners
50
+ // For more info, see https://kettanaito.com/blog/dont-sleep-on-abort-controller
51
+ controller.abort();
81
52
  };
82
53
  }, [svgRef]);
83
54
  return mousePosition;
84
55
  }
85
- function getTooltipHasData(trigger, displayedData) {
86
- if (trigger === 'item') {
87
- return displayedData !== null;
88
- }
89
- const hasAxisXData = displayedData.x !== null;
90
- const hasAxisYData = displayedData.y !== null;
91
- return hasAxisXData || hasAxisYData;
56
+ function usePointerType() {
57
+ const svgRef = (0, _hooks.useSvgRef)();
58
+
59
+ // Use a ref to avoid rerendering on every mousemove event.
60
+ const [pointerType, setPointerType] = React.useState(null);
61
+ React.useEffect(() => {
62
+ const element = svgRef.current;
63
+ if (element === null) {
64
+ return () => {};
65
+ }
66
+ const handleOut = event => {
67
+ if (event.pointerType !== 'mouse') {
68
+ setPointerType(null);
69
+ }
70
+ };
71
+ const handleEnter = event => {
72
+ setPointerType({
73
+ height: event.height,
74
+ pointerType: event.pointerType
75
+ });
76
+ };
77
+ element.addEventListener('pointerenter', handleEnter);
78
+ element.addEventListener('pointerup', handleOut);
79
+ return () => {
80
+ element.removeEventListener('pointerenter', handleEnter);
81
+ element.removeEventListener('pointerup', handleOut);
82
+ };
83
+ }, [svgRef]);
84
+ return pointerType;
92
85
  }
93
86
  function utcFormatter(v) {
94
87
  if (v instanceof Date) {