@mui/x-charts 6.0.0-alpha.8 → 6.18.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 (286) hide show
  1. package/BarChart/BarChart.d.ts +19 -5
  2. package/BarChart/BarChart.js +52 -13
  3. package/BarChart/BarElement.d.ts +1319 -4
  4. package/BarChart/BarElement.js +10 -10
  5. package/BarChart/BarPlot.d.ts +17 -1
  6. package/BarChart/BarPlot.js +152 -66
  7. package/BarChart/formatter.js +2 -3
  8. package/BarChart/legend.js +1 -2
  9. package/CHANGELOG.md +786 -48
  10. package/ChartContainer/index.js +7 -5
  11. package/ChartsAxis/ChartsAxis.d.ts +9 -0
  12. package/ChartsAxis/ChartsAxis.js +28 -2
  13. package/ChartsAxis/axisClasses.d.ts +1 -1
  14. package/ChartsAxis/axisClasses.js +1 -2
  15. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +21 -0
  16. package/ChartsAxisHighlight/ChartsAxisHighlight.js +61 -22
  17. package/ChartsClipPath/ChartsClipPath.d.ts +5 -0
  18. package/ChartsClipPath/ChartsClipPath.js +7 -2
  19. package/ChartsLegend/ChartsLegend.d.ts +44 -24
  20. package/ChartsLegend/ChartsLegend.js +192 -150
  21. package/ChartsLegend/chartsLegendClasses.js +1 -2
  22. package/ChartsLegend/utils.d.ts +1 -6
  23. package/ChartsSurface.d.ts +1 -1
  24. package/ChartsSurface.js +9 -18
  25. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -0
  26. package/ChartsTooltip/ChartsAxisTooltipContent.js +46 -32
  27. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +3 -2
  28. package/ChartsTooltip/ChartsItemTooltipContent.js +18 -9
  29. package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
  30. package/ChartsTooltip/ChartsTooltip.js +62 -18
  31. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -10
  32. package/ChartsTooltip/ChartsTooltipTable.js +22 -20
  33. package/ChartsTooltip/tooltipClasses.js +1 -2
  34. package/ChartsTooltip/utils.js +2 -2
  35. package/ChartsXAxis/ChartsXAxis.d.ts +9 -0
  36. package/ChartsXAxis/ChartsXAxis.js +161 -40
  37. package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
  38. package/ChartsYAxis/ChartsYAxis.js +86 -33
  39. package/LineChart/AreaElement.d.ts +12 -2
  40. package/LineChart/AreaElement.js +14 -6
  41. package/LineChart/AreaPlot.d.ts +11 -0
  42. package/LineChart/AreaPlot.js +27 -8
  43. package/LineChart/LineChart.d.ts +21 -3
  44. package/LineChart/LineChart.js +61 -14
  45. package/LineChart/LineElement.d.ts +12 -2
  46. package/LineChart/LineElement.js +14 -6
  47. package/LineChart/LineHighlightElement.d.ts +31 -0
  48. package/LineChart/LineHighlightElement.js +88 -0
  49. package/LineChart/LineHighlightPlot.d.ts +35 -0
  50. package/LineChart/LineHighlightPlot.js +110 -0
  51. package/LineChart/LinePlot.d.ts +10 -0
  52. package/LineChart/LinePlot.js +25 -12
  53. package/LineChart/MarkElement.d.ts +11 -1
  54. package/LineChart/MarkElement.js +15 -9
  55. package/LineChart/MarkPlot.d.ts +10 -0
  56. package/LineChart/MarkPlot.js +62 -15
  57. package/LineChart/formatter.js +5 -5
  58. package/LineChart/index.d.ts +2 -0
  59. package/LineChart/index.js +20 -0
  60. package/LineChart/legend.js +1 -2
  61. package/PieChart/PieArc.d.ts +12 -14
  62. package/PieChart/PieArc.js +28 -60
  63. package/PieChart/PieArcLabel.d.ts +9 -10
  64. package/PieChart/PieArcLabel.js +46 -38
  65. package/PieChart/PieArcLabelPlot.d.ts +28 -0
  66. package/PieChart/PieArcLabelPlot.js +99 -0
  67. package/PieChart/PieArcPlot.d.ts +35 -0
  68. package/PieChart/PieArcPlot.js +92 -0
  69. package/PieChart/PieChart.d.ts +19 -5
  70. package/PieChart/PieChart.js +61 -14
  71. package/PieChart/PiePlot.d.ts +15 -9
  72. package/PieChart/PiePlot.js +77 -55
  73. package/PieChart/dataTransform/transition.d.ts +4 -0
  74. package/PieChart/dataTransform/transition.js +136 -0
  75. package/PieChart/dataTransform/useTransformData.d.ts +15 -0
  76. package/PieChart/dataTransform/useTransformData.js +67 -0
  77. package/PieChart/formatter.js +1 -2
  78. package/PieChart/legend.js +1 -2
  79. package/README.md +8 -14
  80. package/ResponsiveChartContainer/index.js +7 -8
  81. package/ScatterChart/Scatter.d.ts +10 -0
  82. package/ScatterChart/Scatter.js +12 -2
  83. package/ScatterChart/ScatterChart.d.ts +16 -3
  84. package/ScatterChart/ScatterChart.js +43 -12
  85. package/ScatterChart/ScatterPlot.d.ts +10 -0
  86. package/ScatterChart/ScatterPlot.js +12 -2
  87. package/ScatterChart/formatter.js +1 -2
  88. package/ScatterChart/legend.js +1 -2
  89. package/SparkLineChart/SparkLineChart.d.ts +13 -3
  90. package/SparkLineChart/SparkLineChart.js +34 -18
  91. package/colorPalettes/colorPalettes.js +6 -12
  92. package/constants.js +5 -8
  93. package/context/CartesianContextProvider.d.ts +5 -0
  94. package/context/CartesianContextProvider.js +31 -16
  95. package/context/DrawingProvider.d.ts +7 -0
  96. package/context/DrawingProvider.js +12 -6
  97. package/context/HighlightProvider.js +3 -4
  98. package/context/InteractionProvider.js +3 -4
  99. package/context/SeriesContextProvider.js +3 -4
  100. package/esm/BarChart/BarChart.js +49 -9
  101. package/esm/BarChart/BarElement.js +7 -4
  102. package/esm/BarChart/BarPlot.js +152 -67
  103. package/esm/BarChart/formatter.js +1 -1
  104. package/esm/ChartContainer/index.js +3 -0
  105. package/esm/ChartsAxis/ChartsAxis.js +26 -0
  106. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  107. package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
  108. package/esm/ChartsLegend/ChartsLegend.js +188 -142
  109. package/esm/ChartsSurface.js +4 -12
  110. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  111. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  112. package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
  113. package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
  114. package/esm/ChartsXAxis/ChartsXAxis.js +158 -37
  115. package/esm/ChartsYAxis/ChartsYAxis.js +83 -30
  116. package/esm/LineChart/AreaElement.js +10 -0
  117. package/esm/LineChart/AreaPlot.js +26 -6
  118. package/esm/LineChart/LineChart.js +58 -10
  119. package/esm/LineChart/LineElement.js +10 -0
  120. package/esm/LineChart/LineHighlightElement.js +78 -0
  121. package/esm/LineChart/LineHighlightPlot.js +103 -0
  122. package/esm/LineChart/LinePlot.js +25 -14
  123. package/esm/LineChart/MarkElement.js +12 -5
  124. package/esm/LineChart/MarkPlot.js +60 -13
  125. package/esm/LineChart/formatter.js +7 -3
  126. package/esm/LineChart/index.js +3 -1
  127. package/esm/PieChart/PieArc.js +26 -58
  128. package/esm/PieChart/PieArcLabel.js +43 -34
  129. package/esm/PieChart/PieArcLabelPlot.js +92 -0
  130. package/esm/PieChart/PieArcPlot.js +84 -0
  131. package/esm/PieChart/PieChart.js +59 -12
  132. package/esm/PieChart/PiePlot.js +76 -57
  133. package/esm/PieChart/dataTransform/transition.js +130 -0
  134. package/esm/PieChart/dataTransform/useTransformData.js +59 -0
  135. package/esm/ResponsiveChartContainer/index.js +3 -3
  136. package/esm/ScatterChart/Scatter.js +10 -0
  137. package/esm/ScatterChart/ScatterChart.js +40 -8
  138. package/esm/ScatterChart/ScatterPlot.js +10 -0
  139. package/esm/SparkLineChart/SparkLineChart.js +32 -15
  140. package/esm/constants.js +1 -1
  141. package/esm/context/CartesianContextProvider.js +30 -14
  142. package/esm/context/DrawingProvider.js +8 -0
  143. package/esm/hooks/useChartDimensions.js +2 -0
  144. package/esm/hooks/useMounted.js +16 -0
  145. package/esm/hooks/useReducedMotion.js +27 -0
  146. package/esm/hooks/useTicks.js +15 -9
  147. package/esm/internals/components/AxisSharedComponents.js +15 -70
  148. package/esm/internals/components/ChartsText.js +77 -0
  149. package/esm/internals/domUtils.js +113 -0
  150. package/esm/internals/geometry.js +36 -0
  151. package/hooks/useAxisEvents.js +2 -2
  152. package/hooks/useChartDimensions.d.ts +2 -0
  153. package/hooks/useChartDimensions.js +5 -4
  154. package/hooks/useDrawingArea.js +2 -2
  155. package/hooks/useInteractionItemProps.js +2 -2
  156. package/hooks/useMounted.d.ts +1 -0
  157. package/hooks/useMounted.js +25 -0
  158. package/hooks/useReducedMotion.d.ts +8 -0
  159. package/hooks/useReducedMotion.js +33 -0
  160. package/hooks/useScale.d.ts +2 -2
  161. package/hooks/useScale.js +2 -2
  162. package/hooks/useTicks.d.ts +19 -11
  163. package/hooks/useTicks.js +19 -14
  164. package/index.js +1 -1
  165. package/internals/components/AxisSharedComponents.d.ts +0 -4
  166. package/internals/components/AxisSharedComponents.js +18 -78
  167. package/internals/components/ChartsText.d.ts +35 -0
  168. package/internals/components/ChartsText.js +87 -0
  169. package/internals/defaultizeColor.d.ts +8 -1
  170. package/internals/defaultizeValueFormatter.js +1 -2
  171. package/internals/domUtils.d.ts +13 -0
  172. package/internals/domUtils.js +122 -0
  173. package/internals/geometry.d.ts +9 -0
  174. package/internals/geometry.js +42 -0
  175. package/internals/stackSeries.js +2 -4
  176. package/legacy/BarChart/BarChart.js +49 -9
  177. package/legacy/BarChart/BarElement.js +6 -3
  178. package/legacy/BarChart/BarPlot.js +151 -63
  179. package/legacy/BarChart/formatter.js +1 -1
  180. package/legacy/ChartContainer/index.js +3 -0
  181. package/legacy/ChartsAxis/ChartsAxis.js +26 -0
  182. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
  183. package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
  184. package/legacy/ChartsLegend/ChartsLegend.js +203 -140
  185. package/legacy/ChartsSurface.js +3 -12
  186. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
  187. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  188. package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
  189. package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
  190. package/legacy/ChartsXAxis/ChartsXAxis.js +162 -39
  191. package/legacy/ChartsYAxis/ChartsYAxis.js +83 -30
  192. package/legacy/LineChart/AreaElement.js +10 -0
  193. package/legacy/LineChart/AreaPlot.js +31 -7
  194. package/legacy/LineChart/LineChart.js +58 -10
  195. package/legacy/LineChart/LineElement.js +10 -0
  196. package/legacy/LineChart/LineHighlightElement.js +77 -0
  197. package/legacy/LineChart/LineHighlightPlot.js +96 -0
  198. package/legacy/LineChart/LinePlot.js +29 -12
  199. package/legacy/LineChart/MarkElement.js +12 -5
  200. package/legacy/LineChart/MarkPlot.js +50 -5
  201. package/legacy/LineChart/formatter.js +7 -3
  202. package/legacy/LineChart/index.js +3 -1
  203. package/legacy/PieChart/PieArc.js +30 -62
  204. package/legacy/PieChart/PieArcLabel.js +48 -34
  205. package/legacy/PieChart/PieArcLabelPlot.js +93 -0
  206. package/legacy/PieChart/PieArcPlot.js +84 -0
  207. package/legacy/PieChart/PieChart.js +59 -12
  208. package/legacy/PieChart/PiePlot.js +76 -59
  209. package/legacy/PieChart/dataTransform/transition.js +142 -0
  210. package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
  211. package/legacy/ResponsiveChartContainer/index.js +3 -3
  212. package/legacy/ScatterChart/Scatter.js +10 -0
  213. package/legacy/ScatterChart/ScatterChart.js +40 -8
  214. package/legacy/ScatterChart/ScatterPlot.js +10 -0
  215. package/legacy/SparkLineChart/SparkLineChart.js +32 -13
  216. package/legacy/constants.js +1 -1
  217. package/legacy/context/CartesianContextProvider.js +30 -14
  218. package/legacy/context/DrawingProvider.js +8 -0
  219. package/legacy/hooks/useChartDimensions.js +2 -0
  220. package/legacy/hooks/useMounted.js +21 -0
  221. package/legacy/hooks/useReducedMotion.js +27 -0
  222. package/legacy/hooks/useTicks.js +16 -9
  223. package/legacy/index.js +1 -1
  224. package/legacy/internals/components/AxisSharedComponents.js +11 -65
  225. package/legacy/internals/components/ChartsText.js +79 -0
  226. package/legacy/internals/domUtils.js +121 -0
  227. package/legacy/internals/geometry.js +37 -0
  228. package/models/axis.d.ts +27 -9
  229. package/models/layout.d.ts +7 -6
  230. package/models/seriesType/line.d.ts +39 -1
  231. package/models/seriesType/pie.d.ts +5 -1
  232. package/modern/BarChart/BarChart.js +49 -9
  233. package/modern/BarChart/BarElement.js +7 -4
  234. package/modern/BarChart/BarPlot.js +149 -65
  235. package/modern/BarChart/formatter.js +1 -1
  236. package/modern/ChartContainer/index.js +3 -0
  237. package/modern/ChartsAxis/ChartsAxis.js +26 -0
  238. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  239. package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
  240. package/modern/ChartsLegend/ChartsLegend.js +188 -142
  241. package/modern/ChartsSurface.js +4 -12
  242. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  243. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  244. package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
  245. package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
  246. package/modern/ChartsXAxis/ChartsXAxis.js +158 -37
  247. package/modern/ChartsYAxis/ChartsYAxis.js +83 -30
  248. package/modern/LineChart/AreaElement.js +10 -0
  249. package/modern/LineChart/AreaPlot.js +25 -6
  250. package/modern/LineChart/LineChart.js +58 -10
  251. package/modern/LineChart/LineElement.js +10 -0
  252. package/modern/LineChart/LineHighlightElement.js +78 -0
  253. package/modern/LineChart/LineHighlightPlot.js +102 -0
  254. package/modern/LineChart/LinePlot.js +23 -10
  255. package/modern/LineChart/MarkElement.js +12 -5
  256. package/modern/LineChart/MarkPlot.js +60 -13
  257. package/modern/LineChart/formatter.js +4 -3
  258. package/modern/LineChart/index.js +3 -1
  259. package/modern/PieChart/PieArc.js +26 -57
  260. package/modern/PieChart/PieArcLabel.js +43 -34
  261. package/modern/PieChart/PieArcLabelPlot.js +90 -0
  262. package/modern/PieChart/PieArcPlot.js +83 -0
  263. package/modern/PieChart/PieChart.js +59 -12
  264. package/modern/PieChart/PiePlot.js +76 -55
  265. package/modern/PieChart/dataTransform/transition.js +130 -0
  266. package/modern/PieChart/dataTransform/useTransformData.js +58 -0
  267. package/modern/ResponsiveChartContainer/index.js +3 -3
  268. package/modern/ScatterChart/Scatter.js +10 -0
  269. package/modern/ScatterChart/ScatterChart.js +40 -8
  270. package/modern/ScatterChart/ScatterPlot.js +10 -0
  271. package/modern/SparkLineChart/SparkLineChart.js +32 -15
  272. package/modern/constants.js +1 -1
  273. package/modern/context/CartesianContextProvider.js +29 -13
  274. package/modern/context/DrawingProvider.js +8 -0
  275. package/modern/hooks/useChartDimensions.js +2 -0
  276. package/modern/hooks/useMounted.js +16 -0
  277. package/modern/hooks/useReducedMotion.js +27 -0
  278. package/modern/hooks/useTicks.js +15 -9
  279. package/modern/index.js +1 -1
  280. package/modern/internals/components/AxisSharedComponents.js +15 -70
  281. package/modern/internals/components/ChartsText.js +77 -0
  282. package/modern/internals/domUtils.js +113 -0
  283. package/modern/internals/geometry.js +36 -0
  284. package/package.json +9 -6
  285. package/themeAugmentation/components.d.ts +1 -0
  286. package/themeAugmentation/overrides.d.ts +2 -0
