@mui/x-charts-pro 8.5.3 → 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 (124) hide show
  1. package/CHANGELOG.md +210 -0
  2. package/ChartContainerPro/index.d.ts +7 -1
  3. package/ChartContainerPro/index.js +0 -11
  4. package/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
  5. package/ChartZoomSlider/index.d.ts +2 -1
  6. package/ChartZoomSlider/index.js +10 -2
  7. package/ChartZoomSlider/internals/ChartAxisZoomSlider.js +4 -0
  8. package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +7 -1
  9. package/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +9 -1
  10. package/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.d.ts +15 -0
  11. package/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.js +31 -0
  12. package/ChartsToolbarPro/ChartsToolbarImageExportTrigger.d.ts +27 -0
  13. package/ChartsToolbarPro/ChartsToolbarImageExportTrigger.js +77 -0
  14. package/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.d.ts +33 -0
  15. package/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.js +75 -0
  16. package/ChartsToolbarPro/ChartsToolbarPro.d.ts +16 -3
  17. package/ChartsToolbarPro/ChartsToolbarPro.js +118 -8
  18. package/ChartsToolbarPro/index.d.ts +3 -1
  19. package/ChartsToolbarPro/index.js +22 -0
  20. package/ChartsToolbarPro/internals/ChartsMenu.d.ts +14 -0
  21. package/ChartsToolbarPro/internals/ChartsMenu.js +73 -0
  22. package/ChartsToolbarPro/internals/ChartsToolbarDivider.d.ts +5 -0
  23. package/ChartsToolbarPro/internals/ChartsToolbarDivider.js +47 -0
  24. package/FunnelChart/funnelAxisPlugin/useChartFunnelAxis.js +43 -33
  25. package/FunnelChart/funnelAxisPlugin/useChartFunnelAxisRendering.selectors.d.ts +3 -3
  26. package/{ChartContainerPro → context}/ChartProApi.d.ts +2 -3
  27. package/context/index.d.ts +2 -1
  28. package/context/index.js +4 -4
  29. package/context/useChartProApiContext.d.ts +9 -0
  30. package/context/{useChartApiContext.js → useChartProApiContext.js} +4 -4
  31. package/esm/ChartContainerPro/index.d.ts +7 -1
  32. package/esm/ChartContainerPro/index.js +4 -1
  33. package/esm/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
  34. package/esm/ChartZoomSlider/index.d.ts +2 -1
  35. package/esm/ChartZoomSlider/index.js +2 -1
  36. package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.js +4 -0
  37. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +8 -1
  38. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +10 -1
  39. package/esm/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.d.ts +15 -0
  40. package/esm/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.js +21 -0
  41. package/esm/ChartsToolbarPro/ChartsToolbarImageExportTrigger.d.ts +27 -0
  42. package/esm/ChartsToolbarPro/ChartsToolbarImageExportTrigger.js +70 -0
  43. package/esm/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.d.ts +33 -0
  44. package/esm/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.js +68 -0
  45. package/esm/ChartsToolbarPro/ChartsToolbarPro.d.ts +16 -3
  46. package/esm/ChartsToolbarPro/ChartsToolbarPro.js +120 -8
  47. package/esm/ChartsToolbarPro/index.d.ts +3 -1
  48. package/esm/ChartsToolbarPro/index.js +3 -1
  49. package/esm/ChartsToolbarPro/internals/ChartsMenu.d.ts +14 -0
  50. package/esm/ChartsToolbarPro/internals/ChartsMenu.js +67 -0
  51. package/esm/ChartsToolbarPro/internals/ChartsToolbarDivider.d.ts +5 -0
  52. package/esm/ChartsToolbarPro/internals/ChartsToolbarDivider.js +40 -0
  53. package/esm/FunnelChart/funnelAxisPlugin/useChartFunnelAxis.js +43 -33
  54. package/esm/FunnelChart/funnelAxisPlugin/useChartFunnelAxisRendering.selectors.d.ts +3 -3
  55. package/esm/{ChartContainerPro → context}/ChartProApi.d.ts +2 -3
  56. package/esm/context/index.d.ts +2 -1
  57. package/esm/context/index.js +2 -1
  58. package/esm/context/useChartProApiContext.d.ts +9 -0
  59. package/esm/context/{useChartApiContext.js → useChartProApiContext.js} +3 -3
  60. package/esm/hooks/index.d.ts +2 -1
  61. package/esm/hooks/index.js +2 -1
  62. package/esm/hooks/useChartProApiRef.d.ts +23 -0
  63. package/esm/hooks/useChartProApiRef.js +20 -0
  64. package/esm/index.d.ts +6 -3
  65. package/esm/index.js +3 -3
  66. package/esm/internals/material/components/BaseMenuItem.d.ts +3 -0
  67. package/esm/internals/material/components/BaseMenuItem.js +27 -0
  68. package/esm/internals/material/components/BasePopper.d.ts +3 -0
  69. package/esm/internals/material/components/BasePopper.js +122 -0
  70. package/esm/internals/material/icons.d.ts +2 -1
  71. package/esm/internals/material/icons.js +4 -1
  72. package/esm/internals/material/index.d.ts +1 -0
  73. package/esm/internals/material/index.js +12 -3
  74. package/esm/internals/plugins/allPlugins.d.ts +2 -2
  75. package/esm/internals/plugins/useChartProExport/print.js +1 -1
  76. package/esm/internals/plugins/useChartProExport/useChartProExport.types.d.ts +7 -6
  77. package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.d.ts +8 -0
  78. package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.js +58 -0
  79. package/esm/internals/plugins/useChartProZoom/{useChartProZoom.utils.d.ts → gestureHooks/useZoom.utils.d.ts} +14 -10
  80. package/esm/internals/plugins/useChartProZoom/{useChartProZoom.utils.js → gestureHooks/useZoom.utils.js} +41 -31
  81. package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.d.ts +8 -0
  82. package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.js +59 -0
  83. package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.d.ts +8 -0
  84. package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.js +79 -0
  85. package/esm/internals/plugins/useChartProZoom/useChartProZoom.js +15 -227
  86. package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +4 -4
  87. package/esm/internals/slots/chartBaseSlotProps.d.ts +50 -3
  88. package/esm/internals/slots/chartsBaseSlots.d.ts +5 -1
  89. package/esm/internals/slots/chartsIconSlots.d.ts +5 -0
  90. package/hooks/index.d.ts +2 -1
  91. package/hooks/index.js +11 -0
  92. package/hooks/useChartProApiRef.d.ts +23 -0
  93. package/hooks/useChartProApiRef.js +28 -0
  94. package/index.d.ts +6 -3
  95. package/index.js +58 -22
  96. package/internals/material/components/BaseMenuItem.d.ts +3 -0
  97. package/internals/material/components/BaseMenuItem.js +35 -0
  98. package/internals/material/components/BasePopper.d.ts +3 -0
  99. package/internals/material/components/BasePopper.js +130 -0
  100. package/internals/material/icons.d.ts +2 -1
  101. package/internals/material/icons.js +5 -2
  102. package/internals/material/index.d.ts +1 -0
  103. package/internals/material/index.js +11 -2
  104. package/internals/plugins/allPlugins.d.ts +2 -2
  105. package/internals/plugins/useChartProExport/print.js +1 -1
  106. package/internals/plugins/useChartProExport/useChartProExport.types.d.ts +7 -6
  107. package/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.d.ts +8 -0
  108. package/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.js +65 -0
  109. package/internals/plugins/useChartProZoom/{useChartProZoom.utils.d.ts → gestureHooks/useZoom.utils.d.ts} +14 -10
  110. package/internals/plugins/useChartProZoom/{useChartProZoom.utils.js → gestureHooks/useZoom.utils.js} +43 -34
  111. package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.d.ts +8 -0
  112. package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.js +66 -0
  113. package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.d.ts +8 -0
  114. package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.js +86 -0
  115. package/internals/plugins/useChartProZoom/useChartProZoom.js +14 -226
  116. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +4 -4
  117. package/internals/slots/chartBaseSlotProps.d.ts +50 -3
  118. package/internals/slots/chartsBaseSlots.d.ts +5 -1
  119. package/internals/slots/chartsIconSlots.d.ts +5 -0
  120. package/package.json +5 -4
  121. package/context/useChartApiContext.d.ts +0 -9
  122. package/esm/context/useChartApiContext.d.ts +0 -9
  123. /package/{ChartContainerPro → context}/ChartProApi.js +0 -0
  124. /package/esm/{ChartContainerPro → context}/ChartProApi.js +0 -0
