@mui/x-charts 6.0.0-alpha.9 → 6.18.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/BarChart.d.ts +26 -5
- package/BarChart/BarChart.js +93 -17
- package/BarChart/BarElement.d.ts +1319 -4
- package/BarChart/BarElement.js +10 -10
- package/BarChart/BarPlot.d.ts +17 -1
- package/BarChart/BarPlot.js +152 -66
- package/BarChart/formatter.js +2 -3
- package/BarChart/legend.js +1 -2
- package/CHANGELOG.md +797 -59
- package/ChartContainer/index.js +7 -5
- package/ChartsAxis/ChartsAxis.d.ts +9 -0
- package/ChartsAxis/ChartsAxis.js +33 -7
- package/ChartsAxis/axisClasses.d.ts +3 -3
- package/ChartsAxis/axisClasses.js +1 -2
- package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +21 -0
- package/ChartsAxisHighlight/ChartsAxisHighlight.js +61 -22
- package/ChartsClipPath/ChartsClipPath.d.ts +5 -0
- package/ChartsClipPath/ChartsClipPath.js +7 -2
- package/ChartsLegend/ChartsLegend.d.ts +45 -24
- package/ChartsLegend/ChartsLegend.js +193 -151
- package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
- package/ChartsLegend/chartsLegendClasses.js +3 -4
- package/ChartsLegend/utils.d.ts +1 -6
- package/ChartsReferenceLine/ChartsReferenceLine.d.ts +10 -0
- package/ChartsReferenceLine/ChartsReferenceLine.js +78 -0
- package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +13 -0
- package/ChartsReferenceLine/ChartsXReferenceLine.js +112 -0
- package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +13 -0
- package/ChartsReferenceLine/ChartsYReferenceLine.js +112 -0
- package/ChartsReferenceLine/chartsReferenceLineClasses.d.ts +15 -0
- package/ChartsReferenceLine/chartsReferenceLineClasses.js +14 -0
- package/ChartsReferenceLine/common.d.ts +41 -0
- package/ChartsReferenceLine/common.js +27 -0
- package/ChartsReferenceLine/index.d.ts +2 -0
- package/ChartsReferenceLine/index.js +27 -0
- package/ChartsReferenceLine/package.json +6 -0
- package/ChartsSurface.d.ts +12 -1
- package/ChartsSurface.js +9 -18
- package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -0
- package/ChartsTooltip/ChartsAxisTooltipContent.js +46 -32
- package/ChartsTooltip/ChartsItemTooltipContent.d.ts +3 -2
- package/ChartsTooltip/ChartsItemTooltipContent.js +18 -9
- package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
- package/ChartsTooltip/ChartsTooltip.js +62 -18
- package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -10
- package/ChartsTooltip/ChartsTooltipTable.js +22 -20
- package/ChartsTooltip/tooltipClasses.js +1 -2
- package/ChartsTooltip/utils.js +2 -2
- package/ChartsXAxis/ChartsXAxis.d.ts +9 -0
- package/ChartsXAxis/ChartsXAxis.js +170 -45
- package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
- package/ChartsYAxis/ChartsYAxis.js +95 -38
- package/LineChart/AreaElement.d.ts +11 -1
- package/LineChart/AreaElement.js +14 -6
- package/LineChart/AreaPlot.d.ts +11 -0
- package/LineChart/AreaPlot.js +27 -8
- package/LineChart/LineChart.d.ts +23 -3
- package/LineChart/LineChart.js +89 -17
- package/LineChart/LineElement.d.ts +11 -1
- package/LineChart/LineElement.js +14 -6
- package/LineChart/LineHighlightElement.d.ts +10 -0
- package/LineChart/LineHighlightElement.js +13 -4
- package/LineChart/LineHighlightPlot.d.ts +10 -0
- package/LineChart/LineHighlightPlot.js +15 -4
- package/LineChart/LinePlot.d.ts +10 -0
- package/LineChart/LinePlot.js +25 -12
- package/LineChart/MarkElement.d.ts +10 -0
- package/LineChart/MarkElement.js +14 -5
- package/LineChart/MarkPlot.d.ts +10 -0
- package/LineChart/MarkPlot.js +42 -10
- package/LineChart/formatter.js +5 -5
- package/LineChart/legend.js +1 -2
- package/PieChart/PieArc.d.ts +11 -13
- package/PieChart/PieArc.js +28 -60
- package/PieChart/PieArcLabel.d.ts +8 -9
- package/PieChart/PieArcLabel.js +46 -38
- package/PieChart/PieArcLabelPlot.d.ts +28 -0
- package/PieChart/PieArcLabelPlot.js +99 -0
- package/PieChart/PieArcPlot.d.ts +35 -0
- package/PieChart/PieArcPlot.js +92 -0
- package/PieChart/PieChart.d.ts +19 -5
- package/PieChart/PieChart.js +95 -18
- package/PieChart/PiePlot.d.ts +15 -9
- package/PieChart/PiePlot.js +77 -55
- package/PieChart/dataTransform/transition.d.ts +4 -0
- package/PieChart/dataTransform/transition.js +136 -0
- package/PieChart/dataTransform/useTransformData.d.ts +15 -0
- package/PieChart/dataTransform/useTransformData.js +67 -0
- package/PieChart/formatter.js +1 -2
- package/PieChart/legend.js +1 -2
- package/README.md +8 -14
- package/ResponsiveChartContainer/index.d.ts +13 -3
- package/ResponsiveChartContainer/index.js +7 -8
- package/ScatterChart/Scatter.d.ts +10 -0
- package/ScatterChart/Scatter.js +12 -2
- package/ScatterChart/ScatterChart.d.ts +16 -3
- package/ScatterChart/ScatterChart.js +77 -16
- package/ScatterChart/ScatterPlot.d.ts +10 -0
- package/ScatterChart/ScatterPlot.js +12 -2
- package/ScatterChart/formatter.js +1 -2
- package/ScatterChart/legend.js +1 -2
- package/SparkLineChart/SparkLineChart.d.ts +12 -3
- package/SparkLineChart/SparkLineChart.js +50 -7
- package/colorPalettes/colorPalettes.js +6 -12
- package/constants.js +5 -8
- package/context/CartesianContextProvider.d.ts +26 -1
- package/context/CartesianContextProvider.js +42 -16
- package/context/DrawingProvider.d.ts +25 -0
- package/context/DrawingProvider.js +18 -6
- package/context/HighlightProvider.d.ts +17 -0
- package/context/HighlightProvider.js +3 -4
- package/context/InteractionProvider.d.ts +6 -0
- package/context/InteractionProvider.js +3 -4
- package/context/SeriesContextProvider.d.ts +5 -0
- package/context/SeriesContextProvider.js +3 -4
- package/esm/BarChart/BarChart.js +90 -13
- package/esm/BarChart/BarElement.js +7 -4
- package/esm/BarChart/BarPlot.js +152 -67
- package/esm/BarChart/formatter.js +1 -1
- package/esm/ChartContainer/index.js +3 -0
- package/esm/ChartsAxis/ChartsAxis.js +32 -5
- package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
- package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
- package/esm/ChartsLegend/ChartsLegend.js +190 -144
- package/esm/ChartsLegend/chartsLegendClasses.js +1 -1
- package/esm/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
- package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
- package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
- package/esm/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
- package/esm/ChartsReferenceLine/common.js +20 -0
- package/esm/ChartsReferenceLine/index.js +2 -0
- package/esm/ChartsSurface.js +4 -12
- package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
- package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
- package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
- package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
- package/esm/ChartsXAxis/ChartsXAxis.js +168 -43
- package/esm/ChartsYAxis/ChartsYAxis.js +93 -36
- package/esm/LineChart/AreaElement.js +10 -0
- package/esm/LineChart/AreaPlot.js +26 -6
- package/esm/LineChart/LineChart.js +86 -13
- package/esm/LineChart/LineElement.js +10 -0
- package/esm/LineChart/LineHighlightElement.js +10 -0
- package/esm/LineChart/LineHighlightPlot.js +13 -2
- package/esm/LineChart/LinePlot.js +25 -14
- package/esm/LineChart/MarkElement.js +11 -1
- package/esm/LineChart/MarkPlot.js +40 -8
- package/esm/LineChart/formatter.js +7 -3
- package/esm/PieChart/PieArc.js +26 -58
- package/esm/PieChart/PieArcLabel.js +43 -34
- package/esm/PieChart/PieArcLabelPlot.js +92 -0
- package/esm/PieChart/PieArcPlot.js +84 -0
- package/esm/PieChart/PieChart.js +93 -16
- package/esm/PieChart/PiePlot.js +76 -57
- package/esm/PieChart/dataTransform/transition.js +130 -0
- package/esm/PieChart/dataTransform/useTransformData.js +59 -0
- package/esm/ResponsiveChartContainer/index.js +3 -3
- package/esm/ScatterChart/Scatter.js +10 -0
- package/esm/ScatterChart/ScatterChart.js +74 -12
- package/esm/ScatterChart/ScatterPlot.js +10 -0
- package/esm/SparkLineChart/SparkLineChart.js +47 -3
- package/esm/constants.js +1 -1
- package/esm/context/CartesianContextProvider.js +41 -14
- package/esm/context/DrawingProvider.js +14 -0
- package/esm/hooks/useChartDimensions.js +2 -0
- package/esm/hooks/useMounted.js +16 -0
- package/esm/hooks/useReducedMotion.js +27 -0
- package/esm/hooks/useTicks.js +15 -9
- package/esm/index.js +1 -0
- package/esm/internals/components/AxisSharedComponents.js +15 -70
- package/esm/internals/components/ChartsText.js +77 -0
- package/esm/internals/domUtils.js +113 -0
- package/esm/internals/geometry.js +36 -0
- package/hooks/useAxisEvents.js +2 -2
- package/hooks/useChartDimensions.d.ts +2 -0
- package/hooks/useChartDimensions.js +5 -4
- package/hooks/useDrawingArea.js +2 -2
- package/hooks/useInteractionItemProps.js +2 -2
- package/hooks/useMounted.d.ts +1 -0
- package/hooks/useMounted.js +25 -0
- package/hooks/useReducedMotion.d.ts +8 -0
- package/hooks/useReducedMotion.js +33 -0
- package/hooks/useScale.d.ts +2 -2
- package/hooks/useScale.js +2 -2
- package/hooks/useTicks.d.ts +19 -11
- package/hooks/useTicks.js +19 -14
- package/index.d.ts +1 -0
- package/index.js +12 -1
- package/internals/components/AxisSharedComponents.d.ts +0 -4
- package/internals/components/AxisSharedComponents.js +18 -78
- package/internals/components/ChartsText.d.ts +35 -0
- package/internals/components/ChartsText.js +87 -0
- package/internals/defaultizeColor.d.ts +7 -2
- package/internals/defaultizeValueFormatter.js +1 -2
- package/internals/domUtils.d.ts +13 -0
- package/internals/domUtils.js +122 -0
- package/internals/geometry.d.ts +9 -0
- package/internals/geometry.js +42 -0
- package/internals/isBandScale.d.ts +3 -1
- package/internals/stackSeries.js +2 -4
- package/internals/utils.d.ts +5 -0
- package/legacy/BarChart/BarChart.js +90 -13
- package/legacy/BarChart/BarElement.js +6 -3
- package/legacy/BarChart/BarPlot.js +151 -63
- package/legacy/BarChart/formatter.js +1 -1
- package/legacy/ChartContainer/index.js +3 -0
- package/legacy/ChartsAxis/ChartsAxis.js +32 -5
- package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
- package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
- package/legacy/ChartsLegend/ChartsLegend.js +205 -142
- package/legacy/ChartsLegend/chartsLegendClasses.js +1 -1
- package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
- package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
- package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
- package/legacy/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
- package/legacy/ChartsReferenceLine/common.js +20 -0
- package/legacy/ChartsReferenceLine/index.js +2 -0
- package/legacy/ChartsSurface.js +3 -12
- package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
- package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
- package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
- package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
- package/legacy/ChartsXAxis/ChartsXAxis.js +176 -50
- package/legacy/ChartsYAxis/ChartsYAxis.js +97 -41
- package/legacy/LineChart/AreaElement.js +10 -0
- package/legacy/LineChart/AreaPlot.js +31 -7
- package/legacy/LineChart/LineChart.js +86 -13
- package/legacy/LineChart/LineElement.js +10 -0
- package/legacy/LineChart/LineHighlightElement.js +10 -0
- package/legacy/LineChart/LineHighlightPlot.js +13 -2
- package/legacy/LineChart/LinePlot.js +29 -12
- package/legacy/LineChart/MarkElement.js +11 -1
- package/legacy/LineChart/MarkPlot.js +39 -8
- package/legacy/LineChart/formatter.js +7 -3
- package/legacy/PieChart/PieArc.js +30 -62
- package/legacy/PieChart/PieArcLabel.js +48 -34
- package/legacy/PieChart/PieArcLabelPlot.js +93 -0
- package/legacy/PieChart/PieArcPlot.js +84 -0
- package/legacy/PieChart/PieChart.js +93 -16
- package/legacy/PieChart/PiePlot.js +76 -59
- package/legacy/PieChart/dataTransform/transition.js +142 -0
- package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
- package/legacy/ResponsiveChartContainer/index.js +3 -3
- package/legacy/ScatterChart/Scatter.js +10 -0
- package/legacy/ScatterChart/ScatterChart.js +74 -12
- package/legacy/ScatterChart/ScatterPlot.js +10 -0
- package/legacy/SparkLineChart/SparkLineChart.js +47 -3
- package/legacy/constants.js +1 -1
- package/legacy/context/CartesianContextProvider.js +41 -14
- package/legacy/context/DrawingProvider.js +14 -0
- package/legacy/hooks/useChartDimensions.js +2 -0
- package/legacy/hooks/useMounted.js +21 -0
- package/legacy/hooks/useReducedMotion.js +27 -0
- package/legacy/hooks/useTicks.js +16 -9
- package/legacy/index.js +2 -1
- package/legacy/internals/components/AxisSharedComponents.js +11 -65
- package/legacy/internals/components/ChartsText.js +79 -0
- package/legacy/internals/domUtils.js +121 -0
- package/legacy/internals/geometry.js +37 -0
- package/models/axis.d.ts +58 -20
- package/models/layout.d.ts +13 -6
- package/models/seriesType/common.d.ts +16 -0
- package/models/seriesType/line.d.ts +8 -3
- package/models/seriesType/pie.d.ts +5 -1
- package/modern/BarChart/BarChart.js +90 -13
- package/modern/BarChart/BarElement.js +7 -4
- package/modern/BarChart/BarPlot.js +149 -65
- package/modern/BarChart/formatter.js +1 -1
- package/modern/ChartContainer/index.js +3 -0
- package/modern/ChartsAxis/ChartsAxis.js +31 -5
- package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
- package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
- package/modern/ChartsLegend/ChartsLegend.js +190 -144
- package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
- package/modern/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
- package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +104 -0
- package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +104 -0
- package/modern/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
- package/modern/ChartsReferenceLine/common.js +20 -0
- package/modern/ChartsReferenceLine/index.js +2 -0
- package/modern/ChartsSurface.js +4 -12
- package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
- package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
- package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
- package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
- package/modern/ChartsXAxis/ChartsXAxis.js +167 -42
- package/modern/ChartsYAxis/ChartsYAxis.js +92 -35
- package/modern/LineChart/AreaElement.js +10 -0
- package/modern/LineChart/AreaPlot.js +25 -6
- package/modern/LineChart/LineChart.js +86 -13
- package/modern/LineChart/LineElement.js +10 -0
- package/modern/LineChart/LineHighlightElement.js +10 -0
- package/modern/LineChart/LineHighlightPlot.js +13 -2
- package/modern/LineChart/LinePlot.js +23 -10
- package/modern/LineChart/MarkElement.js +11 -1
- package/modern/LineChart/MarkPlot.js +40 -8
- package/modern/LineChart/formatter.js +4 -3
- package/modern/PieChart/PieArc.js +26 -57
- package/modern/PieChart/PieArcLabel.js +43 -34
- package/modern/PieChart/PieArcLabelPlot.js +90 -0
- package/modern/PieChart/PieArcPlot.js +83 -0
- package/modern/PieChart/PieChart.js +93 -16
- package/modern/PieChart/PiePlot.js +76 -55
- package/modern/PieChart/dataTransform/transition.js +130 -0
- package/modern/PieChart/dataTransform/useTransformData.js +58 -0
- package/modern/ResponsiveChartContainer/index.js +3 -3
- package/modern/ScatterChart/Scatter.js +10 -0
- package/modern/ScatterChart/ScatterChart.js +74 -12
- package/modern/ScatterChart/ScatterPlot.js +10 -0
- package/modern/SparkLineChart/SparkLineChart.js +47 -3
- package/modern/constants.js +1 -1
- package/modern/context/CartesianContextProvider.js +40 -13
- package/modern/context/DrawingProvider.js +14 -0
- package/modern/hooks/useChartDimensions.js +2 -0
- package/modern/hooks/useMounted.js +16 -0
- package/modern/hooks/useReducedMotion.js +27 -0
- package/modern/hooks/useTicks.js +15 -9
- package/modern/index.js +2 -1
- package/modern/internals/components/AxisSharedComponents.js +15 -70
- package/modern/internals/components/ChartsText.js +77 -0
- package/modern/internals/domUtils.js +113 -0
- package/modern/internals/geometry.js +36 -0
- package/package.json +9 -6
- package/themeAugmentation/components.d.ts +1 -0
- package/themeAugmentation/overrides.d.ts +2 -0
|
@@ -10,6 +10,17 @@ import { AreaElement } from './AreaElement';
|
|
|
10
10
|
import { getValueToPositionMapper } from '../hooks/useScale';
|
|
11
11
|
import getCurveFactory from '../internals/getCurve';
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
/**
|
|
14
|
+
* Demos:
|
|
15
|
+
*
|
|
16
|
+
* - [Lines](https://mui.com/x/react-charts/lines/)
|
|
17
|
+
* - [Areas demonstration](https://mui.com/x/react-charts/areas-demo/)
|
|
18
|
+
* - [Stacking](https://mui.com/x/react-charts/stacking/)
|
|
19
|
+
*
|
|
20
|
+
* API:
|
|
21
|
+
*
|
|
22
|
+
* - [AreaPlot API](https://mui.com/x/api/charts/area-plot/)
|
|
23
|
+
*/
|
|
13
24
|
function AreaPlot(props) {
|
|
14
25
|
var slots = props.slots,
|
|
15
26
|
slotProps = props.slotProps,
|
|
@@ -31,32 +42,45 @@ function AreaPlot(props) {
|
|
|
31
42
|
children: stackingGroups.flatMap(function (_ref) {
|
|
32
43
|
var groupIds = _ref.ids;
|
|
33
44
|
return groupIds.flatMap(function (seriesId) {
|
|
45
|
+
var _xData$map;
|
|
34
46
|
var _series$seriesId = series[seriesId],
|
|
35
47
|
_series$seriesId$xAxi = _series$seriesId.xAxisKey,
|
|
36
48
|
xAxisKey = _series$seriesId$xAxi === void 0 ? defaultXAxisId : _series$seriesId$xAxi,
|
|
37
49
|
_series$seriesId$yAxi = _series$seriesId.yAxisKey,
|
|
38
50
|
yAxisKey = _series$seriesId$yAxi === void 0 ? defaultYAxisId : _series$seriesId$yAxi,
|
|
39
|
-
stackedData = _series$seriesId.stackedData
|
|
51
|
+
stackedData = _series$seriesId.stackedData,
|
|
52
|
+
data = _series$seriesId.data,
|
|
53
|
+
connectNulls = _series$seriesId.connectNulls;
|
|
40
54
|
var xScale = getValueToPositionMapper(xAxis[xAxisKey].scale);
|
|
41
55
|
var yScale = yAxis[yAxisKey].scale;
|
|
42
56
|
var xData = xAxis[xAxisKey].data;
|
|
43
|
-
if (
|
|
44
|
-
|
|
57
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
58
|
+
if (xData === undefined) {
|
|
59
|
+
throw new Error("Axis of id \"".concat(xAxisKey, "\" should have data property to be able to display a line plot."));
|
|
60
|
+
}
|
|
61
|
+
if (xData.length < stackedData.length) {
|
|
62
|
+
throw new Error("MUI: data length of the x axis (".concat(xData.length, " items) is lower than the length of series (").concat(stackedData.length, " items)"));
|
|
63
|
+
}
|
|
45
64
|
}
|
|
46
65
|
var areaPath = d3Area().x(function (d) {
|
|
47
66
|
return xScale(d.x);
|
|
67
|
+
}).defined(function (_, i) {
|
|
68
|
+
return connectNulls || data[i] != null;
|
|
48
69
|
}).y0(function (d) {
|
|
49
|
-
return yScale(d.y[0]);
|
|
70
|
+
return d.y && yScale(d.y[0]);
|
|
50
71
|
}).y1(function (d) {
|
|
51
|
-
return yScale(d.y[1]);
|
|
72
|
+
return d.y && yScale(d.y[1]);
|
|
52
73
|
});
|
|
53
74
|
var curve = getCurveFactory(series[seriesId].curve);
|
|
54
|
-
var
|
|
75
|
+
var formattedData = (_xData$map = xData == null ? void 0 : xData.map(function (x, index) {
|
|
55
76
|
return {
|
|
56
77
|
x: x,
|
|
57
78
|
y: stackedData[index]
|
|
58
79
|
};
|
|
59
|
-
});
|
|
80
|
+
})) != null ? _xData$map : [];
|
|
81
|
+
var d3Data = connectNulls ? formattedData.filter(function (_, i) {
|
|
82
|
+
return data[i] != null;
|
|
83
|
+
}) : formattedData;
|
|
60
84
|
return !!series[seriesId].area && /*#__PURE__*/_jsx(AreaElement, {
|
|
61
85
|
id: seriesId,
|
|
62
86
|
d: areaPath.curve(curve)(d3Data) || undefined,
|
|
@@ -16,6 +16,16 @@ import { ChartsClipPath } from '../ChartsClipPath';
|
|
|
16
16
|
import { LineHighlightPlot } from './LineHighlightPlot';
|
|
17
17
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
18
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
|
+
/**
|
|
20
|
+
* Demos:
|
|
21
|
+
*
|
|
22
|
+
* - [Lines](https://mui.com/x/react-charts/lines/)
|
|
23
|
+
* - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
|
|
24
|
+
*
|
|
25
|
+
* API:
|
|
26
|
+
*
|
|
27
|
+
* - [LineChart API](https://mui.com/x/api/charts/line-chart/)
|
|
28
|
+
*/
|
|
19
29
|
var LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
|
|
20
30
|
var xAxis = props.xAxis,
|
|
21
31
|
yAxis = props.yAxis,
|
|
@@ -95,7 +105,10 @@ var LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
|
|
|
95
105
|
}), /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legend, {
|
|
96
106
|
slots: slots,
|
|
97
107
|
slotProps: slotProps
|
|
98
|
-
})), /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltip
|
|
108
|
+
})), /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltip, {
|
|
109
|
+
slots: slots,
|
|
110
|
+
slotProps: slotProps
|
|
111
|
+
})), /*#__PURE__*/_jsx(ChartsClipPath, {
|
|
99
112
|
id: clipPathId
|
|
100
113
|
}), children]
|
|
101
114
|
});
|
|
@@ -105,6 +118,13 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
105
118
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
106
119
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
107
120
|
// ----------------------------------------------------------------------
|
|
121
|
+
/**
|
|
122
|
+
* Object `{ x, y }` that defines how the charts highlight the mouse position along the x- and y-axes.
|
|
123
|
+
* The two properties accept the following values:
|
|
124
|
+
* - 'none': display nothing.
|
|
125
|
+
* - 'line': display a line at the current mouse position.
|
|
126
|
+
* - 'band': display a band at the current mouse position. Only available with band scale.
|
|
127
|
+
*/
|
|
108
128
|
axisHighlight: PropTypes.shape({
|
|
109
129
|
x: PropTypes.oneOf(['band', 'line', 'none']),
|
|
110
130
|
y: PropTypes.oneOf(['band', 'line', 'none'])
|
|
@@ -115,18 +135,22 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
115
135
|
* @default xAxisIds[0] The id of the first provided axis
|
|
116
136
|
*/
|
|
117
137
|
bottomAxis: PropTypes.oneOfType([PropTypes.shape({
|
|
118
|
-
axisId: PropTypes.string
|
|
138
|
+
axisId: PropTypes.string,
|
|
119
139
|
classes: PropTypes.object,
|
|
120
140
|
disableLine: PropTypes.bool,
|
|
121
141
|
disableTicks: PropTypes.bool,
|
|
122
142
|
fill: PropTypes.string,
|
|
123
143
|
label: PropTypes.string,
|
|
124
144
|
labelFontSize: PropTypes.number,
|
|
145
|
+
labelStyle: PropTypes.object,
|
|
125
146
|
position: PropTypes.oneOf(['bottom', 'top']),
|
|
126
147
|
slotProps: PropTypes.object,
|
|
127
148
|
slots: PropTypes.object,
|
|
128
149
|
stroke: PropTypes.string,
|
|
129
150
|
tickFontSize: PropTypes.number,
|
|
151
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
152
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
153
|
+
tickLabelStyle: PropTypes.object,
|
|
130
154
|
tickMaxStep: PropTypes.number,
|
|
131
155
|
tickMinStep: PropTypes.number,
|
|
132
156
|
tickNumber: PropTypes.number,
|
|
@@ -138,13 +162,25 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
138
162
|
* Color palette used to colorize multiple series.
|
|
139
163
|
*/
|
|
140
164
|
colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
|
|
165
|
+
/**
|
|
166
|
+
* An array of objects that can be used to populate series and axes data using their `dataKey` property.
|
|
167
|
+
*/
|
|
141
168
|
dataset: PropTypes.arrayOf(PropTypes.object),
|
|
142
169
|
desc: PropTypes.string,
|
|
170
|
+
/**
|
|
171
|
+
* If `true`, the charts will not listen to the mouse move event.
|
|
172
|
+
* It might break interactive features, but will improve performance.
|
|
173
|
+
* @default false
|
|
174
|
+
*/
|
|
143
175
|
disableAxisListener: PropTypes.bool,
|
|
144
176
|
/**
|
|
145
177
|
* If `true`, render the line highlight item.
|
|
146
178
|
*/
|
|
147
179
|
disableLineItemHighlight: PropTypes.bool,
|
|
180
|
+
/**
|
|
181
|
+
* The height of the chart in px. If not defined, it takes the height of the parent element.
|
|
182
|
+
* @default undefined
|
|
183
|
+
*/
|
|
148
184
|
height: PropTypes.number,
|
|
149
185
|
/**
|
|
150
186
|
* Indicate which axis to display the left of the charts.
|
|
@@ -152,41 +188,47 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
152
188
|
* @default yAxisIds[0] The id of the first provided axis
|
|
153
189
|
*/
|
|
154
190
|
leftAxis: PropTypes.oneOfType([PropTypes.shape({
|
|
155
|
-
axisId: PropTypes.string
|
|
191
|
+
axisId: PropTypes.string,
|
|
156
192
|
classes: PropTypes.object,
|
|
157
193
|
disableLine: PropTypes.bool,
|
|
158
194
|
disableTicks: PropTypes.bool,
|
|
159
195
|
fill: PropTypes.string,
|
|
160
196
|
label: PropTypes.string,
|
|
161
197
|
labelFontSize: PropTypes.number,
|
|
198
|
+
labelStyle: PropTypes.object,
|
|
162
199
|
position: PropTypes.oneOf(['left', 'right']),
|
|
163
200
|
slotProps: PropTypes.object,
|
|
164
201
|
slots: PropTypes.object,
|
|
165
202
|
stroke: PropTypes.string,
|
|
166
203
|
tickFontSize: PropTypes.number,
|
|
204
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
205
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
206
|
+
tickLabelStyle: PropTypes.object,
|
|
167
207
|
tickMaxStep: PropTypes.number,
|
|
168
208
|
tickMinStep: PropTypes.number,
|
|
169
209
|
tickNumber: PropTypes.number,
|
|
170
210
|
tickSize: PropTypes.number
|
|
171
211
|
}), PropTypes.string]),
|
|
212
|
+
/**
|
|
213
|
+
* @deprecated Consider using `slotProps.legend` instead.
|
|
214
|
+
*/
|
|
172
215
|
legend: PropTypes.shape({
|
|
173
216
|
classes: PropTypes.object,
|
|
174
217
|
direction: PropTypes.oneOf(['column', 'row']),
|
|
175
218
|
hidden: PropTypes.bool,
|
|
176
|
-
itemWidth: PropTypes.number,
|
|
177
|
-
markSize: PropTypes.number,
|
|
178
|
-
offset: PropTypes.shape({
|
|
179
|
-
x: PropTypes.number,
|
|
180
|
-
y: PropTypes.number
|
|
181
|
-
}),
|
|
182
219
|
position: PropTypes.shape({
|
|
183
220
|
horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
|
|
184
221
|
vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
|
|
185
222
|
}),
|
|
186
223
|
slotProps: PropTypes.object,
|
|
187
|
-
slots: PropTypes.object
|
|
188
|
-
spacing: PropTypes.number
|
|
224
|
+
slots: PropTypes.object
|
|
189
225
|
}),
|
|
226
|
+
/**
|
|
227
|
+
* The margin between the SVG and the drawing area.
|
|
228
|
+
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
229
|
+
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
230
|
+
* @default object Depends on the charts type.
|
|
231
|
+
*/
|
|
190
232
|
margin: PropTypes.shape({
|
|
191
233
|
bottom: PropTypes.number,
|
|
192
234
|
left: PropTypes.number,
|
|
@@ -199,18 +241,22 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
199
241
|
* @default null
|
|
200
242
|
*/
|
|
201
243
|
rightAxis: PropTypes.oneOfType([PropTypes.shape({
|
|
202
|
-
axisId: PropTypes.string
|
|
244
|
+
axisId: PropTypes.string,
|
|
203
245
|
classes: PropTypes.object,
|
|
204
246
|
disableLine: PropTypes.bool,
|
|
205
247
|
disableTicks: PropTypes.bool,
|
|
206
248
|
fill: PropTypes.string,
|
|
207
249
|
label: PropTypes.string,
|
|
208
250
|
labelFontSize: PropTypes.number,
|
|
251
|
+
labelStyle: PropTypes.object,
|
|
209
252
|
position: PropTypes.oneOf(['left', 'right']),
|
|
210
253
|
slotProps: PropTypes.object,
|
|
211
254
|
slots: PropTypes.object,
|
|
212
255
|
stroke: PropTypes.string,
|
|
213
256
|
tickFontSize: PropTypes.number,
|
|
257
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
258
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
259
|
+
tickLabelStyle: PropTypes.object,
|
|
214
260
|
tickMaxStep: PropTypes.number,
|
|
215
261
|
tickMinStep: PropTypes.number,
|
|
216
262
|
tickNumber: PropTypes.number,
|
|
@@ -219,6 +265,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
219
265
|
series: PropTypes.arrayOf(PropTypes.shape({
|
|
220
266
|
area: PropTypes.bool,
|
|
221
267
|
color: PropTypes.string,
|
|
268
|
+
connectNulls: PropTypes.bool,
|
|
222
269
|
curve: PropTypes.oneOf(['catmullRom', 'linear', 'monotoneX', 'monotoneY', 'natural', 'step', 'stepAfter', 'stepBefore']),
|
|
223
270
|
data: PropTypes.arrayOf(PropTypes.number),
|
|
224
271
|
dataKey: PropTypes.string,
|
|
@@ -254,6 +301,8 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
254
301
|
axisContent: PropTypes.elementType,
|
|
255
302
|
classes: PropTypes.object,
|
|
256
303
|
itemContent: PropTypes.elementType,
|
|
304
|
+
slotProps: PropTypes.object,
|
|
305
|
+
slots: PropTypes.object,
|
|
257
306
|
trigger: PropTypes.oneOf(['axis', 'item', 'none'])
|
|
258
307
|
}),
|
|
259
308
|
/**
|
|
@@ -262,18 +311,22 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
262
311
|
* @default null
|
|
263
312
|
*/
|
|
264
313
|
topAxis: PropTypes.oneOfType([PropTypes.shape({
|
|
265
|
-
axisId: PropTypes.string
|
|
314
|
+
axisId: PropTypes.string,
|
|
266
315
|
classes: PropTypes.object,
|
|
267
316
|
disableLine: PropTypes.bool,
|
|
268
317
|
disableTicks: PropTypes.bool,
|
|
269
318
|
fill: PropTypes.string,
|
|
270
319
|
label: PropTypes.string,
|
|
271
320
|
labelFontSize: PropTypes.number,
|
|
321
|
+
labelStyle: PropTypes.object,
|
|
272
322
|
position: PropTypes.oneOf(['bottom', 'top']),
|
|
273
323
|
slotProps: PropTypes.object,
|
|
274
324
|
slots: PropTypes.object,
|
|
275
325
|
stroke: PropTypes.string,
|
|
276
326
|
tickFontSize: PropTypes.number,
|
|
327
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
328
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
329
|
+
tickLabelStyle: PropTypes.object,
|
|
277
330
|
tickMaxStep: PropTypes.number,
|
|
278
331
|
tickMinStep: PropTypes.number,
|
|
279
332
|
tickNumber: PropTypes.number,
|
|
@@ -285,7 +338,15 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
285
338
|
x: PropTypes.number,
|
|
286
339
|
y: PropTypes.number
|
|
287
340
|
}),
|
|
341
|
+
/**
|
|
342
|
+
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
343
|
+
* @default undefined
|
|
344
|
+
*/
|
|
288
345
|
width: PropTypes.number,
|
|
346
|
+
/**
|
|
347
|
+
* The configuration of the x-axes.
|
|
348
|
+
* If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
|
|
349
|
+
*/
|
|
289
350
|
xAxis: PropTypes.arrayOf(PropTypes.shape({
|
|
290
351
|
axisId: PropTypes.string,
|
|
291
352
|
classes: PropTypes.object,
|
|
@@ -298,6 +359,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
298
359
|
id: PropTypes.string,
|
|
299
360
|
label: PropTypes.string,
|
|
300
361
|
labelFontSize: PropTypes.number,
|
|
362
|
+
labelStyle: PropTypes.object,
|
|
301
363
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
302
364
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
303
365
|
position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
|
|
@@ -306,12 +368,19 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
306
368
|
slots: PropTypes.object,
|
|
307
369
|
stroke: PropTypes.string,
|
|
308
370
|
tickFontSize: PropTypes.number,
|
|
371
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
372
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
373
|
+
tickLabelStyle: PropTypes.object,
|
|
309
374
|
tickMaxStep: PropTypes.number,
|
|
310
375
|
tickMinStep: PropTypes.number,
|
|
311
376
|
tickNumber: PropTypes.number,
|
|
312
377
|
tickSize: PropTypes.number,
|
|
313
378
|
valueFormatter: PropTypes.func
|
|
314
379
|
})),
|
|
380
|
+
/**
|
|
381
|
+
* The configuration of the y-axes.
|
|
382
|
+
* If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
|
|
383
|
+
*/
|
|
315
384
|
yAxis: PropTypes.arrayOf(PropTypes.shape({
|
|
316
385
|
axisId: PropTypes.string,
|
|
317
386
|
classes: PropTypes.object,
|
|
@@ -324,6 +393,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
324
393
|
id: PropTypes.string,
|
|
325
394
|
label: PropTypes.string,
|
|
326
395
|
labelFontSize: PropTypes.number,
|
|
396
|
+
labelStyle: PropTypes.object,
|
|
327
397
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
328
398
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
329
399
|
position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
|
|
@@ -332,6 +402,9 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
|
|
|
332
402
|
slots: PropTypes.object,
|
|
333
403
|
stroke: PropTypes.string,
|
|
334
404
|
tickFontSize: PropTypes.number,
|
|
405
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
406
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
407
|
+
tickLabelStyle: PropTypes.object,
|
|
335
408
|
tickMaxStep: PropTypes.number,
|
|
336
409
|
tickMinStep: PropTypes.number,
|
|
337
410
|
tickNumber: PropTypes.number,
|
|
@@ -58,6 +58,16 @@ LineElementPath.propTypes = {
|
|
|
58
58
|
}).isRequired,
|
|
59
59
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
60
60
|
};
|
|
61
|
+
/**
|
|
62
|
+
* Demos:
|
|
63
|
+
*
|
|
64
|
+
* - [Lines](https://mui.com/x/react-charts/lines/)
|
|
65
|
+
* - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
|
|
66
|
+
*
|
|
67
|
+
* API:
|
|
68
|
+
*
|
|
69
|
+
* - [LineElement API](https://mui.com/x/api/charts/line-element/)
|
|
70
|
+
*/
|
|
61
71
|
function LineElement(props) {
|
|
62
72
|
var _slots$line;
|
|
63
73
|
var id = props.id,
|
|
@@ -34,6 +34,16 @@ var HighlightElement = styled('circle', {
|
|
|
34
34
|
fill: ownerState.color
|
|
35
35
|
};
|
|
36
36
|
});
|
|
37
|
+
/**
|
|
38
|
+
* Demos:
|
|
39
|
+
*
|
|
40
|
+
* - [Lines](https://mui.com/x/react-charts/lines/)
|
|
41
|
+
* - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
|
|
42
|
+
*
|
|
43
|
+
* API:
|
|
44
|
+
*
|
|
45
|
+
* - [LineHighlightElement API](https://mui.com/x/api/charts/line-highlight-element/)
|
|
46
|
+
*/
|
|
37
47
|
function LineHighlightElement(props) {
|
|
38
48
|
var x = props.x,
|
|
39
49
|
y = props.y,
|
|
@@ -9,6 +9,16 @@ import { LineHighlightElement } from './LineHighlightElement';
|
|
|
9
9
|
import { getValueToPositionMapper } from '../hooks/useScale';
|
|
10
10
|
import { InteractionContext } from '../context/InteractionProvider';
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
/**
|
|
13
|
+
* Demos:
|
|
14
|
+
*
|
|
15
|
+
* - [Lines](https://mui.com/x/react-charts/lines/)
|
|
16
|
+
* - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
|
|
17
|
+
*
|
|
18
|
+
* API:
|
|
19
|
+
*
|
|
20
|
+
* - [LineHighlightPlot API](https://mui.com/x/api/charts/line-highlight-plot/)
|
|
21
|
+
*/
|
|
12
22
|
function LineHighlightPlot(props) {
|
|
13
23
|
var _axis$x, _slots$lineHighlight;
|
|
14
24
|
var slots = props.slots,
|
|
@@ -44,8 +54,9 @@ function LineHighlightPlot(props) {
|
|
|
44
54
|
_series$seriesId$yAxi = _series$seriesId.yAxisKey,
|
|
45
55
|
yAxisKey = _series$seriesId$yAxi === void 0 ? defaultYAxisId : _series$seriesId$yAxi,
|
|
46
56
|
stackedData = _series$seriesId.stackedData,
|
|
57
|
+
data = _series$seriesId.data,
|
|
47
58
|
disableHighlight = _series$seriesId.disableHighlight;
|
|
48
|
-
if (disableHighlight) {
|
|
59
|
+
if (disableHighlight || data[highlightedIndex] == null) {
|
|
49
60
|
return null;
|
|
50
61
|
}
|
|
51
62
|
var xScale = getValueToPositionMapper(xAxis[xAxisKey].scale);
|
|
@@ -55,7 +66,7 @@ function LineHighlightPlot(props) {
|
|
|
55
66
|
throw new Error("Axis of id \"".concat(xAxisKey, "\" should have data property to be able to display a line plot."));
|
|
56
67
|
}
|
|
57
68
|
var x = xScale(xData[highlightedIndex]);
|
|
58
|
-
var y = yScale(stackedData[highlightedIndex][1]);
|
|
69
|
+
var y = yScale(stackedData[highlightedIndex][1]); // This should not be undefined since y should not be a band scale
|
|
59
70
|
return /*#__PURE__*/_jsx(Element, _extends({
|
|
60
71
|
id: seriesId,
|
|
61
72
|
color: series[seriesId].color,
|
|
@@ -10,6 +10,16 @@ import { LineElement } from './LineElement';
|
|
|
10
10
|
import { getValueToPositionMapper } from '../hooks/useScale';
|
|
11
11
|
import getCurveFactory from '../internals/getCurve';
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
/**
|
|
14
|
+
* Demos:
|
|
15
|
+
*
|
|
16
|
+
* - [Lines](https://mui.com/x/react-charts/lines/)
|
|
17
|
+
* - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
|
|
18
|
+
*
|
|
19
|
+
* API:
|
|
20
|
+
*
|
|
21
|
+
* - [LinePlot API](https://mui.com/x/api/charts/line-plot/)
|
|
22
|
+
*/
|
|
13
23
|
function LinePlot(props) {
|
|
14
24
|
var slots = props.slots,
|
|
15
25
|
slotProps = props.slotProps,
|
|
@@ -31,36 +41,43 @@ function LinePlot(props) {
|
|
|
31
41
|
children: stackingGroups.flatMap(function (_ref) {
|
|
32
42
|
var groupIds = _ref.ids;
|
|
33
43
|
return groupIds.flatMap(function (seriesId) {
|
|
44
|
+
var _xData$map;
|
|
34
45
|
var _series$seriesId = series[seriesId],
|
|
35
46
|
_series$seriesId$xAxi = _series$seriesId.xAxisKey,
|
|
36
47
|
xAxisKey = _series$seriesId$xAxi === void 0 ? defaultXAxisId : _series$seriesId$xAxi,
|
|
37
48
|
_series$seriesId$yAxi = _series$seriesId.yAxisKey,
|
|
38
49
|
yAxisKey = _series$seriesId$yAxi === void 0 ? defaultYAxisId : _series$seriesId$yAxi,
|
|
39
|
-
stackedData = _series$seriesId.stackedData
|
|
50
|
+
stackedData = _series$seriesId.stackedData,
|
|
51
|
+
data = _series$seriesId.data,
|
|
52
|
+
connectNulls = _series$seriesId.connectNulls;
|
|
40
53
|
var xScale = getValueToPositionMapper(xAxis[xAxisKey].scale);
|
|
41
54
|
var yScale = yAxis[yAxisKey].scale;
|
|
42
55
|
var xData = xAxis[xAxisKey].data;
|
|
43
|
-
if (
|
|
44
|
-
|
|
56
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
57
|
+
if (xData === undefined) {
|
|
58
|
+
throw new Error("Axis of id \"".concat(xAxisKey, "\" should have data property to be able to display a line plot"));
|
|
59
|
+
}
|
|
60
|
+
if (xData.length < stackedData.length) {
|
|
61
|
+
throw new Error("MUI: data length of the x axis (".concat(xData.length, " items) is lower than the length of series (").concat(stackedData.length, " items)"));
|
|
62
|
+
}
|
|
45
63
|
}
|
|
46
64
|
var linePath = d3Line().x(function (d) {
|
|
47
65
|
return xScale(d.x);
|
|
66
|
+
}).defined(function (_, i) {
|
|
67
|
+
return connectNulls || data[i] != null;
|
|
48
68
|
}).y(function (d) {
|
|
49
69
|
return yScale(d.y[1]);
|
|
50
70
|
});
|
|
51
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
52
|
-
if (xData.length !== stackedData.length) {
|
|
53
|
-
throw new Error("MUI: data length of the x axis (".concat(xData.length, " items) does not match length of series (").concat(stackedData.length, " items)"));
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
71
|
var curve = getCurveFactory(series[seriesId].curve);
|
|
57
|
-
var
|
|
58
|
-
var _stackedData$index;
|
|
72
|
+
var formattedData = (_xData$map = xData == null ? void 0 : xData.map(function (x, index) {
|
|
59
73
|
return {
|
|
60
74
|
x: x,
|
|
61
|
-
y:
|
|
75
|
+
y: stackedData[index]
|
|
62
76
|
};
|
|
63
|
-
});
|
|
77
|
+
})) != null ? _xData$map : [];
|
|
78
|
+
var d3Data = connectNulls ? formattedData.filter(function (_, i) {
|
|
79
|
+
return data[i] != null;
|
|
80
|
+
}) : formattedData;
|
|
64
81
|
return /*#__PURE__*/_jsx(LineElement, {
|
|
65
82
|
id: seriesId,
|
|
66
83
|
d: linePath.curve(curve)(d3Data) || undefined,
|
|
@@ -38,7 +38,7 @@ var MarkElementPath = styled('path', {
|
|
|
38
38
|
return {
|
|
39
39
|
transform: "translate(".concat(ownerState.x, "px, ").concat(ownerState.y, "px)"),
|
|
40
40
|
transformOrigin: "".concat(ownerState.x, "px ").concat(ownerState.y, "px"),
|
|
41
|
-
fill: theme.palette.background.paper,
|
|
41
|
+
fill: (theme.vars || theme).palette.background.paper,
|
|
42
42
|
stroke: ownerState.color,
|
|
43
43
|
strokeWidth: 2
|
|
44
44
|
};
|
|
@@ -60,6 +60,16 @@ MarkElementPath.propTypes = {
|
|
|
60
60
|
}).isRequired,
|
|
61
61
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
62
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* Demos:
|
|
65
|
+
*
|
|
66
|
+
* - [Lines](https://mui.com/x/react-charts/lines/)
|
|
67
|
+
* - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
|
|
68
|
+
*
|
|
69
|
+
* API:
|
|
70
|
+
*
|
|
71
|
+
* - [MarkElement API](https://mui.com/x/api/charts/mark-element/)
|
|
72
|
+
*/
|
|
63
73
|
function MarkElement(props) {
|
|
64
74
|
var _axis$x;
|
|
65
75
|
var x = props.x,
|
|
@@ -9,6 +9,16 @@ import { CartesianContext } from '../context/CartesianContextProvider';
|
|
|
9
9
|
import { MarkElement } from './MarkElement';
|
|
10
10
|
import { getValueToPositionMapper } from '../hooks/useScale';
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
/**
|
|
13
|
+
* Demos:
|
|
14
|
+
*
|
|
15
|
+
* - [Lines](https://mui.com/x/react-charts/lines/)
|
|
16
|
+
* - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
|
|
17
|
+
*
|
|
18
|
+
* API:
|
|
19
|
+
*
|
|
20
|
+
* - [MarkPlot API](https://mui.com/x/api/charts/mark-plot/)
|
|
21
|
+
*/
|
|
12
22
|
function MarkPlot(props) {
|
|
13
23
|
var _slots$mark;
|
|
14
24
|
var slots = props.slots,
|
|
@@ -38,6 +48,7 @@ function MarkPlot(props) {
|
|
|
38
48
|
_series$seriesId$yAxi = _series$seriesId.yAxisKey,
|
|
39
49
|
yAxisKey = _series$seriesId$yAxi === void 0 ? defaultYAxisId : _series$seriesId$yAxi,
|
|
40
50
|
stackedData = _series$seriesId.stackedData,
|
|
51
|
+
data = _series$seriesId.data,
|
|
41
52
|
_series$seriesId$show = _series$seriesId.showMark,
|
|
42
53
|
showMark = _series$seriesId$show === void 0 ? true : _series$seriesId$show;
|
|
43
54
|
if (showMark === false) {
|
|
@@ -63,35 +74,55 @@ function MarkPlot(props) {
|
|
|
63
74
|
throw new Error("Axis of id \"".concat(xAxisKey, "\" should have data property to be able to display a line plot"));
|
|
64
75
|
}
|
|
65
76
|
return xData == null ? void 0 : xData.map(function (x, index) {
|
|
66
|
-
var
|
|
77
|
+
var value = data[index] == null ? null : stackedData[index][1];
|
|
67
78
|
return {
|
|
68
79
|
x: xScale(x),
|
|
69
|
-
y: yScale(
|
|
80
|
+
y: value === null ? null : yScale(value),
|
|
70
81
|
position: x,
|
|
71
|
-
value:
|
|
82
|
+
value: value,
|
|
72
83
|
index: index
|
|
73
84
|
};
|
|
74
|
-
}).filter(
|
|
85
|
+
}).filter(function (_ref3) {
|
|
75
86
|
var x = _ref3.x,
|
|
76
87
|
y = _ref3.y,
|
|
77
88
|
index = _ref3.index,
|
|
78
89
|
position = _ref3.position,
|
|
79
90
|
value = _ref3.value;
|
|
80
|
-
|
|
91
|
+
if (value === null || y === null) {
|
|
92
|
+
// Remove missing data point
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
if (!isInRange({
|
|
96
|
+
x: x,
|
|
97
|
+
y: y
|
|
98
|
+
})) {
|
|
99
|
+
// Remove out of range
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
if (showMark === true) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return showMark({
|
|
81
106
|
x: x,
|
|
82
107
|
y: y,
|
|
83
108
|
index: index,
|
|
84
109
|
position: position,
|
|
85
110
|
value: value
|
|
86
|
-
})
|
|
111
|
+
});
|
|
112
|
+
}).map(function (_ref4) {
|
|
113
|
+
var x = _ref4.x,
|
|
114
|
+
y = _ref4.y,
|
|
115
|
+
index = _ref4.index;
|
|
116
|
+
return /*#__PURE__*/_jsx(Mark, _extends({
|
|
87
117
|
id: seriesId,
|
|
88
118
|
dataIndex: index,
|
|
89
119
|
shape: "circle",
|
|
90
120
|
color: series[seriesId].color,
|
|
91
121
|
x: x,
|
|
92
|
-
y: y
|
|
122
|
+
y: y // Don't knwo why TS don't get from the filter that y can't be null
|
|
123
|
+
,
|
|
93
124
|
highlightScope: series[seriesId].highlightScope
|
|
94
|
-
}, slotProps == null ? void 0 : slotProps.mark), "".concat(seriesId, "-").concat(index))
|
|
125
|
+
}, slotProps == null ? void 0 : slotProps.mark), "".concat(seriesId, "-").concat(index));
|
|
95
126
|
});
|
|
96
127
|
});
|
|
97
128
|
})
|
|
@@ -22,7 +22,7 @@ var formatter = function formatter(params, dataset) {
|
|
|
22
22
|
d3Dataset[index][id] = value;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
} else if (dataset === undefined) {
|
|
25
|
+
} else if (dataset === undefined && process.env.NODE_ENV !== 'production') {
|
|
26
26
|
throw new Error(["MUI: line series with id='".concat(id, "' has no data."), 'Either provide a data property to the series or use the dataset prop.'].join('\n'));
|
|
27
27
|
}
|
|
28
28
|
});
|
|
@@ -36,7 +36,11 @@ var formatter = function formatter(params, dataset) {
|
|
|
36
36
|
// Use dataKey if needed and available
|
|
37
37
|
var dataKey = series[id].dataKey;
|
|
38
38
|
return series[id].data === undefined && dataKey !== undefined ? dataKey : id;
|
|
39
|
-
})).
|
|
39
|
+
})).value(function (d, key) {
|
|
40
|
+
var _d$key;
|
|
41
|
+
return (_d$key = d[key]) != null ? _d$key : 0;
|
|
42
|
+
}) // defaultize null value to 0
|
|
43
|
+
.order(stackingOrder).offset(stackingOffset)(d3Dataset);
|
|
40
44
|
ids.forEach(function (id, index) {
|
|
41
45
|
var dataKey = series[id].dataKey;
|
|
42
46
|
completedSeries[id] = _extends({}, series[id], {
|
|
@@ -56,7 +60,7 @@ var formatter = function formatter(params, dataset) {
|
|
|
56
60
|
seriesOrder: seriesOrder,
|
|
57
61
|
stackingGroups: stackingGroups,
|
|
58
62
|
series: defaultizeValueFormatter(completedSeries, function (v) {
|
|
59
|
-
return v.toLocaleString();
|
|
63
|
+
return v == null ? void 0 : v.toLocaleString();
|
|
60
64
|
})
|
|
61
65
|
};
|
|
62
66
|
};
|