@mui/x-charts 9.0.4 → 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 (195) hide show
  1. package/BarChart/BarChart.d.mts +1 -2
  2. package/BarChart/BarChart.d.ts +1 -2
  3. package/BarChart/BarChart.js +2 -913
  4. package/BarChart/BarChart.mjs +2 -913
  5. package/BarChart/seriesConfig/bar/seriesProcessor.js +2 -0
  6. package/BarChart/seriesConfig/bar/seriesProcessor.mjs +2 -0
  7. package/CHANGELOG.md +236 -0
  8. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.d.mts +55 -0
  9. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.d.ts +55 -0
  10. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.js +94 -0
  11. package/ChartsAxisHighlightValue/ChartsAxisHighlightValue.mjs +88 -0
  12. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.d.mts +13 -0
  13. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.d.ts +13 -0
  14. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.js +86 -0
  15. package/ChartsAxisHighlightValue/ChartsAxisHighlightValueItem.mjs +80 -0
  16. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.d.mts +18 -0
  17. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.d.ts +18 -0
  18. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.js +26 -0
  19. package/ChartsAxisHighlightValue/chartsAxisHighlightValueClasses.mjs +16 -0
  20. package/ChartsAxisHighlightValue/index.d.mts +1 -0
  21. package/ChartsAxisHighlightValue/index.d.ts +1 -0
  22. package/ChartsAxisHighlightValue/index.js +16 -0
  23. package/ChartsAxisHighlightValue/index.mjs +1 -0
  24. package/ChartsAxisHighlightValue/useAxisHighlightValue.d.mts +14 -0
  25. package/ChartsAxisHighlightValue/useAxisHighlightValue.d.ts +14 -0
  26. package/ChartsAxisHighlightValue/useAxisHighlightValue.js +130 -0
  27. package/ChartsAxisHighlightValue/useAxisHighlightValue.mjs +124 -0
  28. package/ChartsContainer/ChartsContainer.js +4 -1431
  29. package/ChartsContainer/ChartsContainer.mjs +4 -1431
  30. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.d.mts +15 -0
  31. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.d.ts +15 -0
  32. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.js +56 -0
  33. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.mjs +50 -0
  34. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.d.mts +6 -0
  35. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.d.ts +6 -0
  36. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.js +5 -0
  37. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlight.types.mjs +1 -0
  38. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlightPath.d.mts +11 -0
  39. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlightPath.d.ts +11 -0
  40. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlightPath.js +70 -0
  41. package/ChartsRadialAxisHighlight/ChartsRadialAxisHighlightPath.mjs +64 -0
  42. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.d.mts +9 -0
  43. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.d.ts +9 -0
  44. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.js +104 -0
  45. package/ChartsRadialAxisHighlight/ChartsRadiusAxisHighlight.mjs +98 -0
  46. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.d.mts +9 -0
  47. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.d.ts +9 -0
  48. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.js +98 -0
  49. package/ChartsRadialAxisHighlight/ChartsRotationAxisHighlight.mjs +92 -0
  50. package/ChartsRadialAxisHighlight/chartsRadialAxisHighlightClasses.d.mts +7 -0
  51. package/ChartsRadialAxisHighlight/chartsRadialAxisHighlightClasses.d.ts +7 -0
  52. package/ChartsRadialAxisHighlight/chartsRadialAxisHighlightClasses.js +14 -0
  53. package/ChartsRadialAxisHighlight/chartsRadialAxisHighlightClasses.mjs +6 -0
  54. package/ChartsRadialAxisHighlight/index.d.mts +5 -0
  55. package/ChartsRadialAxisHighlight/index.d.ts +5 -0
  56. package/ChartsRadialAxisHighlight/index.js +47 -0
  57. package/ChartsRadialAxisHighlight/index.mjs +4 -0
  58. package/ChartsRadiusAxis/ChartsRadiusAxis.d.mts +1 -47
  59. package/ChartsRadiusAxis/ChartsRadiusAxis.d.ts +1 -47
  60. package/ChartsRadiusAxis/ChartsRadiusAxis.js +20 -16
  61. package/ChartsRadiusAxis/ChartsRadiusAxis.mjs +21 -15
  62. package/ChartsRadiusAxis/index.d.mts +3 -2
  63. package/ChartsRadiusAxis/index.d.ts +3 -2
  64. package/ChartsRadiusAxis/index.mjs +3 -1
  65. package/ChartsRotationAxis/ChartsRotationAxis.d.mts +1 -47
  66. package/ChartsRotationAxis/ChartsRotationAxis.d.ts +1 -47
  67. package/ChartsRotationAxis/ChartsRotationAxis.js +16 -19
  68. package/ChartsRotationAxis/ChartsRotationAxis.mjs +17 -18
  69. package/ChartsRotationAxis/index.d.mts +3 -2
  70. package/ChartsRotationAxis/index.d.ts +3 -2
  71. package/ChartsRotationAxis/index.mjs +3 -1
  72. package/ChartsTooltip/useAxesTooltip.d.mts +1 -1
  73. package/ChartsTooltip/useAxesTooltip.d.ts +1 -1
  74. package/ChartsTooltip/useAxesTooltip.js +11 -2
  75. package/ChartsTooltip/useAxesTooltip.mjs +12 -3
  76. package/ChartsXAxis/useAxisTicksProps.d.mts +162 -81
  77. package/ChartsXAxis/useAxisTicksProps.d.ts +162 -81
  78. package/ChartsYAxis/useAxisTicksProps.d.mts +162 -81
  79. package/ChartsYAxis/useAxisTicksProps.d.ts +162 -81
  80. package/LICENSE +2 -0
  81. package/LineChart/LineChart.js +2 -913
  82. package/LineChart/LineChart.mjs +2 -913
  83. package/LineChart/seriesConfig/curveEvaluation.d.mts +19 -1
  84. package/LineChart/seriesConfig/curveEvaluation.d.ts +19 -1
  85. package/LineChart/seriesConfig/curveEvaluation.js +132 -0
  86. package/LineChart/seriesConfig/curveEvaluation.mjs +131 -0
  87. package/LineChart/seriesConfig/getSeriesWithDefaultValues.js +2 -1
  88. package/LineChart/seriesConfig/getSeriesWithDefaultValues.mjs +2 -1
  89. package/LineChart/seriesConfig/seriesProcessor.js +4 -0
  90. package/LineChart/seriesConfig/seriesProcessor.mjs +4 -0
  91. package/LineChart/useAreaPlotData.js +4 -0
  92. package/LineChart/useAreaPlotData.mjs +4 -0
  93. package/LineChart/useLinePlotData.js +2 -0
  94. package/LineChart/useLinePlotData.mjs +2 -0
  95. package/LineChart/useMarkPlotData.js +2 -0
  96. package/LineChart/useMarkPlotData.mjs +2 -0
  97. package/RadarChart/RadarGrid/CircularRadarStripes.js +2 -3
  98. package/RadarChart/RadarGrid/CircularRadarStripes.mjs +2 -3
  99. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.js +1 -1
  100. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.mjs +2 -2
  101. package/ScatterChart/FocusedScatterMark.js +10 -24
  102. package/ScatterChart/FocusedScatterMark.mjs +10 -24
  103. package/ScatterChart/HighlightedScatterMark.d.mts +11 -0
  104. package/ScatterChart/HighlightedScatterMark.d.ts +11 -0
  105. package/ScatterChart/HighlightedScatterMark.js +68 -0
  106. package/ScatterChart/HighlightedScatterMark.mjs +62 -0
  107. package/ScatterChart/ScatterChart.d.mts +1 -2
  108. package/ScatterChart/ScatterChart.d.ts +1 -2
  109. package/ScatterChart/ScatterChart.js +2 -913
  110. package/ScatterChart/ScatterChart.mjs +2 -913
  111. package/ScatterChart/index.d.mts +1 -0
  112. package/ScatterChart/index.d.ts +1 -0
  113. package/ScatterChart/index.js +12 -0
  114. package/ScatterChart/index.mjs +1 -0
  115. package/ScatterChart/scatterClasses.d.mts +3 -1
  116. package/ScatterChart/scatterClasses.d.ts +3 -1
  117. package/ScatterChart/scatterClasses.js +3 -2
  118. package/ScatterChart/scatterClasses.mjs +3 -2
  119. package/ScatterChart/useScatterChartProps.js +3 -1
  120. package/ScatterChart/useScatterChartProps.mjs +3 -1
  121. package/ScatterChart/useScatterItemPosition.d.mts +16 -0
  122. package/ScatterChart/useScatterItemPosition.d.ts +16 -0
  123. package/ScatterChart/useScatterItemPosition.js +47 -0
  124. package/ScatterChart/useScatterItemPosition.mjs +41 -0
  125. package/SparkLineChart/SparkLineChart.js +2 -913
  126. package/SparkLineChart/SparkLineChart.mjs +2 -913
  127. package/hooks/useAxis.d.mts +3 -3
  128. package/hooks/useAxis.d.ts +3 -3
  129. package/hooks/useAxisSystem.d.mts +1 -1
  130. package/hooks/useAxisSystem.d.ts +1 -1
  131. package/hooks/useAxisSystem.js +1 -1
  132. package/hooks/useAxisSystem.mjs +1 -1
  133. package/index.d.mts +2 -0
  134. package/index.d.ts +2 -0
  135. package/index.js +25 -1
  136. package/index.mjs +3 -1
  137. package/internals/getRingPath.d.mts +16 -0
  138. package/internals/getRingPath.d.ts +16 -0
  139. package/internals/getRingPath.js +39 -0
  140. package/internals/getRingPath.mjs +33 -0
  141. package/internals/index.d.mts +8 -1
  142. package/internals/index.d.ts +8 -1
  143. package/internals/index.js +67 -0
  144. package/internals/index.mjs +7 -1
  145. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +4 -2
  146. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.mjs +4 -2
  147. package/internals/plugins/corePlugins/useChartSeriesConfig/types/polarExtremumGetter.types.d.mts +2 -2
  148. package/internals/plugins/corePlugins/useChartSeriesConfig/types/polarExtremumGetter.types.d.ts +2 -2
  149. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.d.mts +3 -3
  150. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.d.ts +3 -3
  151. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.mts +1 -0
  152. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +1 -0
  153. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +8 -0
  154. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.mjs +1 -0
  155. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.mts +6 -1
  156. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.ts +6 -1
  157. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.js +48 -36
  158. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.mjs +47 -36
  159. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.mts +77 -3
  160. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +77 -3
  161. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.mts +152 -2
  162. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianHighlight.selectors.d.ts +152 -2
  163. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.mts +2 -2
  164. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +2 -2
  165. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.mts +4 -7
  166. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.ts +4 -7
  167. package/internals/plugins/featurePlugins/useChartPolarAxis/defaultizeAxis.d.mts +3 -2
  168. package/internals/plugins/featurePlugins/useChartPolarAxis/defaultizeAxis.d.ts +3 -2
  169. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.mts +2 -2
  170. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisExtremum.d.ts +2 -2
  171. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.d.mts +7 -2
  172. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.d.ts +7 -2
  173. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.js +56 -6
  174. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.mjs +54 -5
  175. package/internals/plugins/featurePlugins/useChartPolarAxis/index.d.mts +2 -1
  176. package/internals/plugins/featurePlugins/useChartPolarAxis/index.d.ts +2 -1
  177. package/internals/plugins/featurePlugins/useChartPolarAxis/index.js +12 -0
  178. package/internals/plugins/featurePlugins/useChartPolarAxis/index.mjs +2 -1
  179. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +1 -1
  180. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.mjs +2 -2
  181. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.mts +4 -4
  182. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +4 -4
  183. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.types.d.mts +3 -3
  184. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.types.d.ts +3 -3
  185. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.mts +23 -3
  186. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +23 -3
  187. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js +73 -12
  188. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.mjs +74 -12
  189. package/models/axis.d.mts +79 -31
  190. package/models/axis.d.ts +79 -31
  191. package/models/axis.js +5 -1
  192. package/models/axis.mjs +5 -1
  193. package/models/seriesType/line.d.mts +6 -6
  194. package/models/seriesType/line.d.ts +6 -6
  195. package/package.json +32 -4
