@mui/x-charts 8.0.0-beta.0 → 8.0.0-beta.2

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 (138) hide show
  1. package/BarChart/seriesConfig/extremums.js +2 -2
  2. package/BarChart/useBarChartProps.d.ts +2 -1
  3. package/BarChart/useBarChartProps.js +20 -13
  4. package/CHANGELOG.md +171 -0
  5. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +8 -8
  6. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +8 -8
  7. package/ChartsOverlay/ChartsLoadingOverlay.js +1 -1
  8. package/ChartsOverlay/ChartsNoDataOverlay.js +1 -1
  9. package/ChartsTooltip/ChartsTooltipContainer.js +2 -1
  10. package/ChartsTooltip/useAxisTooltip.js +2 -2
  11. package/LineChart/CircleMarkElement.js +2 -2
  12. package/LineChart/LineHighlightPlot.js +2 -2
  13. package/LineChart/MarkElement.js +2 -2
  14. package/LineChart/useLineChartProps.d.ts +2 -1
  15. package/LineChart/useLineChartProps.js +7 -4
  16. package/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +9 -5
  17. package/RadarChart/RadarGrid/RadarGrid.d.ts +1 -1
  18. package/RadarChart/RadarGrid/RadarGrid.js +5 -1
  19. package/RadarChart/RadarGrid/useRadarGridData.d.ts +1 -1
  20. package/RadarChart/RadarGrid/useRadarGridData.js +3 -0
  21. package/RadarChart/RadarSeriesPlot/useRadarSeriesData.js +2 -2
  22. package/ScatterChart/useScatterChartProps.d.ts +2 -1
  23. package/ScatterChart/useScatterChartProps.js +6 -3
  24. package/esm/BarChart/seriesConfig/extremums.js +2 -2
  25. package/esm/BarChart/useBarChartProps.d.ts +2 -1
  26. package/esm/BarChart/useBarChartProps.js +19 -13
  27. package/esm/ChartsAxisHighlight/ChartsXAxisHighlight.js +8 -8
  28. package/esm/ChartsAxisHighlight/ChartsYAxisHighlight.js +8 -8
  29. package/esm/ChartsOverlay/ChartsLoadingOverlay.js +1 -1
  30. package/esm/ChartsOverlay/ChartsNoDataOverlay.js +1 -1
  31. package/esm/ChartsTooltip/ChartsTooltipContainer.js +2 -1
  32. package/esm/ChartsTooltip/useAxisTooltip.js +1 -1
  33. package/esm/LineChart/CircleMarkElement.js +1 -1
  34. package/esm/LineChart/LineHighlightPlot.js +1 -1
  35. package/esm/LineChart/MarkElement.js +1 -1
  36. package/esm/LineChart/useLineChartProps.d.ts +2 -1
  37. package/esm/LineChart/useLineChartProps.js +6 -4
  38. package/esm/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +9 -5
  39. package/esm/RadarChart/RadarGrid/RadarGrid.d.ts +1 -1
  40. package/esm/RadarChart/RadarGrid/RadarGrid.js +5 -1
  41. package/esm/RadarChart/RadarGrid/useRadarGridData.d.ts +1 -1
  42. package/esm/RadarChart/RadarGrid/useRadarGridData.js +3 -0
  43. package/esm/RadarChart/RadarSeriesPlot/useRadarSeriesData.js +2 -2
  44. package/esm/ScatterChart/useScatterChartProps.d.ts +2 -1
  45. package/esm/ScatterChart/useScatterChartProps.js +5 -3
  46. package/esm/hooks/useAxis.d.ts +5 -5
  47. package/esm/hooks/useInteractionItemProps.js +1 -1
  48. package/esm/hooks/useScale.d.ts +2 -2
  49. package/esm/hooks/useScale.js +2 -2
  50. package/esm/index.js +1 -1
  51. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.d.ts +8 -6
  52. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +28 -22
  53. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -0
  54. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +1 -0
  55. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +10 -43
  56. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +1 -0
  57. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +41 -0
  58. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +7 -20
  59. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +36 -242
  60. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +4 -10
  61. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.d.ts +9 -15
  62. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.ts +12 -0
  63. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.js +8 -0
  64. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.d.ts +6 -4
  65. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.js +18 -13
  66. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +17 -33
  67. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +3669 -0
  68. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +22 -0
  69. package/hooks/useAxis.d.ts +5 -5
  70. package/hooks/useInteractionItemProps.js +1 -1
  71. package/hooks/useScale.d.ts +2 -2
  72. package/hooks/useScale.js +2 -2
  73. package/index.js +1 -1
  74. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.d.ts +8 -6
  75. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +29 -22
  76. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -0
  77. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +12 -0
  78. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +8 -41
  79. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +1 -0
  80. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +47 -0
  81. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +7 -20
  82. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +36 -242
  83. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +5 -11
  84. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.d.ts +9 -15
  85. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.ts +12 -0
  86. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.js +17 -0
  87. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.d.ts +6 -4
  88. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.js +19 -13
  89. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +17 -33
  90. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +3669 -0
  91. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +28 -0
  92. package/modern/BarChart/seriesConfig/extremums.js +2 -2
  93. package/modern/BarChart/useBarChartProps.d.ts +2 -1
  94. package/modern/BarChart/useBarChartProps.js +19 -13
  95. package/modern/ChartsAxisHighlight/ChartsXAxisHighlight.js +8 -8
  96. package/modern/ChartsAxisHighlight/ChartsYAxisHighlight.js +8 -8
  97. package/modern/ChartsOverlay/ChartsLoadingOverlay.js +1 -1
  98. package/modern/ChartsOverlay/ChartsNoDataOverlay.js +1 -1
  99. package/modern/ChartsTooltip/ChartsTooltipContainer.js +2 -1
  100. package/modern/ChartsTooltip/useAxisTooltip.js +1 -1
  101. package/modern/LineChart/CircleMarkElement.js +1 -1
  102. package/modern/LineChart/LineHighlightPlot.js +1 -1
  103. package/modern/LineChart/MarkElement.js +1 -1
  104. package/modern/LineChart/useLineChartProps.d.ts +2 -1
  105. package/modern/LineChart/useLineChartProps.js +6 -4
  106. package/modern/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +9 -5
  107. package/modern/RadarChart/RadarGrid/RadarGrid.d.ts +1 -1
  108. package/modern/RadarChart/RadarGrid/RadarGrid.js +5 -1
  109. package/modern/RadarChart/RadarGrid/useRadarGridData.d.ts +1 -1
  110. package/modern/RadarChart/RadarGrid/useRadarGridData.js +3 -0
  111. package/modern/RadarChart/RadarSeriesPlot/useRadarSeriesData.js +2 -2
  112. package/modern/ScatterChart/useScatterChartProps.d.ts +2 -1
  113. package/modern/ScatterChart/useScatterChartProps.js +5 -3
  114. package/modern/hooks/useAxis.d.ts +5 -5
  115. package/modern/hooks/useInteractionItemProps.js +1 -1
  116. package/modern/hooks/useScale.d.ts +2 -2
  117. package/modern/hooks/useScale.js +2 -2
  118. package/modern/index.js +1 -1
  119. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.d.ts +8 -6
  120. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +28 -22
  121. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -0
  122. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +1 -0
  123. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +10 -43
  124. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +1 -0
  125. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +41 -0
  126. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +7 -20
  127. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +36 -242
  128. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +4 -10
  129. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.d.ts +9 -15
  130. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.ts +12 -0
  131. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.js +8 -0
  132. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.d.ts +6 -4
  133. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.js +18 -13
  134. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +17 -33
  135. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +3669 -0
  136. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +22 -0
  137. package/package.json +3 -3
  138. package/tsconfig.build.tsbuildinfo +1 -1
