@mui/x-charts-pro 8.4.0 → 8.5.1

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 (184) hide show
  1. package/BarChartPro/BarChartPro.d.ts +13 -5
  2. package/BarChartPro/BarChartPro.js +19 -1
  3. package/CHANGELOG.md +215 -0
  4. package/ChartContainerPro/ChartContainerPro.d.ts +0 -1
  5. package/ChartContainerPro/ChartProApi.d.ts +28 -0
  6. package/ChartContainerPro/ChartProApi.js +5 -0
  7. package/ChartContainerPro/index.d.ts +2 -1
  8. package/ChartContainerPro/index.js +11 -0
  9. package/ChartDataProviderPro/ChartDataProviderPro.d.ts +11 -1
  10. package/ChartDataProviderPro/ChartDataProviderPro.js +19 -3
  11. package/ChartDataProviderPro/useChartDataProviderProProps.d.ts +2 -0
  12. package/ChartDataProviderPro/useChartDataProviderProProps.js +5 -1
  13. package/ChartZoomSlider/internals/ChartAxisZoomSlider.d.ts +1 -3
  14. package/ChartZoomSlider/internals/ChartAxisZoomSlider.js +25 -315
  15. package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.d.ts +22 -0
  16. package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +283 -0
  17. package/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.d.ts +18 -0
  18. package/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +138 -0
  19. package/ChartZoomSlider/internals/constants.d.ts +5 -0
  20. package/ChartZoomSlider/internals/constants.js +11 -0
  21. package/ChartZoomSlider/internals/zoom-utils.d.ts +4 -0
  22. package/ChartZoomSlider/internals/zoom-utils.js +48 -0
  23. package/ChartsToolbarPro/ChartsToolbarPro.d.ts +5 -1
  24. package/ChartsToolbarPro/ChartsToolbarPro.js +35 -7
  25. package/ChartsToolbarPro/ChartsToolbarZoomInTrigger.d.ts +17 -0
  26. package/ChartsToolbarPro/ChartsToolbarZoomInTrigger.js +57 -0
  27. package/ChartsToolbarPro/ChartsToolbarZoomOutTrigger.d.ts +17 -0
  28. package/ChartsToolbarPro/ChartsToolbarZoomOutTrigger.js +57 -0
  29. package/ChartsToolbarPro/index.d.ts +3 -1
  30. package/ChartsToolbarPro/index.js +22 -0
  31. package/FunnelChart/FunnelChart.d.ts +2 -1
  32. package/FunnelChart/FunnelChart.js +2 -20
  33. package/FunnelChart/FunnelChart.plugins.d.ts +4 -0
  34. package/FunnelChart/FunnelChart.plugins.js +9 -0
  35. package/FunnelChart/FunnelPlot.js +10 -22
  36. package/FunnelChart/FunnelSection.d.ts +1 -1
  37. package/FunnelChart/FunnelSectionLabel.d.ts +21 -0
  38. package/FunnelChart/FunnelSectionLabel.js +52 -0
  39. package/FunnelChart/curves/bump.d.ts +10 -4
  40. package/FunnelChart/curves/bump.js +73 -41
  41. package/FunnelChart/curves/curve.types.d.ts +6 -1
  42. package/FunnelChart/curves/getFunnelCurve.js +3 -0
  43. package/FunnelChart/curves/linear.d.ts +9 -1
  44. package/FunnelChart/curves/linear.js +82 -5
  45. package/FunnelChart/funnel.types.d.ts +1 -0
  46. package/FunnelChart/funnelPlotSlots.types.d.ts +11 -0
  47. package/FunnelChart/funnelSectionClasses.d.ts +2 -0
  48. package/FunnelChart/funnelSectionClasses.js +17 -4
  49. package/FunnelChart/funnelSlots.types.d.ts +4 -3
  50. package/FunnelChart/index.d.ts +3 -1
  51. package/FunnelChart/index.js +18 -2
  52. package/FunnelChart/useFunnelChartProps.d.ts +2 -1
  53. package/FunnelChart/useFunnelChartProps.js +3 -1
  54. package/Heatmap/Heatmap.d.ts +22 -4
  55. package/Heatmap/Heatmap.js +64 -22
  56. package/Heatmap/Heatmap.plugins.d.ts +2 -1
  57. package/Heatmap/Heatmap.plugins.js +2 -1
  58. package/Heatmap/HeatmapTooltip/HeatmapTooltipAxesValue.d.ts +1 -1
  59. package/LineChartPro/LineChartPro.d.ts +13 -5
  60. package/LineChartPro/LineChartPro.js +19 -1
  61. package/PieChartPro/PieChartPro.d.ts +21 -0
  62. package/PieChartPro/PieChartPro.js +204 -0
  63. package/PieChartPro/PieChartPro.plugins.d.ts +4 -0
  64. package/PieChartPro/PieChartPro.plugins.js +9 -0
  65. package/PieChartPro/index.d.ts +1 -0
  66. package/PieChartPro/index.js +16 -0
  67. package/RadarChartPro/RadarChartPro.d.ts +15 -0
  68. package/RadarChartPro/RadarChartPro.js +202 -0
  69. package/RadarChartPro/RadarChartPro.plugins.d.ts +4 -0
  70. package/RadarChartPro/RadarChartPro.plugins.js +9 -0
  71. package/RadarChartPro/index.d.ts +1 -0
  72. package/RadarChartPro/index.js +16 -0
  73. package/ScatterChartPro/ScatterChartPro.d.ts +13 -5
  74. package/ScatterChartPro/ScatterChartPro.js +19 -1
  75. package/context/index.d.ts +1 -0
  76. package/context/index.js +16 -0
  77. package/context/useChartApiContext.d.ts +9 -0
  78. package/context/useChartApiContext.js +17 -0
  79. package/esm/BarChartPro/BarChartPro.d.ts +13 -5
  80. package/esm/BarChartPro/BarChartPro.js +19 -1
  81. package/esm/ChartContainerPro/ChartContainerPro.d.ts +0 -1
  82. package/esm/ChartContainerPro/ChartProApi.d.ts +28 -0
  83. package/esm/ChartContainerPro/ChartProApi.js +1 -0
  84. package/esm/ChartContainerPro/index.d.ts +2 -1
  85. package/esm/ChartContainerPro/index.js +2 -1
  86. package/esm/ChartDataProviderPro/ChartDataProviderPro.d.ts +11 -1
  87. package/esm/ChartDataProviderPro/ChartDataProviderPro.js +20 -4
  88. package/esm/ChartDataProviderPro/useChartDataProviderProProps.d.ts +2 -0
  89. package/esm/ChartDataProviderPro/useChartDataProviderProProps.js +5 -1
  90. package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.d.ts +1 -3
  91. package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.js +19 -306
  92. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.d.ts +22 -0
  93. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +275 -0
  94. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.d.ts +18 -0
  95. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +130 -0
  96. package/esm/ChartZoomSlider/internals/constants.d.ts +5 -0
  97. package/esm/ChartZoomSlider/internals/constants.js +5 -0
  98. package/esm/ChartZoomSlider/internals/zoom-utils.d.ts +4 -0
  99. package/esm/ChartZoomSlider/internals/zoom-utils.js +40 -0
  100. package/esm/ChartsToolbarPro/ChartsToolbarPro.d.ts +5 -1
  101. package/esm/ChartsToolbarPro/ChartsToolbarPro.js +36 -9
  102. package/esm/ChartsToolbarPro/ChartsToolbarZoomInTrigger.d.ts +17 -0
  103. package/esm/ChartsToolbarPro/ChartsToolbarZoomInTrigger.js +51 -0
  104. package/esm/ChartsToolbarPro/ChartsToolbarZoomOutTrigger.d.ts +17 -0
  105. package/esm/ChartsToolbarPro/ChartsToolbarZoomOutTrigger.js +51 -0
  106. package/esm/ChartsToolbarPro/index.d.ts +3 -1
  107. package/esm/ChartsToolbarPro/index.js +3 -1
  108. package/esm/FunnelChart/FunnelChart.d.ts +2 -1
  109. package/esm/FunnelChart/FunnelChart.js +2 -20
  110. package/esm/FunnelChart/FunnelChart.plugins.d.ts +4 -0
  111. package/esm/FunnelChart/FunnelChart.plugins.js +3 -0
  112. package/esm/FunnelChart/FunnelPlot.js +10 -22
  113. package/esm/FunnelChart/FunnelSection.d.ts +1 -1
  114. package/esm/FunnelChart/FunnelSectionLabel.d.ts +21 -0
  115. package/esm/FunnelChart/FunnelSectionLabel.js +46 -0
  116. package/esm/FunnelChart/curves/bump.d.ts +10 -4
  117. package/esm/FunnelChart/curves/bump.js +73 -41
  118. package/esm/FunnelChart/curves/curve.types.d.ts +6 -1
  119. package/esm/FunnelChart/curves/getFunnelCurve.js +3 -0
  120. package/esm/FunnelChart/curves/linear.d.ts +9 -1
  121. package/esm/FunnelChart/curves/linear.js +82 -5
  122. package/esm/FunnelChart/funnel.types.d.ts +1 -0
  123. package/esm/FunnelChart/funnelPlotSlots.types.d.ts +11 -0
  124. package/esm/FunnelChart/funnelSectionClasses.d.ts +2 -0
  125. package/esm/FunnelChart/funnelSectionClasses.js +15 -3
  126. package/esm/FunnelChart/funnelSlots.types.d.ts +4 -3
  127. package/esm/FunnelChart/index.d.ts +3 -1
  128. package/esm/FunnelChart/index.js +3 -1
  129. package/esm/FunnelChart/useFunnelChartProps.d.ts +2 -1
  130. package/esm/FunnelChart/useFunnelChartProps.js +3 -1
  131. package/esm/Heatmap/Heatmap.d.ts +22 -4
  132. package/esm/Heatmap/Heatmap.js +64 -22
  133. package/esm/Heatmap/Heatmap.plugins.d.ts +2 -1
  134. package/esm/Heatmap/Heatmap.plugins.js +2 -1
  135. package/esm/Heatmap/HeatmapTooltip/HeatmapTooltipAxesValue.d.ts +1 -1
  136. package/esm/LineChartPro/LineChartPro.d.ts +13 -5
  137. package/esm/LineChartPro/LineChartPro.js +19 -1
  138. package/esm/PieChartPro/PieChartPro.d.ts +21 -0
  139. package/esm/PieChartPro/PieChartPro.js +197 -0
  140. package/esm/PieChartPro/PieChartPro.plugins.d.ts +4 -0
  141. package/esm/PieChartPro/PieChartPro.plugins.js +3 -0
  142. package/esm/PieChartPro/index.d.ts +1 -0
  143. package/esm/PieChartPro/index.js +1 -0
  144. package/esm/RadarChartPro/RadarChartPro.d.ts +15 -0
  145. package/esm/RadarChartPro/RadarChartPro.js +195 -0
  146. package/esm/RadarChartPro/RadarChartPro.plugins.d.ts +4 -0
  147. package/esm/RadarChartPro/RadarChartPro.plugins.js +3 -0
  148. package/esm/RadarChartPro/index.d.ts +1 -0
  149. package/esm/RadarChartPro/index.js +1 -0
  150. package/esm/ScatterChartPro/ScatterChartPro.d.ts +13 -5
  151. package/esm/ScatterChartPro/ScatterChartPro.js +19 -1
  152. package/esm/context/index.d.ts +1 -0
  153. package/esm/context/index.js +1 -0
  154. package/esm/context/useChartApiContext.d.ts +9 -0
  155. package/esm/context/useChartApiContext.js +11 -0
  156. package/esm/hooks/index.d.ts +2 -1
  157. package/esm/hooks/index.js +2 -1
  158. package/esm/index.d.ts +3 -1
  159. package/esm/index.js +3 -1
  160. package/esm/internals/material/index.d.ts +1 -0
  161. package/esm/internals/plugins/useChartProZoom/useChartProZoom.js +10 -0
  162. package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +358 -0
  163. package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +15 -1
  164. package/esm/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +7 -0
  165. package/esm/models/index.d.ts +1 -1
  166. package/hooks/index.d.ts +2 -1
  167. package/hooks/index.js +21 -10
  168. package/index.d.ts +3 -1
  169. package/index.js +23 -1
  170. package/internals/material/index.d.ts +1 -0
  171. package/internals/plugins/useChartProZoom/useChartProZoom.js +10 -0
  172. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +358 -0
  173. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +16 -2
  174. package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +7 -0
  175. package/models/index.d.ts +1 -1
  176. package/package.json +7 -7
  177. package/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.d.ts +0 -13
  178. package/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.js +0 -36
  179. package/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.d.ts +0 -13
  180. package/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.js +0 -36
  181. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.d.ts +0 -13
  182. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.js +0 -29
  183. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.d.ts +0 -13
  184. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.js +0 -29