@@ -7,25 +7,74 @@ import { clampAngleRad } from "../../../clampAngle.mjs";
7
7
  * For a pointer coordinate, this function returns the value and dataIndex associated.
8
8
  * Returns `-1` if the coordinate does not match a value.
9
9
  */
10
- export function getAxisIndex(axisConfig, pointerValue) {
10
+ export function getRotationAxisIndex(axisConfig, pointerValue) {
11
11
  const {
12
12
  scale,
13
13
  data: axisData,
14
- reverse
14
+ reverse,
15
+ isFullCircle
15
16
  } = axisConfig;
17
+ const [startAngle, endAngle] = scale.range();
18
+ const angleGap = clampAngleRad(pointerValue - startAngle);
19
+ const maxAngleGap = clampAngleRad(endAngle - startAngle);
20
+ if (!isFullCircle && angleGap > maxAngleGap) {
21
+ // If not a full circle we only consider pointer inside the rotation range.
22
+ return -1;
23
+ }
16
24
  if (!isOrdinalScale(scale)) {
17
25
  if (axisData === undefined) {
18
26
  return -1;
19
27
  }
20
- const angle = scale.range()[0] + clampAngleRad(pointerValue - scale.range()[0]);
28
+ const angle = startAngle + clampAngleRad(pointerValue - startAngle);
21
29
  const valueAsNumber = getAsNumber(scale.invert(angle));
22
30
  return findClosestIndex(axisData, valueAsNumber);
23
31
  }
24
32
  if (!axisData) {
25
33
  return -1;
26
34
  }
27
- const angleGap = clampAngleRad(pointerValue - scale.range()[0]);
28
- const dataIndex = scale.bandwidth() === 0 ? Math.floor((angleGap + scale.step() / 2) / scale.step()) % axisData.length : Math.floor(angleGap / scale.step());
35
+ let dataIndex;
36
+ if (scale.bandwidth() === 0) {
37
+ dataIndex = Math.floor((angleGap + scale.step() / 2) / scale.step());
38
+ if (isFullCircle) {
39
+ // To show dataIndex 0 when we are before the startAngle
40
+ dataIndex = dataIndex % axisData.length;
41
+ }
42
+ } else {
43
+ dataIndex = Math.floor(angleGap / scale.step());
44
+ }
45
+ if (dataIndex < 0 || dataIndex >= axisData.length) {
46
+ return -1;
47
+ }
48
+ return reverse ? axisData.length - 1 - dataIndex : dataIndex;
49
+ }
50
+
51
+ /**
52
+ * For a pointer coordinate, this function returns the value and dataIndex associated.
53
+ * Returns `-1` if the coordinate does not match a value.
54
+ */
55
+ export function getRadiusAxisIndex(axisConfig, pointerValue) {
56
+ const {
57
+ scale,
58
+ data: axisData,
59
+ reverse
60
+ } = axisConfig;
61
+ if (!isOrdinalScale(scale)) {
62
+ if (axisData === undefined) {
63
+ return -1;
64
+ }
65
+ const valueAsNumber = getAsNumber(scale.invert(pointerValue));
66
+ return findClosestIndex(axisData, valueAsNumber);
67
+ }
68
+ if (!axisData) {
69
+ return -1;
70
+ }
71
+ let dataIndex;
72
+ const distFromStart = pointerValue - Math.min(...scale.range());
73
+ if (scale.bandwidth() === 0) {
74
+ dataIndex = Math.floor((distFromStart + scale.step() / 2) / scale.step());
75
+ } else {
76
+ dataIndex = Math.floor(distFromStart / scale.step());
77
+ }
29
78
  if (dataIndex < 0 || dataIndex >= axisData.length) {
30
79
  return -1;
31
80
  }
@@ -1,3 +1,4 @@
1
1
  export { useChartPolarAxis } from "./useChartPolarAxis.mjs";
2
2
  export type * from "./useChartPolarAxis.types.mjs";
3
- export * from "./useChartPolarAxis.selectors.mjs";
3
+ export * from "./useChartPolarAxis.selectors.mjs";
4
+ export * from "./useChartPolarInteraction.selectors.mjs";
@@ -1,3 +1,4 @@
1
1
  export { useChartPolarAxis } from "./useChartPolarAxis.js";
2
2
  export type * from "./useChartPolarAxis.types.js";
3
- export * from "./useChartPolarAxis.selectors.js";
3
+ export * from "./useChartPolarAxis.selectors.js";
4
+ export * from "./useChartPolarInteraction.selectors.js";
@@ -24,4 +24,16 @@ Object.keys(_useChartPolarAxis2).forEach(function (key) {
24
24
  return _useChartPolarAxis2[key];
25
25
  }
26
26
  });
27
+ });
28
+ var _useChartPolarInteraction = require("./useChartPolarInteraction.selectors");
29
+ Object.keys(_useChartPolarInteraction).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
32
+ if (key in exports && exports[key] === _useChartPolarInteraction[key]) return;
33
+ Object.defineProperty(exports, key, {
34
+ enumerable: true,
35
+ get: function () {
36
+ return _useChartPolarInteraction[key];
37
+ }
38
+ });
27
39
  });
