@mui/x-charts 8.0.0-beta.1 → 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 (132) hide show
  1. package/BarChart/useBarChartProps.d.ts +2 -1
  2. package/BarChart/useBarChartProps.js +20 -13
  3. package/CHANGELOG.md +94 -0
  4. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +8 -8
  5. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +8 -8
  6. package/ChartsOverlay/ChartsLoadingOverlay.js +1 -1
  7. package/ChartsOverlay/ChartsNoDataOverlay.js +1 -1
  8. package/ChartsTooltip/ChartsTooltipContainer.js +2 -1
  9. package/ChartsTooltip/useAxisTooltip.js +2 -2
  10. package/LineChart/CircleMarkElement.js +2 -2
  11. package/LineChart/LineHighlightPlot.js +2 -2
  12. package/LineChart/MarkElement.js +2 -2
  13. package/LineChart/useLineChartProps.d.ts +2 -1
  14. package/LineChart/useLineChartProps.js +7 -4
  15. package/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +9 -5
  16. package/RadarChart/RadarGrid/RadarGrid.d.ts +1 -1
  17. package/RadarChart/RadarGrid/RadarGrid.js +5 -1
  18. package/RadarChart/RadarGrid/useRadarGridData.d.ts +1 -1
  19. package/RadarChart/RadarGrid/useRadarGridData.js +3 -0
  20. package/RadarChart/RadarSeriesPlot/useRadarSeriesData.js +2 -2
  21. package/ScatterChart/useScatterChartProps.d.ts +2 -1
  22. package/ScatterChart/useScatterChartProps.js +6 -3
  23. package/esm/BarChart/useBarChartProps.d.ts +2 -1
  24. package/esm/BarChart/useBarChartProps.js +19 -13
  25. package/esm/ChartsAxisHighlight/ChartsXAxisHighlight.js +8 -8
  26. package/esm/ChartsAxisHighlight/ChartsYAxisHighlight.js +8 -8
  27. package/esm/ChartsOverlay/ChartsLoadingOverlay.js +1 -1
  28. package/esm/ChartsOverlay/ChartsNoDataOverlay.js +1 -1
  29. package/esm/ChartsTooltip/ChartsTooltipContainer.js +2 -1
  30. package/esm/ChartsTooltip/useAxisTooltip.js +1 -1
  31. package/esm/LineChart/CircleMarkElement.js +1 -1
  32. package/esm/LineChart/LineHighlightPlot.js +1 -1
  33. package/esm/LineChart/MarkElement.js +1 -1
  34. package/esm/LineChart/useLineChartProps.d.ts +2 -1
  35. package/esm/LineChart/useLineChartProps.js +6 -4
  36. package/esm/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +9 -5
  37. package/esm/RadarChart/RadarGrid/RadarGrid.d.ts +1 -1
  38. package/esm/RadarChart/RadarGrid/RadarGrid.js +5 -1
  39. package/esm/RadarChart/RadarGrid/useRadarGridData.d.ts +1 -1
  40. package/esm/RadarChart/RadarGrid/useRadarGridData.js +3 -0
  41. package/esm/RadarChart/RadarSeriesPlot/useRadarSeriesData.js +2 -2
  42. package/esm/ScatterChart/useScatterChartProps.d.ts +2 -1
  43. package/esm/ScatterChart/useScatterChartProps.js +5 -3
  44. package/esm/hooks/useAxis.d.ts +5 -5
  45. package/esm/hooks/useScale.d.ts +2 -2
  46. package/esm/hooks/useScale.js +2 -2
  47. package/esm/index.js +1 -1
  48. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.d.ts +8 -6
  49. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +28 -22
  50. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -0
  51. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +1 -0
  52. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +9 -42
  53. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +1 -0
  54. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +41 -0
  55. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +7 -20
  56. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +36 -242
  57. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +4 -10
  58. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.d.ts +9 -15
  59. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.ts +12 -0
  60. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.js +8 -0
  61. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.d.ts +6 -4
  62. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.js +18 -13
  63. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +16 -32
  64. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +3669 -0
  65. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +22 -0
  66. package/hooks/useAxis.d.ts +5 -5
  67. package/hooks/useScale.d.ts +2 -2
  68. package/hooks/useScale.js +2 -2
  69. package/index.js +1 -1
  70. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.d.ts +8 -6
  71. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +29 -22
  72. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -0
  73. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +12 -0
  74. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +7 -40
  75. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +1 -0
  76. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +47 -0
  77. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +7 -20
  78. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +36 -242
  79. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +5 -11
  80. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.d.ts +9 -15
  81. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.ts +12 -0
  82. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.js +17 -0
  83. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.d.ts +6 -4
  84. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.js +19 -13
  85. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +16 -32
  86. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +3669 -0
  87. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +28 -0
  88. package/modern/BarChart/useBarChartProps.d.ts +2 -1
  89. package/modern/BarChart/useBarChartProps.js +19 -13
  90. package/modern/ChartsAxisHighlight/ChartsXAxisHighlight.js +8 -8
  91. package/modern/ChartsAxisHighlight/ChartsYAxisHighlight.js +8 -8
  92. package/modern/ChartsOverlay/ChartsLoadingOverlay.js +1 -1
  93. package/modern/ChartsOverlay/ChartsNoDataOverlay.js +1 -1
  94. package/modern/ChartsTooltip/ChartsTooltipContainer.js +2 -1
  95. package/modern/ChartsTooltip/useAxisTooltip.js +1 -1
  96. package/modern/LineChart/CircleMarkElement.js +1 -1
  97. package/modern/LineChart/LineHighlightPlot.js +1 -1
  98. package/modern/LineChart/MarkElement.js +1 -1
  99. package/modern/LineChart/useLineChartProps.d.ts +2 -1
  100. package/modern/LineChart/useLineChartProps.js +6 -4
  101. package/modern/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +9 -5
  102. package/modern/RadarChart/RadarGrid/RadarGrid.d.ts +1 -1
  103. package/modern/RadarChart/RadarGrid/RadarGrid.js +5 -1
  104. package/modern/RadarChart/RadarGrid/useRadarGridData.d.ts +1 -1
  105. package/modern/RadarChart/RadarGrid/useRadarGridData.js +3 -0
  106. package/modern/RadarChart/RadarSeriesPlot/useRadarSeriesData.js +2 -2
  107. package/modern/ScatterChart/useScatterChartProps.d.ts +2 -1
  108. package/modern/ScatterChart/useScatterChartProps.js +5 -3
  109. package/modern/hooks/useAxis.d.ts +5 -5
  110. package/modern/hooks/useScale.d.ts +2 -2
  111. package/modern/hooks/useScale.js +2 -2
  112. package/modern/index.js +1 -1
  113. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.d.ts +8 -6
  114. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +28 -22
  115. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -0
  116. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +1 -0
  117. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +9 -42
  118. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +1 -0
  119. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +41 -0
  120. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +7 -20
  121. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +36 -242
  122. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +4 -10
  123. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.d.ts +9 -15
  124. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.ts +12 -0
  125. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.js +8 -0
  126. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.d.ts +6 -4
  127. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/getAxisValue.js +18 -13
  128. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +16 -32
  129. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +3669 -0
  130. package/modern/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +22 -0
  131. package/package.json +2 -2
  132. package/tsconfig.build.tsbuildinfo +1 -1