@@ -5,19 +5,24 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ChartsLegend = ChartsLegend;
8
- exports.ChartsSeriesLegendGroup = exports.ChartsLegendRoot = exports.ChartsLegendMark = exports.ChartsLegendLabel = void 0;
8
+ exports.ChartsLegendRoot = void 0;
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var React = _interopRequireWildcard(require("react"));
11
12
  var _utils = require("@mui/base/utils");
13
+ var _NoSsr = require("@mui/base/NoSsr");
12
14
  var _utils2 = require("@mui/utils");
13
15
  var _styles = require("@mui/material/styles");
14
16
  var _DrawingProvider = require("../context/DrawingProvider");
15
17
  var _utils3 = require("./utils");
16
18
  var _SeriesContextProvider = require("../context/SeriesContextProvider");
17
19
  var _chartsLegendClasses = require("./chartsLegendClasses");
20
+ var _ChartsText = require("../internals/components/ChartsText");
18
21
  var _jsxRuntime = require("react/jsx-runtime");
19
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ const _excluded = ["rotate", "dominantBaseline"],
23
+ _excluded2 = ["label"];
24
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
26
  const useUtilityClasses = ownerState => {
22
27
  const {
23
28
  classes,
@@ -31,171 +36,210 @@ const useUtilityClasses = ownerState => {
31
36
  };
32
37
  return (0, _utils2.unstable_composeClasses)(slots, _chartsLegendClasses.getChartsLegendUtilityClass, classes);
33
38
  };
34
- function getTranslePosition({
35
- position,
36
- drawingArea
37
- }) {
38
- let xValue;
39
- switch (position.horizontal) {
40
- case 'left':
41
- xValue = `calc(var(--ChartsLegend-rootOffsetX, 0px) + ${drawingArea.left}px - var(--ChartsLegend-rootWidth))`;
42
- break;
43
- case 'middle':
44
- xValue = `calc(var(--ChartsLegend-rootOffsetX, 0px) + ${drawingArea.left + drawingArea.width / 2}px - 0.5 * var(--ChartsLegend-rootWidth))`;
45
- break;
46
- default:
47
- xValue = `calc(var(--ChartsLegend-rootOffsetX, 0px) + ${drawingArea.left + drawingArea.width}px)`;
48
- break;
49
- }
50
- let yValue;
51
- switch (position.vertical) {
52
- case 'top':
53
- yValue = `calc(var(--ChartsLegend-rootOffsetY, 0px) + ${drawingArea.top}px - var(--ChartsLegend-rootHeight))`;
54
- break;
55
- case 'middle':
56
- yValue = `calc(var(--ChartsLegend-rootOffsetY, 0px) + ${drawingArea.top + drawingArea.height / 2}px - 0.5 * var(--ChartsLegend-rootHeight))`;
57
- break;
58
- default:
59
- yValue = `calc(var(--ChartsLegend-rootOffsetY, 0px) + ${drawingArea.top + drawingArea.height}px)`;
60
- break;
61
- }
62
- return {
63
- transform: `translate(${xValue}, ${yValue})`
64
- };
65
- }
66
- const ChartsLegendRoot = (0, _styles.styled)('g', {
39
+ const ChartsLegendRoot = exports.ChartsLegendRoot = (0, _styles.styled)('g', {
67
40
  name: 'MuiChartsLegend',
68
41
  slot: 'Root',
69
42
  overridesResolver: (props, styles) => styles.root
70
- })(({
71
- ownerState
72
- }) => {
73
- const {
74
- direction,
75
- drawingArea,
76
- offsetX,
77
- offsetY,
78
- seriesNumber,
79
- position
80
- } = ownerState;
81
- return (0, _extends2.default)({
82
- '--ChartsLegend-rootOffsetX': typeof offsetX === 'number' ? `${offsetX}px` : undefined,
83
- '--ChartsLegend-rootOffsetY': typeof offsetY === 'number' ? `${offsetY}px` : undefined,
84
- '--ChartsLegend-rootWidth': direction === 'row' ? `calc(var(--ChartsLegend-itemWidth) * ${seriesNumber} + var(--ChartsLegend-rootSpacing) * ${seriesNumber - 1} )` : 'var(--ChartsLegend-itemWidth)',
85
- '--ChartsLegend-rootHeight': direction === 'row' ? 'var(--ChartsLegend-itemMarkSize)' : `calc(var(--ChartsLegend-itemMarkSize) * ${seriesNumber} + var(--ChartsLegend-rootSpacing) * ${seriesNumber - 1} )`
86
- }, getTranslePosition({
87
- position,
88
- drawingArea,
89
- offsetX,
90
- offsetY
91
- }));
92
- });
93
- exports.ChartsLegendRoot = ChartsLegendRoot;
94
- const ChartsSeriesLegendGroup = (0, _styles.styled)('g', {
95
- name: 'MuiChartsLegend',
96
- slot: 'ChartsSeriesLegendGroup',
97
- overridesResolver: (props, styles) => styles.series
98
- })(({
99
- ownerState
100
- }) => {
101
- const {
102
- direction,
103
- seriesIndex
104
- } = ownerState;
105
- if (direction === 'row') {
106
- return {
107
- transform: `translate(calc(${seriesIndex} * (var(--ChartsLegend-itemWidth) + var(--ChartsLegend-rootSpacing))), 0)`
108
- };
109
- }
110
- return {
111
- transform: `translate(0, calc(${seriesIndex} * (var(--ChartsLegend-itemMarkSize) + var(--ChartsLegend-rootSpacing))))`
112
- };
113
- });
114
- exports.ChartsSeriesLegendGroup = ChartsSeriesLegendGroup;
115
- const ChartsLegendMark = (0, _styles.styled)('rect', {
116
- name: 'MuiChartsLegend',
117
- slot: 'Mark',
118
- overridesResolver: (props, styles) => styles.mark
119
- })(({
120
- ownerState
121
- }) => ({
122
- x: 0,
123
- y: 0,
124
- width: 'var(--ChartsLegend-itemMarkSize)',
125
- height: 'var(--ChartsLegend-itemMarkSize)',
126
- fill: ownerState.color
127
- }));
128
- exports.ChartsLegendMark = ChartsLegendMark;
129
- const ChartsLegendLabel = (0, _styles.styled)('text', {
130
- name: 'MuiChartsLegend',
131
- slot: 'Label',
132
- overridesResolver: (props, styles) => styles.label
133
- })(({
134
- theme
135
- }) => (0, _extends2.default)({}, theme.typography.body1, {
136
- color: 'inherit',
137
- transform: `translate(
138
- calc(var(--ChartsLegend-itemMarkSize) + var(--ChartsLegend-labelSpacing)),
139
- calc(0.5 * var(--ChartsLegend-itemMarkSize))
140
- )`,
141
- fill: theme.palette.text.primary,
142
- dominantBaseline: 'central'
143
- }));
144
- exports.ChartsLegendLabel = ChartsLegendLabel;
43
+ })({});
145
44
  const defaultProps = {
146
45
  position: {
147
46
  horizontal: 'middle',
148
47
  vertical: 'top'
149
48
  },
150
- direction: 'row',
151
- markSize: 20,
152
- itemWidth: 100,
153
- spacing: 2
49
+ direction: 'row'
50
+ };
51
+ /**
52
+ * Transforms number or partial padding object to a defaultized padding object.
53
+ */
54
+ const getStandardizedPadding = padding => {
55
+ if (typeof padding === 'number') {
56
+ return {
57
+ left: padding,
58
+ right: padding,
59
+ top: padding,
60
+ bottom: padding
61
+ };
62
+ }
63
+ return (0, _extends2.default)({
64
+ left: 0,
65
+ right: 0,
66
+ top: 0,
67
+ bottom: 0
68
+ }, padding);
154
69
  };
155
70
  function DefaultChartsLegend(props) {
156
71
  const {
157
72
  hidden,
158
73
  position,
159
74
  direction,
160
- offset,
161
- series,
162
75
  seriesToDisplay,
163
76
  drawingArea,
164
- classes
77
+ classes,
78
+ itemMarkWidth = 20,
79
+ itemMarkHeight = 20,
80
+ markGap = 5,
81
+ itemGap = 10,
82
+ padding: paddingProps = 10,
83
+ labelStyle: inLabelStyle
165
84
  } = props;
85
+ const theme = (0, _styles.useTheme)();
86
+ const labelStyle = React.useMemo(() => (0, _extends2.default)({}, theme.typography.subtitle1, {
87
+ color: 'inherit',
88
+ dominantBaseline: 'central',
89
+ textAnchor: 'start',
90
+ fill: (theme.vars || theme).palette.text.primary,
91
+ lineHeight: 1
92
+ }, inLabelStyle),
93
+ // To say to TS that the dominantBaseline and textAnchor are correct
94
+ [inLabelStyle, theme]);
95
+ const padding = React.useMemo(() => getStandardizedPadding(paddingProps), [paddingProps]);
96
+ const getItemSpace = React.useCallback((label, inStyle = {}) => {
97
+ const style = (0, _objectWithoutPropertiesLoose2.default)(inStyle, _excluded);
98
+ const linesSize = (0, _ChartsText.getWordsByLines)({
99
+ style,
100
+ needsComputation: true,
101
+ text: label
102
+ });
103
+ const innerSize = {
104
+ innerWidth: itemMarkWidth + markGap + Math.max(...linesSize.map(size => size.width)),
105
+ innerHeight: Math.max(itemMarkHeight, linesSize.length * linesSize[0].height)
106
+ };
107
+ return (0, _extends2.default)({}, innerSize, {
108
+ outerWidth: innerSize.innerWidth + itemGap,
109
+ outerHeight: innerSize.innerHeight + itemGap
110
+ });
111
+ }, [itemGap, itemMarkHeight, itemMarkWidth, markGap]);
112
+ const totalWidth = drawingArea.left + drawingArea.width + drawingArea.right;
113
+ const totalHeight = drawingArea.top + drawingArea.height + drawingArea.bottom;
114
+ const availableWidth = totalWidth - padding.left - padding.right;
115
+ const availableHeight = totalHeight - padding.top - padding.bottom;
116
+ const seriesWithPosition = React.useMemo(() => {
117
+ // Start at 0, 0. Will be modified later by padding and position.
118
+ let x = 0;
119
+ let y = 0;
120
+
121
+ // total values used to align legend later.
122
+ let totalWidthUsed = 0;
123
+ let totalHeightUsed = 0;
124
+ let rowIndex = 0;
125
+ const rowMaxHeight = [0];
126
+ const seriesWithRawPosition = seriesToDisplay.map(_ref => {
127
+ let {
128
+ label
129
+ } = _ref,
130
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded2);
131
+ const itemSpace = getItemSpace(label, labelStyle);
132
+ const rep = (0, _extends2.default)({}, other, {
133
+ label,
134
+ positionX: x,
135
+ positionY: y,
136
+ innerHeight: itemSpace.innerHeight,
137
+ innerWidth: itemSpace.innerWidth,
138
+ outerHeight: itemSpace.outerHeight,
139
+ outerWidth: itemSpace.outerWidth,
140
+ rowIndex
141
+ });
142
+ if (direction === 'row') {
143
+ if (x + itemSpace.innerWidth > availableWidth) {
144
+ // This legend item would create overflow along the x-axis, so we start a new row.
145
+ x = 0;
146
+ y += rowMaxHeight[rowIndex];
147
+ rowIndex += 1;
148
+ if (rowMaxHeight.length <= rowIndex) {
149
+ rowMaxHeight.push(0);
150
+ }
151
+ rep.positionX = x;
152
+ rep.positionY = y;
153
+ rep.rowIndex = rowIndex;
154
+ }
155
+ totalWidthUsed = Math.max(totalWidthUsed, x + itemSpace.outerWidth);
156
+ totalHeightUsed = Math.max(totalHeightUsed, y + itemSpace.outerHeight);
157
+ rowMaxHeight[rowIndex] = Math.max(rowMaxHeight[rowIndex], itemSpace.outerHeight);
158
+ x += itemSpace.outerWidth;
159
+ }
160
+ if (direction === 'column') {
161
+ if (y + itemSpace.innerHeight > availableHeight) {
162
+ // This legend item would create overflow along the y-axis, so we start a new column.
163
+ x = totalWidthUsed + itemGap;
164
+ y = 0;
165
+ rowIndex = 0;
166
+ rep.positionX = x;
167
+ rep.positionY = y;
168
+ rep.rowIndex = rowIndex;
169
+ }
170
+ if (rowMaxHeight.length <= rowIndex) {
171
+ rowMaxHeight.push(0);
172
+ }
173
+ totalWidthUsed = Math.max(totalWidthUsed, x + itemSpace.outerWidth);
174
+ totalHeightUsed = Math.max(totalHeightUsed, y + itemSpace.outerHeight);
175
+ rowIndex += 1;
176
+ y += itemSpace.outerHeight;
177
+ }
178
+ return rep;
179
+ });
180
+
181
+ // Move the legend according to padding and position
182
+ let gapX = 0;
183
+ let gapY = 0;
184
+ switch (position.horizontal) {
185
+ case 'left':
186
+ gapX = padding.left;
187
+ break;
188
+ case 'right':
189
+ gapX = totalWidth - padding.right - totalWidthUsed;
190
+ break;
191
+ default:
192
+ gapX = (totalWidth - totalWidthUsed) / 2;
193
+ break;
194
+ }
195
+ switch (position.vertical) {
196
+ case 'top':
197
+ gapY = padding.top;
198
+ break;
199
+ case 'bottom':
200
+ gapY = totalHeight - padding.bottom - totalHeightUsed;
201
+ break;
202
+ default:
203
+ gapY = (totalHeight - totalHeightUsed) / 2;
204
+ break;
205
+ }
206
+ return seriesWithRawPosition.map(item => (0, _extends2.default)({}, item, {
207
+ // Add the gap due to the position
208
+ positionX: item.positionX + gapX,
209
+ // Add the gap due to the position
210
+ positionY: item.positionY + gapY + (direction === 'row' ? rowMaxHeight[item.rowIndex] / 2 // Get the center of the entire row
211
+ : item.outerHeight / 2) // Get the center of the item
212
+ }));
213
+ }, [seriesToDisplay, position.horizontal, position.vertical, getItemSpace, labelStyle, direction, availableWidth, availableHeight, itemGap, padding.left, padding.right, padding.top, padding.bottom, totalWidth, totalHeight]);
166
214
  if (hidden) {
167
215
  return null;
168
216
  }
169
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(ChartsLegendRoot, {
170
- ownerState: {
171
- direction,
172
- offsetX: offset?.x,
173
- offsetY: offset?.y,
174
- seriesNumber: seriesToDisplay.length,
175
- position,
176
- drawingArea
177
- },
178
- className: classes.root,
179
- children: seriesToDisplay.map(({
180
- id,
181
- label,
182
- color
183
- }, seriesIndex) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(ChartsSeriesLegendGroup, {
184
- ownerState: (0, _extends2.default)({
185
- direction,
186
- seriesIndex
187
- }, series),
188
- className: classes.series,
189
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ChartsLegendMark, {
190
- ownerState: {
191
- color
192
- },
193
- className: classes.mark
194
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ChartsLegendLabel, {
195
- className: classes.label,
196
- children: label
197
- })]
198
- }, id))
217
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NoSsr.NoSsr, {
218
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ChartsLegendRoot, {
219
+ className: classes.root,
220
+ children: seriesWithPosition.map(({
221
+ id,
222
+ label,
223
+ color,
224
+ positionX,
225
+ positionY
226
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", {
227
+ className: classes.series,
228
+ transform: `translate(${positionX} ${positionY})`,
229
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("rect", {
230
+ className: classes.mark,
231
+ y: -itemMarkHeight / 2,
232
+ width: itemMarkWidth,
233
+ height: itemMarkHeight,
234
+ fill: color
235
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsText.ChartsText, {
236
+ style: labelStyle,
237
+ text: label,
238
+ x: itemMarkWidth + markGap,
239
+ y: 0
240
+ })]
241
+ }, id))
242
+ })
199
243
  });
