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