@mui/x-charts-pro 9.3.0 → 9.4.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/BarChartPro/BarChartPro.js +32 -2
- package/BarChartPro/BarChartPro.mjs +32 -2
- package/CHANGELOG.md +196 -0
- package/ChartsDataProviderPro/ChartsDataProviderPro.js +2 -2
- package/ChartsDataProviderPro/ChartsDataProviderPro.mjs +2 -2
- package/ChartsToolbarPro/ChartsToolbarImageExportTrigger.js +1 -0
- package/ChartsToolbarPro/ChartsToolbarImageExportTrigger.mjs +1 -0
- package/ChartsToolbarPro/ChartsToolbarPro.d.mts +1 -1
- package/ChartsToolbarPro/ChartsToolbarPro.d.ts +1 -1
- package/ChartsToolbarPro/ChartsToolbarRangeButtonTrigger.d.mts +1 -1
- package/ChartsToolbarPro/ChartsToolbarRangeButtonTrigger.d.ts +1 -1
- package/ChartsToolbarPro/ChartsToolbarRangeButtonTrigger.js +35 -38
- package/ChartsToolbarPro/ChartsToolbarRangeButtonTrigger.mjs +37 -40
- package/ChartsToolbarPro/Toolbar.types.d.mts +3 -2
- package/ChartsToolbarPro/Toolbar.types.d.ts +3 -2
- package/ChartsToolbarPro/rangeButtonValueToZoom.d.mts +18 -2
- package/ChartsToolbarPro/rangeButtonValueToZoom.d.ts +18 -2
- package/ChartsToolbarPro/rangeButtonValueToZoom.js +73 -10
- package/ChartsToolbarPro/rangeButtonValueToZoom.mjs +72 -10
- package/ChartsZoomSlider/internals/chartsAxisZoomSliderThumbClasses.js +9 -2
- package/ChartsZoomSlider/internals/chartsAxisZoomSliderThumbClasses.mjs +9 -2
- package/ChartsZoomSlider/internals/previews/ScatterPreviewPlot.js +2 -1
- package/ChartsZoomSlider/internals/previews/ScatterPreviewPlot.mjs +2 -1
- package/FunnelChart/funnelPlotSlots.types.d.mts +5 -4
- package/FunnelChart/funnelPlotSlots.types.d.ts +5 -4
- package/Heatmap/Heatmap.d.mts +3 -2
- package/Heatmap/Heatmap.d.ts +3 -2
- package/Heatmap/Heatmap.js +32 -2
- package/Heatmap/Heatmap.mjs +32 -2
- package/Heatmap/HeatmapItem.d.mts +3 -2
- package/Heatmap/HeatmapItem.d.ts +3 -2
- package/Heatmap/HeatmapItem.js +2 -0
- package/Heatmap/HeatmapItem.mjs +2 -0
- package/Heatmap/HeatmapTooltip/HeatmapTooltip.types.d.mts +3 -2
- package/Heatmap/HeatmapTooltip/HeatmapTooltip.types.d.ts +3 -2
- package/LineChartPro/LineChartPro.js +32 -2
- package/LineChartPro/LineChartPro.mjs +32 -2
- package/ScatterChartPro/ScatterChartPro.d.mts +2 -1
- package/ScatterChartPro/ScatterChartPro.d.ts +2 -1
- package/ScatterChartPro/ScatterChartPro.js +32 -2
- package/ScatterChartPro/ScatterChartPro.mjs +32 -2
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/internals/plugins/useChartProExport/exportImage.js +8 -2
- package/internals/plugins/useChartProExport/exportImage.mjs +8 -2
- package/internals/plugins/useChartProExport/print.js +1 -0
- package/internals/plugins/useChartProExport/print.mjs +1 -0
- package/internals/plugins/useChartProExport/useChartProExport.types.d.mts +6 -0
- package/internals/plugins/useChartProExport/useChartProExport.types.d.ts +6 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.js +77 -14
- package/internals/plugins/useChartProZoom/useChartProZoom.mjs +79 -15
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.mts +0 -3
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +0 -3
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +1 -2
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.mjs +0 -1
- package/internals/plugins/useChartProZoom/useChartProZoom.types.d.mts +28 -11
- package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +28 -11
- package/internals/slots/chartsBaseSlots.d.mts +6 -5
- package/internals/slots/chartsBaseSlots.d.ts +6 -5
- package/internals/slots/chartsIconSlots.d.mts +4 -3
- package/internals/slots/chartsIconSlots.d.ts +4 -3
- package/models/chartsSlotsComponentsPropsPro.d.mts +11 -0
- package/models/chartsSlotsComponentsPropsPro.d.ts +11 -0
- package/models/chartsSlotsComponentsPropsPro.js +5 -0
- package/models/chartsSlotsComponentsPropsPro.mjs +1 -0
- package/models/index.d.mts +1 -0
- package/models/index.d.ts +1 -0
- package/models/index.js +12 -0
- package/models/index.mjs +1 -0
- package/package.json +6 -6
package/Heatmap/Heatmap.mjs
CHANGED
|
@@ -144,12 +144,21 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
144
144
|
/**
|
|
145
145
|
* The list of zoom data related to each axis.
|
|
146
146
|
* Used to initialize the zoom in a specific configuration without controlling it.
|
|
147
|
+
*
|
|
148
|
+
* Each entry is either explicit zoom percentages (`{ axisId, start, end }`) or a
|
|
149
|
+
* range value (`{ axisId, value }`) resolved against the axis domain.
|
|
147
150
|
*/
|
|
148
|
-
initialZoom: PropTypes.arrayOf(PropTypes.shape({
|
|
151
|
+
initialZoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
|
|
149
152
|
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
150
153
|
end: PropTypes.number.isRequired,
|
|
151
154
|
start: PropTypes.number.isRequired
|
|
152
|
-
})
|
|
155
|
+
}), PropTypes.shape({
|
|
156
|
+
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
157
|
+
value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.instanceOf(Date).isRequired), PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func, PropTypes.shape({
|
|
158
|
+
step: PropTypes.number,
|
|
159
|
+
unit: PropTypes.oneOf(['day', 'hour', 'microsecond', 'millisecond', 'minute', 'month', 'second', 'week', 'year']).isRequired
|
|
160
|
+
})])
|
|
161
|
+
})]).isRequired),
|
|
153
162
|
/**
|
|
154
163
|
* If `true`, a loading overlay is displayed.
|
|
155
164
|
* @default false
|
|
@@ -298,6 +307,27 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
298
307
|
id: PropTypes.string,
|
|
299
308
|
max: PropTypes.number,
|
|
300
309
|
min: PropTypes.number,
|
|
310
|
+
sizeMap: PropTypes.oneOfType([PropTypes.shape({
|
|
311
|
+
interpolator: PropTypes.oneOf(['linear', 'log', 'sqrt']),
|
|
312
|
+
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
313
|
+
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
314
|
+
size: PropTypes.arrayOf(PropTypes.number.isRequired).isRequired,
|
|
315
|
+
type: PropTypes.oneOf(['continuous']).isRequired
|
|
316
|
+
}), PropTypes.shape({
|
|
317
|
+
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
318
|
+
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
319
|
+
size: PropTypes.func.isRequired,
|
|
320
|
+
type: PropTypes.oneOf(['continuous']).isRequired
|
|
321
|
+
}), PropTypes.shape({
|
|
322
|
+
sizes: PropTypes.arrayOf(PropTypes.number).isRequired,
|
|
323
|
+
thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
|
|
324
|
+
type: PropTypes.oneOf(['piecewise']).isRequired
|
|
325
|
+
}), PropTypes.shape({
|
|
326
|
+
sizes: PropTypes.arrayOf(PropTypes.number).isRequired,
|
|
327
|
+
type: PropTypes.oneOf(['ordinal']).isRequired,
|
|
328
|
+
unknownSize: PropTypes.number,
|
|
329
|
+
values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
|
|
330
|
+
})]),
|
|
301
331
|
valueGetter: PropTypes.func
|
|
302
332
|
})),
|
|
303
333
|
/**
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type SeriesId } from '@mui/x-charts/internals';
|
|
3
3
|
import { type HeatmapCellProps } from "./HeatmapCell.mjs";
|
|
4
|
+
import type { CellPropsOverrides } from "../models/chartsSlotsComponentsPropsPro.mjs";
|
|
4
5
|
export interface HeatmapItemSlots {
|
|
5
6
|
/**
|
|
6
7
|
* The component that renders the heatmap cell.
|
|
7
8
|
* @default HeatmapCell
|
|
8
9
|
*/
|
|
9
|
-
cell?: React.ElementType
|
|
10
|
+
cell?: React.ElementType<HeatmapCellProps & CellPropsOverrides>;
|
|
10
11
|
}
|
|
11
12
|
export interface HeatmapItemSlotProps {
|
|
12
|
-
cell?: Partial<HeatmapCellProps
|
|
13
|
+
cell?: Partial<HeatmapCellProps> & CellPropsOverrides;
|
|
13
14
|
}
|
|
14
15
|
export interface HeatmapItemProps {
|
|
15
16
|
seriesId: SeriesId;
|
package/Heatmap/HeatmapItem.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type SeriesId } from '@mui/x-charts/internals';
|
|
3
3
|
import { type HeatmapCellProps } from "./HeatmapCell.js";
|
|
4
|
+
import type { CellPropsOverrides } from "../models/chartsSlotsComponentsPropsPro.js";
|
|
4
5
|
export interface HeatmapItemSlots {
|
|
5
6
|
/**
|
|
6
7
|
* The component that renders the heatmap cell.
|
|
7
8
|
* @default HeatmapCell
|
|
8
9
|
*/
|
|
9
|
-
cell?: React.ElementType
|
|
10
|
+
cell?: React.ElementType<HeatmapCellProps & CellPropsOverrides>;
|
|
10
11
|
}
|
|
11
12
|
export interface HeatmapItemSlotProps {
|
|
12
|
-
cell?: Partial<HeatmapCellProps
|
|
13
|
+
cell?: Partial<HeatmapCellProps> & CellPropsOverrides;
|
|
13
14
|
}
|
|
14
15
|
export interface HeatmapItemProps {
|
|
15
16
|
seriesId: SeriesId;
|
package/Heatmap/HeatmapItem.js
CHANGED
|
@@ -52,6 +52,8 @@ function HeatmapItem(props) {
|
|
|
52
52
|
ownerState,
|
|
53
53
|
className: classes.cell
|
|
54
54
|
});
|
|
55
|
+
|
|
56
|
+
// `useSlotProps` returns a loosely-typed object; the required `x/y/width/height` flow in via `...other`.
|
|
55
57
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Cell, (0, _extends2.default)({}, cellProps));
|
|
56
58
|
}
|
|
57
59
|
process.env.NODE_ENV !== "production" ? HeatmapItem.propTypes = {
|
package/Heatmap/HeatmapItem.mjs
CHANGED
|
@@ -44,6 +44,8 @@ function HeatmapItem(props) {
|
|
|
44
44
|
ownerState,
|
|
45
45
|
className: classes.cell
|
|
46
46
|
});
|
|
47
|
+
|
|
48
|
+
// `useSlotProps` returns a loosely-typed object; the required `x/y/width/height` flow in via `...other`.
|
|
47
49
|
return /*#__PURE__*/_jsx(Cell, _extends({}, cellProps));
|
|
48
50
|
}
|
|
49
51
|
process.env.NODE_ENV !== "production" ? HeatmapItem.propTypes = {
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { type ChartsTooltipContainerProps, type ChartsTooltipClasses } from '@mui/x-charts/ChartsTooltip';
|
|
2
|
+
import type { TooltipPropsOverrides } from '@mui/x-charts/models';
|
|
2
3
|
export interface HeatmapTooltipSlots {
|
|
3
4
|
/**
|
|
4
5
|
* Custom component for the tooltip popper.
|
|
5
6
|
* @default ChartsTooltipRoot
|
|
6
7
|
*/
|
|
7
|
-
tooltip?: React.ElementType<HeatmapTooltipProps>;
|
|
8
|
+
tooltip?: React.ElementType<HeatmapTooltipProps & TooltipPropsOverrides>;
|
|
8
9
|
}
|
|
9
10
|
export interface HeatmapTooltipSlotProps {
|
|
10
11
|
/**
|
|
11
12
|
* Custom component for the tooltip popper.
|
|
12
13
|
* @default ChartsTooltipRoot
|
|
13
14
|
*/
|
|
14
|
-
tooltip?: Partial<HeatmapTooltipProps
|
|
15
|
+
tooltip?: Partial<HeatmapTooltipProps> & TooltipPropsOverrides;
|
|
15
16
|
}
|
|
16
17
|
export interface HeatmapTooltipClasses extends ChartsTooltipClasses {}
|
|
17
18
|
export interface HeatmapTooltipContentClasses extends ChartsTooltipClasses {}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { type ChartsTooltipContainerProps, type ChartsTooltipClasses } from '@mui/x-charts/ChartsTooltip';
|
|
2
|
+
import type { TooltipPropsOverrides } from '@mui/x-charts/models';
|
|
2
3
|
export interface HeatmapTooltipSlots {
|
|
3
4
|
/**
|
|
4
5
|
* Custom component for the tooltip popper.
|
|
5
6
|
* @default ChartsTooltipRoot
|
|
6
7
|
*/
|
|
7
|
-
tooltip?: React.ElementType<HeatmapTooltipProps>;
|
|
8
|
+
tooltip?: React.ElementType<HeatmapTooltipProps & TooltipPropsOverrides>;
|
|
8
9
|
}
|
|
9
10
|
export interface HeatmapTooltipSlotProps {
|
|
10
11
|
/**
|
|
11
12
|
* Custom component for the tooltip popper.
|
|
12
13
|
* @default ChartsTooltipRoot
|
|
13
14
|
*/
|
|
14
|
-
tooltip?: Partial<HeatmapTooltipProps
|
|
15
|
+
tooltip?: Partial<HeatmapTooltipProps> & TooltipPropsOverrides;
|
|
15
16
|
}
|
|
16
17
|
export interface HeatmapTooltipClasses extends ChartsTooltipClasses {}
|
|
17
18
|
export interface HeatmapTooltipContentClasses extends ChartsTooltipClasses {}
|
|
@@ -270,12 +270,21 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
270
270
|
/**
|
|
271
271
|
* The list of zoom data related to each axis.
|
|
272
272
|
* Used to initialize the zoom in a specific configuration without controlling it.
|
|
273
|
+
*
|
|
274
|
+
* Each entry is either explicit zoom percentages (`{ axisId, start, end }`) or a
|
|
275
|
+
* range value (`{ axisId, value }`) resolved against the axis domain.
|
|
273
276
|
*/
|
|
274
|
-
initialZoom: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
277
|
+
initialZoom: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
|
|
275
278
|
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
276
279
|
end: _propTypes.default.number.isRequired,
|
|
277
280
|
start: _propTypes.default.number.isRequired
|
|
278
|
-
})
|
|
281
|
+
}), _propTypes.default.shape({
|
|
282
|
+
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
283
|
+
value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.instanceOf(Date).isRequired), _propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func, _propTypes.default.shape({
|
|
284
|
+
step: _propTypes.default.number,
|
|
285
|
+
unit: _propTypes.default.oneOf(['day', 'hour', 'microsecond', 'millisecond', 'minute', 'month', 'second', 'week', 'year']).isRequired
|
|
286
|
+
})])
|
|
287
|
+
})]).isRequired),
|
|
279
288
|
/**
|
|
280
289
|
* If `true`, a loading overlay is displayed.
|
|
281
290
|
* @default false
|
|
@@ -447,6 +456,27 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
447
456
|
id: _propTypes.default.string,
|
|
448
457
|
max: _propTypes.default.number,
|
|
449
458
|
min: _propTypes.default.number,
|
|
459
|
+
sizeMap: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
460
|
+
interpolator: _propTypes.default.oneOf(['linear', 'log', 'sqrt']),
|
|
461
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
462
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
463
|
+
size: _propTypes.default.arrayOf(_propTypes.default.number.isRequired).isRequired,
|
|
464
|
+
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
465
|
+
}), _propTypes.default.shape({
|
|
466
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
467
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
468
|
+
size: _propTypes.default.func.isRequired,
|
|
469
|
+
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
470
|
+
}), _propTypes.default.shape({
|
|
471
|
+
sizes: _propTypes.default.arrayOf(_propTypes.default.number).isRequired,
|
|
472
|
+
thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
|
|
473
|
+
type: _propTypes.default.oneOf(['piecewise']).isRequired
|
|
474
|
+
}), _propTypes.default.shape({
|
|
475
|
+
sizes: _propTypes.default.arrayOf(_propTypes.default.number).isRequired,
|
|
476
|
+
type: _propTypes.default.oneOf(['ordinal']).isRequired,
|
|
477
|
+
unknownSize: _propTypes.default.number,
|
|
478
|
+
values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
|
|
479
|
+
})]),
|
|
450
480
|
valueGetter: _propTypes.default.func
|
|
451
481
|
})),
|
|
452
482
|
/**
|
|
@@ -263,12 +263,21 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
263
263
|
/**
|
|
264
264
|
* The list of zoom data related to each axis.
|
|
265
265
|
* Used to initialize the zoom in a specific configuration without controlling it.
|
|
266
|
+
*
|
|
267
|
+
* Each entry is either explicit zoom percentages (`{ axisId, start, end }`) or a
|
|
268
|
+
* range value (`{ axisId, value }`) resolved against the axis domain.
|
|
266
269
|
*/
|
|
267
|
-
initialZoom: PropTypes.arrayOf(PropTypes.shape({
|
|
270
|
+
initialZoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
|
|
268
271
|
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
269
272
|
end: PropTypes.number.isRequired,
|
|
270
273
|
start: PropTypes.number.isRequired
|
|
271
|
-
})
|
|
274
|
+
}), PropTypes.shape({
|
|
275
|
+
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
276
|
+
value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.instanceOf(Date).isRequired), PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func, PropTypes.shape({
|
|
277
|
+
step: PropTypes.number,
|
|
278
|
+
unit: PropTypes.oneOf(['day', 'hour', 'microsecond', 'millisecond', 'minute', 'month', 'second', 'week', 'year']).isRequired
|
|
279
|
+
})])
|
|
280
|
+
})]).isRequired),
|
|
272
281
|
/**
|
|
273
282
|
* If `true`, a loading overlay is displayed.
|
|
274
283
|
* @default false
|
|
@@ -440,6 +449,27 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
|
|
|
440
449
|
id: PropTypes.string,
|
|
441
450
|
max: PropTypes.number,
|
|
442
451
|
min: PropTypes.number,
|
|
452
|
+
sizeMap: PropTypes.oneOfType([PropTypes.shape({
|
|
453
|
+
interpolator: PropTypes.oneOf(['linear', 'log', 'sqrt']),
|
|
454
|
+
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
455
|
+
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
456
|
+
size: PropTypes.arrayOf(PropTypes.number.isRequired).isRequired,
|
|
457
|
+
type: PropTypes.oneOf(['continuous']).isRequired
|
|
458
|
+
}), PropTypes.shape({
|
|
459
|
+
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
460
|
+
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
461
|
+
size: PropTypes.func.isRequired,
|
|
462
|
+
type: PropTypes.oneOf(['continuous']).isRequired
|
|
463
|
+
}), PropTypes.shape({
|
|
464
|
+
sizes: PropTypes.arrayOf(PropTypes.number).isRequired,
|
|
465
|
+
thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
|
|
466
|
+
type: PropTypes.oneOf(['piecewise']).isRequired
|
|
467
|
+
}), PropTypes.shape({
|
|
468
|
+
sizes: PropTypes.arrayOf(PropTypes.number).isRequired,
|
|
469
|
+
type: PropTypes.oneOf(['ordinal']).isRequired,
|
|
470
|
+
unknownSize: PropTypes.number,
|
|
471
|
+
values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
|
|
472
|
+
})]),
|
|
443
473
|
valueGetter: PropTypes.func
|
|
444
474
|
})),
|
|
445
475
|
/**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type ScatterChartProps, type ScatterChartSlotProps, type ScatterChartSlots } from '@mui/x-charts/ScatterChart';
|
|
3
3
|
import { type ChartsTooltipProps } from '@mui/x-charts/ChartsTooltip';
|
|
4
|
+
import type { TooltipPropsOverrides } from '@mui/x-charts/models';
|
|
4
5
|
import { type ChartsSlotPropsPro, type ChartsSlotsPro } from "../internals/material/index.mjs";
|
|
5
6
|
import { type ChartsContainerProProps } from "../ChartsContainerPro/ChartsContainerPro.mjs";
|
|
6
7
|
import { type ScatterChartProPluginSignatures } from "./ScatterChartPro.plugins.mjs";
|
|
@@ -11,7 +12,7 @@ export interface ScatterChartProSlotProps extends Omit<ScatterChartSlotProps, 't
|
|
|
11
12
|
* Slot props for the tooltip component.
|
|
12
13
|
* @default {}
|
|
13
14
|
*/
|
|
14
|
-
tooltip?: Partial<ChartsTooltipProps<'item' | 'none'
|
|
15
|
+
tooltip?: Partial<ChartsTooltipProps<'item' | 'none'>> & TooltipPropsOverrides;
|
|
15
16
|
}
|
|
16
17
|
export interface ScatterChartProProps extends Omit<ScatterChartProps, 'apiRef' | 'slots' | 'slotProps' | 'plugins' | 'seriesConfig'>, Omit<ChartsContainerProProps<'scatter', ScatterChartProPluginSignatures>, 'series' | 'onItemClick' | 'slots' | 'slotProps' | 'highlightedAxis' | 'onHighlightedAxisChange'> {
|
|
17
18
|
/**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type ScatterChartProps, type ScatterChartSlotProps, type ScatterChartSlots } from '@mui/x-charts/ScatterChart';
|
|
3
3
|
import { type ChartsTooltipProps } from '@mui/x-charts/ChartsTooltip';
|
|
4
|
+
import type { TooltipPropsOverrides } from '@mui/x-charts/models';
|
|
4
5
|
import { type ChartsSlotPropsPro, type ChartsSlotsPro } from "../internals/material/index.js";
|
|
5
6
|
import { type ChartsContainerProProps } from "../ChartsContainerPro/ChartsContainerPro.js";
|
|
6
7
|
import { type ScatterChartProPluginSignatures } from "./ScatterChartPro.plugins.js";
|
|
@@ -11,7 +12,7 @@ export interface ScatterChartProSlotProps extends Omit<ScatterChartSlotProps, 't
|
|
|
11
12
|
* Slot props for the tooltip component.
|
|
12
13
|
* @default {}
|
|
13
14
|
*/
|
|
14
|
-
tooltip?: Partial<ChartsTooltipProps<'item' | 'none'
|
|
15
|
+
tooltip?: Partial<ChartsTooltipProps<'item' | 'none'>> & TooltipPropsOverrides;
|
|
15
16
|
}
|
|
16
17
|
export interface ScatterChartProProps extends Omit<ScatterChartProps, 'apiRef' | 'slots' | 'slotProps' | 'plugins' | 'seriesConfig'>, Omit<ChartsContainerProProps<'scatter', ScatterChartProPluginSignatures>, 'series' | 'onItemClick' | 'slots' | 'slotProps' | 'highlightedAxis' | 'onHighlightedAxisChange'> {
|
|
17
18
|
/**
|
|
@@ -273,12 +273,21 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
273
273
|
/**
|
|
274
274
|
* The list of zoom data related to each axis.
|
|
275
275
|
* Used to initialize the zoom in a specific configuration without controlling it.
|
|
276
|
+
*
|
|
277
|
+
* Each entry is either explicit zoom percentages (`{ axisId, start, end }`) or a
|
|
278
|
+
* range value (`{ axisId, value }`) resolved against the axis domain.
|
|
276
279
|
*/
|
|
277
|
-
initialZoom: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
280
|
+
initialZoom: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
|
|
278
281
|
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
279
282
|
end: _propTypes.default.number.isRequired,
|
|
280
283
|
start: _propTypes.default.number.isRequired
|
|
281
|
-
})
|
|
284
|
+
}), _propTypes.default.shape({
|
|
285
|
+
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
286
|
+
value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.instanceOf(Date).isRequired), _propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func, _propTypes.default.shape({
|
|
287
|
+
step: _propTypes.default.number,
|
|
288
|
+
unit: _propTypes.default.oneOf(['day', 'hour', 'microsecond', 'millisecond', 'minute', 'month', 'second', 'week', 'year']).isRequired
|
|
289
|
+
})])
|
|
290
|
+
})]).isRequired),
|
|
282
291
|
/**
|
|
283
292
|
* If `true`, a loading overlay is displayed.
|
|
284
293
|
* @default false
|
|
@@ -445,6 +454,27 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
445
454
|
id: _propTypes.default.string,
|
|
446
455
|
max: _propTypes.default.number,
|
|
447
456
|
min: _propTypes.default.number,
|
|
457
|
+
sizeMap: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
458
|
+
interpolator: _propTypes.default.oneOf(['linear', 'log', 'sqrt']),
|
|
459
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
460
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
461
|
+
size: _propTypes.default.arrayOf(_propTypes.default.number.isRequired).isRequired,
|
|
462
|
+
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
463
|
+
}), _propTypes.default.shape({
|
|
464
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
465
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
466
|
+
size: _propTypes.default.func.isRequired,
|
|
467
|
+
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
468
|
+
}), _propTypes.default.shape({
|
|
469
|
+
sizes: _propTypes.default.arrayOf(_propTypes.default.number).isRequired,
|
|
470
|
+
thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
|
|
471
|
+
type: _propTypes.default.oneOf(['piecewise']).isRequired
|
|
472
|
+
}), _propTypes.default.shape({
|
|
473
|
+
sizes: _propTypes.default.arrayOf(_propTypes.default.number).isRequired,
|
|
474
|
+
type: _propTypes.default.oneOf(['ordinal']).isRequired,
|
|
475
|
+
unknownSize: _propTypes.default.number,
|
|
476
|
+
values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
|
|
477
|
+
})]),
|
|
448
478
|
valueGetter: _propTypes.default.func
|
|
449
479
|
})),
|
|
450
480
|
/**
|
|
@@ -266,12 +266,21 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
266
266
|
/**
|
|
267
267
|
* The list of zoom data related to each axis.
|
|
268
268
|
* Used to initialize the zoom in a specific configuration without controlling it.
|
|
269
|
+
*
|
|
270
|
+
* Each entry is either explicit zoom percentages (`{ axisId, start, end }`) or a
|
|
271
|
+
* range value (`{ axisId, value }`) resolved against the axis domain.
|
|
269
272
|
*/
|
|
270
|
-
initialZoom: PropTypes.arrayOf(PropTypes.shape({
|
|
273
|
+
initialZoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
|
|
271
274
|
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
272
275
|
end: PropTypes.number.isRequired,
|
|
273
276
|
start: PropTypes.number.isRequired
|
|
274
|
-
})
|
|
277
|
+
}), PropTypes.shape({
|
|
278
|
+
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
279
|
+
value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.instanceOf(Date).isRequired), PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func, PropTypes.shape({
|
|
280
|
+
step: PropTypes.number,
|
|
281
|
+
unit: PropTypes.oneOf(['day', 'hour', 'microsecond', 'millisecond', 'minute', 'month', 'second', 'week', 'year']).isRequired
|
|
282
|
+
})])
|
|
283
|
+
})]).isRequired),
|
|
275
284
|
/**
|
|
276
285
|
* If `true`, a loading overlay is displayed.
|
|
277
286
|
* @default false
|
|
@@ -438,6 +447,27 @@ process.env.NODE_ENV !== "production" ? ScatterChartPro.propTypes = {
|
|
|
438
447
|
id: PropTypes.string,
|
|
439
448
|
max: PropTypes.number,
|
|
440
449
|
min: PropTypes.number,
|
|
450
|
+
sizeMap: PropTypes.oneOfType([PropTypes.shape({
|
|
451
|
+
interpolator: PropTypes.oneOf(['linear', 'log', 'sqrt']),
|
|
452
|
+
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
453
|
+
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
454
|
+
size: PropTypes.arrayOf(PropTypes.number.isRequired).isRequired,
|
|
455
|
+
type: PropTypes.oneOf(['continuous']).isRequired
|
|
456
|
+
}), PropTypes.shape({
|
|
457
|
+
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
458
|
+
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
459
|
+
size: PropTypes.func.isRequired,
|
|
460
|
+
type: PropTypes.oneOf(['continuous']).isRequired
|
|
461
|
+
}), PropTypes.shape({
|
|
462
|
+
sizes: PropTypes.arrayOf(PropTypes.number).isRequired,
|
|
463
|
+
thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
|
|
464
|
+
type: PropTypes.oneOf(['piecewise']).isRequired
|
|
465
|
+
}), PropTypes.shape({
|
|
466
|
+
sizes: PropTypes.arrayOf(PropTypes.number).isRequired,
|
|
467
|
+
type: PropTypes.oneOf(['ordinal']).isRequired,
|
|
468
|
+
unknownSize: PropTypes.number,
|
|
469
|
+
values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
|
|
470
|
+
})]),
|
|
441
471
|
valueGetter: PropTypes.func
|
|
442
472
|
})),
|
|
443
473
|
/**
|
package/index.js
CHANGED
package/index.mjs
CHANGED
|
@@ -10,6 +10,7 @@ var _formatErrorMessage2 = _interopRequireDefault(require("@mui/x-internals/form
|
|
|
10
10
|
var _interopRequireWildcard2 = _interopRequireDefault(require("@babel/runtime/helpers/interopRequireWildcard"));
|
|
11
11
|
var _ownerDocument = _interopRequireDefault(require("@mui/utils/ownerDocument"));
|
|
12
12
|
var _export = require("@mui/x-internals/export");
|
|
13
|
+
var _warning = require("@mui/x-internals/warning");
|
|
13
14
|
var _common = require("./common");
|
|
14
15
|
var _defaults = require("./defaults");
|
|
15
16
|
const getDrawDocument = async () => {
|
|
@@ -30,11 +31,15 @@ async function exportImage(element, svg, params) {
|
|
|
30
31
|
quality = 0.9,
|
|
31
32
|
onBeforeExport = _defaults.defaultOnBeforeExport,
|
|
32
33
|
copyStyles = true,
|
|
33
|
-
nonce
|
|
34
|
+
nonce,
|
|
35
|
+
pixelRatio
|
|
34
36
|
} = params ?? {};
|
|
37
|
+
if (process.env.NODE_ENV !== 'production' && pixelRatio !== undefined && (!Number.isFinite(pixelRatio) || pixelRatio <= 0)) {
|
|
38
|
+
(0, _warning.warnOnce)('MUI X Charts: `pixelRatio` must be a finite number greater than 0 when exporting a chart as an image.', 'error');
|
|
39
|
+
}
|
|
35
40
|
const drawDocumentPromise = getDrawDocument();
|
|
36
41
|
const doc = (0, _ownerDocument.default)(element);
|
|
37
|
-
const ratio = Math.max(window.devicePixelRatio || 1, 1);
|
|
42
|
+
const ratio = pixelRatio ?? Math.max(window.devicePixelRatio || 1, 1);
|
|
38
43
|
const iframe = (0, _common.createExportIframe)(fileName);
|
|
39
44
|
/* We apply the min/max width and height to ensure the SVG doesn't resize in the export.
|
|
40
45
|
* We apply to the original SVG so that the cloned tree will contain the styles and revert these
|
|
@@ -49,6 +54,7 @@ async function exportImage(element, svg, params) {
|
|
|
49
54
|
iframe.onload = async () => {
|
|
50
55
|
const exportDoc = iframe.contentDocument;
|
|
51
56
|
const elementClone = element.cloneNode(true);
|
|
57
|
+
elementClone.querySelectorAll('[data-hide-on-export]').forEach(el => el.remove());
|
|
52
58
|
(0, _common.applyStyles)(svg, previousStyles);
|
|
53
59
|
exportDoc.body.replaceChildren(elementClone);
|
|
54
60
|
exportDoc.body.style.margin = '0px';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _formatErrorMessage from "@mui/x-internals/formatErrorMessage";
|
|
2
2
|
import ownerDocument from '@mui/utils/ownerDocument';
|
|
3
3
|
import { loadStyleSheets } from '@mui/x-internals/export';
|
|
4
|
+
import { warnOnce } from '@mui/x-internals/warning';
|
|
4
5
|
import { applyStyles, copyCanvasesContent, createExportIframe } from "./common.mjs";
|
|
5
6
|
import { defaultOnBeforeExport } from "./defaults.mjs";
|
|
6
7
|
export const getDrawDocument = async () => {
|
|
@@ -20,11 +21,15 @@ export async function exportImage(element, svg, params) {
|
|
|
20
21
|
quality = 0.9,
|
|
21
22
|
onBeforeExport = defaultOnBeforeExport,
|
|
22
23
|
copyStyles = true,
|
|
23
|
-
nonce
|
|
24
|
+
nonce,
|
|
25
|
+
pixelRatio
|
|
24
26
|
} = params ?? {};
|
|
27
|
+
if (process.env.NODE_ENV !== 'production' && pixelRatio !== undefined && (!Number.isFinite(pixelRatio) || pixelRatio <= 0)) {
|
|
28
|
+
warnOnce('MUI X Charts: `pixelRatio` must be a finite number greater than 0 when exporting a chart as an image.', 'error');
|
|
29
|
+
}
|
|
25
30
|
const drawDocumentPromise = getDrawDocument();
|
|
26
31
|
const doc = ownerDocument(element);
|
|
27
|
-
const ratio = Math.max(window.devicePixelRatio || 1, 1);
|
|
32
|
+
const ratio = pixelRatio ?? Math.max(window.devicePixelRatio || 1, 1);
|
|
28
33
|
const iframe = createExportIframe(fileName);
|
|
29
34
|
/* We apply the min/max width and height to ensure the SVG doesn't resize in the export.
|
|
30
35
|
* We apply to the original SVG so that the cloned tree will contain the styles and revert these
|
|
@@ -39,6 +44,7 @@ export async function exportImage(element, svg, params) {
|
|
|
39
44
|
iframe.onload = async () => {
|
|
40
45
|
const exportDoc = iframe.contentDocument;
|
|
41
46
|
const elementClone = element.cloneNode(true);
|
|
47
|
+
elementClone.querySelectorAll('[data-hide-on-export]').forEach(el => el.remove());
|
|
42
48
|
applyStyles(svg, previousStyles);
|
|
43
49
|
exportDoc.body.replaceChildren(elementClone);
|
|
44
50
|
exportDoc.body.style.margin = '0px';
|
|
@@ -20,6 +20,7 @@ function printChart(element, {
|
|
|
20
20
|
printWindow.onload = async () => {
|
|
21
21
|
const printDoc = printWindow.contentDocument;
|
|
22
22
|
const elementClone = element.cloneNode(true);
|
|
23
|
+
elementClone.querySelectorAll('[data-hide-on-export]').forEach(el => el.remove());
|
|
23
24
|
printDoc.body.replaceChildren(elementClone);
|
|
24
25
|
printDoc.body.style.margin = '0px';
|
|
25
26
|
const rootCandidate = element.getRootNode();
|
|
@@ -13,6 +13,7 @@ export function printChart(element, {
|
|
|
13
13
|
printWindow.onload = async () => {
|
|
14
14
|
const printDoc = printWindow.contentDocument;
|
|
15
15
|
const elementClone = element.cloneNode(true);
|
|
16
|
+
elementClone.querySelectorAll('[data-hide-on-export]').forEach(el => el.remove());
|
|
16
17
|
printDoc.body.replaceChildren(elementClone);
|
|
17
18
|
printDoc.body.style.margin = '0px';
|
|
18
19
|
const rootCandidate = element.getRootNode();
|
|
@@ -55,6 +55,12 @@ export interface ChartImageExportOptions extends ChartExportOptions {
|
|
|
55
55
|
* @default 0.9
|
|
56
56
|
*/
|
|
57
57
|
quality?: number;
|
|
58
|
+
/**
|
|
59
|
+
* The pixel ratio used when rasterizing the chart to a canvas. Higher values produce
|
|
60
|
+
* sharper images at the cost of a larger file size.
|
|
61
|
+
* @default The larger of `window.devicePixelRatio` and `1`
|
|
62
|
+
*/
|
|
63
|
+
pixelRatio?: number;
|
|
58
64
|
}
|
|
59
65
|
export interface UseChartProExportPublicApi {
|
|
60
66
|
/**
|
|
@@ -55,6 +55,12 @@ export interface ChartImageExportOptions extends ChartExportOptions {
|
|
|
55
55
|
* @default 0.9
|
|
56
56
|
*/
|
|
57
57
|
quality?: number;
|
|
58
|
+
/**
|
|
59
|
+
* The pixel ratio used when rasterizing the chart to a canvas. Higher values produce
|
|
60
|
+
* sharper images at the cost of a larger file size.
|
|
61
|
+
* @default The larger of `window.devicePixelRatio` and `1`
|
|
62
|
+
*/
|
|
63
|
+
pixelRatio?: number;
|
|
58
64
|
}
|
|
59
65
|
export interface UseChartProExportPublicApi {
|
|
60
66
|
/**
|