@mui/x-charts 9.1.0 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.d.mts +1 -1
  3. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.d.ts +1 -1
  4. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.js +31 -14
  5. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.mjs +32 -15
  6. package/ChartsRadiusAxis/ChartsRadiusAxis.d.mts +1 -47
  7. package/ChartsRadiusAxis/ChartsRadiusAxis.d.ts +1 -47
  8. package/ChartsRadiusAxis/ChartsRadiusAxis.js +20 -16
  9. package/ChartsRadiusAxis/ChartsRadiusAxis.mjs +21 -15
  10. package/ChartsRotationAxis/ChartsRotationAxis.d.mts +1 -47
  11. package/ChartsRotationAxis/ChartsRotationAxis.d.ts +1 -47
  12. package/ChartsRotationAxis/ChartsRotationAxis.js +16 -19
  13. package/ChartsRotationAxis/ChartsRotationAxis.mjs +17 -18
  14. package/ChartsTooltip/useAxesTooltip.d.mts +1 -1
  15. package/ChartsTooltip/useAxesTooltip.d.ts +1 -1
  16. package/ChartsTooltip/useAxesTooltip.js +11 -2
  17. package/ChartsTooltip/useAxesTooltip.mjs +12 -3
  18. package/RadarChart/RadarGrid/CircularRadarStripes.js +2 -3
  19. package/RadarChart/RadarGrid/CircularRadarStripes.mjs +2 -3
  20. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.js +1 -1
  21. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.mjs +2 -2
  22. package/index.js +1 -1
  23. package/index.mjs +1 -1
  24. package/internals/getRingPath.d.mts +16 -0
  25. package/internals/getRingPath.d.ts +16 -0
  26. package/internals/getRingPath.js +39 -0
  27. package/internals/getRingPath.mjs +33 -0
  28. package/internals/index.d.mts +4 -2
  29. package/internals/index.d.ts +4 -2
  30. package/internals/index.js +22 -3
  31. package/internals/index.mjs +3 -2
  32. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.d.mts +3 -3
  33. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.d.ts +3 -3
  34. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.mts +1 -0
  35. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -0
  36. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +8 -0
  37. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.mjs +1 -0
  38. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.mts +6 -1
  39. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.ts +6 -1
  40. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.js +48 -36
  41. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.mjs +47 -36
  42. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.mts +74 -1
  43. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +74 -1
  44. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.mts +152 -2
  45. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +152 -2
  46. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.mts +2 -2
  47. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +2 -2
  48. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.mts +2 -2
  49. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.ts +2 -2
  50. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.d.mts +6 -1
  51. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.d.ts +6 -1
  52. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.js +36 -2
  53. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.mjs +34 -1
  54. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +1 -1
  55. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.mjs +2 -2
  56. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.mts +22 -2
  57. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +22 -2
  58. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +73 -12
  59. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.mjs +74 -12
  60. package/models/axis.d.mts +55 -7
  61. package/models/axis.d.ts +55 -7
  62. package/package.json +4 -4
@@ -16,7 +16,7 @@ export { useLineChartProps } from "../LineChart/useLineChartProps.mjs";
16
16
  export { useAreaPlotData } from "../LineChart/useAreaPlotData.mjs";
17
17
  export { useLinePlotData } from "../LineChart/useLinePlotData.mjs";
18
18
  export * from "../BarChart/useBarChartProps.mjs";
19
- export { processBarDataForPlot } from "../BarChart/useBarPlotData.mjs";
19
+ export { processBarDataForPlot, useBarPlotData } from "../BarChart/useBarPlotData.mjs";
20
20
  export { useRadarChartProps } from "../RadarChart/useRadarChartProps.mjs";
21
21
  export * from "../ChartsContainer/useChartsContainerProps.mjs";
22
22
  export * from "../ChartsDataProvider/useChartsDataProviderProps.mjs";
@@ -45,7 +45,7 @@ export * from "./plugins/featurePlugins/useChartItemClick/index.mjs";
45
45
  export * from "./plugins/utils/selectors.mjs";
46
46
  export { getAxisTriggerTooltip as getCartesianAxisTriggerTooltip } from "./plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.mjs";
47
47
  export { getAxisIndex as getCartesianAxisIndex } from "./plugins/featurePlugins/useChartCartesianAxis/getAxisValue.mjs";