200
244
  }
201
245
  function ChartsLegend(inProps) {
@@ -206,7 +250,6 @@ function ChartsLegend(inProps) {
206
250
  const {
207
251
  position,
208
252
  direction,
209
- offset,
210
253
  hidden,
211
254
  slots,
212
255
  slotProps
@@ -225,7 +268,6 @@ function ChartsLegend(inProps) {
225
268
  additionalProps: {
226
269
  position,
227
270
  direction,
228
- offset,
229
271
  classes,
230
272
  drawingArea,
231
273
  series,
@@ -9,5 +9,4 @@ var _utils = require("@mui/utils");
9
9
  function getChartsLegendUtilityClass(slot) {
10
10
  return (0, _utils.unstable_generateUtilityClass)('MuiChartsLegend', slot);
11
11
  }
12
- const legendClasses = (0, _utils.unstable_generateUtilityClasses)('MuiChartsLegend', ['root', 'series', 'mark', 'label', 'column', 'row']);
13
- exports.legendClasses = legendClasses;
12
+ const legendClasses = exports.legendClasses = (0, _utils.unstable_generateUtilityClasses)('MuiChartsLegend', ['root', 'series', 'mark', 'label', 'column', 'row']);
@@ -5,10 +5,5 @@ export type AnchorPosition = {
5
5
  horizontal: AnchorX;
6
6
  vertical: AnchorY;
7
7
  };
8
- export type SizingParams = {
9
- direction?: 'row' | 'column';
10
- markSize?: number;
11
- itemWidth?: number;
12
- spacing?: number;
13
- };
8
+ export type Direction = 'row' | 'column';
14
9
  export declare function getSeriesToDisplay(series: FormattedSeries): import("../models/seriesType/config").LegendParams[];
@@ -1,4 +1,4 @@
1
- import { SxProps, Theme } from '@mui/system';
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
2
  import * as React from 'react';
3
3
  type ViewBox = {
4
4
  x?: number;
package/ChartsSurface.js CHANGED
@@ -7,25 +7,24 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.ChartsSurface = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
- var _system = require("@mui/system");
10
+ var _styles = require("@mui/material/styles");
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _useAxisEvents = require("./hooks/useAxisEvents");
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
- const _excluded = ["children", "width", "height", "viewBox", "disableAxisListener", "className", "sx"];
15
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
- const ChartChartsSurfaceStyles = (0, _system.styled)('svg', {
14
+ const _excluded = ["children", "width", "height", "viewBox", "disableAxisListener", "className"];
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ const ChartChartsSurfaceStyles = (0, _styles.styled)('svg', {
18
18
  name: 'MuiChartsSurface',
19
19
  slot: 'Root'
20
20
  })(() => ({}));
21
- const ChartsSurface = /*#__PURE__*/React.forwardRef(function ChartsSurface(props, ref) {
21
+ const ChartsSurface = exports.ChartsSurface = /*#__PURE__*/React.forwardRef(function ChartsSurface(props, ref) {
22
22
  const {
23
23
  children,
24
24
  width,
25
25
  height,
26
26
  viewBox,
27
- disableAxisListener = false,
28
- sx
27
+ disableAxisListener = false
29
28
  } = props,
30
29
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
31
30
  const svgView = (0, _extends2.default)({
@@ -39,14 +38,7 @@ const ChartsSurface = /*#__PURE__*/React.forwardRef(function ChartsSurface(props
39
38
  width: width,
40
39
  height: height,
41
40
  viewBox: `${svgView.x} ${svgView.y} ${svgView.width} ${svgView.height}`,
42
- ref: ref,
43
- sx: [{
44
- '--ChartsLegend-itemWidth': '100px',
45
- '--ChartsLegend-itemMarkSize': '20px',
46
- '--ChartsLegend-rootSpacing': '5px',
47
- '--ChartsLegend-labelSpacing': '5px',
48
- '--ChartsLegend-rootOffsetY': '-20px'
49
- }, ...(Array.isArray(sx) ? sx : [sx])]
41
+ ref: ref
50
42
  }, other, {
51
43
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("title", {
52
44
  children: props.title
@@ -54,5 +46,4 @@ const ChartsSurface = /*#__PURE__*/React.forwardRef(function ChartsSurface(props
54
46
  children: props.desc
55
47
  }), children]
56
48
  }));
57
- });
58
- exports.ChartsSurface = ChartsSurface;
49
+ });
@@ -35,6 +35,7 @@ export declare function DefaultChartsAxisContent(props: ChartsAxisContentProps):
35
35
  export declare function ChartsAxisTooltipContent(props: {
36
36
  axisData: AxisInteractionData;
37
37
  content?: React.ElementType<ChartsAxisContentProps>;
38
+ contentProps?: Partial<ChartsAxisContentProps>;
38
39
  sx?: SxProps<Theme>;
39
40
  classes: ChartsAxisContentProps['classes'];
40
41
  }): React.JSX.Element;
@@ -6,14 +6,16 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.ChartsAxisTooltipContent = ChartsAxisTooltipContent;
8
8
  exports.DefaultChartsAxisContent = DefaultChartsAxisContent;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var React = _interopRequireWildcard(require("react"));
10
11
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
12
+ var _utils = require("@mui/base/utils");
11
13
  var _SeriesContextProvider = require("../context/SeriesContextProvider");
12
14
  var _CartesianContextProvider = require("../context/CartesianContextProvider");
13
15
  var _ChartsTooltipTable = require("./ChartsTooltipTable");
14
16
  var _jsxRuntime = require("react/jsx-runtime");
15
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
19
  function DefaultChartsAxisContent(props) {
18
20
  const {
19
21
  series,
@@ -29,7 +31,6 @@ function DefaultChartsAxisContent(props) {
29
31
  const axisFormatter = axis.valueFormatter ?? (v => v.toLocaleString());
30
32
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipPaper, {
31
33
  sx: sx,
32
- variant: "outlined",
33
34
  className: classes.root,
34
35
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsTooltipTable.ChartsTooltipTable, {
35
36
  children: [axisValue != null && !axis.hideTooltip && /*#__PURE__*/(0, _jsxRuntime.jsx)("thead", {
@@ -48,27 +49,33 @@ function DefaultChartsAxisContent(props) {
48
49
  label,
49
50
  valueFormatter,
50
51
  data
51
- }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsTooltipTable.ChartsTooltipRow, {
52
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipCell, {
53
- className: classes.markCell,
54
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipMark, {
55
- ownerState: {
56
- color
57
- },
58
- boxShadow: 1
59
- })
60
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipCell, {
61
- className: classes.labelCell,
62
- children: label ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
63
- children: label
64
- }) : null
65
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipCell, {
66
- className: classes.valueCell,
67
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
68
- children: valueFormatter(data[dataIndex])
69
- })
70
- })]
71
- }, id))
52
+ }) => {
53
+ const formattedValue = valueFormatter(data[dataIndex]);
54
+ if (formattedValue == null) {
55
+ return null;
56
+ }
57
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsTooltipTable.ChartsTooltipRow, {
58
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipCell, {
59
+ className: classes.markCell,
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipMark, {
61
+ ownerState: {
62
+ color
63
+ },
64
+ boxShadow: 1
65
+ })
66
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipCell, {
67
+ className: classes.labelCell,
68
+ children: label ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
69
+ children: label
70
+ }) : null
71
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipCell, {
72
+ className: classes.valueCell,
73
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
74
+ children: formattedValue
75
+ })
76
+ })]
77
+ }, id);
78
+ })
72
79
  })]