@@ -1,2 +1,3 @@
1
1
  export { useChartPolarAxis } from "./useChartPolarAxis.mjs";
2
- export * from "./useChartPolarAxis.selectors.mjs";
2
+ export * from "./useChartPolarAxis.selectors.mjs";
3
+ export * from "./useChartPolarInteraction.selectors.mjs";
@@ -177,7 +177,7 @@ const useChartPolarAxis = ({
177
177
  let isRotationAxis = false;
178
178
  const svgPoint = (0, _getChartPoint.getChartPoint)(element, event.detail.srcEvent);
179
179
  const rotation = (0, _coordinateTransformation.generateSvg2rotation)(center)(svgPoint.x, svgPoint.y);
180
- const rotationIndex = (0, _getAxisIndex.getAxisIndex)(rotationAxisWithScale[usedRotationAxisId], rotation);
180
+ const rotationIndex = (0, _getAxisIndex.getRotationAxisIndex)(rotationAxisWithScale[usedRotationAxisId], rotation);
181
181
  isRotationAxis = rotationIndex !== -1;
182
182
  dataIndex = isRotationAxis ? rotationIndex : null; // radius index is not yet implemented.
183
183
 
@@ -9,7 +9,7 @@ import { selectorChartsInteractionIsInitialized } from "../useChartInteraction/i
9
9
  import { selectorChartPolarCenter, selectorChartRadiusAxis, selectorChartRotationAxis } from "./useChartPolarAxis.selectors.mjs";
10
10
  import { getChartPoint } from "../../../getChartPoint.mjs";
11
11
  import { generatePolar2svg, generateSvg2polar, generateSvg2rotation } from "./coordinateTransformation.mjs";
12
- import { getAxisIndex } from "./getAxisIndex.mjs";
12
+ import { getRotationAxisIndex } from "./getAxisIndex.mjs";
13
13
  import { selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/index.mjs";
14
14
  import { checkHasInteractionPlugin } from "../useChartInteraction/checkHasInteractionPlugin.mjs";
15
15
  export const useChartPolarAxis = ({
@@ -170,7 +170,7 @@ export const useChartPolarAxis = ({
170
170
  let isRotationAxis = false;
171
171
  const svgPoint = getChartPoint(element, event.detail.srcEvent);
172
172
  const rotation = generateSvg2rotation(center)(svgPoint.x, svgPoint.y);
173
- const rotationIndex = getAxisIndex(rotationAxisWithScale[usedRotationAxisId], rotation);
173
+ const rotationIndex = getRotationAxisIndex(rotationAxisWithScale[usedRotationAxisId], rotation);
174
174
  isRotationAxis = rotationIndex !== -1;
175
175
  dataIndex = isRotationAxis ? rotationIndex : null; // radius index is not yet implemented.
176
176
 
@@ -2,15 +2,15 @@ import { type UseChartPolarAxisSignature } from "./useChartPolarAxis.types.mjs";
2
2
  import { type ChartState } from "../../models/chart.mjs";
3
3
  import type { ChartDrawingArea } from "../../../../hooks/useDrawingArea.mjs";
4
4
  export declare const selectorChartPolarAxisState: (state: ChartState<[], [UseChartPolarAxisSignature]>) => {
5
- rotation: import("../../../index.mjs").AxisConfig<import("../../../index.mjs").ScaleName, any, import("../../../index.mjs").ChartsRotationAxisProps>[];
6
- radius: import("../../../index.mjs").AxisConfig<"linear", any, import("../../../index.mjs").ChartsRadiusAxisProps>[];
5
+ rotation: import("../../../index.mjs").PolarAxisConfig<import("../../../index.mjs").ScaleName, any, import("../../../index.mjs").ChartsRotationAxisProps>[];
6
+ radius: import("../../../index.mjs").PolarAxisConfig<import("../../../index.mjs").ScaleName, any, import("../../../index.mjs").ChartsRadiusAxisProps>[];
7
7
  } | undefined;
8
8
  export declare const selectorChartRawRotationAxis: (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("./useChartPolarAxis.types.mjs").UseChartPolarAxisState> & {
9
9
  cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
10
- }) => import("../../../index.mjs").AxisConfig<keyof import("../../../index.mjs").AxisScaleConfig, any, import("../../../index.mjs").ChartsRotationAxisProps>[] | undefined;
10
+ }) => import("../../../index.mjs").PolarAxisConfig<keyof import("../../../index.mjs").AxisScaleConfig, any, import("../../../index.mjs").ChartsRotationAxisProps>[] | undefined;
11
11
  export declare const selectorChartRawRadiusAxis: (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("./useChartPolarAxis.types.mjs").UseChartPolarAxisState> & {
12
12
  cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
13
- }) => import("../../../index.mjs").AxisConfig<"linear", any, import("../../../index.mjs").ChartsRadiusAxisProps>[] | undefined;
13
+ }) => import("../../../index.mjs").PolarAxisConfig<keyof import("../../../index.mjs").AxisScaleConfig, any, import("../../../index.mjs").ChartsRadiusAxisProps>[] | undefined;
14
14
  /**
15
15
  * The only interesting selectors that merge axis data and zoom if provided.
16
16
  */
@@ -2,15 +2,15 @@ import { type UseChartPolarAxisSignature } from "./useChartPolarAxis.types.js";
2
2
  import { type ChartState } from "../../models/chart.js";
3
3
  import type { ChartDrawingArea } from "../../../../hooks/useDrawingArea.js";
4
4
  export declare const selectorChartPolarAxisState: (state: ChartState<[], [UseChartPolarAxisSignature]>) => {
5
- rotation: import("../../../index.js").AxisConfig<import("../../../index.js").ScaleName, any, import("../../../index.js").ChartsRotationAxisProps>[];
6
- radius: import("../../../index.js").AxisConfig<"linear", any, import("../../../index.js").ChartsRadiusAxisProps>[];
5
+ rotation: import("../../../index.js").PolarAxisConfig<import("../../../index.js").ScaleName, any, import("../../../index.js").ChartsRotationAxisProps>[];
6
+ radius: import("../../../index.js").PolarAxisConfig<import("../../../index.js").ScaleName, any, import("../../../index.js").ChartsRadiusAxisProps>[];
7
7
  } | undefined;
8
8
  export declare const selectorChartRawRotationAxis: (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("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
9
9
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
10
- }) => import("../../../index.js").AxisConfig<keyof import("../../../index.js").AxisScaleConfig, any, import("../../../index.js").ChartsRotationAxisProps>[] | undefined;
10
+ }) => import("../../../index.js").PolarAxisConfig<keyof import("../../../index.js").AxisScaleConfig, any, import("../../../index.js").ChartsRotationAxisProps>[] | undefined;
11
11
  export declare const selectorChartRawRadiusAxis: (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("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
12
12
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
13
- }) => import("../../../index.js").AxisConfig<"linear", any, import("../../../index.js").ChartsRadiusAxisProps>[] | undefined;
13
+ }) => import("../../../index.js").PolarAxisConfig<keyof import("../../../index.js").AxisScaleConfig, any, import("../../../index.js").ChartsRadiusAxisProps>[] | undefined;
14
14
  /**
15
15
  * The only interesting selectors that merge axis data and zoom if provided.
16
16
  */