@@ -3,14 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.getAxisIndex = getAxisIndex;
6
7
  exports.getAxisValue = getAxisValue;
7
8
  var _isBandScale = require("../../../isBandScale");
8
9
  var _clampAngle = require("../../../clampAngle");
9
10
  /**
10
11
  * For a pointer coordinate, this function returns the value and dataIndex associated.
11
- * Returns `null` if the coordinate is outside of values.
12
+ * Returns `-1` if the coordinate does not match a value.
12
13
  */
13
- function getAxisValue(axisConfig, pointerValue) {
14
+ function getAxisIndex(axisConfig, pointerValue) {
14
15
  const {
15
16
  scale,
16
17
  data: axisData,
@@ -19,20 +20,25 @@ function getAxisValue(axisConfig, pointerValue) {
19
20
  if (!(0, _isBandScale.isBandScale)(scale)) {
20
21
  throw new Error('MUI X: getAxisValue is not implemented for polare continuous axes.');
21
22
  }
23
+ if (!axisData) {
24
+ return -1;
25
+ }
22
26
  const angleGap = (0, _clampAngle.clampAngleRad)(pointerValue - Math.min(...scale.range()));
23
27
  const dataIndex = scale.bandwidth() === 0 ? Math.floor((angleGap + scale.step() / 2) / scale.step()) % axisData.length : Math.floor(angleGap / scale.step());
24
28
  if (dataIndex < 0 || dataIndex >= axisData.length) {
25
- return null;
29
+ return -1;
26
30
  }
27
- if (reverse) {
28
- const reverseIndex = axisData.length - 1 - dataIndex;
29
- return {
30
- index: reverseIndex,
31
- value: axisData[reverseIndex]
32
- };
31
+ return reverse ? axisData.length - 1 - dataIndex : dataIndex;
32
+ }
33
+
34
+ /**
35
+ * For a pointer coordinate, this function returns the value and dataIndex associated.
36
+ * Returns `null` if the coordinate is outside of values.
37
+ */
38
+ function getAxisValue(axisConfig, pointerValue) {
39
+ const dataIndex = getAxisIndex(axisConfig, pointerValue);
40
+ if (dataIndex < 0) {
41
+ return null;
33
42
  }
34
- return {
35
- index: dataIndex,
36
- value: axisData[dataIndex]
37
- };
43
+ return axisConfig.data?.[dataIndex];
38
44
  }
@@ -13,10 +13,10 @@ var _warning = require("@mui/x-internals/warning");
13
13
  var _useSelector = require("../../../store/useSelector");
14
14
  var _useChartDimensions = require("../../corePlugins/useChartDimensions/useChartDimensions.selectors");
15
15
  var _defaultizeAxis = require("./defaultizeAxis");
16
- var _getAxisValue = require("./getAxisValue");
17
16
  var _useChartInteraction = require("../useChartInteraction");
18
17
  var _useChartPolarAxis = require("./useChartPolarAxis.selectors");
19
18
  var _getSVGPoint = require("../../../getSVGPoint");
19
+ var _coordinateTransformation = require("./coordinateTransformation");
20
20
  const useChartPolarAxis = ({
21
21
  params,
22
22
  store,
@@ -63,14 +63,18 @@ const useChartPolarAxis = ({
63
63
  })
64
64
  }));
65
65
  }, [seriesConfig, drawingArea, rotationAxis, radiusAxis, dataset, store]);
66
- const svg2rotation = React.useCallback((x, y) => Math.atan2(x - center.cx, center.cy - y), [center.cx, center.cy]);
67
- const svg2polar = React.useCallback((x, y) => {
68
- const angle = Math.atan2(x - center.cx, center.cy - y);
69
- return [Math.sqrt((x - center.cx) ** 2 + (center.cy - y) ** 2), angle];
70
- }, [center.cx, center.cy]);
71
- const polar2svg = React.useCallback((radius, rotation) => {
72
- return [center.cx + radius * Math.sin(rotation), center.cy - radius * Math.cos(rotation)];
73
- }, [center.cx, center.cy]);
66
+ const svg2rotation = React.useMemo(() => (0, _coordinateTransformation.generateSvg2rotation)({
67
+ cx: center.cx,
68
+ cy: center.cy
69
+ }), [center.cx, center.cy]);
70
+ const svg2polar = React.useMemo(() => (0, _coordinateTransformation.generateSvg2polar)({
71
+ cx: center.cx,
72
+ cy: center.cy
73
+ }), [center.cx, center.cy]);
74
+ const polar2svg = React.useMemo(() => (0, _coordinateTransformation.generatePolar2svg)({
75
+ cx: center.cx,
76
+ cy: center.cy
77
+ }), [center.cx, center.cy]);
74
78
  const usedRotationAxisId = rotationAxisIds[0];
75
79
  const usedRadiusAxisId = radiusAxisIds[0];
76
80
 
@@ -104,15 +108,7 @@ const useChartPolarAxis = ({
104
108
  targetElement: event.target
105
109
  })) {
106
110
  if (mousePosition.current.isInChart) {
107
- store.update(prev => (0, _extends2.default)({}, prev, {
108
- interaction: {
109
- item: null,
110
- axis: {
111
- x: null,
112
- y: null
113
- }
114
- }
115
- }));
111
+ instance?.cleanInteraction();
116
112
  mousePosition.current.isInChart = false;
117
113
  }
118
114
  return;
@@ -123,25 +119,13 @@ const useChartPolarAxis = ({
123
119
  const maxRadius = radiusAxisWithScale[usedRadiusAxisId].scale.range()[1];
124
120
  if (radiusSquare > maxRadius ** 2) {
125
121
  if (mousePosition.current.isInChart) {
126
- store.update(prev => (0, _extends2.default)({}, prev, {
127
- interaction: {
128
- item: null,
129
- axis: {
130
- x: null,
131
- y: null
132
- }
133
- }
134
- }));
122
+ instance?.cleanInteraction();
135
123
  mousePosition.current.isInChart = false;
136
124
  }
137
125
  return;
138
126
  }
139
127
  mousePosition.current.isInChart = true;
140
- const angle = svg2rotation(svgPoint.x, svgPoint.y);
141
- instance.setAxisInteraction?.({
142
- x: (0, _getAxisValue.getAxisValue)(rotationAxisWithScale[usedRotationAxisId], angle),
143
- y: null
144
- });
128
+ instance.setPointerCoordinate?.(svgPoint);
145
129
  };
146
130
  const handleDown = event => {
147
131
  const target = event.currentTarget;