73
80
  })
74
81
  });
@@ -76,6 +83,7 @@ function DefaultChartsAxisContent(props) {
76
83
  function ChartsAxisTooltipContent(props) {
77
84
  const {
78
85
  content,
86
+ contentProps,
79
87
  axisData,
80
88
  sx,
81
89
  classes
@@ -108,13 +116,19 @@ function ChartsAxisTooltipContent(props) {
108
116
  return isXaxis ? xAxis[USED_AXIS_ID] : yAxis[USED_AXIS_ID];
109
117
  }, [USED_AXIS_ID, isXaxis, xAxis, yAxis]);
110
118
  const Content = content ?? DefaultChartsAxisContent;
111
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Content, {
112
- axisData: axisData,
113
- series: relevantSeries,
114
- axis: relevantAxis,
115
- dataIndex: dataIndex,
116
- axisValue: axisValue,
117
- sx: sx,
118
- classes: classes
119
+ const chartTooltipContentProps = (0, _utils.useSlotProps)({
120
+ elementType: Content,
121
+ externalSlotProps: contentProps,
122
+ additionalProps: {
123
+ axisData,
124
+ series: relevantSeries,
125
+ axis: relevantAxis,
126
+ dataIndex,
127
+ axisValue,
128
+ sx,
129
+ classes
130
+ },
131
+ ownerState: {}
119
132
  });
133
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Content, (0, _extends2.default)({}, chartTooltipContentProps));
120
134
  }
@@ -3,7 +3,7 @@ import { SxProps, Theme } from '@mui/material/styles';
3
3
  import { ItemInteractionData } from '../context/InteractionProvider';
4
4
  import { ChartSeriesDefaultized, ChartSeriesType } from '../models/seriesType/config';
5
5
  import { ChartsTooltipClasses } from './tooltipClasses';
6
- export type ChartsItemContentProps<T extends ChartSeriesType> = {
6
+ export type ChartsItemContentProps<T extends ChartSeriesType = ChartSeriesType> = {
7
7
  /**
8
8
  * The data used to identify the triggered item.
9
9
  */
@@ -18,10 +18,11 @@ export type ChartsItemContentProps<T extends ChartSeriesType> = {
18
18
  classes: ChartsTooltipClasses;
19
19
  sx?: SxProps<Theme>;
20
20
  };
21
- export declare function DefaultChartsItemContent<T extends ChartSeriesType>(props: ChartsItemContentProps<T>): React.JSX.Element | null;
21
+ export declare function DefaultChartsItemContent<T extends ChartSeriesType = ChartSeriesType>(props: ChartsItemContentProps<T>): React.JSX.Element | null;
22
22
  export declare function ChartsItemTooltipContent<T extends ChartSeriesType>(props: {
23
23
  itemData: ItemInteractionData<T>;
24
24
  content?: React.ElementType<ChartsItemContentProps<T>>;
25
+ contentProps?: Partial<ChartsItemContentProps<T>>;
25
26
  sx?: SxProps<Theme>;
26
27
  classes: ChartsItemContentProps<T>['classes'];
27
28
  }): React.JSX.Element;