@@ -1,24 +1,42 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
6
  Object.defineProperty(exports, "__esModule", {
6
7
  value: true
7
8
  });
8
9
  exports.ChartsToolbarPro = ChartsToolbarPro;
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _Toolbar = require("@mui/x-charts/Toolbar");
11
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
12
  var React = _interopRequireWildcard(require("react"));
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _Toolbar = require("@mui/x-charts/Toolbar");
12
15
  var _internals = require("@mui/x-charts/internals");
13
16
  var _hooks = require("@mui/x-charts/hooks");
17
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
18
+ var _ChartsToolbarDivider = require("./internals/ChartsToolbarDivider");
19
+ var _ChartsMenu = require("./internals/ChartsMenu");
14
20
  var _useChartProZoom = require("../internals/plugins/useChartProZoom");
15
21
  var _ChartsToolbarZoomInTrigger = require("./ChartsToolbarZoomInTrigger");
16
22
  var _ChartsToolbarZoomOutTrigger = require("./ChartsToolbarZoomOutTrigger");
23
+ var _ChartsToolbarPrintExportTrigger = require("./ChartsToolbarPrintExportTrigger");
24
+ var _ChartsToolbarImageExportTrigger = require("./ChartsToolbarImageExportTrigger");
17
25
  var _jsxRuntime = require("react/jsx-runtime");
26
+ const _excluded = ["printOptions", "imageExportOptions"];
27
+ const DEFAULT_IMAGE_EXPORT_OPTIONS = [{
28
+ type: 'image/png'
29
+ }];
30
+
18
31
  /**
19
32
  * The chart toolbar component for the pro package.
20
33
  */
