@mui/x-charts 7.9.0 → 7.11.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 (222) hide show
  1. package/BarChart/BarChart.js +2 -2
  2. package/BarChart/formatter.js +1 -1
  3. package/BarChart/useBarChartProps.js +38 -33
  4. package/CHANGELOG.md +159 -0
  5. package/ChartContainer/ChartContainer.d.ts +28 -2
  6. package/ChartContainer/ChartContainer.js +25 -66
  7. package/ChartContainer/useChartContainerHooks.d.ts +1 -1
  8. package/ChartContainer/useChartContainerHooks.js +2 -2
  9. package/ChartContainer/useChartContainerProps.d.ts +86 -0
  10. package/ChartContainer/useChartContainerProps.js +95 -0
  11. package/ChartContainer/useDefaultizeAxis.d.ts +36 -0
  12. package/ChartContainer/useDefaultizeAxis.js +29 -0
  13. package/ChartsLegend/ChartsLegend.d.ts +3 -12
  14. package/ChartsLegend/ContinuousColorLegend.d.ts +65 -0
  15. package/ChartsLegend/ContinuousColorLegend.js +398 -0
  16. package/ChartsLegend/DefaultChartsLegend.d.ts +7 -50
  17. package/ChartsLegend/DefaultChartsLegend.js +13 -198
  18. package/ChartsLegend/LegendPerItem.d.ts +61 -0
  19. package/ChartsLegend/LegendPerItem.js +151 -0
  20. package/ChartsLegend/PiecewiseColorLegend.d.ts +26 -0
  21. package/ChartsLegend/PiecewiseColorLegend.js +169 -0
  22. package/ChartsLegend/chartsLegend.types.d.ts +31 -0
  23. package/ChartsLegend/chartsLegend.types.js +5 -0
  24. package/ChartsLegend/index.d.ts +2 -0
  25. package/ChartsLegend/index.js +22 -0
  26. package/ChartsLegend/legend.types.d.ts +62 -0
  27. package/ChartsLegend/legend.types.js +5 -0
  28. package/ChartsLegend/legendItemsPlacement.d.ts +3 -0
  29. package/ChartsLegend/legendItemsPlacement.js +79 -0
  30. package/ChartsLegend/useAxis.d.ts +7 -0
  31. package/ChartsLegend/useAxis.js +47 -0
  32. package/ChartsLegend/utils.d.ts +1 -8
  33. package/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
  34. package/ChartsSurface.js +3 -1
  35. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +26 -18
  36. package/ChartsXAxis/ChartsXAxis.js +1 -1
  37. package/ChartsYAxis/ChartsYAxis.js +15 -3
  38. package/Gauge/Gauge.d.ts +1 -4
  39. package/Gauge/Gauge.js +9 -6
  40. package/Gauge/GaugeContainer.js +8 -4
  41. package/Gauge/GaugeProvider.js +9 -9
  42. package/LineChart/AnimatedArea.js +2 -2
  43. package/LineChart/AnimatedLine.js +2 -2
  44. package/LineChart/AreaPlot.js +7 -1
  45. package/LineChart/LineChart.js +2 -2
  46. package/LineChart/LineHighlightPlot.js +8 -0
  47. package/LineChart/MarkElement.js +2 -2
  48. package/LineChart/MarkPlot.js +4 -20
  49. package/LineChart/extremums.js +1 -1
  50. package/LineChart/formatter.js +1 -1
  51. package/LineChart/useLineChartProps.js +38 -33
  52. package/PieChart/PieChart.d.ts +1 -4
  53. package/PieChart/PieChart.js +40 -34
  54. package/PieChart/PiePlot.js +6 -6
  55. package/PieChart/getPieCoordinates.js +3 -3
  56. package/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -20
  57. package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +5 -1
  58. package/ResponsiveChartContainer/useChartContainerDimensions.js +6 -2
  59. package/ResponsiveChartContainer/useResponsiveChartContainerProps.d.ts +20 -0
  60. package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +73 -0
  61. package/ScatterChart/Scatter.js +6 -9
  62. package/ScatterChart/useScatterChartProps.js +35 -30
  63. package/SparkLineChart/SparkLineChart.js +27 -22
  64. package/context/CartesianProvider/CartesianProvider.d.ts +2 -3
  65. package/context/CartesianProvider/CartesianProvider.js +18 -7
  66. package/context/CartesianProvider/computeValue.d.ts +32 -9
  67. package/context/CartesianProvider/computeValue.js +20 -16
  68. package/context/CartesianProvider/defaultizeAxis.d.ts +36 -0
  69. package/context/CartesianProvider/defaultizeAxis.js +21 -0
  70. package/context/CartesianProvider/index.d.ts +0 -1
  71. package/context/CartesianProvider/index.js +1 -3
  72. package/context/CartesianProvider/normalizeAxis.d.ts +1 -1
  73. package/context/CartesianProvider/normalizeAxis.js +1 -1
  74. package/context/DrawingProvider.d.ts +11 -0
  75. package/context/DrawingProvider.js +9 -2
  76. package/context/HighlightedProvider/HighlightedProvider.js +2 -2
  77. package/esm/BarChart/BarChart.js +2 -2
  78. package/esm/BarChart/formatter.js +1 -1
  79. package/esm/BarChart/useBarChartProps.js +38 -33
  80. package/esm/ChartContainer/ChartContainer.js +25 -66
  81. package/esm/ChartContainer/useChartContainerHooks.js +2 -2
  82. package/esm/ChartContainer/useChartContainerProps.js +87 -0
  83. package/esm/ChartContainer/useDefaultizeAxis.js +19 -0
  84. package/esm/ChartsLegend/ContinuousColorLegend.js +390 -0
  85. package/esm/ChartsLegend/DefaultChartsLegend.js +14 -198
  86. package/esm/ChartsLegend/LegendPerItem.js +141 -0
  87. package/esm/ChartsLegend/PiecewiseColorLegend.js +161 -0
  88. package/esm/ChartsLegend/chartsLegend.types.js +1 -0
  89. package/esm/ChartsLegend/index.js +2 -0
  90. package/esm/ChartsLegend/legend.types.js +1 -0
  91. package/esm/ChartsLegend/legendItemsPlacement.js +72 -0
  92. package/esm/ChartsLegend/useAxis.js +39 -0
  93. package/esm/ChartsSurface.js +3 -1
  94. package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +26 -18
  95. package/esm/ChartsXAxis/ChartsXAxis.js +1 -1
  96. package/esm/ChartsYAxis/ChartsYAxis.js +15 -3
  97. package/esm/Gauge/Gauge.js +8 -5
  98. package/esm/Gauge/GaugeContainer.js +8 -4
  99. package/esm/Gauge/GaugeProvider.js +1 -1
  100. package/esm/LineChart/AnimatedArea.js +1 -1
  101. package/esm/LineChart/AnimatedLine.js +1 -1
  102. package/esm/LineChart/AreaPlot.js +7 -1
  103. package/esm/LineChart/LineChart.js +2 -2
  104. package/esm/LineChart/LineHighlightPlot.js +8 -0
  105. package/esm/LineChart/MarkElement.js +1 -1
  106. package/esm/LineChart/MarkPlot.js +3 -19
  107. package/esm/LineChart/extremums.js +1 -1
  108. package/esm/LineChart/formatter.js +1 -1
  109. package/esm/LineChart/useLineChartProps.js +38 -33
  110. package/esm/PieChart/PieChart.js +39 -33
  111. package/esm/PieChart/PiePlot.js +1 -1
  112. package/esm/PieChart/getPieCoordinates.js +1 -1
  113. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -20
  114. package/esm/ResponsiveChartContainer/useChartContainerDimensions.js +6 -2
  115. package/esm/ResponsiveChartContainer/useResponsiveChartContainerProps.js +65 -0
  116. package/esm/ScatterChart/Scatter.js +6 -9
  117. package/esm/ScatterChart/useScatterChartProps.js +35 -30
  118. package/esm/SparkLineChart/SparkLineChart.js +27 -22
  119. package/esm/context/CartesianProvider/CartesianProvider.js +18 -7
  120. package/esm/context/CartesianProvider/computeValue.js +20 -16
  121. package/esm/context/CartesianProvider/defaultizeAxis.js +13 -0
  122. package/esm/context/CartesianProvider/index.js +1 -3
  123. package/esm/context/CartesianProvider/normalizeAxis.js +1 -1
  124. package/esm/context/DrawingProvider.js +9 -2
  125. package/esm/context/HighlightedProvider/HighlightedProvider.js +2 -2
  126. package/esm/hooks/useAxisEvents.js +3 -10
  127. package/esm/hooks/useDrawingArea.js +5 -3
  128. package/esm/hooks/useReducedMotion.js +4 -2
  129. package/esm/internals/cleanId.js +6 -0
  130. package/esm/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +3 -2
  131. package/esm/internals/{utils.js → getPercentageValue.js} +1 -13
  132. package/esm/internals/getSymbol.js +5 -0
  133. package/esm/internals/index.js +3 -1
  134. package/esm/internals/isDefined.js +3 -0
  135. package/esm/internals/notNull.js +3 -0
  136. package/esm/internals/ts-generic.js +1 -0
  137. package/hooks/useAxisEvents.js +3 -10
  138. package/hooks/useDrawingArea.js +5 -3
  139. package/hooks/useReducedMotion.js +4 -2
  140. package/index.js +1 -1
  141. package/internals/cleanId.d.ts +4 -0
  142. package/internals/cleanId.js +12 -0
  143. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.d.ts +6 -0
  144. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +3 -2
  145. package/internals/getPercentageValue.d.ts +7 -0
  146. package/internals/{utils.js → getPercentageValue.js} +1 -15
  147. package/internals/getSymbol.d.ts +2 -0
  148. package/internals/getSymbol.js +11 -0
  149. package/internals/index.d.ts +3 -1
  150. package/internals/index.js +25 -5
  151. package/internals/isDefined.d.ts +1 -0
  152. package/internals/isDefined.js +9 -0
  153. package/internals/notNull.d.ts +1 -0
  154. package/internals/notNull.js +9 -0
  155. package/internals/ts-generic.d.ts +5 -0
  156. package/internals/ts-generic.js +5 -0
  157. package/models/axis.d.ts +5 -2
  158. package/models/helpers.d.ts +1 -0
  159. package/models/seriesType/config.d.ts +2 -16
  160. package/modern/BarChart/BarChart.js +2 -2
  161. package/modern/BarChart/formatter.js +1 -1
  162. package/modern/BarChart/useBarChartProps.js +38 -33
  163. package/modern/ChartContainer/ChartContainer.js +25 -66
  164. package/modern/ChartContainer/useChartContainerHooks.js +2 -2
  165. package/modern/ChartContainer/useChartContainerProps.js +87 -0
  166. package/modern/ChartContainer/useDefaultizeAxis.js +19 -0
  167. package/modern/ChartsLegend/ContinuousColorLegend.js +390 -0
  168. package/modern/ChartsLegend/DefaultChartsLegend.js +14 -198
  169. package/modern/ChartsLegend/LegendPerItem.js +141 -0
  170. package/modern/ChartsLegend/PiecewiseColorLegend.js +161 -0
  171. package/modern/ChartsLegend/chartsLegend.types.js +1 -0
  172. package/modern/ChartsLegend/index.js +2 -0
  173. package/modern/ChartsLegend/legend.types.js +1 -0
  174. package/modern/ChartsLegend/legendItemsPlacement.js +72 -0
  175. package/modern/ChartsLegend/useAxis.js +39 -0
  176. package/modern/ChartsSurface.js +3 -1
  177. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +26 -18
  178. package/modern/ChartsXAxis/ChartsXAxis.js +1 -1
  179. package/modern/ChartsYAxis/ChartsYAxis.js +15 -3
  180. package/modern/Gauge/Gauge.js +8 -5
  181. package/modern/Gauge/GaugeContainer.js +8 -4
  182. package/modern/Gauge/GaugeProvider.js +1 -1
  183. package/modern/LineChart/AnimatedArea.js +1 -1
  184. package/modern/LineChart/AnimatedLine.js +1 -1
  185. package/modern/LineChart/AreaPlot.js +7 -1
  186. package/modern/LineChart/LineChart.js +2 -2
  187. package/modern/LineChart/LineHighlightPlot.js +8 -0
  188. package/modern/LineChart/MarkElement.js +1 -1
  189. package/modern/LineChart/MarkPlot.js +3 -19
  190. package/modern/LineChart/extremums.js +1 -1
  191. package/modern/LineChart/formatter.js +1 -1
  192. package/modern/LineChart/useLineChartProps.js +38 -33
  193. package/modern/PieChart/PieChart.js +39 -33
  194. package/modern/PieChart/PiePlot.js +1 -1
  195. package/modern/PieChart/getPieCoordinates.js +1 -1
  196. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -20
  197. package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +6 -2
  198. package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +65 -0
  199. package/modern/ScatterChart/Scatter.js +6 -9
  200. package/modern/ScatterChart/useScatterChartProps.js +35 -30
  201. package/modern/SparkLineChart/SparkLineChart.js +27 -22
  202. package/modern/context/CartesianProvider/CartesianProvider.js +18 -7
  203. package/modern/context/CartesianProvider/computeValue.js +20 -16
  204. package/modern/context/CartesianProvider/defaultizeAxis.js +13 -0
  205. package/modern/context/CartesianProvider/index.js +1 -3
  206. package/modern/context/CartesianProvider/normalizeAxis.js +1 -1
  207. package/modern/context/DrawingProvider.js +9 -2
  208. package/modern/context/HighlightedProvider/HighlightedProvider.js +2 -2
  209. package/modern/hooks/useAxisEvents.js +3 -10
  210. package/modern/hooks/useDrawingArea.js +5 -3
  211. package/modern/hooks/useReducedMotion.js +4 -2
  212. package/modern/index.js +1 -1
  213. package/modern/internals/cleanId.js +6 -0
  214. package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +3 -2
  215. package/modern/internals/{utils.js → getPercentageValue.js} +1 -13
  216. package/modern/internals/getSymbol.js +5 -0
  217. package/modern/internals/index.js +3 -1
  218. package/modern/internals/isDefined.js +3 -0
  219. package/modern/internals/notNull.js +3 -0
  220. package/modern/internals/ts-generic.js +1 -0
  221. package/package.json +4 -4
  222. package/internals/utils.d.ts +0 -18
