@mui/x-charts 8.0.0-alpha.0 → 8.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BarChart/AnimatedBarElement.d.ts +15 -0
- package/BarChart/AnimatedBarElement.js +21 -0
- package/BarChart/BarChart.d.ts +4 -9
- package/BarChart/BarChart.js +3 -31
- package/BarChart/BarElement.d.ts +5 -1342
- package/BarChart/BarElement.js +10 -20
- package/BarChart/BarPlot.js +12 -2
- package/BarChart/useBarChartProps.d.ts +0 -2
- package/BarChart/useBarChartProps.js +2 -8
- package/CHANGELOG.md +429 -5
- package/ChartContainer/ChartContainer.d.ts +2 -19
- package/ChartContainer/ChartContainer.js +10 -20
- package/ChartContainer/ResizableContainer.d.ts +17 -4
- package/ChartContainer/ResizableContainer.js +36 -2
- package/ChartContainer/useChartContainerProps.d.ts +6 -7
- package/ChartContainer/useChartContainerProps.js +14 -28
- package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +1 -17
- package/ChartsAxisHighlight/ChartsAxisHighlight.js +10 -96
- package/ChartsAxisHighlight/ChartsAxisHighlight.types.d.ts +5 -0
- package/ChartsAxisHighlight/ChartsAxisHighlight.types.js +1 -0
- package/ChartsAxisHighlight/ChartsAxisHighlightPath.d.ts +6 -0
- package/ChartsAxisHighlight/ChartsAxisHighlightPath.js +34 -0
- package/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +10 -0
- package/ChartsAxisHighlight/ChartsXAxisHighlight.js +53 -0
- package/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +10 -0
- package/ChartsAxisHighlight/ChartsYAxisHighlight.js +53 -0
- package/ChartsAxisHighlight/chartsAxisHighlightClasses.d.ts +7 -0
- package/ChartsAxisHighlight/chartsAxisHighlightClasses.js +6 -0
- package/ChartsAxisHighlight/index.d.ts +3 -0
- package/ChartsAxisHighlight/index.js +4 -1
- package/ChartsGrid/ChartsGrid.js +1 -1
- package/ChartsGrid/ChartsHorizontalGrid.d.ts +2 -2
- package/ChartsGrid/ChartsHorizontalGrid.js +3 -3
- package/ChartsGrid/ChartsVerticalGrid.d.ts +2 -2
- package/ChartsGrid/ChartsVerticalGrid.js +3 -3
- package/ChartsLegend/LegendPerItem.d.ts +2 -2
- package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +9 -7
- package/ChartsSurface/ChartsSurface.d.ts +0 -15
- package/ChartsSurface/ChartsSurface.js +35 -34
- package/ChartsTooltip/ChartTooltip.types.d.ts +15 -0
- package/ChartsTooltip/ChartTooltip.types.js +1 -0
- package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +7 -39
- package/ChartsTooltip/ChartsAxisTooltipContent.js +83 -72
- package/ChartsTooltip/ChartsItemTooltipContent.d.ts +5 -28
- package/ChartsTooltip/ChartsItemTooltipContent.js +54 -44
- package/ChartsTooltip/ChartsTooltip.d.ts +3 -69
- package/ChartsTooltip/ChartsTooltip.js +161 -145
- package/ChartsTooltip/ChartsTooltipContainer.d.ts +33 -0
- package/ChartsTooltip/ChartsTooltipContainer.js +298 -0
- package/ChartsTooltip/chartsTooltipClasses.d.ts +1 -0
- package/ChartsTooltip/chartsTooltipClasses.js +18 -2
- package/ChartsTooltip/index.d.ts +3 -3
- package/ChartsTooltip/index.js +2 -3
- package/ChartsTooltip/useAxisTooltip.d.ts +2 -2
- package/ChartsTooltip/useAxisTooltip.js +19 -19
- package/ChartsTooltip/useItemTooltip.d.ts +1 -1
- package/ChartsTooltip/useItemTooltip.js +5 -4
- package/ChartsTooltip/utils.d.ts +0 -3
- package/ChartsTooltip/utils.js +0 -8
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +47 -34
- package/Gauge/Gauge.d.ts +1 -1
- package/Gauge/Gauge.js +0 -6
- package/Gauge/GaugeContainer.d.ts +3 -3
- package/Gauge/GaugeContainer.js +60 -61
- package/LineChart/AnimatedArea.d.ts +0 -1333
- package/LineChart/AnimatedArea.js +9 -18
- package/LineChart/AnimatedLine.d.ts +0 -1333
- package/LineChart/AnimatedLine.js +9 -20
- package/LineChart/AreaPlot.js +12 -2
- package/LineChart/CircleMarkElement.js +6 -5
- package/LineChart/LineChart.d.ts +4 -10
- package/LineChart/LineChart.js +3 -32
- package/LineChart/LineHighlightPlot.js +6 -5
- package/LineChart/LinePlot.js +12 -2
- package/LineChart/MarkElement.js +6 -5
- package/LineChart/useLineChartProps.d.ts +0 -2
- package/LineChart/useLineChartProps.js +2 -8
- package/PieChart/PieChart.d.ts +3 -9
- package/PieChart/PieChart.js +5 -37
- package/PieChart/PiePlot.js +2 -2
- package/PieChart/getPieCoordinates.d.ts +2 -2
- package/README.md +2 -2
- package/ScatterChart/Scatter.js +6 -5
- package/ScatterChart/ScatterChart.d.ts +4 -10
- package/ScatterChart/ScatterChart.js +5 -32
- package/ScatterChart/useScatterChartProps.d.ts +0 -2
- package/ScatterChart/useScatterChartProps.js +1 -9
- package/SparkLineChart/SparkLineChart.d.ts +3 -4
- package/SparkLineChart/SparkLineChart.js +4 -31
- package/context/ChartDataProvider/ChartDataProvider.d.ts +9 -19
- package/context/ChartDataProvider/ChartDataProvider.js +30 -43
- package/context/ChartDataProvider/useChartDataProviderProps.d.ts +7 -10
- package/context/ChartDataProvider/useChartDataProviderProps.js +22 -42
- package/context/{DrawingProvider.d.ts → DrawingAreaProvider/DrawingArea.types.d.ts} +3 -14
- package/context/DrawingAreaProvider/DrawingArea.types.js +1 -0
- package/context/DrawingAreaProvider/DrawingAreaContext.d.ts +8 -0
- package/context/DrawingAreaProvider/DrawingAreaContext.js +16 -0
- package/context/DrawingAreaProvider/DrawingAreaProvider.d.ts +3 -0
- package/context/{DrawingProvider.js → DrawingAreaProvider/DrawingAreaProvider.js} +11 -41
- package/context/DrawingAreaProvider/index.d.ts +3 -0
- package/context/DrawingAreaProvider/index.js +3 -0
- package/context/InteractionProvider.d.ts +5 -48
- package/context/InteractionProvider.js +8 -64
- package/context/InteractionSelectors.d.ts +359 -0
- package/context/InteractionSelectors.js +12 -0
- package/context/SizeProvider/Size.types.d.ts +30 -0
- package/context/SizeProvider/Size.types.js +1 -0
- package/context/SizeProvider/SizeContext.d.ts +4 -0
- package/context/SizeProvider/SizeContext.js +13 -0
- package/context/SizeProvider/SizeProvider.d.ts +11 -0
- package/context/SizeProvider/SizeProvider.js +26 -0
- package/context/SizeProvider/index.d.ts +4 -0
- package/context/SizeProvider/index.js +4 -0
- package/{ChartContainer → context/SizeProvider}/useChartContainerDimensions.d.ts +4 -1
- package/{modern/ChartContainer → context/SizeProvider}/useChartContainerDimensions.js +11 -5
- package/context/SizeProvider/useSize.d.ts +5 -0
- package/context/SizeProvider/useSize.js +13 -0
- package/context/SvgRefProvider/SvgRef.types.d.ts +8 -0
- package/context/SvgRefProvider/SvgRef.types.js +1 -0
- package/context/SvgRefProvider/SvgRefContext.d.ts +4 -0
- package/context/SvgRefProvider/SvgRefContext.js +17 -0
- package/context/SvgRefProvider/SvgRefProvider.d.ts +3 -0
- package/context/SvgRefProvider/SvgRefProvider.js +24 -0
- package/context/SvgRefProvider/index.d.ts +4 -0
- package/context/SvgRefProvider/index.js +4 -0
- package/context/SvgRefProvider/useSurfaceRef.d.ts +2 -0
- package/context/SvgRefProvider/useSurfaceRef.js +14 -0
- package/context/index.d.ts +2 -0
- package/context/index.js +2 -1
- package/hooks/useAxisEvents.js +32 -19
- package/hooks/useChartId.js +2 -2
- package/hooks/useDrawingArea.d.ts +2 -2
- package/hooks/useDrawingArea.js +2 -2
- package/hooks/useInteractionItemProps.js +19 -12
- package/hooks/useSvgRef.js +3 -3
- package/index.js +1 -1
- package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +1 -1
- package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -4
- package/internals/computeAxisValue.d.ts +2 -2
- package/internals/index.d.ts +3 -2
- package/internals/index.js +3 -2
- package/internals/plugins/models/index.d.ts +35 -0
- package/internals/plugins/models/index.js +1 -0
- package/internals/plugins/utils/ChartStore.d.ts +12 -0
- package/internals/plugins/utils/ChartStore.js +26 -0
- package/internals/plugins/utils/ChartsStore.d.ts +12 -0
- package/internals/plugins/utils/ChartsStore.js +26 -0
- package/internals/plugins/utils/selectors.d.ts +9 -0
- package/internals/plugins/utils/selectors.js +37 -0
- package/internals/useCharts.d.ts +6 -0
- package/internals/useCharts.js +29 -0
- package/internals/useSelector.d.ts +4 -0
- package/internals/useSelector.js +6 -0
- package/internals/useStore.d.ts +2 -0
- package/internals/useStore.js +17 -0
- package/modern/BarChart/AnimatedBarElement.js +21 -0
- package/modern/BarChart/BarChart.js +3 -31
- package/modern/BarChart/BarElement.js +10 -20
- package/modern/BarChart/BarPlot.js +12 -2
- package/modern/BarChart/useBarChartProps.js +2 -8
- package/modern/ChartContainer/ChartContainer.js +10 -20
- package/modern/ChartContainer/ResizableContainer.js +36 -2
- package/modern/ChartContainer/useChartContainerProps.js +14 -28
- package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +10 -96
- package/modern/ChartsAxisHighlight/ChartsAxisHighlight.types.js +1 -0
- package/modern/ChartsAxisHighlight/ChartsAxisHighlightPath.js +34 -0
- package/modern/ChartsAxisHighlight/ChartsXAxisHighlight.js +53 -0
- package/modern/ChartsAxisHighlight/ChartsYAxisHighlight.js +53 -0
- package/modern/ChartsAxisHighlight/chartsAxisHighlightClasses.js +6 -0
- package/modern/ChartsAxisHighlight/index.js +4 -1
- package/modern/ChartsGrid/ChartsGrid.js +1 -1
- package/modern/ChartsGrid/ChartsHorizontalGrid.js +3 -3
- package/modern/ChartsGrid/ChartsVerticalGrid.js +3 -3
- package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +9 -7
- package/modern/ChartsSurface/ChartsSurface.js +35 -34
- package/modern/ChartsTooltip/ChartTooltip.types.js +1 -0
- package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +83 -72
- package/modern/ChartsTooltip/ChartsItemTooltipContent.js +54 -44
- package/modern/ChartsTooltip/ChartsTooltip.js +161 -145
- package/modern/ChartsTooltip/ChartsTooltipContainer.js +298 -0
- package/modern/ChartsTooltip/chartsTooltipClasses.js +18 -2
- package/modern/ChartsTooltip/index.js +2 -3
- package/modern/ChartsTooltip/useAxisTooltip.js +19 -19
- package/modern/ChartsTooltip/useItemTooltip.js +5 -4
- package/modern/ChartsTooltip/utils.js +0 -8
- package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +47 -34
- package/modern/Gauge/Gauge.js +0 -6
- package/modern/Gauge/GaugeContainer.js +60 -61
- package/modern/LineChart/AnimatedArea.js +9 -18
- package/modern/LineChart/AnimatedLine.js +9 -20
- package/modern/LineChart/AreaPlot.js +12 -2
- package/modern/LineChart/CircleMarkElement.js +6 -5
- package/modern/LineChart/LineChart.js +3 -32
- package/modern/LineChart/LineHighlightPlot.js +6 -5
- package/modern/LineChart/LinePlot.js +12 -2
- package/modern/LineChart/MarkElement.js +6 -5
- package/modern/LineChart/useLineChartProps.js +2 -8
- package/modern/PieChart/PieChart.js +5 -37
- package/modern/PieChart/PiePlot.js +2 -2
- package/modern/ScatterChart/Scatter.js +6 -5
- package/modern/ScatterChart/ScatterChart.js +5 -32
- package/modern/ScatterChart/useScatterChartProps.js +1 -9
- package/modern/SparkLineChart/SparkLineChart.js +4 -31
- package/modern/context/ChartDataProvider/ChartDataProvider.js +30 -43
- package/modern/context/ChartDataProvider/useChartDataProviderProps.js +22 -42
- package/modern/context/DrawingAreaProvider/DrawingArea.types.js +1 -0
- package/modern/context/DrawingAreaProvider/DrawingAreaContext.js +16 -0
- package/modern/context/{DrawingProvider.js → DrawingAreaProvider/DrawingAreaProvider.js} +11 -41
- package/modern/context/DrawingAreaProvider/index.js +3 -0
- package/modern/context/InteractionProvider.js +8 -64
- package/modern/context/InteractionSelectors.js +12 -0
- package/modern/context/SizeProvider/Size.types.js +1 -0
- package/modern/context/SizeProvider/SizeContext.js +13 -0
- package/modern/context/SizeProvider/SizeProvider.js +26 -0
- package/modern/context/SizeProvider/index.js +4 -0
- package/{ChartContainer → modern/context/SizeProvider}/useChartContainerDimensions.js +11 -5
- package/modern/context/SizeProvider/useSize.js +13 -0
- package/modern/context/SvgRefProvider/SvgRef.types.js +1 -0
- package/modern/context/SvgRefProvider/SvgRefContext.js +17 -0
- package/modern/context/SvgRefProvider/SvgRefProvider.js +24 -0
- package/modern/context/SvgRefProvider/index.js +4 -0
- package/modern/context/SvgRefProvider/useSurfaceRef.js +14 -0
- package/modern/context/index.js +2 -1
- package/modern/hooks/useAxisEvents.js +32 -19
- package/modern/hooks/useChartId.js +2 -2
- package/modern/hooks/useDrawingArea.js +2 -2
- package/modern/hooks/useInteractionItemProps.js +19 -12
- package/modern/hooks/useSvgRef.js +3 -3
- package/modern/index.js +1 -1
- package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -4
- package/modern/internals/index.js +3 -2
- package/modern/internals/plugins/models/index.js +1 -0
- package/modern/internals/plugins/utils/ChartStore.js +26 -0
- package/modern/internals/plugins/utils/ChartsStore.js +26 -0
- package/modern/internals/plugins/utils/selectors.js +37 -0
- package/modern/internals/useCharts.js +29 -0
- package/modern/internals/useSelector.js +6 -0
- package/modern/internals/useStore.js +17 -0
- package/node/BarChart/AnimatedBarElement.js +28 -0
- package/node/BarChart/BarChart.js +3 -31
- package/node/BarChart/BarElement.js +11 -21
- package/node/BarChart/BarPlot.js +11 -1
- package/node/BarChart/useBarChartProps.js +2 -8
- package/node/ChartContainer/ChartContainer.js +10 -20
- package/node/ChartContainer/ResizableContainer.js +39 -3
- package/node/ChartContainer/useChartContainerProps.js +14 -28
- package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +12 -100
- package/node/ChartsAxisHighlight/ChartsAxisHighlight.types.js +5 -0
- package/node/ChartsAxisHighlight/ChartsAxisHighlightPath.js +40 -0
- package/node/ChartsAxisHighlight/ChartsXAxisHighlight.js +57 -0
- package/node/ChartsAxisHighlight/ChartsYAxisHighlight.js +57 -0
- package/node/ChartsAxisHighlight/chartsAxisHighlightClasses.js +14 -0
- package/node/ChartsAxisHighlight/index.js +33 -0
- package/node/ChartsGrid/ChartsGrid.js +2 -2
- package/node/ChartsGrid/ChartsHorizontalGrid.js +4 -4
- package/node/ChartsGrid/ChartsVerticalGrid.js +4 -4
- package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +9 -7
- package/node/ChartsSurface/ChartsSurface.js +35 -34
- package/node/ChartsTooltip/ChartTooltip.types.js +5 -0
- package/node/ChartsTooltip/ChartsAxisTooltipContent.js +83 -73
- package/node/ChartsTooltip/ChartsItemTooltipContent.js +54 -45
- package/node/ChartsTooltip/ChartsTooltip.js +160 -144
- package/node/ChartsTooltip/ChartsTooltipContainer.js +304 -0
- package/node/ChartsTooltip/chartsTooltipClasses.js +22 -3
- package/node/ChartsTooltip/index.js +19 -28
- package/node/ChartsTooltip/useAxisTooltip.js +19 -19
- package/node/ChartsTooltip/useItemTooltip.js +5 -4
- package/node/ChartsTooltip/utils.js +0 -9
- package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +48 -35
- package/node/Gauge/Gauge.js +0 -6
- package/node/Gauge/GaugeContainer.js +60 -61
- package/node/LineChart/AnimatedArea.js +9 -19
- package/node/LineChart/AnimatedLine.js +9 -21
- package/node/LineChart/AreaPlot.js +11 -1
- package/node/LineChart/CircleMarkElement.js +6 -5
- package/node/LineChart/LineChart.js +3 -32
- package/node/LineChart/LineHighlightPlot.js +6 -5
- package/node/LineChart/LinePlot.js +11 -1
- package/node/LineChart/MarkElement.js +6 -5
- package/node/LineChart/useLineChartProps.js +2 -8
- package/node/PieChart/PieChart.js +5 -37
- package/node/PieChart/PiePlot.js +2 -2
- package/node/ScatterChart/Scatter.js +6 -5
- package/node/ScatterChart/ScatterChart.js +5 -32
- package/node/ScatterChart/useScatterChartProps.js +1 -9
- package/node/SparkLineChart/SparkLineChart.js +4 -31
- package/node/context/ChartDataProvider/ChartDataProvider.js +30 -43
- package/node/context/ChartDataProvider/useChartDataProviderProps.js +22 -44
- package/node/context/DrawingAreaProvider/DrawingArea.types.js +5 -0
- package/node/context/DrawingAreaProvider/DrawingAreaContext.js +22 -0
- package/node/context/{DrawingProvider.js → DrawingAreaProvider/DrawingAreaProvider.js} +12 -44
- package/node/context/DrawingAreaProvider/index.js +38 -0
- package/node/context/InteractionProvider.js +9 -66
- package/node/context/InteractionSelectors.js +18 -0
- package/node/context/SizeProvider/Size.types.js +5 -0
- package/node/context/SizeProvider/SizeContext.js +20 -0
- package/node/context/SizeProvider/SizeProvider.js +29 -0
- package/node/context/SizeProvider/index.js +49 -0
- package/node/{ChartContainer → context/SizeProvider}/useChartContainerDimensions.js +11 -5
- package/node/context/SizeProvider/useSize.js +20 -0
- package/node/context/SvgRefProvider/SvgRef.types.js +5 -0
- package/node/context/SvgRefProvider/SvgRefContext.js +23 -0
- package/node/context/SvgRefProvider/SvgRefProvider.js +31 -0
- package/node/context/SvgRefProvider/index.js +49 -0
- package/node/context/SvgRefProvider/useSurfaceRef.js +20 -0
- package/node/context/index.js +10 -2
- package/node/hooks/useAxisEvents.js +33 -19
- package/node/hooks/useChartId.js +2 -2
- package/node/hooks/useDrawingArea.js +2 -2
- package/node/hooks/useInteractionItemProps.js +20 -13
- package/node/hooks/useSvgRef.js +3 -3
- package/node/index.js +1 -1
- package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -4
- package/node/internals/index.js +28 -16
- package/node/internals/plugins/models/index.js +5 -0
- package/node/internals/plugins/utils/ChartStore.js +33 -0
- package/node/internals/plugins/utils/ChartsStore.js +33 -0
- package/node/internals/plugins/utils/selectors.js +44 -0
- package/node/internals/useCharts.js +36 -0
- package/node/internals/useSelector.js +13 -0
- package/node/internals/useStore.js +24 -0
- package/package.json +7 -5
- package/themeAugmentation/props.d.ts +1 -2
- package/ChartsTooltip/DefaultChartsAxisTooltipContent.d.ts +0 -7
- package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -123
- package/ChartsTooltip/DefaultChartsItemTooltipContent.d.ts +0 -8
- package/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -92
- package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -123
- package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -92
- package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -129
- package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -98
- /package/ChartsGrid/{styledCommonents.d.ts → styledComponents.d.ts} +0 -0
- /package/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
- /package/modern/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
- /package/node/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
|
@@ -6,15 +6,21 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import { ChartDataProvider } from "../context/ChartDataProvider/index.js";
|
|
7
7
|
import { ResizableContainer } from "./ResizableContainer.js";
|
|
8
8
|
import { useChartContainerProps } from "./useChartContainerProps.js";
|
|
9
|
+
import { ChartsSurface } from "../ChartsSurface/index.js";
|
|
9
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
11
|
const ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContainer(props, ref) {
|
|
11
12
|
const {
|
|
12
|
-
hasIntrinsicSize,
|
|
13
13
|
chartDataProviderProps,
|
|
14
|
-
|
|
14
|
+
children,
|
|
15
|
+
resizableContainerProps,
|
|
16
|
+
chartsSurfaceProps
|
|
15
17
|
} = useChartContainerProps(props, ref);
|
|
16
|
-
return /*#__PURE__*/_jsx(
|
|
17
|
-
children:
|
|
18
|
+
return /*#__PURE__*/_jsx(ChartDataProvider, _extends({}, chartDataProviderProps, {
|
|
19
|
+
children: /*#__PURE__*/_jsx(ResizableContainer, _extends({}, resizableContainerProps, {
|
|
20
|
+
children: /*#__PURE__*/_jsx(ChartsSurface, _extends({}, chartsSurfaceProps, {
|
|
21
|
+
children: children
|
|
22
|
+
}))
|
|
23
|
+
}))
|
|
18
24
|
}));
|
|
19
25
|
});
|
|
20
26
|
process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
|
|
@@ -74,16 +80,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
|
|
|
74
80
|
* If not provided, the container supports line, bar, scatter and pie charts.
|
|
75
81
|
*/
|
|
76
82
|
plugins: PropTypes.arrayOf(PropTypes.object),
|
|
77
|
-
/**
|
|
78
|
-
* The chart will try to wait for the parent container to resolve its size
|
|
79
|
-
* before it renders for the first time.
|
|
80
|
-
*
|
|
81
|
-
* This can be useful in some scenarios where the chart appear to grow after
|
|
82
|
-
* the first render, like when used inside a grid.
|
|
83
|
-
*
|
|
84
|
-
* @default false
|
|
85
|
-
*/
|
|
86
|
-
resolveSizeBeforeRender: PropTypes.bool,
|
|
87
83
|
/**
|
|
88
84
|
* The array of series to display.
|
|
89
85
|
* Each type of series has its own specificity.
|
|
@@ -97,12 +93,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
|
|
|
97
93
|
skipAnimation: PropTypes.bool,
|
|
98
94
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
99
95
|
title: PropTypes.string,
|
|
100
|
-
viewBox: PropTypes.shape({
|
|
101
|
-
height: PropTypes.number,
|
|
102
|
-
width: PropTypes.number,
|
|
103
|
-
x: PropTypes.number,
|
|
104
|
-
y: PropTypes.number
|
|
105
|
-
}),
|
|
106
96
|
/**
|
|
107
97
|
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
108
98
|
*/
|
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { SizeContextState } from '../context/SizeProvider';
|
|
2
3
|
/**
|
|
3
4
|
* Wrapping div that take the shape of its parent.
|
|
4
5
|
*
|
|
5
6
|
* @ignore - do not document.
|
|
6
7
|
*/
|
|
7
|
-
export declare const
|
|
8
|
-
ownerState: Pick<
|
|
9
|
-
}, Pick<
|
|
8
|
+
export declare const ResizableContainerRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
9
|
+
ownerState: Partial<Pick<SizeContextState, "width" | "height">>;
|
|
10
|
+
}, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
|
|
11
|
+
/**
|
|
12
|
+
* Wrapping div that take the shape of its parent.
|
|
13
|
+
*
|
|
14
|
+
* @ignore - do not document.
|
|
15
|
+
*/
|
|
16
|
+
declare function ResizableContainer(props: {
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
}): React.JSX.Element;
|
|
19
|
+
declare namespace ResizableContainer {
|
|
20
|
+
var propTypes: any;
|
|
21
|
+
}
|
|
22
|
+
export { ResizableContainer };
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
1
4
|
import { styled } from '@mui/material/styles';
|
|
5
|
+
import { useSize } from "../context/SizeProvider/index.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
7
|
/**
|
|
3
8
|
* Wrapping div that take the shape of its parent.
|
|
4
9
|
*
|
|
5
10
|
* @ignore - do not document.
|
|
6
11
|
*/
|
|
7
|
-
export const
|
|
12
|
+
export const ResizableContainerRoot = styled('div', {
|
|
8
13
|
name: 'MuiResponsiveChart',
|
|
9
14
|
slot: 'Container'
|
|
10
15
|
})(({
|
|
@@ -23,4 +28,33 @@ export const ResizableContainer = styled('div', {
|
|
|
23
28
|
width: '100%',
|
|
24
29
|
height: '100%'
|
|
25
30
|
}
|
|
26
|
-
}));
|
|
31
|
+
}));
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Wrapping div that take the shape of its parent.
|
|
35
|
+
*
|
|
36
|
+
* @ignore - do not document.
|
|
37
|
+
*/
|
|
38
|
+
function ResizableContainer(props) {
|
|
39
|
+
const {
|
|
40
|
+
inHeight,
|
|
41
|
+
inWidth,
|
|
42
|
+
containerRef
|
|
43
|
+
} = useSize();
|
|
44
|
+
return /*#__PURE__*/_jsx(ResizableContainerRoot, _extends({}, props, {
|
|
45
|
+
ownerState: {
|
|
46
|
+
width: inWidth,
|
|
47
|
+
height: inHeight
|
|
48
|
+
},
|
|
49
|
+
ref: containerRef,
|
|
50
|
+
children: props.children
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
process.env.NODE_ENV !== "production" ? ResizableContainer.propTypes = {
|
|
54
|
+
// ----------------------------- Warning --------------------------------
|
|
55
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
56
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
57
|
+
// ----------------------------------------------------------------------
|
|
58
|
+
children: PropTypes.node
|
|
59
|
+
} : void 0;
|
|
60
|
+
export { ResizableContainer };
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ChartsSurfaceProps } from '../ChartsSurface';
|
|
1
3
|
import { ChartDataProviderProps } from '../context/ChartDataProvider';
|
|
2
4
|
import type { ChartContainerProps } from './ChartContainer';
|
|
3
5
|
export type UseChartContainerPropsReturnValue = {
|
|
4
|
-
hasIntrinsicSize: boolean;
|
|
5
6
|
chartDataProviderProps: ChartDataProviderProps;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
width: ChartContainerProps['width'];
|
|
9
|
-
height: ChartContainerProps['height'];
|
|
10
|
-
};
|
|
11
|
-
ref: React.Ref<HTMLDivElement>;
|
|
7
|
+
chartsSurfaceProps: ChartsSurfaceProps & {
|
|
8
|
+
ref: React.Ref<SVGSVGElement>;
|
|
12
9
|
};
|
|
10
|
+
resizableContainerProps: any;
|
|
11
|
+
children: React.ReactNode;
|
|
13
12
|
};
|
|
14
13
|
export declare const useChartContainerProps: (props: ChartContainerProps, ref: React.Ref<SVGSVGElement>) => UseChartContainerPropsReturnValue;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["width", "height", "
|
|
6
|
-
import { useChartContainerDimensions } from "./useChartContainerDimensions.js";
|
|
4
|
+
const _excluded = ["width", "height", "margin", "children", "series", "colors", "dataset", "desc", "disableAxisListener", "highlightedItem", "onHighlightChange", "plugins", "sx", "title", "xAxis", "yAxis", "zAxis", "skipAnimation"];
|
|
7
5
|
export const useChartContainerProps = (props, ref) => {
|
|
8
6
|
const {
|
|
9
7
|
width,
|
|
10
8
|
height,
|
|
11
|
-
resolveSizeBeforeRender,
|
|
12
9
|
margin,
|
|
13
10
|
children,
|
|
14
11
|
series,
|
|
@@ -21,50 +18,39 @@ export const useChartContainerProps = (props, ref) => {
|
|
|
21
18
|
plugins,
|
|
22
19
|
sx,
|
|
23
20
|
title,
|
|
24
|
-
viewBox,
|
|
25
21
|
xAxis,
|
|
26
22
|
yAxis,
|
|
27
23
|
zAxis,
|
|
28
24
|
skipAnimation
|
|
29
25
|
} = props,
|
|
30
26
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
height
|
|
40
|
-
},
|
|
41
|
-
ref: containerRef
|
|
42
|
-
});
|
|
27
|
+
const resizableContainerProps = other;
|
|
28
|
+
const chartsSurfaceProps = {
|
|
29
|
+
title,
|
|
30
|
+
desc,
|
|
31
|
+
sx,
|
|
32
|
+
disableAxisListener,
|
|
33
|
+
ref
|
|
34
|
+
};
|
|
43
35
|
const chartDataProviderProps = {
|
|
44
36
|
margin,
|
|
45
|
-
children,
|
|
46
37
|
series,
|
|
47
38
|
colors,
|
|
48
39
|
dataset,
|
|
49
|
-
desc,
|
|
50
|
-
disableAxisListener,
|
|
51
40
|
highlightedItem,
|
|
52
41
|
onHighlightChange,
|
|
53
42
|
plugins,
|
|
54
|
-
sx,
|
|
55
|
-
title,
|
|
56
|
-
viewBox,
|
|
57
43
|
xAxis,
|
|
58
44
|
yAxis,
|
|
59
45
|
zAxis,
|
|
60
46
|
skipAnimation,
|
|
61
|
-
width
|
|
62
|
-
height
|
|
63
|
-
ref
|
|
47
|
+
width,
|
|
48
|
+
height
|
|
64
49
|
};
|
|
65
50
|
return {
|
|
66
|
-
hasIntrinsicSize: Boolean(dWidth && dHeight),
|
|
67
51
|
chartDataProviderProps,
|
|
68
|
-
|
|
52
|
+
resizableContainerProps,
|
|
53
|
+
chartsSurfaceProps,
|
|
54
|
+
children
|
|
69
55
|
};
|
|
70
56
|
};
|
|
@@ -1,21 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
/** Styles applied to the root element. */
|
|
4
|
-
root: string;
|
|
5
|
-
}
|
|
6
|
-
export type ChartsAxisHighlightClassKey = keyof ChartsAxisHighlightClasses;
|
|
7
|
-
export declare function getAxisHighlightUtilityClass(slot: string): string;
|
|
8
|
-
export declare const chartsAxisHighlightClasses: ChartsAxisHighlightClasses;
|
|
9
|
-
export declare const ChartsAxisHighlightPath: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
10
|
-
ownerState: {
|
|
11
|
-
axisHighlight: AxisHighlight;
|
|
12
|
-
};
|
|
13
|
-
}, Pick<React.SVGProps<SVGPathElement>, keyof React.SVGProps<SVGPathElement>>, {}>;
|
|
14
|
-
type AxisHighlight = 'none' | 'line' | 'band';
|
|
15
|
-
export type ChartsAxisHighlightProps = {
|
|
16
|
-
x?: AxisHighlight;
|
|
17
|
-
y?: AxisHighlight;
|
|
18
|
-
};
|
|
2
|
+
import { ChartsAxisHighlightProps } from './ChartsAxisHighlight.types';
|
|
19
3
|
/**
|
|
20
4
|
* Demos:
|
|
21
5
|
*
|
|
@@ -1,57 +1,19 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
3
|
import * as React from 'react';
|
|
5
4
|
import PropTypes from 'prop-types';
|
|
6
5
|
import composeClasses from '@mui/utils/composeClasses';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import { InteractionContext } from "../context/InteractionProvider.js";
|
|
11
|
-
import { useCartesianContext } from "../context/CartesianProvider/index.js";
|
|
12
|
-
import { getValueToPositionMapper } from "../hooks/useScale.js";
|
|
13
|
-
import { isBandScale } from "../internals/isBandScale.js";
|
|
6
|
+
import { getAxisHighlightUtilityClass } from "./chartsAxisHighlightClasses.js";
|
|
7
|
+
import ChartsYHighlight from "./ChartsYAxisHighlight.js";
|
|
8
|
+
import ChartsXHighlight from "./ChartsXAxisHighlight.js";
|
|
14
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
-
export function getAxisHighlightUtilityClass(slot) {
|
|
16
|
-
return generateUtilityClass('MuiChartsAxisHighlight', slot);
|
|
17
|
-
}
|
|
18
|
-
export const chartsAxisHighlightClasses = generateUtilityClasses('MuiChartsAxisHighlight', ['root']);
|
|
19
10
|
const useUtilityClasses = () => {
|
|
20
11
|
const slots = {
|
|
21
12
|
root: ['root']
|
|
22
13
|
};
|
|
23
14
|
return composeClasses(slots, getAxisHighlightUtilityClass);
|
|
24
15
|
};
|
|
25
|
-
|
|
26
|
-
name: 'MuiChartsAxisHighlight',
|
|
27
|
-
slot: 'Root',
|
|
28
|
-
overridesResolver: (_, styles) => styles.root
|
|
29
|
-
})(({
|
|
30
|
-
theme
|
|
31
|
-
}) => ({
|
|
32
|
-
pointerEvents: 'none',
|
|
33
|
-
variants: [{
|
|
34
|
-
props: {
|
|
35
|
-
axisHighlight: 'band'
|
|
36
|
-
},
|
|
37
|
-
style: _extends({
|
|
38
|
-
fill: 'white',
|
|
39
|
-
fillOpacity: 0.1
|
|
40
|
-
}, theme.applyStyles('light', {
|
|
41
|
-
fill: 'gray'
|
|
42
|
-
}))
|
|
43
|
-
}, {
|
|
44
|
-
props: {
|
|
45
|
-
axisHighlight: 'line'
|
|
46
|
-
},
|
|
47
|
-
style: _extends({
|
|
48
|
-
strokeDasharray: '5 2',
|
|
49
|
-
stroke: '#ffffff'
|
|
50
|
-
}, theme.applyStyles('light', {
|
|
51
|
-
stroke: '#000000'
|
|
52
|
-
}))
|
|
53
|
-
}]
|
|
54
|
-
}));
|
|
16
|
+
|
|
55
17
|
/**
|
|
56
18
|
* Demos:
|
|
57
19
|
*
|
|
@@ -66,62 +28,14 @@ function ChartsAxisHighlight(props) {
|
|
|
66
28
|
x: xAxisHighlight,
|
|
67
29
|
y: yAxisHighlight
|
|
68
30
|
} = props;
|
|
69
|
-
const {
|
|
70
|
-
xAxisIds,
|
|
71
|
-
xAxis,
|
|
72
|
-
yAxisIds,
|
|
73
|
-
yAxis
|
|
74
|
-
} = useCartesianContext();
|
|
75
31
|
const classes = useUtilityClasses();
|
|
76
|
-
const USED_X_AXIS_ID = xAxisIds[0];
|
|
77
|
-
const USED_Y_AXIS_ID = yAxisIds[0];
|
|
78
|
-
const xScale = xAxis[USED_X_AXIS_ID].scale;
|
|
79
|
-
const yScale = yAxis[USED_Y_AXIS_ID].scale;
|
|
80
|
-
const {
|
|
81
|
-
axis
|
|
82
|
-
} = React.useContext(InteractionContext);
|
|
83
|
-
const getXPosition = getValueToPositionMapper(xScale);
|
|
84
|
-
const getYPosition = getValueToPositionMapper(yScale);
|
|
85
|
-
const axisX = axis.x;
|
|
86
|
-
const axisY = axis.y;
|
|
87
|
-
const isBandScaleX = xAxisHighlight === 'band' && axisX !== null && isBandScale(xScale);
|
|
88
|
-
const isBandScaleY = yAxisHighlight === 'band' && axisY !== null && isBandScale(yScale);
|
|
89
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
90
|
-
const isXError = isBandScaleX && xScale(axisX.value) === undefined;
|
|
91
|
-
const isYError = isBandScaleY && yScale(axisY.value) === undefined;
|
|
92
|
-
if (isXError || isYError) {
|
|
93
|
-
console.error([`MUI X: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
32
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
97
|
-
children: [
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
axisHighlight: 'band'
|
|
104
|
-
}
|
|
105
|
-
}), isBandScaleY && yScale(axisY.value) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
|
|
106
|
-
d: `M ${xScale.range()[0]} ${
|
|
107
|
-
// @ts-expect-error, yScale value is checked in the statement above
|
|
108
|
-
yScale(axisY.value) - (yScale.step() - yScale.bandwidth()) / 2} l 0 ${yScale.step()} l ${xScale.range()[1] - xScale.range()[0]} 0 l 0 ${-yScale.step()} Z`,
|
|
109
|
-
className: classes.root,
|
|
110
|
-
ownerState: {
|
|
111
|
-
axisHighlight: 'band'
|
|
112
|
-
}
|
|
113
|
-
}), xAxisHighlight === 'line' && axis.x !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
|
|
114
|
-
d: `M ${getXPosition(axis.x.value)} ${yScale.range()[0]} L ${getXPosition(axis.x.value)} ${yScale.range()[1]}`,
|
|
115
|
-
className: classes.root,
|
|
116
|
-
ownerState: {
|
|
117
|
-
axisHighlight: 'line'
|
|
118
|
-
}
|
|
119
|
-
}), yAxisHighlight === 'line' && axis.y !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
|
|
120
|
-
d: `M ${xScale.range()[0]} ${getYPosition(axis.y.value)} L ${xScale.range()[1]} ${getYPosition(axis.y.value)}`,
|
|
121
|
-
className: classes.root,
|
|
122
|
-
ownerState: {
|
|
123
|
-
axisHighlight: 'line'
|
|
124
|
-
}
|
|
33
|
+
children: [xAxisHighlight && /*#__PURE__*/_jsx(ChartsXHighlight, {
|
|
34
|
+
type: xAxisHighlight,
|
|
35
|
+
classes: classes
|
|
36
|
+
}), yAxisHighlight && /*#__PURE__*/_jsx(ChartsYHighlight, {
|
|
37
|
+
type: yAxisHighlight,
|
|
38
|
+
classes: classes
|
|
125
39
|
})]
|
|
126
40
|
});
|
|
127
41
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ChartsAxisHighlightType } from './ChartsAxisHighlight.types';
|
|
2
|
+
export declare const ChartsAxisHighlightPath: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
3
|
+
ownerState: {
|
|
4
|
+
axisHighlight: ChartsAxisHighlightType;
|
|
5
|
+
};
|
|
6
|
+
}, Pick<import("react").SVGProps<SVGPathElement>, keyof import("react").SVGProps<SVGPathElement>>, {}>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import { styled } from '@mui/material/styles';
|
|
5
|
+
export const ChartsAxisHighlightPath = styled('path', {
|
|
6
|
+
name: 'MuiChartsAxisHighlight',
|
|
7
|
+
slot: 'Root',
|
|
8
|
+
overridesResolver: (_, styles) => styles.root
|
|
9
|
+
})(({
|
|
10
|
+
theme
|
|
11
|
+
}) => ({
|
|
12
|
+
pointerEvents: 'none',
|
|
13
|
+
variants: [{
|
|
14
|
+
props: {
|
|
15
|
+
axisHighlight: 'band'
|
|
16
|
+
},
|
|
17
|
+
style: _extends({
|
|
18
|
+
fill: 'white',
|
|
19
|
+
fillOpacity: 0.1
|
|
20
|
+
}, theme.applyStyles('light', {
|
|
21
|
+
fill: 'gray'
|
|
22
|
+
}))
|
|
23
|
+
}, {
|
|
24
|
+
props: {
|
|
25
|
+
axisHighlight: 'line'
|
|
26
|
+
},
|
|
27
|
+
style: _extends({
|
|
28
|
+
strokeDasharray: '5 2',
|
|
29
|
+
stroke: '#ffffff'
|
|
30
|
+
}, theme.applyStyles('light', {
|
|
31
|
+
stroke: '#000000'
|
|
32
|
+
}))
|
|
33
|
+
}]
|
|
34
|
+
}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ChartsAxisHighlightType } from './ChartsAxisHighlight.types';
|
|
3
|
+
import { ChartsAxisHighlightClasses } from './chartsAxisHighlightClasses';
|
|
4
|
+
/**
|
|
5
|
+
* @ignore - internal component.
|
|
6
|
+
*/
|
|
7
|
+
export default function ChartsXHighlight(props: {
|
|
8
|
+
type: ChartsAxisHighlightType;
|
|
9
|
+
classes: ChartsAxisHighlightClasses;
|
|
10
|
+
}): React.JSX.Element;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { getValueToPositionMapper, useXScale } from "../hooks/useScale.js";
|
|
5
|
+
import { isBandScale } from "../internals/isBandScale.js";
|
|
6
|
+
import { useSelector } from "../internals/useSelector.js";
|
|
7
|
+
import { useStore } from "../internals/useStore.js";
|
|
8
|
+
import { selectorChartsInteractionXAxis } from "../context/InteractionSelectors.js";
|
|
9
|
+
import { useDrawingArea } from "../hooks/index.js";
|
|
10
|
+
import { ChartsAxisHighlightPath } from "./ChartsAxisHighlightPath.js";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @ignore - internal component.
|
|
14
|
+
*/
|
|
15
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
|
+
export default function ChartsXHighlight(props) {
|
|
17
|
+
const {
|
|
18
|
+
type,
|
|
19
|
+
classes
|
|
20
|
+
} = props;
|
|
21
|
+
const {
|
|
22
|
+
top,
|
|
23
|
+
height
|
|
24
|
+
} = useDrawingArea();
|
|
25
|
+
const xScale = useXScale();
|
|
26
|
+
const store = useStore();
|
|
27
|
+
const axisX = useSelector(store, selectorChartsInteractionXAxis);
|
|
28
|
+
const getXPosition = getValueToPositionMapper(xScale);
|
|
29
|
+
const isBandScaleX = type === 'band' && axisX !== null && isBandScale(xScale);
|
|
30
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
31
|
+
const isError = isBandScaleX && xScale(axisX.value) === undefined;
|
|
32
|
+
if (isError) {
|
|
33
|
+
console.error([`MUI X: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
37
|
+
children: [isBandScaleX && xScale(axisX.value) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath
|
|
38
|
+
// @ts-expect-error, xScale value is checked in the statement above
|
|
39
|
+
, {
|
|
40
|
+
d: `M ${xScale(axisX.value) - (xScale.step() - xScale.bandwidth()) / 2} ${top} l ${xScale.step()} 0 l 0 ${height} l ${-xScale.step()} 0 Z`,
|
|
41
|
+
className: classes.root,
|
|
42
|
+
ownerState: {
|
|
43
|
+
axisHighlight: 'band'
|
|
44
|
+
}
|
|
45
|
+
}), type === 'line' && axisX !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
|
|
46
|
+
d: `M ${getXPosition(axisX.value)} ${top} L ${getXPosition(axisX.value)} ${top + height}`,
|
|
47
|
+
className: classes.root,
|
|
48
|
+
ownerState: {
|
|
49
|
+
axisHighlight: 'line'
|
|
50
|
+
}
|
|
51
|
+
})]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ChartsAxisHighlightType } from './ChartsAxisHighlight.types';
|
|
3
|
+
import { ChartsAxisHighlightClasses } from './chartsAxisHighlightClasses';
|
|
4
|
+
/**
|
|
5
|
+
* @ignore - internal component.
|
|
6
|
+
*/
|
|
7
|
+
export default function ChartsYHighlight(props: {
|
|
8
|
+
type: ChartsAxisHighlightType;
|
|
9
|
+
classes: ChartsAxisHighlightClasses;
|
|
10
|
+
}): React.JSX.Element;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { getValueToPositionMapper, useYScale } from "../hooks/useScale.js";
|
|
5
|
+
import { isBandScale } from "../internals/isBandScale.js";
|
|
6
|
+
import { useSelector } from "../internals/useSelector.js";
|
|
7
|
+
import { useStore } from "../internals/useStore.js";
|
|
8
|
+
import { selectorChartsInteractionYAxis } from "../context/InteractionSelectors.js";
|
|
9
|
+
import { useDrawingArea } from "../hooks/index.js";
|
|
10
|
+
import { ChartsAxisHighlightPath } from "./ChartsAxisHighlightPath.js";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @ignore - internal component.
|
|
14
|
+
*/
|
|
15
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
|
+
export default function ChartsYHighlight(props) {
|
|
17
|
+
const {
|
|
18
|
+
type,
|
|
19
|
+
classes
|
|
20
|
+
} = props;
|
|
21
|
+
const {
|
|
22
|
+
left,
|
|
23
|
+
width
|
|
24
|
+
} = useDrawingArea();
|
|
25
|
+
const yScale = useYScale();
|
|
26
|
+
const store = useStore();
|
|
27
|
+
const axisY = useSelector(store, selectorChartsInteractionYAxis);
|
|
28
|
+
const getYPosition = getValueToPositionMapper(yScale);
|
|
29
|
+
const isBandScaleY = type === 'band' && axisY !== null && isBandScale(yScale);
|
|
30
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
31
|
+
const isError = isBandScaleY && yScale(axisY.value) === undefined;
|
|
32
|
+
if (isError) {
|
|
33
|
+
console.error([`MUI X: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
37
|
+
children: [isBandScaleY && yScale(axisY.value) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
|
|
38
|
+
d: `M ${left} ${
|
|
39
|
+
// @ts-expect-error, yScale value is checked in the statement above
|
|
40
|
+
yScale(axisY.value) - (yScale.step() - yScale.bandwidth()) / 2} l 0 ${yScale.step()} l ${width} 0 l 0 ${-yScale.step()} Z`,
|
|
41
|
+
className: classes.root,
|
|
42
|
+
ownerState: {
|
|
43
|
+
axisHighlight: 'band'
|
|
44
|
+
}
|
|
45
|
+
}), type === 'line' && axisY !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
|
|
46
|
+
d: `M ${left} ${getYPosition(axisY.value)} L ${left + width} ${getYPosition(axisY.value)}`,
|
|
47
|
+
className: classes.root,
|
|
48
|
+
ownerState: {
|
|
49
|
+
axisHighlight: 'line'
|
|
50
|
+
}
|
|
51
|
+
})]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ChartsAxisHighlightClasses {
|
|
2
|
+
/** Styles applied to the root element. */
|
|
3
|
+
root: string;
|
|
4
|
+
}
|
|
5
|
+
export type ChartsAxisHighlightClassKey = keyof ChartsAxisHighlightClasses;
|
|
6
|
+
export declare function getAxisHighlightUtilityClass(slot: string): string;
|
|
7
|
+
export declare const chartsAxisHighlightClasses: ChartsAxisHighlightClasses;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import generateUtilityClass from '@mui/utils/generateUtilityClass';
|
|
2
|
+
import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
3
|
+
export function getAxisHighlightUtilityClass(slot) {
|
|
4
|
+
return generateUtilityClass('MuiChartsAxisHighlight', slot);
|
|
5
|
+
}
|
|
6
|
+
export const chartsAxisHighlightClasses = generateUtilityClasses('MuiChartsAxisHighlight', ['root']);
|
package/ChartsGrid/ChartsGrid.js
CHANGED
|
@@ -10,7 +10,7 @@ import { useThemeProps } from '@mui/material/styles';
|
|
|
10
10
|
import { useCartesianContext } from "../context/CartesianProvider/index.js";
|
|
11
11
|
import { getChartsGridUtilityClass } from "./chartsGridClasses.js";
|
|
12
12
|
import { useDrawingArea } from "../hooks/useDrawingArea.js";
|
|
13
|
-
import { GridRoot } from "./
|
|
13
|
+
import { GridRoot } from "./styledComponents.js";
|
|
14
14
|
import { ChartsGridVertical } from "./ChartsVerticalGrid.js";
|
|
15
15
|
import { ChartsGridHorizontal } from "./ChartsHorizontalGrid.js";
|
|
16
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { DrawingAreaState } from '../context/DrawingAreaProvider';
|
|
3
3
|
import { AxisDefaultized, ChartsYAxisProps, ScaleName } from '../models/axis';
|
|
4
4
|
import { ChartsGridClasses } from './chartsGridClasses';
|
|
5
5
|
interface ChartsGridHorizontalProps {
|
|
6
6
|
axis: AxisDefaultized<ScaleName, any, ChartsYAxisProps>;
|
|
7
|
-
drawingArea:
|
|
7
|
+
drawingArea: DrawingAreaState;
|
|
8
8
|
classes: Partial<ChartsGridClasses>;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useTicks } from "../hooks/useTicks.js";
|
|
3
|
-
import { GridLine } from "./
|
|
3
|
+
import { GridLine } from "./styledComponents.js";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
/**
|
|
6
6
|
* @ignore - internal component.
|
|
@@ -23,7 +23,7 @@ export function ChartsGridHorizontal(props) {
|
|
|
23
23
|
});
|
|
24
24
|
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
25
25
|
children: yTicks.map(({
|
|
26
|
-
|
|
26
|
+
value,
|
|
27
27
|
offset
|
|
28
28
|
}) => /*#__PURE__*/_jsx(GridLine, {
|
|
29
29
|
y1: offset,
|
|
@@ -31,6 +31,6 @@ export function ChartsGridHorizontal(props) {
|
|
|
31
31
|
x1: drawingArea.left,
|
|
32
32
|
x2: drawingArea.left + drawingArea.width,
|
|
33
33
|
className: classes.horizontalLine
|
|
34
|
-
}, `horizontal-${
|
|
34
|
+
}, `horizontal-${value}`))
|
|
35
35
|
});
|
|
36
36
|
}
|