21
- function ChartsToolbarPro(props) {
34
+ function ChartsToolbarPro(_ref) {
35
+ let {
36
+ printOptions,
37
+ imageExportOptions: rawImageExportOptions
38
+ } = _ref,
39
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
22
40
  const {
23
41
  slots,
24
42
  slotProps
@@ -29,7 +47,13 @@ function ChartsToolbarPro(props) {
29
47
  const {
30
48
  localeText
31
49
  } = (0, _hooks.useChartsLocalization)();
50
+ const [exportMenuOpen, setExportMenuOpen] = React.useState(false);
51
+ const exportMenuTriggerRef = React.useRef(null);
52
+ const exportMenuId = (0, _useId.default)();
53
+ const exportMenuTriggerId = (0, _useId.default)();
32
54
  const isZoomEnabled = (0, _internals.useSelector)(store, _useChartProZoom.selectorChartZoomIsEnabled);
55
+ const imageExportOptionList = rawImageExportOptions ?? DEFAULT_IMAGE_EXPORT_OPTIONS;
56
+ const showExportMenu = !printOptions?.disableToolbarButton || imageExportOptionList.length > 0;
33
57
  const children = [];
34
58
  if (isZoomEnabled) {
35
59
  const Tooltip = slots.baseTooltip;
@@ -38,22 +62,108 @@ function ChartsToolbarPro(props) {
38
62
  children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, slotProps.baseTooltip, {
39
63
  title: localeText.zoomIn,
40
64
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsToolbarZoomInTrigger.ChartsToolbarZoomInTrigger, {
41
- render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.ToolbarButton, {}),
42
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomInIcon, (0, _extends2.default)({}, slotProps.zoomInIcon))
65
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.ToolbarButton, {
66
+ size: "small"
67
+ }),
68
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomInIcon, (0, _extends2.default)({
69
+ fontSize: "small"
70
+ }, slotProps.zoomInIcon))
43
71
  })
44
72
  }), "zoom-in"));
45
73
  children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, slotProps.baseTooltip, {
46
74
  title: localeText.zoomOut,
47
75
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsToolbarZoomOutTrigger.ChartsToolbarZoomOutTrigger, {
48
- render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.ToolbarButton, {}),
49
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomOutIcon, (0, _extends2.default)({}, slotProps.zoomOutIcon))
76
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.ToolbarButton, {
77
+ size: "small"
78
+ }),
79
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomOutIcon, (0, _extends2.default)({
80
+ fontSize: "small"
81
+ }, slotProps.zoomOutIcon))
50
82
  })
51
83
  }), "zoom-out"));
52
84
  }