@@ -0,0 +1,283 @@
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.ChartAxisZoomSliderActiveTrack = ChartAxisZoomSliderActiveTrack;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _styles = require("@mui/material/styles");
11
+ var _internals = require("@mui/x-charts/internals");
12
+ var React = _interopRequireWildcard(require("react"));
13
+ var _rafThrottle = require("@mui/x-internals/rafThrottle");
14
+ var _useChartProZoom = require("../../internals/plugins/useChartProZoom");
15
+ var _ChartAxisZoomSliderThumb = require("./ChartAxisZoomSliderThumb");
16
+ var _ChartsTooltipZoomSliderValue = require("./ChartsTooltipZoomSliderValue");
17
+ var _zoomUtils = require("./zoom-utils");
18
+ var _constants = require("./constants");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ const ZoomSliderActiveTrackRect = (0, _styles.styled)('rect')(({
21
+ theme
22
+ }) => ({
23
+ '&': {
24
+ fill: theme.palette.mode === 'dark' ? (theme.vars || theme).palette.grey[500] : (theme.vars || theme).palette.grey[600],
25
+ cursor: 'grab'
26
+ }
27
+ }));
28
+ function ChartAxisZoomSliderActiveTrack({
29
+ axisId,
30
+ axisDirection,
31
+ axisPosition,
32
+ zoomData,
33
+ reverse,
34
+ showTooltip,
35
+ onPointerEnter,
36
+ onPointerLeave
37
+ }) {
38
+ const {
39
+ instance,
40
+ svgRef
41
+ } = (0, _internals.useChartContext)();
42
+ const store = (0, _internals.useStore)();
43
+ const axis = (0, _internals.useSelector)(store, _internals.selectorChartAxis, axisId);
44
+ const drawingArea = (0, _internals.useDrawingArea)();
45
+ const activePreviewRectRef = React.useRef(null);
46
+ const [startThumbEl, setStartThumbEl] = React.useState(null);
47
+ const [endThumbEl, setEndThumbEl] = React.useState(null);
48
+ const {
49
+ tooltipStart,
50
+ tooltipEnd
51
+ } = getZoomSliderTooltipsText(axis, drawingArea);
52
+ const previewThumbWidth = axisDirection === 'x' ? _constants.ZOOM_SLIDER_THUMB_WIDTH : _constants.ZOOM_SLIDER_THUMB_HEIGHT;
53
+ const previewThumbHeight = axisDirection === 'x' ? _constants.ZOOM_SLIDER_THUMB_HEIGHT : _constants.ZOOM_SLIDER_THUMB_WIDTH;
54
+ React.useEffect(() => {
55
+ const activePreviewRect = activePreviewRectRef.current;
56
+ if (!activePreviewRect) {
57
+ return;
58
+ }
59
+
60
+ /* min and max values of zoom to ensure the pointer anchor in the slider is maintained */
61
+ let pointerZoomMin;
62
+ let pointerZoomMax;
63
+ let prevPointerZoom = 0;
64
+ const onPointerMove = (0, _rafThrottle.rafThrottle)(event => {
65
+ const element = svgRef.current;
66
+ if (!element) {
67
+ return;
68
+ }
69
+ const point = (0, _internals.getSVGPoint)(element, event);
70
+ let pointerZoom = (0, _zoomUtils.calculateZoomFromPoint)(store.getSnapshot(), axisId, point);
71
+ if (pointerZoom === null) {
72
+ return;
73
+ }
74
+ pointerZoom = Math.max(pointerZoomMin, Math.min(pointerZoomMax, pointerZoom));
75
+ const deltaZoom = pointerZoom - prevPointerZoom;
76
+ prevPointerZoom = pointerZoom;
77
+ instance.moveZoomRange(axisId, deltaZoom);
78
+ });
79
+ const onPointerUp = () => {
80
+ activePreviewRect.removeEventListener('pointermove', onPointerMove);
81
+ document.removeEventListener('pointerup', onPointerUp);
82
+ };
83
+ const onPointerDown = event => {
84
+ // Prevent text selection when dragging
85
+ event.preventDefault();
86
+ activePreviewRect.setPointerCapture(event.pointerId);
87
+ const axisZoomData = (0, _useChartProZoom.selectorChartAxisZoomData)(store.getSnapshot(), axisId);
88
+ const element = svgRef.current;
89
+ if (!axisZoomData || !element) {
90
+ return;
91
+ }
92
+ const point = (0, _internals.getSVGPoint)(element, event);
93
+ const pointerDownZoom = (0, _zoomUtils.calculateZoomFromPoint)(store.getSnapshot(), axisId, point);
94
+ if (pointerDownZoom === null) {
95
+ return;
96
+ }
97
+ prevPointerZoom = pointerDownZoom;
98
+ pointerZoomMin = pointerDownZoom - axisZoomData.start;
99
+ pointerZoomMax = 100 - (axisZoomData.end - pointerDownZoom);
100
+ document.addEventListener('pointerup', onPointerUp);
101
+ activePreviewRect.addEventListener('pointermove', onPointerMove);
102
+ };
103
+ activePreviewRect.addEventListener('pointerdown', onPointerDown);
104
+
105
+ // eslint-disable-next-line consistent-return
106
+ return () => {
107
+ activePreviewRect.removeEventListener('pointerdown', onPointerDown);
108
+ onPointerMove.clear();
109
+ };
110
+ }, [axisDirection, axisId, instance, reverse, store, svgRef]);
111
+ const onStartThumbMove = event => {
112
+ const element = svgRef.current;
113
+ if (!element) {
114
+ return;
115
+ }
116
+ const point = (0, _internals.getSVGPoint)(element, event);
117
+ instance.setZoomData(prevZoomData => {
118
+ const zoomOptions = (0, _internals.selectorChartAxisZoomOptionsLookup)(store.getSnapshot(), axisId);
119
+ return prevZoomData.map(zoom => {
120
+ if (zoom.axisId === axisId) {
121
+ const newStart = (0, _zoomUtils.calculateZoomFromPoint)(store.getSnapshot(), axisId, point);
122
+ if (newStart === null) {
123
+ return zoom;
124
+ }
125
+ return (0, _extends2.default)({}, zoom, {
126
+ start: (0, _zoomUtils.calculateZoomStart)(newStart, zoom, zoomOptions)
127
+ });
128
+ }
129
+ return zoom;
130
+ });
131
+ });
132
+ };
133
+ const onEndThumbMove = event => {
134
+ const element = svgRef.current;
135
+ if (!element) {
136
+ return;
137
+ }
138
+ const point = (0, _internals.getSVGPoint)(element, event);
139
+ instance.setZoomData(prevZoomData => {
140
+ const {
141
+ left,
142
+ top,
143
+ width,
144
+ height
145
+ } = (0, _internals.selectorChartDrawingArea)(store.getSnapshot());
146
+ const zoomOptions = (0, _internals.selectorChartAxisZoomOptionsLookup)(store.getSnapshot(), axisId);
147
+ return prevZoomData.map(zoom => {
148
+ if (zoom.axisId === axisId) {
149
+ let newEnd;
150
+ if (axisDirection === 'x') {
151
+ newEnd = (point.x - left) / width * 100;
152
+ } else {
153
+ newEnd = (top + height - point.y) / height * 100;
154
+ }
155
+ if (reverse) {
156
+ newEnd = 100 - newEnd;
157
+ }
158
+ return (0, _extends2.default)({}, zoom, {
159
+ end: (0, _zoomUtils.calculateZoomEnd)(newEnd, zoom, zoomOptions)
160
+ });
161
+ }
162
+ return zoom;
163
+ });
164
+ });
165
+ };
166
+ let previewX;
167
+ let previewY;
168
+ let previewWidth;
169
+ let previewHeight;
170
+ let startThumbX;
171
+ let startThumbY;
172
+ let endThumbX;
173
+ let endThumbY;
174
+ if (axisDirection === 'x') {
175
+ previewX = zoomData.start / 100 * drawingArea.width;
176
+ previewY = 0;
177
+ previewWidth = drawingArea.width * (zoomData.end - zoomData.start) / 100;
178
+ previewHeight = _constants.ZOOM_SLIDER_ACTIVE_TRACK_SIZE;
179
+ startThumbX = zoomData.start / 100 * drawingArea.width;
180
+ startThumbY = 0;
181
+ endThumbX = zoomData.end / 100 * drawingArea.width;
182
+ endThumbY = 0;
183
+ if (reverse) {
184
+ previewX = drawingArea.width - previewX - previewWidth;
185
+ startThumbX = drawingArea.width - startThumbX;
186
+ endThumbX = drawingArea.width - endThumbX;
187
+ }
188
+ startThumbX -= previewThumbWidth / 2;
189
+ endThumbX -= previewThumbWidth / 2;
190
+ } else {
191
+ previewX = 0;
192
+ previewY = drawingArea.height - zoomData.end / 100 * drawingArea.height;
193
+ previewWidth = _constants.ZOOM_SLIDER_ACTIVE_TRACK_SIZE;
194
+ previewHeight = drawingArea.height * (zoomData.end - zoomData.start) / 100;
195
+ startThumbX = 0;
196
+ startThumbY = drawingArea.height - zoomData.start / 100 * drawingArea.height;
197
+ endThumbX = 0;
198
+ endThumbY = drawingArea.height - zoomData.end / 100 * drawingArea.height;
199
+ if (reverse) {
200
+ previewY = drawingArea.height - previewY - previewHeight;
201
+ startThumbY = drawingArea.height - startThumbY;
202
+ endThumbY = drawingArea.height - endThumbY;
203
+ }
204
+ startThumbY -= previewThumbHeight / 2;
205
+ endThumbY -= previewThumbHeight / 2;
206
+ }
207
+ const previewOffset = (_constants.ZOOM_SLIDER_THUMB_HEIGHT - _constants.ZOOM_SLIDER_ACTIVE_TRACK_SIZE) / 2;
208
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
209
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomSliderActiveTrackRect, {
210
+ ref: activePreviewRectRef,
211
+ x: previewX + (axisDirection === 'x' ? 0 : previewOffset),
212
+ y: previewY + (axisDirection === 'x' ? previewOffset : 0),
213
+ width: previewWidth,
214
+ height: previewHeight,
215
+ onPointerEnter: onPointerEnter,
216
+ onPointerLeave: onPointerLeave
217
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartAxisZoomSliderThumb.ChartAxisZoomSliderThumb, {
218
+ ref: setStartThumbEl,
219
+ x: startThumbX,
220
+ y: startThumbY,
221
+ width: previewThumbWidth,
222
+ height: previewThumbHeight,
223
+ orientation: axisDirection === 'x' ? 'horizontal' : 'vertical',
224
+ onMove: onStartThumbMove,
225
+ onPointerEnter: onPointerEnter,
226
+ onPointerLeave: onPointerLeave,
227
+ placement: "start"
228
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartAxisZoomSliderThumb.ChartAxisZoomSliderThumb, {
229
+ ref: setEndThumbEl,
230
+ x: endThumbX,
231
+ y: endThumbY,
232
+ width: previewThumbWidth,
233
+ height: previewThumbHeight,
234
+ orientation: axisDirection === 'x' ? 'horizontal' : 'vertical',
235
+ onMove: onEndThumbMove,
236
+ onPointerEnter: onPointerEnter,
237
+ onPointerLeave: onPointerLeave,
238
+ placement: "end"
239
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipZoomSliderValue.ChartsTooltipZoomSliderValue, {
240
+ anchorEl: startThumbEl,
241
+ open: showTooltip && tooltipStart !== '',
242
+ placement: axisPosition,
243
+ children: tooltipStart
244
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipZoomSliderValue.ChartsTooltipZoomSliderValue, {
245
+ anchorEl: endThumbEl,
246
+ open: showTooltip && tooltipEnd !== '',
247
+ placement: axisPosition,
248
+ children: tooltipEnd
249
+ })]
250
+ });
251
+ }
252
+
253
+ /**
254
+ * Returns the text for the tooltips on the thumbs of the zoom slider.
255
+ */
256
+ function getZoomSliderTooltipsText(axis, drawingArea) {
257
+ const formatValue = value => {
258
+ if (axis.valueFormatter) {
259
+ return axis.valueFormatter(value, {
260
+ location: 'zoom-slider-tooltip'
261
+ });
262
+ }
263
+ return `${value}`;
264
+ };
265
+ const axisDirection = axis.position === 'top' || axis.position === 'bottom' ? 'x' : 'y';
266
+ let start = axisDirection === 'x' ? drawingArea.left : drawingArea.top;
267
+ const size = axisDirection === 'x' ? drawingArea.width : drawingArea.height;
268
+ let end = start + size;
269
+ if (axisDirection === 'y') {
270
+ [start, end] = [end, start]; // Invert for y-axis
271
+ }
272
+ if (axis.reverse) {
273
+ [start, end] = [end, start]; // Reverse the start and end if the axis is reversed
274
+ }
275
+ const startValue = (0, _internals.invertScale)(axis.scale, axis.data ?? [], start) ?? axis.data?.at(0);
276
+ const endValue = (0, _internals.invertScale)(axis.scale, axis.data ?? [], end) ?? axis.data?.at(-1);
277
+ const tooltipStart = formatValue(startValue);
278
+ const tooltipEnd = formatValue(endValue);
279
+ return {
280
+ tooltipStart,
281
+ tooltipEnd
282
+ };
283
+ }
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { AxisId } from '@mui/x-charts/internals';
3
+ interface ChartAxisZoomSliderTrackProps extends React.ComponentProps<'rect'> {
4
+ axisId: AxisId;
5
+ axisDirection: 'x' | 'y';
6
+ reverse: boolean;
7
+ onSelectStart?: () => void;
8
+ onSelectEnd?: () => void;
9
+ }
10
+ export declare function ChartAxisZoomSliderTrack({
11
+ axisId,
12
+ axisDirection,
13
+ reverse,
14
+ onSelectStart,
15
+ onSelectEnd,
16
+ ...other
17
+ }: ChartAxisZoomSliderTrackProps): React.JSX.Element;
18
+ export {};
@@ -0,0 +1,138 @@
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.ChartAxisZoomSliderTrack = ChartAxisZoomSliderTrack;
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 _styles = require("@mui/material/styles");
14
+ var _rafThrottle = require("@mui/x-internals/rafThrottle");
15
+ var _system = require("@mui/system");
16
+ var _zoomUtils = require("./zoom-utils");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ const _excluded = ["axisId", "axisDirection", "reverse", "onSelectStart", "onSelectEnd"];
19
+ const ZoomSliderTrack = (0, _styles.styled)('rect', {
20
+ shouldForwardProp: prop => (0, _system.shouldForwardProp)(prop) && prop !== 'axisDirection' && prop !== 'isSelecting'
21
+ })(({
22
+ theme
23
+ }) => ({
24
+ fill: theme.palette.mode === 'dark' ? (theme.vars || theme).palette.grey[800] : (theme.vars || theme).palette.grey[300],
25
+ cursor: 'pointer',
26
+ variants: [{
27
+ props: {
28
+ axisDirection: 'x',
29
+ isSelecting: true
30
+ },
31
+ style: {
32
+ cursor: 'ew-resize'
33
+ }
34
+ }, {
35
+ props: {
36
+ axisDirection: 'y',
37
+ isSelecting: true
38
+ },
39
+ style: {
40
+ cursor: 'ns-resize'
41
+ }
42
+ }]
43
+ }));
44
+ function ChartAxisZoomSliderTrack(_ref) {
45
+ let {
46
+ axisId,
47
+ axisDirection,
48
+ onSelectStart,
49
+ onSelectEnd
50
+ } = _ref,
51
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
52
+ const ref = React.useRef(null);
53
+ const {
54
+ instance,
55
+ svgRef
56
+ } = (0, _internals.useChartContext)();
57
+ const store = (0, _internals.useStore)();
58
+ const [isSelecting, setIsSelecting] = React.useState(false);
59
+ const onPointerDown = function onPointerDown(event) {
60
+ const rect = ref.current;
61
+ const element = svgRef.current;
62
+ if (!rect || !element) {
63
+ return;
64
+ }
65
+ const pointerDownPoint = (0, _internals.getSVGPoint)(element, event);
66
+ let zoomFromPointerDown = (0, _zoomUtils.calculateZoomFromPoint)(store.getSnapshot(), axisId, pointerDownPoint);
67
+ if (zoomFromPointerDown === null) {
68
+ return;
69
+ }
70
+ const {
71
+ minStart,
72
+ maxEnd
73
+ } = (0, _internals.selectorChartAxisZoomOptionsLookup)(store.getSnapshot(), axisId);
74
+
75
+ // Ensure the zoomFromPointerDown is within the min and max range
76
+ zoomFromPointerDown = Math.max(Math.min(zoomFromPointerDown, maxEnd), minStart);
77
+ const onPointerMove = (0, _rafThrottle.rafThrottle)(function onPointerMove(pointerMoveEvent) {
78
+ const pointerMovePoint = (0, _internals.getSVGPoint)(element, pointerMoveEvent);
79
+ const zoomFromPointerMove = (0, _zoomUtils.calculateZoomFromPoint)(store.getSnapshot(), axisId, pointerMovePoint);
80
+ if (zoomFromPointerMove === null) {
81
+ return;
82
+ }
83
+ const zoomOptions = (0, _internals.selectorChartAxisZoomOptionsLookup)(store.getSnapshot(), axisId);
84
+ instance.setAxisZoomData(axisId, prevZoomData => {
85
+ if (zoomFromPointerMove > zoomFromPointerDown) {
86
+ const end = (0, _zoomUtils.calculateZoomEnd)(zoomFromPointerMove, (0, _extends2.default)({}, prevZoomData, {
87
+ start: zoomFromPointerDown
88
+ }), zoomOptions);
89
+
90
+ /* If the starting point is too close to the end that minSpan wouldn't be respected, we need to update the
91
+ * start point. */
92
+ const start = (0, _zoomUtils.calculateZoomStart)(zoomFromPointerDown, (0, _extends2.default)({}, prevZoomData, {
93
+ start: zoomFromPointerDown,
94
+ end
95
+ }), zoomOptions);
96
+ return (0, _extends2.default)({}, prevZoomData, {
97
+ start,
98
+ end
99
+ });
100
+ }
101
+ const start = (0, _zoomUtils.calculateZoomStart)(zoomFromPointerMove, (0, _extends2.default)({}, prevZoomData, {
102
+ end: zoomFromPointerDown
103
+ }), zoomOptions);
104
+
105
+ /* If the starting point is too close to the start that minSpan wouldn't be respected, we need to update the
106
+ * start point. */
107
+ const end = (0, _zoomUtils.calculateZoomEnd)(zoomFromPointerDown, (0, _extends2.default)({}, prevZoomData, {
108
+ start,
109
+ end: zoomFromPointerDown
110
+ }), zoomOptions);
111
+ return (0, _extends2.default)({}, prevZoomData, {
112
+ start,
113
+ end
114
+ });
115
+ });
116
+ });
117
+ const onPointerUp = function onPointerUp(pointerUpEvent) {
118
+ rect.releasePointerCapture(pointerUpEvent.pointerId);
119
+ rect.removeEventListener('pointermove', onPointerMove);
120
+ document.removeEventListener('pointerup', onPointerUp);
121
+ setIsSelecting(false);
122
+ onSelectEnd?.();
123
+ };
124
+ event.preventDefault();
125
+ event.stopPropagation();
126
+ rect.setPointerCapture(event.pointerId);
127
+ document.addEventListener('pointerup', onPointerUp);
128
+ rect.addEventListener('pointermove', onPointerMove);
129
+ onSelectStart?.();
130
+ setIsSelecting(true);
131
+ };
132
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomSliderTrack, (0, _extends2.default)({
133
+ ref: ref,
134
+ onPointerDown: onPointerDown,
135
+ axisDirection: axisDirection,
136
+ isSelecting: isSelecting
137
+ }, other));
138
+ }
@@ -0,0 +1,5 @@
1
+ export declare const ZOOM_SLIDER_TRACK_SIZE = 8;
2
+ export declare const ZOOM_SLIDER_ACTIVE_TRACK_SIZE = 10;
3
+ export declare const ZOOM_SLIDER_THUMB_HEIGHT = 20;
4
+ export declare const ZOOM_SLIDER_THUMB_WIDTH = 10;
5
+ export declare const ZOOM_SLIDER_SIZE: number;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ZOOM_SLIDER_TRACK_SIZE = exports.ZOOM_SLIDER_THUMB_WIDTH = exports.ZOOM_SLIDER_THUMB_HEIGHT = exports.ZOOM_SLIDER_SIZE = exports.ZOOM_SLIDER_ACTIVE_TRACK_SIZE = void 0;
7
+ const ZOOM_SLIDER_TRACK_SIZE = exports.ZOOM_SLIDER_TRACK_SIZE = 8;
8
+ const ZOOM_SLIDER_ACTIVE_TRACK_SIZE = exports.ZOOM_SLIDER_ACTIVE_TRACK_SIZE = 10;
9
+ const ZOOM_SLIDER_THUMB_HEIGHT = exports.ZOOM_SLIDER_THUMB_HEIGHT = 20;
10
+ const ZOOM_SLIDER_THUMB_WIDTH = exports.ZOOM_SLIDER_THUMB_WIDTH = 10;
11
+ const ZOOM_SLIDER_SIZE = exports.ZOOM_SLIDER_SIZE = Math.max(ZOOM_SLIDER_TRACK_SIZE, ZOOM_SLIDER_ACTIVE_TRACK_SIZE, ZOOM_SLIDER_THUMB_HEIGHT, ZOOM_SLIDER_THUMB_WIDTH);
@@ -0,0 +1,4 @@
1
+ import { AxisId, ChartState, DefaultizedZoomOptions, ZoomData } from '@mui/x-charts/internals';
2
+ export declare function calculateZoomFromPoint(state: ChartState<any>, axisId: AxisId, point: DOMPoint): number | null;
3
+ export declare function calculateZoomStart(newStart: number, currentZoom: ZoomData, options: Pick<DefaultizedZoomOptions, 'minStart' | 'minSpan' | 'maxSpan'>): number;
4
+ export declare function calculateZoomEnd(newEnd: number, currentZoom: ZoomData, options: Pick<DefaultizedZoomOptions, 'maxEnd' | 'minSpan' | 'maxSpan'>): number;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.calculateZoomEnd = calculateZoomEnd;
7
+ exports.calculateZoomFromPoint = calculateZoomFromPoint;
8
+ exports.calculateZoomStart = calculateZoomStart;
9
+ var _internals = require("@mui/x-charts/internals");
10
+ function calculateZoomFromPoint(state, axisId, point) {
11
+ const {
12
+ left,
13
+ top,
14
+ height,
15
+ width
16
+ } = (0, _internals.selectorChartDrawingArea)(state);
17
+ const axis = (0, _internals.selectorChartRawAxis)(state, axisId);
18
+ if (!axis) {
19
+ return null;
20
+ }
21
+ const axisDirection = axis.position === 'right' || axis.position === 'left' ? 'y' : 'x';
22
+ let pointerZoom;
23
+ if (axisDirection === 'x') {
24
+ pointerZoom = (point.x - left) / width * 100;
25
+ } else {
26
+ pointerZoom = (top + height - point.y) / height * 100;
27
+ }
28
+ if (axis.reverse) {
29
+ pointerZoom = 100 - pointerZoom;
30
+ }
31
+ return pointerZoom;
32
+ }
33
+ function calculateZoomStart(newStart, currentZoom, options) {
34
+ const {
35
+ minStart,
36
+ minSpan,
37
+ maxSpan
38
+ } = options;
39
+ return Math.max(minStart, currentZoom.end - maxSpan, Math.min(currentZoom.end - minSpan, newStart));
40
+ }
41
+ function calculateZoomEnd(newEnd, currentZoom, options) {
42
+ const {
43
+ maxEnd,
44
+ minSpan,
45
+ maxSpan
46
+ } = options;
47
+ return Math.min(maxEnd, currentZoom.start + maxSpan, Math.max(currentZoom.start + minSpan, newEnd));
48
+ }
@@ -1,2 +1,6 @@
1
+ import { ChartsToolbarProps } from '@mui/x-charts/Toolbar';
1
2
  import * as React from 'react';
