@mui/x-charts-pro 8.6.0 → 8.8.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 (144) hide show
  1. package/BarChartPro/BarChartPro.d.ts +1 -1
  2. package/BarChartPro/BarChartPro.js +32 -0
  3. package/CHANGELOG.md +202 -1
  4. package/ChartContainerPro/index.d.ts +7 -1
  5. package/ChartContainerPro/index.js +0 -11
  6. package/ChartDataProviderPro/ChartDataProviderPro.js +7 -1
  7. package/ChartZoomSlider/index.d.ts +2 -1
  8. package/ChartZoomSlider/index.js +10 -2
  9. package/ChartZoomSlider/internals/ChartAxisZoomSlider.js +35 -16
  10. package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.d.ts +4 -0
  11. package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +34 -13
  12. package/ChartZoomSlider/internals/ChartAxisZoomSliderPreview.d.ts +18 -0
  13. package/ChartZoomSlider/internals/ChartAxisZoomSliderPreview.js +102 -0
  14. package/ChartZoomSlider/internals/ChartAxisZoomSliderPreviewContent.d.ts +11 -0
  15. package/ChartZoomSlider/internals/ChartAxisZoomSliderPreviewContent.js +62 -0
  16. package/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +9 -1
  17. package/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.d.ts +15 -0
  18. package/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.js +31 -0
  19. package/ChartZoomSlider/internals/previews/AreaPreviewPlot.d.ts +14 -0
  20. package/ChartZoomSlider/internals/previews/AreaPreviewPlot.js +61 -0
  21. package/ChartZoomSlider/internals/previews/BarPreviewPlot.d.ts +10 -0
  22. package/ChartZoomSlider/internals/previews/BarPreviewPlot.js +62 -0
  23. package/ChartZoomSlider/internals/previews/LinePreviewPlot.d.ts +14 -0
  24. package/ChartZoomSlider/internals/previews/LinePreviewPlot.js +59 -0
  25. package/ChartZoomSlider/internals/previews/PreviewPlot.types.d.ts +4 -0
  26. package/ChartZoomSlider/internals/previews/ScatterPreviewPlot.d.ts +16 -0
  27. package/ChartZoomSlider/internals/previews/ScatterPreviewPlot.js +93 -0
  28. package/ChartsToolbarPro/ChartsToolbarImageExportTrigger.js +3 -1
  29. package/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.js +4 -2
  30. package/ChartsToolbarPro/ChartsToolbarPro.js +2 -0
  31. package/FunnelChart/FunnelChart.d.ts +1 -1
  32. package/FunnelChart/FunnelPlot.js +1 -1
  33. package/FunnelChart/funnel.types.d.ts +14 -9
  34. package/FunnelChart/funnelAxisPlugin/useChartFunnelAxis.js +43 -33
  35. package/FunnelChart/funnelAxisPlugin/useChartFunnelAxis.types.d.ts +1 -1
  36. package/FunnelChart/funnelAxisPlugin/useChartFunnelAxisRendering.selectors.d.ts +3 -3
  37. package/FunnelChart/seriesConfig/seriesProcessor.js +24 -48
  38. package/Heatmap/Heatmap.d.ts +1 -1
  39. package/LineChartPro/LineChartPro.js +38 -0
  40. package/PieChartPro/PieChartPro.d.ts +1 -1
  41. package/RadarChartPro/RadarChartPro.d.ts +1 -1
  42. package/ScatterChartPro/ScatterChartPro.d.ts +1 -1
  43. package/ScatterChartPro/ScatterChartPro.js +16 -0
  44. package/{ChartContainerPro → context}/ChartProApi.d.ts +2 -3
  45. package/context/ChartProApi.js +5 -0
  46. package/context/index.d.ts +2 -1
  47. package/context/index.js +4 -4
  48. package/context/useChartProApiContext.d.ts +9 -0
  49. package/context/{useChartApiContext.js → useChartProApiContext.js} +4 -4
  50. package/esm/BarChartPro/BarChartPro.d.ts +1 -1
  51. package/esm/BarChartPro/BarChartPro.js +32 -0
  52. package/esm/ChartContainerPro/index.d.ts +7 -1
  53. package/esm/ChartContainerPro/index.js +4 -1
  54. package/esm/ChartDataProviderPro/ChartDataProviderPro.js +7 -1
  55. package/esm/ChartZoomSlider/index.d.ts +2 -1
  56. package/esm/ChartZoomSlider/index.js +2 -1
  57. package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.js +37 -18
  58. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.d.ts +4 -0
  59. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +36 -14
  60. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderPreview.d.ts +18 -0
  61. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderPreview.js +94 -0
  62. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderPreviewContent.d.ts +11 -0
  63. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderPreviewContent.js +54 -0
  64. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +10 -1
  65. package/esm/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.d.ts +15 -0
  66. package/esm/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.js +21 -0
  67. package/esm/ChartZoomSlider/internals/previews/AreaPreviewPlot.d.ts +14 -0
  68. package/esm/ChartZoomSlider/internals/previews/AreaPreviewPlot.js +53 -0
  69. package/esm/ChartZoomSlider/internals/previews/BarPreviewPlot.d.ts +10 -0
  70. package/esm/ChartZoomSlider/internals/previews/BarPreviewPlot.js +55 -0
  71. package/esm/ChartZoomSlider/internals/previews/LinePreviewPlot.d.ts +14 -0
  72. package/esm/ChartZoomSlider/internals/previews/LinePreviewPlot.js +51 -0
  73. package/esm/ChartZoomSlider/internals/previews/PreviewPlot.types.d.ts +4 -0
  74. package/esm/ChartZoomSlider/internals/previews/ScatterPreviewPlot.d.ts +16 -0
  75. package/esm/ChartZoomSlider/internals/previews/ScatterPreviewPlot.js +86 -0
  76. package/esm/ChartsToolbarPro/ChartsToolbarImageExportTrigger.js +4 -2
  77. package/esm/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.js +5 -3
  78. package/esm/ChartsToolbarPro/ChartsToolbarPro.js +2 -0
  79. package/esm/FunnelChart/FunnelChart.d.ts +1 -1
  80. package/esm/FunnelChart/FunnelPlot.js +1 -1
  81. package/esm/FunnelChart/funnel.types.d.ts +14 -9
  82. package/esm/FunnelChart/funnelAxisPlugin/useChartFunnelAxis.js +43 -33
  83. package/esm/FunnelChart/funnelAxisPlugin/useChartFunnelAxis.types.d.ts +1 -1
  84. package/esm/FunnelChart/funnelAxisPlugin/useChartFunnelAxisRendering.selectors.d.ts +3 -3
  85. package/esm/FunnelChart/seriesConfig/seriesProcessor.js +24 -48
  86. package/esm/Heatmap/Heatmap.d.ts +1 -1
  87. package/esm/LineChartPro/LineChartPro.js +38 -0
  88. package/esm/PieChartPro/PieChartPro.d.ts +1 -1
  89. package/esm/RadarChartPro/RadarChartPro.d.ts +1 -1
  90. package/esm/ScatterChartPro/ScatterChartPro.d.ts +1 -1
  91. package/esm/ScatterChartPro/ScatterChartPro.js +16 -0
  92. package/esm/{ChartContainerPro → context}/ChartProApi.d.ts +2 -3
  93. package/esm/context/ChartProApi.js +1 -0
  94. package/esm/context/index.d.ts +2 -1
  95. package/esm/context/index.js +2 -1
  96. package/esm/context/useChartProApiContext.d.ts +9 -0
  97. package/esm/context/{useChartApiContext.js → useChartProApiContext.js} +3 -3
  98. package/esm/hooks/index.d.ts +2 -1
  99. package/esm/hooks/index.js +2 -1
  100. package/esm/hooks/useChartProApiRef.d.ts +23 -0
  101. package/esm/hooks/useChartProApiRef.js +20 -0
  102. package/esm/index.d.ts +4 -2
  103. package/esm/index.js +3 -3
  104. package/esm/internals/plugins/allPlugins.d.ts +2 -2
  105. package/esm/internals/plugins/useChartProExport/exportImage.js +9 -3
  106. package/esm/internals/plugins/useChartProExport/print.d.ts +3 -1
  107. package/esm/internals/plugins/useChartProExport/print.js +7 -2
  108. package/esm/internals/plugins/useChartProExport/useChartProExport.types.d.ts +22 -12
  109. package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.d.ts +8 -0
  110. package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.js +58 -0
  111. package/esm/internals/plugins/useChartProZoom/{useChartProZoom.utils.d.ts → gestureHooks/useZoom.utils.d.ts} +14 -10
  112. package/esm/internals/plugins/useChartProZoom/{useChartProZoom.utils.js → gestureHooks/useZoom.utils.js} +41 -31
  113. package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.d.ts +8 -0
  114. package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.js +59 -0
  115. package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.d.ts +8 -0
  116. package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.js +79 -0
  117. package/esm/internals/plugins/useChartProZoom/useChartProZoom.js +15 -227
  118. package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +4 -4
  119. package/hooks/index.d.ts +2 -1
  120. package/hooks/index.js +11 -0
  121. package/hooks/useChartProApiRef.d.ts +23 -0
  122. package/hooks/useChartProApiRef.js +28 -0
  123. package/index.d.ts +4 -2
  124. package/index.js +58 -22
  125. package/internals/plugins/allPlugins.d.ts +2 -2
  126. package/internals/plugins/useChartProExport/exportImage.js +9 -3
  127. package/internals/plugins/useChartProExport/print.d.ts +3 -1
  128. package/internals/plugins/useChartProExport/print.js +7 -2
  129. package/internals/plugins/useChartProExport/useChartProExport.types.d.ts +22 -12
  130. package/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.d.ts +8 -0
  131. package/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.js +65 -0
  132. package/internals/plugins/useChartProZoom/{useChartProZoom.utils.d.ts → gestureHooks/useZoom.utils.d.ts} +14 -10
  133. package/internals/plugins/useChartProZoom/{useChartProZoom.utils.js → gestureHooks/useZoom.utils.js} +43 -34
  134. package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.d.ts +8 -0
  135. package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.js +66 -0
  136. package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.d.ts +8 -0
  137. package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.js +86 -0
  138. package/internals/plugins/useChartProZoom/useChartProZoom.js +14 -226
  139. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +4 -4
  140. package/package.json +6 -5
  141. package/context/useChartApiContext.d.ts +0 -9
  142. package/esm/context/useChartApiContext.d.ts +0 -9
  143. /package/{ChartContainerPro/ChartProApi.js → ChartZoomSlider/internals/previews/PreviewPlot.types.js} +0 -0
  144. /package/esm/{ChartContainerPro/ChartProApi.js → ChartZoomSlider/internals/previews/PreviewPlot.types.js} +0 -0
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
@@ -11,24 +12,39 @@ var _styles = require("@mui/material/styles");
11
12
  var _internals = require("@mui/x-charts/internals");