48
- export { getAxisIndex as getPolarAxisIndex } from "./plugins/featurePlugins/useChartPolarAxis/getAxisIndex.mjs";
48
+ export { getRotationAxisIndex } from "./plugins/featurePlugins/useChartPolarAxis/getAxisIndex.mjs";
49
49
  export * from "./store/useCharts.mjs";
50
50
  export * from "./store/useStore.mjs";
51
51
 
@@ -62,6 +62,7 @@ export * from "./clampAngle.mjs";
62
62
  export * from "./getLabel.mjs";
63
63
  export * from "./legendUtils.mjs";
64
64
  export * from "./getChartPoint.mjs";
65
+ export * from "./plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.mjs";
65
66
  export * from "./isDefined.mjs";
66
67
  export * from "./getScale.mjs";
67
68
  export * from "./getAsNumber.mjs";
@@ -1,4 +1,4 @@
1
- import { type AxisConfig, type ChartsXAxisProps, type ChartsYAxisProps, type ScaleName } from "../../../../models/index.mjs";
2
- import { type AxisId } from "../../../../models/axis.mjs";
1
+ import type { AxisConfig, ScaleName } from "../../../../models/index.mjs";
2
+ import type { AxisId, ChartsCartesianAxisProps } from "../../../../models/axis.mjs";
3
3
  import { type DefaultizedZoomOptions } from "./useChartCartesianAxis.types.mjs";
4
- export declare const createZoomLookup: (axisDirection: "x" | "y") => (axes?: AxisConfig<ScaleName, any, ChartsXAxisProps | ChartsYAxisProps>[]) => Record<AxisId, DefaultizedZoomOptions>;
4
+ export declare const createZoomLookup: (axisDirection: "x" | "y") => (axes?: AxisConfig<ScaleName, any, ChartsCartesianAxisProps>[]) => Record<AxisId, DefaultizedZoomOptions>;
@@ -1,4 +1,4 @@
1
- import { type AxisConfig, type ChartsXAxisProps, type ChartsYAxisProps, type ScaleName } from "../../../../models/index.js";
2
- import { type AxisId } from "../../../../models/axis.js";
1
+ import type { AxisConfig, ScaleName } from "../../../../models/index.js";
2
+ import type { AxisId, ChartsCartesianAxisProps } from "../../../../models/axis.js";
3
3
  import { type DefaultizedZoomOptions } from "./useChartCartesianAxis.types.js";
4
- export declare const createZoomLookup: (axisDirection: "x" | "y") => (axes?: AxisConfig<ScaleName, any, ChartsXAxisProps | ChartsYAxisProps>[]) => Record<AxisId, DefaultizedZoomOptions>;
4
+ export declare const createZoomLookup: (axisDirection: "x" | "y") => (axes?: AxisConfig<ScaleName, any, ChartsCartesianAxisProps>[]) => Record<AxisId, DefaultizedZoomOptions>;
@@ -5,6 +5,7 @@ export * from "./useChartCartesianAxisLayout.selectors.mjs";
5
5
  export * from "./useChartCartesianInteraction.selectors.mjs";
6
6
  export * from "./useChartCartesianHighlight.selectors.mjs";
7
7
  export * from "./useChartCartesianAxisPreview.selectors.mjs";
8
+ export { getBandIndex } from "./useChartCartesianAxisPosition.selectors.mjs";
8
9
  export * from "./useChartAxisAutoSize.selectors.mjs";
9
10
  export * from "./useChartCartesianTooltip.selectors.mjs";
10
11
  export { defaultizeXAxis, defaultizeYAxis } from "./defaultizeAxis.mjs";
@@ -5,6 +5,7 @@ export * from "./useChartCartesianAxisLayout.selectors.js";
5
5
  export * from "./useChartCartesianInteraction.selectors.js";
6
6
  export * from "./useChartCartesianHighlight.selectors.js";
7
7
  export * from "./useChartCartesianAxisPreview.selectors.js";
8
+ export { getBandIndex } from "./useChartCartesianAxisPosition.selectors.js";
8
9
  export * from "./useChartAxisAutoSize.selectors.js";
9
10
  export * from "./useChartCartesianTooltip.selectors.js";