85
+ if (showExportMenu) {
86
+ const Tooltip = slots.baseTooltip;
87
+ const MenuList = slots.baseMenuList;
88
+ const MenuItem = slots.baseMenuItem;
89
+ const ExportIcon = slots.exportIcon;
90
+ const closeExportMenu = () => setExportMenuOpen(false);
91
+ const handleListKeyDown = event => {
92
+ if (event.key === 'Tab') {
93
+ event.preventDefault();
94
+ }
95
+ if (isHideMenuKey(event.key)) {
96
+ closeExportMenu();
97
+ }
98
+ };
99
+ if (children.length > 0) {
100
+ children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsToolbarDivider.ChartsToolbarDivider, {}, "divider"));
101
+ }
102
+ children.push(/*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
103
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, {
104
+ title: localeText.toolbarExport,
105
+ disableInteractive: exportMenuOpen,
106
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.ToolbarButton, {
107
+ ref: exportMenuTriggerRef,
108
+ id: exportMenuTriggerId,
109
+ "aria-controls": exportMenuId,
110
+ "aria-haspopup": "true",
111
+ "aria-expanded": exportMenuOpen ? 'true' : undefined,
112
+ onClick: () => setExportMenuOpen(!exportMenuOpen),
113
+ size: "small",
114
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ExportIcon, {
115
+ fontSize: "small"
116
+ })
117
+ })
118
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsMenu.ChartsMenu, {
119
+ target: exportMenuTriggerRef.current,
120
+ open: exportMenuOpen,
121
+ onClose: closeExportMenu,
122
+ position: "bottom-end",
123
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(MenuList, (0, _extends2.default)({
124
+ id: exportMenuId,
125
+ "aria-labelledby": exportMenuTriggerId,
126
+ onKeyDown: handleListKeyDown,
127
+ autoFocusItem: true
128
+ }, slotProps?.baseMenuList, {
129
+ children: [!printOptions?.disableToolbarButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsToolbarPrintExportTrigger.ChartsToolbarPrintExportTrigger, {
130
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuItem, (0, _extends2.default)({
131
+ dense: true
132
+ }, slotProps?.baseMenuItem)),
133
+ options: printOptions,
134
+ onClick: closeExportMenu,
135
+ children: localeText.toolbarExportPrint
136
+ }), imageExportOptionList.map(imageExportOptions => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsToolbarImageExportTrigger.ChartsToolbarImageExportTrigger, {
137
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuItem, (0, _extends2.default)({
138
+ dense: true
139
+ }, slotProps?.baseMenuItem)),
140
+ options: imageExportOptions,
141
+ onClick: closeExportMenu,
142
+ children: localeText.toolbarExportImage(imageExportOptions.type)
143
+ }, imageExportOptions.type))]
144
+ }))
145
+ })]
146
+ }, "export-menu"));
147
+ }
53
148
  if (children.length === 0) {
54
149
  return null;
55
150
  }
56
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.Toolbar, (0, _extends2.default)({}, props, {
151
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.Toolbar, (0, _extends2.default)({}, other, {
57
152
  children: children
58
153
  }));
154
+ }
155
+ process.env.NODE_ENV !== "production" ? ChartsToolbarPro.propTypes = {
156
+ // ----------------------------- Warning --------------------------------
157
+ // | These PropTypes are generated from the TypeScript type definitions |
158
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
159
+ // ----------------------------------------------------------------------
160
+ imageExportOptions: _propTypes.default.arrayOf(_propTypes.default.shape({
161
+ fileName: _propTypes.default.string,
162
+ quality: _propTypes.default.number,
163
+ type: _propTypes.default.string.isRequired
164
+ })),
165
+ printOptions: _propTypes.default.object
166
+ } : void 0;
167
+ function isHideMenuKey(key) {
168
+ return key === 'Tab' || key === 'Escape';
59
169
  }
@@ -1,3 +1,5 @@
1
1
  export * from "./ChartsToolbarPro.js";
2
2
  export * from "./ChartsToolbarZoomInTrigger.js";
3
- export * from "./ChartsToolbarZoomOutTrigger.js";
3
+ export * from "./ChartsToolbarZoomOutTrigger.js";
4
+ export * from "./ChartsToolbarPrintExportTrigger.js";
5
+ export * from "./ChartsToolbarImageExportTrigger.js";
@@ -35,4 +35,26 @@ Object.keys(_ChartsToolbarZoomOutTrigger).forEach(function (key) {
35
35
  return _ChartsToolbarZoomOutTrigger[key];
36
36
  }
37
37
  });
38
+ });
39
+ var _ChartsToolbarPrintExportTrigger = require("./ChartsToolbarPrintExportTrigger");
40
+ Object.keys(_ChartsToolbarPrintExportTrigger).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _ChartsToolbarPrintExportTrigger[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _ChartsToolbarPrintExportTrigger[key];
47
+ }
48
+ });
49
+ });
50
+ var _ChartsToolbarImageExportTrigger = require("./ChartsToolbarImageExportTrigger");
51
+ Object.keys(_ChartsToolbarImageExportTrigger).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _ChartsToolbarImageExportTrigger[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _ChartsToolbarImageExportTrigger[key];
58
+ }
59
+ });
38
60
  });
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { ChartBasePopperProps, Placement } from "../../internals/slots/chartBaseSlotProps.js";
3
+ export interface ChartsMenuProps extends Pick<ChartBasePopperProps, 'className' | 'onExited'> {
4
+ open: boolean;
5
+ target: HTMLElement | null;
6
+ onClose: (event?: Event) => void;
7
+ position?: Placement;
8
+ children: React.ReactNode;
9
+ }
10
+ declare function ChartsMenu(props: ChartsMenuProps): React.JSX.Element;
11
+ declare namespace ChartsMenu {
12
+ var propTypes: any;
13
+ }
14
+ export { ChartsMenu };
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.ChartsMenu = ChartsMenu;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
+ var React = _interopRequireWildcard(require("react"));
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
15
+ var _HTMLElementType = _interopRequireDefault(require("@mui/utils/HTMLElementType"));
16
+ var _internals = require("@mui/x-charts/internals");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ const _excluded = ["open", "target", "onClose", "children", "position", "className", "onExited"];
19
+ function ChartsMenu(props) {
20
+ const {
21
+ open,
22
+ target,
23
+ onClose,
24
+ children,
25
+ position,
26
+ onExited
27
+ } = props,
28
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
29
+ const {
30
+ slots,
31
+ slotProps
32
+ } = (0, _internals.useChartsSlots)();
33
+ const Popper = slots.basePopper;
34
+ const savedFocusRef = React.useRef(null);
35
+ (0, _useEnhancedEffect.default)(() => {
36
+ if (open) {
37
+ savedFocusRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
38
+ } else {
39
+ savedFocusRef.current?.focus?.();
40
+ savedFocusRef.current = null;
41
+ }
42
+ }, [open]);
43
+ const handleClickAway = event => {
44
+ if (event.target && (target === event.target || target?.contains(event.target))) {
45
+ return;
46
+ }
47
+ onClose(event);
48
+ };
49
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Popper, (0, _extends2.default)({
50
+ open: open,
51
+ target: target,
52
+ transition: true,
53
+ placement: position,
54
+ onClickAway: handleClickAway,
55
+ onExited: onExited,
56
+ clickAwayMouseEvent: "onMouseDown"
57
+ }, other, slotProps?.basePopper, {
58
+ children: children
59
+ }));
60
+ }
61
+ process.env.NODE_ENV !== "production" ? ChartsMenu.propTypes = {
62
+ // ----------------------------- Warning --------------------------------
63
+ // | These PropTypes are generated from the TypeScript type definitions |
64
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
65
+ // ----------------------------------------------------------------------
66
+ children: _propTypes.default.node,
67
+ className: _propTypes.default.string,
68
+ onClose: _propTypes.default.func.isRequired,
69
+ onExited: _propTypes.default.func,
70
+ open: _propTypes.default.bool.isRequired,
71
+ position: _propTypes.default.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
72
+ target: _HTMLElementType.default
73
+ } : void 0;
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { ChartBaseDividerProps } from "../../internals/slots/chartBaseSlotProps.js";
3
+ export interface ChartsToolbarDividerProps extends ChartBaseDividerProps {}
4
+ declare const ChartsToolbarDivider: React.ForwardRefExoticComponent<Omit<ChartsToolbarDividerProps, "ref"> & React.RefAttributes<HTMLHRElement>>;
5
+ export { ChartsToolbarDivider };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ChartsToolbarDivider = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _system = require("@mui/system");
13
+ var _internals = require("@mui/x-charts/internals");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ // This is workaround because api-docs-builder does not support the `NotRendered<ChartBaseDividerProps>` syntax.
16
+ const NotRenderedDivider = _internals.NotRendered;
17
+ const Divider = (0, _system.styled)(NotRenderedDivider, {
18
+ name: 'MuiChartsToolbar',
19
+ slot: 'Divider'
20
+ })(({
21
+ theme
22
+ }) => ({
23
+ margin: theme.spacing(0, 0.5),
24
+ height: '50%'
25
+ }));
26
+ const ChartsToolbarDivider = exports.ChartsToolbarDivider = /*#__PURE__*/React.forwardRef(function ChartsToolbarDivider(props, ref) {
27
+ const {
28
+ slots,
29
+ slotProps
30
+ } = (0, _internals.useChartsSlots)();
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Divider, (0, _extends2.default)({
32
+ as: slots.baseDivider,
33
+ orientation: "vertical"
34
+ }, slotProps.baseDivider, props, {
35
+ ref: ref
36
+ }));
37
+ });
38
+ if (process.env.NODE_ENV !== "production") ChartsToolbarDivider.displayName = "ChartsToolbarDivider";
39
+ process.env.NODE_ENV !== "production" ? ChartsToolbarDivider.propTypes = {
40
+ // ----------------------------- Warning --------------------------------
41
+ // | These PropTypes are generated from the TypeScript type definitions |
42
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
43
+ // ----------------------------------------------------------------------
44
+ className: _propTypes.default.string,
45
+ orientation: _propTypes.default.oneOf(['horizontal', 'vertical']),
46
+ style: _propTypes.default.object
47
+ } : void 0;
@@ -52,39 +52,51 @@ const useChartFunnelAxis = ({
52
52
  }, [seriesConfig, drawingArea, xAxis, yAxis, dataset, store, gap]);