12
13
  var React = _interopRequireWildcard(require("react"));
13
14
  var _rafThrottle = require("@mui/x-internals/rafThrottle");
15
+ var _system = require("@mui/system");
14
16
  var _useChartProZoom = require("../../internals/plugins/useChartProZoom");
15
17
  var _ChartAxisZoomSliderThumb = require("./ChartAxisZoomSliderThumb");
16
18
  var _ChartsTooltipZoomSliderValue = require("./ChartsTooltipZoomSliderValue");
17
19
  var _zoomUtils = require("./zoom-utils");
18
20
  var _constants = require("./constants");
21
+ var _chartAxisZoomSliderTrackClasses = require("./chartAxisZoomSliderTrackClasses");
19
22
  var _jsxRuntime = require("react/jsx-runtime");
20
- const ZoomSliderActiveTrackRect = (0, _styles.styled)('rect')(({
23
+ const ZoomSliderActiveTrackRect = (0, _styles.styled)('rect', {
24
+ shouldForwardProp: prop => (0, _system.shouldForwardProp)(prop) && prop !== 'preview'
25
+ })(({
21
26
  theme
22
27
  }) => ({
23
- '&': {
24
- fill: theme.palette.mode === 'dark' ? (theme.vars || theme).palette.grey[500] : (theme.vars || theme).palette.grey[600],
25
- cursor: 'grab'
26
- }
28
+ fill: theme.palette.mode === 'dark' ? (theme.vars || theme).palette.grey[500] : (theme.vars || theme).palette.grey[600],
29
+ cursor: 'grab',
30
+ variants: [{
31
+ props: {
32
+ preview: true
33
+ },
34
+ style: {
35
+ fill: 'transparent',
36
+ rx: 4,
37
+ ry: 4,
38
+ stroke: theme.palette.grey[500]
39
+ }
40
+ }]
27
41
  }));
28
42
  function ChartAxisZoomSliderActiveTrack({
29
43
  axisId,
30
44
  axisDirection,
31
45
  axisPosition,
46
+ size,
47
+ preview,
32
48
  zoomData,
33
49
  reverse,
34
50
  showTooltip,
@@ -49,6 +65,9 @@ function ChartAxisZoomSliderActiveTrack({
49
65
  tooltipStart,
50
66
  tooltipEnd
51
67
  } = getZoomSliderTooltipsText(axis, drawingArea);
68
+ const classes = (0, _chartAxisZoomSliderTrackClasses.useUtilityClasses)({
69
+ axisDirection
70
+ });
52
71
  const previewThumbWidth = axisDirection === 'x' ? _constants.ZOOM_SLIDER_THUMB_WIDTH : _constants.ZOOM_SLIDER_THUMB_HEIGHT;
53
72
  const previewThumbHeight = axisDirection === 'x' ? _constants.ZOOM_SLIDER_THUMB_HEIGHT : _constants.ZOOM_SLIDER_THUMB_WIDTH;
54
73
  React.useEffect(() => {
@@ -164,11 +183,11 @@ function ChartAxisZoomSliderActiveTrack({
164
183
  previewX = (zoomStart - minStart) / range * drawingArea.width;
165
184
  previewY = 0;
166
185
  previewWidth = drawingArea.width * (zoomEnd - zoomStart) / range;
167
- previewHeight = _constants.ZOOM_SLIDER_ACTIVE_TRACK_SIZE;
186
+ previewHeight = size;
168
187
  startThumbX = (zoomStart - minStart) / range * drawingArea.width;
169
- startThumbY = 0;
188
+ startThumbY = _constants.ZOOM_SLIDER_THUMB_HEIGHT < size ? (size - _constants.ZOOM_SLIDER_THUMB_HEIGHT) / 2 : 0;
170
189
  endThumbX = (zoomEnd - minStart) / range * drawingArea.width;
171
- endThumbY = 0;
190
+ endThumbY = _constants.ZOOM_SLIDER_THUMB_HEIGHT < size ? (size - _constants.ZOOM_SLIDER_THUMB_HEIGHT) / 2 : 0;
172
191
  if (reverse) {
173
192
  previewX = drawingArea.width - previewX - previewWidth;
174
193
  startThumbX = drawingArea.width - startThumbX;
@@ -179,11 +198,11 @@ function ChartAxisZoomSliderActiveTrack({
179
198
  } else {
180
199
  previewX = 0;
181
200
  previewY = drawingArea.height - (zoomEnd - minStart) / range * drawingArea.height;
182
- previewWidth = _constants.ZOOM_SLIDER_ACTIVE_TRACK_SIZE;
201
+ previewWidth = size;
183
202
  previewHeight = drawingArea.height * (zoomEnd - zoomStart) / range;
184
- startThumbX = 0;
203
+ startThumbX = _constants.ZOOM_SLIDER_THUMB_HEIGHT < size ? (size - _constants.ZOOM_SLIDER_THUMB_HEIGHT) / 2 : 0;
185
204
  startThumbY = drawingArea.height - (zoomStart - minStart) / range * drawingArea.height;
186
- endThumbX = 0;
205
+ endThumbX = _constants.ZOOM_SLIDER_THUMB_HEIGHT < size ? (size - _constants.ZOOM_SLIDER_THUMB_HEIGHT) / 2 : 0;
187
206
  endThumbY = drawingArea.height - (zoomEnd - minStart) / range * drawingArea.height;
188
207
  if (reverse) {
189
208
  previewY = drawingArea.height - previewY - previewHeight;
@@ -193,16 +212,18 @@ function ChartAxisZoomSliderActiveTrack({
193
212
  startThumbY -= previewThumbHeight / 2;
194
213
  endThumbY -= previewThumbHeight / 2;
195
214
  }
196
- const previewOffset = (_constants.ZOOM_SLIDER_THUMB_HEIGHT - _constants.ZOOM_SLIDER_ACTIVE_TRACK_SIZE) / 2;
215
+ const previewOffset = _constants.ZOOM_SLIDER_THUMB_HEIGHT > size ? (_constants.ZOOM_SLIDER_THUMB_HEIGHT - size) / 2 : 0;
197
216
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
198
217
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomSliderActiveTrackRect, {
199
218
  ref: activePreviewRectRef,
200
219
  x: previewX + (axisDirection === 'x' ? 0 : previewOffset),
201
220
  y: previewY + (axisDirection === 'x' ? previewOffset : 0),
221
+ preview: preview,
202
222
  width: previewWidth,
203
223
  height: previewHeight,
204
224
  onPointerEnter: onPointerEnter,
205
- onPointerLeave: onPointerLeave
225
+ onPointerLeave: onPointerLeave,
226
+ className: classes.active
206
227
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartAxisZoomSliderThumb.ChartAxisZoomSliderThumb, {
207
228
  ref: setStartThumbEl,
208
229
  x: startThumbX,
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { AxisId } from '@mui/x-charts/internals';
3
+ interface ChartAxisZoomSliderPreviewProps {
4
+ axisId: AxisId;
5
+ axisDirection: 'x' | 'y';
6
+ reverse: boolean;
7
+ x: number;
8
+ y: number;
9
+ height: number;
10
+ width: number;
11
+ }
12
+ export declare function ChartAxisZoomSliderPreview({
13
+ axisId,
14
+ axisDirection,
15
+ reverse,
16
+ ...props
17
+ }: ChartAxisZoomSliderPreviewProps): React.JSX.Element;
18
+ export {};
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ChartAxisZoomSliderPreview = ChartAxisZoomSliderPreview;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _styles = require("@mui/material/styles");
13
+ var _internals = require("@mui/x-charts/internals");
14
+ var _system = require("@mui/system");
15
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
16
+ var _useChartProZoom = require("../../internals/plugins/useChartProZoom");
17
+ var _ChartAxisZoomSliderPreviewContent = require("./ChartAxisZoomSliderPreviewContent");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ const _excluded = ["axisId", "axisDirection", "reverse"];
20
+ const PreviewBackgroundRect = (0, _styles.styled)('rect')(({
21
+ theme
22
+ }) => ({
23
+ rx: 4,
24
+ ry: 4,
25
+ stroke: theme.palette.grey[700],
26
+ fill: (0, _system.alpha)(theme.palette.grey[700], 0.4)
27
+ }));
28
+ function ChartAxisZoomSliderPreview(_ref) {
29
+ let {
30
+ axisId,
31
+ axisDirection
32
+ } = _ref,
33
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", (0, _extends2.default)({}, props, {
35
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(PreviewRectangles, (0, _extends2.default)({}, props, {
36
+ axisId: axisId,
37
+ axisDirection: axisDirection
38
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)("rect", (0, _extends2.default)({}, props, {
39
+ fill: "transparent",
40
+ rx: 4,
41
+ ry: 4
42
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartAxisZoomSliderPreviewContent.ChartAxisZoomSliderPreviewContent, (0, _extends2.default)({
43
+ axisId: axisId
44
+ }, props))]
45
+ }));
46
+ }
47
+ function PreviewRectangles(props) {
48
+ const {
49
+ axisId,
50
+ axisDirection
51
+ } = props;
52
+ const store = (0, _internals.useStore)();
53
+ const zoomData = (0, _internals.useSelector)(store, _useChartProZoom.selectorChartAxisZoomData, [axisId]);
54
+ const zoomOptions = (0, _internals.useSelector)(store, _internals.selectorChartAxisZoomOptionsLookup, [axisId]);
55
+ const id = (0, _useId.default)();
56
+ if (!zoomData) {
57
+ return null;
58
+ }
59
+ const maskId = `zoom-preview-mask-${axisId}-${id}`;
60
+ let x;
61
+ let y;
62
+ let width;
63
+ let height;
64
+ const range = zoomOptions.maxEnd - zoomOptions.minStart;
65
+ if (axisDirection === 'x') {
66
+ x = props.x + (zoomData.start - zoomOptions.minStart) / range * props.width;
67
+ y = props.y;
68
+ width = (zoomData.end - zoomData.start) / range * props.width;
69
+ height = props.height;
70
+ } else {
71
+ x = props.x;
72
+ y = props.y + (1 - zoomData.end / range) * props.height;
73
+ width = props.width;
74
+ height = (zoomData.end - zoomData.start) / range * props.height;
75
+ }
76
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
77
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("mask", {
78
+ id: maskId,
79
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("rect", {
80
+ x: props.x,
81
+ y: props.y,
82
+ width: props.width,
83
+ height: props.height,
84
+ fill: "white"
85
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("rect", {
86
+ x: x,
87
+ y: y,
88
+ width: width,
89
+ height: height,
90
+ fill: "black",
91
+ rx: 4,
92
+ ry: 4
93
+ })]
94
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(PreviewBackgroundRect, {
95
+ x: props.x,
96
+ y: props.y,
97
+ width: props.width,
98
+ height: props.height,
99
+ mask: `url(#${maskId})`
100
+ })]
101
+ });
102
+ }
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { AxisId } from '@mui/x-charts/internals';
3
+ interface ChartAxisZoomSliderPreviewContentProps {
4
+ axisId: AxisId;
5
+ x: number;
6
+ y: number;
7
+ height: number;
8
+ width: number;
9
+ }
10
+ export declare function ChartAxisZoomSliderPreviewContent(props: ChartAxisZoomSliderPreviewContentProps): React.JSX.Element;
11
+ export {};
@@ -0,0 +1,62 @@
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.ChartAxisZoomSliderPreviewContent = ChartAxisZoomSliderPreviewContent;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _internals = require("@mui/x-charts/internals");
12
+ var _LinePreviewPlot = require("./previews/LinePreviewPlot");
13
+ var _AreaPreviewPlot = require("./previews/AreaPreviewPlot");
14
+ var _BarPreviewPlot = require("./previews/BarPreviewPlot");
15
+ var _ScatterPreviewPlot = require("./previews/ScatterPreviewPlot");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function ChartAxisZoomSliderPreviewContent(props) {
18
+ const {
19
+ axisId,
20
+ x,
21
+ y,
22
+ width,
23
+ height
24
+ } = props;
25
+ const store = (0, _internals.useStore)();
26
+ const processedSeries = (0, _internals.useSelector)(store, _internals.selectorChartSeriesProcessed);
27
+ const children = [];
28
+ const clipId = `zoom-preview-mask-${axisId}`;
29
+ const hasLineSeries = (processedSeries.line?.seriesOrder?.length ?? 0) > 0;
30
+ const hasBarSeries = (processedSeries.bar?.seriesOrder?.length ?? 0) > 0;
31
+ const hasScatterSeries = (processedSeries.scatter?.seriesOrder?.length ?? 0) > 0;
32
+ if (hasLineSeries) {
33
+ children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_AreaPreviewPlot.AreaPreviewPlot, {
34
+ axisId: axisId
35
+ }, "area"));
36
+ }
37
+ if (hasBarSeries) {
38
+ children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_BarPreviewPlot.BarPreviewPlot, (0, _extends2.default)({}, props), "bar"));
39
+ }
40
+ if (hasLineSeries) {
41
+ children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_LinePreviewPlot.LinePreviewPlot, {
42
+ axisId: axisId
43
+ }, "line"));
44
+ }
45
+ if (hasScatterSeries) {
46
+ children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_ScatterPreviewPlot.ScatterPreviewPlot, (0, _extends2.default)({}, props), "scatter"));
47
+ }
48
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
49
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("clipPath", {
50
+ id: clipId,
51
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("rect", {
52
+ x: x,
53
+ y: y,
54
+ width: width,
55
+ height: height
56
+ })
57
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
58
+ clipPath: `url(#${clipId})`,
59
+ children: children
60
+ })]
61
+ });
62
+ }
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -13,7 +14,9 @@ var _internals = require("@mui/x-charts/internals");
13
14
  var _styles = require("@mui/material/styles");
14
15
  var _rafThrottle = require("@mui/x-internals/rafThrottle");
15
16
  var _system = require("@mui/system");
17
+ var _clsx = _interopRequireDefault(require("clsx"));
16
18
  var _zoomUtils = require("./zoom-utils");
19
+ var _chartAxisZoomSliderTrackClasses = require("./chartAxisZoomSliderTrackClasses");
17
20
  var _jsxRuntime = require("react/jsx-runtime");
18
21
  const _excluded = ["axisId", "axisDirection", "reverse", "onSelectStart", "onSelectEnd"];
19
22
  const ZoomSliderTrack = (0, _styles.styled)('rect', {
@@ -56,6 +59,9 @@ function ChartAxisZoomSliderTrack(_ref) {
56
59
  } = (0, _internals.useChartContext)();
57
60
  const store = (0, _internals.useStore)();
58
61
  const [isSelecting, setIsSelecting] = React.useState(false);
62
+ const classes = (0, _chartAxisZoomSliderTrackClasses.useUtilityClasses)({
63
+ axisDirection
64
+ });
59
65
  const onPointerDown = function onPointerDown(event) {
60
66
  const rect = ref.current;
61
67
  const element = svgRef.current;
@@ -127,5 +133,7 @@ function ChartAxisZoomSliderTrack(_ref) {
127
133
  onPointerDown: onPointerDown,
128
134
  axisDirection: axisDirection,
129
135
  isSelecting: isSelecting
130
- }, other));
136
+ }, other, {
137
+ className: (0, _clsx.default)(classes.background, other.className)
138
+ }));
131
139
  }
@@ -0,0 +1,15 @@
1
+ import type { ChartAxisZoomSliderActiveTrackProps } from "./ChartAxisZoomSliderActiveTrack.js";
2
+ export interface ChartAxisZoomSliderTrackClasses {
3
+ /** Styles applied to the root element when it is horizontal. */
4
+ horizontal: string;
5
+ /** Styles applied to the root element when it is vertical. */
6
+ vertical: string;
7
+ /** Styles applied to the root element to the active part of the track. */
8
+ active: string;
9
+ /** Styles applied to the root element to the background part of the track. */
10
+ background: string;
11
+ }
12
+ export type ChartAxisZoomSliderTrackClassKey = keyof ChartAxisZoomSliderTrackClasses;
13
+ export declare const chartAxisZoomSliderTrackClasses: ChartAxisZoomSliderTrackClasses;
14
+ export declare function getAxisZoomSliderTrackUtilityClass(slot: string): string;
15
+ export declare const useUtilityClasses: (props: Partial<ChartAxisZoomSliderActiveTrackProps>) => Record<"background" | "active", string>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.chartAxisZoomSliderTrackClasses = void 0;
8
+ exports.getAxisZoomSliderTrackUtilityClass = getAxisZoomSliderTrackUtilityClass;
9
+ exports.useUtilityClasses = void 0;
10
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
11
+ var _ClassNameGenerator = _interopRequireDefault(require("@mui/utils/ClassNameGenerator"));
12
+ const chartAxisZoomSliderTrackClasses = exports.chartAxisZoomSliderTrackClasses = ['horizontal', 'vertical', 'background', 'active'].reduce((acc, slot) => {
13
+ acc[slot] = getAxisZoomSliderTrackUtilityClass(slot);
14
+ return acc;
15
+ }, {});
16
+ function getAxisZoomSliderTrackUtilityClass(slot) {
17
+ // We use the `ClassNameGenerator` because the original `generateUtilityClass` function
18
+ // has a special case for the `active` slot.
19
+ return `${_ClassNameGenerator.default.generate('MuiChartAxisZoomSliderTrack')}-${slot}`;
20
+ }
21
+ const useUtilityClasses = props => {
22
+ const {
23
+ axisDirection
24
+ } = props;
25
+ const slots = {
26
+ background: [axisDirection === 'x' ? 'horizontal' : 'vertical', 'background'],
27
+ active: [axisDirection === 'x' ? 'horizontal' : 'vertical', 'active']
28
+ };
29
+ return (0, _composeClasses.default)(slots, getAxisZoomSliderTrackUtilityClass);
30
+ };
31
+ exports.useUtilityClasses = useUtilityClasses;
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { SeriesId } from '@mui/x-charts/internals';
3
+ import { PreviewPlotProps } from "./PreviewPlot.types.js";
4
+ interface AreaPreviewPlotProps extends PreviewPlotProps {}
5
+ export declare function AreaPreviewPlot({
6
+ axisId
7
+ }: AreaPreviewPlotProps): React.JSX.Element;
8
+ export interface PreviewAreaElementProps extends Omit<React.SVGProps<SVGPathElement>, 'ref' | 'color' | 'id'> {
9
+ id: SeriesId;
10
+ gradientId?: string;
11
+ color: string;
12
+ d: string;
13
+ }
14
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.AreaPreviewPlot = AreaPreviewPlot;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _styles = require("@mui/material/styles");
13
+ var _internals = require("@mui/x-charts/internals");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ const _excluded = ["id", "color", "gradientId", "onClick"];
16
+ const AreaPlotRoot = (0, _styles.styled)('g', {
17
+ name: 'MuiAreaPlot',
18
+ slot: 'Root'
19
+ })();
20
+ function AreaPreviewPlot({
21
+ axisId
22
+ }) {
23
+ const completedData = useAreaPreviewData(axisId);
24
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(AreaPlotRoot, {
25
+ children: completedData.map(({
26
+ d,
27
+ seriesId,
28
+ color,
29
+ area,
30
+ gradientId
31
+ }) => !!area && /*#__PURE__*/(0, _jsxRuntime.jsx)(PreviewAreaElement, {
32
+ id: seriesId,
33
+ d: d,
34
+ color: color,
35
+ gradientId: gradientId
36
+ }, seriesId))
37
+ });
38
+ }
39
+ /**
40
+ * Preview of the area element for the zoom preview.
41
+ * Based on AreaElement and AnimatedArea.
42
+ */
43
+ function PreviewAreaElement(_ref) {
44
+ let {
45
+ id,
46
+ color,
47
+ gradientId
48
+ } = _ref,
49
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
50
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("path", (0, _extends2.default)({
51
+ fill: gradientId ? `url(#${gradientId})` : color,
52
+ stroke: "none",
53
+ "data-series": id
54
+ }, other));
55
+ }
56
+ function useAreaPreviewData(axisId) {
57
+ const store = (0, _internals.useStore)();
58
+ const xAxes = (0, _internals.useSelector)(store, _internals.selectorChartPreviewComputedXAxis, [axisId]);
59
+ const yAxes = (0, _internals.useSelector)(store, _internals.selectorChartPreviewComputedYAxis, [axisId]);
60
+ return (0, _internals.useAreaPlotData)(xAxes, yAxes);
61
+ }
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { PreviewPlotProps } from "./PreviewPlot.types.js";
3
+ interface BarPreviewPlotProps extends PreviewPlotProps {
4
+ x: number;
5
+ y: number;
6
+ height: number;
7
+ width: number;
8
+ }
9
+ export declare function BarPreviewPlot(props: BarPreviewPlotProps): React.JSX.Element;
10
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.BarPreviewPlot = BarPreviewPlot;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _internals = require("@mui/x-charts/internals");
10
+ var _BarChart = require("@mui/x-charts/BarChart");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function BarPreviewPlot(props) {
13
+ const drawingArea = {
14
+ left: props.x,
15
+ top: props.y,
16
+ width: props.width,
17
+ height: props.height,
18
+ right: props.x + props.width,
19
+ bottom: props.y + props.height
20
+ };
21
+ const {
22
+ completedData
23
+ } = useBarPreviewData(props.axisId, drawingArea);
24
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
25
+ children: completedData.map(({
26
+ seriesId,
27
+ data
28
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
29
+ children: data.map(({
30
+ dataIndex,
31
+ color,
32
+ layout,
33
+ x,
34
+ xOrigin,
35
+ y,
36
+ yOrigin,
37
+ width,
38
+ height
39
+ }) => {
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarChart.BarElement, {
41
+ id: seriesId,
42
+ dataIndex: dataIndex,
43
+ color: color,
44
+ skipAnimation: true,
45
+ layout: layout ?? 'vertical',
46
+ x: x,
47
+ xOrigin: xOrigin,
48
+ y: y,
49
+ yOrigin: yOrigin,
50
+ width: width,
51
+ height: height
52
+ }, dataIndex);
53
+ })
54
+ }, seriesId))
55
+ });
56
+ }
57
+ function useBarPreviewData(axisId, drawingArea) {
58
+ const store = (0, _internals.useStore)();
59
+ const xAxes = (0, _internals.useSelector)(store, _internals.selectorChartPreviewComputedXAxis, [axisId]);
60
+ const yAxes = (0, _internals.useSelector)(store, _internals.selectorChartPreviewComputedYAxis, [axisId]);
61
+ return (0, _internals.useBarPlotData)(drawingArea, xAxes, yAxes);
62
+ }
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { SeriesId } from '@mui/x-charts/internals';
3
+ import { PreviewPlotProps } from "./PreviewPlot.types.js";
4
+ interface LinePreviewPlotProps extends PreviewPlotProps {}
5
+ export declare function LinePreviewPlot({
6
+ axisId
7
+ }: LinePreviewPlotProps): React.JSX.Element;
8
+ export interface PreviewLineElementProps extends Omit<React.SVGProps<SVGPathElement>, 'ref' | 'color' | 'id'> {
9
+ id: SeriesId;
10
+ gradientId?: string;
11
+ color: string;
12
+ d: string;
13
+ }
14
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.LinePreviewPlot = LinePreviewPlot;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _internals = require("@mui/x-charts/internals");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ const _excluded = ["id", "color", "gradientId", "onClick"];
15
+ function LinePreviewPlot({
16
+ axisId
17
+ }) {
18
+ const completedData = useLinePreviewData(axisId);
19
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
20
+ children: completedData.map(({
21
+ d,
22
+ seriesId,
23
+ color,
24
+ gradientId
25
+ }) => {
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(PreviewLineElement, {
27
+ id: seriesId,
28
+ d: d,
29
+ color: color,
30
+ gradientId: gradientId
31
+ }, seriesId);
32
+ })
33
+ });
34
+ }
35
+ /**
36
+ * Preview of the line element for the zoom preview.
37
+ * Based on LineElement and AnimatedLine.
38
+ */
39
+ function PreviewLineElement(_ref) {
40
+ let {
41
+ id,
42
+ color,
43
+ gradientId
44
+ } = _ref,
45
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("path", (0, _extends2.default)({
47
+ stroke: gradientId ? `url(#${gradientId})` : color,
48
+ strokeWidth: 2,
49
+ strokeLinejoin: "round",
50
+ fill: "none",
51
+ "data-series": id
52
+ }, other));
53
+ }
54
+ function useLinePreviewData(axisId) {
55
+ const store = (0, _internals.useStore)();
56
+ const xAxes = (0, _internals.useSelector)(store, _internals.selectorChartPreviewComputedXAxis, [axisId]);
57
+ const yAxes = (0, _internals.useSelector)(store, _internals.selectorChartPreviewComputedYAxis, [axisId]);
58
+ return (0, _internals.useLinePlotData)(xAxes, yAxes);
59
+ }
@@ -0,0 +1,4 @@
1
+ import { AxisId } from '@mui/x-charts/internals';
2
+ export interface PreviewPlotProps {
3
+ axisId: AxisId;
4
+ }
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { PreviewPlotProps } from "./PreviewPlot.types.js";
3
+ interface ScatterPreviewPlotProps extends PreviewPlotProps {
4
+ x: number;
5
+ y: number;
6
+ height: number;
7
+ width: number;
8
+ }
9
+ export declare function ScatterPreviewPlot({
10
+ axisId,
11
+ x,
12
+ y,
13
+ height,
14
+ width
15
+ }: ScatterPreviewPlotProps): React.JSX.Element | null;
16
+ export {};