@@ -1,6 +1,6 @@
1
1
  import { type ChartPluginSignature } from "../../models/index.mjs";
2
2
  import { type ChartSeriesType, type DatasetType } from "../../../../models/seriesType/config.mjs";
3
- import { type ScaleName, type AxisConfig, type ChartsRotationAxisProps, type ChartsRadiusAxisProps, type RadiusAxis, type RotationAxis, type ChartsAxisData } from "../../../../models/axis.mjs";
3
+ import { type ScaleName, type PolarAxisConfig, type ChartsRotationAxisProps, type ChartsRadiusAxisProps, type RadiusAxis, type RotationAxis, type ChartsAxisData } from "../../../../models/axis.mjs";
4
4
  import { type UseChartSeriesSignature } from "../../corePlugins/useChartSeries/index.mjs";
5
5
  import { type UseChartInteractionSignature } from "../useChartInteraction/index.mjs";
6
6
  export interface UseChartPolarAxisInstance {
@@ -60,8 +60,8 @@ export interface UseChartPolarAxisParameters {
60
60
  export type UseChartPolarAxisDefaultizedParameters = UseChartPolarAxisParameters & {};
61
61
  export interface UseChartPolarAxisState {
62
62
  polarAxis: {
63
- rotation: AxisConfig<ScaleName, any, ChartsRotationAxisProps>[];
64
- radius: AxisConfig<'linear', any, ChartsRadiusAxisProps>[];
63
+ rotation: PolarAxisConfig<ScaleName, any, ChartsRotationAxisProps>[];
64
+ radius: PolarAxisConfig<ScaleName, any, ChartsRadiusAxisProps>[];
65
65
  };
66
66
  }
67
67
  export type UseChartPolarAxisSignature<SeriesType extends ChartSeriesType = ChartSeriesType> = ChartPluginSignature<{
@@ -1,6 +1,6 @@
1
1
  import { type ChartPluginSignature } from "../../models/index.js";
2
2
  import { type ChartSeriesType, type DatasetType } from "../../../../models/seriesType/config.js";
3
- import { type ScaleName, type AxisConfig, type ChartsRotationAxisProps, type ChartsRadiusAxisProps, type RadiusAxis, type RotationAxis, type ChartsAxisData } from "../../../../models/axis.js";
3
+ import { type ScaleName, type PolarAxisConfig, type ChartsRotationAxisProps, type ChartsRadiusAxisProps, type RadiusAxis, type RotationAxis, type ChartsAxisData } from "../../../../models/axis.js";
4
4
  import { type UseChartSeriesSignature } from "../../corePlugins/useChartSeries/index.js";
5
5
  import { type UseChartInteractionSignature } from "../useChartInteraction/index.js";
6
6
  export interface UseChartPolarAxisInstance {
@@ -60,8 +60,8 @@ export interface UseChartPolarAxisParameters {
60
60
  export type UseChartPolarAxisDefaultizedParameters = UseChartPolarAxisParameters & {};
61
61
  export interface UseChartPolarAxisState {
62
62
  polarAxis: {
63
- rotation: AxisConfig<ScaleName, any, ChartsRotationAxisProps>[];
64
- radius: AxisConfig<'linear', any, ChartsRadiusAxisProps>[];
63
+ rotation: PolarAxisConfig<ScaleName, any, ChartsRotationAxisProps>[];
64
+ radius: PolarAxisConfig<ScaleName, any, ChartsRadiusAxisProps>[];
65
65
  };
66
66
  }
67
67
  export type UseChartPolarAxisSignature<SeriesType extends ChartSeriesType = ChartSeriesType> = ChartPluginSignature<{
@@ -1,4 +1,4 @@
1
- import { type AxisItemIdentifier } from "../../../../models/axis.mjs";
1
+ import type { AxisItemIdentifier } from "../../../../models/axis.mjs";
2
2
  export declare const selectorChartsInteractionRotationAxisIndex: (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("../useChartInteraction/useChartInteraction.types.mjs").UseChartInteractionState> & {
3
3
  cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
4
4
  }) => number | null;
@@ -18,9 +18,29 @@ export declare const selectorChartsInteractionTooltipRotationAxes: (args_0: impo
18
18
  cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
19
19
  }) => AxisItemIdentifier[];
20
20
  /**
21
- * Get radius-axis ids and corresponding data index that should be displayed in the tooltip.
21
+ * Helper to get the radius associated to the interaction coordinate.
22
22
  */
23
- export declare const selectorChartsInteractionTooltipRadiusAxes: () => never[];
23
+ export declare const selectorChartsInteractionRadius: (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("../useChartInteraction/useChartInteraction.types.mjs").UseChartInteractionState> & {
24
+ cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
25
+ }) => number | null;
26
+ export declare const selectorChartsInteractionRadiusAxisIndex: (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("../useChartInteraction/useChartInteraction.types.mjs").UseChartInteractionState> & {
27
+ cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
28
+ }) => number | null;
29
+ export declare const selectorChartsInteractionRadiusAxisIndexes: (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("../useChartInteraction/useChartInteraction.types.mjs").UseChartInteractionState> & {
30
+ cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
31
+ }) => number[] | null;
32
+ export declare const selectorChartsInteractionRadiusAxisValue: (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("./useChartPolarAxis.types.mjs").UseChartPolarAxisState> & {
33
+ cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
34
+ }) => any;
35
+ export declare const selectorChartsInteractionRadiusAxisValues: (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("./useChartPolarAxis.types.mjs").UseChartPolarAxisState> & {
36
+ cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
37
+ }) => any[] | null;
38
+ /**
39
+ * Get radius-axis ids and corresponding data index that should be display in the tooltip.
40
+ */
41
+ export declare const selectorChartsInteractionTooltipRadiusAxes: (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("../useChartInteraction/useChartInteraction.types.mjs").UseChartInteractionState> & {
42
+ cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
43
+ }) => AxisItemIdentifier[];
24
44
  /**
25
45
  * Return `true` if the axis tooltip has something to display.
26
46
  */
@@ -1,4 +1,4 @@
1
- import { type AxisItemIdentifier } from "../../../../models/axis.js";
1
+ import type { AxisItemIdentifier } from "../../../../models/axis.js";
2
2
  export declare const selectorChartsInteractionRotationAxisIndex: (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("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
3
3
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
4
4
  }) => number | null;
@@ -18,9 +18,29 @@ export declare const selectorChartsInteractionTooltipRotationAxes: (args_0: impo
18
18
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
19
19
  }) => AxisItemIdentifier[];
20
20
  /**
21
- * Get radius-axis ids and corresponding data index that should be displayed in the tooltip.
21
+ * Helper to get the radius associated to the interaction coordinate.
22
22
  */
23
- export declare const selectorChartsInteractionTooltipRadiusAxes: () => never[];
23
+ export declare const selectorChartsInteractionRadius: (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("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
24
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
25
+ }) => number | null;
26
+ export declare const selectorChartsInteractionRadiusAxisIndex: (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("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
27
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
28
+ }) => number | null;
29
+ export declare const selectorChartsInteractionRadiusAxisIndexes: (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("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
30
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
31
+ }) => number[] | null;
32
+ export declare const selectorChartsInteractionRadiusAxisValue: (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("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
33
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
34
+ }) => any;
35
+ export declare const selectorChartsInteractionRadiusAxisValues: (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("./useChartPolarAxis.types.js").UseChartPolarAxisState> & {
36
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
37
+ }) => any[] | null;
38
+ /**
39
+ * Get radius-axis ids and corresponding data index that should be display in the tooltip.
40
+ */
41
+ export declare const selectorChartsInteractionTooltipRadiusAxes: (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("../useChartInteraction/useChartInteraction.types.js").UseChartInteractionState> & {
42
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
43
+ }) => AxisItemIdentifier[];
24
44
  /**
25
45
  * Return `true` if the axis tooltip has something to display.
26
46
  */
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.selectorChartsInteractionTooltipRotationAxes = exports.selectorChartsInteractionTooltipRadiusAxes = exports.selectorChartsInteractionRotationAxisValues = exports.selectorChartsInteractionRotationAxisValue = exports.selectorChartsInteractionRotationAxisIndexes = exports.selectorChartsInteractionRotationAxisIndex = exports.selectorChartsInteractionPolarAxisTooltip = void 0;
6
+ exports.selectorChartsInteractionTooltipRotationAxes = exports.selectorChartsInteractionTooltipRadiusAxes = exports.selectorChartsInteractionRotationAxisValues = exports.selectorChartsInteractionRotationAxisValue = exports.selectorChartsInteractionRotationAxisIndexes = exports.selectorChartsInteractionRotationAxisIndex = exports.selectorChartsInteractionRadiusAxisValues = exports.selectorChartsInteractionRadiusAxisValue = exports.selectorChartsInteractionRadiusAxisIndexes = exports.selectorChartsInteractionRadiusAxisIndex = exports.selectorChartsInteractionRadius = exports.selectorChartsInteractionPolarAxisTooltip = void 0;
7
7
  var _isDeepEqual = require("@mui/x-internals/isDeepEqual");
8
8
  var _store = require("@mui/x-internals/store");
9
9
  var _useChartInteraction = require("../useChartInteraction/useChartInteraction.selectors");
@@ -17,10 +17,17 @@ const optionalGetAxisIds = (_, ids) => ids;
17
17
  * Get interaction indexes
18
18
  */
19
19
 
20
- function indexGetter(value, axes, ids) {
21
- return Array.isArray(ids) ? ids.map(id => (0, _getAxisIndex.getAxisIndex)(axes.axis[id], value)) : (0, _getAxisIndex.getAxisIndex)(axes.axis[ids], value);
20
+ function indexGetter(value, axes, ids, type) {
21
+ if (type === 'rotation') {
22
+ const rotationAxes = axes;
23
+ return Array.isArray(ids) ? ids.map(id => (0, _getAxisIndex.getRotationAxisIndex)(rotationAxes.axis[id], value)) : (0, _getAxisIndex.getRotationAxisIndex)(rotationAxes.axis[ids], value);
24
+ }
25
+ const radiusAxes = axes;
26
+ return Array.isArray(ids) ? ids.map(id => (0, _getAxisIndex.getRadiusAxisIndex)(radiusAxes.axis[id], value)) : (0, _getAxisIndex.getRadiusAxisIndex)(radiusAxes.axis[ids], value);
22
27
  }
23
28
 
29
+ // ============================= Rotation axis =============================
30
+
24
31
  /**
25
32
  * Helper to get the rotation associated to the interaction coordinate.
26
33
  */
@@ -30,8 +37,8 @@ const selectorChartsInteractionRotationAngle = (0, _store.createSelector)(_useCh
30
37
  }
31
38
  return (0, _coordinateTransformation.generateSvg2rotation)(center)(x, y);
32
39
  });
33
- const selectorChartsInteractionRotationAxisIndex = exports.selectorChartsInteractionRotationAxisIndex = (0, _store.createSelector)(selectorChartsInteractionRotationAngle, _useChartPolarAxis.selectorChartRotationAxis, optionalGetAxisId, (rotation, rotationAxis, id) => rotation === null ? null : indexGetter(rotation, rotationAxis, id ?? rotationAxis.axisIds[0]));
34
- const selectorChartsInteractionRotationAxisIndexes = exports.selectorChartsInteractionRotationAxisIndexes = (0, _store.createSelector)(selectorChartsInteractionRotationAngle, _useChartPolarAxis.selectorChartRotationAxis, optionalGetAxisIds, (rotation, rotationAxis, ids) => rotation === null ? null : indexGetter(rotation, rotationAxis, ids ?? rotationAxis.axisIds));
40
+ const selectorChartsInteractionRotationAxisIndex = exports.selectorChartsInteractionRotationAxisIndex = (0, _store.createSelector)(selectorChartsInteractionRotationAngle, _useChartPolarAxis.selectorChartRotationAxis, optionalGetAxisId, (rotation, rotationAxis, id) => rotation === null ? null : indexGetter(rotation, rotationAxis, id ?? rotationAxis.axisIds[0], 'rotation'));
41
+ const selectorChartsInteractionRotationAxisIndexes = exports.selectorChartsInteractionRotationAxisIndexes = (0, _store.createSelector)(selectorChartsInteractionRotationAngle, _useChartPolarAxis.selectorChartRotationAxis, optionalGetAxisIds, (rotation, rotationAxis, ids) => rotation === null ? null : indexGetter(rotation, rotationAxis, ids ?? rotationAxis.axisIds, 'rotation'));
35
42
  const selectorChartsInteractionRotationAxisValue = exports.selectorChartsInteractionRotationAxisValue = (0, _store.createSelector)(_useChartPolarAxis.selectorChartRotationAxis, selectorChartsInteractionRotationAxisIndex, optionalGetAxisId, (rotationAxis, rotationIndex, id) => {
36
43
  id = id ?? rotationAxis.axisIds[0];
37
44
  if (rotationIndex === null || rotationIndex === -1 || rotationAxis.axisIds.length === 0) {
@@ -80,16 +87,70 @@ const selectorChartsInteractionTooltipRotationAxes = exports.selectorChartsInter
80
87
  }) => axes.axis[axisId].triggerTooltip && dataIndex >= 0);
81
88
  });
82
89
 
90
+ // ============================= Radius axis =============================
91
+
83
92
  /**
84
- * Get radius-axis ids and corresponding data index that should be displayed in the tooltip.
93
+ * Helper to get the radius associated to the interaction coordinate.
85
94
  */
86
- const selectorChartsInteractionTooltipRadiusAxes = () => {
87
- // TODO implement this selector and add it to the `selectorChartsInteractionPolarAxisTooltip`
88
- return [];
89
- };
95
+ const selectorChartsInteractionRadius = exports.selectorChartsInteractionRadius = (0, _store.createSelector)(_useChartInteraction.selectorChartsInteractionPointerX, _useChartInteraction.selectorChartsInteractionPointerY, _useChartPolarAxis.selectorChartPolarCenter, (x, y, center) => {
96
+ if (x === null || y === null) {
97
+ return null;
98
+ }
99
+ return Math.sqrt((x - center.cx) ** 2 + (y - center.cy) ** 2);
100
+ });
101
+ const selectorChartsInteractionRadiusAxisIndex = exports.selectorChartsInteractionRadiusAxisIndex = (0, _store.createSelector)(selectorChartsInteractionRadius, _useChartPolarAxis.selectorChartRadiusAxis, optionalGetAxisId, (radius, radiusAxis, id) => radius === null ? null : indexGetter(radius, radiusAxis, id ?? radiusAxis.axisIds[0], 'radius'));
102
+ const selectorChartsInteractionRadiusAxisIndexes = exports.selectorChartsInteractionRadiusAxisIndexes = (0, _store.createSelector)(selectorChartsInteractionRadius, _useChartPolarAxis.selectorChartRadiusAxis, optionalGetAxisIds, (radius, radiusAxis, ids) => radius === null ? null : indexGetter(radius, radiusAxis, ids ?? radiusAxis.axisIds, 'radius'));
103
+ const selectorChartsInteractionRadiusAxisValue = exports.selectorChartsInteractionRadiusAxisValue = (0, _store.createSelector)(_useChartPolarAxis.selectorChartRadiusAxis, selectorChartsInteractionRadiusAxisIndex, optionalGetAxisId, (radiusAxis, radiusIndex, id) => {
104
+ id = id ?? radiusAxis.axisIds[0];
105
+ if (radiusIndex === null || radiusIndex === -1 || radiusAxis.axisIds.length === 0) {
106
+ return null;
107
+ }
108
+ const data = radiusAxis.axis[id]?.data;
109
+ if (!data) {
110
+ return null;
111
+ }
112
+ return data[radiusIndex];
113
+ });
114
+ const selectorChartsInteractionRadiusAxisValues = exports.selectorChartsInteractionRadiusAxisValues = (0, _store.createSelector)(_useChartPolarAxis.selectorChartRadiusAxis, selectorChartsInteractionRadiusAxisIndexes, optionalGetAxisIds, (radiusAxis, radiusIndexes, ids) => {
115
+ ids = ids ?? radiusAxis.axisIds;
116
+ if (radiusIndexes === null) {
117
+ return null;
118
+ }
119
+ return ids.map((id, axisIndex) => {
120
+ const radiusIndex = radiusIndexes[axisIndex];
121
+ if (radiusIndex === -1) {
122
+ return null;
123
+ }
124
+ return radiusAxis.axis[id].data?.[radiusIndex];
125
+ });
126
+ });
127
+
128
+ /**
129
+ * Get radius-axis ids and corresponding data index that should be display in the tooltip.
130
+ */
131
+ const selectorChartsInteractionTooltipRadiusAxes = exports.selectorChartsInteractionTooltipRadiusAxes = (0, _store.createSelectorMemoizedWithOptions)({
132
+ memoizeOptions: {
133
+ // Keep the same reference if array content is the same.
134
+ // If possible, avoid this pattern by creating selectors that
135
+ // uses string/number as arguments.
136
+ resultEqualityCheck: _isDeepEqual.isDeepEqual
137
+ }
138
+ })(selectorChartsInteractionRadiusAxisIndexes, _useChartPolarAxis.selectorChartRadiusAxis, (indexes, axes) => {
139
+ if (indexes === null) {
140
+ return [];
141
+ }
142
+ return axes.axisIds.map((axisId, axisIndex) => ({
143
+ axisId,
144
+ dataIndex: indexes[axisIndex]
145
+ })).filter(({
146
+ axisId,
147
+ dataIndex
148
+ }) => axes.axis[axisId].triggerTooltip && dataIndex >= 0);
149
+ });
150
+
151
+ // ============================= Cross axes selectors =============================
90
152
 
91
153
  /**
92
154
  * Return `true` if the axis tooltip has something to display.
93
155
  */
94
- exports.selectorChartsInteractionTooltipRadiusAxes = selectorChartsInteractionTooltipRadiusAxes;
95
- const selectorChartsInteractionPolarAxisTooltip = exports.selectorChartsInteractionPolarAxisTooltip = (0, _store.createSelector)(selectorChartsInteractionTooltipRotationAxes, rotationTooltip => rotationTooltip.length > 0);
156
+ const selectorChartsInteractionPolarAxisTooltip = exports.selectorChartsInteractionPolarAxisTooltip = (0, _store.createSelector)(selectorChartsInteractionTooltipRotationAxes, selectorChartsInteractionTooltipRadiusAxes, (rotationTooltip, radiusTooltip) => rotationTooltip.length > 0 || radiusTooltip.length > 0);
@@ -2,8 +2,8 @@ import { isDeepEqual } from '@mui/x-internals/isDeepEqual';
2
2
  import { createSelector, createSelectorMemoizedWithOptions } from '@mui/x-internals/store';
3
3
  import { selectorChartsInteractionPointerX, selectorChartsInteractionPointerY } from "../useChartInteraction/useChartInteraction.selectors.mjs";
4
4
  import { generateSvg2rotation } from "./coordinateTransformation.mjs";
5
- import { getAxisIndex } from "./getAxisIndex.mjs";
6
- import { selectorChartPolarCenter, selectorChartRotationAxis } from "./useChartPolarAxis.selectors.mjs";
5
+ import { getRotationAxisIndex, getRadiusAxisIndex } from "./getAxisIndex.mjs";
6
+ import { selectorChartPolarCenter, selectorChartRadiusAxis, selectorChartRotationAxis } from "./useChartPolarAxis.selectors.mjs";
7
7
  const optionalGetAxisId = (_, id) => id;
8
8
  const optionalGetAxisIds = (_, ids) => ids;
9
9
 
@@ -11,10 +11,17 @@ const optionalGetAxisIds = (_, ids) => ids;
11
11
  * Get interaction indexes
12
12
  */
13
13
 
14
- function indexGetter(value, axes, ids) {
15
- return Array.isArray(ids) ? ids.map(id => getAxisIndex(axes.axis[id], value)) : getAxisIndex(axes.axis[ids], value);
14
+ function indexGetter(value, axes, ids, type) {
15
+ if (type === 'rotation') {
16
+ const rotationAxes = axes;
17
+ return Array.isArray(ids) ? ids.map(id => getRotationAxisIndex(rotationAxes.axis[id], value)) : getRotationAxisIndex(rotationAxes.axis[ids], value);
18
+ }
19
+ const radiusAxes = axes;
20
+ return Array.isArray(ids) ? ids.map(id => getRadiusAxisIndex(radiusAxes.axis[id], value)) : getRadiusAxisIndex(radiusAxes.axis[ids], value);
16
21
  }
17
22
 
23
+ // ============================= Rotation axis =============================
24
+
18
25
  /**
19
26
  * Helper to get the rotation associated to the interaction coordinate.
20
27
  */
@@ -24,8 +31,8 @@ const selectorChartsInteractionRotationAngle = createSelector(selectorChartsInte
24
31
  }
25
32
  return generateSvg2rotation(center)(x, y);
26
33
  });
