@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
@@ -1,4 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "tooltip", "onAxisClick", "axisHighlight", "legend", "grid", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className"];
2
4
  import useId from '@mui/utils/useId';
3
5
  import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
4
6
  /**
@@ -10,36 +12,38 @@ import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
10
12
  */
11
13
  export const useBarChartProps = props => {
12
14
  const {
13
- xAxis,
14
- yAxis,
15
- series,
16
- width,
17
- height,
18
- margin,
19
- colors,
20
- dataset,
21
- sx,
22
- tooltip,
23
- onAxisClick,
24
- axisHighlight,
25
- legend,
26
- grid,
27
- topAxis,
28
- leftAxis,
29
- rightAxis,
30
- bottomAxis,
31
- children,
32
- slots,
33
- slotProps,
34
- skipAnimation,
35
- loading,
36
- layout,
37
- onItemClick,
38
- highlightedItem,
39
- onHighlightChange,
40
- borderRadius,
41
- barLabel
42
- } = props;
15
+ xAxis,
16
+ yAxis,
17
+ series,
18
+ width,
19
+ height,
20
+ margin,
21
+ colors,
22
+ dataset,
23
+ sx,
24
+ tooltip,
25
+ onAxisClick,
26
+ axisHighlight,
27
+ legend,
28
+ grid,
29
+ topAxis,
30
+ leftAxis,
31
+ rightAxis,
32
+ bottomAxis,
33
+ children,
34
+ slots,
35
+ slotProps,
36
+ skipAnimation,
37
+ loading,
38
+ layout,
39
+ onItemClick,
40
+ highlightedItem,
41
+ onHighlightChange,
42
+ borderRadius,
43
+ barLabel,
44
+ className
45
+ } = props,
46
+ rest = _objectWithoutPropertiesLoose(props, _excluded);
43
47
  const id = useId();
44
48
  const clipPathId = `${id}-clip-path`;
45
49
  const hasHorizontalSeries = layout === 'horizontal' || layout === undefined && series.some(item => item.layout === 'horizontal');
@@ -49,7 +53,7 @@ export const useBarChartProps = props => {
49
53
  length: Math.max(...series.map(s => (s.data ?? dataset ?? []).length))
50
54
  }, (_, index) => index)
51
55
  };