2
- export declare function ChartsToolbarPro(): React.JSX.Element | null;
3
+ /**
4
+ * The chart toolbar component for the pro package.
5
+ */
6
+ export declare function ChartsToolbarPro(props: ChartsToolbarProps): React.JSX.Element | null;
@@ -1,31 +1,59 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.ChartsToolbarPro = ChartsToolbarPro;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
10
  var _Toolbar = require("@mui/x-charts/Toolbar");
9
11
  var React = _interopRequireWildcard(require("react"));
10
12
  var _internals = require("@mui/x-charts/internals");
13
+ var _hooks = require("@mui/x-charts/hooks");
11
14
  var _useChartProZoom = require("../internals/plugins/useChartProZoom");
12
- var _ChartsToolbarZoomInButton = require("./internal/ChartsToolbarZoomInButton");
13
- var _ChartsToolbarZoomOutButton = require("./internal/ChartsToolbarZoomOutButton");
15
+ var _ChartsToolbarZoomInTrigger = require("./ChartsToolbarZoomInTrigger");
16
+ var _ChartsToolbarZoomOutTrigger = require("./ChartsToolbarZoomOutTrigger");
14
17
  var _jsxRuntime = require("react/jsx-runtime");
15
- function ChartsToolbarPro() {
18
+ /**
19
+ * The chart toolbar component for the pro package.
20
+ */
21
+ function ChartsToolbarPro(props) {
22
+ const {
23
+ slots,
24
+ slotProps
25
+ } = (0, _internals.useChartsSlots)();
16
26
  const {
17
27
  store
18
28
  } = (0, _internals.useChartContext)();
29
+ const {
30
+ localeText
31
+ } = (0, _hooks.useChartsLocalization)();
19
32
  const isZoomEnabled = (0, _internals.useSelector)(store, _useChartProZoom.selectorChartZoomIsEnabled);
20
33
  const children = [];
21
34
  if (isZoomEnabled) {
22
- children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsToolbarZoomInButton.ChartsToolbarZoomInButton, {}, "zoom-in"));
23
- children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsToolbarZoomOutButton.ChartsToolbarZoomOutButton, {}, "zoom-out"));
35
+ const Tooltip = slots.baseTooltip;
36
+ const ZoomOutIcon = slots.zoomOutIcon;
37
+ const ZoomInIcon = slots.zoomInIcon;
38
+ children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, slotProps.baseTooltip, {
39
+ title: localeText.zoomIn,
40
+ 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))
43
+ })
44
+ }), "zoom-in"));
45
+ children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, slotProps.baseTooltip, {
46
+ title: localeText.zoomOut,
47
+ 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))
50
+ })
51
+ }), "zoom-out"));
24
52
  }