27
- export const selectorChartsInteractionRotationAxisIndex = createSelector(selectorChartsInteractionRotationAngle, selectorChartRotationAxis, optionalGetAxisId, (rotation, rotationAxis, id) => rotation === null ? null : indexGetter(rotation, rotationAxis, id ?? rotationAxis.axisIds[0]));
28
- export const selectorChartsInteractionRotationAxisIndexes = createSelector(selectorChartsInteractionRotationAngle, selectorChartRotationAxis, optionalGetAxisIds, (rotation, rotationAxis, ids) => rotation === null ? null : indexGetter(rotation, rotationAxis, ids ?? rotationAxis.axisIds));
34
+ export const selectorChartsInteractionRotationAxisIndex = createSelector(selectorChartsInteractionRotationAngle, selectorChartRotationAxis, optionalGetAxisId, (rotation, rotationAxis, id) => rotation === null ? null : indexGetter(rotation, rotationAxis, id ?? rotationAxis.axisIds[0], 'rotation'));
35
+ export const selectorChartsInteractionRotationAxisIndexes = createSelector(selectorChartsInteractionRotationAngle, selectorChartRotationAxis, optionalGetAxisIds, (rotation, rotationAxis, ids) => rotation === null ? null : indexGetter(rotation, rotationAxis, ids ?? rotationAxis.axisIds, 'rotation'));
29
36
  export const selectorChartsInteractionRotationAxisValue = createSelector(selectorChartRotationAxis, selectorChartsInteractionRotationAxisIndex, optionalGetAxisId, (rotationAxis, rotationIndex, id) => {
30
37
  id = id ?? rotationAxis.axisIds[0];
31
38
  if (rotationIndex === null || rotationIndex === -1 || rotationAxis.axisIds.length === 0) {
@@ -74,15 +81,70 @@ export const selectorChartsInteractionTooltipRotationAxes = createSelectorMemoiz
74
81
  }) => axes.axis[axisId].triggerTooltip && dataIndex >= 0);
