@mui/x-charts 9.0.2 → 9.0.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 +2 -1
- package/BarChart/BarChart.mjs +2 -1
- package/BarChart/BarPlot.js +2 -1
- package/BarChart/BarPlot.mjs +2 -1
- package/BarChart/FocusedBar.js +3 -0
- package/BarChart/FocusedBar.mjs +3 -0
- package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.mts +8 -8
- package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.ts +8 -8
- package/CHANGELOG.md +223 -0
- package/ChartsRadialGrid/ChartsRadialGrid.js +2 -0
- package/ChartsRadialGrid/ChartsRadialGrid.mjs +2 -0
- package/ChartsRadialGrid/ChartsRadiusGrid.d.mts +1 -0
- package/ChartsRadialGrid/ChartsRadiusGrid.d.ts +1 -0
- package/ChartsRadialGrid/ChartsRadiusGrid.js +1 -2
- package/ChartsRadialGrid/ChartsRadiusGrid.mjs +1 -2
- package/ChartsRadiusAxis/ChartsRadiusAxis.d.mts +48 -0
- package/ChartsRadiusAxis/ChartsRadiusAxis.d.ts +48 -0
- package/ChartsRadiusAxis/ChartsRadiusAxis.js +147 -0
- package/ChartsRadiusAxis/ChartsRadiusAxis.mjs +141 -0
- package/ChartsRadiusAxis/chartsRadiusAxisClasses.d.mts +6 -0
- package/ChartsRadiusAxis/chartsRadiusAxisClasses.d.ts +6 -0
- package/ChartsRadiusAxis/chartsRadiusAxisClasses.js +30 -0
- package/ChartsRadiusAxis/chartsRadiusAxisClasses.mjs +17 -0
- package/ChartsRadiusAxis/createGetLabelTextAnchors.d.mts +10 -0
- package/ChartsRadiusAxis/createGetLabelTextAnchors.d.ts +10 -0
- package/ChartsRadiusAxis/createGetLabelTextAnchors.js +46 -0
- package/ChartsRadiusAxis/createGetLabelTextAnchors.mjs +39 -0
- package/ChartsRadiusAxis/getLabelTransform.d.mts +11 -0
- package/ChartsRadiusAxis/getLabelTransform.d.ts +11 -0
- package/ChartsRadiusAxis/getLabelTransform.js +37 -0
- package/ChartsRadiusAxis/getLabelTransform.mjs +31 -0
- package/ChartsRadiusAxis/index.d.mts +3 -0
- package/ChartsRadiusAxis/index.d.ts +3 -0
- package/ChartsRadiusAxis/index.js +19 -0
- package/ChartsRadiusAxis/index.mjs +2 -0
- package/ChartsRadiusAxis/sharedRadialAxisClasses.d.mts +21 -0
- package/ChartsRadiusAxis/sharedRadialAxisClasses.d.ts +21 -0
- package/ChartsRadiusAxis/sharedRadialAxisClasses.js +14 -0
- package/ChartsRadiusAxis/sharedRadialAxisClasses.mjs +6 -0
- package/ChartsRotationAxis/ChartsRotationAxis.d.mts +48 -0
- package/ChartsRotationAxis/ChartsRotationAxis.d.ts +48 -0
- package/ChartsRotationAxis/ChartsRotationAxis.js +141 -0
- package/ChartsRotationAxis/ChartsRotationAxis.mjs +135 -0
- package/ChartsRotationAxis/chartsRotationAxisClasses.d.mts +5 -0
- package/ChartsRotationAxis/chartsRotationAxisClasses.d.ts +5 -0
- package/ChartsRotationAxis/chartsRotationAxisClasses.js +29 -0
- package/ChartsRotationAxis/chartsRotationAxisClasses.mjs +16 -0
- package/ChartsRotationAxis/getLabelTransform.d.mts +11 -0
- package/ChartsRotationAxis/getLabelTransform.d.ts +11 -0
- package/ChartsRotationAxis/getLabelTransform.js +37 -0
- package/ChartsRotationAxis/getLabelTransform.mjs +31 -0
- package/ChartsRotationAxis/index.d.mts +2 -0
- package/ChartsRotationAxis/index.d.ts +2 -0
- package/ChartsRotationAxis/index.js +19 -0
- package/ChartsRotationAxis/index.mjs +2 -0
- package/ChartsTooltip/useAxesTooltip.js +18 -7
- package/ChartsTooltip/useAxesTooltip.mjs +19 -8
- package/ChartsTooltip/useItemTooltip.d.mts +1 -1
- package/ChartsTooltip/useItemTooltip.d.ts +1 -1
- package/ChartsTooltip/useItemTooltip.js +17 -2
- package/ChartsTooltip/useItemTooltip.mjs +18 -3
- package/ChartsXAxis/useAxisTicksProps.d.mts +245 -164
- package/ChartsXAxis/useAxisTicksProps.d.ts +245 -164
- package/ChartsYAxis/useAxisTicksProps.d.mts +245 -164
- package/ChartsYAxis/useAxisTicksProps.d.ts +245 -164
- package/LineChart/FocusedLineMark.js +3 -0
- package/LineChart/FocusedLineMark.mjs +3 -0
- package/LineChart/seriesConfig/curveEvaluation.js +24 -19
- package/LineChart/seriesConfig/curveEvaluation.mjs +24 -19
- package/LineChart/seriesConfig/getItemAtPosition.js +25 -37
- package/LineChart/seriesConfig/getItemAtPosition.mjs +24 -36
- package/LineChart/seriesConfig/getSeriesWithDefaultValues.js +4 -6
- package/LineChart/seriesConfig/getSeriesWithDefaultValues.mjs +4 -6
- package/LineChart/seriesConfig/seriesProcessor.d.mts +4 -2
- package/LineChart/seriesConfig/seriesProcessor.d.ts +4 -2
- package/LineChart/seriesConfig/seriesProcessor.js +2 -2
- package/LineChart/seriesConfig/seriesProcessor.mjs +2 -2
- package/PieChart/FocusedPieArc.js +3 -0
- package/PieChart/FocusedPieArc.mjs +3 -0
- package/RadarChart/FocusedRadarMark.js +3 -0
- package/RadarChart/FocusedRadarMark.mjs +3 -0
- package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.mts +2 -2
- package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +2 -2
- package/ScatterChart/FocusedScatterMark.js +3 -0
- package/ScatterChart/FocusedScatterMark.mjs +3 -0
- package/hooks/useAxis.d.mts +2 -2
- package/hooks/useAxis.d.ts +2 -2
- package/index.d.mts +2 -0
- package/index.d.ts +2 -0
- package/index.js +22 -2
- package/index.mjs +3 -1
- package/internals/commonNextFocusItem.js +62 -8
- package/internals/commonNextFocusItem.mjs +62 -8
- package/internals/cubiqSolver.d.mts +5 -0
- package/internals/cubiqSolver.d.ts +5 -0
- package/internals/cubiqSolver.js +62 -0
- package/internals/cubiqSolver.mjs +56 -0
- package/internals/findClosestIndex.d.mts +5 -0
- package/internals/findClosestIndex.d.ts +5 -0
- package/internals/findClosestIndex.js +27 -0
- package/internals/findClosestIndex.mjs +22 -0
- package/internals/getAsNumber.d.mts +1 -0
- package/internals/getAsNumber.d.ts +1 -0
- package/internals/getAsNumber.js +9 -0
- package/internals/getAsNumber.mjs +3 -0
- package/internals/index.d.mts +6 -1
- package/internals/index.d.ts +6 -1
- package/internals/index.js +59 -2
- package/internals/index.mjs +6 -1
- package/internals/isPolar.d.mts +3 -2
- package/internals/isPolar.d.ts +3 -2
- package/internals/isPolar.js +4 -0
- package/internals/isPolar.mjs +3 -0
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/colorProcessor.types.d.mts +8 -9
- package/internals/plugins/corePlugins/useChartSeriesConfig/types/colorProcessor.types.d.ts +8 -9
- package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +4 -21
- package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.mjs +4 -21
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/findVisibleDataIndex.d.mts +30 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/findVisibleDataIndex.d.ts +30 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/findVisibleDataIndex.js +57 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/findVisibleDataIndex.mjs +51 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.js +7 -1
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.mjs +7 -1
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.js +7 -1
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.mjs +7 -1
- package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.mts +3 -2
- package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.ts +3 -2
- package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.js +25 -14
- package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.mjs +25 -14
- package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.js +9 -4
- package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.mjs +9 -3
- package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.mts +2 -2
- package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +2 -2
- package/models/axis.d.mts +2 -0
- package/models/axis.d.ts +2 -0
- package/models/seriesType/bar.d.mts +12 -7
- package/models/seriesType/bar.d.ts +12 -7
- package/models/seriesType/common.d.mts +10 -0
- package/models/seriesType/common.d.ts +10 -0
- package/models/seriesType/composition.d.mts +3 -1
- package/models/seriesType/composition.d.ts +3 -1
- package/models/seriesType/composition.js +6 -2
- package/models/seriesType/composition.mjs +5 -1
- package/models/seriesType/index.d.mts +3 -3
- package/models/seriesType/index.d.ts +3 -3
- package/models/seriesType/index.js +0 -22
- package/models/seriesType/index.mjs +0 -2
- package/models/seriesType/line.d.mts +13 -8
- package/models/seriesType/line.d.ts +13 -8
- package/package.json +32 -4
|
@@ -26,6 +26,9 @@ function FocusedLineMark() {
|
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
28
28
|
const series = lineSeries.series[focusedItem.seriesId];
|
|
29
|
+
if (!series || series.hidden) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
29
32
|
if (series.data[focusedItem.dataIndex] == null) {
|
|
30
33
|
// Handle missing data
|
|
31
34
|
return null;
|
|
@@ -21,6 +21,9 @@ export function FocusedLineMark() {
|
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
23
23
|
const series = lineSeries.series[focusedItem.seriesId];
|
|
24
|
+
if (!series || series.hidden) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
24
27
|
if (series.data[focusedItem.dataIndex] == null) {
|
|
25
28
|
// Handle missing data
|
|
26
29
|
return null;
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.evaluateCurveY = evaluateCurveY;
|
|
7
7
|
var _getCurve = require("../../internals/getCurve");
|
|
8
|
+
var _cubiqSolver = require("../../internals/cubiqSolver");
|
|
8
9
|
/**
|
|
9
10
|
* A straight line segment.
|
|
10
11
|
*/
|
|
@@ -63,8 +64,15 @@ function cubicBezier(t, p0, p1, p2, p3) {
|
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
67
|
+
* Get polynomials coefficient of a cubic Bezier curve.
|
|
68
|
+
* P(t) = rep[0] * t**3 + rep[1] * t**2 + rep[2] * t + rep[3]
|
|
69
|
+
*/
|
|
70
|
+
function cubicBezierCoeffs(p0, p1, p2, p3) {
|
|
71
|
+
return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Find parameter t such that the segment's x(t) ≈ targetX
|
|
68
76
|
*/
|
|
69
77
|
function findTForX(segment, targetX) {
|
|
70
78
|
if (!isBezierSegment(segment)) {
|
|
@@ -72,23 +80,14 @@ function findTForX(segment, targetX) {
|
|
|
72
80
|
const dx = segment.x1 - segment.x0;
|
|
73
81
|
return dx === 0 ? 0 : (targetX - segment.x0) / dx;
|
|
74
82
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const x = cubicBezier(mid, segment.x0, segment.cpx1, segment.cpx2, segment.x1);
|
|
82
|
-
if (x < targetX) {
|
|
83
|
-
lo = mid;
|
|
84
|
-
} else {
|
|
85
|
-
hi = mid;
|
|
86
|
-
}
|
|
87
|
-
if (Math.abs(x - targetX) < 1) {
|
|
88
|
-
return (lo + hi) / 2;
|
|
89
|
-
}
|
|
83
|
+
const xBezierCoeffs = cubicBezierCoeffs(segment.x0, segment.cpx1, segment.cpx2, segment.x1);
|
|
84
|
+
const polyToSolve = [...xBezierCoeffs];
|
|
85
|
+
polyToSolve[3] -= targetX;
|
|
86
|
+
const roots = (0, _cubiqSolver.cubicRoots)(polyToSolve);
|
|
87
|
+
if (roots.length > 0) {
|
|
88
|
+
return roots[0];
|
|
90
89
|
}
|
|
91
|
-
return
|
|
90
|
+
return -1;
|
|
92
91
|
}
|
|
93
92
|
|
|
94
93
|
/** Evaluate the segment's y at parameter t. */
|
|
@@ -123,9 +122,15 @@ function evaluateCurveY(points, targetX, curveType) {
|
|
|
123
122
|
|
|
124
123
|
// Find the segment containing targetX.
|
|
125
124
|
for (const segment of capture.segments) {
|
|
125
|
+
if (targetX < segment.x0 + 0.5 && targetX > segment.x0 - 0.5) {
|
|
126
|
+
return segment.y0;
|
|
127
|
+
}
|
|
128
|
+
if (targetX < segment.x1 + 0.5 && targetX > segment.x1 - 0.5) {
|
|
129
|
+
return segment.y1;
|
|
130
|
+
}
|
|
126
131
|
const xMin = Math.min(segment.x0, segment.x1);
|
|
127
132
|
const xMax = Math.max(segment.x0, segment.x1);
|
|
128
|
-
if (targetX >= xMin
|
|
133
|
+
if (targetX >= xMin && targetX <= xMax) {
|
|
129
134
|
const t = findTForX(segment, targetX);
|
|
130
135
|
return evaluateSegmentY(segment, t);
|
|
131
136
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getCurveFactory } from "../../internals/getCurve.mjs";
|
|
2
|
+
import { cubicRoots } from "../../internals/cubiqSolver.mjs";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* A straight line segment.
|
|
@@ -58,8 +59,15 @@ function cubicBezier(t, p0, p1, p2, p3) {
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
62
|
+
* Get polynomials coefficient of a cubic Bezier curve.
|
|
63
|
+
* P(t) = rep[0] * t**3 + rep[1] * t**2 + rep[2] * t + rep[3]
|
|
64
|
+
*/
|
|
65
|
+
function cubicBezierCoeffs(p0, p1, p2, p3) {
|
|
66
|
+
return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Find parameter t such that the segment's x(t) ≈ targetX
|
|
63
71
|
*/
|
|
64
72
|
function findTForX(segment, targetX) {
|
|
65
73
|
if (!isBezierSegment(segment)) {
|
|
@@ -67,23 +75,14 @@ function findTForX(segment, targetX) {
|
|
|
67
75
|
const dx = segment.x1 - segment.x0;
|
|
68
76
|
return dx === 0 ? 0 : (targetX - segment.x0) / dx;
|
|
69
77
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const x = cubicBezier(mid, segment.x0, segment.cpx1, segment.cpx2, segment.x1);
|
|
77
|
-
if (x < targetX) {
|
|
78
|
-
lo = mid;
|
|
79
|
-
} else {
|
|
80
|
-
hi = mid;
|
|
81
|
-
}
|
|
82
|
-
if (Math.abs(x - targetX) < 1) {
|
|
83
|
-
return (lo + hi) / 2;
|
|
84
|
-
}
|
|
78
|
+
const xBezierCoeffs = cubicBezierCoeffs(segment.x0, segment.cpx1, segment.cpx2, segment.x1);
|
|
79
|
+
const polyToSolve = [...xBezierCoeffs];
|
|
80
|
+
polyToSolve[3] -= targetX;
|
|
81
|
+
const roots = cubicRoots(polyToSolve);
|
|
82
|
+
if (roots.length > 0) {
|
|
83
|
+
return roots[0];
|
|
85
84
|
}
|
|
86
|
-
return
|
|
85
|
+
return -1;
|
|
87
86
|
}
|
|
88
87
|
|
|
89
88
|
/** Evaluate the segment's y at parameter t. */
|
|
@@ -118,9 +117,15 @@ export function evaluateCurveY(points, targetX, curveType) {
|
|
|
118
117
|
|
|
119
118
|
// Find the segment containing targetX.
|
|
120
119
|
for (const segment of capture.segments) {
|
|
120
|
+
if (targetX < segment.x0 + 0.5 && targetX > segment.x0 - 0.5) {
|
|
121
|
+
return segment.y0;
|
|
122
|
+
}
|
|
123
|
+
if (targetX < segment.x1 + 0.5 && targetX > segment.x1 - 0.5) {
|
|
124
|
+
return segment.y1;
|
|
125
|
+
}
|
|
121
126
|
const xMin = Math.min(segment.x0, segment.x1);
|
|
122
127
|
const xMax = Math.max(segment.x0, segment.x1);
|
|
123
|
-
if (targetX >= xMin
|
|
128
|
+
if (targetX >= xMin && targetX <= xMax) {
|
|
124
129
|
const t = findTForX(segment, targetX);
|
|
125
130
|
return evaluateSegmentY(segment, t);
|
|
126
131
|
}
|
|
@@ -8,6 +8,7 @@ var _useChartCartesianAxisRendering = require("../../internals/plugins/featurePl
|
|
|
8
8
|
var _seriesSelectorOfType = require("../../internals/seriesSelectorOfType");
|
|
9
9
|
var _getAxisValue = require("../../internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue");
|
|
10
10
|
var _scaleGuards = require("../../internals/scaleGuards");
|
|
11
|
+
var _getAsNumber = require("../../internals/getAsNumber");
|
|
11
12
|
var _getValueToPositionMapper = require("../../hooks/getValueToPositionMapper");
|
|
12
13
|
var _curveEvaluation = require("./curveEvaluation");
|
|
13
14
|
/**
|
|
@@ -28,21 +29,27 @@ function getBracketIndices(xAxis, pointX) {
|
|
|
28
29
|
if (index === -1) {
|
|
29
30
|
return null;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
const axisPointValue = (0, _getValueToPositionMapper.getValueToPositionMapper)(xAxis.scale)(axisData[index]);
|
|
33
|
+
if (axisPointValue <= pointX) {
|
|
34
|
+
return index === axisData.length - 1 ? null : {
|
|
35
|
+
left: index,
|
|
36
|
+
right: index + 1
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return index === 0 ? null : {
|
|
40
|
+
left: index - 1,
|
|
33
41
|
right: index
|
|
34
42
|
};
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
// For continuous axes, find the two adjacent data points surrounding pointX.
|
|
38
46
|
const xValue = scale.invert(pointX);
|
|
39
|
-
const xAsNumber =
|
|
40
|
-
const getAsNumber = v => v instanceof Date ? v.getTime() : v;
|
|
47
|
+
const xAsNumber = (0, _getAsNumber.getAsNumber)(xValue);
|
|
41
48
|
|
|
42
49
|
// Find the rightmost index where data[i] <= xValue.
|
|
43
50
|
let leftIndex = -1;
|
|
44
51
|
for (let i = 0; i < axisData.length; i += 1) {
|
|
45
|
-
if (getAsNumber(axisData[i]) <= xAsNumber) {
|
|
52
|
+
if ((0, _getAsNumber.getAsNumber)(axisData[i]) <= xAsNumber) {
|
|
46
53
|
leftIndex = i;
|
|
47
54
|
} else {
|
|
48
55
|
break;
|
|
@@ -53,7 +60,11 @@ function getBracketIndices(xAxis, pointX) {
|
|
|
53
60
|
return null;
|
|
54
61
|
}
|
|
55
62
|
if (leftIndex === axisData.length - 1) {
|
|
56
|
-
|
|
63
|
+
if ((0, _getAsNumber.getAsNumber)(axisData[leftIndex]) < xAsNumber) {
|
|
64
|
+
// Pointer is strictly past the last data point — out of range.
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
// Pointer is exactly on the last data point.
|
|
57
68
|
return {
|
|
58
69
|
left: leftIndex,
|
|
59
70
|
right: leftIndex
|
|
@@ -79,6 +90,7 @@ function getBaselinePixelY(baseline, yScale, stackedY0) {
|
|
|
79
90
|
if (baseline === 'min') {
|
|
80
91
|
return yScale.range()[0];
|
|
81
92
|
}
|
|
93
|
+
|
|
82
94
|
// Default: use the stacked baseline value.
|
|
83
95
|
const value = yScale(stackedY0);
|
|
84
96
|
if (Number.isNaN(value)) {
|
|
@@ -181,6 +193,9 @@ function getItemAtPosition(state, point) {
|
|
|
181
193
|
connectNulls,
|
|
182
194
|
curve
|
|
183
195
|
} = seriesItem;
|
|
196
|
+
if (!connectNulls && (data[left] == null || data[right] == null)) {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
184
199
|
const dataIndex = (0, _getAxisValue.getAxisIndex)(xAxis, point.x);
|
|
185
200
|
if (dataIndex === -1) {
|
|
186
201
|
continue;
|
|
@@ -238,7 +253,7 @@ function getItemAtPosition(state, point) {
|
|
|
238
253
|
}
|
|
239
254
|
|
|
240
255
|
// Step 2: If the closest line is within the proximity threshold, pick it.
|
|
241
|
-
if (closestItem && closestDistance <= LINE_PROXIMITY_THRESHOLD) {
|
|
256
|
+
if (closestItem && closestDistance <= LINE_PROXIMITY_THRESHOLD && !series.series[closestItem.seriesId].area) {
|
|
242
257
|
return closestItem;
|
|
243
258
|
}
|
|
244
259
|
|
|
@@ -250,8 +265,8 @@ function getItemAtPosition(state, point) {
|
|
|
250
265
|
for (let g = stackingGroups.length - 1; g >= 0; g -= 1) {
|
|
251
266
|
const groupIds = stackingGroups[g].ids;
|
|
252
267
|
|
|
253
|
-
// Iterate in
|
|
254
|
-
for (let i =
|
|
268
|
+
// Iterate in direct order cause the `useAreaPlotData` is already doing a reverse order.
|
|
269
|
+
for (let i = 0; i < groupIds.length; i += 1) {
|
|
255
270
|
const seriesId = groupIds[i];
|
|
256
271
|
const seriesItem = series.series[seriesId];
|
|
257
272
|
if (seriesItem.hidden || !seriesItem.area) {
|
|
@@ -281,12 +296,7 @@ function getItemAtPosition(state, point) {
|
|
|
281
296
|
} = seriesItem;
|
|
282
297
|
|
|
283
298
|
// Check for null gaps at bracket points.
|
|
284
|
-
|
|
285
|
-
const rightIsNull = data[right] == null;
|
|
286
|
-
if (leftIsNull && rightIsNull) {
|
|
287
|
-
continue;
|
|
288
|
-
}
|
|
289
|
-
if ((leftIsNull || rightIsNull) && !connectNulls) {
|
|
299
|
+
if ((data[left] == null || data[right] == null) && !connectNulls) {
|
|
290
300
|
continue;
|
|
291
301
|
}
|
|
292
302
|
const xScale = xAxis.scale;
|
|
@@ -297,28 +307,6 @@ function getItemAtPosition(state, point) {
|
|
|
297
307
|
continue;
|
|
298
308
|
}
|
|
299
309
|
const getPixelX = idx => xPosition(xData[idx]);
|
|
300
|
-
if (left === right) {
|
|
301
|
-
// Ordinal axis or pointer exactly on a data point.
|
|
302
|
-
const stacked = visibleStackedData[left];
|
|
303
|
-
if (!stacked) {
|
|
304
|
-
continue;
|
|
305
|
-
}
|
|
306
|
-
const yBottom = getBaselinePixelY(baseline, yScale, stacked[0]);
|
|
307
|
-
const yTop = yScale(stacked[1]);
|
|
308
|
-
if ([yBottom, yTop].some(v => v == null || Number.isNaN(v))) {
|
|
309
|
-
continue;
|
|
310
|
-
}
|
|
311
|
-
const yMin = Math.min(yBottom, yTop);
|
|
312
|
-
const yMax = Math.max(yBottom, yTop);
|
|
313
|
-
if (point.y >= yMin && point.y <= yMax) {
|
|
314
|
-
return {
|
|
315
|
-
type: 'line',
|
|
316
|
-
seriesId,
|
|
317
|
-
dataIndex: left
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
continue;
|
|
321
|
-
}
|
|
322
310
|
|
|
323
311
|
// Build pixel-coordinate points for the top and bottom curves,
|
|
324
312
|
// then evaluate them at the pointer's x using the actual d3 curve.
|
|
@@ -2,6 +2,7 @@ import { selectorChartXAxis, selectorChartYAxis } from "../../internals/plugins/
|
|
|
2
2
|
import { selectorAllSeriesOfType } from "../../internals/seriesSelectorOfType.mjs";
|
|
3
3
|
import { getAxisIndex } from "../../internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.mjs";
|
|
4
4
|
import { isOrdinalScale } from "../../internals/scaleGuards.mjs";
|
|
5
|
+
import { getAsNumber } from "../../internals/getAsNumber.mjs";
|
|
5
6
|
import { getValueToPositionMapper } from "../../hooks/getValueToPositionMapper.mjs";
|
|
6
7
|
import { evaluateCurveY } from "./curveEvaluation.mjs";
|
|
7
8
|
|
|
@@ -23,16 +24,22 @@ function getBracketIndices(xAxis, pointX) {
|
|
|
23
24
|
if (index === -1) {
|
|
24
25
|
return null;
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
const axisPointValue = getValueToPositionMapper(xAxis.scale)(axisData[index]);
|
|
28
|
+
if (axisPointValue <= pointX) {
|
|
29
|
+
return index === axisData.length - 1 ? null : {
|
|
30
|
+
left: index,
|
|
31
|
+
right: index + 1
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return index === 0 ? null : {
|
|
35
|
+
left: index - 1,
|
|
28
36
|
right: index
|
|
29
37
|
};
|
|
30
38
|
}
|
|
31
39
|
|
|
32
40
|
// For continuous axes, find the two adjacent data points surrounding pointX.
|
|
33
41
|
const xValue = scale.invert(pointX);
|
|
34
|
-
const xAsNumber = xValue
|
|
35
|
-
const getAsNumber = v => v instanceof Date ? v.getTime() : v;
|
|
42
|
+
const xAsNumber = getAsNumber(xValue);
|
|
36
43
|
|
|
37
44
|
// Find the rightmost index where data[i] <= xValue.
|
|
38
45
|
let leftIndex = -1;
|
|
@@ -48,7 +55,11 @@ function getBracketIndices(xAxis, pointX) {
|
|
|
48
55
|
return null;
|
|
49
56
|
}
|
|
50
57
|
if (leftIndex === axisData.length - 1) {
|
|
51
|
-
|
|
58
|
+
if (getAsNumber(axisData[leftIndex]) < xAsNumber) {
|
|
59
|
+
// Pointer is strictly past the last data point — out of range.
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
// Pointer is exactly on the last data point.
|
|
52
63
|
return {
|
|
53
64
|
left: leftIndex,
|
|
54
65
|
right: leftIndex
|
|
@@ -74,6 +85,7 @@ function getBaselinePixelY(baseline, yScale, stackedY0) {
|
|
|
74
85
|
if (baseline === 'min') {
|
|
75
86
|
return yScale.range()[0];
|
|
76
87
|
}
|
|
88
|
+
|
|
77
89
|
// Default: use the stacked baseline value.
|
|
78
90
|
const value = yScale(stackedY0);
|
|
79
91
|
if (Number.isNaN(value)) {
|
|
@@ -176,6 +188,9 @@ export default function getItemAtPosition(state, point) {
|
|
|
176
188
|
connectNulls,
|
|
177
189
|
curve
|
|
178
190
|
} = seriesItem;
|
|
191
|
+
if (!connectNulls && (data[left] == null || data[right] == null)) {
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
179
194
|
const dataIndex = getAxisIndex(xAxis, point.x);
|
|
180
195
|
if (dataIndex === -1) {
|
|
181
196
|
continue;
|
|
@@ -233,7 +248,7 @@ export default function getItemAtPosition(state, point) {
|
|
|
233
248
|
}
|
|
234
249
|
|
|
235
250
|
// Step 2: If the closest line is within the proximity threshold, pick it.
|
|
236
|
-
if (closestItem && closestDistance <= LINE_PROXIMITY_THRESHOLD) {
|
|
251
|
+
if (closestItem && closestDistance <= LINE_PROXIMITY_THRESHOLD && !series.series[closestItem.seriesId].area) {
|
|
237
252
|
return closestItem;
|
|
238
253
|
}
|
|
239
254
|
|
|
@@ -245,8 +260,8 @@ export default function getItemAtPosition(state, point) {
|
|
|
245
260
|
for (let g = stackingGroups.length - 1; g >= 0; g -= 1) {
|
|
246
261
|
const groupIds = stackingGroups[g].ids;
|
|
247
262
|
|
|
248
|
-
// Iterate in
|
|
249
|
-
for (let i =
|
|
263
|
+
// Iterate in direct order cause the `useAreaPlotData` is already doing a reverse order.
|
|
264
|
+
for (let i = 0; i < groupIds.length; i += 1) {
|
|
250
265
|
const seriesId = groupIds[i];
|
|
251
266
|
const seriesItem = series.series[seriesId];
|
|
252
267
|
if (seriesItem.hidden || !seriesItem.area) {
|
|
@@ -276,12 +291,7 @@ export default function getItemAtPosition(state, point) {
|
|
|
276
291
|
} = seriesItem;
|
|
277
292
|
|
|
278
293
|
// Check for null gaps at bracket points.
|
|
279
|
-
|
|
280
|
-
const rightIsNull = data[right] == null;
|
|
281
|
-
if (leftIsNull && rightIsNull) {
|
|
282
|
-
continue;
|
|
283
|
-
}
|
|
284
|
-
if ((leftIsNull || rightIsNull) && !connectNulls) {
|
|
294
|
+
if ((data[left] == null || data[right] == null) && !connectNulls) {
|
|
285
295
|
continue;
|
|
286
296
|
}
|
|
287
297
|
const xScale = xAxis.scale;
|
|
@@ -292,28 +302,6 @@ export default function getItemAtPosition(state, point) {
|
|
|
292
302
|
continue;
|
|
293
303
|
}
|
|
294
304
|
const getPixelX = idx => xPosition(xData[idx]);
|
|
295
|
-
if (left === right) {
|
|
296
|
-
// Ordinal axis or pointer exactly on a data point.
|
|
297
|
-
const stacked = visibleStackedData[left];
|
|
298
|
-
if (!stacked) {
|
|
299
|
-
continue;
|
|
300
|
-
}
|
|
301
|
-
const yBottom = getBaselinePixelY(baseline, yScale, stacked[0]);
|
|
302
|
-
const yTop = yScale(stacked[1]);
|
|
303
|
-
if ([yBottom, yTop].some(v => v == null || Number.isNaN(v))) {
|
|
304
|
-
continue;
|
|
305
|
-
}
|
|
306
|
-
const yMin = Math.min(yBottom, yTop);
|
|
307
|
-
const yMax = Math.max(yBottom, yTop);
|
|
308
|
-
if (point.y >= yMin && point.y <= yMax) {
|
|
309
|
-
return {
|
|
310
|
-
type: 'line',
|
|
311
|
-
seriesId,
|
|
312
|
-
dataIndex: left
|
|
313
|
-
};
|
|
314
|
-
}
|
|
315
|
-
continue;
|
|
316
|
-
}
|
|
317
305
|
|
|
318
306
|
// Build pixel-coordinate points for the top and bottom curves,
|
|
319
307
|
// then evaluate them at the pointer's x using the actual d3 curve.
|
|
@@ -6,10 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
const getSeriesWithDefaultValues = (seriesData, seriesIndex, colors) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
});
|
|
14
|
-
};
|
|
9
|
+
const getSeriesWithDefaultValues = (seriesData, seriesIndex, colors) => (0, _extends2.default)({}, seriesData, {
|
|
10
|
+
id: seriesData.id ?? `auto-generated-id-${seriesIndex}`,
|
|
11
|
+
color: seriesData.color ?? colors[seriesIndex % colors.length]
|
|
12
|
+
});
|
|
15
13
|
var _default = exports.default = getSeriesWithDefaultValues;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
const getSeriesWithDefaultValues = (seriesData, seriesIndex, colors) => {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
7
|
-
};
|
|
2
|
+
const getSeriesWithDefaultValues = (seriesData, seriesIndex, colors) => _extends({}, seriesData, {
|
|
3
|
+
id: seriesData.id ?? `auto-generated-id-${seriesIndex}`,
|
|
4
|
+
color: seriesData.color ?? colors[seriesIndex % colors.length]
|
|
5
|
+
});
|
|
8
6
|
export default getSeriesWithDefaultValues;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
1
|
+
import { type DatasetType } from "../../models/seriesType/config.mjs";
|
|
2
|
+
import type { SeriesProcessorParams, SeriesProcessorResult } from "../../internals/plugins/corePlugins/useChartSeriesConfig/index.mjs";
|
|
3
|
+
import type { IsItemVisibleFunction } from "../../internals/plugins/featurePlugins/useChartVisibilityManager/index.mjs";
|
|
4
|
+
declare function seriesProcessor(params: SeriesProcessorParams<'line'>, dataset?: Readonly<DatasetType>, isItemVisible?: IsItemVisibleFunction): SeriesProcessorResult<'line'>;
|
|
3
5
|
export default seriesProcessor;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
1
|
+
import { type DatasetType } from "../../models/seriesType/config.js";
|
|
2
|
+
import type { SeriesProcessorParams, SeriesProcessorResult } from "../../internals/plugins/corePlugins/useChartSeriesConfig/index.js";
|
|
3
|
+
import type { IsItemVisibleFunction } from "../../internals/plugins/featurePlugins/useChartVisibilityManager/index.js";
|
|
4
|
+
declare function seriesProcessor(params: SeriesProcessorParams<'line'>, dataset?: Readonly<DatasetType>, isItemVisible?: IsItemVisibleFunction): SeriesProcessorResult<'line'>;
|
|
3
5
|
export default seriesProcessor;
|
|
@@ -12,7 +12,7 @@ var _warning = require("@mui/x-internals/warning");
|
|
|
12
12
|
var _stacking = require("../../internals/stacking");
|
|
13
13
|
const defaultShapes = ['circle', 'square', 'diamond', 'cross', 'star', 'triangle', 'wye'];
|
|
14
14
|
const lineValueFormatter = v => v == null ? '' : v.toLocaleString();
|
|
15
|
-
|
|
15
|
+
function seriesProcessor(params, dataset, isItemVisible) {
|
|
16
16
|
const {
|
|
17
17
|
seriesOrder,
|
|
18
18
|
series
|
|
@@ -138,5 +138,5 @@ Line plots only support numeric and null values.`);
|
|
|
138
138
|
stackingGroups,
|
|
139
139
|
series: completedSeries
|
|
140
140
|
};
|
|
141
|
-
}
|
|
141
|
+
}
|
|
142
142
|
var _default = exports.default = seriesProcessor;
|
|
@@ -5,7 +5,7 @@ import { warnOnce } from '@mui/x-internals/warning';
|
|
|
5
5
|
import { getStackingGroups } from "../../internals/stacking/index.mjs";
|
|
6
6
|
const defaultShapes = ['circle', 'square', 'diamond', 'cross', 'star', 'triangle', 'wye'];
|
|
7
7
|
const lineValueFormatter = v => v == null ? '' : v.toLocaleString();
|
|
8
|
-
|
|
8
|
+
function seriesProcessor(params, dataset, isItemVisible) {
|
|
9
9
|
const {
|
|
10
10
|
seriesOrder,
|
|
11
11
|
series
|
|
@@ -131,5 +131,5 @@ Line plots only support numeric and null values.`);
|
|
|
131
131
|
stackingGroups,
|
|
132
132
|
series: completedSeries
|
|
133
133
|
};
|
|
134
|
-
}
|
|
134
|
+
}
|
|
135
135
|
export default seriesProcessor;
|
|
@@ -38,6 +38,9 @@ function FocusedPieArc(props) {
|
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
40
|
const item = series.data[focusedItem.dataIndex];
|
|
41
|
+
if (!item || item.hidden) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
41
44
|
const _getModifiedArcProper = (0, _getModifiedArcProperties.getModifiedArcProperties)(series, pieSeriesLayout[focusedItem.seriesId], isHighlighted, isFaded),
|
|
42
45
|
arcSizes = (0, _objectWithoutPropertiesLoose2.default)(_getModifiedArcProper, _excluded);
|
|
43
46
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PieArc.PieArc, (0, _extends2.default)({
|
|
@@ -32,6 +32,9 @@ export function FocusedPieArc(props) {
|
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
34
|
const item = series.data[focusedItem.dataIndex];
|
|
35
|
+
if (!item || item.hidden) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
35
38
|
const _getModifiedArcProper = getModifiedArcProperties(series, pieSeriesLayout[focusedItem.seriesId], isHighlighted, isFaded),
|
|
36
39
|
arcSizes = _objectWithoutPropertiesLoose(_getModifiedArcProper, _excluded);
|
|
37
40
|
return /*#__PURE__*/_jsx(PieArc, _extends({
|
|
@@ -20,6 +20,9 @@ function FocusedRadarMark(props) {
|
|
|
20
20
|
if (!focusedItem || focusedItem.type !== 'radar' || seriesCoordinates.length === 0) {
|
|
21
21
|
return null;
|
|
22
22
|
}
|
|
23
|
+
if (seriesCoordinates[0].hidden) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
23
26
|
const point = seriesCoordinates[0].points[focusedItem.dataIndex];
|
|
24
27
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("rect", (0, _extends2.default)({
|
|
25
28
|
fill: "none",
|
|
@@ -13,6 +13,9 @@ export function FocusedRadarMark(props) {
|
|
|
13
13
|
if (!focusedItem || focusedItem.type !== 'radar' || seriesCoordinates.length === 0) {
|
|
14
14
|
return null;
|
|
15
15
|
}
|
|
16
|
+
if (seriesCoordinates[0].hidden) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
16
19
|
const point = seriesCoordinates[0].points[focusedItem.dataIndex];
|
|
17
20
|
return /*#__PURE__*/_jsx("rect", _extends({
|
|
18
21
|
fill: "none",
|
|
@@ -19,14 +19,14 @@ export declare function useRadarSeriesData(querySeriesId?: SeriesId): {
|
|
|
19
19
|
}[];
|
|
20
20
|
hidden: boolean;
|
|
21
21
|
type: "radar";
|
|
22
|
-
label?: string | ((location: "tooltip" | "legend") => string) | undefined;
|
|
23
22
|
highlightScope?: import("../../internals/index.mjs").CommonHighlightScope | undefined;
|
|
24
23
|
labelMarkType?: import("../../internals/index.mjs").ChartsLabelMarkType | undefined;
|
|
25
24
|
colorGetter?: ((data: import("../../internals/index.mjs").ColorCallbackValue<number>) => string) | undefined;
|
|
25
|
+
label?: string | ((location: "tooltip" | "legend") => string) | undefined;
|
|
26
26
|
hideMark?: boolean | undefined;
|
|
27
27
|
fillArea?: boolean | undefined;
|
|
28
|
-
data: number[];
|
|
29
28
|
id: SeriesId;
|
|
30
29
|
valueFormatter: import("../../internals/index.mjs").SeriesValueFormatter<number>;
|
|
31
30
|
color: string;
|
|
31
|
+
data: number[];
|
|
32
32
|
}[];
|
|
@@ -19,14 +19,14 @@ export declare function useRadarSeriesData(querySeriesId?: SeriesId): {
|
|
|
19
19
|
}[];
|
|
20
20
|
hidden: boolean;
|
|
21
21
|
type: "radar";
|
|
22
|
-
label?: string | ((location: "tooltip" | "legend") => string) | undefined;
|
|
23
22
|
highlightScope?: import("../../internals/index.js").CommonHighlightScope | undefined;
|
|
24
23
|
labelMarkType?: import("../../internals/index.js").ChartsLabelMarkType | undefined;
|
|
25
24
|
colorGetter?: ((data: import("../../internals/index.js").ColorCallbackValue<number>) => string) | undefined;
|
|
25
|
+
label?: string | ((location: "tooltip" | "legend") => string) | undefined;
|
|
26
26
|
hideMark?: boolean | undefined;
|
|
27
27
|
fillArea?: boolean | undefined;
|
|
28
|
-
data: number[];
|
|
29
28
|
id: SeriesId;
|
|
30
29
|
valueFormatter: import("../../internals/index.js").SeriesValueFormatter<number>;
|
|
31
30
|
color: string;
|
|
31
|
+
data: number[];
|
|
32
32
|
}[];
|
|
@@ -38,6 +38,9 @@ function FocusedScatterMark(_ref) {
|
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
40
|
const series = scatterSeries?.series[focusedItem.seriesId];
|
|
41
|
+
if (!series || series.hidden) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
41
44
|
const xAxisId = series.xAxisId ?? xAxisIds[0];
|
|
42
45
|
const yAxisId = series.yAxisId ?? yAxisIds[0];
|
|
43
46
|
const getXPosition = (0, _hooks.getValueToPositionMapper)(xAxis[xAxisId].scale);
|
|
@@ -31,6 +31,9 @@ export function FocusedScatterMark(_ref) {
|
|
|
31
31
|
return null;
|
|
32
32
|
}
|
|
33
33
|
const series = scatterSeries?.series[focusedItem.seriesId];
|
|
34
|
+
if (!series || series.hidden) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
34
37
|
const xAxisId = series.xAxisId ?? xAxisIds[0];
|
|
35
38
|
const yAxisId = series.yAxisId ?? yAxisIds[0];
|
|
36
39
|
const getXPosition = getValueToPositionMapper(xAxis[xAxisId].scale);
|
package/hooks/useAxis.d.mts
CHANGED
|
@@ -87,7 +87,7 @@ export declare function useYAxis<T extends keyof AxisScaleConfig>(axisId?: AxisI
|
|
|
87
87
|
* @see `useRotationAxis` for accessing a single rotation axis
|
|
88
88
|
*/
|
|
89
89
|
export declare function useRotationAxes(): {
|
|
90
|
-
rotationAxis: import("../internals/
|
|
90
|
+
rotationAxis: import("../internals/index.mjs").ComputedAxisConfig<ChartsRotationAxisProps>;
|
|
91
91
|
rotationAxisIds: string[];
|
|
92
92
|
};
|
|
93
93
|
/**
|
|
@@ -106,7 +106,7 @@ export declare function useRotationAxes(): {
|
|
|
106
106
|
* @see `useRadiusAxis` for accessing a single radius axis
|
|
107
107
|
*/
|
|
108
108
|
export declare function useRadiusAxes(): {
|
|
109
|
-
radiusAxis: import("../internals/
|
|
109
|
+
radiusAxis: import("../internals/index.mjs").ComputedAxisConfig<ChartsRadiusAxisProps>;
|
|
110
110
|
radiusAxisIds: string[];
|
|
111
111
|
};
|
|
112
112
|
/**
|
package/hooks/useAxis.d.ts
CHANGED
|
@@ -87,7 +87,7 @@ export declare function useYAxis<T extends keyof AxisScaleConfig>(axisId?: AxisI
|
|
|
87
87
|
* @see `useRotationAxis` for accessing a single rotation axis
|
|
88
88
|
*/
|
|
89
89
|
export declare function useRotationAxes(): {
|
|
90
|
-
rotationAxis: import("../internals/
|
|
90
|
+
rotationAxis: import("../internals/index.js").ComputedAxisConfig<ChartsRotationAxisProps>;
|
|
91
91
|
rotationAxisIds: string[];
|
|
92
92
|
};
|
|
93
93
|
/**
|
|
@@ -106,7 +106,7 @@ export declare function useRotationAxes(): {
|
|
|
106
106
|
* @see `useRadiusAxis` for accessing a single radius axis
|
|
107
107
|
*/
|
|
108
108
|
export declare function useRadiusAxes(): {
|
|
109
|
-
radiusAxis: import("../internals/
|
|
109
|
+
radiusAxis: import("../internals/index.js").ComputedAxisConfig<ChartsRadiusAxisProps>;
|
|
110
110
|
radiusAxisIds: string[];
|
|
111
111
|
};
|
|
112
112
|
/**
|