@mui/x-charts 7.0.0-beta.2 → 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.d.ts +21 -5
- package/BarChart/BarChart.js +27 -7
- package/CHANGELOG.md +298 -23
- package/ChartsGrid/ChartsGrid.d.ts +30 -0
- package/ChartsGrid/ChartsGrid.js +128 -0
- package/ChartsGrid/chartsGridClasses.d.ts +13 -0
- package/ChartsGrid/chartsGridClasses.js +14 -0
- package/ChartsGrid/index.d.ts +2 -0
- package/ChartsGrid/index.js +27 -0
- package/ChartsGrid/package.json +6 -0
- package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +1 -1
- package/ChartsSurface.js +6 -4
- package/ChartsTooltip/utils.js +1 -1
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.d.ts +0 -1
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +1 -2
- package/ChartsXAxis/ChartsXAxis.js +3 -3
- package/ChartsYAxis/ChartsYAxis.js +3 -3
- package/Gauge/Gauge.d.ts +13 -0
- package/Gauge/Gauge.js +154 -0
- package/Gauge/GaugeContainer.d.ts +17 -0
- package/Gauge/GaugeContainer.js +214 -0
- package/Gauge/GaugeProvider.d.ts +117 -0
- package/Gauge/GaugeProvider.js +99 -0
- package/Gauge/GaugeReferenceArc.d.ts +2 -0
- package/Gauge/GaugeReferenceArc.js +44 -0
- package/Gauge/GaugeValueArc.d.ts +2 -0
- package/Gauge/GaugeValueArc.js +51 -0
- package/Gauge/GaugeValueText.d.ts +15 -0
- package/Gauge/GaugeValueText.js +77 -0
- package/Gauge/gaugeClasses.d.ts +14 -0
- package/Gauge/gaugeClasses.js +15 -0
- package/Gauge/index.d.ts +7 -0
- package/Gauge/index.js +87 -0
- package/Gauge/package.json +6 -0
- package/Gauge/utils.d.ts +19 -0
- package/Gauge/utils.js +75 -0
- package/LineChart/LineChart.d.ts +24 -5
- package/LineChart/LineChart.js +31 -7
- package/PieChart/PieArc.d.ts +4 -4
- package/PieChart/PieArc.js +9 -9
- package/PieChart/PieArcLabelPlot.js +13 -13
- package/PieChart/PieChart.d.ts +22 -0
- package/PieChart/PieChart.js +22 -2
- package/ResponsiveChartContainer/ResponsiveChartContainer.d.ts +0 -2
- package/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -68
- package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +2 -0
- package/ResponsiveChartContainer/useChartContainerDimensions.js +76 -0
- package/ScatterChart/ScatterChart.d.ts +18 -0
- package/ScatterChart/ScatterChart.js +25 -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 +27 -7
- package/esm/ChartsGrid/ChartsGrid.js +121 -0
- package/esm/ChartsGrid/chartsGridClasses.js +6 -0
- package/esm/ChartsGrid/index.js +2 -0
- package/esm/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
- package/esm/ChartsSurface.js +6 -4
- package/esm/ChartsTooltip/utils.js +2 -2
- package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -3
- package/esm/ChartsXAxis/ChartsXAxis.js +2 -2
- package/esm/ChartsYAxis/ChartsYAxis.js +2 -2
- package/esm/Gauge/Gauge.js +147 -0
- package/esm/Gauge/GaugeContainer.js +209 -0
- package/esm/Gauge/GaugeProvider.js +88 -0
- package/esm/Gauge/GaugeReferenceArc.js +35 -0
- package/esm/Gauge/GaugeValueArc.js +42 -0
- package/esm/Gauge/GaugeValueText.js +69 -0
- package/esm/Gauge/gaugeClasses.js +7 -0
- package/esm/Gauge/index.js +7 -0
- package/esm/Gauge/utils.js +68 -0
- package/esm/LineChart/LineChart.js +31 -7
- package/esm/PieChart/PieArc.js +9 -9
- package/esm/PieChart/PieArcLabelPlot.js +13 -13
- package/esm/PieChart/PieChart.js +22 -2
- package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -68
- package/esm/ResponsiveChartContainer/useChartContainerDimensions.js +66 -0
- package/esm/ScatterChart/ScatterChart.js +25 -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/esm/hooks/useTicks.js +2 -3
- package/esm/index.js +2 -0
- package/hooks/useAxisEvents.js +1 -1
- package/hooks/useTicks.d.ts +2 -3
- package/hooks/useTicks.js +2 -3
- package/index.d.ts +2 -0
- package/index.js +23 -1
- package/modern/BarChart/BarChart.js +27 -7
- package/modern/ChartsGrid/ChartsGrid.js +121 -0
- package/modern/ChartsGrid/chartsGridClasses.js +6 -0
- package/modern/ChartsGrid/index.js +2 -0
- package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
- package/modern/ChartsSurface.js +6 -4
- package/modern/ChartsTooltip/utils.js +2 -2
- package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -3
- package/modern/ChartsXAxis/ChartsXAxis.js +2 -2
- package/modern/ChartsYAxis/ChartsYAxis.js +2 -2
- package/modern/Gauge/Gauge.js +147 -0
- package/modern/Gauge/GaugeContainer.js +206 -0
- package/modern/Gauge/GaugeProvider.js +88 -0
- package/modern/Gauge/GaugeReferenceArc.js +35 -0
- package/modern/Gauge/GaugeValueArc.js +42 -0
- package/modern/Gauge/GaugeValueText.js +69 -0
- package/modern/Gauge/gaugeClasses.js +7 -0
- package/modern/Gauge/index.js +7 -0
- package/modern/Gauge/utils.js +68 -0
- package/modern/LineChart/LineChart.js +31 -7
- package/modern/PieChart/PieArc.js +9 -9
- package/modern/PieChart/PieArcLabelPlot.js +13 -13
- package/modern/PieChart/PieChart.js +22 -2
- package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -68
- package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +66 -0
- package/modern/ScatterChart/ScatterChart.js +25 -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/hooks/useTicks.js +2 -3
- package/modern/index.js +3 -1
- package/package.json +4 -4
- package/legacy/BarChart/BarChart.js +0 -418
- 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/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 -76
- 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/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 -426
- 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 -382
- 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 -255
- package/legacy/ResponsiveChartContainer/index.js +0 -1
- package/legacy/ScatterChart/Scatter.js +0 -110
- package/legacy/ScatterChart/ScatterChart.js +0 -370
- 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 -66
- package/legacy/index.js +0 -31
- 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,74 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import useId from '@mui/utils/useId';
|
|
5
|
-
import useChartDimensions from '../hooks/useChartDimensions';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Defines the area in which it is possible to draw the charts.
|
|
9
|
-
*/
|
|
10
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
export var DrawingContext = /*#__PURE__*/React.createContext({
|
|
12
|
-
top: 0,
|
|
13
|
-
left: 0,
|
|
14
|
-
bottom: 0,
|
|
15
|
-
right: 0,
|
|
16
|
-
height: 300,
|
|
17
|
-
width: 400,
|
|
18
|
-
chartId: ''
|
|
19
|
-
});
|
|
20
|
-
export var SVGContext = /*#__PURE__*/React.createContext({
|
|
21
|
-
current: null
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* API:
|
|
26
|
-
*
|
|
27
|
-
* - [DrawingProvider API](https://mui.com/x/api/charts/drawing-provider/)
|
|
28
|
-
*/
|
|
29
|
-
function DrawingProvider(props) {
|
|
30
|
-
var width = props.width,
|
|
31
|
-
height = props.height,
|
|
32
|
-
margin = props.margin,
|
|
33
|
-
svgRef = props.svgRef,
|
|
34
|
-
children = props.children;
|
|
35
|
-
var drawingArea = useChartDimensions(width, height, margin);
|
|
36
|
-
var chartId = useId();
|
|
37
|
-
var value = React.useMemo(function () {
|
|
38
|
-
return _extends({
|
|
39
|
-
chartId: chartId != null ? chartId : ''
|
|
40
|
-
}, drawingArea);
|
|
41
|
-
}, [chartId, drawingArea]);
|
|
42
|
-
return /*#__PURE__*/_jsx(SVGContext.Provider, {
|
|
43
|
-
value: svgRef,
|
|
44
|
-
children: /*#__PURE__*/_jsx(DrawingContext.Provider, {
|
|
45
|
-
value: value,
|
|
46
|
-
children: children
|
|
47
|
-
})
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
process.env.NODE_ENV !== "production" ? DrawingProvider.propTypes = {
|
|
51
|
-
// ----------------------------- Warning --------------------------------
|
|
52
|
-
// | These PropTypes are generated from the TypeScript type definitions |
|
|
53
|
-
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
54
|
-
// ----------------------------------------------------------------------
|
|
55
|
-
children: PropTypes.node,
|
|
56
|
-
height: PropTypes.number.isRequired,
|
|
57
|
-
/**
|
|
58
|
-
* The margin between the SVG and the drawing area.
|
|
59
|
-
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
60
|
-
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
61
|
-
* @default object Depends on the charts type.
|
|
62
|
-
*/
|
|
63
|
-
margin: PropTypes.shape({
|
|
64
|
-
bottom: PropTypes.number,
|
|
65
|
-
left: PropTypes.number,
|
|
66
|
-
right: PropTypes.number,
|
|
67
|
-
top: PropTypes.number
|
|
68
|
-
}),
|
|
69
|
-
svgRef: PropTypes.shape({
|
|
70
|
-
current: PropTypes.object
|
|
71
|
-
}).isRequired,
|
|
72
|
-
width: PropTypes.number.isRequired
|
|
73
|
-
} : void 0;
|
|
74
|
-
export { DrawingProvider };
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
var defaultScope = {
|
|
6
|
-
highlighted: 'none',
|
|
7
|
-
faded: 'none'
|
|
8
|
-
};
|
|
9
|
-
export var HighlighContext = /*#__PURE__*/React.createContext({
|
|
10
|
-
item: null,
|
|
11
|
-
scope: defaultScope,
|
|
12
|
-
dispatch: function dispatch() {
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
var dataReducer = function dataReducer(prevState, action) {
|
|
17
|
-
switch (action.type) {
|
|
18
|
-
case 'enterItem':
|
|
19
|
-
return _extends({}, prevState, {
|
|
20
|
-
item: action.item,
|
|
21
|
-
scope: _extends({}, defaultScope, action.scope)
|
|
22
|
-
});
|
|
23
|
-
case 'leaveItem':
|
|
24
|
-
if (prevState.item === null || Object.keys(action.item).some(function (key) {
|
|
25
|
-
return action.item[key] !== prevState.item[key];
|
|
26
|
-
})) {
|
|
27
|
-
// The item is already something else
|
|
28
|
-
return prevState;
|
|
29
|
-
}
|
|
30
|
-
return _extends({}, prevState, {
|
|
31
|
-
item: null
|
|
32
|
-
});
|
|
33
|
-
default:
|
|
34
|
-
return prevState;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
function HighlightProvider(props) {
|
|
38
|
-
var children = props.children;
|
|
39
|
-
var _React$useReducer = React.useReducer(dataReducer, {
|
|
40
|
-
item: null,
|
|
41
|
-
scope: defaultScope
|
|
42
|
-
}),
|
|
43
|
-
_React$useReducer2 = _slicedToArray(_React$useReducer, 2),
|
|
44
|
-
data = _React$useReducer2[0],
|
|
45
|
-
dispatch = _React$useReducer2[1];
|
|
46
|
-
var value = React.useMemo(function () {
|
|
47
|
-
return _extends({}, data, {
|
|
48
|
-
dispatch: dispatch
|
|
49
|
-
});
|
|
50
|
-
}, [data]);
|
|
51
|
-
return /*#__PURE__*/_jsx(HighlighContext.Provider, {
|
|
52
|
-
value: value,
|
|
53
|
-
children: children
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
export { HighlightProvider };
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
export var InteractionContext = /*#__PURE__*/React.createContext({
|
|
6
|
-
item: null,
|
|
7
|
-
axis: {
|
|
8
|
-
x: null,
|
|
9
|
-
y: null
|
|
10
|
-
},
|
|
11
|
-
useVoronoiInteraction: false,
|
|
12
|
-
dispatch: function dispatch() {
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
var dataReducer = function dataReducer(prevState, action) {
|
|
17
|
-
switch (action.type) {
|
|
18
|
-
case 'enterItem':
|
|
19
|
-
return _extends({}, prevState, {
|
|
20
|
-
item: action.data
|
|
21
|
-
});
|
|
22
|
-
case 'exitChart':
|
|
23
|
-
if (prevState.item === null && prevState.axis.x === null && prevState.axis.y === null) {
|
|
24
|
-
return prevState;
|
|
25
|
-
}
|
|
26
|
-
return _extends({}, prevState, {
|
|
27
|
-
axis: {
|
|
28
|
-
x: null,
|
|
29
|
-
y: null
|
|
30
|
-
},
|
|
31
|
-
item: null
|
|
32
|
-
});
|
|
33
|
-
case 'updateVoronoiUsage':
|
|
34
|
-
return _extends({}, prevState, {
|
|
35
|
-
useVoronoiInteraction: action.useVoronoiInteraction
|
|
36
|
-
});
|
|
37
|
-
case 'leaveItem':
|
|
38
|
-
if (prevState.item === null || Object.keys(action.data).some(function (key) {
|
|
39
|
-
return action.data[key] !== prevState.item[key];
|
|
40
|
-
})) {
|
|
41
|
-
// The item is already something else
|
|
42
|
-
return prevState;
|
|
43
|
-
}
|
|
44
|
-
return _extends({}, prevState, {
|
|
45
|
-
item: null
|
|
46
|
-
});
|
|
47
|
-
case 'updateAxis':
|
|
48
|
-
if (action.data.x === prevState.axis.x && action.data.y === prevState.axis.y) {
|
|
49
|
-
return prevState;
|
|
50
|
-
}
|
|
51
|
-
return _extends({}, prevState, {
|
|
52
|
-
axis: action.data
|
|
53
|
-
});
|
|
54
|
-
default:
|
|
55
|
-
return prevState;
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
function InteractionProvider(props) {
|
|
59
|
-
var children = props.children;
|
|
60
|
-
var _React$useReducer = React.useReducer(dataReducer, {
|
|
61
|
-
item: null,
|
|
62
|
-
axis: {
|
|
63
|
-
x: null,
|
|
64
|
-
y: null
|
|
65
|
-
},
|
|
66
|
-
useVoronoiInteraction: false
|
|
67
|
-
}),
|
|
68
|
-
_React$useReducer2 = _slicedToArray(_React$useReducer, 2),
|
|
69
|
-
data = _React$useReducer2[0],
|
|
70
|
-
dispatch = _React$useReducer2[1];
|
|
71
|
-
var value = React.useMemo(function () {
|
|
72
|
-
return _extends({}, data, {
|
|
73
|
-
dispatch: dispatch
|
|
74
|
-
});
|
|
75
|
-
}, [data]);
|
|
76
|
-
return /*#__PURE__*/_jsx(InteractionContext.Provider, {
|
|
77
|
-
value: value,
|
|
78
|
-
children: children
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
export { InteractionProvider };
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { useTheme } from '@mui/material/styles';
|
|
4
|
-
import barSeriesFormatter from '../BarChart/formatter';
|
|
5
|
-
import scatterSeriesFormatter from '../ScatterChart/formatter';
|
|
6
|
-
import lineSeriesFormatter from '../LineChart/formatter';
|
|
7
|
-
import pieSeriesFormatter from '../PieChart/formatter';
|
|
8
|
-
import { defaultizeColor } from '../internals/defaultizeColor';
|
|
9
|
-
import { blueberryTwilightPalette } from '../colorPalettes';
|
|
10
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
export var SeriesContext = /*#__PURE__*/React.createContext({});
|
|
12
|
-
var seriesTypeFormatter = {
|
|
13
|
-
bar: barSeriesFormatter,
|
|
14
|
-
scatter: scatterSeriesFormatter,
|
|
15
|
-
line: lineSeriesFormatter,
|
|
16
|
-
pie: pieSeriesFormatter
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* This methods is the interface between what the developer is providing and what components receives
|
|
21
|
-
* To simplify the components behaviors, it groups series by type, such that LinePlots props are not updated if some line data are modified
|
|
22
|
-
* It also add defaultized values such as the ids, colors
|
|
23
|
-
* @param series The array of series provided by devs
|
|
24
|
-
* @param colors The color palette used to defaultize series colors
|
|
25
|
-
* @returns An object structuring all the series by type.
|
|
26
|
-
*/
|
|
27
|
-
var formatSeries = function formatSeries(series, colors, dataset) {
|
|
28
|
-
// Group series by type
|
|
29
|
-
var seriesGroups = {};
|
|
30
|
-
series.forEach(function (seriesData, seriesIndex) {
|
|
31
|
-
var _seriesGroups$type;
|
|
32
|
-
var _seriesData$id = seriesData.id,
|
|
33
|
-
id = _seriesData$id === void 0 ? "auto-generated-id-".concat(seriesIndex) : _seriesData$id,
|
|
34
|
-
type = seriesData.type;
|
|
35
|
-
if (seriesGroups[type] === undefined) {
|
|
36
|
-
seriesGroups[type] = {
|
|
37
|
-
series: {},
|
|
38
|
-
seriesOrder: []
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
if (((_seriesGroups$type = seriesGroups[type]) == null ? void 0 : _seriesGroups$type.series[id]) !== undefined) {
|
|
42
|
-
throw new Error("MUI X Charts: series' id \"".concat(id, "\" is not unique."));
|
|
43
|
-
}
|
|
44
|
-
seriesGroups[type].series[id] = _extends({
|
|
45
|
-
id: id
|
|
46
|
-
}, defaultizeColor(seriesData, seriesIndex, colors));
|
|
47
|
-
seriesGroups[type].seriesOrder.push(id);
|
|
48
|
-
});
|
|
49
|
-
var formattedSeries = {};
|
|
50
|
-
// Apply formater on a type group
|
|
51
|
-
Object.keys(seriesTypeFormatter).forEach(function (type) {
|
|
52
|
-
if (seriesGroups[type] !== undefined) {
|
|
53
|
-
var _seriesTypeFormatter$, _seriesTypeFormatter$2;
|
|
54
|
-
formattedSeries[type] = (_seriesTypeFormatter$ = (_seriesTypeFormatter$2 = seriesTypeFormatter[type]) == null ? void 0 : _seriesTypeFormatter$2.call(seriesTypeFormatter, seriesGroups[type], dataset)) != null ? _seriesTypeFormatter$ : seriesGroups[type];
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
return formattedSeries;
|
|
58
|
-
};
|
|
59
|
-
function SeriesContextProvider(props) {
|
|
60
|
-
var series = props.series,
|
|
61
|
-
dataset = props.dataset,
|
|
62
|
-
_props$colors = props.colors,
|
|
63
|
-
colors = _props$colors === void 0 ? blueberryTwilightPalette : _props$colors,
|
|
64
|
-
children = props.children;
|
|
65
|
-
var theme = useTheme();
|
|
66
|
-
var formattedSeries = React.useMemo(function () {
|
|
67
|
-
return formatSeries(series, typeof colors === 'function' ? colors(theme.palette.mode) : colors, dataset);
|
|
68
|
-
}, [series, colors, theme.palette.mode, dataset]);
|
|
69
|
-
return /*#__PURE__*/_jsx(SeriesContext.Provider, {
|
|
70
|
-
value: formattedSeries,
|
|
71
|
-
children: children
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
export { SeriesContextProvider };
|
package/legacy/context/index.js
DELETED
package/legacy/hooks/index.js
DELETED
|
@@ -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,66 +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
|
-
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
|
-
}
|
|
66
|
-
export default useTicks;
|