10
11
  export { defaultizeXAxis, defaultizeYAxis } from "./defaultizeAxis.js";
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  var _exportNames = {
7
7
  useChartCartesianAxis: true,
8
+ getBandIndex: true,
8
9
  defaultizeXAxis: true,
9
10
  defaultizeYAxis: true,
10
11
  computeAxisAutoSize: true
@@ -27,6 +28,12 @@ Object.defineProperty(exports, "defaultizeYAxis", {
27
28
  return _defaultizeAxis.defaultizeYAxis;
28
29
  }
29
30
  });
31
+ Object.defineProperty(exports, "getBandIndex", {
32
+ enumerable: true,
33
+ get: function () {
34
+ return _useChartCartesianAxisPosition.getBandIndex;
35
+ }
36
+ });
30
37
  Object.defineProperty(exports, "useChartCartesianAxis", {
31
38
  enumerable: true,
32
39
  get: function () {
@@ -94,6 +101,7 @@ Object.keys(_useChartCartesianAxisPreview).forEach(function (key) {
94
101
  }
95
102
  });
96
103
  });
104
+ var _useChartCartesianAxisPosition = require("./useChartCartesianAxisPosition.selectors");
97
105
  var _useChartAxisAutoSize = require("./useChartAxisAutoSize.selectors");
98
106
  Object.keys(_useChartAxisAutoSize).forEach(function (key) {
99
107
  if (key === "default" || key === "__esModule") return;
@@ -4,6 +4,7 @@ export * from "./useChartCartesianAxisLayout.selectors.mjs";
4
4
  export * from "./useChartCartesianInteraction.selectors.mjs";
5
5
  export * from "./useChartCartesianHighlight.selectors.mjs";
6
6
  export * from "./useChartCartesianAxisPreview.selectors.mjs";
7
+ export { getBandIndex } from "./useChartCartesianAxisPosition.selectors.mjs";
7
8
  export * from "./useChartAxisAutoSize.selectors.mjs";
8
9
  export * from "./useChartCartesianTooltip.selectors.mjs";
9
10
  export { defaultizeXAxis, defaultizeYAxis } from "./defaultizeAxis.mjs";
@@ -1,4 +1,9 @@
1
- import { type BarItemIdentifier } from "../../../../models/index.mjs";
1
+ import type { ChartsRadialAxisProps, ChartsCartesianAxisProps, ComputedAxis } from "../../../../models/axis.mjs";
2
+ import type { ScaleName, BarItemIdentifier } from "../../../../models/index.mjs";
3
+ export declare function getBandIndex(bandAxis: ComputedAxis<ScaleName, any, ChartsCartesianAxisProps | ChartsRadialAxisProps>, stackConfig: {
4
+ groupNumber: number;
5
+ groupIndex: number;
6
+ }, coordinate: number): number;
2
7
  export declare const selectorBarItemAtPosition: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<{}> & {
3
8
  cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
4
9
  }, svgPoint: Pick<DOMPoint, "x" | "y">) => BarItemIdentifier | undefined;
@@ -1,4 +1,9 @@
1
- import { type BarItemIdentifier } from "../../../../models/index.js";
1
+ import type { ChartsRadialAxisProps, ChartsCartesianAxisProps, ComputedAxis } from "../../../../models/axis.js";
2
+ import type { ScaleName, BarItemIdentifier } from "../../../../models/index.js";
3
+ export declare function getBandIndex(bandAxis: ComputedAxis<ScaleName, any, ChartsCartesianAxisProps | ChartsRadialAxisProps>, stackConfig: {
4
+ groupNumber: number;
5
+ groupIndex: number;
6
+ }, coordinate: number): number;
2
7
  export declare const selectorBarItemAtPosition: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<{}> & {
3
8
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
4
9
  }, svgPoint: Pick<DOMPoint, "x" | "y">) => BarItemIdentifier | undefined;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.getBandIndex = getBandIndex;
6
7
  exports.selectorBarItemAtPosition = void 0;
7
8
  var _store = require("@mui/x-internals/store");
8
9
  var _useChartCartesianAxisRendering = require("./useChartCartesianAxisRendering.selectors");
@@ -10,6 +11,33 @@ var _useChartSeries = require("../../corePlugins/useChartSeries");
10
11
  var _getBandSize = require("../../../../internals/getBandSize");
