@mui/x-charts 6.0.0-alpha.8 → 6.18.0
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 +19 -5
- package/BarChart/BarChart.js +52 -13
- 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 +786 -48
- package/ChartContainer/index.js +7 -5
- package/ChartsAxis/ChartsAxis.d.ts +9 -0
- package/ChartsAxis/ChartsAxis.js +28 -2
- package/ChartsAxis/axisClasses.d.ts +1 -1
- 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 +44 -24
- package/ChartsLegend/ChartsLegend.js +192 -150
- package/ChartsLegend/chartsLegendClasses.js +1 -2
- package/ChartsLegend/utils.d.ts +1 -6
- package/ChartsSurface.d.ts +1 -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 +161 -40
- package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
- package/ChartsYAxis/ChartsYAxis.js +86 -33
- package/LineChart/AreaElement.d.ts +12 -2
- package/LineChart/AreaElement.js +14 -6
- package/LineChart/AreaPlot.d.ts +11 -0
- package/LineChart/AreaPlot.js +27 -8
- package/LineChart/LineChart.d.ts +21 -3
- package/LineChart/LineChart.js +61 -14
- package/LineChart/LineElement.d.ts +12 -2
- package/LineChart/LineElement.js +14 -6
- package/LineChart/LineHighlightElement.d.ts +31 -0
- package/LineChart/LineHighlightElement.js +88 -0
- package/LineChart/LineHighlightPlot.d.ts +35 -0
- package/LineChart/LineHighlightPlot.js +110 -0
- package/LineChart/LinePlot.d.ts +10 -0
- package/LineChart/LinePlot.js +25 -12
- package/LineChart/MarkElement.d.ts +11 -1
- package/LineChart/MarkElement.js +15 -9
- package/LineChart/MarkPlot.d.ts +10 -0
- package/LineChart/MarkPlot.js +62 -15
- package/LineChart/formatter.js +5 -5
- package/LineChart/index.d.ts +2 -0
- package/LineChart/index.js +20 -0
- package/LineChart/legend.js +1 -2
- package/PieChart/PieArc.d.ts +12 -14
- package/PieChart/PieArc.js +28 -60
- package/PieChart/PieArcLabel.d.ts +9 -10
- 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 +61 -14
- 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.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 +43 -12
- 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 +13 -3
- package/SparkLineChart/SparkLineChart.js +34 -18
- package/colorPalettes/colorPalettes.js +6 -12
- package/constants.js +5 -8
- package/context/CartesianContextProvider.d.ts +5 -0
- package/context/CartesianContextProvider.js +31 -16
- package/context/DrawingProvider.d.ts +7 -0
- package/context/DrawingProvider.js +12 -6
- package/context/HighlightProvider.js +3 -4
- package/context/InteractionProvider.js +3 -4
- package/context/SeriesContextProvider.js +3 -4
- package/esm/BarChart/BarChart.js +49 -9
- 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 +26 -0
- package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
- package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
- package/esm/ChartsLegend/ChartsLegend.js +188 -142
- 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 +158 -37
- package/esm/ChartsYAxis/ChartsYAxis.js +83 -30
- package/esm/LineChart/AreaElement.js +10 -0
- package/esm/LineChart/AreaPlot.js +26 -6
- package/esm/LineChart/LineChart.js +58 -10
- package/esm/LineChart/LineElement.js +10 -0
- package/esm/LineChart/LineHighlightElement.js +78 -0
- package/esm/LineChart/LineHighlightPlot.js +103 -0
- package/esm/LineChart/LinePlot.js +25 -14
- package/esm/LineChart/MarkElement.js +12 -5
- package/esm/LineChart/MarkPlot.js +60 -13
- package/esm/LineChart/formatter.js +7 -3
- package/esm/LineChart/index.js +3 -1
- 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 +59 -12
- 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 +40 -8
- package/esm/ScatterChart/ScatterPlot.js +10 -0
- package/esm/SparkLineChart/SparkLineChart.js +32 -15
- package/esm/constants.js +1 -1
- package/esm/context/CartesianContextProvider.js +30 -14
- package/esm/context/DrawingProvider.js +8 -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/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.js +1 -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 +8 -1
- 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/stackSeries.js +2 -4
- package/legacy/BarChart/BarChart.js +49 -9
- 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 +26 -0
- package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
- package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
- package/legacy/ChartsLegend/ChartsLegend.js +203 -140
- 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 +162 -39
- package/legacy/ChartsYAxis/ChartsYAxis.js +83 -30
- package/legacy/LineChart/AreaElement.js +10 -0
- package/legacy/LineChart/AreaPlot.js +31 -7
- package/legacy/LineChart/LineChart.js +58 -10
- package/legacy/LineChart/LineElement.js +10 -0
- package/legacy/LineChart/LineHighlightElement.js +77 -0
- package/legacy/LineChart/LineHighlightPlot.js +96 -0
- package/legacy/LineChart/LinePlot.js +29 -12
- package/legacy/LineChart/MarkElement.js +12 -5
- package/legacy/LineChart/MarkPlot.js +50 -5
- package/legacy/LineChart/formatter.js +7 -3
- package/legacy/LineChart/index.js +3 -1
- 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 +59 -12
- 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 +40 -8
- package/legacy/ScatterChart/ScatterPlot.js +10 -0
- package/legacy/SparkLineChart/SparkLineChart.js +32 -13
- package/legacy/constants.js +1 -1
- package/legacy/context/CartesianContextProvider.js +30 -14
- package/legacy/context/DrawingProvider.js +8 -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 +1 -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 +27 -9
- package/models/layout.d.ts +7 -6
- package/models/seriesType/line.d.ts +39 -1
- package/models/seriesType/pie.d.ts +5 -1
- package/modern/BarChart/BarChart.js +49 -9
- 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 +26 -0
- package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
- package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
- package/modern/ChartsLegend/ChartsLegend.js +188 -142
- 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 +158 -37
- package/modern/ChartsYAxis/ChartsYAxis.js +83 -30
- package/modern/LineChart/AreaElement.js +10 -0
- package/modern/LineChart/AreaPlot.js +25 -6
- package/modern/LineChart/LineChart.js +58 -10
- package/modern/LineChart/LineElement.js +10 -0
- package/modern/LineChart/LineHighlightElement.js +78 -0
- package/modern/LineChart/LineHighlightPlot.js +102 -0
- package/modern/LineChart/LinePlot.js +23 -10
- package/modern/LineChart/MarkElement.js +12 -5
- package/modern/LineChart/MarkPlot.js +60 -13
- package/modern/LineChart/formatter.js +4 -3
- package/modern/LineChart/index.js +3 -1
- 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 +59 -12
- 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 +40 -8
- package/modern/ScatterChart/ScatterPlot.js +10 -0
- package/modern/SparkLineChart/SparkLineChart.js +32 -15
- package/modern/constants.js +1 -1
- package/modern/context/CartesianContextProvider.js +29 -13
- package/modern/context/DrawingProvider.js +8 -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 +1 -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/PieChart/PieArc.js
CHANGED
|
@@ -11,22 +11,20 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _d3Shape = require("d3-shape");
|
|
14
|
-
var
|
|
14
|
+
var _web = require("@react-spring/web");
|
|
15
15
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
16
16
|
var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
|
|
17
17
|
var _styles = require("@mui/material/styles");
|
|
18
18
|
var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
|
|
19
|
-
var _InteractionProvider = require("../context/InteractionProvider");
|
|
20
19
|
var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
|
|
21
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
-
const _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "
|
|
23
|
-
function _getRequireWildcardCache(
|
|
24
|
-
function _interopRequireWildcard(
|
|
21
|
+
const _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "onClick", "isFaded", "isHighlighted", "startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
|
|
22
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
23
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
24
|
function getPieArcUtilityClass(slot) {
|
|
26
25
|
return (0, _generateUtilityClass.default)('MuiPieArc', slot);
|
|
27
26
|
}
|
|
28
|
-
const pieArcClasses = (0, _generateUtilityClasses.default)('MuiPieArc', ['root', 'highlighted', 'faded']);
|
|
29
|
-
exports.pieArcClasses = pieArcClasses;
|
|
27
|
+
const pieArcClasses = exports.pieArcClasses = (0, _generateUtilityClasses.default)('MuiPieArc', ['root', 'highlighted', 'faded']);
|
|
30
28
|
const useUtilityClasses = ownerState => {
|
|
31
29
|
const {
|
|
32
30
|
classes,
|
|
@@ -39,19 +37,16 @@ const useUtilityClasses = ownerState => {
|
|
|
39
37
|
};
|
|
40
38
|
return (0, _composeClasses.default)(slots, getPieArcUtilityClass, classes);
|
|
41
39
|
};
|
|
42
|
-
const PieArcRoot = (0, _styles.styled)(
|
|
40
|
+
const PieArcRoot = (0, _styles.styled)(_web.animated.path, {
|
|
43
41
|
name: 'MuiPieArc',
|
|
44
42
|
slot: 'Root',
|
|
45
43
|
overridesResolver: (_, styles) => styles.arc
|
|
46
44
|
})(({
|
|
47
|
-
ownerState,
|
|
48
45
|
theme
|
|
49
46
|
}) => ({
|
|
50
|
-
stroke: theme.palette.background.paper,
|
|
47
|
+
stroke: (theme.vars || theme).palette.background.paper,
|
|
51
48
|
strokeWidth: 1,
|
|
52
|
-
strokeLinejoin: 'round'
|
|
53
|
-
fill: ownerState.color,
|
|
54
|
-
opacity: ownerState.isFaded ? 0.3 : 1
|
|
49
|
+
strokeLinejoin: 'round'
|
|
55
50
|
}));
|
|
56
51
|
function PieArc(props) {
|
|
57
52
|
const {
|
|
@@ -60,29 +55,17 @@ function PieArc(props) {
|
|
|
60
55
|
classes: innerClasses,
|
|
61
56
|
color,
|
|
62
57
|
highlightScope,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
58
|
+
onClick,
|
|
59
|
+
isFaded,
|
|
60
|
+
isHighlighted,
|
|
61
|
+
startAngle,
|
|
62
|
+
endAngle,
|
|
63
|
+
paddingAngle,
|
|
64
|
+
innerRadius,
|
|
65
|
+
outerRadius,
|
|
66
|
+
cornerRadius
|
|
70
67
|
} = props,
|
|
71
68
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
72
|
-
const getInteractionItemProps = (0, _useInteractionItemProps.useInteractionItemProps)(highlightScope);
|
|
73
|
-
const {
|
|
74
|
-
item
|
|
75
|
-
} = React.useContext(_InteractionProvider.InteractionContext);
|
|
76
|
-
const isHighlighted = (0, _useInteractionItemProps.getIsHighlighted)(item, {
|
|
77
|
-
type: 'pie',
|
|
78
|
-
seriesId: id,
|
|
79
|
-
dataIndex
|
|
80
|
-
}, highlightScope);
|
|
81
|
-
const isFaded = !isHighlighted && (0, _useInteractionItemProps.getIsFaded)(item, {
|
|
82
|
-
type: 'pie',
|
|
83
|
-
seriesId: id,
|
|
84
|
-
dataIndex
|
|
85
|
-
}, highlightScope);
|
|
86
69
|
const ownerState = {
|
|
87
70
|
id,
|
|
88
71
|
dataIndex,
|
|
@@ -92,37 +75,22 @@ function PieArc(props) {
|
|
|
92
75
|
isHighlighted
|
|
93
76
|
};
|
|
94
77
|
const classes = useUtilityClasses(ownerState);
|
|
95
|
-
const
|
|
96
|
-
additionalRadius: 0
|
|
97
|
-
}, isFaded && faded || isHighlighted && highlighted || {});
|
|
98
|
-
const innerRadius = Math.max(0, attibuesOverride.innerRadius ?? baseInnerRadius);
|
|
99
|
-
const outerRadius = Math.max(0, attibuesOverride.outerRadius ?? baseOuterRadius + attibuesOverride.additionalRadius);
|
|
100
|
-
const cornerRadius = attibuesOverride.cornerRadius ?? baseCornerRadius;
|
|
78
|
+
const getInteractionItemProps = (0, _useInteractionItemProps.useInteractionItemProps)(highlightScope);
|
|
101
79
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PieArcRoot, (0, _extends2.default)({
|
|
102
|
-
d: (0,
|
|
103
|
-
|
|
104
|
-
|
|
80
|
+
d: (0, _web.to)([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], (sA, eA, pA, iR, oR, cR) => (0, _d3Shape.arc)().cornerRadius(cR)({
|
|
81
|
+
padAngle: pA,
|
|
82
|
+
startAngle: sA,
|
|
83
|
+
endAngle: eA,
|
|
84
|
+
innerRadius: iR,
|
|
85
|
+
outerRadius: oR
|
|
105
86
|
})),
|
|
87
|
+
onClick: onClick,
|
|
88
|
+
cursor: onClick ? 'pointer' : 'unset',
|
|
106
89
|
ownerState: ownerState,
|
|
107
90
|
className: classes.root
|
|
108
|
-
}, getInteractionItemProps({
|
|
91
|
+
}, other, getInteractionItemProps({
|
|
109
92
|
type: 'pie',
|
|
110
93
|
seriesId: id,
|
|
111
94
|
dataIndex
|
|
112
95
|
})));
|
|
113
|
-
}
|
|
114
|
-
process.env.NODE_ENV !== "production" ? PieArc.propTypes = {
|
|
115
|
-
// ----------------------------- Warning --------------------------------
|
|
116
|
-
// | These PropTypes are generated from the TypeScript type definitions |
|
|
117
|
-
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
118
|
-
// ----------------------------------------------------------------------
|
|
119
|
-
classes: _propTypes.default.object,
|
|
120
|
-
cornerRadius: _propTypes.default.number,
|
|
121
|
-
dataIndex: _propTypes.default.number.isRequired,
|
|
122
|
-
highlightScope: _propTypes.default.shape({
|
|
123
|
-
faded: _propTypes.default.oneOf(['global', 'none', 'series']),
|
|
124
|
-
highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
|
|
125
|
-
}),
|
|
126
|
-
innerRadius: _propTypes.default.number,
|
|
127
|
-
outerRadius: _propTypes.default.number.isRequired
|
|
128
|
-
} : void 0;
|
|
96
|
+
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import { HighlightScope } from '../context/HighlightProvider';
|
|
4
|
-
import { PieSeriesType } from '../models/seriesType/pie';
|
|
2
|
+
import { SpringValue } from '@react-spring/web';
|
|
5
3
|
export interface PieArcLabelClasses {
|
|
6
4
|
/** Styles applied to the root element. */
|
|
7
5
|
root: string;
|
|
@@ -11,9 +9,8 @@ export interface PieArcLabelClasses {
|
|
|
11
9
|
faded: string;
|
|
12
10
|
}
|
|
13
11
|
export type PieArcLabelClassKey = keyof PieArcLabelClasses;
|
|
14
|
-
|
|
12
|
+
interface PieArcLabelOwnerState {
|
|
15
13
|
id: string;
|
|
16
|
-
dataIndex: number;
|
|
17
14
|
color: string;
|
|
18
15
|
isFaded: boolean;
|
|
19
16
|
isHighlighted: boolean;
|
|
@@ -21,11 +18,13 @@ export interface PieArcLabelOwnerState {
|
|
|
21
18
|
}
|
|
22
19
|
export declare function getPieArcLabelUtilityClass(slot: string): string;
|
|
23
20
|
export declare const pieArcLabelClasses: PieArcLabelClasses;
|
|
24
|
-
export type PieArcLabelProps =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
export type PieArcLabelProps = PieArcLabelOwnerState & React.ComponentPropsWithoutRef<'text'> & {
|
|
22
|
+
startAngle: SpringValue<number>;
|
|
23
|
+
endAngle: SpringValue<number>;
|
|
24
|
+
innerRadius: SpringValue<number>;
|
|
25
|
+
outerRadius: SpringValue<number>;
|
|
26
|
+
cornerRadius: SpringValue<number>;
|
|
27
|
+
paddingAngle: SpringValue<number>;
|
|
29
28
|
} & {
|
|
30
29
|
formattedArcLabel?: string | null;
|
|
31
30
|
};
|
package/PieChart/PieArcLabel.js
CHANGED
|
@@ -10,23 +10,21 @@ exports.pieArcLabelClasses = void 0;
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _web = require("@react-spring/web");
|
|
13
14
|
var _d3Shape = require("d3-shape");
|
|
14
15
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
16
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
16
17
|
var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
|
|
17
18
|
var _styles = require("@mui/material/styles");
|
|
18
19
|
var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
|
|
19
|
-
var _InteractionProvider = require("../context/InteractionProvider");
|
|
20
|
-
var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
|
|
21
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
-
const _excluded = ["id", "
|
|
23
|
-
function _getRequireWildcardCache(
|
|
24
|
-
function _interopRequireWildcard(
|
|
21
|
+
const _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
|
|
22
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
23
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
24
|
function getPieArcLabelUtilityClass(slot) {
|
|
26
25
|
return (0, _generateUtilityClass.default)('MuiPieArcLabel', slot);
|
|
27
26
|
}
|
|
28
|
-
const pieArcLabelClasses = (0, _generateUtilityClasses.default)('MuiPieArcLabel', ['root', 'highlighted', 'faded']);
|
|
29
|
-
exports.pieArcLabelClasses = pieArcLabelClasses;
|
|
27
|
+
const pieArcLabelClasses = exports.pieArcLabelClasses = (0, _generateUtilityClasses.default)('MuiPieArcLabel', ['root', 'highlighted', 'faded']);
|
|
30
28
|
const useUtilityClasses = ownerState => {
|
|
31
29
|
const {
|
|
32
30
|
classes,
|
|
@@ -39,61 +37,71 @@ const useUtilityClasses = ownerState => {
|
|
|
39
37
|
};
|
|
40
38
|
return (0, _composeClasses.default)(slots, getPieArcLabelUtilityClass, classes);
|
|
41
39
|
};
|
|
42
|
-
const PieArcLabelRoot = (0, _styles.styled)(
|
|
40
|
+
const PieArcLabelRoot = (0, _styles.styled)(_web.animated.text, {
|
|
43
41
|
name: 'MuiPieArcLabel',
|
|
44
42
|
slot: 'Root',
|
|
45
43
|
overridesResolver: (_, styles) => styles.root
|
|
46
44
|
})(({
|
|
47
45
|
theme
|
|
48
46
|
}) => ({
|
|
49
|
-
fill: theme.palette.text.primary,
|
|
50
|
-
textAnchor: 'middle'
|
|
47
|
+
fill: (theme.vars || theme).palette.text.primary,
|
|
48
|
+
textAnchor: 'middle',
|
|
49
|
+
dominantBaseline: 'middle'
|
|
51
50
|
}));
|
|
51
|
+
/**
|
|
52
|
+
* Helper to compute label position.
|
|
53
|
+
* It's not an inline function because we need it in inerpolation.
|
|
54
|
+
*/
|
|
55
|
+
const getLabelPosition = (formattedArcLabel, variable) => (startAngle, endAngle, padAngle, innerRadius, outerRadius, cornerRadius) => {
|
|
56
|
+
if (!formattedArcLabel) {
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
59
|
+
const [x, y] = (0, _d3Shape.arc)().cornerRadius(cornerRadius).centroid({
|
|
60
|
+
padAngle,
|
|
61
|
+
startAngle,
|
|
62
|
+
endAngle,
|
|
63
|
+
innerRadius,
|
|
64
|
+
outerRadius
|
|
65
|
+
});
|
|
66
|
+
if (variable === 'x') {
|
|
67
|
+
return x;
|
|
68
|
+
}
|
|
69
|
+
return y;
|
|
70
|
+
};
|
|
52
71
|
function PieArcLabel(props) {
|
|
53
72
|
const {
|
|
54
73
|
id,
|
|
55
|
-
dataIndex,
|
|
56
74
|
classes: innerClasses,
|
|
57
75
|
color,
|
|
58
|
-
|
|
59
|
-
|
|
76
|
+
startAngle,
|
|
77
|
+
endAngle,
|
|
78
|
+
paddingAngle,
|
|
79
|
+
innerRadius,
|
|
60
80
|
outerRadius,
|
|
61
|
-
cornerRadius
|
|
62
|
-
formattedArcLabel
|
|
81
|
+
cornerRadius,
|
|
82
|
+
formattedArcLabel,
|
|
83
|
+
isHighlighted,
|
|
84
|
+
isFaded,
|
|
85
|
+
style
|
|
63
86
|
} = props,
|
|
64
87
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
65
|
-
const {
|
|
66
|
-
item
|
|
67
|
-
} = React.useContext(_InteractionProvider.InteractionContext);
|
|
68
|
-
const isHighlighted = (0, _useInteractionItemProps.getIsHighlighted)(item, {
|
|
69
|
-
type: 'pie',
|
|
70
|
-
seriesId: id,
|
|
71
|
-
dataIndex
|
|
72
|
-
}, highlightScope);
|
|
73
|
-
const isFaded = !isHighlighted && (0, _useInteractionItemProps.getIsFaded)(item, {
|
|
74
|
-
type: 'pie',
|
|
75
|
-
seriesId: id,
|
|
76
|
-
dataIndex
|
|
77
|
-
}, highlightScope);
|
|
78
88
|
const ownerState = {
|
|
79
89
|
id,
|
|
80
|
-
dataIndex,
|
|
81
90
|
classes: innerClasses,
|
|
82
91
|
color,
|
|
83
92
|
isFaded,
|
|
84
93
|
isHighlighted
|
|
85
94
|
};
|
|
86
95
|
const classes = useUtilityClasses(ownerState);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
y: arcLabelPosition[1],
|
|
96
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(PieArcLabelRoot, (0, _extends2.default)({
|
|
97
|
+
className: classes.root
|
|
98
|
+
}, other, {
|
|
99
|
+
style: (0, _extends2.default)({
|
|
100
|
+
x: (0, _web.to)([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'x')),
|
|
101
|
+
y: (0, _web.to)([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'y'))
|
|
102
|
+
}, style),
|
|
95
103
|
children: formattedArcLabel
|
|
96
|
-
});
|
|
104
|
+
}));
|
|
97
105
|
}
|
|
98
106
|
process.env.NODE_ENV !== "production" ? PieArcLabel.propTypes = {
|
|
99
107
|
// ----------------------------- Warning --------------------------------
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { DefaultizedPieSeriesType } from '../models/seriesType/pie';
|
|
3
|
+
import { PieArcLabelProps } from './PieArcLabel';
|
|
4
|
+
import { DefaultizedProps } from '../models/helpers';
|
|
5
|
+
export interface PieArcLabelPlotSlotsComponent {
|
|
6
|
+
pieArcLabel?: React.JSXElementConstructor<PieArcLabelProps>;
|
|
7
|
+
}
|
|
8
|
+
export interface PieArcLabelPlotSlotComponentProps {
|
|
9
|
+
pieArcLabel?: Partial<PieArcLabelProps>;
|
|
10
|
+
}
|
|
11
|
+
export interface PieArcLabelPlotProps extends DefaultizedProps<Pick<DefaultizedPieSeriesType, 'data' | 'faded' | 'highlighted' | 'innerRadius' | 'outerRadius' | 'cornerRadius' | 'paddingAngle' | 'arcLabel' | 'arcLabelMinAngle' | 'id' | 'highlightScope'>, 'outerRadius'> {
|
|
12
|
+
/**
|
|
13
|
+
* Overridable component slots.
|
|
14
|
+
* @default {}
|
|
15
|
+
*/
|
|
16
|
+
slots?: PieArcLabelPlotSlotsComponent;
|
|
17
|
+
/**
|
|
18
|
+
* The props used for each component slot.
|
|
19
|
+
* @default {}
|
|
20
|
+
*/
|
|
21
|
+
slotProps?: PieArcLabelPlotSlotComponentProps;
|
|
22
|
+
/**
|
|
23
|
+
* If `true`, animations are skiped.
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
skipAnimation?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare function PieArcLabelPlot(props: PieArcLabelPlotProps): React.JSX.Element | null;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PieArcLabelPlot = PieArcLabelPlot;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _web = require("@react-spring/web");
|
|
12
|
+
var _transition = require("./dataTransform/transition");
|
|
13
|
+
var _useTransformData = require("./dataTransform/useTransformData");
|
|
14
|
+
var _PieArcLabel = _interopRequireDefault(require("./PieArcLabel"));
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "arcLabel", "arcLabelMinAngle", "skipAnimation"],
|
|
17
|
+
_excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
const RATIO = 180 / Math.PI;
|
|
21
|
+
function getItemLabel(arcLabel, arcLabelMinAngle, item) {
|
|
22
|
+
if (!arcLabel) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const angle = (item.endAngle - item.startAngle) * RATIO;
|
|
26
|
+
if (angle < arcLabelMinAngle) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
if (typeof arcLabel === 'string') {
|
|
30
|
+
return item[arcLabel]?.toString();
|
|
31
|
+
}
|
|
32
|
+
return arcLabel(item);
|
|
33
|
+
}
|
|
34
|
+
function PieArcLabelPlot(props) {
|
|
35
|
+
const {
|
|
36
|
+
slots,
|
|
37
|
+
slotProps,
|
|
38
|
+
innerRadius = 0,
|
|
39
|
+
outerRadius,
|
|
40
|
+
cornerRadius = 0,
|
|
41
|
+
paddingAngle = 0,
|
|
42
|
+
id,
|
|
43
|
+
highlightScope,
|
|
44
|
+
highlighted,
|
|
45
|
+
faded = {
|
|
46
|
+
additionalRadius: -5
|
|
47
|
+
},
|
|
48
|
+
data,
|
|
49
|
+
arcLabel,
|
|
50
|
+
arcLabelMinAngle = 0,
|
|
51
|
+
skipAnimation
|
|
52
|
+
} = props,
|
|
53
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
54
|
+
const transformedData = (0, _useTransformData.useTransformData)({
|
|
55
|
+
innerRadius,
|
|
56
|
+
outerRadius,
|
|
57
|
+
cornerRadius,
|
|
58
|
+
paddingAngle,
|
|
59
|
+
id,
|
|
60
|
+
highlightScope,
|
|
61
|
+
highlighted,
|
|
62
|
+
faded,
|
|
63
|
+
data
|
|
64
|
+
});
|
|
65
|
+
const transition = (0, _web.useTransition)(transformedData, (0, _extends2.default)({}, _transition.defaultLabelTransitionConfig, {
|
|
66
|
+
immediate: skipAnimation
|
|
67
|
+
}));
|
|
68
|
+
if (data.length === 0) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const ArcLabel = slots?.pieArcLabel ?? _PieArcLabel.default;
|
|
72
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
|
|
73
|
+
children: transition((_ref, item) => {
|
|
74
|
+
let {
|
|
75
|
+
startAngle,
|
|
76
|
+
endAngle,
|
|
77
|
+
paddingAngle: pA,
|
|
78
|
+
innerRadius: iR,
|
|
79
|
+
outerRadius: oR,
|
|
80
|
+
cornerRadius: cR
|
|
81
|
+
} = _ref,
|
|
82
|
+
style = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded2);
|
|
83
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ArcLabel, (0, _extends2.default)({
|
|
84
|
+
startAngle: startAngle,
|
|
85
|
+
endAngle: endAngle,
|
|
86
|
+
paddingAngle: pA,
|
|
87
|
+
innerRadius: iR,
|
|
88
|
+
outerRadius: oR,
|
|
89
|
+
cornerRadius: cR,
|
|
90
|
+
style: style,
|
|
91
|
+
id: id,
|
|
92
|
+
color: item.color,
|
|
93
|
+
isFaded: item.isFaded,
|
|
94
|
+
isHighlighted: item.isHighlighted,
|
|
95
|
+
formattedArcLabel: getItemLabel(arcLabel, arcLabelMinAngle, item)
|
|
96
|
+
}, slotProps?.pieArcLabel));
|
|
97
|
+
})
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PieArcProps } from './PieArc';
|
|
3
|
+
import { DefaultizedPieSeriesType, DefaultizedPieValueType, PieItemIdentifier } from '../models/seriesType/pie';
|
|
4
|
+
import { DefaultizedProps } from '../models/helpers';
|
|
5
|
+
export interface PieArcPlotSlotsComponent {
|
|
6
|
+
pieArc?: React.JSXElementConstructor<PieArcProps>;
|
|
7
|
+
}
|
|
8
|
+
export interface PieArcPlotSlotComponentProps {
|
|
9
|
+
pieArc?: Partial<PieArcProps>;
|
|
10
|
+
}
|
|
11
|
+
export interface PieArcPlotProps extends DefaultizedProps<Pick<DefaultizedPieSeriesType, 'data' | 'faded' | 'highlighted' | 'innerRadius' | 'outerRadius' | 'cornerRadius' | 'paddingAngle' | 'id' | 'highlightScope'>, 'outerRadius'> {
|
|
12
|
+
/**
|
|
13
|
+
* Overridable component slots.
|
|
14
|
+
* @default {}
|
|
15
|
+
*/
|
|
16
|
+
slots?: PieArcPlotSlotsComponent;
|
|
17
|
+
/**
|
|
18
|
+
* The props used for each component slot.
|
|
19
|
+
* @default {}
|
|
20
|
+
*/
|
|
21
|
+
slotProps?: PieArcPlotSlotComponentProps;
|
|
22
|
+
/**
|
|
23
|
+
* Callback fired when a pie item is clicked.
|
|
24
|
+
* @param {React.MouseEvent<SVGPathElement, MouseEvent>} event The event source of the callback.
|
|
25
|
+
* @param {PieItemIdentifier} pieItemIdentifier The pie item identifier.
|
|
26
|
+
* @param {DefaultizedPieValueType} item The pie item.
|
|
27
|
+
*/
|
|
28
|
+
onClick?: (event: React.MouseEvent<SVGPathElement, MouseEvent>, pieItemIdentifier: PieItemIdentifier, item: DefaultizedPieValueType) => void;
|
|
29
|
+
/**
|
|
30
|
+
* If `true`, animations are skiped.
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
skipAnimation?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare function PieArcPlot(props: PieArcPlotProps): React.JSX.Element | null;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PieArcPlot = PieArcPlot;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _web = require("@react-spring/web");
|
|
12
|
+
var _PieArc = _interopRequireDefault(require("./PieArc"));
|
|
13
|
+
var _transition = require("./dataTransform/transition");
|
|
14
|
+
var _useTransformData = require("./dataTransform/useTransformData");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "onClick", "skipAnimation"],
|
|
17
|
+
_excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
function PieArcPlot(props) {
|
|
21
|
+
const {
|
|
22
|
+
slots,
|
|
23
|
+
slotProps,
|
|
24
|
+
innerRadius = 0,
|
|
25
|
+
outerRadius,
|
|
26
|
+
cornerRadius = 0,
|
|
27
|
+
paddingAngle = 0,
|
|
28
|
+
id,
|
|
29
|
+
highlightScope,
|
|
30
|
+
highlighted,
|
|
31
|
+
faded = {
|
|
32
|
+
additionalRadius: -5
|
|
33
|
+
},
|
|
34
|
+
data,
|
|
35
|
+
onClick,
|
|
36
|
+
skipAnimation
|
|
37
|
+
} = props,
|
|
38
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
39
|
+
const transformedData = (0, _useTransformData.useTransformData)({
|
|
40
|
+
innerRadius,
|
|
41
|
+
outerRadius,
|
|
42
|
+
cornerRadius,
|
|
43
|
+
paddingAngle,
|
|
44
|
+
id,
|
|
45
|
+
highlightScope,
|
|
46
|
+
highlighted,
|
|
47
|
+
faded,
|
|
48
|
+
data
|
|
49
|
+
});
|
|
50
|
+
const transition = (0, _web.useTransition)(transformedData, (0, _extends2.default)({}, _transition.defaultTransitionConfig, {
|
|
51
|
+
immediate: skipAnimation
|
|
52
|
+
}));
|
|
53
|
+
if (data.length === 0) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const Arc = slots?.pieArc ?? _PieArc.default;
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
|
|
58
|
+
children: transition((_ref, item, _, index) => {
|
|
59
|
+
let {
|
|
60
|
+
startAngle,
|
|
61
|
+
endAngle,
|
|
62
|
+
paddingAngle: pA,
|
|
63
|
+
innerRadius: iR,
|
|
64
|
+
outerRadius: oR,
|
|
65
|
+
cornerRadius: cR
|
|
66
|
+
} = _ref,
|
|
67
|
+
style = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded2);
|
|
68
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Arc, (0, _extends2.default)({
|
|
69
|
+
startAngle: startAngle,
|
|
70
|
+
endAngle: endAngle,
|
|
71
|
+
paddingAngle: pA,
|
|
72
|
+
innerRadius: iR,
|
|
73
|
+
outerRadius: oR,
|
|
74
|
+
cornerRadius: cR,
|
|
75
|
+
style: style,
|
|
76
|
+
id: id,
|
|
77
|
+
color: item.color,
|
|
78
|
+
dataIndex: index,
|
|
79
|
+
highlightScope: highlightScope,
|
|
80
|
+
isFaded: item.isFaded,
|
|
81
|
+
isHighlighted: item.isHighlighted,
|
|
82
|
+
onClick: onClick && (event => {
|
|
83
|
+
onClick(event, {
|
|
84
|
+
type: 'pie',
|
|
85
|
+
seriesId: id,
|
|
86
|
+
dataIndex: index
|
|
87
|
+
}, item);
|
|
88
|
+
})
|
|
89
|
+
}, slotProps?.pieArc));
|
|
90
|
+
})
|
|
91
|
+
}));
|
|
92
|
+
}
|
package/PieChart/PieChart.d.ts
CHANGED
|
@@ -3,21 +3,25 @@ import { ResponsiveChartContainerProps } from '../ResponsiveChartContainer';
|
|
|
3
3
|
import { ChartsAxisProps } from '../ChartsAxis/ChartsAxis';
|
|
4
4
|
import { PieSeriesType } from '../models/seriesType';
|
|
5
5
|
import { MakeOptional } from '../models/helpers';
|
|
6
|
-
import { ChartsTooltipProps } from '../ChartsTooltip';
|
|
6
|
+
import { ChartsTooltipProps, ChartsTooltipSlotComponentProps, ChartsTooltipSlotsComponent } from '../ChartsTooltip';
|
|
7
7
|
import { ChartsLegendProps, ChartsLegendSlotComponentProps, ChartsLegendSlotsComponent } from '../ChartsLegend';
|
|
8
8
|
import { ChartsAxisHighlightProps } from '../ChartsAxisHighlight';
|
|
9
|
-
import { PiePlotSlotComponentProps, PiePlotSlotsComponent } from './PiePlot';
|
|
9
|
+
import { PiePlotProps, PiePlotSlotComponentProps, PiePlotSlotsComponent } from './PiePlot';
|
|
10
10
|
import { PieValueType } from '../models/seriesType/pie';
|
|
11
11
|
import { ChartsAxisSlotsComponent, ChartsAxisSlotComponentProps } from '../models/axis';
|
|
12
|
-
export interface PieChartSlotsComponent extends ChartsAxisSlotsComponent, PiePlotSlotsComponent, ChartsLegendSlotsComponent {
|
|
12
|
+
export interface PieChartSlotsComponent extends ChartsAxisSlotsComponent, PiePlotSlotsComponent, ChartsLegendSlotsComponent, ChartsTooltipSlotsComponent {
|
|
13
13
|
}
|
|
14
|
-
export interface PieChartSlotComponentProps extends ChartsAxisSlotComponentProps, PiePlotSlotComponentProps, ChartsLegendSlotComponentProps {
|
|
14
|
+
export interface PieChartSlotComponentProps extends ChartsAxisSlotComponentProps, PiePlotSlotComponentProps, ChartsLegendSlotComponentProps, ChartsTooltipSlotComponentProps {
|
|
15
15
|
}
|
|
16
|
-
export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'> {
|
|
16
|
+
export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Pick<PiePlotProps, 'skipAnimation'> {
|
|
17
17
|
series: MakeOptional<PieSeriesType<MakeOptional<PieValueType, 'id'>>, 'type'>[];
|
|
18
18
|
tooltip?: ChartsTooltipProps;
|
|
19
19
|
axisHighlight?: ChartsAxisHighlightProps;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated Consider using `slotProps.legend` instead.
|
|
22
|
+
*/
|
|
20
23
|
legend?: ChartsLegendProps;
|
|
24
|
+
onClick?: PiePlotProps['onClick'];
|
|
21
25
|
slots?: PieChartSlotsComponent;
|
|
22
26
|
/**
|
|
23
27
|
* The props used for each component slot.
|
|
@@ -25,6 +29,16 @@ export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'seri
|
|
|
25
29
|
*/
|
|
26
30
|
slotProps?: PieChartSlotComponentProps;
|
|
27
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Demos:
|
|
34
|
+
*
|
|
35
|
+
* - [Pie](https://mui.com/x/react-charts/pie/)
|
|
36
|
+
* - [Pie demonstration](https://mui.com/x/react-charts/pie-demo/)
|
|
37
|
+
*
|
|
38
|
+
* API:
|
|
39
|
+
*
|
|
40
|
+
* - [PieChart API](https://mui.com/x/api/charts/pie-chart/)
|
|
41
|
+
*/
|
|
28
42
|
declare function PieChart(props: PieChartProps): React.JSX.Element;
|
|
29
43
|
declare namespace PieChart {
|
|
30
44
|
var propTypes: any;
|