@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.
- package/CHANGELOG.md +210 -0
- package/ChartContainerPro/index.d.ts +7 -1
- package/ChartContainerPro/index.js +0 -11
- package/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
- package/ChartZoomSlider/index.d.ts +2 -1
- package/ChartZoomSlider/index.js +10 -2
- package/ChartZoomSlider/internals/ChartAxisZoomSlider.js +4 -0
- package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +7 -1
- package/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +9 -1
- package/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.d.ts +15 -0
- package/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.js +31 -0
- package/ChartsToolbarPro/ChartsToolbarImageExportTrigger.d.ts +27 -0
- package/ChartsToolbarPro/ChartsToolbarImageExportTrigger.js +77 -0
- package/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.d.ts +33 -0
- package/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.js +75 -0
- package/ChartsToolbarPro/ChartsToolbarPro.d.ts +16 -3
- package/ChartsToolbarPro/ChartsToolbarPro.js +118 -8
- package/ChartsToolbarPro/index.d.ts +3 -1
- package/ChartsToolbarPro/index.js +22 -0
- package/ChartsToolbarPro/internals/ChartsMenu.d.ts +14 -0
- package/ChartsToolbarPro/internals/ChartsMenu.js +73 -0
- package/ChartsToolbarPro/internals/ChartsToolbarDivider.d.ts +5 -0
- package/ChartsToolbarPro/internals/ChartsToolbarDivider.js +47 -0
- package/FunnelChart/funnelAxisPlugin/useChartFunnelAxis.js +43 -33
- package/FunnelChart/funnelAxisPlugin/useChartFunnelAxisRendering.selectors.d.ts +3 -3
- package/{ChartContainerPro → context}/ChartProApi.d.ts +2 -3
- package/context/index.d.ts +2 -1
- package/context/index.js +4 -4
- package/context/useChartProApiContext.d.ts +9 -0
- package/context/{useChartApiContext.js → useChartProApiContext.js} +4 -4
- package/esm/ChartContainerPro/index.d.ts +7 -1
- package/esm/ChartContainerPro/index.js +4 -1
- package/esm/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
- package/esm/ChartZoomSlider/index.d.ts +2 -1
- package/esm/ChartZoomSlider/index.js +2 -1
- package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.js +4 -0
- package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +8 -1
- package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +10 -1
- package/esm/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.d.ts +15 -0
- package/esm/ChartZoomSlider/internals/chartAxisZoomSliderTrackClasses.js +21 -0
- package/esm/ChartsToolbarPro/ChartsToolbarImageExportTrigger.d.ts +27 -0
- package/esm/ChartsToolbarPro/ChartsToolbarImageExportTrigger.js +70 -0
- package/esm/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.d.ts +33 -0
- package/esm/ChartsToolbarPro/ChartsToolbarPrintExportTrigger.js +68 -0
- package/esm/ChartsToolbarPro/ChartsToolbarPro.d.ts +16 -3
- package/esm/ChartsToolbarPro/ChartsToolbarPro.js +120 -8
- package/esm/ChartsToolbarPro/index.d.ts +3 -1
- package/esm/ChartsToolbarPro/index.js +3 -1
- package/esm/ChartsToolbarPro/internals/ChartsMenu.d.ts +14 -0
- package/esm/ChartsToolbarPro/internals/ChartsMenu.js +67 -0
- package/esm/ChartsToolbarPro/internals/ChartsToolbarDivider.d.ts +5 -0
- package/esm/ChartsToolbarPro/internals/ChartsToolbarDivider.js +40 -0
- package/esm/FunnelChart/funnelAxisPlugin/useChartFunnelAxis.js +43 -33
- package/esm/FunnelChart/funnelAxisPlugin/useChartFunnelAxisRendering.selectors.d.ts +3 -3
- package/esm/{ChartContainerPro → context}/ChartProApi.d.ts +2 -3
- package/esm/context/index.d.ts +2 -1
- package/esm/context/index.js +2 -1
- package/esm/context/useChartProApiContext.d.ts +9 -0
- package/esm/context/{useChartApiContext.js → useChartProApiContext.js} +3 -3
- package/esm/hooks/index.d.ts +2 -1
- package/esm/hooks/index.js +2 -1
- package/esm/hooks/useChartProApiRef.d.ts +23 -0
- package/esm/hooks/useChartProApiRef.js +20 -0
- package/esm/index.d.ts +6 -3
- package/esm/index.js +3 -3
- package/esm/internals/material/components/BaseMenuItem.d.ts +3 -0
- package/esm/internals/material/components/BaseMenuItem.js +27 -0
- package/esm/internals/material/components/BasePopper.d.ts +3 -0
- package/esm/internals/material/components/BasePopper.js +122 -0
- package/esm/internals/material/icons.d.ts +2 -1
- package/esm/internals/material/icons.js +4 -1
- package/esm/internals/material/index.d.ts +1 -0
- package/esm/internals/material/index.js +12 -3
- package/esm/internals/plugins/allPlugins.d.ts +2 -2
- package/esm/internals/plugins/useChartProExport/print.js +1 -1
- package/esm/internals/plugins/useChartProExport/useChartProExport.types.d.ts +7 -6
- package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.d.ts +8 -0
- package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.js +58 -0
- package/esm/internals/plugins/useChartProZoom/{useChartProZoom.utils.d.ts → gestureHooks/useZoom.utils.d.ts} +14 -10
- package/esm/internals/plugins/useChartProZoom/{useChartProZoom.utils.js → gestureHooks/useZoom.utils.js} +41 -31
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.d.ts +8 -0
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.js +59 -0
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.d.ts +8 -0
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.js +79 -0
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.js +15 -227
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +4 -4
- package/esm/internals/slots/chartBaseSlotProps.d.ts +50 -3
- package/esm/internals/slots/chartsBaseSlots.d.ts +5 -1
- package/esm/internals/slots/chartsIconSlots.d.ts +5 -0
- package/hooks/index.d.ts +2 -1
- package/hooks/index.js +11 -0
- package/hooks/useChartProApiRef.d.ts +23 -0
- package/hooks/useChartProApiRef.js +28 -0
- package/index.d.ts +6 -3
- package/index.js +58 -22
- package/internals/material/components/BaseMenuItem.d.ts +3 -0
- package/internals/material/components/BaseMenuItem.js +35 -0
- package/internals/material/components/BasePopper.d.ts +3 -0
- package/internals/material/components/BasePopper.js +130 -0
- package/internals/material/icons.d.ts +2 -1
- package/internals/material/icons.js +5 -2
- package/internals/material/index.d.ts +1 -0
- package/internals/material/index.js +11 -2
- package/internals/plugins/allPlugins.d.ts +2 -2
- package/internals/plugins/useChartProExport/print.js +1 -1
- package/internals/plugins/useChartProExport/useChartProExport.types.d.ts +7 -6
- package/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.d.ts +8 -0
- package/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.js +65 -0
- package/internals/plugins/useChartProZoom/{useChartProZoom.utils.d.ts → gestureHooks/useZoom.utils.d.ts} +14 -10
- package/internals/plugins/useChartProZoom/{useChartProZoom.utils.js → gestureHooks/useZoom.utils.js} +43 -34
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.d.ts +8 -0
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.js +66 -0
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.d.ts +8 -0
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.js +86 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.js +14 -226
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +4 -4
- package/internals/slots/chartBaseSlotProps.d.ts +50 -3
- package/internals/slots/chartsBaseSlots.d.ts +5 -1
- package/internals/slots/chartsIconSlots.d.ts +5 -0
- package/package.json +5 -4
- package/context/useChartApiContext.d.ts +0 -9
- package/esm/context/useChartApiContext.d.ts +0 -9
- /package/{ChartContainerPro → context}/ChartProApi.js +0 -0
- /package/esm/{ChartContainerPro → context}/ChartProApi.js +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import { styled } from '@mui/material/styles';
|
|
3
5
|
import { getSVGPoint, invertScale, selectorChartAxis, selectorChartAxisZoomOptionsLookup, useChartContext, useDrawingArea, useSelector, useStore } from '@mui/x-charts/internals';
|
|
@@ -8,6 +10,7 @@ import { ChartAxisZoomSliderThumb } from "./ChartAxisZoomSliderThumb.js";
|
|
|
8
10
|
import { ChartsTooltipZoomSliderValue } from "./ChartsTooltipZoomSliderValue.js";
|
|
9
11
|
import { calculateZoomEnd, calculateZoomFromPoint, calculateZoomStart } from "./zoom-utils.js";
|
|
10
12
|
import { ZOOM_SLIDER_ACTIVE_TRACK_SIZE, ZOOM_SLIDER_THUMB_HEIGHT, ZOOM_SLIDER_THUMB_WIDTH } from "./constants.js";
|
|
13
|
+
import { useUtilityClasses } from "./chartAxisZoomSliderTrackClasses.js";
|
|
11
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
15
|
const ZoomSliderActiveTrackRect = styled('rect')(({
|
|
13
16
|
theme
|
|
@@ -41,6 +44,9 @@ export function ChartAxisZoomSliderActiveTrack({
|
|
|
41
44
|
tooltipStart,
|
|
42
45
|
tooltipEnd
|
|
43
46
|
} = getZoomSliderTooltipsText(axis, drawingArea);
|
|
47
|
+
const classes = useUtilityClasses({
|
|
48
|
+
axisDirection
|
|
49
|
+
});
|
|
44
50
|
const previewThumbWidth = axisDirection === 'x' ? ZOOM_SLIDER_THUMB_WIDTH : ZOOM_SLIDER_THUMB_HEIGHT;
|
|
45
51
|
const previewThumbHeight = axisDirection === 'x' ? ZOOM_SLIDER_THUMB_HEIGHT : ZOOM_SLIDER_THUMB_WIDTH;
|
|
46
52
|
React.useEffect(() => {
|
|
@@ -194,7 +200,8 @@ export function ChartAxisZoomSliderActiveTrack({
|
|
|
194
200
|
width: previewWidth,
|
|
195
201
|
height: previewHeight,
|
|
196
202
|
onPointerEnter: onPointerEnter,
|
|
197
|
-
onPointerLeave: onPointerLeave
|
|
203
|
+
onPointerLeave: onPointerLeave,
|
|
204
|
+
className: classes.active
|
|
198
205
|
}), /*#__PURE__*/_jsx(ChartAxisZoomSliderThumb, {
|
|
199
206
|
ref: setStartThumbEl,
|
|
200
207
|
x: startThumbX,
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
5
|
const _excluded = ["axisId", "axisDirection", "reverse", "onSelectStart", "onSelectEnd"];
|
|
@@ -6,7 +8,9 @@ import { useChartContext, getSVGPoint, selectorChartAxisZoomOptionsLookup, useSt
|
|
|
6
8
|
import { styled } from '@mui/material/styles';
|
|
7
9
|
import { rafThrottle } from '@mui/x-internals/rafThrottle';
|
|
8
10
|
import { shouldForwardProp } from '@mui/system';
|
|
11
|
+
import clsx from 'clsx';
|
|
9
12
|
import { calculateZoomEnd, calculateZoomFromPoint, calculateZoomStart } from "./zoom-utils.js";
|
|
13
|
+
import { useUtilityClasses } from "./chartAxisZoomSliderTrackClasses.js";
|
|
10
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
15
|
const ZoomSliderTrack = styled('rect', {
|
|
12
16
|
shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'axisDirection' && prop !== 'isSelecting'
|
|
@@ -48,6 +52,9 @@ export function ChartAxisZoomSliderTrack(_ref) {
|
|
|
48
52
|
} = useChartContext();
|
|
49
53
|
const store = useStore();
|
|
50
54
|
const [isSelecting, setIsSelecting] = React.useState(false);
|
|
55
|
+
const classes = useUtilityClasses({
|
|
56
|
+
axisDirection
|
|
57
|
+
});
|
|
51
58
|
const onPointerDown = function onPointerDown(event) {
|
|
52
59
|
const rect = ref.current;
|
|
53
60
|
const element = svgRef.current;
|
|
@@ -119,5 +126,7 @@ export function ChartAxisZoomSliderTrack(_ref) {
|
|
|
119
126
|
onPointerDown: onPointerDown,
|
|
120
127
|
axisDirection: axisDirection,
|
|
121
128
|
isSelecting: isSelecting
|
|
122
|
-
}, other
|
|
129
|
+
}, other, {
|
|
130
|
+
className: clsx(classes.background, other.className)
|
|
131
|
+
}));
|
|
123
132
|
}
|
|
@@ -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,21 @@
|
|
|
1
|
+
import composeClasses from '@mui/utils/composeClasses';
|
|
2
|
+
import ClassNameGenerator from '@mui/utils/ClassNameGenerator';
|
|
3
|
+
export const chartAxisZoomSliderTrackClasses = ['horizontal', 'vertical', 'background', 'active'].reduce((acc, slot) => {
|
|
4
|
+
acc[slot] = getAxisZoomSliderTrackUtilityClass(slot);
|
|
5
|
+
return acc;
|
|
6
|
+
}, {});
|
|
7
|
+
export function getAxisZoomSliderTrackUtilityClass(slot) {
|
|
8
|
+
// We use the `ClassNameGenerator` because the original `generateUtilityClass` function
|
|
9
|
+
// has a special case for the `active` slot.
|
|
10
|
+
return `${ClassNameGenerator.generate('MuiChartAxisZoomSliderTrack')}-${slot}`;
|
|
11
|
+
}
|
|
12
|
+
export const useUtilityClasses = props => {
|
|
13
|
+
const {
|
|
14
|
+
axisDirection
|
|
15
|
+
} = props;
|
|
16
|
+
const slots = {
|
|
17
|
+
background: [axisDirection === 'x' ? 'horizontal' : 'vertical', 'background'],
|
|
18
|
+
active: [axisDirection === 'x' ? 'horizontal' : 'vertical', 'active']
|
|
19
|
+
};
|
|
20
|
+
return composeClasses(slots, getAxisZoomSliderTrackUtilityClass);
|
|
21
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
|
+
import { ChartImageExportOptions } from "../internals/plugins/useChartProExport/index.js";
|
|
4
|
+
import { ChartsSlotPropsPro } from "../internals/material/index.js";
|
|
5
|
+
export interface ChartsToolbarImageExportOptions extends Omit<ChartImageExportOptions, 'type'>, Required<Pick<ChartImageExportOptions, 'type'>> {}
|
|
6
|
+
export type ChartsToolbarImageExportTriggerProps = ChartsSlotPropsPro['baseButton'] & {
|
|
7
|
+
/**
|
|
8
|
+
* A function to customize the rendering of the component.
|
|
9
|
+
*/
|
|
10
|
+
render?: RenderProp<ChartsSlotPropsPro['baseButton']>;
|
|
11
|
+
/**
|
|
12
|
+
* The options to apply on the image export.
|
|
13
|
+
* @demos
|
|
14
|
+
* - [Export as Image](https://mui.com/x/react-charts/export/#export-as-image)
|
|
15
|
+
*/
|
|
16
|
+
options?: ChartsToolbarImageExportOptions;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* A button that triggers an image export.
|
|
20
|
+
* It renders the `baseButton` slot.
|
|
21
|
+
*
|
|
22
|
+
* Demos:
|
|
23
|
+
*
|
|
24
|
+
* - [Export](https://mui.com/x/react-charts/export/)
|
|
25
|
+
*/
|
|
26
|
+
declare const ChartsToolbarImageExportTrigger: React.ForwardRefExoticComponent<ChartsToolbarImageExportTriggerProps> | React.ForwardRefExoticComponent<Omit<ChartsToolbarImageExportTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
27
|
+
export { ChartsToolbarImageExportTrigger };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["render", "options", "onClick"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import { forwardRef } from '@mui/x-internals/forwardRef';
|
|
7
|
+
import { useComponentRenderer } from '@mui/x-internals/useComponentRenderer';
|
|
8
|
+
import { useChartsSlots } from '@mui/x-charts/internals';
|
|
9
|
+
import { useChartProApiContext } from "../context/index.js";
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
/**
|
|
12
|
+
* A button that triggers an image export.
|
|
13
|
+
* It renders the `baseButton` slot.
|
|
14
|
+
*
|
|
15
|
+
* Demos:
|
|
16
|
+
*
|
|
17
|
+
* - [Export](https://mui.com/x/react-charts/export/)
|
|
18
|
+
*/
|
|
19
|
+
const ChartsToolbarImageExportTrigger = forwardRef(function ChartsToolbarImageExportTrigger(props, ref) {
|
|
20
|
+
const {
|
|
21
|
+
render,
|
|
22
|
+
options,
|
|
23
|
+
onClick
|
|
24
|
+
} = props,
|
|
25
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
26
|
+
const {
|
|
27
|
+
slots,
|
|
28
|
+
slotProps
|
|
29
|
+
} = useChartsSlots();
|
|
30
|
+
const apiRef = useChartProApiContext();
|
|
31
|
+
const handleClick = event => {
|
|
32
|
+
apiRef.current.exportAsImage(options);
|
|
33
|
+
onClick?.(event);
|
|
34
|
+
};
|
|
35
|
+
const element = useComponentRenderer(slots.baseButton, render, _extends({}, slotProps?.baseButton, {
|
|
36
|
+
onClick: handleClick
|
|
37
|
+
}, other, {
|
|
38
|
+
ref
|
|
39
|
+
}));
|
|
40
|
+
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
41
|
+
children: element
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
if (process.env.NODE_ENV !== "production") ChartsToolbarImageExportTrigger.displayName = "ChartsToolbarImageExportTrigger";
|
|
45
|
+
process.env.NODE_ENV !== "production" ? ChartsToolbarImageExportTrigger.propTypes = {
|
|
46
|
+
// ----------------------------- Warning --------------------------------
|
|
47
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
48
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
49
|
+
// ----------------------------------------------------------------------
|
|
50
|
+
className: PropTypes.string,
|
|
51
|
+
disabled: PropTypes.bool,
|
|
52
|
+
id: PropTypes.string,
|
|
53
|
+
/**
|
|
54
|
+
* The options to apply on the image export.
|
|
55
|
+
* @demos
|
|
56
|
+
* - [Export as Image](https://mui.com/x/react-charts/export/#export-as-image)
|
|
57
|
+
*/
|
|
58
|
+
options: PropTypes.shape({
|
|
59
|
+
fileName: PropTypes.string,
|
|
60
|
+
quality: PropTypes.number,
|
|
61
|
+
type: PropTypes.string.isRequired
|
|
62
|
+
}),
|
|
63
|
+
/**
|
|
64
|
+
* A function to customize the rendering of the component.
|
|
65
|
+
*/
|
|
66
|
+
render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
|
|
67
|
+
style: PropTypes.object,
|
|
68
|
+
tabIndex: PropTypes.number
|
|
69
|
+
} : void 0;
|
|
70
|
+
export { ChartsToolbarImageExportTrigger };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
|
+
import { ChartPrintExportOptions } from "../internals/plugins/useChartProExport/index.js";
|
|
4
|
+
import { ChartsSlotPropsPro } from "../internals/material/index.js";
|
|
5
|
+
export interface ChartsToolbarPrintExportOptions extends ChartPrintExportOptions {
|
|
6
|
+
/**
|
|
7
|
+
* If `true`, this export option will be removed from the ChartsToolbarExport menu.
|
|
8
|
+
* @default false
|
|
9
|
+
*/
|
|
10
|
+
disableToolbarButton?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export type ChartsToolbarPrintExportTriggerProps = ChartsSlotPropsPro['baseButton'] & {
|
|
13
|
+
/**
|
|
14
|
+
* A function to customize the rendering of the component.
|
|
15
|
+
*/
|
|
16
|
+
render?: RenderProp<ChartsSlotPropsPro['baseButton']>;
|
|
17
|
+
/**
|
|
18
|
+
* The options to apply on the Print export.
|
|
19
|
+
* @demos
|
|
20
|
+
* - [Print/Export as PDF](https://mui.com/x/react-charts/export/#print-export-as-pdf)
|
|
21
|
+
*/
|
|
22
|
+
options?: ChartPrintExportOptions;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* A button that triggers a print export.
|
|
26
|
+
* It renders the `baseButton` slot.
|
|
27
|
+
*
|
|
28
|
+
* Demos:
|
|
29
|
+
*
|
|
30
|
+
* - [Export](https://mui.com/x/react-charts/export/)
|
|
31
|
+
*/
|
|
32
|
+
declare const ChartsToolbarPrintExportTrigger: React.ForwardRefExoticComponent<ChartsToolbarPrintExportTriggerProps> | React.ForwardRefExoticComponent<Omit<ChartsToolbarPrintExportTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
33
|
+
export { ChartsToolbarPrintExportTrigger };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["render", "options", "onClick"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import { forwardRef } from '@mui/x-internals/forwardRef';
|
|
7
|
+
import { useComponentRenderer } from '@mui/x-internals/useComponentRenderer';
|
|
8
|
+
import { useChartsSlots } from '@mui/x-charts/internals';
|
|
9
|
+
import { useChartProApiContext } from "../context/index.js";
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
/**
|
|
12
|
+
* A button that triggers a print export.
|
|
13
|
+
* It renders the `baseButton` slot.
|
|
14
|
+
*
|
|
15
|
+
* Demos:
|
|
16
|
+
*
|
|
17
|
+
* - [Export](https://mui.com/x/react-charts/export/)
|
|
18
|
+
*/
|
|
19
|
+
const ChartsToolbarPrintExportTrigger = forwardRef(function ChartsToolbarPrintExportTrigger(props, ref) {
|
|
20
|
+
const {
|
|
21
|
+
render,
|
|
22
|
+
options,
|
|
23
|
+
onClick
|
|
24
|
+
} = props,
|
|
25
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
26
|
+
const {
|
|
27
|
+
slots,
|
|
28
|
+
slotProps
|
|
29
|
+
} = useChartsSlots();
|
|
30
|
+
const apiRef = useChartProApiContext();
|
|
31
|
+
const handleClick = event => {
|
|
32
|
+
apiRef.current.exportAsPrint(options);
|
|
33
|
+
onClick?.(event);
|
|
34
|
+
};
|
|
35
|
+
const element = useComponentRenderer(slots.baseButton, render, _extends({}, slotProps?.baseButton, {
|
|
36
|
+
onClick: handleClick
|
|
37
|
+
}, other, {
|
|
38
|
+
ref
|
|
39
|
+
}));
|
|
40
|
+
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
41
|
+
children: element
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
if (process.env.NODE_ENV !== "production") ChartsToolbarPrintExportTrigger.displayName = "ChartsToolbarPrintExportTrigger";
|
|
45
|
+
process.env.NODE_ENV !== "production" ? ChartsToolbarPrintExportTrigger.propTypes = {
|
|
46
|
+
// ----------------------------- Warning --------------------------------
|
|
47
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
48
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
49
|
+
// ----------------------------------------------------------------------
|
|
50
|
+
className: PropTypes.string,
|
|
51
|
+
disabled: PropTypes.bool,
|
|
52
|
+
id: PropTypes.string,
|
|
53
|
+
/**
|
|
54
|
+
* The options to apply on the Print export.
|
|
55
|
+
* @demos
|
|
56
|
+
* - [Print/Export as PDF](https://mui.com/x/react-charts/export/#print-export-as-pdf)
|
|
57
|
+
*/
|
|
58
|
+
options: PropTypes.shape({
|
|
59
|
+
fileName: PropTypes.string
|
|
60
|
+
}),
|
|
61
|
+
/**
|
|
62
|
+
* A function to customize the rendering of the component.
|
|
63
|
+
*/
|
|
64
|
+
render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
|
|
65
|
+
style: PropTypes.object,
|
|
66
|
+
tabIndex: PropTypes.number
|
|
67
|
+
} : void 0;
|
|
68
|
+
export { ChartsToolbarPrintExportTrigger };
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
import { ChartsToolbarProps } from '@mui/x-charts/Toolbar';
|
|
2
1
|
import * as React from 'react';
|
|
3
|
-
|
|
2
|
+
import { ChartsToolbarProps } from '@mui/x-charts/Toolbar';
|
|
3
|
+
import { ChartsToolbarPrintExportOptions } from "./ChartsToolbarPrintExportTrigger.js";
|
|
4
|
+
import { ChartsToolbarImageExportOptions } from "./ChartsToolbarImageExportTrigger.js";
|
|
5
|
+
export interface ChartsToolbarProProps extends ChartsToolbarProps {
|
|
6
|
+
printOptions?: ChartsToolbarPrintExportOptions;
|
|
7
|
+
imageExportOptions?: ChartsToolbarImageExportOptions[];
|
|
8
|
+
}
|
|
4
9
|
/**
|
|
5
10
|
* The chart toolbar component for the pro package.
|
|
6
11
|
*/
|
|
7
|
-
|
|
12
|
+
declare function ChartsToolbarPro({
|
|
13
|
+
printOptions,
|
|
14
|
+
imageExportOptions: rawImageExportOptions,
|
|
15
|
+
...other
|
|
16
|
+
}: ChartsToolbarProProps): React.JSX.Element | null;
|
|
17
|
+
declare namespace ChartsToolbarPro {
|
|
18
|
+
var propTypes: any;
|
|
19
|
+
}
|
|
20
|
+
export { ChartsToolbarPro };
|
|
@@ -1,16 +1,35 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import
|
|
4
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
+
const _excluded = ["printOptions", "imageExportOptions"];
|
|
3
6
|
import * as React from 'react';
|
|
7
|
+
import PropTypes from 'prop-types';
|
|
8
|
+
import { Toolbar, ToolbarButton } from '@mui/x-charts/Toolbar';
|
|
4
9
|
import { useChartContext, useSelector, useChartsSlots } from '@mui/x-charts/internals';
|
|
5
10
|
import { useChartsLocalization } from '@mui/x-charts/hooks';
|
|
11
|
+
import useId from '@mui/utils/useId';
|
|
12
|
+
import { ChartsToolbarDivider } from "./internals/ChartsToolbarDivider.js";
|
|
13
|
+
import { ChartsMenu } from "./internals/ChartsMenu.js";
|
|
6
14
|
import { selectorChartZoomIsEnabled } from "../internals/plugins/useChartProZoom/index.js";
|
|
7
15
|
import { ChartsToolbarZoomInTrigger } from "./ChartsToolbarZoomInTrigger.js";
|
|
8
16
|
import { ChartsToolbarZoomOutTrigger } from "./ChartsToolbarZoomOutTrigger.js";
|
|
9
|
-
import {
|
|
17
|
+
import { ChartsToolbarPrintExportTrigger } from "./ChartsToolbarPrintExportTrigger.js";
|
|
18
|
+
import { ChartsToolbarImageExportTrigger } from "./ChartsToolbarImageExportTrigger.js";
|
|
19
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
+
const DEFAULT_IMAGE_EXPORT_OPTIONS = [{
|
|
21
|
+
type: 'image/png'
|
|
22
|
+
}];
|
|
23
|
+
|
|
10
24
|
/**
|
|
11
25
|
* The chart toolbar component for the pro package.
|
|
12
26
|
*/
|
|
13
|
-
|
|
27
|
+
function ChartsToolbarPro(_ref) {
|
|
28
|
+
let {
|
|
29
|
+
printOptions,
|
|
30
|
+
imageExportOptions: rawImageExportOptions
|
|
31
|
+
} = _ref,
|
|
32
|
+
other = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
14
33
|
const {
|
|
15
34
|
slots,
|
|
16
35
|
slotProps
|
|
@@ -21,7 +40,13 @@ export function ChartsToolbarPro(props) {
|
|
|
21
40
|
const {
|
|
22
41
|
localeText
|
|
23
42
|
} = useChartsLocalization();
|
|
43
|
+
const [exportMenuOpen, setExportMenuOpen] = React.useState(false);
|
|
44
|
+
const exportMenuTriggerRef = React.useRef(null);
|
|
45
|
+
const exportMenuId = useId();
|
|
46
|
+
const exportMenuTriggerId = useId();
|
|
24
47
|
const isZoomEnabled = useSelector(store, selectorChartZoomIsEnabled);
|
|
48
|
+
const imageExportOptionList = rawImageExportOptions ?? DEFAULT_IMAGE_EXPORT_OPTIONS;
|
|
49
|
+
const showExportMenu = !printOptions?.disableToolbarButton || imageExportOptionList.length > 0;
|
|
25
50
|
const children = [];
|
|
26
51
|
if (isZoomEnabled) {
|
|
27
52
|
const Tooltip = slots.baseTooltip;
|
|
@@ -30,22 +55,109 @@ export function ChartsToolbarPro(props) {
|
|
|
30
55
|
children.push(/*#__PURE__*/_jsx(Tooltip, _extends({}, slotProps.baseTooltip, {
|
|
31
56
|
title: localeText.zoomIn,
|
|
32
57
|
children: /*#__PURE__*/_jsx(ChartsToolbarZoomInTrigger, {
|
|
33
|
-
render: /*#__PURE__*/_jsx(ToolbarButton, {
|
|
34
|
-
|
|
58
|
+
render: /*#__PURE__*/_jsx(ToolbarButton, {
|
|
59
|
+
size: "small"
|
|
60
|
+
}),
|
|
61
|
+
children: /*#__PURE__*/_jsx(ZoomInIcon, _extends({
|
|
62
|
+
fontSize: "small"
|
|
63
|
+
}, slotProps.zoomInIcon))
|
|
35
64
|
})
|
|
36
65
|
}), "zoom-in"));
|
|
37
66
|
children.push(/*#__PURE__*/_jsx(Tooltip, _extends({}, slotProps.baseTooltip, {
|
|
38
67
|
title: localeText.zoomOut,
|
|
39
68
|
children: /*#__PURE__*/_jsx(ChartsToolbarZoomOutTrigger, {
|
|
40
|
-
render: /*#__PURE__*/_jsx(ToolbarButton, {
|
|
41
|
-
|
|
69
|
+
render: /*#__PURE__*/_jsx(ToolbarButton, {
|
|
70
|
+
size: "small"
|
|
71
|
+
}),
|
|
72
|
+
children: /*#__PURE__*/_jsx(ZoomOutIcon, _extends({
|
|
73
|
+
fontSize: "small"
|
|
74
|
+
}, slotProps.zoomOutIcon))
|
|
42
75
|
})
|
|
43
76
|
}), "zoom-out"));
|
|
44
77
|
}
|
|
78
|
+
if (showExportMenu) {
|
|
79
|
+
const Tooltip = slots.baseTooltip;
|
|
80
|
+
const MenuList = slots.baseMenuList;
|
|
81
|
+
const MenuItem = slots.baseMenuItem;
|
|
82
|
+
const ExportIcon = slots.exportIcon;
|
|
83
|
+
const closeExportMenu = () => setExportMenuOpen(false);
|
|
84
|
+
const handleListKeyDown = event => {
|
|
85
|
+
if (event.key === 'Tab') {
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
}
|
|
88
|
+
if (isHideMenuKey(event.key)) {
|
|
89
|
+
closeExportMenu();
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
if (children.length > 0) {
|
|
93
|
+
children.push(/*#__PURE__*/_jsx(ChartsToolbarDivider, {}, "divider"));
|
|
94
|
+
}
|
|
95
|
+
children.push(/*#__PURE__*/_jsxs(React.Fragment, {
|
|
96
|
+
children: [/*#__PURE__*/_jsx(Tooltip, {
|
|
97
|
+
title: localeText.toolbarExport,
|
|
98
|
+
disableInteractive: exportMenuOpen,
|
|
99
|
+
children: /*#__PURE__*/_jsx(ToolbarButton, {
|
|
100
|
+
ref: exportMenuTriggerRef,
|
|
101
|
+
id: exportMenuTriggerId,
|
|
102
|
+
"aria-controls": exportMenuId,
|
|
103
|
+
"aria-haspopup": "true",
|
|
104
|
+
"aria-expanded": exportMenuOpen ? 'true' : undefined,
|
|
105
|
+
onClick: () => setExportMenuOpen(!exportMenuOpen),
|
|
106
|
+
size: "small",
|
|
107
|
+
children: /*#__PURE__*/_jsx(ExportIcon, {
|
|
108
|
+
fontSize: "small"
|
|
109
|
+
})
|
|
110
|
+
})
|
|
111
|
+
}), /*#__PURE__*/_jsx(ChartsMenu, {
|
|
112
|
+
target: exportMenuTriggerRef.current,
|
|
113
|
+
open: exportMenuOpen,
|
|
114
|
+
onClose: closeExportMenu,
|
|
115
|
+
position: "bottom-end",
|
|
116
|
+
children: /*#__PURE__*/_jsxs(MenuList, _extends({
|
|
117
|
+
id: exportMenuId,
|
|
118
|
+
"aria-labelledby": exportMenuTriggerId,
|
|
119
|
+
onKeyDown: handleListKeyDown,
|
|
120
|
+
autoFocusItem: true
|
|
121
|
+
}, slotProps?.baseMenuList, {
|
|
122
|
+
children: [!printOptions?.disableToolbarButton && /*#__PURE__*/_jsx(ChartsToolbarPrintExportTrigger, {
|
|
123
|
+
render: /*#__PURE__*/_jsx(MenuItem, _extends({
|
|
124
|
+
dense: true
|
|
125
|
+
}, slotProps?.baseMenuItem)),
|
|
126
|
+
options: printOptions,
|
|
127
|
+
onClick: closeExportMenu,
|
|
128
|
+
children: localeText.toolbarExportPrint
|
|
129
|
+
}), imageExportOptionList.map(imageExportOptions => /*#__PURE__*/_jsx(ChartsToolbarImageExportTrigger, {
|
|
130
|
+
render: /*#__PURE__*/_jsx(MenuItem, _extends({
|
|
131
|
+
dense: true
|
|
132
|
+
}, slotProps?.baseMenuItem)),
|
|
133
|
+
options: imageExportOptions,
|
|
134
|
+
onClick: closeExportMenu,
|
|
135
|
+
children: localeText.toolbarExportImage(imageExportOptions.type)
|
|
136
|
+
}, imageExportOptions.type))]
|
|
137
|
+
}))
|
|
138
|
+
})]
|
|
139
|
+
}, "export-menu"));
|
|
140
|
+
}
|
|
45
141
|
if (children.length === 0) {
|
|
46
142
|
return null;
|
|
47
143
|
}
|
|
48
|
-
return /*#__PURE__*/_jsx(Toolbar, _extends({},
|
|
144
|
+
return /*#__PURE__*/_jsx(Toolbar, _extends({}, other, {
|
|
49
145
|
children: children
|
|
50
146
|
}));
|
|
147
|
+
}
|
|
148
|
+
process.env.NODE_ENV !== "production" ? ChartsToolbarPro.propTypes = {
|
|
149
|
+
// ----------------------------- Warning --------------------------------
|
|
150
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
151
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
152
|
+
// ----------------------------------------------------------------------
|
|
153
|
+
imageExportOptions: PropTypes.arrayOf(PropTypes.shape({
|
|
154
|
+
fileName: PropTypes.string,
|
|
155
|
+
quality: PropTypes.number,
|
|
156
|
+
type: PropTypes.string.isRequired
|
|
157
|
+
})),
|
|
158
|
+
printOptions: PropTypes.object
|
|
159
|
+
} : void 0;
|
|
160
|
+
export { ChartsToolbarPro };
|
|
161
|
+
function isHideMenuKey(key) {
|
|
162
|
+
return key === 'Tab' || key === 'Escape';
|
|
51
163
|
}
|
|
@@ -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";
|
|
@@ -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";
|
|
@@ -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,67 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
+
const _excluded = ["open", "target", "onClose", "children", "position", "className", "onExited"];
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
import PropTypes from 'prop-types';
|
|
8
|
+
import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
|
|
9
|
+
import HTMLElementType from '@mui/utils/HTMLElementType';
|
|
10
|
+
import { useChartsSlots } from '@mui/x-charts/internals';
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
function ChartsMenu(props) {
|
|
13
|
+
const {
|
|
14
|
+
open,
|
|
15
|
+
target,
|
|
16
|
+
onClose,
|
|
17
|
+
children,
|
|
18
|
+
position,
|
|
19
|
+
onExited
|
|
20
|
+
} = props,
|
|
21
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
22
|
+
const {
|
|
23
|
+
slots,
|
|
24
|
+
slotProps
|
|
25
|
+
} = useChartsSlots();
|
|
26
|
+
const Popper = slots.basePopper;
|
|
27
|
+
const savedFocusRef = React.useRef(null);
|
|
28
|
+
useEnhancedEffect(() => {
|
|
29
|
+
if (open) {
|
|
30
|
+
savedFocusRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
31
|
+
} else {
|
|
32
|
+
savedFocusRef.current?.focus?.();
|
|
33
|
+
savedFocusRef.current = null;
|
|
34
|
+
}
|
|
35
|
+
}, [open]);
|
|
36
|
+
const handleClickAway = event => {
|
|
37
|
+
if (event.target && (target === event.target || target?.contains(event.target))) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
onClose(event);
|
|
41
|
+
};
|
|
42
|
+
return /*#__PURE__*/_jsx(Popper, _extends({
|
|
43
|
+
open: open,
|
|
44
|
+
target: target,
|
|
45
|
+
transition: true,
|
|
46
|
+
placement: position,
|
|
47
|
+
onClickAway: handleClickAway,
|
|
48
|
+
onExited: onExited,
|
|
49
|
+
clickAwayMouseEvent: "onMouseDown"
|
|
50
|
+
}, other, slotProps?.basePopper, {
|
|
51
|
+
children: children
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
process.env.NODE_ENV !== "production" ? ChartsMenu.propTypes = {
|
|
55
|
+
// ----------------------------- Warning --------------------------------
|
|
56
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
57
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
58
|
+
// ----------------------------------------------------------------------
|
|
59
|
+
children: PropTypes.node,
|
|
60
|
+
className: PropTypes.string,
|
|
61
|
+
onClose: PropTypes.func.isRequired,
|
|
62
|
+
onExited: PropTypes.func,
|
|
63
|
+
open: PropTypes.bool.isRequired,
|
|
64
|
+
position: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
|
|
65
|
+
target: HTMLElementType
|
|
66
|
+
} : void 0;
|
|
67
|
+
export { ChartsMenu };
|
|
@@ -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,40 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import { styled } from '@mui/system';
|
|
5
|
+
import { NotRendered, useChartsSlots } from '@mui/x-charts/internals';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
// This is workaround because api-docs-builder does not support the `NotRendered<ChartBaseDividerProps>` syntax.
|
|
8
|
+
const NotRenderedDivider = NotRendered;
|
|
9
|
+
const Divider = styled(NotRenderedDivider, {
|
|
10
|
+
name: 'MuiChartsToolbar',
|
|
11
|
+
slot: 'Divider'
|
|
12
|
+
})(({
|
|
13
|
+
theme
|
|
14
|
+
}) => ({
|
|
15
|
+
margin: theme.spacing(0, 0.5),
|
|
16
|
+
height: '50%'
|
|
17
|
+
}));
|
|
18
|
+
const ChartsToolbarDivider = /*#__PURE__*/React.forwardRef(function ChartsToolbarDivider(props, ref) {
|
|
19
|
+
const {
|
|
20
|
+
slots,
|
|
21
|
+
slotProps
|
|
22
|
+
} = useChartsSlots();
|
|
23
|
+
return /*#__PURE__*/_jsx(Divider, _extends({
|
|
24
|
+
as: slots.baseDivider,
|
|
25
|
+
orientation: "vertical"
|
|
26
|
+
}, slotProps.baseDivider, props, {
|
|
27
|
+
ref: ref
|
|
28
|
+
}));
|
|
29
|
+
});
|
|
30
|
+
if (process.env.NODE_ENV !== "production") ChartsToolbarDivider.displayName = "ChartsToolbarDivider";
|
|
31
|
+
process.env.NODE_ENV !== "production" ? ChartsToolbarDivider.propTypes = {
|
|
32
|
+
// ----------------------------- Warning --------------------------------
|
|
33
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
34
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
35
|
+
// ----------------------------------------------------------------------
|
|
36
|
+
className: PropTypes.string,
|
|
37
|
+
orientation: PropTypes.oneOf(['horizontal', 'vertical']),
|
|
38
|
+
style: PropTypes.object
|
|
39
|
+
} : void 0;
|
|
40
|
+
export { ChartsToolbarDivider };
|