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