@@ -57,8 +57,8 @@ const LineChart = exports.LineChart = /*#__PURE__*/React.forwardRef(function Lin
57
57
  ref: ref
58
58
  }, chartContainerProps, {
59
59
  children: [props.onAxisClick && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsOnAxisClickHandler.ChartsOnAxisClickHandler, (0, _extends2.default)({}, axisClickHandlerProps)), props.grid && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsGrid.ChartsGrid, (0, _extends2.default)({}, gridProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", (0, _extends2.default)({}, clipPathGroupProps, {
60
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_AreaPlot.AreaPlot, (0, _extends2.default)({}, areaPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinePlot.LinePlot, (0, _extends2.default)({}, linePlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsOverlay.ChartsOverlay, (0, _extends2.default)({}, overlayProps))]
61
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, (0, _extends2.default)({}, chartsAxisProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlightProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MarkPlot.MarkPlot, (0, _extends2.default)({}, markPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LineHighlightPlot.LineHighlightPlot, (0, _extends2.default)({}, lineHighlightPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legendProps)), !props.loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltip, (0, _extends2.default)({}, tooltipProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
60
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_AreaPlot.AreaPlot, (0, _extends2.default)({}, areaPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinePlot.LinePlot, (0, _extends2.default)({}, linePlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsOverlay.ChartsOverlay, (0, _extends2.default)({}, overlayProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlightProps))]
61
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, (0, _extends2.default)({}, chartsAxisProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MarkPlot.MarkPlot, (0, _extends2.default)({}, markPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LineHighlightPlot.LineHighlightPlot, (0, _extends2.default)({}, lineHighlightPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legendProps)), !props.loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltip, (0, _extends2.default)({}, tooltipProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
62
62
  }));
63
63
  });
64
64
  process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
@@ -16,6 +16,7 @@ var _InteractionProvider = require("../context/InteractionProvider");
16
16
  var _constants = require("../constants");
17
17
  var _getColor = _interopRequireDefault(require("./getColor"));
18
18
  var _useSeries = require("../hooks/useSeries");
19
+ var _useDrawingArea = require("../hooks/useDrawingArea");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
21
  const _excluded = ["slots", "slotProps"];
21
22
  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); }
