@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
|
@@ -13,6 +13,17 @@ import { ChartsAxisHighlight } from '../ChartsAxisHighlight';
|
|
|
13
13
|
import { ChartsClipPath } from '../ChartsClipPath';
|
|
14
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
15
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
|
+
/**
|
|
17
|
+
* Demos:
|
|
18
|
+
*
|
|
19
|
+
* - [Bars](https://mui.com/x/react-charts/bars/)
|
|
20
|
+
* - [Bar demonstration](https://mui.com/x/react-charts/bar-demo/)
|
|
21
|
+
* - [Stacking](https://mui.com/x/react-charts/stacking/)
|
|
22
|
+
*
|
|
23
|
+
* API:
|
|
24
|
+
*
|
|
25
|
+
* - [BarChart API](https://mui.com/x/api/charts/bar-chart/)
|
|
26
|
+
*/
|
|
16
27
|
var BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
|
|
17
28
|
var xAxis = props.xAxis,
|
|
18
29
|
yAxis = props.yAxis,
|
|
@@ -31,6 +42,7 @@ var BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
|
|
|
31
42
|
leftAxis = props.leftAxis,
|
|
32
43
|
rightAxis = props.rightAxis,
|
|
33
44
|
bottomAxis = props.bottomAxis,
|
|
45
|
+
skipAnimation = props.skipAnimation,
|
|
34
46
|
children = props.children,
|
|
35
47
|
slots = props.slots,
|
|
36
48
|
slotProps = props.slotProps;
|
|
@@ -81,7 +93,8 @@ var BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
|
|
|
81
93
|
clipPath: "url(#".concat(clipPathId, ")"),
|
|
82
94
|
children: /*#__PURE__*/_jsx(BarPlot, {
|
|
83
95
|
slots: slots,
|
|
84
|
-
slotProps: slotProps
|
|
96
|
+
slotProps: slotProps,
|
|
97
|
+
skipAnimation: skipAnimation
|
|
85
98
|
})
|
|
86
99
|
}), /*#__PURE__*/_jsx(ChartsAxis, {
|
|
87
100
|
topAxis: topAxis,
|
|
@@ -106,6 +119,13 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
106
119
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
107
120
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
108
121
|
// ----------------------------------------------------------------------
|
|
122
|
+
/**
|
|
123
|
+
* Object `{ x, y }` that defines how the charts highlight the mouse position along the x- and y-axes.
|
|
124
|
+
* The two properties accept the following values:
|
|
125
|
+
* - 'none': display nothing.
|
|
126
|
+
* - 'line': display a line at the current mouse position.
|
|
127
|
+
* - 'band': display a band at the current mouse position. Only available with band scale.
|
|
128
|
+
*/
|
|
109
129
|
axisHighlight: PropTypes.shape({
|
|
110
130
|
x: PropTypes.oneOf(['band', 'line', 'none']),
|
|
111
131
|
y: PropTypes.oneOf(['band', 'line', 'none'])
|
|
@@ -116,18 +136,22 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
116
136
|
* @default xAxisIds[0] The id of the first provided axis
|
|
117
137
|
*/
|
|
118
138
|
bottomAxis: PropTypes.oneOfType([PropTypes.shape({
|
|
119
|
-
axisId: PropTypes.string
|
|
139
|
+
axisId: PropTypes.string,
|
|
120
140
|
classes: PropTypes.object,
|
|
121
141
|
disableLine: PropTypes.bool,
|
|
122
142
|
disableTicks: PropTypes.bool,
|
|
123
143
|
fill: PropTypes.string,
|
|
124
144
|
label: PropTypes.string,
|
|
125
145
|
labelFontSize: PropTypes.number,
|
|
146
|
+
labelStyle: PropTypes.object,
|
|
126
147
|
position: PropTypes.oneOf(['bottom', 'top']),
|
|
127
148
|
slotProps: PropTypes.object,
|
|
128
149
|
slots: PropTypes.object,
|
|
129
150
|
stroke: PropTypes.string,
|
|
130
151
|
tickFontSize: PropTypes.number,
|
|
152
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
153
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
154
|
+
tickLabelStyle: PropTypes.object,
|
|
131
155
|
tickMaxStep: PropTypes.number,
|
|
132
156
|
tickMinStep: PropTypes.number,
|
|
133
157
|
tickNumber: PropTypes.number,
|
|
@@ -139,9 +163,21 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
139
163
|
* Color palette used to colorize multiple series.
|
|
140
164
|
*/
|
|
141
165
|
colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
|
|
166
|
+
/**
|
|
167
|
+
* An array of objects that can be used to populate series and axes data using their `dataKey` property.
|
|
168
|
+
*/
|
|
142
169
|
dataset: PropTypes.arrayOf(PropTypes.object),
|
|
143
170
|
desc: PropTypes.string,
|
|
171
|
+
/**
|
|
172
|
+
* If `true`, the charts will not listen to the mouse move event.
|
|
173
|
+
* It might break interactive features, but will improve performance.
|
|
174
|
+
* @default false
|
|
175
|
+
*/
|
|
144
176
|
disableAxisListener: PropTypes.bool,
|
|
177
|
+
/**
|
|
178
|
+
* The height of the chart in px. If not defined, it takes the height of the parent element.
|
|
179
|
+
* @default undefined
|
|
180
|
+
*/
|
|
145
181
|
height: PropTypes.number,
|
|
146
182
|
layout: PropTypes.oneOf(['horizontal', 'vertical']),
|
|
147
183
|
/**
|
|
@@ -150,41 +186,47 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
150
186
|
* @default yAxisIds[0] The id of the first provided axis
|
|
151
187
|
*/
|
|
152
188
|
leftAxis: PropTypes.oneOfType([PropTypes.shape({
|
|
153
|
-
axisId: PropTypes.string
|
|
189
|
+
axisId: PropTypes.string,
|
|
154
190
|
classes: PropTypes.object,
|
|
155
191
|
disableLine: PropTypes.bool,
|
|
156
192
|
disableTicks: PropTypes.bool,
|
|
157
193
|
fill: PropTypes.string,
|
|
158
194
|
label: PropTypes.string,
|
|
159
195
|
labelFontSize: PropTypes.number,
|
|
196
|
+
labelStyle: PropTypes.object,
|
|
160
197
|
position: PropTypes.oneOf(['left', 'right']),
|
|
161
198
|
slotProps: PropTypes.object,
|
|
162
199
|
slots: PropTypes.object,
|
|
163
200
|
stroke: PropTypes.string,
|
|
164
201
|
tickFontSize: PropTypes.number,
|
|
202
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
203
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
204
|
+
tickLabelStyle: PropTypes.object,
|
|
165
205
|
tickMaxStep: PropTypes.number,
|
|
166
206
|
tickMinStep: PropTypes.number,
|
|
167
207
|
tickNumber: PropTypes.number,
|
|
168
208
|
tickSize: PropTypes.number
|
|
169
209
|
}), PropTypes.string]),
|
|
210
|
+
/**
|
|
211
|
+
* @deprecated Consider using `slotProps.legend` instead.
|
|
212
|
+
*/
|
|
170
213
|
legend: PropTypes.shape({
|
|
171
214
|
classes: PropTypes.object,
|
|
172
215
|
direction: PropTypes.oneOf(['column', 'row']),
|
|
173
216
|
hidden: PropTypes.bool,
|
|
174
|
-
itemWidth: PropTypes.number,
|
|
175
|
-
markSize: PropTypes.number,
|
|
176
|
-
offset: PropTypes.shape({
|
|
177
|
-
x: PropTypes.number,
|
|
178
|
-
y: PropTypes.number
|
|
179
|
-
}),
|
|
180
217
|
position: PropTypes.shape({
|
|
181
218
|
horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
|
|
182
219
|
vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
|
|
183
220
|
}),
|
|
184
221
|
slotProps: PropTypes.object,
|
|
185
|
-
slots: PropTypes.object
|
|
186
|
-
spacing: PropTypes.number
|
|
222
|
+
slots: PropTypes.object
|
|
187
223
|
}),
|
|
224
|
+
/**
|
|
225
|
+
* The margin between the SVG and the drawing area.
|
|
226
|
+
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
227
|
+
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
228
|
+
* @default object Depends on the charts type.
|
|
229
|
+
*/
|
|
188
230
|
margin: PropTypes.shape({
|
|
189
231
|
bottom: PropTypes.number,
|
|
190
232
|
left: PropTypes.number,
|
|
@@ -197,18 +239,22 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
197
239
|
* @default null
|
|
198
240
|
*/
|
|
199
241
|
rightAxis: PropTypes.oneOfType([PropTypes.shape({
|
|
200
|
-
axisId: PropTypes.string
|
|
242
|
+
axisId: PropTypes.string,
|
|
201
243
|
classes: PropTypes.object,
|
|
202
244
|
disableLine: PropTypes.bool,
|
|
203
245
|
disableTicks: PropTypes.bool,
|
|
204
246
|
fill: PropTypes.string,
|
|
205
247
|
label: PropTypes.string,
|
|
206
248
|
labelFontSize: PropTypes.number,
|
|
249
|
+
labelStyle: PropTypes.object,
|
|
207
250
|
position: PropTypes.oneOf(['left', 'right']),
|
|
208
251
|
slotProps: PropTypes.object,
|
|
209
252
|
slots: PropTypes.object,
|
|
210
253
|
stroke: PropTypes.string,
|
|
211
254
|
tickFontSize: PropTypes.number,
|
|
255
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
256
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
257
|
+
tickLabelStyle: PropTypes.object,
|
|
212
258
|
tickMaxStep: PropTypes.number,
|
|
213
259
|
tickMinStep: PropTypes.number,
|
|
214
260
|
tickNumber: PropTypes.number,
|
|
@@ -233,6 +279,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
233
279
|
xAxisKey: PropTypes.string,
|
|
234
280
|
yAxisKey: PropTypes.string
|
|
235
281
|
})).isRequired,
|
|
282
|
+
/**
|
|
283
|
+
* If `true`, animations are skiped.
|
|
284
|
+
* @default false
|
|
285
|
+
*/
|
|
286
|
+
skipAnimation: PropTypes.bool,
|
|
236
287
|
/**
|
|
237
288
|
* The props used for each component slot.
|
|
238
289
|
* @default {}
|
|
@@ -249,6 +300,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
249
300
|
axisContent: PropTypes.elementType,
|
|
250
301
|
classes: PropTypes.object,
|
|
251
302
|
itemContent: PropTypes.elementType,
|
|
303
|
+
slotProps: PropTypes.object,
|
|
304
|
+
slots: PropTypes.object,
|
|
252
305
|
trigger: PropTypes.oneOf(['axis', 'item', 'none'])
|
|
253
306
|
}),
|
|
254
307
|
/**
|
|
@@ -257,18 +310,22 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
257
310
|
* @default null
|
|
258
311
|
*/
|
|
259
312
|
topAxis: PropTypes.oneOfType([PropTypes.shape({
|
|
260
|
-
axisId: PropTypes.string
|
|
313
|
+
axisId: PropTypes.string,
|
|
261
314
|
classes: PropTypes.object,
|
|
262
315
|
disableLine: PropTypes.bool,
|
|
263
316
|
disableTicks: PropTypes.bool,
|
|
264
317
|
fill: PropTypes.string,
|
|
265
318
|
label: PropTypes.string,
|
|
266
319
|
labelFontSize: PropTypes.number,
|
|
320
|
+
labelStyle: PropTypes.object,
|
|
267
321
|
position: PropTypes.oneOf(['bottom', 'top']),
|
|
268
322
|
slotProps: PropTypes.object,
|
|
269
323
|
slots: PropTypes.object,
|
|
270
324
|
stroke: PropTypes.string,
|
|
271
325
|
tickFontSize: PropTypes.number,
|
|
326
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
327
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
328
|
+
tickLabelStyle: PropTypes.object,
|
|
272
329
|
tickMaxStep: PropTypes.number,
|
|
273
330
|
tickMinStep: PropTypes.number,
|
|
274
331
|
tickNumber: PropTypes.number,
|
|
@@ -280,7 +337,15 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
280
337
|
x: PropTypes.number,
|
|
281
338
|
y: PropTypes.number
|
|
282
339
|
}),
|
|
340
|
+
/**
|
|
341
|
+
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
342
|
+
* @default undefined
|
|
343
|
+
*/
|
|
283
344
|
width: PropTypes.number,
|
|
345
|
+
/**
|
|
346
|
+
* The configuration of the x-axes.
|
|
347
|
+
* If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
|
|
348
|
+
*/
|
|
284
349
|
xAxis: PropTypes.arrayOf(PropTypes.shape({
|
|
285
350
|
axisId: PropTypes.string,
|
|
286
351
|
classes: PropTypes.object,
|
|
@@ -293,6 +358,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
293
358
|
id: PropTypes.string,
|
|
294
359
|
label: PropTypes.string,
|
|
295
360
|
labelFontSize: PropTypes.number,
|
|
361
|
+
labelStyle: PropTypes.object,
|
|
296
362
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
297
363
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
298
364
|
position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
|
|
@@ -301,12 +367,19 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
301
367
|
slots: PropTypes.object,
|
|
302
368
|
stroke: PropTypes.string,
|
|
303
369
|
tickFontSize: PropTypes.number,
|
|
370
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
371
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
372
|
+
tickLabelStyle: PropTypes.object,
|
|
304
373
|
tickMaxStep: PropTypes.number,
|
|
305
374
|
tickMinStep: PropTypes.number,
|
|
306
375
|
tickNumber: PropTypes.number,
|
|
307
376
|
tickSize: PropTypes.number,
|
|
308
377
|
valueFormatter: PropTypes.func
|
|
309
378
|
})),
|
|
379
|
+
/**
|
|
380
|
+
* The configuration of the y-axes.
|
|
381
|
+
* If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
|
|
382
|
+
*/
|
|
310
383
|
yAxis: PropTypes.arrayOf(PropTypes.shape({
|
|
311
384
|
axisId: PropTypes.string,
|
|
312
385
|
classes: PropTypes.object,
|
|
@@ -319,6 +392,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
319
392
|
id: PropTypes.string,
|
|
320
393
|
label: PropTypes.string,
|
|
321
394
|
labelFontSize: PropTypes.number,
|
|
395
|
+
labelStyle: PropTypes.object,
|
|
322
396
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
323
397
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
324
398
|
position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
|
|
@@ -327,6 +401,9 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
327
401
|
slots: PropTypes.object,
|
|
328
402
|
stroke: PropTypes.string,
|
|
329
403
|
tickFontSize: PropTypes.number,
|
|
404
|
+
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
405
|
+
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
406
|
+
tickLabelStyle: PropTypes.object,
|
|
330
407
|
tickMaxStep: PropTypes.number,
|
|
331
408
|
tickMinStep: PropTypes.number,
|
|
332
409
|
tickNumber: PropTypes.number,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "slots", "slotProps"];
|
|
3
|
+
var _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "slots", "slotProps", "style"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import composeClasses from '@mui/utils/composeClasses';
|
|
6
6
|
import { useSlotProps } from '@mui/base/utils';
|
|
@@ -8,13 +8,14 @@ import generateUtilityClass from '@mui/utils/generateUtilityClass';
|
|
|
8
8
|
import { styled } from '@mui/material/styles';
|
|
9
9
|
import { color as d3Color } from 'd3-color';
|
|
10
10
|
import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
11
|
+
import { animated } from '@react-spring/web';
|
|
11
12
|
import { getIsFaded, getIsHighlighted, useInteractionItemProps } from '../hooks/useInteractionItemProps';
|
|
12
13
|
import { InteractionContext } from '../context/InteractionProvider';
|
|
13
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
15
|
export function getBarElementUtilityClass(slot) {
|
|
15
16
|
return generateUtilityClass('MuiBarElement', slot);
|
|
16
17
|
}
|
|
17
|
-
export var
|
|
18
|
+
export var barElementClasses = generateUtilityClasses('MuiBarElement', ['root']);
|
|
18
19
|
var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
19
20
|
var classes = ownerState.classes,
|
|
20
21
|
id = ownerState.id;
|
|
@@ -23,7 +24,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
|
23
24
|
};
|
|
24
25
|
return composeClasses(slots, getBarElementUtilityClass, classes);
|
|
25
26
|
};
|
|
26
|
-
export var BarElementPath = styled(
|
|
27
|
+
export var BarElementPath = styled(animated.rect, {
|
|
27
28
|
name: 'MuiBarElement',
|
|
28
29
|
slot: 'Root',
|
|
29
30
|
overridesResolver: function overridesResolver(_, styles) {
|
|
@@ -48,6 +49,7 @@ export function BarElement(props) {
|
|
|
48
49
|
highlightScope = props.highlightScope,
|
|
49
50
|
slots = props.slots,
|
|
50
51
|
slotProps = props.slotProps,
|
|
52
|
+
style = props.style,
|
|
51
53
|
other = _objectWithoutProperties(props, _excluded);
|
|
52
54
|
var getInteractionItemProps = useInteractionItemProps(highlightScope);
|
|
53
55
|
var _React$useContext = React.useContext(InteractionContext),
|
|
@@ -80,6 +82,7 @@ export function BarElement(props) {
|
|
|
80
82
|
seriesId: id,
|
|
81
83
|
dataIndex: dataIndex
|
|
82
84
|
}), {
|
|
85
|
+
style: style,
|
|
83
86
|
className: classes.root
|
|
84
87
|
}),
|
|
85
88
|
ownerState: ownerState
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
1
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
3
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
|
+
var _excluded = ["skipAnimation"];
|
|
3
5
|
import * as React from 'react';
|
|
4
6
|
import PropTypes from 'prop-types';
|
|
7
|
+
import { useTransition } from '@react-spring/web';
|
|
5
8
|
import { SeriesContext } from '../context/SeriesContextProvider';
|
|
6
9
|
import { CartesianContext } from '../context/CartesianContextProvider';
|
|
7
10
|
import { BarElement } from './BarElement';
|
|
8
11
|
import { isBandScaleConfig } from '../models/axis';
|
|
9
|
-
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
13
|
/**
|
|
11
14
|
* Solution of the equations
|
|
12
15
|
* W = barWidth * N + offset * (N-1)
|
|
@@ -16,7 +19,6 @@ import { isBandScaleConfig } from '../models/axis';
|
|
|
16
19
|
* @param gapRatio The ratio of the gap between bars over the bar width.
|
|
17
20
|
* @returns The bar width and the offset between bars.
|
|
18
21
|
*/
|
|
19
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
20
22
|
function getBandSize(_ref) {
|
|
21
23
|
var W = _ref.bandWidth,
|
|
22
24
|
N = _ref.numberOfGroups,
|
|
@@ -34,12 +36,14 @@ function getBandSize(_ref) {
|
|
|
34
36
|
offset: offset
|
|
35
37
|
};
|
|
36
38
|
}
|
|
37
|
-
function
|
|
38
|
-
var
|
|
39
|
+
var useCompletedData = function useCompletedData() {
|
|
40
|
+
var _React$useContext$bar;
|
|
41
|
+
var seriesData = (_React$useContext$bar = React.useContext(SeriesContext).bar) != null ? _React$useContext$bar : {
|
|
42
|
+
series: {},
|
|
43
|
+
stackingGroups: [],
|
|
44
|
+
seriesOrder: []
|
|
45
|
+
};
|
|
39
46
|
var axisData = React.useContext(CartesianContext);
|
|
40
|
-
if (seriesData === undefined) {
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
47
|
var series = seriesData.series,
|
|
44
48
|
stackingGroups = seriesData.stackingGroups;
|
|
45
49
|
var xAxis = axisData.xAxis,
|
|
@@ -48,64 +52,143 @@ function BarPlot(props) {
|
|
|
48
52
|
yAxisIds = axisData.yAxisIds;
|
|
49
53
|
var defaultXAxisId = xAxisIds[0];
|
|
50
54
|
var defaultYAxisId = yAxisIds[0];
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
throw new Error("Axis with id \"".concat(yAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
|
|
73
|
-
}
|
|
74
|
-
if (yAxis[yAxisKey].data === undefined) {
|
|
75
|
-
throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
|
|
76
|
-
}
|
|
77
|
-
baseScaleConfig = yAxisConfig;
|
|
55
|
+
var data = stackingGroups.flatMap(function (_ref2, groupIndex) {
|
|
56
|
+
var groupIds = _ref2.ids;
|
|
57
|
+
return groupIds.flatMap(function (seriesId) {
|
|
58
|
+
var _series$seriesId$xAxi, _series$seriesId$yAxi;
|
|
59
|
+
var xAxisKey = (_series$seriesId$xAxi = series[seriesId].xAxisKey) != null ? _series$seriesId$xAxi : defaultXAxisId;
|
|
60
|
+
var yAxisKey = (_series$seriesId$yAxi = series[seriesId].yAxisKey) != null ? _series$seriesId$yAxi : defaultYAxisId;
|
|
61
|
+
var xAxisConfig = xAxis[xAxisKey];
|
|
62
|
+
var yAxisConfig = yAxis[yAxisKey];
|
|
63
|
+
var verticalLayout = series[seriesId].layout === 'vertical';
|
|
64
|
+
var baseScaleConfig;
|
|
65
|
+
if (verticalLayout) {
|
|
66
|
+
if (!isBandScaleConfig(xAxisConfig)) {
|
|
67
|
+
throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
|
|
68
|
+
}
|
|
69
|
+
if (xAxis[xAxisKey].data === undefined) {
|
|
70
|
+
throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
|
|
71
|
+
}
|
|
72
|
+
baseScaleConfig = xAxisConfig;
|
|
73
|
+
} else {
|
|
74
|
+
if (!isBandScaleConfig(yAxisConfig)) {
|
|
75
|
+
throw new Error("Axis with id \"".concat(yAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
|
|
78
76
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
77
|
+
if (yAxis[yAxisKey].data === undefined) {
|
|
78
|
+
throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
|
|
79
|
+
}
|
|
80
|
+
baseScaleConfig = yAxisConfig;
|
|
81
|
+
}
|
|
82
|
+
var xScale = xAxisConfig.scale;
|
|
83
|
+
var yScale = yAxisConfig.scale;
|
|
84
|
+
var bandWidth = baseScaleConfig.scale.bandwidth();
|
|
85
|
+
var _getBandSize = getBandSize({
|
|
86
|
+
bandWidth: bandWidth,
|
|
87
|
+
numberOfGroups: stackingGroups.length,
|
|
88
|
+
gapRatio: baseScaleConfig.barGapRatio
|
|
89
|
+
}),
|
|
90
|
+
barWidth = _getBandSize.barWidth,
|
|
91
|
+
offset = _getBandSize.offset;
|
|
92
|
+
var barOffset = groupIndex * (barWidth + offset);
|
|
93
|
+
var _series$seriesId = series[seriesId],
|
|
94
|
+
stackedData = _series$seriesId.stackedData,
|
|
95
|
+
color = _series$seriesId.color;
|
|
96
|
+
return stackedData.map(function (values, dataIndex) {
|
|
97
|
+
var _xAxis$xAxisKey$data, _yAxis$yAxisKey$data;
|
|
98
|
+
var bottom = Math.min.apply(Math, _toConsumableArray(values));
|
|
99
|
+
var top = Math.max.apply(Math, _toConsumableArray(values));
|
|
100
|
+
return {
|
|
101
|
+
bottom: bottom,
|
|
102
|
+
top: top,
|
|
103
|
+
seriesId: seriesId,
|
|
104
|
+
dataIndex: dataIndex,
|
|
105
|
+
layout: series[seriesId].layout,
|
|
106
|
+
x: verticalLayout ? xScale((_xAxis$xAxisKey$data = xAxis[xAxisKey].data) == null ? void 0 : _xAxis$xAxisKey$data[dataIndex]) + barOffset : xScale(bottom),
|
|
107
|
+
y: verticalLayout ? yScale(top) : yScale((_yAxis$yAxisKey$data = yAxis[yAxisKey].data) == null ? void 0 : _yAxis$yAxisKey$data[dataIndex]) + barOffset,
|
|
108
|
+
xOrigin: xScale(0),
|
|
109
|
+
yOrigin: yScale(0),
|
|
110
|
+
height: verticalLayout ? Math.abs(yScale(bottom) - yScale(top)) : barWidth,
|
|
111
|
+
width: verticalLayout ? barWidth : Math.abs(xScale(bottom) - xScale(top)),
|
|
112
|
+
color: color,
|
|
113
|
+
highlightScope: series[seriesId].highlightScope
|
|
114
|
+
};
|
|
108
115
|
});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
return data;
|
|
119
|
+
};
|
|
120
|
+
var getOutStyle = function getOutStyle(_ref3) {
|
|
121
|
+
var layout = _ref3.layout,
|
|
122
|
+
yOrigin = _ref3.yOrigin,
|
|
123
|
+
x = _ref3.x,
|
|
124
|
+
width = _ref3.width,
|
|
125
|
+
y = _ref3.y,
|
|
126
|
+
xOrigin = _ref3.xOrigin,
|
|
127
|
+
height = _ref3.height;
|
|
128
|
+
return _extends({}, layout === 'vertical' ? {
|
|
129
|
+
y: yOrigin,
|
|
130
|
+
x: x,
|
|
131
|
+
height: 0,
|
|
132
|
+
width: width
|
|
133
|
+
} : {
|
|
134
|
+
y: y,
|
|
135
|
+
x: xOrigin,
|
|
136
|
+
height: height,
|
|
137
|
+
width: 0
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
var getInStyle = function getInStyle(_ref4) {
|
|
141
|
+
var x = _ref4.x,
|
|
142
|
+
width = _ref4.width,
|
|
143
|
+
y = _ref4.y,
|
|
144
|
+
height = _ref4.height;
|
|
145
|
+
return {
|
|
146
|
+
y: y,
|
|
147
|
+
x: x,
|
|
148
|
+
height: height,
|
|
149
|
+
width: width
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Demos:
|
|
155
|
+
*
|
|
156
|
+
* - [Bars](https://mui.com/x/react-charts/bars/)
|
|
157
|
+
* - [Bar demonstration](https://mui.com/x/react-charts/bar-demo/)
|
|
158
|
+
* - [Stacking](https://mui.com/x/react-charts/stacking/)
|
|
159
|
+
*
|
|
160
|
+
* API:
|
|
161
|
+
*
|
|
162
|
+
* - [BarPlot API](https://mui.com/x/api/charts/bar-plot/)
|
|
163
|
+
*/
|
|
164
|
+
function BarPlot(props) {
|
|
165
|
+
var completedData = useCompletedData();
|
|
166
|
+
var skipAnimation = props.skipAnimation,
|
|
167
|
+
other = _objectWithoutProperties(props, _excluded);
|
|
168
|
+
var transition = useTransition(completedData, {
|
|
169
|
+
keys: function keys(bar) {
|
|
170
|
+
return "".concat(bar.seriesId, "-").concat(bar.dataIndex);
|
|
171
|
+
},
|
|
172
|
+
from: getOutStyle,
|
|
173
|
+
leave: getOutStyle,
|
|
174
|
+
enter: getInStyle,
|
|
175
|
+
update: getInStyle,
|
|
176
|
+
immediate: skipAnimation
|
|
177
|
+
});
|
|
178
|
+
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
179
|
+
children: transition(function (style, _ref5) {
|
|
180
|
+
var seriesId = _ref5.seriesId,
|
|
181
|
+
dataIndex = _ref5.dataIndex,
|
|
182
|
+
color = _ref5.color,
|
|
183
|
+
highlightScope = _ref5.highlightScope;
|
|
184
|
+
return /*#__PURE__*/_jsx(BarElement, _extends({
|
|
185
|
+
id: seriesId,
|
|
186
|
+
dataIndex: dataIndex,
|
|
187
|
+
highlightScope: highlightScope,
|
|
188
|
+
color: color
|
|
189
|
+
}, other, {
|
|
190
|
+
style: style
|
|
191
|
+
}));
|
|
109
192
|
})
|
|
110
193
|
});
|
|
111
194
|
}
|
|
@@ -114,6 +197,11 @@ process.env.NODE_ENV !== "production" ? BarPlot.propTypes = {
|
|
|
114
197
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
115
198
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
116
199
|
// ----------------------------------------------------------------------
|
|
200
|
+
/**
|
|
201
|
+
* If `true`, animations are skiped.
|
|
202
|
+
* @default false
|
|
203
|
+
*/
|
|
204
|
+
skipAnimation: PropTypes.bool,
|
|
117
205
|
/**
|
|
118
206
|
* The props used for each component slot.
|
|
119
207
|
* @default {}
|
|
@@ -57,7 +57,7 @@ var formatter = function formatter(params, dataset) {
|
|
|
57
57
|
seriesOrder: seriesOrder,
|
|
58
58
|
stackingGroups: stackingGroups,
|
|
59
59
|
series: defaultizeValueFormatter(completedSeries, function (v) {
|
|
60
|
-
return v.toLocaleString();
|
|
60
|
+
return v == null ? void 0 : v.toLocaleString();
|
|
61
61
|
})
|
|
62
62
|
};
|
|
63
63
|
};
|
|
@@ -3,6 +3,7 @@ import useForkRef from '@mui/utils/useForkRef';
|
|
|
3
3
|
import { DrawingProvider } from '../context/DrawingProvider';
|
|
4
4
|
import { SeriesContextProvider } from '../context/SeriesContextProvider';
|
|
5
5
|
import { InteractionProvider } from '../context/InteractionProvider';
|
|
6
|
+
import { useReducedMotion } from '../hooks/useReducedMotion';
|
|
6
7
|
import { ChartsSurface } from '../ChartsSurface';
|
|
7
8
|
import { CartesianContextProvider } from '../context/CartesianContextProvider';
|
|
8
9
|
import { HighlightProvider } from '../context/HighlightProvider';
|
|
@@ -23,6 +24,8 @@ export var ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContaine
|
|
|
23
24
|
children = props.children;
|
|
24
25
|
var svgRef = React.useRef(null);
|
|
25
26
|
var handleRef = useForkRef(ref, svgRef);
|
|
27
|
+
useReducedMotion(); // a11y reduce motion (see: https://react-spring.dev/docs/utilities/use-reduced-motion)
|
|
28
|
+
|
|
26
29
|
return /*#__PURE__*/_jsx(DrawingProvider, {
|
|
27
30
|
width: width,
|
|
28
31
|
height: height,
|