@mui/x-charts 8.6.0 → 8.7.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 (140) hide show
  1. package/BarChart/BarPlot.js +11 -150
  2. package/BarChart/useBarPlotData.d.ts +8 -0
  3. package/BarChart/useBarPlotData.js +146 -0
  4. package/CHANGELOG.md +104 -1
  5. package/ChartContainer/ChartContainer.d.ts +1 -21
  6. package/ChartContainer/ChartContainer.js +0 -8
  7. package/ChartContainer/index.d.ts +8 -1
  8. package/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
  9. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +3 -0
  10. package/ChartsReferenceLine/ChartsXReferenceLine.js +48 -1
  11. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +3 -0
  12. package/ChartsReferenceLine/ChartsYReferenceLine.js +48 -1
  13. package/ChartsReferenceLine/index.d.ts +3 -1
  14. package/ChartsSurface/ChartsSurface.js +2 -1
  15. package/ChartsTooltip/ChartsTooltipContainer.js +6 -3
  16. package/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
  17. package/ChartsTooltip/utils.js +18 -29
  18. package/LineChart/AreaPlot.js +5 -115
  19. package/LineChart/LinePlot.js +5 -99
  20. package/LineChart/useAreaPlotData.d.ts +12 -0
  21. package/LineChart/useAreaPlotData.js +125 -0
  22. package/LineChart/useLinePlotData.d.ts +11 -0
  23. package/LineChart/useLinePlotData.js +108 -0
  24. package/ScatterChart/Scatter.js +22 -48
  25. package/ScatterChart/useScatterPlotData.d.ts +8 -0
  26. package/ScatterChart/useScatterPlotData.js +33 -0
  27. package/context/ChartApi.d.ts +22 -0
  28. package/context/ChartApi.js +5 -0
  29. package/context/ChartProvider/ChartContext.js +1 -0
  30. package/context/index.d.ts +2 -1
  31. package/context/useChartApiContext.d.ts +1 -1
  32. package/esm/BarChart/BarPlot.js +12 -152
  33. package/esm/BarChart/useBarPlotData.d.ts +8 -0
  34. package/esm/BarChart/useBarPlotData.js +139 -0
  35. package/esm/ChartContainer/ChartContainer.d.ts +1 -21
  36. package/esm/ChartContainer/ChartContainer.js +0 -8
  37. package/esm/ChartContainer/index.d.ts +8 -1
  38. package/esm/ChartContainer/index.js +6 -1
  39. package/esm/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
  40. package/esm/ChartsReferenceLine/ChartsXReferenceLine.d.ts +3 -0
  41. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +47 -0
  42. package/esm/ChartsReferenceLine/ChartsYReferenceLine.d.ts +3 -0
  43. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +47 -0
  44. package/esm/ChartsReferenceLine/index.d.ts +3 -1
  45. package/esm/ChartsReferenceLine/index.js +2 -1
  46. package/esm/ChartsSurface/ChartsSurface.js +2 -1
  47. package/esm/ChartsTooltip/ChartsTooltipContainer.js +6 -3
  48. package/esm/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
  49. package/esm/ChartsTooltip/utils.js +18 -29
  50. package/esm/LineChart/AreaPlot.js +5 -115
  51. package/esm/LineChart/LinePlot.js +5 -99
  52. package/esm/LineChart/useAreaPlotData.d.ts +12 -0
  53. package/esm/LineChart/useAreaPlotData.js +118 -0
  54. package/esm/LineChart/useLinePlotData.d.ts +11 -0
  55. package/esm/LineChart/useLinePlotData.js +101 -0
  56. package/esm/ScatterChart/Scatter.js +23 -49
  57. package/esm/ScatterChart/useScatterPlotData.d.ts +8 -0
  58. package/esm/ScatterChart/useScatterPlotData.js +26 -0
  59. package/esm/context/ChartApi.d.ts +22 -0
  60. package/esm/context/ChartApi.js +1 -0
  61. package/esm/context/ChartProvider/ChartContext.js +2 -0
  62. package/esm/context/index.d.ts +2 -1
  63. package/esm/context/useChartApiContext.d.ts +1 -1
  64. package/esm/hooks/useInteractionItemProps.d.ts +14 -9
  65. package/esm/hooks/useInteractionItemProps.js +28 -28
  66. package/esm/index.d.ts +2 -1
  67. package/esm/index.js +2 -2
  68. package/esm/internals/index.d.ts +5 -0
  69. package/esm/internals/index.js +5 -0
  70. package/esm/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  71. package/esm/internals/plugins/corePlugins/corePlugins.js +2 -1
  72. package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  73. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +1 -29
  74. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  75. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +0 -6
  76. package/esm/internals/plugins/corePlugins/useChartId/useChartId.js +2 -0
  77. package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  78. package/esm/internals/plugins/corePlugins/useChartInteractionListener/index.d.ts +2 -0
  79. package/esm/internals/plugins/corePlugins/useChartInteractionListener/index.js +1 -0
  80. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.d.ts +3 -0
  81. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +77 -0
  82. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +31 -0
  83. package/esm/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.js +1 -0
  84. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  85. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  86. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +44 -33
  87. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +5 -5
  88. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +7 -7
  89. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  90. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  91. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +34 -34
  92. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  93. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +6 -6
  94. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +47 -30
  95. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  96. package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  97. package/esm/internals/store/useCharts.d.ts +1 -1
  98. package/esm/locales/elGR.d.ts +19 -0
  99. package/esm/locales/elGR.js +15 -0
  100. package/esm/locales/index.d.ts +1 -0
  101. package/esm/locales/index.js +1 -0
  102. package/hooks/useInteractionItemProps.d.ts +14 -9
  103. package/hooks/useInteractionItemProps.js +29 -28
  104. package/index.d.ts +2 -1
  105. package/index.js +37 -11
  106. package/internals/index.d.ts +5 -0
  107. package/internals/index.js +44 -0
  108. package/internals/plugins/corePlugins/corePlugins.d.ts +3 -2
  109. package/internals/plugins/corePlugins/corePlugins.js +2 -1
  110. package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +1 -1
  111. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +1 -29
  112. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +3 -3
  113. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +0 -6
  114. package/internals/plugins/corePlugins/useChartId/useChartId.js +1 -0
  115. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  116. package/internals/plugins/corePlugins/useChartInteractionListener/index.d.ts +2 -0
  117. package/internals/plugins/corePlugins/useChartInteractionListener/index.js +12 -0
  118. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.d.ts +3 -0
  119. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.js +84 -0
  120. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.d.ts +31 -0
  121. package/internals/plugins/corePlugins/useChartInteractionListener/useChartInteractionListener.types.js +5 -0
  122. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +2 -2
  123. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +4 -4
  124. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +44 -33
  125. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +5 -5
  126. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +7 -7
  127. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +5 -5
  128. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +6 -6
  129. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +34 -34
  130. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +5 -5
  131. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +6 -6
  132. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +46 -30
  133. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +1 -1
  134. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +1 -1
  135. package/internals/store/useCharts.d.ts +1 -1
  136. package/locales/elGR.d.ts +19 -0
  137. package/locales/elGR.js +21 -0
  138. package/locales/index.d.ts +1 -0
  139. package/locales/index.js +11 -0
  140. package/package.json +3 -2