53
53
  React.useEffect(() => {
54
54
  const element = svgRef.current;
55
- if (!isInteractionEnabled || element === null || params.disableAxisListener) {
55
+ if (!isInteractionEnabled || !element || params.disableAxisListener) {
56
56
  return () => {};
57
57
  }
58
- const handleOut = () => {
59
- instance.cleanInteraction?.();
60
- };
61
- const handleMove = event => {
62
- const target = 'targetTouches' in event ? event.targetTouches[0] : event;
63
- const svgPoint = (0, _internals.getSVGPoint)(element, target);
64
- if (!instance.isPointInside(svgPoint.x, svgPoint.y, event.target)) {
58
+
59
+ // Clean the interaction when the mouse leaves the chart.
60
+ const moveEndHandler = instance.addInteractionListener('moveEnd', event => {
61
+ if (!event.detail.activeGestures.pan) {
65
62
  instance.cleanInteraction?.();
66
- return;
67
63
  }
68
- instance.setPointerCoordinate?.(svgPoint);
69
- };
70
- const handleDown = event => {
71
- const target = event.currentTarget;
72
- if (!target) {
73
- return;
64
+ });
65
+ const panEndHandler = instance.addInteractionListener('panEnd', event => {
66
+ if (!event.detail.activeGestures.move) {
67
+ instance.cleanInteraction?.();
74
68
  }
75
- if ('hasPointerCapture' in target && target.hasPointerCapture(event.pointerId)) {
76
- target.releasePointerCapture(event.pointerId);
69
+ });
70
+ const pressEndHandler = instance.addInteractionListener('quickPressEnd', event => {
71
+ if (!event.detail.activeGestures.move && !event.detail.activeGestures.pan) {
72
+ instance.cleanInteraction?.();
73
+ }
74
+ });
75
+ const gestureHandler = event => {
76
+ const srvEvent = event.detail.srcEvent;
77
+ const target = event.detail.target;
78
+ const svgPoint = (0, _internals.getSVGPoint)(element, srvEvent);
79
+ // Release the pointer capture if we are panning, as this would cause the tooltip to
80
+ // be locked to the first "section" it touches.
81
+ if (event.detail.srcEvent.buttons >= 1 && target?.hasPointerCapture(event.detail.srcEvent.pointerId)) {
82
+ target?.releasePointerCapture(event.detail.srcEvent.pointerId);
77
83
  }
84
+ if (!instance.isPointInside(svgPoint.x, svgPoint.y, target)) {
85
+ instance.cleanInteraction?.();
86
+ return;
87
+ }
88
+ instance.setPointerCoordinate?.(svgPoint);
78
89
  };
79
- element.addEventListener('pointerdown', handleDown);
80
- element.addEventListener('pointermove', handleMove);
81
- element.addEventListener('pointercancel', handleOut);
82
- element.addEventListener('pointerleave', handleOut);
90
+ const moveHandler = instance.addInteractionListener('move', gestureHandler);
91
+ const panHandler = instance.addInteractionListener('pan', gestureHandler);
92
+ const pressHandler = instance.addInteractionListener('quickPress', gestureHandler);
83
93
  return () => {
84
- element.removeEventListener('pointerdown', handleDown);
85
- element.removeEventListener('pointermove', handleMove);
86
- element.removeEventListener('pointercancel', handleOut);
87
- element.removeEventListener('pointerleave', handleOut);
94
+ moveHandler.cleanup();
95
+ moveEndHandler.cleanup();
96
+ panHandler.cleanup();
97
+ panEndHandler.cleanup();
98
+ pressHandler.cleanup();
99
+ pressEndHandler.cleanup();
88
100
  };
89
101
  }, [svgRef, instance, params.disableAxisListener, isInteractionEnabled]);
90
102
  React.useEffect(() => {
@@ -93,8 +105,7 @@ const useChartFunnelAxis = ({
93
105
  if (element === null || !onAxisClick) {
94
106
  return () => {};
95
107
  }
96
- const handleMouseClick = event => {
97
- event.preventDefault();
108
+ const axisClickHandler = instance.addInteractionListener('tap', event => {
98
109
  const {
99
110
  axis: xAxisWithScale,
100
111
  axisIds: xAxisIds
@@ -108,7 +119,7 @@ const useChartFunnelAxis = ({
108
119
  const usedYAxis = yAxisIds[0];
109
120
  let dataIndex = null;
110
121
  let isXAxis = false;
111
- const svgPoint = (0, _internals.getSVGPoint)(element, event);
122
+ const svgPoint = (0, _internals.getSVGPoint)(element, event.detail.srcEvent);
112
123
  const xIndex = (0, _internals.getCartesianAxisIndex)(xAxisWithScale[usedXAxis], svgPoint.x);
113
124
  isXAxis = xIndex !== -1;
114
125
  dataIndex = isXAxis ? xIndex : (0, _internals.getCartesianAxisIndex)(yAxisWithScale[usedYAxis], svgPoint.y);
@@ -129,17 +140,16 @@ const useChartFunnelAxis = ({
129
140
  seriesValues[seriesId] = seriesItem.data[dataIndex].value;
130
141
  }
131
142
  });
132
- onAxisClick(event, {
143
+ onAxisClick(event.detail.srcEvent, {
133
144
  dataIndex,
134
145
  axisValue,
135
146
  seriesValues
136
147
  });
137
- };
138
- element.addEventListener('click', handleMouseClick);
148
+ });
139
149
  return () => {
140
- element.removeEventListener('click', handleMouseClick);
150
+ axisClickHandler.cleanup();
141
151
  };
142
- }, [params.onAxisClick, svgRef, store]);
152
+ }, [params.onAxisClick, svgRef, store, instance]);
143
153
  return {};
144
154
  };
145
155
  exports.useChartFunnelAxis = useChartFunnelAxis;
@@ -3,7 +3,7 @@ import { UseChartFunnelAxisSignature } from "./useChartFunnelAxis.types.js";
3
3
  export declare const selectorFunnel: (state: ChartState<[], [UseChartFunnelAxisSignature]>) => {
4
4
  gap: number;
5
5
  } | undefined;
6
- export declare const selectorFunnelGap: import("reselect").Selector<import("@mui/x-charts/internals/plugins/corePlugins/useChartId/useChartId.types").UseChartIdState & import("@mui/x-charts/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types").UseChartDimensionsState & import("@mui/x-charts/internals/plugins/corePlugins/useChartSeries/useChartSeries.types").UseChartSeriesState<keyof import("@mui/x-charts/internals").ChartsSeriesConfig> & import("@mui/x-charts/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.types").UseChartAnimationState & Partial<Pick<import("@mui/x-charts/internals").UseChartCartesianAxisState, "cartesianAxis"> & {
6
+ export declare const selectorFunnelGap: import("reselect").Selector<import("@mui/x-charts/internals/plugins/corePlugins/useChartId/useChartId.types").UseChartIdState & import("@mui/x-charts/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types").UseChartDimensionsState & import("@mui/x-charts/internals/plugins/corePlugins/useChartSeries/useChartSeries.types").UseChartSeriesState<keyof import("@mui/x-charts/internals").ChartsSeriesConfig> & import("@mui/x-charts/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.types").UseChartAnimationState & import("@mui/x-charts/internals").UseChartInteractionListenerState & Partial<Pick<import("@mui/x-charts/internals").UseChartCartesianAxisState, "cartesianAxis"> & {
7
7
  funnel: {
8
8
  gap: number;
9
9
  };
@@ -12,7 +12,7 @@ export declare const selectorFunnelGap: import("reselect").Selector<import("@mui
12
12
  } & {
13
13
  cacheKey: import("@mui/x-charts/internals").ChartStateCacheKey;
14
14
  }, number, []>;
15
- export declare const selectorChartXAxis: import("reselect").Selector<import("@mui/x-charts/internals/plugins/corePlugins/useChartId/useChartId.types").UseChartIdState & import("@mui/x-charts/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types").UseChartDimensionsState & import("@mui/x-charts/internals/plugins/corePlugins/useChartSeries/useChartSeries.types").UseChartSeriesState<keyof import("@mui/x-charts/internals").ChartsSeriesConfig> & import("@mui/x-charts/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.types").UseChartAnimationState & Partial<import("@mui/x-charts/internals").UseChartCartesianAxisState> & {
15
+ export declare const selectorChartXAxis: import("reselect").Selector<import("@mui/x-charts/internals/plugins/corePlugins/useChartId/useChartId.types").UseChartIdState & import("@mui/x-charts/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types").UseChartDimensionsState & import("@mui/x-charts/internals/plugins/corePlugins/useChartSeries/useChartSeries.types").UseChartSeriesState<keyof import("@mui/x-charts/internals").ChartsSeriesConfig> & import("@mui/x-charts/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.types").UseChartAnimationState & import("@mui/x-charts/internals").UseChartInteractionListenerState & Partial<import("@mui/x-charts/internals").UseChartCartesianAxisState> & {
16
16
  cacheKey: import("@mui/x-charts/internals").ChartStateCacheKey;
17
17
  } & Partial<{}> & {
18
18
  cacheKey: import("@mui/x-charts/internals").ChartStateCacheKey;
@@ -33,7 +33,7 @@ export declare const selectorChartXAxis: import("reselect").Selector<import("@mu
33
33
  }> & {
34
34
  cacheKey: import("@mui/x-charts/internals").ChartStateCacheKey;
35
35
  }, import("./computeAxisValue.js").ComputeResult<import("@mui/x-charts").ChartsXAxisProps>, []>;
36
- export declare const selectorChartYAxis: import("reselect").Selector<import("@mui/x-charts/internals/plugins/corePlugins/useChartId/useChartId.types").UseChartIdState & import("@mui/x-charts/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types").UseChartDimensionsState & import("@mui/x-charts/internals/plugins/corePlugins/useChartSeries/useChartSeries.types").UseChartSeriesState<keyof import("@mui/x-charts/internals").ChartsSeriesConfig> & import("@mui/x-charts/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.types").UseChartAnimationState & Partial<import("@mui/x-charts/internals").UseChartCartesianAxisState> & {
36
+ export declare const selectorChartYAxis: import("reselect").Selector<import("@mui/x-charts/internals/plugins/corePlugins/useChartId/useChartId.types").UseChartIdState & import("@mui/x-charts/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types").UseChartDimensionsState & import("@mui/x-charts/internals/plugins/corePlugins/useChartSeries/useChartSeries.types").UseChartSeriesState<keyof import("@mui/x-charts/internals").ChartsSeriesConfig> & import("@mui/x-charts/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.types").UseChartAnimationState & import("@mui/x-charts/internals").UseChartInteractionListenerState & Partial<import("@mui/x-charts/internals").UseChartCartesianAxisState> & {
37
37
  cacheKey: import("@mui/x-charts/internals").ChartStateCacheKey;
38
38
  } & Partial<{}> & {
39
39
  cacheKey: import("@mui/x-charts/internals").ChartStateCacheKey;
@@ -7,7 +7,7 @@ import { AllPluginSignatures, DefaultPluginSignatures } from "../internals/plugi
7
7
  import { FunnelChartPluginsSignatures } from "../FunnelChart/FunnelChart.plugins.js";
8
8
  import { RadarChartProPluginsSignatures } from "../RadarChartPro/RadarChartPro.plugins.js";
9
9
  import { PieChartProPluginSignatures } from "../PieChartPro/PieChartPro.plugins.js";
10
- type PluginsPerSeriesType = {
10
+ export type ProPluginsPerSeriesType = {
11
11
  heatmap: HeatmapPluginsSignatures;
12
12
  line: LineChartProPluginsSignatures;
13
13
  scatter: ScatterChartProPluginsSignatures;
@@ -24,5 +24,4 @@ type PluginsPerSeriesType = {
24
24
  * If the chart is being created using composition, the `composition` value can be used.
25
25
  * @example ChartProApi<'composition'>
26
26
  */
27
- export type ChartProApi<TSeries extends keyof PluginsPerSeriesType | undefined = undefined, TSignatures extends readonly ChartAnyPluginSignature[] = (TSeries extends keyof PluginsPerSeriesType ? PluginsPerSeriesType[TSeries] : AllPluginSignatures)> = ChartPublicAPI<TSignatures>;
28
- export {};
27
+ export type ChartProApi<ChartType extends keyof ProPluginsPerSeriesType | undefined = undefined, Signatures extends readonly ChartAnyPluginSignature[] = (ChartType extends keyof ProPluginsPerSeriesType ? ProPluginsPerSeriesType[ChartType] : AllPluginSignatures)> = ChartPublicAPI<Signatures>;
@@ -1 +1,2 @@
1
- export * from "./useChartApiContext.js";
1
+ export * from "./useChartProApiContext.js";
2
+ export type { ChartProApi } from "./ChartProApi.js";
package/context/index.js CHANGED
@@ -3,14 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _useChartApiContext = require("./useChartApiContext");
7
- Object.keys(_useChartApiContext).forEach(function (key) {
6
+ var _useChartProApiContext = require("./useChartProApiContext");
7
+ Object.keys(_useChartProApiContext).forEach(function (key) {
8
8
  if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _useChartApiContext[key]) return;
9
+ if (key in exports && exports[key] === _useChartProApiContext[key]) return;
10
10
  Object.defineProperty(exports, key, {
11
11
  enumerable: true,
12
12
  get: function () {
13
- return _useChartApiContext[key];
13
+ return _useChartProApiContext[key];
14
14
  }
15
15
  });
16
16
  });
@@ -0,0 +1,9 @@
1
+ import { ChartProApi } from "./ChartProApi.js";
2
+ /**
3
+ * The `useChartProApiContext` hook provides access to the chart API.
4
+ * This is only available when the chart is rendered within a chart or a `ChartDataProvider` component.
5
+ * If you want to access the chart API outside those components, you should use the `apiRef` prop instead.
6
+ * @example
7
+ * const apiRef = useChartProApiContext<ChartProApi<'bar'>>();
8
+ */
9
+ export declare function useChartProApiContext<Api extends ChartProApi>(): import("react").RefObject<Api>;
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useChartApiContext = useChartApiContext;
6
+ exports.useChartProApiContext = useChartProApiContext;
7
7
  var _context = require("@mui/x-charts/context");
8
8
  /**
9
- * The `useChartApiContext` hook provides access to the chart API.
9
+ * The `useChartProApiContext` hook provides access to the chart API.
10
10
  * This is only available when the chart is rendered within a chart or a `ChartDataProvider` component.
11
11
  * If you want to access the chart API outside those components, you should use the `apiRef` prop instead.
12
12
  * @example
13
- * const apiRef = useChartApiContext<ChartProApi<'bar'>>();
13
+ * const apiRef = useChartProApiContext<ChartProApi<'bar'>>();
14
14
  */
15
- function useChartApiContext() {
15
+ function useChartProApiContext() {
16
16
  return (0, _context.useChartApiContext)();
17
17
  }
@@ -1,3 +1,9 @@
1
1
  import "../typeOverloads/index.js";
2
+ import type { ChartAnyPluginSignature } from '@mui/x-charts/internals';
3
+ import type { ChartProApi as ChartProApiOriginal, ProPluginsPerSeriesType } from "../context/ChartProApi.js";
4
+ import type { AllPluginSignatures } from "../internals/plugins/allPlugins.js";
2
5
  export * from "./ChartContainerPro.js";
3
- export * from "./ChartProApi.js";
6
+ /**
7
+ * @deprecated Use `ChartProApi` from `@mui/x-charts/context` instead.
8
+ */
9
+ export type ChartProApi<ChartType extends keyof ProPluginsPerSeriesType | undefined = undefined, Signatures extends readonly ChartAnyPluginSignature[] = (ChartType extends keyof ProPluginsPerSeriesType ? ProPluginsPerSeriesType[ChartType] : AllPluginSignatures)> = ChartProApiOriginal<ChartType, Signatures>;
@@ -1,3 +1,6 @@
1
1
  import "../typeOverloads/index.js";
2
2
  export * from "./ChartContainerPro.js";
3
- export * from "./ChartProApi.js";
3
+
4
+ /**
5
+ * @deprecated Use `ChartProApi` from `@mui/x-charts/context` instead.
6
+ */
@@ -11,7 +11,7 @@ import { defaultSlotsMaterial } from "../internals/material/index.js";
11
11
  import { DEFAULT_PLUGINS } from "../internals/plugins/allPlugins.js";
12
12
  import { useChartDataProviderProProps } from "./useChartDataProviderProProps.js";
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
- const releaseInfo = "MTc1MDI4NDAwMDAwMA==";
14
+ const releaseInfo = "MTc1MTU4MDAwMDAwMA==";
15
15
  const packageIdentifier = 'x-charts-pro';
16
16
  /**
17
17
  * Orchestrates the data providers for the chart components and hooks.
@@ -1,2 +1,3 @@
1
1
  export * from "./ChartZoomSlider.js";
2
- export { type ChartAxisZoomSliderThumbClasses, type ChartAxisZoomSliderThumbClassKey, chartAxisZoomSliderThumbClasses } from "./internals/chartAxisZoomSliderThumbClasses.js";
2
+ export { type ChartAxisZoomSliderThumbClasses, type ChartAxisZoomSliderThumbClassKey, chartAxisZoomSliderThumbClasses } from "./internals/chartAxisZoomSliderThumbClasses.js";
3
+ export { type ChartAxisZoomSliderTrackClasses, type ChartAxisZoomSliderTrackClassKey, chartAxisZoomSliderTrackClasses } from "./internals/chartAxisZoomSliderTrackClasses.js";
@@ -1,2 +1,3 @@
1
1
  export * from "./ChartZoomSlider.js";
2
- export { chartAxisZoomSliderThumbClasses } from "./internals/chartAxisZoomSliderThumbClasses.js";
2
+ export { chartAxisZoomSliderThumbClasses } from "./internals/chartAxisZoomSliderThumbClasses.js";
3
+ export { chartAxisZoomSliderTrackClasses } from "./internals/chartAxisZoomSliderTrackClasses.js";
@@ -59,7 +59,11 @@ export function ChartAxisZoomSlider({
59
59
  }
60
60
  const backgroundRectOffset = (ZOOM_SLIDER_SIZE - ZOOM_SLIDER_TRACK_SIZE) / 2;
61
61
  return /*#__PURE__*/_jsxs("g", {
62
+ "data-charts-zoom-slider": true,
62
63
  transform: `translate(${x} ${y})`,
64
+ style: {
65
+ touchAction: 'none'
66
+ },
63
67
  children: [/*#__PURE__*/_jsx(ChartAxisZoomSliderTrack, {
64
68
  x: axisDirection === 'x' ? 0 : backgroundRectOffset,
65
69
  y: axisDirection === 'x' ? backgroundRectOffset : 0,