@@ -38,6 +39,7 @@ function LineHighlightPlot(props) {
38
39
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
39
40
  const seriesData = (0, _useSeries.useLineSeries)();
40
41
  const axisData = (0, _CartesianProvider.useCartesianContext)();
42
+ const drawingArea = (0, _useDrawingArea.useDrawingArea)();
41
43
  const {
42
44
  axis
43
45
  } = React.useContext(_InteractionProvider.InteractionContext);
@@ -85,6 +87,12 @@ function LineHighlightPlot(props) {
85
87
  const x = xScale(xData[highlightedIndex]);
86
88
  const y = yScale(stackedData[highlightedIndex][1]); // This should not be undefined since y should not be a band scale
87
89
 
90
+ if (!drawingArea.isPointInside({
91
+ x,
92
+ y
93
+ })) {
94
+ return null;
95
+ }
88
96
  const colorGetter = (0, _getColor.default)(series[seriesId], xAxis[xAxisKey], yAxis[yAxisKey]);
89
97
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Element, (0, _extends2.default)({
90
98
  id: seriesId,
@@ -17,7 +17,7 @@ var _styles = require("@mui/material/styles");
17
17
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
18
18
  var _d3Shape = require("d3-shape");
19
19
  var _web = require("@react-spring/web");
20
- var _utils = require("../internals/utils");
20
+ var _getSymbol = require("../internals/getSymbol");
21
21
  var _InteractionProvider = require("../context/InteractionProvider");
22
22
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
23
23
  var _context = require("../context");
@@ -106,7 +106,7 @@ function MarkElement(props) {
106
106
  },
107
107
  ownerState: ownerState,
108
108
  className: classes.root,
109
- d: (0, _d3Shape.symbol)(_d3Shape.symbolsFill[(0, _utils.getSymbol)(shape)])(),
109
+ d: (0, _d3Shape.symbol)(_d3Shape.symbolsFill[(0, _getSymbol.getSymbol)(shape)])(),
110
110
  onClick: onClick,
111
111
  cursor: onClick ? 'pointer' : 'unset'
112
112
  }, getInteractionItemProps({
@@ -14,7 +14,7 @@ var _MarkElement = require("./MarkElement");
14
14
  var _useScale = require("../hooks/useScale");
15
15
  var _useChartId = require("../hooks/useChartId");
16
16
  var _constants = require("../constants");
17
- var _utils = require("../internals/utils");
17
+ var _cleanId = require("../internals/cleanId");
18
18
  var _getColor = _interopRequireDefault(require("./getColor"));
19
19
  var _useSeries = require("../hooks/useSeries");
20
20
  var _useDrawingArea = require("../hooks/useDrawingArea");
@@ -43,10 +43,7 @@ function MarkPlot(props) {
43
43
  const seriesData = (0, _useSeries.useLineSeries)();
44
44
  const axisData = (0, _CartesianProvider.useCartesianContext)();
45
45
  const chartId = (0, _useChartId.useChartId)();
46
- const {
47
- left,
48
- width
49
- } = (0, _useDrawingArea.useDrawingArea)();
46
+ const drawingArea = (0, _useDrawingArea.useDrawingArea)();
50
47
  const Mark = slots?.mark ?? _MarkElement.MarkElement;
51
48
  if (seriesData === undefined) {
52
49
  return null;
@@ -81,23 +78,10 @@ function MarkPlot(props) {
81
78
  const xScale = (0, _useScale.getValueToPositionMapper)(xAxis[xAxisKey].scale);
82
79
  const yScale = yAxis[yAxisKey].scale;
83
80
  const xData = xAxis[xAxisKey].data;
84
- const yRange = yScale.range();
85
- const isInRange = ({
86
- x,
87
- y
88
- }) => {
89
- if (x < left || x > left + width) {
90
- return false;
91
- }
92
- if (y < Math.min(...yRange) || y > Math.max(...yRange)) {
93
- return false;
94
- }
95
- return true;
96
- };
97
81
  if (xData === undefined) {
98
82
  throw new Error(`MUI X Charts: ${xAxisKey === _constants.DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisKey}"`} should have data property to be able to display a line plot.`);
99
83
  }
100
- const clipId = (0, _utils.cleanId)(`${chartId}-${seriesId}-line-clip`); // We assume that if displaying line mark, the line will also be rendered
84
+ const clipId = (0, _cleanId.cleanId)(`${chartId}-${seriesId}-line-clip`); // We assume that if displaying line mark, the line will also be rendered
101
85
 
102
86
  const colorGetter = (0, _getColor.default)(series[seriesId], xAxis[xAxisKey], yAxis[yAxisKey]);
103
87
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
@@ -122,7 +106,7 @@ function MarkPlot(props) {
122
106
  // Remove missing data point
123
107
  return false;
124
108
  }
125
- if (!isInRange({
109
+ if (!drawingArea.isPointInside({
126
110
  x,
127
111
  y
128
112
  })) {
@@ -37,7 +37,7 @@ const getExtremumY = params => {
37
37
  stackedData
38
38
  } = series[seriesId];
39
39
  const isArea = area !== undefined;
40
- const getValues = isArea ? d => d : d => [d[1], d[1]]; // Since this series is not used to display an area, we do not consider the base (the d[0]).
40
+ const getValues = isArea && axis.scaleType !== 'log' ? d => d : d => [d[1], d[1]]; // Since this series is not used to display an area, we do not consider the base (the d[0]).
41
41
 
42
42
  const seriesExtremums = getSeriesExtremums(getValues, stackedData);
43
43
  if (acc[0] === null) {
@@ -63,7 +63,7 @@ const formatter = (params, dataset) => {
63
63
  if (typeof value !== 'number') {
64
64
  if (process.env.NODE_ENV !== 'production' && !warnedOnce && value !== null) {
65
65
  warnedOnce = true;
66
- console.error([`MUI-X charts: your dataset key "${dataKey}" is used for plotting line, but contains nonnumerical elements.`, 'Line plots only support numbers and null values.']);
66
+ console.error([`MUI X charts: your dataset key "${dataKey}" is used for plotting line, but contains nonnumerical elements.`, 'Line plots only support numbers and null values.']);
67
67
  }
68
68
  return null;
69
69
  }
@@ -6,8 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useLineChartProps = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
10
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
10
11
  var _constants = require("../constants");
12
+ const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "tooltip", "onAxisClick", "onAreaClick", "onLineClick", "onMarkClick", "axisHighlight", "disableLineItemHighlight", "legend", "grid", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "skipAnimation", "loading", "highlightedItem", "onHighlightChange", "className"];
11
13
  /**
12
14
  * A helper function that extracts LineChartProps from the input props
13
15
  * and returns an object with props for the children components of LineChart.
@@ -17,39 +19,41 @@ var _constants = require("../constants");
17
19
  */
18
20
  const useLineChartProps = props => {
19
21
  const {
20
- xAxis,
21
- yAxis,
22
- series,
23
- width,
24
- height,
25
- margin,
26
- colors,
27
- dataset,
28
- sx,
29
- tooltip,
30
- onAxisClick,
31
- onAreaClick,
32
- onLineClick,
33
- onMarkClick,
34
- axisHighlight,
35
- disableLineItemHighlight,
36
- legend,
37
- grid,
38
- topAxis,
39
- leftAxis,
40
- rightAxis,
41
- bottomAxis,
42
- children,
43
- slots,
44
- slotProps,
45
- skipAnimation,
46
- loading,
47
- highlightedItem,
48
- onHighlightChange
49
- } = props;
22
+ xAxis,
23
+ yAxis,
24
+ series,
25
+ width,
26
+ height,
27
+ margin,
28
+ colors,
29
+ dataset,
30
+ sx,
31
+ tooltip,
32
+ onAxisClick,
33
+ onAreaClick,
34
+ onLineClick,
35
+ onMarkClick,
36
+ axisHighlight,
37
+ disableLineItemHighlight,
38
+ legend,
39
+ grid,
40
+ topAxis,
41
+ leftAxis,
42
+ rightAxis,
43
+ bottomAxis,
44
+ children,
45
+ slots,
46
+ slotProps,
47
+ skipAnimation,
48
+ loading,
49
+ highlightedItem,
50
+ onHighlightChange,
51
+ className
52
+ } = props,
53
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
50
54
  const id = (0, _useId.default)();
51
55
  const clipPathId = `${id}-clip-path`;
52
- const chartContainerProps = {
56
+ const chartContainerProps = (0, _extends2.default)({}, other, {
53
57
  series: series.map(s => (0, _extends2.default)({
54
58
  disableHighlight: !!disableLineItemHighlight,
55
59
  type: 'line'
@@ -70,8 +74,9 @@ const useLineChartProps = props => {
70
74
  sx,
71
75
  highlightedItem,
72
76
  onHighlightChange,
73
- disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none' && !onAxisClick
74
- };
77
+ disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none' && !onAxisClick,
78
+ className
79
+ });
75
80
  const axisClickHandlerProps = {
76
81
  onAxisClick
77
82
  };
@@ -75,8 +75,5 @@ export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'seri
75
75
  *
76
76
  * - [PieChart API](https://mui.com/x/api/charts/pie-chart/)
77
77
  */
78
- declare function PieChart(props: PieChartProps): React.JSX.Element;
79
- declare namespace PieChart {
80
- var propTypes: any;
81
- }
78
+ declare const PieChart: React.ForwardRefExoticComponent<PieChartProps & React.RefAttributes<unknown>>;
82
79
  export { PieChart };
@@ -4,8 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.PieChart = PieChart;
7
+ exports.PieChart = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
10
  var React = _interopRequireWildcard(require("react"));
10
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
12
  var _ResponsiveChartContainer = require("../ResponsiveChartContainer");
@@ -18,6 +19,7 @@ var _PiePlot = require("./PiePlot");
18
19
  var _useIsRTL = require("../internals/useIsRTL");
19
20
  var _ChartsOverlay = require("../ChartsOverlay");
20
21
  var _jsxRuntime = require("react/jsx-runtime");
22
+ const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "sx", "tooltip", "axisHighlight", "skipAnimation", "legend", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "onItemClick", "loading", "highlightedItem", "onHighlightChange", "className"];
21
23
  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); }
22
24
  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 && {}.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; }
23
25
  const defaultMargin = {
@@ -43,37 +45,39 @@ const defaultRTLMargin = {
43
45
  *
44
46
  * - [PieChart API](https://mui.com/x/api/charts/pie-chart/)
45
47
  */
46
- function PieChart(props) {
48
+ const PieChart = exports.PieChart = /*#__PURE__*/React.forwardRef(function PieChart(props, ref) {
47
49
  const {
48
- xAxis,
49
- yAxis,
50
- series,
51
- width,
52
- height,
53
- margin: marginProps,
54
- colors,
55
- sx,
56
- tooltip = {
57
- trigger: 'item'
58
- },
59
- axisHighlight = {
60
- x: 'none',
61
- y: 'none'
62
- },
63
- skipAnimation,
64
- legend: legendProps,
65
- topAxis = null,
66
- leftAxis = null,
67
- rightAxis = null,
68
- bottomAxis = null,
69
- children,
70
- slots,
71
- slotProps,
72
- onItemClick,
73
- loading,
74
- highlightedItem,
75
- onHighlightChange
76
- } = props;
50
+ xAxis,
51
+ yAxis,
52
+ series,
53
+ width,
54
+ height,
55
+ margin: marginProps,
56
+ colors,
57
+ sx,
58
+ tooltip = {
59
+ trigger: 'item'
60
+ },
61
+ axisHighlight = {
62
+ x: 'none',
63
+ y: 'none'
64
+ },
65
+ skipAnimation,
66
+ legend: legendProps,
67
+ topAxis = null,
68
+ leftAxis = null,
69
+ rightAxis = null,
70
+ bottomAxis = null,
71
+ children,
72
+ slots,
73
+ slotProps,
74
+ onItemClick,
75
+ loading,
76
+ highlightedItem,
77
+ onHighlightChange,
78
+ className
79
+ } = props,
80
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
77
81
  const isRTL = (0, _useIsRTL.useIsRTL)();
78
82
  const margin = (0, _extends2.default)({}, isRTL ? defaultRTLMargin : defaultMargin, marginProps);
79
83
  const legend = (0, _extends2.default)({
@@ -83,7 +87,8 @@ function PieChart(props) {
83
87
  horizontal: isRTL ? 'left' : 'right'
84
88
  }
85
89
  }, legendProps);
86
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ResponsiveChartContainer.ResponsiveChartContainer, {
90
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ResponsiveChartContainer.ResponsiveChartContainer, (0, _extends2.default)({}, other, {
91
+ ref: ref,
87
92
  series: series.map(s => (0, _extends2.default)({
88
93
  type: 'pie'
89
94
  }, s)),
@@ -101,6 +106,7 @@ function PieChart(props) {
101
106
  disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none',
102
107
  highlightedItem: highlightedItem,
103
108
  onHighlightChange: onHighlightChange,
109
+ className: className,
104
110
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, {
105
111
  topAxis: topAxis,
106
112
  leftAxis: leftAxis,
@@ -124,8 +130,8 @@ function PieChart(props) {
124
130
  slots: slots,
125
131
  slotProps: slotProps
126
132
  })), children]
127
- });
128
- }
133
+ }));
134
+ });
129
135
  process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
130
136
  // ----------------------------- Warning --------------------------------
131
137
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -10,7 +10,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _DrawingProvider = require("../context/DrawingProvider");
11
11
  var _PieArcPlot = require("./PieArcPlot");
12
12
  var _PieArcLabelPlot = require("./PieArcLabelPlot");
13
- var _utils = require("../internals/utils");
13
+ var _getPercentageValue = require("../internals/getPercentageValue");
14
14
  var _getPieCoordinates = require("./getPieCoordinates");
15
15
  var _useSeries = require("../hooks/useSeries");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
@@ -71,8 +71,8 @@ function PiePlot(props) {
71
71
  width,
72
72
  height
73
73
  });
74
- const outerRadius = (0, _utils.getPercentageValue)(outerRadiusParam ?? availableRadius, availableRadius);
75
- const innerRadius = (0, _utils.getPercentageValue)(innerRadiusParam ?? 0, availableRadius);
74
+ const outerRadius = (0, _getPercentageValue.getPercentageValue)(outerRadiusParam ?? availableRadius, availableRadius);
75
+ const innerRadius = (0, _getPercentageValue.getPercentageValue)(innerRadiusParam ?? 0, availableRadius);
76
76
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
77
77
  transform: `translate(${left + cx}, ${top + cy})`,
78
78
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PieArcPlot.PieArcPlot, {
@@ -114,9 +114,9 @@ function PiePlot(props) {
114
114
  width,
115
115
  height
116
116
  });
117
- const outerRadius = (0, _utils.getPercentageValue)(outerRadiusParam ?? availableRadius, availableRadius);
118
- const innerRadius = (0, _utils.getPercentageValue)(innerRadiusParam ?? 0, availableRadius);
119
- const arcLabelRadius = arcLabelRadiusParam === undefined ? (outerRadius + innerRadius) / 2 : (0, _utils.getPercentageValue)(arcLabelRadiusParam, availableRadius);
117
+ const outerRadius = (0, _getPercentageValue.getPercentageValue)(outerRadiusParam ?? availableRadius, availableRadius);
118
+ const innerRadius = (0, _getPercentageValue.getPercentageValue)(innerRadiusParam ?? 0, availableRadius);
119
+ const arcLabelRadius = arcLabelRadiusParam === undefined ? (outerRadius + innerRadius) / 2 : (0, _getPercentageValue.getPercentageValue)(arcLabelRadiusParam, availableRadius);
120
120
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
121
121
  transform: `translate(${left + cx}, ${top + cy})`,
122
122
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PieArcLabelPlot.PieArcLabelPlot, {
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getPieCoordinates = getPieCoordinates;
7
- var _utils = require("../internals/utils");
7
+ var _getPercentageValue = require("../internals/getPercentageValue");
8
8
  function getPieCoordinates(series, drawing) {
9
9
  const {
10
10
  height,
@@ -15,8 +15,8 @@ function getPieCoordinates(series, drawing) {
15
15
  cy: cyParam
16
16
  } = series;
17
17
  const availableRadius = Math.min(width, height) / 2;
18
- const cx = (0, _utils.getPercentageValue)(cxParam ?? '50%', width);
19
- const cy = (0, _utils.getPercentageValue)(cyParam ?? '50%', height);
18
+ const cx = (0, _getPercentageValue.getPercentageValue)(cxParam ?? '50%', width);
19
+ const cy = (0, _getPercentageValue.getPercentageValue)(cyParam ?? '50%', height);
20
20
  return {
21
21
  cx,
22
22
  cy,
@@ -6,35 +6,23 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.ResponsiveChartContainer = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
9
  var React = _interopRequireWildcard(require("react"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _ChartContainer = require("../ChartContainer");
13
- var _useChartContainerDimensions = require("./useChartContainerDimensions");
14
12
  var _ResizableContainer = require("./ResizableContainer");
13
+ var _useResponsiveChartContainerProps = require("./useResponsiveChartContainerProps");
15
14
  var _jsxRuntime = require("react/jsx-runtime");
16
- const _excluded = ["width", "height"];
17
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); }
18
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 && {}.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; }
19
17
  const ResponsiveChartContainer = exports.ResponsiveChartContainer = /*#__PURE__*/React.forwardRef(function ResponsiveChartContainer(props, ref) {
20
18
  const {
21
- width: inWidth,
22
- height: inHeight
23
- } = props,
24
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
25
- const [containerRef, width, height] = (0, _useChartContainerDimensions.useChartContainerDimensions)(inWidth, inHeight);
26
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ResizableContainer.ResizableContainer, {
27
- ref: containerRef,
28
- ownerState: {
29
- width: inWidth,
30
- height: inHeight
31
- },
32
- children: width && height ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartContainer.ChartContainer, (0, _extends2.default)({}, other, {
33
- width: width,
34
- height: height,
35
- ref: ref
36
- })) : null
37
- });
19
+ hasIntrinsicSize,
20
+ chartContainerProps,
21
+ resizableChartContainerProps
22
+ } = (0, _useResponsiveChartContainerProps.useResponsiveChartContainerProps)(props, ref);
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ResizableContainer.ResizableContainer, (0, _extends2.default)({}, resizableChartContainerProps, {
24
+ children: hasIntrinsicSize ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartContainer.ChartContainer, (0, _extends2.default)({}, chartContainerProps)) : null
25
+ }));
38
26
  });
39
27
  process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
40
28
  // ----------------------------- Warning --------------------------------
@@ -1,2 +1,6 @@
1
1
  import * as React from 'react';
2
- export declare const useChartContainerDimensions: (inWidth?: number, inHeight?: number) => [React.RefObject<HTMLDivElement>, number, number];
2
+ export declare const useChartContainerDimensions: (inWidth?: number, inHeight?: number) => {
3
+ containerRef: React.MutableRefObject<null>;
4
+ width: number;
5
+ height: number;
6
+ };
@@ -11,8 +11,8 @@ var _ownerWindow = _interopRequireDefault(require("@mui/utils/ownerWindow"));
11
11
  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); }
12
12
  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 && {}.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; }
13
13
  const useChartContainerDimensions = (inWidth, inHeight) => {
14
- const rootRef = React.useRef(null);
15
14
  const displayError = React.useRef(false);
15
+ const rootRef = React.useRef(null);
16
16
  const [width, setWidth] = React.useState(0);
17
17
  const [height, setHeight] = React.useState(0);
18
18
 
@@ -71,6 +71,10 @@ const useChartContainerDimensions = (inWidth, inHeight) => {
71
71
  displayError.current = false;
72
72
  }
73
73
  }
74
- return [rootRef, inWidth ?? width, inHeight ?? height];
74
+ return {
75
+ containerRef: rootRef,
76
+ width: inWidth ?? width,
77
+ height: inHeight ?? height
78
+ };
75
79
  };
76
80
  exports.useChartContainerDimensions = useChartContainerDimensions;
@@ -0,0 +1,20 @@
1
+ import type { ResponsiveChartContainerProps } from './ResponsiveChartContainer';
2
+ export declare const useResponsiveChartContainerProps: (props: ResponsiveChartContainerProps, ref: React.ForwardedRef<unknown>) => {
3
+ hasIntrinsicSize: number;
4
+ chartContainerProps: Omit<import("..").ChartsSurfaceProps & Omit<import("../internals").SeriesContextProviderProps, "seriesFormatters"> & Omit<import("../internals").DrawingProviderProps, "svgRef"> & Pick<import("../internals").CartesianContextProviderProps, "dataset"> & import("..").ZAxisContextProviderProps & import("..").HighlightedProviderProps, "children"> & {
5
+ xAxis?: import("../internals").MakeOptional<import("..").AxisConfig<import("..").ScaleName, any, import("..").ChartsXAxisProps>, "id">[];
6
+ yAxis?: import("../internals").MakeOptional<import("..").AxisConfig<import("..").ScaleName, any, import("..").ChartsYAxisProps>, "id">[];
7
+ children?: import("react").ReactNode;
8
+ plugins?: import("..").ChartsPluginType<import("../internals").ChartSeriesType>[];
9
+ } & {
10
+ ref: React.ForwardedRef<unknown>;
11
+ };
12
+ resizableChartContainerProps: {
13
+ ownerState: {
14
+ width: number | undefined;
15
+ height: number | undefined;
16
+ };
17
+ ref: import("react").MutableRefObject<null>;
18
+ className?: string;
19
+ };
20
+ };
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useResponsiveChartContainerProps = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var _useChartContainerDimensions = require("./useChartContainerDimensions");
11
+ const _excluded = ["width", "height", "margin", "children", "series", "colors", "dataset", "desc", "disableAxisListener", "highlightedItem", "onHighlightChange", "plugins", "sx", "title", "viewBox", "xAxis", "yAxis", "zAxis"];
12
+ const useResponsiveChartContainerProps = (props, ref) => {
13
+ const {
14
+ width,
15
+ height,
16
+ margin,
17
+ children,
18
+ series,
19
+ colors,
20
+ dataset,
21
+ desc,
22
+ disableAxisListener,
23
+ highlightedItem,
24
+ onHighlightChange,
25
+ plugins,
26
+ sx,
27
+ title,
28
+ viewBox,
29
+ xAxis,
30
+ yAxis,
31
+ zAxis
32
+ } = props,
33
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
34
+ const {
35
+ containerRef,
36
+ width: dWidth,
37
+ height: dHeight
38
+ } = (0, _useChartContainerDimensions.useChartContainerDimensions)(width, height);
39
+ const resizableChartContainerProps = (0, _extends2.default)({}, other, {
40
+ ownerState: {
41
+ width,
42
+ height
43
+ },
44
+ ref: containerRef
45
+ });
46
+ const chartContainerProps = {
47
+ margin,
48
+ children,
49
+ series,
50
+ colors,
51
+ dataset,
52
+ desc,
53
+ disableAxisListener,
54
+ highlightedItem,
55
+ onHighlightChange,
56
+ plugins,
57
+ sx,
58
+ title,
59
+ viewBox,
60
+ xAxis,
61
+ yAxis,
62
+ zAxis,
63
+ width: dWidth,
64
+ height: dHeight,
65
+ ref
66
+ };
67
+ return {
68
+ hasIntrinsicSize: dWidth && dHeight,
69
+ chartContainerProps,
70
+ resizableChartContainerProps
71
+ };
72
+ };
73
+ exports.useResponsiveChartContainerProps = useResponsiveChartContainerProps;
@@ -36,10 +36,7 @@ function Scatter(props) {
36
36
  markerSize,
37
37
  onItemClick
38
38
  } = props;
39
- const {
40
- left,
41
- width
42
- } = (0, _useDrawingArea.useDrawingArea)();
39
+ const drawingArea = (0, _useDrawingArea.useDrawingArea)();
43
40
  const {
44
41
  useVoronoiInteraction
45
42
  } = React.useContext(_InteractionProvider.InteractionContext);
@@ -52,15 +49,15 @@ function Scatter(props) {
52
49
  const cleanData = React.useMemo(() => {
53
50
  const getXPosition = (0, _useScale.getValueToPositionMapper)(xScale);
54
51
  const getYPosition = (0, _useScale.getValueToPositionMapper)(yScale);
55
- const yRange = yScale.range();
56
- const minYRange = Math.min(...yRange);
57
- const maxYRange = Math.max(...yRange);
58
52
  const temp = [];
59
53
  for (let i = 0; i < series.data.length; i += 1) {
60
54
  const scatterPoint = series.data[i];
61
55
  const x = getXPosition(scatterPoint.x);
62
56
  const y = getYPosition(scatterPoint.y);
63
- const isInRange = x >= left && x <= left + width && y >= minYRange && y <= maxYRange;
57
+ const isInRange = drawingArea.isPointInside({
58
+ x,
59
+ y
60
+ });
64
61
  const pointCtx = {
65
62
  type: 'scatter',
66
63
  seriesId: series.id,
@@ -85,7 +82,7 @@ function Scatter(props) {
85
82
  }
86
83
  }
87
84
  return temp;
88
- }, [xScale, yScale, left, width, series.data, series.id, isHighlighted, isFaded, getInteractionItemProps, colorGetter, color]);
85
+ }, [xScale, yScale, drawingArea, series.data, series.id, isHighlighted, isFaded, getInteractionItemProps, colorGetter, color]);
89
86
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
90
87
  children: cleanData.map(dataPoint => /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", (0, _extends2.default)({
91
88
  cx: 0,