@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.
- package/BarChart/BarChart.js +2 -2
- package/BarChart/formatter.js +1 -1
- package/BarChart/useBarChartProps.js +38 -33
- package/CHANGELOG.md +159 -0
- package/ChartContainer/ChartContainer.d.ts +28 -2
- package/ChartContainer/ChartContainer.js +25 -66
- package/ChartContainer/useChartContainerHooks.d.ts +1 -1
- package/ChartContainer/useChartContainerHooks.js +2 -2
- package/ChartContainer/useChartContainerProps.d.ts +86 -0
- package/ChartContainer/useChartContainerProps.js +95 -0
- package/ChartContainer/useDefaultizeAxis.d.ts +36 -0
- package/ChartContainer/useDefaultizeAxis.js +29 -0
- package/ChartsLegend/ChartsLegend.d.ts +3 -12
- package/ChartsLegend/ContinuousColorLegend.d.ts +65 -0
- package/ChartsLegend/ContinuousColorLegend.js +398 -0
- package/ChartsLegend/DefaultChartsLegend.d.ts +7 -50
- package/ChartsLegend/DefaultChartsLegend.js +13 -198
- package/ChartsLegend/LegendPerItem.d.ts +61 -0
- package/ChartsLegend/LegendPerItem.js +151 -0
- package/ChartsLegend/PiecewiseColorLegend.d.ts +26 -0
- package/ChartsLegend/PiecewiseColorLegend.js +169 -0
- package/ChartsLegend/chartsLegend.types.d.ts +31 -0
- package/ChartsLegend/chartsLegend.types.js +5 -0
- package/ChartsLegend/index.d.ts +2 -0
- package/ChartsLegend/index.js +22 -0
- package/ChartsLegend/legend.types.d.ts +62 -0
- package/ChartsLegend/legend.types.js +5 -0
- package/ChartsLegend/legendItemsPlacement.d.ts +3 -0
- package/ChartsLegend/legendItemsPlacement.js +79 -0
- package/ChartsLegend/useAxis.d.ts +7 -0
- package/ChartsLegend/useAxis.js +47 -0
- package/ChartsLegend/utils.d.ts +1 -8
- package/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
- package/ChartsSurface.js +3 -1
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +26 -18
- package/ChartsXAxis/ChartsXAxis.js +1 -1
- package/ChartsYAxis/ChartsYAxis.js +15 -3
- package/Gauge/Gauge.d.ts +1 -4
- package/Gauge/Gauge.js +9 -6
- package/Gauge/GaugeContainer.js +8 -4
- package/Gauge/GaugeProvider.js +9 -9
- package/LineChart/AnimatedArea.js +2 -2
- package/LineChart/AnimatedLine.js +2 -2
- package/LineChart/AreaPlot.js +7 -1
- package/LineChart/LineChart.js +2 -2
- package/LineChart/LineHighlightPlot.js +8 -0
- package/LineChart/MarkElement.js +2 -2
- package/LineChart/MarkPlot.js +4 -20
- package/LineChart/extremums.js +1 -1
- package/LineChart/formatter.js +1 -1
- package/LineChart/useLineChartProps.js +38 -33
- package/PieChart/PieChart.d.ts +1 -4
- package/PieChart/PieChart.js +40 -34
- package/PieChart/PiePlot.js +6 -6
- package/PieChart/getPieCoordinates.js +3 -3
- package/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -20
- package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +5 -1
- package/ResponsiveChartContainer/useChartContainerDimensions.js +6 -2
- package/ResponsiveChartContainer/useResponsiveChartContainerProps.d.ts +20 -0
- package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +73 -0
- package/ScatterChart/Scatter.js +6 -9
- package/ScatterChart/useScatterChartProps.js +35 -30
- package/SparkLineChart/SparkLineChart.js +27 -22
- package/context/CartesianProvider/CartesianProvider.d.ts +2 -3
- package/context/CartesianProvider/CartesianProvider.js +18 -7
- package/context/CartesianProvider/computeValue.d.ts +32 -9
- package/context/CartesianProvider/computeValue.js +20 -16
- package/context/CartesianProvider/defaultizeAxis.d.ts +36 -0
- package/context/CartesianProvider/defaultizeAxis.js +21 -0
- package/context/CartesianProvider/index.d.ts +0 -1
- package/context/CartesianProvider/index.js +1 -3
- package/context/CartesianProvider/normalizeAxis.d.ts +1 -1
- package/context/CartesianProvider/normalizeAxis.js +1 -1
- package/context/DrawingProvider.d.ts +11 -0
- package/context/DrawingProvider.js +9 -2
- package/context/HighlightedProvider/HighlightedProvider.js +2 -2
- package/esm/BarChart/BarChart.js +2 -2
- package/esm/BarChart/formatter.js +1 -1
- package/esm/BarChart/useBarChartProps.js +38 -33
- package/esm/ChartContainer/ChartContainer.js +25 -66
- package/esm/ChartContainer/useChartContainerHooks.js +2 -2
- package/esm/ChartContainer/useChartContainerProps.js +87 -0
- package/esm/ChartContainer/useDefaultizeAxis.js +19 -0
- package/esm/ChartsLegend/ContinuousColorLegend.js +390 -0
- package/esm/ChartsLegend/DefaultChartsLegend.js +14 -198
- package/esm/ChartsLegend/LegendPerItem.js +141 -0
- package/esm/ChartsLegend/PiecewiseColorLegend.js +161 -0
- package/esm/ChartsLegend/chartsLegend.types.js +1 -0
- package/esm/ChartsLegend/index.js +2 -0
- package/esm/ChartsLegend/legend.types.js +1 -0
- package/esm/ChartsLegend/legendItemsPlacement.js +72 -0
- package/esm/ChartsLegend/useAxis.js +39 -0
- package/esm/ChartsSurface.js +3 -1
- package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +26 -18
- package/esm/ChartsXAxis/ChartsXAxis.js +1 -1
- package/esm/ChartsYAxis/ChartsYAxis.js +15 -3
- package/esm/Gauge/Gauge.js +8 -5
- package/esm/Gauge/GaugeContainer.js +8 -4
- package/esm/Gauge/GaugeProvider.js +1 -1
- package/esm/LineChart/AnimatedArea.js +1 -1
- package/esm/LineChart/AnimatedLine.js +1 -1
- package/esm/LineChart/AreaPlot.js +7 -1
- package/esm/LineChart/LineChart.js +2 -2
- package/esm/LineChart/LineHighlightPlot.js +8 -0
- package/esm/LineChart/MarkElement.js +1 -1
- package/esm/LineChart/MarkPlot.js +3 -19
- package/esm/LineChart/extremums.js +1 -1
- package/esm/LineChart/formatter.js +1 -1
- package/esm/LineChart/useLineChartProps.js +38 -33
- package/esm/PieChart/PieChart.js +39 -33
- package/esm/PieChart/PiePlot.js +1 -1
- package/esm/PieChart/getPieCoordinates.js +1 -1
- package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -20
- package/esm/ResponsiveChartContainer/useChartContainerDimensions.js +6 -2
- package/esm/ResponsiveChartContainer/useResponsiveChartContainerProps.js +65 -0
- package/esm/ScatterChart/Scatter.js +6 -9
- package/esm/ScatterChart/useScatterChartProps.js +35 -30
- package/esm/SparkLineChart/SparkLineChart.js +27 -22
- package/esm/context/CartesianProvider/CartesianProvider.js +18 -7
- package/esm/context/CartesianProvider/computeValue.js +20 -16
- package/esm/context/CartesianProvider/defaultizeAxis.js +13 -0
- package/esm/context/CartesianProvider/index.js +1 -3
- package/esm/context/CartesianProvider/normalizeAxis.js +1 -1
- package/esm/context/DrawingProvider.js +9 -2
- package/esm/context/HighlightedProvider/HighlightedProvider.js +2 -2
- package/esm/hooks/useAxisEvents.js +3 -10
- package/esm/hooks/useDrawingArea.js +5 -3
- package/esm/hooks/useReducedMotion.js +4 -2
- package/esm/internals/cleanId.js +6 -0
- package/esm/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +3 -2
- package/esm/internals/{utils.js → getPercentageValue.js} +1 -13
- package/esm/internals/getSymbol.js +5 -0
- package/esm/internals/index.js +3 -1
- package/esm/internals/isDefined.js +3 -0
- package/esm/internals/notNull.js +3 -0
- package/esm/internals/ts-generic.js +1 -0
- package/hooks/useAxisEvents.js +3 -10
- package/hooks/useDrawingArea.js +5 -3
- package/hooks/useReducedMotion.js +4 -2
- package/index.js +1 -1
- package/internals/cleanId.d.ts +4 -0
- package/internals/cleanId.js +12 -0
- package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.d.ts +6 -0
- package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +3 -2
- package/internals/getPercentageValue.d.ts +7 -0
- package/internals/{utils.js → getPercentageValue.js} +1 -15
- package/internals/getSymbol.d.ts +2 -0
- package/internals/getSymbol.js +11 -0
- package/internals/index.d.ts +3 -1
- package/internals/index.js +25 -5
- package/internals/isDefined.d.ts +1 -0
- package/internals/isDefined.js +9 -0
- package/internals/notNull.d.ts +1 -0
- package/internals/notNull.js +9 -0
- package/internals/ts-generic.d.ts +5 -0
- package/internals/ts-generic.js +5 -0
- package/models/axis.d.ts +5 -2
- package/models/helpers.d.ts +1 -0
- package/models/seriesType/config.d.ts +2 -16
- package/modern/BarChart/BarChart.js +2 -2
- package/modern/BarChart/formatter.js +1 -1
- package/modern/BarChart/useBarChartProps.js +38 -33
- package/modern/ChartContainer/ChartContainer.js +25 -66
- package/modern/ChartContainer/useChartContainerHooks.js +2 -2
- package/modern/ChartContainer/useChartContainerProps.js +87 -0
- package/modern/ChartContainer/useDefaultizeAxis.js +19 -0
- package/modern/ChartsLegend/ContinuousColorLegend.js +390 -0
- package/modern/ChartsLegend/DefaultChartsLegend.js +14 -198
- package/modern/ChartsLegend/LegendPerItem.js +141 -0
- package/modern/ChartsLegend/PiecewiseColorLegend.js +161 -0
- package/modern/ChartsLegend/chartsLegend.types.js +1 -0
- package/modern/ChartsLegend/index.js +2 -0
- package/modern/ChartsLegend/legend.types.js +1 -0
- package/modern/ChartsLegend/legendItemsPlacement.js +72 -0
- package/modern/ChartsLegend/useAxis.js +39 -0
- package/modern/ChartsSurface.js +3 -1
- package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +26 -18
- package/modern/ChartsXAxis/ChartsXAxis.js +1 -1
- package/modern/ChartsYAxis/ChartsYAxis.js +15 -3
- package/modern/Gauge/Gauge.js +8 -5
- package/modern/Gauge/GaugeContainer.js +8 -4
- package/modern/Gauge/GaugeProvider.js +1 -1
- package/modern/LineChart/AnimatedArea.js +1 -1
- package/modern/LineChart/AnimatedLine.js +1 -1
- package/modern/LineChart/AreaPlot.js +7 -1
- package/modern/LineChart/LineChart.js +2 -2
- package/modern/LineChart/LineHighlightPlot.js +8 -0
- package/modern/LineChart/MarkElement.js +1 -1
- package/modern/LineChart/MarkPlot.js +3 -19
- package/modern/LineChart/extremums.js +1 -1
- package/modern/LineChart/formatter.js +1 -1
- package/modern/LineChart/useLineChartProps.js +38 -33
- package/modern/PieChart/PieChart.js +39 -33
- package/modern/PieChart/PiePlot.js +1 -1
- package/modern/PieChart/getPieCoordinates.js +1 -1
- package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -20
- package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +6 -2
- package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +65 -0
- package/modern/ScatterChart/Scatter.js +6 -9
- package/modern/ScatterChart/useScatterChartProps.js +35 -30
- package/modern/SparkLineChart/SparkLineChart.js +27 -22
- package/modern/context/CartesianProvider/CartesianProvider.js +18 -7
- package/modern/context/CartesianProvider/computeValue.js +20 -16
- package/modern/context/CartesianProvider/defaultizeAxis.js +13 -0
- package/modern/context/CartesianProvider/index.js +1 -3
- package/modern/context/CartesianProvider/normalizeAxis.js +1 -1
- package/modern/context/DrawingProvider.js +9 -2
- package/modern/context/HighlightedProvider/HighlightedProvider.js +2 -2
- package/modern/hooks/useAxisEvents.js +3 -10
- package/modern/hooks/useDrawingArea.js +5 -3
- package/modern/hooks/useReducedMotion.js +4 -2
- package/modern/index.js +1 -1
- package/modern/internals/cleanId.js +6 -0
- package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +3 -2
- package/modern/internals/{utils.js → getPercentageValue.js} +1 -13
- package/modern/internals/getSymbol.js +5 -0
- package/modern/internals/index.js +3 -1
- package/modern/internals/isDefined.js +3 -0
- package/modern/internals/notNull.js +3 -0
- package/modern/internals/ts-generic.js +1 -0
- package/package.json +4 -4
- 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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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 {
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
+
};
|