package/esm/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export * from "./SparkLineChart/index.js";
23
23
  export * from "./Gauge/index.js";
24
24
  export * from "./RadarChart/index.js";
25
25
  export * from "./ChartsSurface/index.js";
26
- export * from "./ChartContainer/index.js";
26
+ export { ChartContainer } from "./ChartContainer/index.js";
27
+ export type { ChartContainerProps } from "./ChartContainer/index.js";
27
28
  export * from "./ChartDataProvider/index.js";
28
29
  export * from "./Toolbar/index.js";
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts v8.6.0
2
+ * @mui/x-charts v8.7.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -30,6 +30,6 @@ export * from "./SparkLineChart/index.js";
30
30
  export * from "./Gauge/index.js";
31
31
  export * from "./RadarChart/index.js";
32
32
  export * from "./ChartsSurface/index.js";
33
- export * from "./ChartContainer/index.js";
33
+ export { ChartContainer } from "./ChartContainer/index.js";
34
34
  export * from "./ChartDataProvider/index.js";
35
35
  export * from "./Toolbar/index.js";
@@ -6,8 +6,12 @@ export { useSeries } from "../hooks/useSeries.js";
6
6
  export { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
7
7
  export { useDrawingArea } from "../hooks/useDrawingArea.js";
8
8
  export { useScatterChartProps } from "../ScatterChart/useScatterChartProps.js";
9
+ export { useScatterPlotData } from "../ScatterChart/useScatterPlotData.js";
9
10
  export { useLineChartProps } from "../LineChart/useLineChartProps.js";
11
+ export { useAreaPlotData } from "../LineChart/useAreaPlotData.js";
12
+ export { useLinePlotData } from "../LineChart/useLinePlotData.js";
10
13
  export { useBarChartProps } from "../BarChart/useBarChartProps.js";
14
+ export { useBarPlotData } from "../BarChart/useBarPlotData.js";
11
15
  export { useRadarChartProps } from "../RadarChart/useRadarChartProps.js";
12
16
  export * from "../ChartContainer/useChartContainerProps.js";
13
17
  export * from "../ChartDataProvider/useChartDataProviderProps.js";
@@ -15,6 +19,7 @@ export * from "./createSeriesSelectorOfType.js";
15
19
  export * from "./plugins/corePlugins/useChartId/index.js";
16
20
  export * from "./plugins/corePlugins/useChartSeries/index.js";
17
21
  export * from "./plugins/corePlugins/useChartDimensions/index.js";
22
+ export * from "./plugins/corePlugins/useChartInteractionListener/index.js";
18
23
  export * from "./plugins/featurePlugins/useChartZAxis/index.js";
19
24
  export * from "./plugins/featurePlugins/useChartCartesianAxis/index.js";
20
25
  export * from "./plugins/featurePlugins/useChartPolarAxis/index.js";
@@ -9,8 +9,12 @@ export { useSeries } from "../hooks/useSeries.js";
9
9
  export { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
10
10
  export { useDrawingArea } from "../hooks/useDrawingArea.js";
11
11
  export { useScatterChartProps } from "../ScatterChart/useScatterChartProps.js";
12
+ export { useScatterPlotData } from "../ScatterChart/useScatterPlotData.js";
12
13
  export { useLineChartProps } from "../LineChart/useLineChartProps.js";
14
+ export { useAreaPlotData } from "../LineChart/useAreaPlotData.js";
15
+ export { useLinePlotData } from "../LineChart/useLinePlotData.js";
13
16
  export { useBarChartProps } from "../BarChart/useBarChartProps.js";
17
+ export { useBarPlotData } from "../BarChart/useBarPlotData.js";
14
18
  export { useRadarChartProps } from "../RadarChart/useRadarChartProps.js";
15
19
  export * from "../ChartContainer/useChartContainerProps.js";
16
20
  export * from "../ChartDataProvider/useChartDataProviderProps.js";
@@ -20,6 +24,7 @@ export * from "./createSeriesSelectorOfType.js";
20
24
  export * from "./plugins/corePlugins/useChartId/index.js";
21
25
  export * from "./plugins/corePlugins/useChartSeries/index.js";
22
26
  export * from "./plugins/corePlugins/useChartDimensions/index.js";
27
+ export * from "./plugins/corePlugins/useChartInteractionListener/index.js";
23
28
  export * from "./plugins/featurePlugins/useChartZAxis/index.js";
24
29
  export * from "./plugins/featurePlugins/useChartCartesianAxis/index.js";
25
30
  export * from "./plugins/featurePlugins/useChartPolarAxis/index.js";
@@ -2,10 +2,11 @@ import { type UseChartAnimationSignature } from "./useChartAnimation/index.js";
2
2
  import { type UseChartDimensionsSignature } from "./useChartDimensions/index.js";
3
3
  import { type UseChartIdSignature, UseChartIdParameters } from "./useChartId/index.js";
4
4
  import { type UseChartSeriesSignature } from "./useChartSeries/index.js";
5
+ import { type UseChartInteractionListenerSignature } from "./useChartInteractionListener/index.js";
5
6
  /**
6
7
  * Internal plugins that create the tools used by the other plugins.
7
8
  * These plugins are used by the Charts components.
8
9
  */
9
- export declare const CHART_CORE_PLUGINS: readonly [import("../models/index.js").ChartPlugin<UseChartIdSignature>, import("../models/index.js").ChartPlugin<UseChartDimensionsSignature>, import("../models/index.js").ChartPlugin<UseChartSeriesSignature>, import("../models/index.js").ChartPlugin<UseChartAnimationSignature>];
10
- export type ChartCorePluginSignatures = [UseChartIdSignature, UseChartDimensionsSignature, UseChartSeriesSignature, UseChartAnimationSignature];
10
+ export declare const CHART_CORE_PLUGINS: readonly [import("../models/index.js").ChartPlugin<UseChartIdSignature>, import("../models/index.js").ChartPlugin<UseChartDimensionsSignature>, import("../models/index.js").ChartPlugin<UseChartSeriesSignature>, import("../models/index.js").ChartPlugin<UseChartInteractionListenerSignature>, import("../models/index.js").ChartPlugin<UseChartAnimationSignature>];
11
+ export type ChartCorePluginSignatures = [UseChartIdSignature, UseChartDimensionsSignature, UseChartSeriesSignature, UseChartAnimationSignature, UseChartInteractionListenerSignature];
11
12
  export interface ChartCorePluginParameters extends UseChartIdParameters {}
@@ -2,9 +2,10 @@ import { useChartAnimation } from "./useChartAnimation/index.js";
2
2
  import { useChartDimensions } from "./useChartDimensions/index.js";
3
3
  import { useChartId } from "./useChartId/index.js";
4
4
  import { useChartSeries } from "./useChartSeries/index.js";
5
+ import { useChartInteractionListener } from "./useChartInteractionListener/index.js";
5
6
 
6
7
  /**
7
8
  * Internal plugins that create the tools used by the other plugins.
8
9
  * These plugins are used by the Charts components.
9
10
  */
10
- export const CHART_CORE_PLUGINS = [useChartId, useChartDimensions, useChartSeries, useChartAnimation];
11
+ export const CHART_CORE_PLUGINS = [useChartId, useChartDimensions, useChartSeries, useChartInteractionListener, useChartAnimation];
@@ -1,4 +1,4 @@
1
- export declare const selectorChartSkipAnimation: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("./useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
1
+ export declare const selectorChartSkipAnimation: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("./useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
2
2
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
3
3
  } & {
4
4
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -8,7 +8,6 @@ import { useSelector } from "../../../store/useSelector.js";
8
8
  import { DEFAULT_MARGINS } from "../../../../constants/index.js";
9
9
  import { selectorChartDrawingArea } from "./useChartDimensions.selectors.js";
10
10
  import { defaultizeMargin } from "../../../defaultizeMargin.js";
11
- import { getSVGPoint } from "../../../getSVGPoint.js";
12
11
  const MAX_COMPUTE_RUN = 10;
13
12
  export const useChartDimensions = ({
14
13
  params,
@@ -155,38 +154,11 @@ export const useChartDimensions = ({
155
154
  }
156
155
  return isXInside(x) && isYInside(y);
157
156
  }, [isXInside, isYInside]);
158
- const isElementInside = React.useCallback(element => {
159
- const svgElement = svgRef.current;
160
- if (!element || !(element instanceof Element) || !svgElement) {
161
- return false;
162
- }
163
- // For element allowed to overflow, wrapping them in <g data-drawing-container /> make them fully part of the drawing area.
164
- if (element.closest('[data-drawing-container]')) {
165
- return true;
166
- }
167
- const rect = element.getBoundingClientRect();
168
- const {
169
- x: left,
170
- y: top
171
- } = getSVGPoint(svgElement, {
172
- clientX: rect.left,
173
- clientY: rect.top
174
- });
175
- const {
176
- x: right,
177
- y: bottom
178
- } = getSVGPoint(svgElement, {
179
- clientX: rect.right,
180
- clientY: rect.bottom
181
- });
182
- return isXInside(left) && isXInside(right) && isYInside(top) && isYInside(bottom);
183
- }, [isXInside, isYInside, svgRef]);
184
157
  return {
185
158
  instance: {
186
159
  isPointInside,
187
160
  isXInside,
188
- isYInside,
189
- isElementInside
161
+ isYInside
190
162
  }
191
163
  };
192
164
  };
@@ -3,7 +3,7 @@ import type { UseChartDimensionsSignature } from "./useChartDimensions.types.js"
3
3
  import { ChartState } from "../../models/chart.js";
4
4
  export declare const selectorChartDimensionsState: ChartRootSelector<UseChartDimensionsSignature>;
5
5
  export declare const selectorChartMargin: (state: ChartState<[UseChartDimensionsSignature]>) => import("./useChartDimensions.types.js").ChartMargin;
6
- export declare const selectorChartDrawingArea: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
6
+ export declare const selectorChartDrawingArea: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
7
7
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
8
8
  } & Partial<import("../../../index.js").UseChartCartesianAxisState> & {
9
9
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -15,7 +15,7 @@ export declare const selectorChartDrawingArea: import("reselect").Selector<impor
15
15
  top: number;
16
16
  bottom: number;
17
17
  }, []>;
18
- export declare const selectorChartPropsSize: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
18
+ export declare const selectorChartPropsSize: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
19
19
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
20
20
  } & {
21
21
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -23,7 +23,7 @@ export declare const selectorChartPropsSize: import("reselect").Selector<import(
23
23
  width: number | undefined;
24
24
  height: number | undefined;
25
25
  }, any[]>;
26
- export declare const selectorChartContainerSize: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
26
+ export declare const selectorChartContainerSize: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("./useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
27
27
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
28
28
  } & {
29
29
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -63,12 +63,6 @@ export interface UseChartDimensionsState {
63
63
  };
64
64
  }
65
65
  export interface UseChartDimensionsInstance {
66
- /**
67
- * Checks if an element is inside the drawing area.
68
- * @param {Element | EventTarget | null} element The element to check.
69
- * @returns {boolean} `true` if the element is inside the drawing area, `false` otherwise.
70
- */
71
- isElementInside: (element: Element | EventTarget | null | undefined) => boolean;
72
66
  /**
73
67
  * Checks if a point is inside the drawing area.
74
68
  * @param {number} x The x coordinate of the point.
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import { createChartDefaultId } from "./useChartId.utils.js";
@@ -3,7 +3,7 @@
3
3
  * @param {ChartState<[UseChartIdSignature]>} state The state of the chart.
4
4
  * @returns {string} The id attribute of the chart.
5
5
  */
6
- export declare const selectorChartId: import("reselect").Selector<import("./useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
6
+ export declare const selectorChartId: import("reselect").Selector<import("./useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
7
7
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
8
8
  } & {
9
9
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -0,0 +1,2 @@
1
+ export { useChartInteractionListener } from "./useChartInteractionListener.js";
2
+ export type { UseChartInteractionListenerParameters, UseChartInteractionListenerState, UseChartInteractionListenerInstance, UseChartInteractionListenerSignature, ChartInteraction } from "./useChartInteractionListener.types.js";
@@ -0,0 +1 @@
1
+ export { useChartInteractionListener } from "./useChartInteractionListener.js";
@@ -0,0 +1,3 @@
1
+ import { ChartPlugin } from "../../models/index.js";
2
+ import { UseChartInteractionListenerSignature } from "./useChartInteractionListener.types.js";
3
+ export declare const useChartInteractionListener: ChartPlugin<UseChartInteractionListenerSignature>;
@@ -0,0 +1,77 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { GestureManager, MoveGesture, PanGesture, PinchGesture, PressGesture, TapGesture, TurnWheelGesture } from '@mui/x-internal-gestures/core';
5
+ const preventDefault = event => event.preventDefault();
6
+ export const useChartInteractionListener = ({
7
+ svgRef
8
+ }) => {
9
+ React.useEffect(() => {
10
+ const svg = svgRef.current;
11
+ if (!svg) {
12
+ return undefined;
13
+ }
14
+ const gestureManager = new GestureManager({
15
+ gestures: [new PanGesture({
16
+ name: 'pan',
17
+ threshold: 0,
18
+ maxPointers: 1
19
+ }), new MoveGesture({
20
+ name: 'move',
21
+ preventIf: ['pan', 'pinch'] // Prevent move gesture when pan is active
22
+ }), new PinchGesture({
23
+ name: 'pinch',
24
+ threshold: 5,
25
+ preventIf: ['pan']
26
+ }), new TurnWheelGesture({
27
+ name: 'turnWheel',
28
+ sensitivity: 0.01,
29
+ initialDelta: 1
30
+ }), new TapGesture({
31
+ name: 'tap',
32
+ maxDistance: 10,
33
+ preventIf: ['pan', 'pinch']
34
+ }), new PressGesture({
35
+ name: 'quickPress',
36
+ duration: 50,
37
+ maxDistance: 10
38
+ })]
39
+ });
40
+ gestureManager.registerElement(['pan', 'move', 'pinch', 'turnWheel', 'tap', 'quickPress'], svg);
41
+ return () => {
42
+ // Cleanup gesture manager
43
+ gestureManager.destroy();
44
+ };
45
+ }, [svgRef]);
46
+ const addInteractionListener = React.useCallback((interaction, callback, options) => {
47
+ // Forcefully cast the svgRef to any, it is annoying to fix the types.
48
+ const svg = svgRef.current;
49
+ svg?.addEventListener(interaction, callback, options);
50
+ return {
51
+ cleanup: () => svg?.removeEventListener(interaction, callback)
52
+ };
53
+ }, [svgRef]);
54
+ React.useEffect(() => {
55
+ const svg = svgRef.current;
56
+
57
+ // Disable gesture on safari
58
+ // https://use-gesture.netlify.app/docs/gestures/#about-the-pinch-gesture
59
+ svg?.addEventListener('gesturestart', preventDefault);
60
+ svg?.addEventListener('gesturechange', preventDefault);
61
+ svg?.addEventListener('gestureend', preventDefault);
62
+ return () => {
63
+ svg?.removeEventListener('gesturestart', preventDefault);
64
+ svg?.removeEventListener('gesturechange', preventDefault);
65
+ svg?.removeEventListener('gestureend', preventDefault);
66
+ };
67
+ }, [svgRef]);
68
+ return {
69
+ instance: {
70
+ addInteractionListener
71
+ }
72
+ };
73
+ };
74
+ useChartInteractionListener.params = {};
75
+ useChartInteractionListener.getInitialState = () => {
76
+ return {};
77
+ };
@@ -0,0 +1,31 @@
1
+ import { MoveEvent, PanEvent, PinchEvent, PressEvent, TapEvent, TurnWheelEvent } from '@mui/x-internal-gestures/core';
2
+ import { ChartPluginSignature } from "../../models/index.js";
3
+ export type ChartInteraction = 'pan' | 'panStart' | 'panEnd' | 'pinch' | 'pinchStart' | 'pinchEnd' | 'move' | 'moveStart' | 'moveEnd' | 'quickPress' | 'quickPressEnd' | 'turnWheel' | 'tap';
4
+ export type InteractionListenerResult = {
5
+ cleanup: () => void;
6
+ };
7
+ export type AddInteractionListener = {
8
+ <CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'pan' | 'panStart' | 'panEnd', callback: (event: PanEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
9
+ <CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'pinch' | 'pinchStart' | 'pinchEnd', callback: (event: PinchEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
10
+ <CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'turnWheel', callback: (event: TurnWheelEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
11
+ <CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'move' | 'moveStart' | 'moveEnd', callback: (event: MoveEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
12
+ <CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'tap', callback: (event: TapEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
13
+ <CustomData extends Record<string, unknown> = Record<string, unknown>>(interaction: 'quickPress' | 'quickPressEnd', callback: (event: PressEvent<CustomData>) => void, options?: boolean | AddEventListenerOptions): InteractionListenerResult;
14
+ };
15
+ export interface UseChartInteractionListenerParameters {}
16
+ export interface UseChartInteractionListenerState {}
17
+ export interface UseChartInteractionListenerInstance {
18
+ /**
19
+ * Adds an interaction listener to the SVG element.
20
+ *
21
+ * @param interaction The interaction to listen to.
22
+ * @param callback The callback to call when the interaction occurs.
23
+ */
24
+ addInteractionListener: AddInteractionListener;
25
+ }
26
+ export type UseChartInteractionListenerSignature = ChartPluginSignature<{
27
+ params: UseChartInteractionListenerParameters;
28
+ defaultizedParams: UseChartInteractionListenerParameters;
29
+ state: UseChartInteractionListenerState;
30
+ instance: UseChartInteractionListenerInstance;
31
+ }>;
@@ -1,12 +1,12 @@
1
1
  import { ChartRootSelector } from "../../utils/selectors.js";
2
2
  import { UseChartSeriesSignature } from "./useChartSeries.types.js";
3
3
  export declare const selectorChartSeriesState: ChartRootSelector<UseChartSeriesSignature>;
4
- export declare const selectorChartSeriesProcessed: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
4
+ export declare const selectorChartSeriesProcessed: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
5
5
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
6
6
  } & {
7
7
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
8
8
  }, import("./useChartSeries.types.js").ProcessedSeries<keyof import("../../../index.js").ChartsSeriesConfig>, any[]>;
9
- export declare const selectorChartSeriesConfig: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
9
+ export declare const selectorChartSeriesConfig: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("./useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../useChartInteractionListener/index.js").UseChartInteractionListenerState & Partial<{}> & {
10
10
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
11
11
  } & {
12
12
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -1,19 +1,19 @@
1
- export declare const selectorChartLeftAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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 & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
1
+ export declare const selectorChartLeftAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
2
2
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
3
3
  } & {
4
4
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
5
5
  }, number, []>;
6
- export declare const selectorChartRightAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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 & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
6
+ export declare const selectorChartRightAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
7
7
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
8
8
  } & {
9
9
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
10
10
  }, number, []>;
11
- export declare const selectorChartTopAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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 & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
11
+ export declare const selectorChartTopAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
12
12
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
13
13
  } & {
14
14
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
15
15
  }, number, []>;
16
- export declare const selectorChartBottomAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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 & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
16
+ export declare const selectorChartBottomAxisSize: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
17
17
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
18
18
  } & {
19
19
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -62,39 +62,52 @@ export const useChartCartesianAxis = ({
62
62
  const usedYAxis = yAxisIds[0];
63
63
  React.useEffect(() => {
64
64
  const element = svgRef.current;
65
- if (!isInteractionEnabled || element === null || params.disableAxisListener) {
65
+ if (!isInteractionEnabled || !element || params.disableAxisListener) {
66
66
  return () => {};
67
67
  }
68
- const handleOut = () => {
69
- instance.cleanInteraction?.();
70
- };
71
- const handleMove = event => {
72
- const target = 'targetTouches' in event ? event.targetTouches[0] : event;
73
- const svgPoint = getSVGPoint(element, target);
74
- if (!instance.isPointInside(svgPoint.x, svgPoint.y, event.target)) {
68
+
69
+ // Clean the interaction when the mouse leaves the chart.
70
+ const moveEndHandler = instance.addInteractionListener('moveEnd', event => {
71
+ if (!event.detail.activeGestures.pan) {
75
72
  instance.cleanInteraction?.();
76
- return;
77
73
  }
78
- instance.setPointerCoordinate?.(svgPoint);
79
- };
80
- const handleDown = event => {
81
- const target = event.currentTarget;
82
- if (!target) {
83
- return;
74
+ });
75
+ const panEndHandler = instance.addInteractionListener('panEnd', event => {
76
+ if (!event.detail.activeGestures.move) {
77
+ instance.cleanInteraction?.();
84
78
  }
85
- if ('hasPointerCapture' in target && target.hasPointerCapture(event.pointerId)) {
86
- target.releasePointerCapture(event.pointerId);
79
+ });
80
+ const pressEndHandler = instance.addInteractionListener('quickPressEnd', event => {
81
+ if (!event.detail.activeGestures.move && !event.detail.activeGestures.pan) {
82
+ instance.cleanInteraction?.();
87
83
  }
84
+ });
85
+ const gestureHandler = event => {
86
+ const srvEvent = event.detail.srcEvent;
87
+ const target = event.detail.target;
88
+ const svgPoint = getSVGPoint(element, srvEvent);
89
+
90
+ // Release the pointer capture if we are panning, as this would cause the tooltip to
91
+ // be locked to the first "section" it touches.
92
+ if (event.detail.srcEvent.buttons >= 1 && target?.hasPointerCapture(event.detail.srcEvent.pointerId) && !target?.closest('[data-charts-zoom-slider]')) {
93
+ target?.releasePointerCapture(event.detail.srcEvent.pointerId);
94
+ }
95
+ if (!instance.isPointInside(svgPoint.x, svgPoint.y, target)) {
96
+ instance.cleanInteraction?.();
97
+ return;
98
+ }
99
+ instance.setPointerCoordinate?.(svgPoint);
88
100
  };
89
- element.addEventListener('pointerdown', handleDown);
90
- element.addEventListener('pointermove', handleMove);
91
- element.addEventListener('pointercancel', handleOut);
92
- element.addEventListener('pointerleave', handleOut);
101
+ const moveHandler = instance.addInteractionListener('move', gestureHandler);
102
+ const panHandler = instance.addInteractionListener('pan', gestureHandler);
103
+ const pressHandler = instance.addInteractionListener('quickPress', gestureHandler);
93
104
  return () => {
94
- element.removeEventListener('pointerdown', handleDown);
95
- element.removeEventListener('pointermove', handleMove);
96
- element.removeEventListener('pointercancel', handleOut);
97
- element.removeEventListener('pointerleave', handleOut);
105
+ moveHandler.cleanup();
106
+ moveEndHandler.cleanup();
107
+ panHandler.cleanup();
108
+ panEndHandler.cleanup();
109
+ pressHandler.cleanup();
110
+ pressEndHandler.cleanup();
98
111
  };
99
112
  }, [svgRef, store, xAxisWithScale, usedXAxis, yAxisWithScale, usedYAxis, instance, params.disableAxisListener, isInteractionEnabled]);
100
113
  React.useEffect(() => {
@@ -103,11 +116,10 @@ export const useChartCartesianAxis = ({
103
116
  if (element === null || !onAxisClick) {
104
117
  return () => {};
105
118
  }
106
- const handleMouseClick = event => {
107
- event.preventDefault();
119
+ const axisClickHandler = instance.addInteractionListener('tap', event => {
108
120
  let dataIndex = null;
109
121
  let isXAxis = false;
110
- const svgPoint = getSVGPoint(element, event);
122
+ const svgPoint = getSVGPoint(element, event.detail.srcEvent);
111
123
  const xIndex = getAxisIndex(xAxisWithScale[usedXAxis], svgPoint.x);
112
124
  isXAxis = xIndex !== -1;
113
125
  dataIndex = isXAxis ? xIndex : getAxisIndex(yAxisWithScale[usedYAxis], svgPoint.y);
@@ -130,17 +142,16 @@ export const useChartCartesianAxis = ({
130
142
  }
131
143
  });
132
144
  });
133
- onAxisClick(event, {
145
+ onAxisClick(event.detail.srcEvent, {
134
146
  dataIndex,
135
147
  axisValue,
136
148
  seriesValues
137
149
  });
138
- };
139
- element.addEventListener('click', handleMouseClick);
150
+ });
140
151
  return () => {
141
- element.removeEventListener('click', handleMouseClick);
152
+ axisClickHandler.cleanup();
142
153
  };
143
- }, [params.onAxisClick, processedSeries, svgRef, xAxisWithScale, xAxisIds, yAxisWithScale, yAxisIds, usedXAxis, usedYAxis]);
154
+ }, [params.onAxisClick, processedSeries, svgRef, xAxisWithScale, xAxisIds, yAxisWithScale, yAxisIds, usedXAxis, usedYAxis, instance]);
144
155
  return {};
145
156
  };
146
157
  useChartCartesianAxis.params = {
@@ -4,17 +4,17 @@ export declare const createZoomMap: (zoom: readonly ZoomData[]) => Map<AxisId, Z
4
4
  /**
5
5
  * Following selectors are not exported because they exist in the MIT chart only to ba able to reuse the Zoom state from the pro.
6
6
  */
7
- export declare const selectorChartZoomIsInteracting: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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 & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
7
+ export declare const selectorChartZoomIsInteracting: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
8
8
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
9
9
  } & {
10
10
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
11
11
  }, boolean | undefined, []>;
12
- export declare const selectorChartZoomMap: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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 & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
12
+ export declare const selectorChartZoomMap: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
13
13
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
14
14
  } & {
15
15
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
16
16
  }, Map<AxisId, ZoomData> | undefined, []>;
17
- export declare const selectorChartZoomOptionsLookup: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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 & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
17
+ export declare const selectorChartZoomOptionsLookup: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
18
18
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
19
19
  } & {
20
20
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
@@ -26,12 +26,12 @@ export declare const selectorChartAxisZoomOptionsLookup: import("reselect").Sele
26
26
  /**
27
27
  * The only interesting selectors that merge axis data and zoom if provided.
28
28
  */
29
- export declare const selectorChartXAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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 & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
29
+ export declare const selectorChartXAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
30
30
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
31
31
  } & Partial<{}> & {
32
32
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
33
33
  }, import("./computeAxisValue.js").ComputeResult<import("../../../index.js").ChartsXAxisProps>, []>;
34
- export declare const selectorChartYAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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 & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
34
+ export declare const selectorChartYAxis: import("reselect").Selector<import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
35
35
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
36
36
  } & Partial<{}> & {
37
37
  cacheKey: import("../../models/index.js").ChartStateCacheKey;