52
- const chartContainerProps = {
56
+ const chartContainerProps = _extends({}, rest, {
53
57
  series: series.map(s => _extends({
54
58
  type: 'bar'
55
59
  }, s, {
@@ -69,8 +73,9 @@ export const useBarChartProps = props => {
69
73
  sx,
70
74
  highlightedItem,
71
75
  onHighlightChange,
72
- disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none' && !onAxisClick
73
- };
76
+ disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none' && !onAxisClick,
77
+ className
78
+ });
74
79
  const barPlotProps = {
75
80
  onItemClick,
76
81
  slots,
@@ -1,3 +1,4 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import * as React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
  import { DrawingProvider } from '../context/DrawingProvider';
@@ -8,78 +9,36 @@ import { ChartsSurface } from '../ChartsSurface';
8
9
  import { CartesianContextProvider } from '../context/CartesianProvider';
9
10
  import { ChartsAxesGradients } from '../internals/components/ChartsAxesGradients';
10
11
  import { HighlightedProvider, ZAxisContextProvider } from '../context';
11
- import { useChartContainerHooks } from './useChartContainerHooks';
12
+ import { useChartContainerProps } from './useChartContainerProps';
12
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
14
  const ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContainer(props, ref) {
14
15
  const {
15
- width,
16
- height,
17
- series,
18
- margin,
19
- xAxis,
20
- yAxis,
21
- zAxis,
22
- colors,
23
- dataset,
24
- sx,
25
- title,
26
- desc,
27
- disableAxisListener,
28
- highlightedItem,
29
- onHighlightChange,
30
- plugins,
31
- children
32
- } = props;
33
- const {
34
- svgRef,
35
- handleRef,
36
- xExtremumGetters,
37
- yExtremumGetters,
38
- seriesFormatters,
39
- colorProcessors
40
- } = useChartContainerHooks(ref, plugins);
41
- return /*#__PURE__*/_jsx(DrawingProvider, {
42
- width: width,
43
- height: height,
44
- margin: margin,
45
- svgRef: svgRef,
46
- children: /*#__PURE__*/_jsx(ColorProvider, {
47
- colorProcessors: colorProcessors,
48
- children: /*#__PURE__*/_jsx(SeriesContextProvider, {
49
- series: series,
50
- colors: colors,
51
- dataset: dataset,
52
- seriesFormatters: seriesFormatters,
53
- children: /*#__PURE__*/_jsx(CartesianContextProvider, {
54
- xAxis: xAxis,
55
- yAxis: yAxis,
56
- dataset: dataset,
57
- xExtremumGetters: xExtremumGetters,
58
- yExtremumGetters: yExtremumGetters,
59
- children: /*#__PURE__*/_jsx(ZAxisContextProvider, {
60
- zAxis: zAxis,
61
- dataset: dataset,
16
+ children,
17
+ drawingProviderProps,
18
+ colorProviderProps,
19
+ seriesContextProps,
20
+ cartesianContextProps,
21
+ zAxisContextProps,
22
+ highlightedProviderProps,
23
+ chartsSurfaceProps
24
+ } = useChartContainerProps(props, ref);
25
+ return /*#__PURE__*/_jsx(DrawingProvider, _extends({}, drawingProviderProps, {
26
+ children: /*#__PURE__*/_jsx(ColorProvider, _extends({}, colorProviderProps, {
27
+ children: /*#__PURE__*/_jsx(SeriesContextProvider, _extends({}, seriesContextProps, {
28
+ children: /*#__PURE__*/_jsx(CartesianContextProvider, _extends({}, cartesianContextProps, {
29
+ children: /*#__PURE__*/_jsx(ZAxisContextProvider, _extends({}, zAxisContextProps, {
62
30
  children: /*#__PURE__*/_jsx(InteractionProvider, {
63
- children: /*#__PURE__*/_jsx(HighlightedProvider, {
64
- highlightedItem: highlightedItem,
65
- onHighlightChange: onHighlightChange,
66
- children: /*#__PURE__*/_jsxs(ChartsSurface, {
67
- width: width,
68
- height: height,
69
- ref: handleRef,
70
- sx: sx,
71
- title: title,
72
- desc: desc,
73
- disableAxisListener: disableAxisListener,
31
+ children: /*#__PURE__*/_jsx(HighlightedProvider, _extends({}, highlightedProviderProps, {
32
+ children: /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
74
33
  children: [/*#__PURE__*/_jsx(ChartsAxesGradients, {}), children]
75
- })
76
- })
34
+ }))
35
+ }))
77
36
  })
78
- })
79
- })
80
- })
81
- })
82
- });
37
+ }))
38
+ }))
39
+ }))
40
+ }))
41
+ }));
83
42
  });
84
43
  process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
85
44
  // ----------------------------- Warning --------------------------------
@@ -4,7 +4,7 @@ import { usePluginsMerge } from './usePluginsMerge';
4
4
  import { useReducedMotion } from '../hooks/useReducedMotion';