11
12
  var _scaleGuards = require("../../../../internals/scaleGuards");
12
13
  var _invertScale = require("../../../../internals/invertScale");
14
+ function getBandIndex(bandAxis, stackConfig, coordinate) {
15
+ if (!(0, _scaleGuards.isBandScale)(bandAxis.scale)) {
16
+ return -1;
17
+ }
18
+ const dataIndex = (0, _invertScale.getDataIndexForOrdinalScaleValue)(bandAxis.scale, coordinate);
19
+ const {
20
+ barWidth,
21
+ offset
22
+ } = (0, _getBandSize.getBandSize)(bandAxis.scale.bandwidth(), stackConfig.groupNumber, bandAxis.barGapRatio);
23
+ const barOffset = stackConfig.groupIndex * (barWidth + offset);
24
+ const bandValue = bandAxis.data?.[dataIndex];
25
+ if (bandValue == null) {
26
+ return -1;
27
+ }
28
+ const bandStart = bandAxis.scale(bandValue);
29
+ if (bandStart == null) {
30
+ return -1;
31
+ }
32
+ const bandBarStart = bandStart + barOffset;
33
+ const bandBarEnd = bandBarStart + barWidth;
34
+ const bandBarMin = Math.min(bandBarStart, bandBarEnd);
35
+ const bandBarMax = Math.max(bandBarStart, bandBarEnd);
36
+ if (coordinate >= bandBarMin && coordinate <= bandBarMax) {
37
+ return dataIndex;
38
+ }
39
+ return -1;
40
+ }
13
41
  const selectorBarItemAtPosition = exports.selectorBarItemAtPosition = (0, _store.createSelector)(_useChartCartesianAxisRendering.selectorChartXAxis, _useChartCartesianAxisRendering.selectorChartYAxis, _useChartSeries.selectorChartSeriesProcessed, function selectorBarItemAtPosition({
14
42
  axis: xAxes,
15
43
  axisIds: xAxisIds
@@ -35,46 +63,30 @@ const selectorBarItemAtPosition = exports.selectorBarItemAtPosition = (0, _store
35
63
  const yAxis = yAxes[yAxisId];
36
64
  const bandAxis = aSeries.layout === 'horizontal' ? yAxis : xAxis;
37
65
  const continuousAxis = aSeries.layout === 'horizontal' ? xAxis : yAxis;
38
- const bandScale = bandAxis.scale;
39
- const svgPointBandCoordinate = aSeries.layout === 'horizontal' ? svgPoint.y : svgPoint.x;
40
- if (!(0, _scaleGuards.isBandScale)(bandScale)) {
41
- continue;
42
- }
43
- const dataIndex = (0, _invertScale.getDataIndexForOrdinalScaleValue)(bandScale, svgPointBandCoordinate);
44
- const {
45
- barWidth,
46
- offset
47
- } = (0, _getBandSize.getBandSize)(bandScale.bandwidth(), stackingGroups.length, bandAxis.barGapRatio);
48
- const barOffset = stackIndex * (barWidth + offset);
49
- const bandValue = bandAxis.data?.[dataIndex];
50
- if (bandValue == null) {
66
+ const svgBandCoordinate = aSeries.layout === 'horizontal' ? svgPoint.y : svgPoint.x;
67
+ const svgValueCoordinate = aSeries.layout === 'horizontal' ? svgPoint.x : svgPoint.y;
68
+ const dataIndex = getBandIndex(bandAxis, {
69
+ groupNumber: stackingGroups.length,
70
+ groupIndex: stackIndex
71
+ }, svgBandCoordinate);
72
+ if (dataIndex === -1) {
51
73
  continue;
52
74
  }
53
- const bandStart = bandScale(bandValue);
54
- if (bandStart == null) {
75
+
76
+ // The point is inside the band for this series
77
+ const bar = aSeries.visibleStackedData[dataIndex];
78
+ const start = continuousAxis.scale(bar[0]);
79
+ const end = continuousAxis.scale(bar[1]);
80
+ if (start == null || end == null) {
55
81
  continue;
56
82
  }
57
- const bandBarStart = bandStart + barOffset;
58
- const bandBarEnd = bandBarStart + barWidth;
59
- const bandBarMin = Math.min(bandBarStart, bandBarEnd);
60
- const bandBarMax = Math.max(bandBarStart, bandBarEnd);
61
- if (svgPointBandCoordinate >= bandBarMin && svgPointBandCoordinate <= bandBarMax) {
62
- // The point is inside the band for this series
63
- const svgPointContinuousCoordinate = aSeries.layout === 'horizontal' ? svgPoint.x : svgPoint.y;
64
- const bar = aSeries.visibleStackedData[dataIndex];
65
- const start = continuousAxis.scale(bar[0]);
66
- const end = continuousAxis.scale(bar[1]);
67
- if (start == null || end == null) {
68
- continue;
69
- }
70
- const continuousMin = Math.min(start, end);
71
- const continuousMax = Math.max(start, end);
72
- if (svgPointContinuousCoordinate >= continuousMin && svgPointContinuousCoordinate <= continuousMax) {
73
- item = {
74
- seriesId,
75
- dataIndex
76
- };
77
- }
83
+ const continuousMin = Math.min(start, end);
84
+ const continuousMax = Math.max(start, end);
85
+ if (svgValueCoordinate >= continuousMin && svgValueCoordinate <= continuousMax) {
86
+ item = {
87
+ seriesId,
88
+ dataIndex
89
+ };
78
90
  }
79
91
  }
80
92
  }
@@ -4,6 +4,33 @@ import { selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/i
4
4
  import { getBandSize } from "../../../getBandSize.mjs";
5
5
  import { isBandScale } from "../../../scaleGuards.mjs";
6
6
  import { getDataIndexForOrdinalScaleValue } from "../../../invertScale.mjs";
7
+ export function getBandIndex(bandAxis, stackConfig, coordinate) {
8
+ if (!isBandScale(bandAxis.scale)) {
9
+ return -1;
10
+ }
11
+ const dataIndex = getDataIndexForOrdinalScaleValue(bandAxis.scale, coordinate);
12
+ const {
13
+ barWidth,
14
+ offset
15
+ } = getBandSize(bandAxis.scale.bandwidth(), stackConfig.groupNumber, bandAxis.barGapRatio);
16
+ const barOffset = stackConfig.groupIndex * (barWidth + offset);
17
+ const bandValue = bandAxis.data?.[dataIndex];
18
+ if (bandValue == null) {
19
+ return -1;
20
+ }
21
+ const bandStart = bandAxis.scale(bandValue);
22
+ if (bandStart == null) {
23
+ return -1;
24
+ }
25
+ const bandBarStart = bandStart + barOffset;
26
+ const bandBarEnd = bandBarStart + barWidth;
27
+ const bandBarMin = Math.min(bandBarStart, bandBarEnd);
28
+ const bandBarMax = Math.max(bandBarStart, bandBarEnd);
29
+ if (coordinate >= bandBarMin && coordinate <= bandBarMax) {
30
+ return dataIndex;
31
+ }
32
+ return -1;
33
+ }
7
34
  export const selectorBarItemAtPosition = createSelector(selectorChartXAxis, selectorChartYAxis, selectorChartSeriesProcessed, function selectorBarItemAtPosition({
8
35
  axis: xAxes,
9
36
  axisIds: xAxisIds
@@ -29,46 +56,30 @@ export const selectorBarItemAtPosition = createSelector(selectorChartXAxis, sele
29
56
  const yAxis = yAxes[yAxisId];
30
57
  const bandAxis = aSeries.layout === 'horizontal' ? yAxis : xAxis;
31
58
  const continuousAxis = aSeries.layout === 'horizontal' ? xAxis : yAxis;
32
- const bandScale = bandAxis.scale;
33
- const svgPointBandCoordinate = aSeries.layout === 'horizontal' ? svgPoint.y : svgPoint.x;
34
- if (!isBandScale(bandScale)) {
35
- continue;
36
- }
37
- const dataIndex = getDataIndexForOrdinalScaleValue(bandScale, svgPointBandCoordinate);
38
- const {
39
- barWidth,
40
- offset
41
- } = getBandSize(bandScale.bandwidth(), stackingGroups.length, bandAxis.barGapRatio);
42
- const barOffset = stackIndex * (barWidth + offset);
43
- const bandValue = bandAxis.data?.[dataIndex];
44
- if (bandValue == null) {
59
+ const svgBandCoordinate = aSeries.layout === 'horizontal' ? svgPoint.y : svgPoint.x;
60
+ const svgValueCoordinate = aSeries.layout === 'horizontal' ? svgPoint.x : svgPoint.y;
61
+ const dataIndex = getBandIndex(bandAxis, {
62
+ groupNumber: stackingGroups.length,
63
+ groupIndex: stackIndex
64
+ }, svgBandCoordinate);
65
+ if (dataIndex === -1) {
45
66
  continue;
46
67
  }
47
- const bandStart = bandScale(bandValue);
48
- if (bandStart == null) {
68
+
69
+ // The point is inside the band for this series
70
+ const bar = aSeries.visibleStackedData[dataIndex];
71
+ const start = continuousAxis.scale(bar[0]);
72
+ const end = continuousAxis.scale(bar[1]);
73
+ if (start == null || end == null) {
49
74
  continue;
50
75
  }
51
- const bandBarStart = bandStart + barOffset;
52
- const bandBarEnd = bandBarStart + barWidth;
53
- const bandBarMin = Math.min(bandBarStart, bandBarEnd);
54
- const bandBarMax = Math.max(bandBarStart, bandBarEnd);
55
- if (svgPointBandCoordinate >= bandBarMin && svgPointBandCoordinate <= bandBarMax) {
56
- // The point is inside the band for this series
57
- const svgPointContinuousCoordinate = aSeries.layout === 'horizontal' ? svgPoint.x : svgPoint.y;
58
- const bar = aSeries.visibleStackedData[dataIndex];
59
- const start = continuousAxis.scale(bar[0]);
60
- const end = continuousAxis.scale(bar[1]);
61
- if (start == null || end == null) {
62
- continue;
63
- }
64
- const continuousMin = Math.min(start, end);
65
- const continuousMax = Math.max(start, end);
66
- if (svgPointContinuousCoordinate >= continuousMin && svgPointContinuousCoordinate <= continuousMax) {
67
- item = {
68
- seriesId,
69
- dataIndex
70
- };
71
- }
76
+ const continuousMin = Math.min(start, end);
77
+ const continuousMax = Math.max(start, end);
78
+ if (svgValueCoordinate >= continuousMin && svgValueCoordinate <= continuousMax) {
79
+ item = {
80
+ seriesId,
81
+ dataIndex
82
+ };
72
83
  }
73
84
  }
74
85
  }
@@ -74,7 +74,80 @@ export declare const selectorChartYAxis: (args_0: import("../../corePlugins/useC
74
74
  }) => import("./computeAxisValue.mjs").ComputeResult<import("../../../index.mjs").ChartsYAxisProps>;
75
75
  export declare const selectorChartAxis: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<{}> & {
76
76
  cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
77
- }, axisId: AxisId) => import("../../../index.mjs").ComputedAxis<keyof import("../../../index.mjs").AxisScaleConfig, any, import("../../../index.mjs").ChartsXAxisProps>;
77
+ }, axisId: AxisId) => (Omit<Omit<DefaultedAxis<keyof import("../../../index.mjs").AxisScaleConfig, any, import("../../../index.mjs").ChartsXAxisProps>, "scaleType">, "offset"> & Required<Pick<Omit<DefaultedAxis<keyof import("../../../index.mjs").AxisScaleConfig, any, import("../../../index.mjs").ChartsXAxisProps>, "scaleType">, "offset">> & (({
78
+ scaleType: "linear";
79
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleLinear<number, number>;
80
+ colorMap?: import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
81
+ } | {
82
+ scaleType: "time";
83
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleTime<number, number>;
84
+ colorMap?: import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
85
+ } | {
86
+ scaleType: "log";
87
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleLogarithmic<number, number>;
88
+ colorMap?: import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
89
+ } | ({
90
+ scaleType: "band";
91
+ ordinalTimeTicks?: import("../../../../index.mjs").OrdinalTimeTicks;
92
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleBand<{
93
+ toString(): string;
94
+ }>;
95
+ categoryGapRatio: number;
96
+ barGapRatio: number;
97
+ colorMap?: import("../../../../models/colorMapping.mjs").OrdinalColorConfig | import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
98
+ } & import("../../../index.mjs").AxisGroups & Pick<import("../../../../hooks/useTicks.mjs").TickParams, "tickPlacement" | "tickLabelPlacement">) | ({
99
+ scaleType: "point";
100
+ ordinalTimeTicks?: import("../../../../index.mjs").OrdinalTimeTicks;
101
+ scale: import("@mui/x-charts-vendor/d3-scale").ScalePoint<{
102
+ toString(): string;
103
+ }>;
104
+ colorMap?: import("../../../../models/colorMapping.mjs").OrdinalColorConfig | import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
105
+ } & import("../../../index.mjs").AxisGroups) | {
106
+ scaleType: "symlog";
107
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleSymLog<number, number>;
108
+ colorMap?: import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
109
+ constant?: number;
110
+ } | {
111
+ scaleType: "pow";
112
+ scale: import("@mui/x-charts-vendor/d3-scale").ScalePower<number, number>;
113
+ colorMap?: import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
114
+ } | {
115
+ scaleType: "sqrt";
116
+ scale: import("@mui/x-charts-vendor/d3-scale").ScalePower<number, number>;
117
+ colorMap?: import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
118
+ } | {
119
+ scaleType: "utc";
120
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleTime<number, number>;
121
+ colorMap?: import("../../../../models/colorMapping.mjs").ContinuousColorConfig | import("../../../../models/colorMapping.mjs").PiecewiseColorConfig;
122
+ }) & ({
123
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
124
+ } | {
125
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number | Date, string | null>;
126
+ } | {
127
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
128
+ } | {
129
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleOrdinal<string | number | Date, string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleOrdinal<number, string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number | Date, string | null>;
130
+ } | {
131
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleOrdinal<string | number | Date, string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleOrdinal<number, string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number | Date, string | null>;
132
+ } | {
133
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
134
+ } | {
135
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
136
+ } | {
137
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
138
+ } | {
139
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number | Date, string | null>;
140
+ }))) & {
141
+ tickNumber: number;
142
+ triggerTooltip?: boolean;
143
+ isFullCircle?: boolean;
144
+ } & import("../../../index.mjs").ChartsXAxisProps & {
145
+ position?: "none" | "bottom" | "top" | undefined;
146
+ height?: number | "auto" | undefined;
147
+ width?: undefined;
148
+ } & {
149
+ height: number;
150
+ };
78
151
  export declare const selectorChartRawAxis: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.mjs").UseChartCartesianAxisState> & {
79
152
  cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
80
153
  }, axisId: AxisId) => DefaultedAxis<"linear", any, import("../../../index.mjs").ChartsXAxisProps> | DefaultedAxis<"time", any, import("../../../index.mjs").ChartsXAxisProps> | DefaultedAxis<"log", any, import("../../../index.mjs").ChartsXAxisProps> | DefaultedAxis<"band", any, import("../../../index.mjs").ChartsXAxisProps> | DefaultedAxis<"point", any, import("../../../index.mjs").ChartsXAxisProps> | DefaultedAxis<"symlog", any, import("../../../index.mjs").ChartsXAxisProps> | DefaultedAxis<"pow", any, import("../../../index.mjs").ChartsXAxisProps> | DefaultedAxis<"sqrt", any, import("../../../index.mjs").ChartsXAxisProps> | DefaultedAxis<"utc", any, import("../../../index.mjs").ChartsXAxisProps> | ({
@@ -74,7 +74,80 @@ export declare const selectorChartYAxis: (args_0: import("../../corePlugins/useC
74
74
  }) => import("./computeAxisValue.js").ComputeResult<import("../../../index.js").ChartsYAxisProps>;
75
75
  export declare const selectorChartAxis: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<{}> & {
76
76
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
77
- }, axisId: AxisId) => import("../../../index.js").ComputedAxis<keyof import("../../../index.js").AxisScaleConfig, any, import("../../../index.js").ChartsXAxisProps>;
77
+ }, axisId: AxisId) => (Omit<Omit<DefaultedAxis<keyof import("../../../index.js").AxisScaleConfig, any, import("../../../index.js").ChartsXAxisProps>, "scaleType">, "offset"> & Required<Pick<Omit<DefaultedAxis<keyof import("../../../index.js").AxisScaleConfig, any, import("../../../index.js").ChartsXAxisProps>, "scaleType">, "offset">> & (({
78
+ scaleType: "linear";
79
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleLinear<number, number>;
80
+ colorMap?: import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
81
+ } | {
82
+ scaleType: "time";
83
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleTime<number, number>;
84
+ colorMap?: import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
85
+ } | {
86
+ scaleType: "log";
87
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleLogarithmic<number, number>;
88
+ colorMap?: import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
89
+ } | ({
90
+ scaleType: "band";
91
+ ordinalTimeTicks?: import("../../../../index.js").OrdinalTimeTicks;
92
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleBand<{
93
+ toString(): string;
94
+ }>;
95
+ categoryGapRatio: number;
96
+ barGapRatio: number;
97
+ colorMap?: import("../../../../models/colorMapping.js").OrdinalColorConfig | import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
98
+ } & import("../../../index.js").AxisGroups & Pick<import("../../../../hooks/useTicks.js").TickParams, "tickPlacement" | "tickLabelPlacement">) | ({
99
+ scaleType: "point";
100
+ ordinalTimeTicks?: import("../../../../index.js").OrdinalTimeTicks;
101
+ scale: import("@mui/x-charts-vendor/d3-scale").ScalePoint<{
102
+ toString(): string;
103
+ }>;
104
+ colorMap?: import("../../../../models/colorMapping.js").OrdinalColorConfig | import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
105
+ } & import("../../../index.js").AxisGroups) | {
106
+ scaleType: "symlog";
107
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleSymLog<number, number>;
108
+ colorMap?: import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
109
+ constant?: number;
110
+ } | {
111
+ scaleType: "pow";
112
+ scale: import("@mui/x-charts-vendor/d3-scale").ScalePower<number, number>;
113
+ colorMap?: import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
114
+ } | {
115
+ scaleType: "sqrt";
116
+ scale: import("@mui/x-charts-vendor/d3-scale").ScalePower<number, number>;
117
+ colorMap?: import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
118
+ } | {
119
+ scaleType: "utc";
120
+ scale: import("@mui/x-charts-vendor/d3-scale").ScaleTime<number, number>;
121
+ colorMap?: import("../../../../models/colorMapping.js").ContinuousColorConfig | import("../../../../models/colorMapping.js").PiecewiseColorConfig;
122
+ }) & ({
123
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
124
+ } | {
125
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number | Date, string | null>;
126
+ } | {
127
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
128
+ } | {
129
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleOrdinal<string | number | Date, string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleOrdinal<number, string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number | Date, string | null>;
130
+ } | {
131
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleOrdinal<string | number | Date, string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleOrdinal<number, string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number | Date, string | null>;
132
+ } | {
133
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
134
+ } | {
135
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
136
+ } | {
137
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number, string | null>;
138
+ } | {
139
+ colorScale?: import("@mui/x-charts-vendor/d3-scale").ScaleSequential<string, string | null> | import("@mui/x-charts-vendor/d3-scale").ScaleThreshold<number | Date, string | null>;
140
+ }))) & {
141
+ tickNumber: number;
142
+ triggerTooltip?: boolean;
143
+ isFullCircle?: boolean;
144
+ } & import("../../../index.js").ChartsXAxisProps & {
145
+ position?: "none" | "bottom" | "top" | undefined;
146
+ height?: number | "auto" | undefined;
147
+ width?: undefined;
148
+ } & {
149
+ height: number;
150
+ };
78
151
  export declare const selectorChartRawAxis: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
79
152
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
80
153
  }, axisId: AxisId) => DefaultedAxis<"linear", any, import("../../../index.js").ChartsXAxisProps> | DefaultedAxis<"time", any, import("../../../index.js").ChartsXAxisProps> | DefaultedAxis<"log", any, import("../../../index.js").ChartsXAxisProps> | DefaultedAxis<"band", any, import("../../../index.js").ChartsXAxisProps> | DefaultedAxis<"point", any, import("../../../index.js").ChartsXAxisProps> | DefaultedAxis<"symlog", any, import("../../../index.js").ChartsXAxisProps> | DefaultedAxis<"pow", any, import("../../../index.js").ChartsXAxisProps> | DefaultedAxis<"sqrt", any, import("../../../index.js").ChartsXAxisProps> | DefaultedAxis<"utc", any, import("../../../index.js").ChartsXAxisProps> | ({