@@ -9,9 +9,9 @@ import { selectorChartDrawingArea } from "../../corePlugins/useChartDimensions/u
9
9
  import { selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/useChartSeries.selectors.js";
10
10
  import { defaultizeXAxis, defaultizeYAxis } from "./defaultizeAxis.js";
11
11
  import { selectorChartXAxis, selectorChartYAxis } from "./useChartCartesianAxisRendering.selectors.js";
12
- import { getAxisValue } from "./getAxisValue.js";
12
+ import { getAxisIndex } from "./getAxisValue.js";
13
13
  import { getSVGPoint } from "../../../getSVGPoint.js";
14
- import { selectorChartsInteractionAxis, selectorChartsInteractionIsInitialized } from "../useChartInteraction/index.js";
14
+ import { selectorChartsInteractionIsInitialized } from "../useChartInteraction/index.js";
15
15
  export const useChartCartesianAxis = ({
16
16
  params,
17
17
  store,
@@ -33,7 +33,6 @@ export const useChartCartesianAxis = ({
33
33
  }
34
34
  const drawingArea = useSelector(store, selectorChartDrawingArea);
35
35
  const processedSeries = useSelector(store, selectorChartSeriesProcessed);
36
- const interactionAxis = useSelector(store, selectorChartsInteractionAxis);
37
36
  const isInteractionEnabled = useSelector(store, selectorChartsInteractionIsInitialized);
38
37
  const {
39
38
  axis: xAxisWithScale,
@@ -75,58 +74,31 @@ export const useChartCartesianAxis = ({
75
74
  if (!instance.isPointInside(svgPoint, {
76
75
  targetElement: event.target
77
76
  })) {
78
- store.update(prev => _extends({}, prev, {
79
- interaction: {
80
- item: null,
81
- axis: {
82
- x: null,
83
- y: null
84
- }
85
- }
86
- }));
77
+ instance.cleanInteraction?.();
87
78
  return;
88
79
  }
89
- instance.setAxisInteraction?.({
90
- x: getAxisValue(xAxisWithScale[usedXAxis], svgPoint.x),
91
- y: getAxisValue(yAxisWithScale[usedYAxis], svgPoint.y)
92
- });
80
+ instance.setPointerCoordinate?.(svgPoint);
93
81
  };
94
82
  const handleDown = event => {
95
83
  const target = event.currentTarget;
96
84
  if (!target) {
97
85
  return;
98
86
  }
99
- if (target.hasPointerCapture(event.pointerId)) {
87
+ if ('hasPointerCapture' in target && target.hasPointerCapture(event.pointerId)) {
100
88
  target.releasePointerCapture(event.pointerId);
101
89
  }
102
90
  };
103
91
  element.addEventListener('pointerdown', handleDown);
104
92
  element.addEventListener('pointermove', handleMove);
105
- element.addEventListener('pointerout', handleOut);
106
93
  element.addEventListener('pointercancel', handleOut);
107
94
  element.addEventListener('pointerleave', handleOut);
108
95
  return () => {
109
96
  element.removeEventListener('pointerdown', handleDown);
110
97
  element.removeEventListener('pointermove', handleMove);
111
- element.removeEventListener('pointerout', handleOut);
112
98
  element.removeEventListener('pointercancel', handleOut);
113
99
  element.removeEventListener('pointerleave', handleOut);
114
100
  };
115
101
  }, [svgRef, store, xAxisWithScale, usedXAxis, yAxisWithScale, usedYAxis, instance, params.disableAxisListener, isInteractionEnabled]);
116
- const axisInteractionRef = React.useRef({
117
- x: null,
118
- y: null
119
- });
120
-
121
- // This avoids re-attaching the event listener on mouse move.
122
- React.useEffect(() => {
123
- const {
124
- x,
125
- y
126
- } = interactionAxis;
127
- axisInteractionRef.current.x = x;
128
- axisInteractionRef.current.y = y;
129
- }, [interactionAxis]);
130
102
  React.useEffect(() => {
131
103
  const element = svgRef.current;
132
104
  const onAxisClick = params.onAxisClick;
@@ -137,15 +109,10 @@ export const useChartCartesianAxis = ({
137
109
  event.preventDefault();
138
110
  let dataIndex = null;
139
111
  let isXAxis = false;
140
- if (axisInteractionRef.current.x === null && axisInteractionRef.current.y === null) {
141
- const svgPoint = getSVGPoint(element, event);
142
- const xIndex = getAxisValue(xAxisWithScale[usedXAxis], svgPoint.x)?.index ?? null;
143
- isXAxis = xIndex !== null && xIndex !== -1;
144
- dataIndex = isXAxis ? xIndex : getAxisValue(yAxisWithScale[usedYAxis], svgPoint.y)?.index ?? null;
145
- } else {
146
- isXAxis = axisInteractionRef.current.x !== null && axisInteractionRef.current.x.index !== -1;
147
- dataIndex = isXAxis ? axisInteractionRef.current.x && axisInteractionRef.current.x.index : axisInteractionRef.current.y && axisInteractionRef.current.y.index;
148
- }
112
+ const svgPoint = getSVGPoint(element, event);
113
+ const xIndex = getAxisIndex(xAxisWithScale[usedXAxis], svgPoint.x);
114
+ isXAxis = xIndex !== -1;
115
+ dataIndex = isXAxis ? xIndex : getAxisIndex(yAxisWithScale[usedYAxis], svgPoint.y);
149
116
  const USED_AXIS_ID = isXAxis ? xAxisIds[0] : yAxisIds[0];
150
117
  if (dataIndex == null || dataIndex === -1) {
151
118
  return;
@@ -175,7 +142,7 @@ export const useChartCartesianAxis = ({
175
142
  return () => {
176
143
  element.removeEventListener('click', handleMouseClick);
177
144
  };
178
- }, [params.onAxisClick, processedSeries, svgRef, xAxisWithScale, xAxisIds, yAxisWithScale, yAxisIds, axisInteractionRef, usedXAxis, usedYAxis]);
145
+ }, [params.onAxisClick, processedSeries, svgRef, xAxisWithScale, xAxisIds, yAxisWithScale, yAxisIds, usedXAxis, usedYAxis]);
179
146
  return {};
180
147
  };
181
148
  useChartCartesianAxis.params = {