@mui/x-charts 7.0.0-beta.3 → 7.0.0-beta.4
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.js +0 -2
- package/CHANGELOG.md +226 -15
- package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +1 -1
- package/ChartsTooltip/utils.js +1 -1
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.d.ts +0 -1
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +1 -2
- package/ChartsXAxis/ChartsXAxis.js +1 -1
- package/ChartsYAxis/ChartsYAxis.js +1 -1
- package/Gauge/Gauge.js +0 -2
- package/Gauge/GaugeContainer.d.ts +0 -2
- package/Gauge/GaugeContainer.js +0 -2
- package/Gauge/GaugeProvider.js +3 -0
- package/Gauge/GaugeValueText.js +1 -1
- package/LineChart/LineChart.js +0 -2
- package/PieChart/PieChart.js +0 -2
- package/ResponsiveChartContainer/ResponsiveChartContainer.d.ts +0 -2
- package/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -2
- package/ScatterChart/ScatterChart.js +0 -3
- package/SparkLineChart/SparkLineChart.js +0 -2
- package/context/CartesianContextProvider.d.ts +0 -8
- package/context/CartesianContextProvider.js +4 -89
- package/context/DrawingProvider.d.ts +2 -11
- package/context/DrawingProvider.js +10 -35
- package/context/HighlightProvider.js +3 -0
- package/context/InteractionProvider.js +3 -0
- package/context/SeriesContextProvider.js +3 -0
- package/context/index.d.ts +0 -2
- package/context/index.js +1 -15
- package/esm/BarChart/BarChart.js +0 -2
- package/esm/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
- package/esm/ChartsTooltip/utils.js +2 -2
- package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -3
- package/esm/ChartsXAxis/ChartsXAxis.js +1 -1
- package/esm/ChartsYAxis/ChartsYAxis.js +1 -1
- package/esm/Gauge/Gauge.js +0 -2
- package/esm/Gauge/GaugeContainer.js +0 -2
- package/esm/Gauge/GaugeProvider.js +3 -0
- package/esm/Gauge/GaugeValueText.js +1 -1
- package/esm/LineChart/LineChart.js +0 -2
- package/esm/PieChart/PieChart.js +0 -2
- package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -2
- package/esm/ScatterChart/ScatterChart.js +0 -3
- package/esm/SparkLineChart/SparkLineChart.js +0 -2
- package/esm/context/CartesianContextProvider.js +3 -88
- package/esm/context/DrawingProvider.js +10 -36
- package/esm/context/HighlightProvider.js +3 -0
- package/esm/context/InteractionProvider.js +3 -0
- package/esm/context/SeriesContextProvider.js +3 -0
- package/esm/context/index.js +1 -2
- package/esm/hooks/useAxisEvents.js +2 -2
- package/hooks/useAxisEvents.js +1 -1
- package/hooks/useTicks.d.ts +1 -1
- package/index.js +1 -1
- package/modern/BarChart/BarChart.js +0 -2
- package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
- package/modern/ChartsTooltip/utils.js +2 -2
- package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -3
- package/modern/ChartsXAxis/ChartsXAxis.js +1 -1
- package/modern/ChartsYAxis/ChartsYAxis.js +1 -1
- package/modern/Gauge/Gauge.js +0 -2
- package/modern/Gauge/GaugeContainer.js +0 -2
- package/modern/Gauge/GaugeProvider.js +3 -0
- package/modern/Gauge/GaugeValueText.js +1 -1
- package/modern/LineChart/LineChart.js +0 -2
- package/modern/PieChart/PieChart.js +0 -2
- package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -2
- package/modern/ScatterChart/ScatterChart.js +0 -3
- package/modern/SparkLineChart/SparkLineChart.js +0 -2
- package/modern/context/CartesianContextProvider.js +3 -88
- package/modern/context/DrawingProvider.js +10 -36
- package/modern/context/HighlightProvider.js +3 -0
- package/modern/context/InteractionProvider.js +3 -0
- package/modern/context/SeriesContextProvider.js +3 -0
- package/modern/context/index.js +1 -2
- package/modern/hooks/useAxisEvents.js +2 -2
- package/modern/index.js +1 -1
- package/package.json +1 -1
- package/legacy/BarChart/BarChart.js +0 -440
- package/legacy/BarChart/BarElement.js +0 -119
- package/legacy/BarChart/BarPlot.js +0 -232
- package/legacy/BarChart/extremums.js +0 -45
- package/legacy/BarChart/formatter.js +0 -78
- package/legacy/BarChart/index.js +0 -3
- package/legacy/BarChart/legend.js +0 -15
- package/legacy/ChartContainer/ChartContainer.js +0 -189
- package/legacy/ChartContainer/index.js +0 -1
- package/legacy/ChartsAxis/ChartsAxis.js +0 -215
- package/legacy/ChartsAxis/axisClasses.js +0 -5
- package/legacy/ChartsAxis/index.js +0 -2
- package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +0 -105
- package/legacy/ChartsAxisHighlight/index.js +0 -1
- package/legacy/ChartsClipPath/ChartsClipPath.js +0 -48
- package/legacy/ChartsClipPath/index.js +0 -1
- package/legacy/ChartsGrid/ChartsGrid.js +0 -119
- package/legacy/ChartsGrid/chartsGridClasses.js +0 -6
- package/legacy/ChartsGrid/index.js +0 -2
- package/legacy/ChartsLegend/ChartsLegend.js +0 -100
- package/legacy/ChartsLegend/DefaultChartsLegend.js +0 -302
- package/legacy/ChartsLegend/chartsLegendClasses.js +0 -5
- package/legacy/ChartsLegend/index.js +0 -4
- package/legacy/ChartsLegend/utils.js +0 -15
- package/legacy/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +0 -75
- package/legacy/ChartsOnAxisClickHandler/index.js +0 -1
- package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +0 -72
- package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +0 -105
- package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +0 -105
- package/legacy/ChartsReferenceLine/chartsReferenceLineClasses.js +0 -6
- package/legacy/ChartsReferenceLine/common.js +0 -19
- package/legacy/ChartsReferenceLine/index.js +0 -2
- package/legacy/ChartsSurface.js +0 -78
- package/legacy/ChartsText/ChartsText.js +0 -95
- package/legacy/ChartsText/index.js +0 -1
- package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +0 -96
- package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +0 -53
- package/legacy/ChartsTooltip/ChartsTooltip.js +0 -148
- package/legacy/ChartsTooltip/ChartsTooltipTable.js +0 -80
- package/legacy/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -118
- package/legacy/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -78
- package/legacy/ChartsTooltip/chartsTooltipClasses.js +0 -5
- package/legacy/ChartsTooltip/index.js +0 -6
- package/legacy/ChartsTooltip/utils.js +0 -103
- package/legacy/ChartsVoronoiHandler/ChartsVoronoiHandler.js +0 -206
- package/legacy/ChartsVoronoiHandler/index.js +0 -1
- package/legacy/ChartsXAxis/ChartsXAxis.js +0 -339
- package/legacy/ChartsXAxis/index.js +0 -1
- package/legacy/ChartsYAxis/ChartsYAxis.js +0 -267
- package/legacy/ChartsYAxis/index.js +0 -1
- package/legacy/Gauge/Gauge.js +0 -146
- package/legacy/Gauge/GaugeContainer.js +0 -215
- package/legacy/Gauge/GaugeProvider.js +0 -87
- package/legacy/Gauge/GaugeReferenceArc.js +0 -37
- package/legacy/Gauge/GaugeValueArc.js +0 -44
- package/legacy/Gauge/GaugeValueText.js +0 -66
- package/legacy/Gauge/gaugeClasses.js +0 -7
- package/legacy/Gauge/index.js +0 -7
- package/legacy/Gauge/utils.js +0 -84
- package/legacy/LineChart/AnimatedArea.js +0 -102
- package/legacy/LineChart/AnimatedLine.js +0 -104
- package/legacy/LineChart/AreaElement.js +0 -112
- package/legacy/LineChart/AreaPlot.js +0 -149
- package/legacy/LineChart/LineChart.js +0 -452
- package/legacy/LineChart/LineElement.js +0 -112
- package/legacy/LineChart/LineHighlightElement.js +0 -79
- package/legacy/LineChart/LineHighlightPlot.js +0 -97
- package/legacy/LineChart/LinePlot.js +0 -144
- package/legacy/LineChart/MarkElement.js +0 -153
- package/legacy/LineChart/MarkPlot.js +0 -178
- package/legacy/LineChart/extremums.js +0 -54
- package/legacy/LineChart/formatter.js +0 -82
- package/legacy/LineChart/index.js +0 -11
- package/legacy/LineChart/legend.js +0 -15
- package/legacy/PieChart/PieArc.js +0 -103
- package/legacy/PieChart/PieArcLabel.js +0 -112
- package/legacy/PieChart/PieArcLabelPlot.js +0 -193
- package/legacy/PieChart/PieArcPlot.js +0 -180
- package/legacy/PieChart/PieChart.js +0 -404
- package/legacy/PieChart/PiePlot.js +0 -137
- package/legacy/PieChart/dataTransform/transition.js +0 -149
- package/legacy/PieChart/dataTransform/useTransformData.js +0 -63
- package/legacy/PieChart/formatter.js +0 -55
- package/legacy/PieChart/index.js +0 -6
- package/legacy/PieChart/legend.js +0 -16
- package/legacy/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -185
- package/legacy/ResponsiveChartContainer/index.js +0 -1
- package/legacy/ResponsiveChartContainer/useChartContainerDimensions.js +0 -73
- package/legacy/ScatterChart/Scatter.js +0 -110
- package/legacy/ScatterChart/ScatterChart.js +0 -395
- package/legacy/ScatterChart/ScatterPlot.js +0 -80
- package/legacy/ScatterChart/extremums.js +0 -39
- package/legacy/ScatterChart/formatter.js +0 -12
- package/legacy/ScatterChart/index.js +0 -3
- package/legacy/ScatterChart/legend.js +0 -15
- package/legacy/SparkLineChart/SparkLineChart.js +0 -266
- package/legacy/SparkLineChart/index.js +0 -1
- package/legacy/colorPalettes/colorPalettes.js +0 -15
- package/legacy/colorPalettes/index.js +0 -1
- package/legacy/constants.js +0 -8
- package/legacy/context/CartesianContextProvider.js +0 -327
- package/legacy/context/DrawingProvider.js +0 -74
- package/legacy/context/HighlightProvider.js +0 -56
- package/legacy/context/InteractionProvider.js +0 -81
- package/legacy/context/SeriesContextProvider.js +0 -74
- package/legacy/context/index.js +0 -2
- package/legacy/hooks/index.js +0 -2
- package/legacy/hooks/useAxisEvents.js +0 -120
- package/legacy/hooks/useChartDimensions.js +0 -18
- package/legacy/hooks/useDrawingArea.js +0 -21
- package/legacy/hooks/useInteractionItemProps.js +0 -71
- package/legacy/hooks/useMounted.js +0 -21
- package/legacy/hooks/useReducedMotion.js +0 -27
- package/legacy/hooks/useScale.js +0 -33
- package/legacy/hooks/useTicks.js +0 -65
- package/legacy/index.js +0 -33
- package/legacy/internals/components/AxisSharedComponents.js +0 -25
- package/legacy/internals/defaultizeColor.js +0 -17
- package/legacy/internals/defaultizeValueFormatter.js +0 -12
- package/legacy/internals/domUtils.js +0 -121
- package/legacy/internals/geometry.js +0 -37
- package/legacy/internals/getCurve.js +0 -39
- package/legacy/internals/getScale.js +0 -17
- package/legacy/internals/getWordsByLines.js +0 -15
- package/legacy/internals/isBandScale.js +0 -3
- package/legacy/internals/stackSeries.js +0 -92
- package/legacy/internals/useAnimatedPath.js +0 -32
- package/legacy/internals/utils.js +0 -52
- package/legacy/models/axis.js +0 -6
- package/legacy/models/helpers.js +0 -1
- package/legacy/models/index.js +0 -4
- package/legacy/models/layout.js +0 -1
- package/legacy/models/seriesType/bar.js +0 -1
- package/legacy/models/seriesType/common.js +0 -1
- package/legacy/models/seriesType/config.js +0 -1
- package/legacy/models/seriesType/index.js +0 -5
- package/legacy/models/seriesType/line.js +0 -1
- package/legacy/models/seriesType/pie.js +0 -1
- package/legacy/models/seriesType/scatter.js +0 -1
- package/legacy/models/stacking.js +0 -1
- package/legacy/themeAugmentation/index.js +0 -3
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { InteractionContext } from '../context/InteractionProvider';
|
|
4
|
-
import { CartesianContext } from '../context/CartesianContextProvider';
|
|
5
|
-
import { SVGContext, DrawingContext } from '../context/DrawingProvider';
|
|
6
|
-
import { isBandScale } from '../internals/isBandScale';
|
|
7
|
-
import { getSVGPoint } from '../internals/utils';
|
|
8
|
-
function getAsANumber(value) {
|
|
9
|
-
return value instanceof Date ? value.getTime() : value;
|
|
10
|
-
}
|
|
11
|
-
export var useAxisEvents = function useAxisEvents(disableAxisListener) {
|
|
12
|
-
var svgRef = React.useContext(SVGContext);
|
|
13
|
-
var _React$useContext = React.useContext(DrawingContext),
|
|
14
|
-
width = _React$useContext.width,
|
|
15
|
-
height = _React$useContext.height,
|
|
16
|
-
top = _React$useContext.top,
|
|
17
|
-
left = _React$useContext.left;
|
|
18
|
-
var _React$useContext2 = React.useContext(CartesianContext),
|
|
19
|
-
xAxis = _React$useContext2.xAxis,
|
|
20
|
-
yAxis = _React$useContext2.yAxis,
|
|
21
|
-
xAxisIds = _React$useContext2.xAxisIds,
|
|
22
|
-
yAxisIds = _React$useContext2.yAxisIds;
|
|
23
|
-
var _React$useContext3 = React.useContext(InteractionContext),
|
|
24
|
-
dispatch = _React$useContext3.dispatch;
|
|
25
|
-
var usedXAxis = xAxisIds[0];
|
|
26
|
-
var usedYAxis = yAxisIds[0];
|
|
27
|
-
|
|
28
|
-
// Use a ref to avoid rerendering on every mousemove event.
|
|
29
|
-
var mousePosition = React.useRef({
|
|
30
|
-
x: -1,
|
|
31
|
-
y: -1
|
|
32
|
-
});
|
|
33
|
-
React.useEffect(function () {
|
|
34
|
-
var element = svgRef.current;
|
|
35
|
-
if (element === null || disableAxisListener) {
|
|
36
|
-
return function () {};
|
|
37
|
-
}
|
|
38
|
-
var getUpdate = function getUpdate(axisConfig, mouseValue) {
|
|
39
|
-
if (usedXAxis === null) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
var scale = axisConfig.scale,
|
|
43
|
-
axisData = axisConfig.data;
|
|
44
|
-
if (!isBandScale(scale)) {
|
|
45
|
-
var value = scale.invert(mouseValue);
|
|
46
|
-
if (axisData === undefined) {
|
|
47
|
-
return {
|
|
48
|
-
value: value
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
var valueAsNumber = getAsANumber(value);
|
|
52
|
-
var closestIndex = axisData == null ? void 0 : axisData.findIndex(function (pointValue, index) {
|
|
53
|
-
var v = getAsANumber(pointValue);
|
|
54
|
-
if (v > valueAsNumber) {
|
|
55
|
-
if (index === 0 || Math.abs(valueAsNumber - v) <= Math.abs(valueAsNumber - getAsANumber(axisData[index - 1]))) {
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (v <= valueAsNumber) {
|
|
60
|
-
if (index === axisData.length - 1 || Math.abs(getAsANumber(value) - v) < Math.abs(getAsANumber(value) - getAsANumber(axisData[index + 1]))) {
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return false;
|
|
65
|
-
});
|
|
66
|
-
return {
|
|
67
|
-
value: closestIndex !== undefined && closestIndex >= 0 ? axisData[closestIndex] : value,
|
|
68
|
-
index: closestIndex
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
var dataIndex = scale.bandwidth() === 0 ? Math.floor((mouseValue - Math.min.apply(Math, _toConsumableArray(scale.range())) + scale.step() / 2) / scale.step()) : Math.floor((mouseValue - Math.min.apply(Math, _toConsumableArray(scale.range()))) / scale.step());
|
|
72
|
-
if (dataIndex < 0 || dataIndex >= axisData.length) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
return {
|
|
76
|
-
index: dataIndex,
|
|
77
|
-
value: axisData[dataIndex]
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
var handleMouseOut = function handleMouseOut() {
|
|
81
|
-
mousePosition.current = {
|
|
82
|
-
x: -1,
|
|
83
|
-
y: -1
|
|
84
|
-
};
|
|
85
|
-
dispatch({
|
|
86
|
-
type: 'exitChart'
|
|
87
|
-
});
|
|
88
|
-
};
|
|
89
|
-
var handleMouseMove = function handleMouseMove(event) {
|
|
90
|
-
var svgPoint = getSVGPoint(svgRef.current, event);
|
|
91
|
-
mousePosition.current = {
|
|
92
|
-
x: svgPoint.x,
|
|
93
|
-
y: svgPoint.y
|
|
94
|
-
};
|
|
95
|
-
var outsideX = svgPoint.x < left || svgPoint.x > left + width;
|
|
96
|
-
var outsideY = svgPoint.y < top || svgPoint.y > top + height;
|
|
97
|
-
if (outsideX || outsideY) {
|
|
98
|
-
dispatch({
|
|
99
|
-
type: 'exitChart'
|
|
100
|
-
});
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
var newStateX = getUpdate(xAxis[usedXAxis], svgPoint.x);
|
|
104
|
-
var newStateY = getUpdate(yAxis[usedYAxis], svgPoint.y);
|
|
105
|
-
dispatch({
|
|
106
|
-
type: 'updateAxis',
|
|
107
|
-
data: {
|
|
108
|
-
x: newStateX,
|
|
109
|
-
y: newStateY
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
};
|
|
113
|
-
element.addEventListener('mouseout', handleMouseOut);
|
|
114
|
-
element.addEventListener('mousemove', handleMouseMove);
|
|
115
|
-
return function () {
|
|
116
|
-
element.removeEventListener('mouseout', handleMouseOut);
|
|
117
|
-
element.removeEventListener('mousemove', handleMouseMove);
|
|
118
|
-
};
|
|
119
|
-
}, [svgRef, dispatch, left, width, top, height, usedYAxis, yAxis, usedXAxis, xAxis, disableAxisListener]);
|
|
120
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { DEFAULT_MARGINS } from '../constants';
|
|
4
|
-
var useChartDimensions = function useChartDimensions(width, height, margin) {
|
|
5
|
-
var defaultizedMargin = _extends({}, DEFAULT_MARGINS, margin);
|
|
6
|
-
var drawingArea = React.useMemo(function () {
|
|
7
|
-
return {
|
|
8
|
-
left: defaultizedMargin.left,
|
|
9
|
-
top: defaultizedMargin.top,
|
|
10
|
-
right: defaultizedMargin.right,
|
|
11
|
-
bottom: defaultizedMargin.bottom,
|
|
12
|
-
width: Math.max(0, width - defaultizedMargin.left - defaultizedMargin.right),
|
|
13
|
-
height: Math.max(0, height - defaultizedMargin.top - defaultizedMargin.bottom)
|
|
14
|
-
};
|
|
15
|
-
}, [width, height, defaultizedMargin.top, defaultizedMargin.bottom, defaultizedMargin.left, defaultizedMargin.right]);
|
|
16
|
-
return drawingArea;
|
|
17
|
-
};
|
|
18
|
-
export default useChartDimensions;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { DrawingContext } from '../context/DrawingProvider';
|
|
3
|
-
export function useDrawingArea() {
|
|
4
|
-
var _React$useContext = React.useContext(DrawingContext),
|
|
5
|
-
left = _React$useContext.left,
|
|
6
|
-
top = _React$useContext.top,
|
|
7
|
-
width = _React$useContext.width,
|
|
8
|
-
height = _React$useContext.height,
|
|
9
|
-
bottom = _React$useContext.bottom,
|
|
10
|
-
right = _React$useContext.right;
|
|
11
|
-
return React.useMemo(function () {
|
|
12
|
-
return {
|
|
13
|
-
left: left,
|
|
14
|
-
top: top,
|
|
15
|
-
width: width,
|
|
16
|
-
height: height,
|
|
17
|
-
bottom: bottom,
|
|
18
|
-
right: right
|
|
19
|
-
};
|
|
20
|
-
}, [height, left, top, width, bottom, right]);
|
|
21
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { InteractionContext } from '../context/InteractionProvider';
|
|
3
|
-
import { HighlighContext } from '../context/HighlightProvider';
|
|
4
|
-
export var useInteractionItemProps = function useInteractionItemProps(scope, skip) {
|
|
5
|
-
var _React$useContext = React.useContext(InteractionContext),
|
|
6
|
-
dispatchInteraction = _React$useContext.dispatch;
|
|
7
|
-
var _React$useContext2 = React.useContext(HighlighContext),
|
|
8
|
-
dispatchHighlight = _React$useContext2.dispatch;
|
|
9
|
-
if (skip) {
|
|
10
|
-
return function () {
|
|
11
|
-
return {};
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
var getInteractionItemProps = function getInteractionItemProps(data) {
|
|
15
|
-
var onMouseEnter = function onMouseEnter() {
|
|
16
|
-
dispatchInteraction({
|
|
17
|
-
type: 'enterItem',
|
|
18
|
-
data: data
|
|
19
|
-
});
|
|
20
|
-
dispatchHighlight({
|
|
21
|
-
type: 'enterItem',
|
|
22
|
-
item: data,
|
|
23
|
-
scope: scope
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var onMouseLeave = function onMouseLeave() {
|
|
27
|
-
dispatchInteraction({
|
|
28
|
-
type: 'leaveItem',
|
|
29
|
-
data: data
|
|
30
|
-
});
|
|
31
|
-
dispatchHighlight({
|
|
32
|
-
type: 'leaveItem',
|
|
33
|
-
item: data
|
|
34
|
-
});
|
|
35
|
-
};
|
|
36
|
-
return {
|
|
37
|
-
onMouseEnter: onMouseEnter,
|
|
38
|
-
onMouseLeave: onMouseLeave
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
return getInteractionItemProps;
|
|
42
|
-
};
|
|
43
|
-
export var getIsHighlighted = function getIsHighlighted(selectedItem, currentItem, highlightScope) {
|
|
44
|
-
if (!(highlightScope != null && highlightScope.highlighted) || highlightScope.highlighted === 'none' || selectedItem === null) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
var isSeriesSelected = selectedItem.type === currentItem.type && selectedItem.seriesId === currentItem.seriesId;
|
|
48
|
-
if (!isSeriesSelected) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
if (highlightScope.highlighted === 'series') {
|
|
52
|
-
return isSeriesSelected;
|
|
53
|
-
}
|
|
54
|
-
return selectedItem.dataIndex !== undefined && selectedItem.dataIndex === currentItem.dataIndex;
|
|
55
|
-
};
|
|
56
|
-
export var getIsFaded = function getIsFaded(selectedItem, currentItem, highlightScope) {
|
|
57
|
-
if (!(highlightScope != null && highlightScope.faded) || highlightScope.faded === 'none' || selectedItem === null) {
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
var isSeriesSelected = selectedItem.type === currentItem.type && selectedItem.seriesId === currentItem.seriesId;
|
|
61
|
-
if (highlightScope.faded === 'series') {
|
|
62
|
-
return isSeriesSelected && selectedItem.dataIndex !== currentItem.dataIndex;
|
|
63
|
-
}
|
|
64
|
-
if (highlightScope.faded === 'global') {
|
|
65
|
-
if (!isSeriesSelected) {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
return selectedItem.dataIndex !== undefined && selectedItem.dataIndex !== currentItem.dataIndex;
|
|
69
|
-
}
|
|
70
|
-
return false;
|
|
71
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
|
|
4
|
-
export function useMounted() {
|
|
5
|
-
var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
6
|
-
var _React$useState = React.useState(false),
|
|
7
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
8
|
-
mountedState = _React$useState2[0],
|
|
9
|
-
setMountedState = _React$useState2[1];
|
|
10
|
-
useEnhancedEffect(function () {
|
|
11
|
-
if (!defer) {
|
|
12
|
-
setMountedState(true);
|
|
13
|
-
}
|
|
14
|
-
}, [defer]);
|
|
15
|
-
React.useEffect(function () {
|
|
16
|
-
if (defer) {
|
|
17
|
-
setMountedState(true);
|
|
18
|
-
}
|
|
19
|
-
}, [defer]);
|
|
20
|
-
return mountedState;
|
|
21
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { useIsomorphicLayoutEffect, Globals } from '@react-spring/web';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns `boolean` or `null`, used to automatically
|
|
5
|
-
* set skipAnimations to the value of the user's
|
|
6
|
-
* `prefers-reduced-motion` query.
|
|
7
|
-
*
|
|
8
|
-
* The return value, post-effect, is the value of their prefered setting
|
|
9
|
-
*/
|
|
10
|
-
export var useReducedMotion = function useReducedMotion() {
|
|
11
|
-
// Taken from: https://github.com/pmndrs/react-spring/blob/02ec877bbfab0df46da0e4a47d5f68d3e731206a/packages/shared/src/hooks/useReducedMotion.ts#L13
|
|
12
|
-
|
|
13
|
-
useIsomorphicLayoutEffect(function () {
|
|
14
|
-
var mql = window.matchMedia('(prefers-reduced-motion)');
|
|
15
|
-
var handleMediaChange = function handleMediaChange(e) {
|
|
16
|
-
Globals.assign({
|
|
17
|
-
// Modification such the react-spring implementation such that this hook can remove animation but never activate animation.
|
|
18
|
-
skipAnimation: e.matches || undefined
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
handleMediaChange(mql);
|
|
22
|
-
mql.addEventListener('change', handleMediaChange);
|
|
23
|
-
return function () {
|
|
24
|
-
mql.removeEventListener('change', handleMediaChange);
|
|
25
|
-
};
|
|
26
|
-
}, []);
|
|
27
|
-
};
|
package/legacy/hooks/useScale.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { CartesianContext } from '../context/CartesianContextProvider';
|
|
3
|
-
import { isBandScale } from '../internals/isBandScale';
|
|
4
|
-
/**
|
|
5
|
-
* For a given scale return a function that map value to their position.
|
|
6
|
-
* Usefull when dealing with specific scale such as band.
|
|
7
|
-
* @param scale The scale to use
|
|
8
|
-
* @returns (value: any) => number
|
|
9
|
-
*/
|
|
10
|
-
export function getValueToPositionMapper(scale) {
|
|
11
|
-
if (isBandScale(scale)) {
|
|
12
|
-
return function (value) {
|
|
13
|
-
return scale(value) + scale.bandwidth() / 2;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
return function (value) {
|
|
17
|
-
return scale(value);
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
export function useXScale(identifier) {
|
|
21
|
-
var _React$useContext = React.useContext(CartesianContext),
|
|
22
|
-
xAxis = _React$useContext.xAxis,
|
|
23
|
-
xAxisIds = _React$useContext.xAxisIds;
|
|
24
|
-
var id = typeof identifier === 'string' ? identifier : xAxisIds[identifier != null ? identifier : 0];
|
|
25
|
-
return xAxis[id].scale;
|
|
26
|
-
}
|
|
27
|
-
export function useYScale(identifier) {
|
|
28
|
-
var _React$useContext2 = React.useContext(CartesianContext),
|
|
29
|
-
yAxis = _React$useContext2.yAxis,
|
|
30
|
-
yAxisIds = _React$useContext2.yAxisIds;
|
|
31
|
-
var id = typeof identifier === 'string' ? identifier : yAxisIds[identifier != null ? identifier : 0];
|
|
32
|
-
return yAxis[id].scale;
|
|
33
|
-
}
|
package/legacy/hooks/useTicks.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { isBandScale } from '../internals/isBandScale';
|
|
5
|
-
export function getTickNumber(params) {
|
|
6
|
-
var tickMaxStep = params.tickMaxStep,
|
|
7
|
-
tickMinStep = params.tickMinStep,
|
|
8
|
-
tickNumber = params.tickNumber,
|
|
9
|
-
range = params.range,
|
|
10
|
-
domain = params.domain;
|
|
11
|
-
var maxTicks = tickMinStep === undefined ? 999 : Math.floor(Math.abs(domain[1] - domain[0]) / tickMinStep);
|
|
12
|
-
var minTicks = tickMaxStep === undefined ? 2 : Math.ceil(Math.abs(domain[1] - domain[0]) / tickMaxStep);
|
|
13
|
-
var defaultizedTickNumber = tickNumber != null ? tickNumber : Math.floor(Math.abs(range[1] - range[0]) / 50);
|
|
14
|
-
return Math.min(maxTicks, Math.max(minTicks, defaultizedTickNumber));
|
|
15
|
-
}
|
|
16
|
-
export function useTicks(options) {
|
|
17
|
-
var scale = options.scale,
|
|
18
|
-
tickNumber = options.tickNumber,
|
|
19
|
-
valueFormatter = options.valueFormatter,
|
|
20
|
-
tickInterval = options.tickInterval;
|
|
21
|
-
return React.useMemo(function () {
|
|
22
|
-
// band scale
|
|
23
|
-
if (isBandScale(scale)) {
|
|
24
|
-
var domain = scale.domain();
|
|
25
|
-
if (scale.bandwidth() > 0) {
|
|
26
|
-
// scale type = 'band'
|
|
27
|
-
return [].concat(_toConsumableArray(domain.map(function (value) {
|
|
28
|
-
var _valueFormatter;
|
|
29
|
-
return {
|
|
30
|
-
value: value,
|
|
31
|
-
formattedValue: (_valueFormatter = valueFormatter == null ? void 0 : valueFormatter(value)) != null ? _valueFormatter : "".concat(value),
|
|
32
|
-
offset: scale(value) - (scale.step() - scale.bandwidth()) / 2,
|
|
33
|
-
labelOffset: scale.step() / 2
|
|
34
|
-
};
|
|
35
|
-
})), [{
|
|
36
|
-
formattedValue: undefined,
|
|
37
|
-
offset: scale.range()[1],
|
|
38
|
-
labelOffset: 0
|
|
39
|
-
}]);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// scale type = 'point'
|
|
43
|
-
var filteredDomain = typeof tickInterval === 'function' && domain.filter(tickInterval) || _typeof(tickInterval) === 'object' && tickInterval || domain;
|
|
44
|
-
return filteredDomain.map(function (value) {
|
|
45
|
-
var _valueFormatter2;
|
|
46
|
-
return {
|
|
47
|
-
value: value,
|
|
48
|
-
formattedValue: (_valueFormatter2 = valueFormatter == null ? void 0 : valueFormatter(value)) != null ? _valueFormatter2 : "".concat(value),
|
|
49
|
-
offset: scale(value),
|
|
50
|
-
labelOffset: 0
|
|
51
|
-
};
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
var ticks = _typeof(tickInterval) === 'object' ? tickInterval : scale.ticks(tickNumber);
|
|
55
|
-
return ticks.map(function (value) {
|
|
56
|
-
var _valueFormatter3;
|
|
57
|
-
return {
|
|
58
|
-
value: value,
|
|
59
|
-
formattedValue: (_valueFormatter3 = valueFormatter == null ? void 0 : valueFormatter(value)) != null ? _valueFormatter3 : scale.tickFormat(tickNumber)(value),
|
|
60
|
-
offset: scale(value),
|
|
61
|
-
labelOffset: 0
|
|
62
|
-
};
|
|
63
|
-
});
|
|
64
|
-
}, [tickNumber, scale, valueFormatter, tickInterval]);
|
|
65
|
-
}
|
package/legacy/index.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @mui/x-charts v7.0.0-beta.3
|
|
3
|
-
*
|
|
4
|
-
* @license MIT
|
|
5
|
-
* This source code is licensed under the MIT license found in the
|
|
6
|
-
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/
|
|
8
|
-
export * from './constants';
|
|
9
|
-
export * from './context';
|
|
10
|
-
export * from './hooks';
|
|
11
|
-
export * from './colorPalettes';
|
|
12
|
-
export * from './models';
|
|
13
|
-
export * from './ChartsClipPath';
|
|
14
|
-
export * from './ChartsReferenceLine';
|
|
15
|
-
export * from './ChartsAxis';
|
|
16
|
-
export * from './ChartsXAxis';
|
|
17
|
-
export * from './ChartsYAxis';
|
|
18
|
-
export * from './ChartsGrid';
|
|
19
|
-
export * from './ChartsText';
|
|
20
|
-
export * from './ChartsTooltip';
|
|
21
|
-
export * from './ChartsLegend';
|
|
22
|
-
export * from './ChartsAxisHighlight';
|
|
23
|
-
export * from './ChartsVoronoiHandler';
|
|
24
|
-
export * from './ChartsOnAxisClickHandler';
|
|
25
|
-
export * from './BarChart';
|
|
26
|
-
export * from './LineChart';
|
|
27
|
-
export * from './PieChart';
|
|
28
|
-
export * from './ScatterChart';
|
|
29
|
-
export * from './SparkLineChart';
|
|
30
|
-
export * from './Gauge';
|
|
31
|
-
export * from './ChartContainer';
|
|
32
|
-
export * from './ChartsSurface';
|
|
33
|
-
export * from './ResponsiveChartContainer';
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
import { styled } from '@mui/material/styles';
|
|
4
|
-
import { axisClasses } from '../../ChartsAxis/axisClasses';
|
|
5
|
-
export var AxisRoot = styled('g', {
|
|
6
|
-
name: 'MuiChartsAxis',
|
|
7
|
-
slot: 'Root',
|
|
8
|
-
overridesResolver: function overridesResolver(props, styles) {
|
|
9
|
-
return styles.root;
|
|
10
|
-
}
|
|
11
|
-
})(function (_ref) {
|
|
12
|
-
var theme = _ref.theme;
|
|
13
|
-
return _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "& .".concat(axisClasses.tickLabel), _extends({}, theme.typography.caption, {
|
|
14
|
-
fill: (theme.vars || theme).palette.text.primary
|
|
15
|
-
})), "& .".concat(axisClasses.label), _extends({}, theme.typography.body1, {
|
|
16
|
-
fill: (theme.vars || theme).palette.text.primary
|
|
17
|
-
})), "& .".concat(axisClasses.line), {
|
|
18
|
-
stroke: (theme.vars || theme).palette.text.primary,
|
|
19
|
-
shapeRendering: 'crispEdges',
|
|
20
|
-
strokeWidth: 1
|
|
21
|
-
}), "& .".concat(axisClasses.tick), {
|
|
22
|
-
stroke: (theme.vars || theme).palette.text.primary,
|
|
23
|
-
shapeRendering: 'crispEdges'
|
|
24
|
-
});
|
|
25
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
var DEFAULT_COLORS = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'];
|
|
3
|
-
export function defaultizeColor(series, seriesIndex) {
|
|
4
|
-
var colors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLORS;
|
|
5
|
-
if (series.type === 'pie') {
|
|
6
|
-
return _extends({}, series, {
|
|
7
|
-
data: series.data.map(function (d, index) {
|
|
8
|
-
return _extends({
|
|
9
|
-
color: colors[index % colors.length]
|
|
10
|
-
}, d);
|
|
11
|
-
})
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
return _extends({
|
|
15
|
-
color: colors[seriesIndex % colors.length]
|
|
16
|
-
}, series);
|
|
17
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
function defaultizeValueFormatter(series, defaultValueFormatter) {
|
|
3
|
-
var defaultizedSeries = {};
|
|
4
|
-
Object.keys(series).forEach(function (seriesId) {
|
|
5
|
-
var _series$seriesId$valu;
|
|
6
|
-
defaultizedSeries[seriesId] = _extends({}, series[seriesId], {
|
|
7
|
-
valueFormatter: (_series$seriesId$valu = series[seriesId].valueFormatter) != null ? _series$seriesId$valu : defaultValueFormatter
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
return defaultizedSeries;
|
|
11
|
-
}
|
|
12
|
-
export default defaultizeValueFormatter;
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
|
-
// DOM utils taken from
|
|
4
|
-
// https://github.com/recharts/recharts/blob/master/src/util/DOMUtils.ts
|
|
5
|
-
|
|
6
|
-
function isSsr() {
|
|
7
|
-
return typeof window === 'undefined';
|
|
8
|
-
}
|
|
9
|
-
var stringCache = {
|
|
10
|
-
widthCache: {},
|
|
11
|
-
cacheCount: 0
|
|
12
|
-
};
|
|
13
|
-
var MAX_CACHE_NUM = 2000;
|
|
14
|
-
var SPAN_STYLE = {
|
|
15
|
-
position: 'absolute',
|
|
16
|
-
top: '-20000px',
|
|
17
|
-
left: 0,
|
|
18
|
-
padding: 0,
|
|
19
|
-
margin: 0,
|
|
20
|
-
border: 'none',
|
|
21
|
-
whiteSpace: 'pre'
|
|
22
|
-
};
|
|
23
|
-
var STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];
|
|
24
|
-
var MEASUREMENT_SPAN_ID = 'mui_measurement_span';
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
28
|
-
* @param name CSS property name
|
|
29
|
-
* @param value
|
|
30
|
-
* @returns add 'px' for distance properties
|
|
31
|
-
*/
|
|
32
|
-
function autoCompleteStyle(name, value) {
|
|
33
|
-
if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {
|
|
34
|
-
return "".concat(value, "px");
|
|
35
|
-
}
|
|
36
|
-
return value;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* @param text camelcase css property
|
|
42
|
-
* @returns css property
|
|
43
|
-
*/
|
|
44
|
-
function camelToMiddleLine(text) {
|
|
45
|
-
var strs = text.split('');
|
|
46
|
-
var formatStrs = strs.reduce(function (result, entry) {
|
|
47
|
-
if (entry === entry.toUpperCase()) {
|
|
48
|
-
return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);
|
|
49
|
-
}
|
|
50
|
-
return [].concat(_toConsumableArray(result), [entry]);
|
|
51
|
-
}, []);
|
|
52
|
-
return formatStrs.join('');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
*
|
|
57
|
-
* @param style React style object
|
|
58
|
-
* @returns CSS styling string
|
|
59
|
-
*/
|
|
60
|
-
export var getStyleString = function getStyleString(style) {
|
|
61
|
-
return Object.keys(style).sort().reduce(function (result, s) {
|
|
62
|
-
return "".concat(result).concat(camelToMiddleLine(s), ":").concat(autoCompleteStyle(s, style[s]), ";");
|
|
63
|
-
}, '');
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
*
|
|
68
|
-
* @param text The string to estimate
|
|
69
|
-
* @param style The style applied
|
|
70
|
-
* @returns width and height of the text
|
|
71
|
-
*/
|
|
72
|
-
export var getStringSize = function getStringSize(text) {
|
|
73
|
-
var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
74
|
-
if (text === undefined || text === null || isSsr()) {
|
|
75
|
-
return {
|
|
76
|
-
width: 0,
|
|
77
|
-
height: 0
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
var str = "".concat(text);
|
|
81
|
-
var styleString = getStyleString(style);
|
|
82
|
-
var cacheKey = "".concat(str, "-").concat(styleString);
|
|
83
|
-
if (stringCache.widthCache[cacheKey]) {
|
|
84
|
-
return stringCache.widthCache[cacheKey];
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);
|
|
88
|
-
if (measurementSpan === null) {
|
|
89
|
-
measurementSpan = document.createElement('span');
|
|
90
|
-
measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);
|
|
91
|
-
measurementSpan.setAttribute('aria-hidden', 'true');
|
|
92
|
-
document.body.appendChild(measurementSpan);
|
|
93
|
-
}
|
|
94
|
-
// Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)
|
|
95
|
-
// https://en.wikipedia.org/wiki/Content_Security_Policy
|
|
96
|
-
var measurementSpanStyle = _extends({}, SPAN_STYLE, style);
|
|
97
|
-
Object.keys(measurementSpanStyle).map(function (styleKey) {
|
|
98
|
-
measurementSpan.style[camelToMiddleLine(styleKey)] = autoCompleteStyle(styleKey, measurementSpanStyle[styleKey]);
|
|
99
|
-
return styleKey;
|
|
100
|
-
});
|
|
101
|
-
measurementSpan.textContent = str;
|
|
102
|
-
var rect = measurementSpan.getBoundingClientRect();
|
|
103
|
-
var result = {
|
|
104
|
-
width: rect.width,
|
|
105
|
-
height: rect.height
|
|
106
|
-
};
|
|
107
|
-
stringCache.widthCache[cacheKey] = result;
|
|
108
|
-
if (stringCache.cacheCount + 1 > MAX_CACHE_NUM) {
|
|
109
|
-
stringCache.cacheCount = 0;
|
|
110
|
-
stringCache.widthCache = {};
|
|
111
|
-
} else {
|
|
112
|
-
stringCache.cacheCount += 1;
|
|
113
|
-
}
|
|
114
|
-
return result;
|
|
115
|
-
} catch (e) {
|
|
116
|
-
return {
|
|
117
|
-
width: 0,
|
|
118
|
-
height: 0
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
var ANGLE_APPROX = 5; // Angle (in deg) for which we approximate the rectangle as perfectly horizontal/vertical
|
|
2
|
-
|
|
3
|
-
var warnedOnce = false;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Return the minimal translation along the x-axis to avoid overflow of a rectangle of a given width, height, and rotation.
|
|
7
|
-
* This assumes that all rectangles have the same height and angle between -90 and 90.
|
|
8
|
-
* Otherwise it would be problematic because you need the height/width of the next rectangle to do the correct computation.
|
|
9
|
-
* @param width the side along the x-axis.
|
|
10
|
-
* @param height the side along the y-axis.
|
|
11
|
-
* @param angle the rotation in degrees.
|
|
12
|
-
*/
|
|
13
|
-
export function getMinXTranslation(width, height) {
|
|
14
|
-
var angle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
15
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
16
|
-
if (!warnedOnce && angle > 90 && angle < -90) {
|
|
17
|
-
warnedOnce = true;
|
|
18
|
-
console.warn(["MUI X Charts: It seems you applied an angle larger than 90\xB0 or smaller than -90\xB0 to an axis text.", "This could cause some text overlapping.", "If you encounter a use case where it's needed, please open an issue."].join('\n'));
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
var standardAngle = Math.min(Math.abs(angle) % 180, Math.abs(Math.abs(angle) % 180 - 180) % 180); // Map from R to [0, 90]
|
|
22
|
-
|
|
23
|
-
if (standardAngle < ANGLE_APPROX) {
|
|
24
|
-
// It's nearly horizontal
|
|
25
|
-
return width;
|
|
26
|
-
}
|
|
27
|
-
if (standardAngle > 90 - ANGLE_APPROX) {
|
|
28
|
-
// It's nearly vertical
|
|
29
|
-
return height;
|
|
30
|
-
}
|
|
31
|
-
var radAngle = standardAngle * Math.PI / 180;
|
|
32
|
-
var angleSwich = Math.atan2(height, width);
|
|
33
|
-
if (radAngle < angleSwich) {
|
|
34
|
-
return width / Math.cos(radAngle);
|
|
35
|
-
}
|
|
36
|
-
return height / Math.sin(radAngle);
|
|
37
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { curveCatmullRom, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';
|
|
2
|
-
export default function getCurveFactory(curveType) {
|
|
3
|
-
switch (curveType) {
|
|
4
|
-
case 'catmullRom':
|
|
5
|
-
{
|
|
6
|
-
return curveCatmullRom.alpha(0.5);
|
|
7
|
-
}
|
|
8
|
-
case 'linear':
|
|
9
|
-
{
|
|
10
|
-
return curveLinear;
|
|
11
|
-
}
|
|
12
|
-
case 'monotoneX':
|
|
13
|
-
{
|
|
14
|
-
return curveMonotoneX;
|
|
15
|
-
}
|
|
16
|
-
case 'monotoneY':
|
|
17
|
-
{
|
|
18
|
-
return curveMonotoneY;
|
|
19
|
-
}
|
|
20
|
-
case 'natural':
|
|
21
|
-
{
|
|
22
|
-
return curveNatural;
|
|
23
|
-
}
|
|
24
|
-
case 'step':
|
|
25
|
-
{
|
|
26
|
-
return curveStep;
|
|
27
|
-
}
|
|
28
|
-
case 'stepBefore':
|
|
29
|
-
{
|
|
30
|
-
return curveStepBefore;
|
|
31
|
-
}
|
|
32
|
-
case 'stepAfter':
|
|
33
|
-
{
|
|
34
|
-
return curveStepAfter;
|
|
35
|
-
}
|
|
36
|
-
default:
|
|
37
|
-
return curveMonotoneX;
|
|
38
|
-
}
|
|
39
|
-
}
|