5
5
  export const useChartContainerHooks = (ref, plugins) => {
6
6
  const svgRef = React.useRef(null);
7
- const handleRef = useForkRef(ref, svgRef);
7
+ const chartSurfaceRef = useForkRef(ref, svgRef);
8
8
  const {
9
9
  xExtremumGetters,
10
10
  yExtremumGetters,
@@ -15,7 +15,7 @@ export const useChartContainerHooks = (ref, plugins) => {
15
15
 
16
16
  return {
17
17
  svgRef,
18
- handleRef,
18
+ chartSurfaceRef,
19
19
  xExtremumGetters,
20
20
  yExtremumGetters,
21
21
  seriesFormatters,
@@ -0,0 +1,87 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["width", "height", "series", "margin", "xAxis", "yAxis", "zAxis", "colors", "dataset", "sx", "title", "desc", "disableAxisListener", "highlightedItem", "onHighlightChange", "plugins", "children"];
4
+ import { useChartContainerHooks } from './useChartContainerHooks';
5
+ import { useDefaultizeAxis } from './useDefaultizeAxis';
6
+ export const useChartContainerProps = (props, ref) => {
7
+ const {
8
+ width,
9
+ height,
10
+ series,
11
+ margin,
12
+ xAxis,
13
+ yAxis,
14
+ zAxis,
15
+ colors,
16
+ dataset,
17
+ sx,
18
+ title,
19
+ desc,
20
+ disableAxisListener,
21
+ highlightedItem,
22
+ onHighlightChange,
23
+ plugins,
24
+ children
25
+ } = props,
26
+ other = _objectWithoutPropertiesLoose(props, _excluded);
27
+ const {
28
+ svgRef,
29
+ chartSurfaceRef,
30
+ xExtremumGetters,
31
+ yExtremumGetters,
32
+ seriesFormatters,
33
+ colorProcessors
34
+ } = useChartContainerHooks(ref, plugins);
35
+ const [defaultizedXAxis, defaultizedYAxis] = useDefaultizeAxis(xAxis, yAxis);
36
+ const drawingProviderProps = {
37
+ width,
38
+ height,
39
+ margin,
40
+ svgRef
41
+ };
42
+ const colorProviderProps = {
43
+ colorProcessors
44
+ };
45
+ const seriesContextProps = {
46
+ series,
47
+ colors,
48
+ dataset,
49
+ seriesFormatters
50
+ };
51
+ const cartesianContextProps = {
52
+ xAxis: defaultizedXAxis,
53
+ yAxis: defaultizedYAxis,
54
+ dataset,
55
+ xExtremumGetters,
56
+ yExtremumGetters
57
+ };
58
+ const zAxisContextProps = {
59
+ zAxis,
60
+ dataset
61
+ };
62
+ const highlightedProviderProps = {
63
+ highlightedItem,
64
+ onHighlightChange
65
+ };
66
+ const chartsSurfaceProps = _extends({}, other, {
67
+ width,
68
+ height,
69
+ ref: chartSurfaceRef,
70
+ sx,
71
+ title,
72
+ desc,
73
+ disableAxisListener
74
+ });
75
+ return {
76
+ children,
77
+ drawingProviderProps,
78
+ colorProviderProps,
79
+ seriesContextProps,
80
+ cartesianContextProps,
81
+ zAxisContextProps,
82
+ highlightedProviderProps,
83
+ chartsSurfaceProps,
84
+ xAxis: defaultizedXAxis,
85
+ yAxis: defaultizedYAxis
86
+ };
87
+ };
@@ -0,0 +1,19 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
4
+ const defaultizeAxis = (inAxis, axisName) => {
5
+ const DEFAULT_AXIS_KEY = axisName === 'x' ? DEFAULT_X_AXIS_KEY : DEFAULT_Y_AXIS_KEY;
6
+ return [...(inAxis?.map((axis, index) => _extends({
7
+ id: `defaultized-${axisName}-axis-${index}`
8
+ }, axis)) ?? []), ...(inAxis === undefined || inAxis.findIndex(({
9
+ id
10
+ }) => id === DEFAULT_AXIS_KEY) === -1 ? [{
11
+ id: DEFAULT_AXIS_KEY,
12
+ scaleType: 'linear'
13
+ }] : [])];
14
+ };
15
+ export const useDefaultizeAxis = (inXAxis, inYAxis) => {
16
+ const xAxis = React.useMemo(() => defaultizeAxis(inXAxis, 'x'), [inXAxis]);
17
+ const yAxis = React.useMemo(() => defaultizeAxis(inYAxis, 'y'), [inYAxis]);
18
+ return [xAxis, yAxis];
19
+ };