25
53
  if (children.length === 0) {
26
54
  return null;
27
55
  }
28
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.Toolbar, {
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.Toolbar, (0, _extends2.default)({}, props, {
29
57
  children: children
30
- });
58
+ }));
31
59
  }
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { ChartsSlotProps } from '@mui/x-charts/internals';
3
+ import { RenderProp } from '@mui/x-internals/useComponentRenderer';
4
+ interface ChartsToolbarZoomInTriggerProps {
5
+ /**
6
+ * A function to customize the rendering of the component.
7
+ */
8
+ render?: RenderProp<ChartsSlotProps['baseButton']>;
9
+ }
10
+ /**
11
+ * A button that zooms the chart in.
12
+ * It renders the `baseButton` slot.
13
+ */
14
+ declare const ChartsToolbarZoomInTrigger: React.ForwardRefExoticComponent<ChartsToolbarZoomInTriggerProps & {
15
+ children?: React.ReactNode | undefined;
16
+ } & React.RefAttributes<HTMLButtonElement>>;
17
+ export { ChartsToolbarZoomInTrigger };
@@ -0,0 +1,57 @@
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.ChartsToolbarZoomInTrigger = void 0;
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 _internals = require("@mui/x-charts/internals");
15
+ var _useComponentRenderer = require("@mui/x-internals/useComponentRenderer");
16
+ var _useChartProZoom = require("../internals/plugins/useChartProZoom");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ const _excluded = ["render"];
19
+ /**
20
+ * A button that zooms the chart in.
21
+ * It renders the `baseButton` slot.
22
+ */
23
+ const ChartsToolbarZoomInTrigger = exports.ChartsToolbarZoomInTrigger = /*#__PURE__*/React.forwardRef(function ChartsToolbarZoomInTrigger(_ref, ref) {
24
+ let {
25
+ render
26
+ } = _ref,
27
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
28
+ const {
29
+ slots,
30
+ slotProps
31
+ } = (0, _internals.useChartsSlots)();
32
+ const {
33
+ instance,
34
+ store
35
+ } = (0, _internals.useChartContext)();
36
+ const disabled = (0, _internals.useSelector)(store, _useChartProZoom.selectorChartCanZoomIn);
37
+ const element = (0, _useComponentRenderer.useComponentRenderer)(slots.baseButton, render, (0, _extends2.default)({}, slotProps.baseButton, {
38
+ onClick: () => instance.zoomIn(),
39
+ disabled
40
+ }, other, {
41
+ ref
42
+ }));
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
44
+ children: element
45
+ });
46
+ });
47
+ if (process.env.NODE_ENV !== "production") ChartsToolbarZoomInTrigger.displayName = "ChartsToolbarZoomInTrigger";
48
+ process.env.NODE_ENV !== "production" ? ChartsToolbarZoomInTrigger.propTypes = {
49
+ // ----------------------------- Warning --------------------------------
50
+ // | These PropTypes are generated from the TypeScript type definitions |
51
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
52
+ // ----------------------------------------------------------------------
53
+ /**
54
+ * A function to customize the rendering of the component.
55
+ */
56
+ render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func])
57
+ } : void 0;