75
82
  });
76
83
 
84
+ // ============================= Radius axis =============================
85
+
77
86
  /**
78
- * Get radius-axis ids and corresponding data index that should be displayed in the tooltip.
87
+ * Helper to get the radius associated to the interaction coordinate.
79
88
  */
80
- export const selectorChartsInteractionTooltipRadiusAxes = () => {
81
- // TODO implement this selector and add it to the `selectorChartsInteractionPolarAxisTooltip`
82
- return [];
83
- };
89
+ export const selectorChartsInteractionRadius = createSelector(selectorChartsInteractionPointerX, selectorChartsInteractionPointerY, selectorChartPolarCenter, (x, y, center) => {
90
+ if (x === null || y === null) {
91
+ return null;
92
+ }
93
+ return Math.sqrt((x - center.cx) ** 2 + (y - center.cy) ** 2);
94
+ });
95
+ export const selectorChartsInteractionRadiusAxisIndex = createSelector(selectorChartsInteractionRadius, selectorChartRadiusAxis, optionalGetAxisId, (radius, radiusAxis, id) => radius === null ? null : indexGetter(radius, radiusAxis, id ?? radiusAxis.axisIds[0], 'radius'));
96
+ export const selectorChartsInteractionRadiusAxisIndexes = createSelector(selectorChartsInteractionRadius, selectorChartRadiusAxis, optionalGetAxisIds, (radius, radiusAxis, ids) => radius === null ? null : indexGetter(radius, radiusAxis, ids ?? radiusAxis.axisIds, 'radius'));
97
+ export const selectorChartsInteractionRadiusAxisValue = createSelector(selectorChartRadiusAxis, selectorChartsInteractionRadiusAxisIndex, optionalGetAxisId, (radiusAxis, radiusIndex, id) => {
98
+ id = id ?? radiusAxis.axisIds[0];
99
+ if (radiusIndex === null || radiusIndex === -1 || radiusAxis.axisIds.length === 0) {
100
+ return null;
101
+ }
102
+ const data = radiusAxis.axis[id]?.data;
103
+ if (!data) {
104
+ return null;
105
+ }
106
+ return data[radiusIndex];
107
+ });
108
+ export const selectorChartsInteractionRadiusAxisValues = createSelector(selectorChartRadiusAxis, selectorChartsInteractionRadiusAxisIndexes, optionalGetAxisIds, (radiusAxis, radiusIndexes, ids) => {
109
+ ids = ids ?? radiusAxis.axisIds;
110
+ if (radiusIndexes === null) {
111
+ return null;
112
+ }
113
+ return ids.map((id, axisIndex) => {
114
+ const radiusIndex = radiusIndexes[axisIndex];
115
+ if (radiusIndex === -1) {
116
+ return null;
117
+ }
118
+ return radiusAxis.axis[id].data?.[radiusIndex];
119
+ });
120
+ });
121
+
122
+ /**
123
+ * Get radius-axis ids and corresponding data index that should be display in the tooltip.
124
+ */
125
+ export const selectorChartsInteractionTooltipRadiusAxes = createSelectorMemoizedWithOptions({
126
+ memoizeOptions: {
127
+ // Keep the same reference if array content is the same.
128
+ // If possible, avoid this pattern by creating selectors that
129
+ // uses string/number as arguments.
130
+ resultEqualityCheck: isDeepEqual
131
+ }
132
+ })(selectorChartsInteractionRadiusAxisIndexes, selectorChartRadiusAxis, (indexes, axes) => {
133
+ if (indexes === null) {
134
+ return [];
135
+ }
136
+ return axes.axisIds.map((axisId, axisIndex) => ({
137
+ axisId,
138
+ dataIndex: indexes[axisIndex]
139
+ })).filter(({
140
+ axisId,
141
+ dataIndex
142
+ }) => axes.axis[axisId].triggerTooltip && dataIndex >= 0);
143
+ });
144
+
145
+ // ============================= Cross axes selectors =============================
84
146
 
85
147
  /**
86
148
  * Return `true` if the axis tooltip has something to display.
87
149
  */
88
- export const selectorChartsInteractionPolarAxisTooltip = createSelector(selectorChartsInteractionTooltipRotationAxes, rotationTooltip => rotationTooltip.length > 0);
150
+ export const selectorChartsInteractionPolarAxisTooltip = createSelector(selectorChartsInteractionTooltipRotationAxes, selectorChartsInteractionTooltipRadiusAxes, (rotationTooltip, radiusTooltip) => rotationTooltip.length > 0 || radiusTooltip.length > 0);