@mui/x-charts-premium 9.1.0 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/BarChartPremium/BarChartPremium.d.mts +4 -1
  2. package/BarChartPremium/BarChartPremium.d.ts +4 -1
  3. package/BarChartPremium/BarChartPremium.js +51 -38
  4. package/BarChartPremium/BarChartPremium.mjs +52 -39
  5. package/BarChartPremium/BarPlotPremium.d.mts +37 -0
  6. package/BarChartPremium/BarPlotPremium.d.ts +37 -0
  7. package/BarChartPremium/BarPlotPremium.js +78 -0
  8. package/BarChartPremium/BarPlotPremium.mjs +72 -0
  9. package/BarChartPremium/RangeBar/useUtilityClasses.d.mts +1 -1
  10. package/BarChartPremium/RangeBar/useUtilityClasses.d.ts +1 -1
  11. package/BarChartPremium/index.d.mts +1 -0
  12. package/BarChartPremium/index.d.ts +1 -0
  13. package/BarChartPremium/index.js +12 -0
  14. package/BarChartPremium/index.mjs +1 -0
  15. package/BarChartPremium/useBarChartPremiumProps.d.mts +2 -1
  16. package/BarChartPremium/useBarChartPremiumProps.d.ts +2 -1
  17. package/BarChartPremium/useBarChartPremiumProps.js +39 -5
  18. package/BarChartPremium/useBarChartPremiumProps.mjs +39 -5
  19. package/BarChartPremium/webgl/BarWebGLPlot.d.mts +10 -0
  20. package/BarChartPremium/webgl/BarWebGLPlot.d.ts +10 -0
  21. package/BarChartPremium/webgl/BarWebGLPlot.js +81 -0
  22. package/BarChartPremium/webgl/BarWebGLPlot.mjs +75 -0
  23. package/BarChartPremium/webgl/BarWebGLProgram.d.mts +19 -0
  24. package/BarChartPremium/webgl/BarWebGLProgram.d.ts +19 -0
  25. package/BarChartPremium/webgl/BarWebGLProgram.js +107 -0
  26. package/BarChartPremium/webgl/BarWebGLProgram.mjs +100 -0
  27. package/BarChartPremium/webgl/shaders.d.mts +2 -0
  28. package/BarChartPremium/webgl/shaders.d.ts +2 -0
  29. package/BarChartPremium/webgl/shaders.js +69 -0
  30. package/BarChartPremium/webgl/shaders.mjs +63 -0
  31. package/BarChartPremium/webgl/useBarWebGLPlotData.d.mts +10 -0
  32. package/BarChartPremium/webgl/useBarWebGLPlotData.d.ts +10 -0
  33. package/BarChartPremium/webgl/useBarWebGLPlotData.js +160 -0
  34. package/BarChartPremium/webgl/useBarWebGLPlotData.mjs +154 -0
  35. package/CHANGELOG.md +221 -0
  36. package/CandlestickChart/CandlestickChart.js +25 -25
  37. package/CandlestickChart/CandlestickChart.mjs +25 -25
  38. package/ChartsDataProviderPremium/ChartsDataProviderPremium.js +2 -2
  39. package/ChartsDataProviderPremium/ChartsDataProviderPremium.mjs +2 -2
  40. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.js +9 -3
  41. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.mjs +9 -3
  42. package/HeatmapPremium/HeatmapPremium.js +20 -20
  43. package/HeatmapPremium/HeatmapPremium.mjs +20 -20
  44. package/RadialBarChart/RadialBarChart.d.mts +7 -0
  45. package/RadialBarChart/RadialBarChart.d.ts +7 -0
  46. package/RadialBarChart/RadialBarChart.js +25 -12
  47. package/RadialBarChart/RadialBarChart.mjs +25 -12
  48. package/RadialBarChart/RadialBarElement.js +15 -1
  49. package/RadialBarChart/RadialBarElement.mjs +15 -1
  50. package/RadialBarChart/radialBarClasses.d.mts +1 -1
  51. package/RadialBarChart/radialBarClasses.d.ts +1 -1
  52. package/RadialBarChart/seriesConfig/axisTooltipGetter.js +5 -2
  53. package/RadialBarChart/seriesConfig/axisTooltipGetter.mjs +5 -2
  54. package/RadialBarChart/seriesConfig/getColor.js +7 -51
  55. package/RadialBarChart/seriesConfig/getColor.mjs +8 -52
  56. package/RadialBarChart/seriesConfig/getItemAtPosition.d.mts +6 -0
  57. package/RadialBarChart/seriesConfig/getItemAtPosition.d.ts +6 -0
  58. package/RadialBarChart/seriesConfig/getItemAtPosition.js +69 -0
  59. package/RadialBarChart/seriesConfig/getItemAtPosition.mjs +63 -0
  60. package/RadialBarChart/seriesConfig/index.js +2 -1
  61. package/RadialBarChart/seriesConfig/index.mjs +2 -1
  62. package/RadialBarChart/seriesConfig/tooltip.js +3 -26
  63. package/RadialBarChart/seriesConfig/tooltip.mjs +4 -27
  64. package/RadialBarChart/useRadialBarChartProps.d.mts +2 -0
  65. package/RadialBarChart/useRadialBarChartProps.d.ts +2 -0
  66. package/RadialBarChart/useRadialBarChartProps.js +10 -2
  67. package/RadialBarChart/useRadialBarChartProps.mjs +10 -2
  68. package/RadialLineChart/RadialArea.d.mts +2 -11
  69. package/RadialLineChart/RadialArea.d.ts +2 -11
  70. package/RadialLineChart/RadialArea.js +4 -3
  71. package/RadialLineChart/RadialArea.mjs +4 -3
  72. package/RadialLineChart/RadialAreaPlot.js +3 -1
  73. package/RadialLineChart/RadialAreaPlot.mjs +3 -1
  74. package/RadialLineChart/RadialLine.d.mts +4 -3
  75. package/RadialLineChart/RadialLine.d.ts +4 -3
  76. package/RadialLineChart/RadialLine.js +4 -3
  77. package/RadialLineChart/RadialLine.mjs +4 -3
  78. package/RadialLineChart/RadialLineChart.d.mts +7 -5
  79. package/RadialLineChart/RadialLineChart.d.ts +7 -5
  80. package/RadialLineChart/RadialLineChart.js +15 -13
  81. package/RadialLineChart/RadialLineChart.mjs +15 -13
  82. package/RadialLineChart/RadialLineChart.plugins.d.mts +1 -1
  83. package/RadialLineChart/RadialLineChart.plugins.d.ts +1 -1
  84. package/RadialLineChart/RadialLineChart.plugins.js +1 -1
  85. package/RadialLineChart/RadialLineChart.plugins.mjs +1 -1
  86. package/RadialLineChart/RadialLinePlot.js +3 -1
  87. package/RadialLineChart/RadialLinePlot.mjs +3 -1
  88. package/RadialLineChart/seriesConfig/getColor.js +6 -53
  89. package/RadialLineChart/seriesConfig/getColor.mjs +7 -54
  90. package/RadialLineChart/seriesConfig/getItemAtPosition.js +3 -3
  91. package/RadialLineChart/seriesConfig/getItemAtPosition.mjs +4 -4
  92. package/RadialLineChart/seriesConfig/seriesProcessor.d.mts +2 -2
  93. package/RadialLineChart/seriesConfig/seriesProcessor.d.ts +2 -2
  94. package/RadialLineChart/seriesConfig/seriesProcessor.js +1 -138
  95. package/RadialLineChart/seriesConfig/seriesProcessor.mjs +2 -138
  96. package/RadialLineChart/seriesConfig/tooltip.js +3 -24
  97. package/RadialLineChart/seriesConfig/tooltip.mjs +4 -25
  98. package/RadialLineChart/useRadialLinePlotData.d.mts +1 -0
  99. package/RadialLineChart/useRadialLinePlotData.d.ts +1 -0
  100. package/RadialLineChart/useRadialLinePlotData.js +3 -1
  101. package/RadialLineChart/useRadialLinePlotData.mjs +3 -1
  102. package/ScatterChartPremium/ScatterChartPremium.js +30 -30
  103. package/ScatterChartPremium/ScatterChartPremium.mjs +30 -30
  104. package/index.js +1 -1
  105. package/index.mjs +1 -1
  106. package/models/seriesType/radialBar.d.mts +1 -1
  107. package/models/seriesType/radialBar.d.ts +1 -1
  108. package/models/seriesType/radialLine.d.mts +4 -0
  109. package/models/seriesType/radialLine.d.ts +4 -0
  110. package/package.json +126 -126
@@ -1,11 +1,14 @@
1
1
  import * as React from 'react';
2
2
  import { type BarChartProProps, type BarChartProSlotProps, type BarChartProSlots } from '@mui/x-charts-pro/BarChartPro';
3
3
  import { type BarSeries } from '@mui/x-charts/BarChart';
4
+ import type { BarChartPremiumPluginSignatures } from "./BarChartPremium.plugins.mjs";
5
+ import { type BarPlotPremiumProps } from "./BarPlotPremium.mjs";
4
6
  import { type BarItemIdentifier, type RangeBarItemIdentifier, type RangeBarSeriesType } from "../models/index.mjs";
7
+ import type { ChartsContainerPremiumProps } from "../ChartsContainerPremium/index.mjs";
5
8
  export type RangeBarSeries = RangeBarSeriesType;
6
9
  export interface BarChartPremiumSlots extends BarChartProSlots {}
7
10
  export interface BarChartPremiumSlotProps extends BarChartProSlotProps {}
8
- export interface BarChartPremiumProps extends Omit<BarChartProProps, 'series' | 'onItemClick' | 'slots' | 'slotProps'> {
11
+ export interface BarChartPremiumProps extends Omit<BarChartProProps, 'apiRef' | 'slots' | 'slotProps' | 'seriesConfig' | 'plugins' | 'series' | 'renderer'>, Omit<ChartsContainerPremiumProps<'bar', BarChartPremiumPluginSignatures>, 'series' | 'slots' | 'slotProps'>, Pick<BarPlotPremiumProps, 'renderer'> {
9
12
  /**
10
13
  * Overridable component slots.
11
14
  * @default {}
@@ -1,11 +1,14 @@
1
1
  import * as React from 'react';
2
2
  import { type BarChartProProps, type BarChartProSlotProps, type BarChartProSlots } from '@mui/x-charts-pro/BarChartPro';
3
3
  import { type BarSeries } from '@mui/x-charts/BarChart';
4
+ import type { BarChartPremiumPluginSignatures } from "./BarChartPremium.plugins.js";
5
+ import { type BarPlotPremiumProps } from "./BarPlotPremium.js";
4
6
  import { type BarItemIdentifier, type RangeBarItemIdentifier, type RangeBarSeriesType } from "../models/index.js";
7
+ import type { ChartsContainerPremiumProps } from "../ChartsContainerPremium/index.js";
5
8
  export type RangeBarSeries = RangeBarSeriesType;
6
9
  export interface BarChartPremiumSlots extends BarChartProSlots {}
7
10
  export interface BarChartPremiumSlotProps extends BarChartProSlotProps {}
8
- export interface BarChartPremiumProps extends Omit<BarChartProProps, 'series' | 'onItemClick' | 'slots' | 'slotProps'> {
11
+ export interface BarChartPremiumProps extends Omit<BarChartProProps, 'apiRef' | 'slots' | 'slotProps' | 'seriesConfig' | 'plugins' | 'series' | 'renderer'>, Omit<ChartsContainerPremiumProps<'bar', BarChartPremiumPluginSignatures>, 'series' | 'slots' | 'slotProps'>, Pick<BarPlotPremiumProps, 'renderer'> {
9
12
  /**
10
13
  * Overridable component slots.
11
14
  * @default {}
@@ -16,7 +16,8 @@ var _ChartsLegend = require("@mui/x-charts/ChartsLegend");
16
16
  var _ChartsToolbarPro = require("@mui/x-charts-pro/ChartsToolbarPro");
17
17
  var _ChartsTooltip = require("@mui/x-charts/ChartsTooltip");
18
18
  var _ChartsWrapper = require("@mui/x-charts/ChartsWrapper");
19
- var _ChartsSurface = require("@mui/x-charts/ChartsSurface");
19
+ var _ChartsLayerContainer = require("@mui/x-charts/ChartsLayerContainer");
20
+ var _ChartsSvgLayer = require("@mui/x-charts/ChartsSvgLayer");
20
21
  var _ChartsGrid = require("@mui/x-charts/ChartsGrid");
21
22
  var _BarChart = require("@mui/x-charts/BarChart");
22
23
  var _ChartsOverlay = require("@mui/x-charts/ChartsOverlay");
@@ -28,6 +29,8 @@ var _ChartsClipPath = require("@mui/x-charts/ChartsClipPath");
28
29
  var _internals = require("@mui/x-charts-pro/internals");
29
30
  var _useBarChartPremiumProps = require("./useBarChartPremiumProps");
30
31
  var _BarChartPremium2 = require("./BarChartPremium.plugins");
32
+ var _BarPlotPremium = require("./BarPlotPremium");
33
+ var _ChartsWebGLLayer = require("../ChartsWebGLLayer");
31
34
  var _ChartsDataProviderPremium = require("../ChartsDataProviderPremium");
32
35
  var _RangeBarPlot = require("./RangeBar/RangeBarPlot");
33
36
  var _FocusedRangeBar = require("./RangeBar/FocusedRangeBar");
@@ -60,7 +63,7 @@ const BarChartPremium = exports.BarChartPremium = /*#__PURE__*/React.forwardRef(
60
63
  const {
61
64
  chartsWrapperProps,
62
65
  chartsContainerProps,
63
- barPlotProps,
66
+ barPlotPremiumProps,
64
67
  rangeBarPlotProps,
65
68
  gridProps,
66
69
  clipPathProps,
@@ -83,14 +86,23 @@ const BarChartPremium = exports.BarChartPremium = /*#__PURE__*/React.forwardRef(
83
86
  }));
84
87
  const Tooltip = props.slots?.tooltip ?? _ChartsTooltip.ChartsTooltip;
85
88
  const Toolbar = props.slots?.toolbar ?? _ChartsToolbarPro.ChartsToolbarPro;
89
+ const renderer = barPlotPremiumProps.renderer;
86
90
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsDataProviderPremium.ChartsDataProviderPremium, (0, _extends2.default)({}, chartsDataProviderProProps, {
87
91
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsWrapper.ChartsWrapper, (0, _extends2.default)({}, chartsWrapperProps, {
88
92
  ref: ref,
89
- children: [showToolbar ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Toolbar, (0, _extends2.default)({}, props.slotProps?.toolbar)) : null, !props.hideLegend && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legendProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsSurface.ChartsSurface, (0, _extends2.default)({}, chartsSurfaceProps, {
90
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsGrid.ChartsGrid, (0, _extends2.default)({}, gridProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", (0, _extends2.default)({}, clipPathGroupProps, {
91
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_BarChart.BarPlot, (0, _extends2.default)({}, barPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RangeBarPlot.RangeBarPlot, (0, _extends2.default)({}, rangeBarPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsOverlay.ChartsOverlay, (0, _extends2.default)({}, overlayProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlightProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarChart.FocusedBar, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FocusedRangeBar.FocusedRangeBar, {})]
92
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, (0, _extends2.default)({}, chartsAxisProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsZoomSlider.ChartsZoomSlider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsBrushOverlay.ChartsBrushOverlay, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
93
- })), !props.loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, props.slotProps?.tooltip))]
93
+ children: [showToolbar ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Toolbar, (0, _extends2.default)({}, props.slotProps?.toolbar)) : null, !props.hideLegend && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legendProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsLayerContainer.ChartsLayerContainer, {
94
+ children: [renderer === 'webgl' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
95
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsSvgLayer.ChartsSvgLayer, {
96
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsGrid.ChartsGrid, (0, _extends2.default)({}, gridProps))
97
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsWebGLLayer.ChartsWebGLLayer, {
98
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarPlotPremium.BarPlotPremium, (0, _extends2.default)({}, barPlotPremiumProps))
99
+ })]
100
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsSvgLayer.ChartsSvgLayer, (0, _extends2.default)({}, chartsSurfaceProps, {
101
+ children: [renderer !== 'webgl' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsGrid.ChartsGrid, (0, _extends2.default)({}, gridProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", (0, _extends2.default)({}, clipPathGroupProps, {
102
+ children: [renderer !== 'webgl' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarPlotPremium.BarPlotPremium, (0, _extends2.default)({}, barPlotPremiumProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RangeBarPlot.RangeBarPlot, (0, _extends2.default)({}, rangeBarPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsOverlay.ChartsOverlay, (0, _extends2.default)({}, overlayProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlightProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarChart.FocusedBar, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FocusedRangeBar.FocusedRangeBar, {})]
103
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, (0, _extends2.default)({}, chartsAxisProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsZoomSlider.ChartsZoomSlider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsBrushOverlay.ChartsBrushOverlay, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
104
+ }))]
105
+ }), !props.loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, props.slotProps?.tooltip))]
94
106
  }))
95
107
  }));
96
108
  });
@@ -199,11 +211,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
199
211
  hiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
200
212
  dataIndex: _propTypes.default.number,
201
213
  seriesId: _propTypes.default.string.isRequired,
202
- type: _propTypes.default.oneOf(['bar'])
214
+ type: _propTypes.default.oneOf(['bar']).isRequired
203
215
  }), _propTypes.default.shape({
204
216
  dataIndex: _propTypes.default.number,
205
217
  seriesId: _propTypes.default.string.isRequired,
206
- type: _propTypes.default.oneOf(['bar']).isRequired
218
+ type: _propTypes.default.oneOf(['bar'])
207
219
  })]).isRequired),
208
220
  /**
209
221
  * If `true`, the legend is not rendered.
@@ -223,11 +235,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
223
235
  */
224
236
  highlightedItem: _propTypes.default.oneOfType([_propTypes.default.shape({
225
237
  dataIndex: _propTypes.default.number,
226
- seriesId: _propTypes.default.string.isRequired,
227
- type: _propTypes.default.oneOf(['bar']).isRequired
238
+ seriesId: _propTypes.default.string.isRequired
228
239
  }), _propTypes.default.shape({
229
240
  dataIndex: _propTypes.default.number,
230
- seriesId: _propTypes.default.string.isRequired
241
+ seriesId: _propTypes.default.string.isRequired,
242
+ type: _propTypes.default.oneOf(['bar']).isRequired
231
243
  })]),
232
244
  /**
233
245
  * This prop is used to help implement the accessibility logic.
@@ -258,11 +270,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
258
270
  initialHiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
259
271
  dataIndex: _propTypes.default.number,
260
272
  seriesId: _propTypes.default.string.isRequired,
261
- type: _propTypes.default.oneOf(['bar'])
273
+ type: _propTypes.default.oneOf(['bar']).isRequired
262
274
  }), _propTypes.default.shape({
263
275
  dataIndex: _propTypes.default.number,
264
276
  seriesId: _propTypes.default.string.isRequired,
265
- type: _propTypes.default.oneOf(['bar']).isRequired
277
+ type: _propTypes.default.oneOf(['bar'])
266
278
  })]).isRequired),
267
279
  /**
268
280
  * The list of zoom data related to each axis.
@@ -355,11 +367,12 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
355
367
  * The type of renderer to use for the bar plot.
356
368
  * - `svg-single`: Renders every bar in a `<rect />` element.
357
369
  * - `svg-batch`: Batch renders bars in `<path />` elements for better performance with large datasets, at the cost of some limitations.
370
+ * - `webgl`: Renders bars using WebGL for better performance with very large datasets, at the cost of some limitations.
358
371
  * Read more: https://mui.com/x/react-charts/bars/#performance
359
372
  *
360
373
  * @default 'svg-single'
361
374
  */
362
- renderer: _propTypes.default.oneOf(['svg-batch', 'svg-single']),
375
+ renderer: _propTypes.default.oneOf(['svg-batch', 'svg-single', 'webgl']),
363
376
  /**
364
377
  * The series to display in the bar chart.
365
378
  * An array of [[BarSeries]] or [[RangeBarSeries]] objects.
@@ -406,11 +419,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
406
419
  */
407
420
  tooltipItem: _propTypes.default.oneOfType([_propTypes.default.shape({
408
421
  dataIndex: _propTypes.default.number.isRequired,
409
- seriesId: _propTypes.default.string.isRequired,
410
- type: _propTypes.default.oneOf(['bar']).isRequired
422
+ seriesId: _propTypes.default.string.isRequired
411
423
  }), _propTypes.default.shape({
412
424
  dataIndex: _propTypes.default.number.isRequired,
413
- seriesId: _propTypes.default.string.isRequired
425
+ seriesId: _propTypes.default.string.isRequired,
426
+ type: _propTypes.default.oneOf(['bar']).isRequired
414
427
  })]),
415
428
  /**
416
429
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -433,11 +446,6 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
433
446
  */
434
447
  zAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
435
448
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
436
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
437
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
438
- unknownColor: _propTypes.default.string,
439
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
440
- }), _propTypes.default.shape({
441
449
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
442
450
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
443
451
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -446,6 +454,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
446
454
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
447
455
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
448
456
  type: _propTypes.default.oneOf(['piecewise']).isRequired
457
+ }), _propTypes.default.shape({
458
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
459
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
460
+ unknownColor: _propTypes.default.string,
461
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
449
462
  })]),
450
463
  data: _propTypes.default.array,
451
464
  dataKey: _propTypes.default.string,
@@ -467,6 +480,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
467
480
  */
468
481
  zoomInteractionConfig: _propTypes.default.shape({
469
482
  pan: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['drag', 'pressAndDrag', 'wheel']), _propTypes.default.shape({
483
+ allowedDirection: _propTypes.default.oneOf(['x', 'xy', 'y']),
484
+ pointerMode: _propTypes.default.any,
485
+ requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
486
+ type: _propTypes.default.oneOf(['wheel']).isRequired
487
+ }), _propTypes.default.shape({
470
488
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
471
489
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
472
490
  type: _propTypes.default.oneOf(['drag']).isRequired
@@ -474,24 +492,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
474
492
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
475
493
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
476
494
  type: _propTypes.default.oneOf(['pressAndDrag']).isRequired
477
- }), _propTypes.default.shape({
478
- allowedDirection: _propTypes.default.oneOf(['x', 'xy', 'y']),
479
- pointerMode: _propTypes.default.any,
480
- requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
481
- type: _propTypes.default.oneOf(['wheel']).isRequired
482
495
  })]).isRequired),
483
496
  zoom: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['brush', 'doubleTapReset', 'pinch', 'tapAndDrag', 'wheel']), _propTypes.default.shape({
484
- pointerMode: _propTypes.default.any,
485
- requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
486
- type: _propTypes.default.oneOf(['wheel']).isRequired
487
- }), _propTypes.default.shape({
488
- pointerMode: _propTypes.default.any,
489
- requiredKeys: _propTypes.default.array,
490
- type: _propTypes.default.oneOf(['pinch']).isRequired
491
- }), _propTypes.default.shape({
492
497
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
493
498
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
494
- type: _propTypes.default.oneOf(['tapAndDrag']).isRequired
499
+ type: _propTypes.default.oneOf(['brush']).isRequired
495
500
  }), _propTypes.default.shape({
496
501
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
497
502
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
@@ -499,7 +504,15 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
499
504
  }), _propTypes.default.shape({
500
505
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
501
506
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
502
- type: _propTypes.default.oneOf(['brush']).isRequired
507
+ type: _propTypes.default.oneOf(['tapAndDrag']).isRequired
508
+ }), _propTypes.default.shape({
509
+ pointerMode: _propTypes.default.any,
510
+ requiredKeys: _propTypes.default.array,
511
+ type: _propTypes.default.oneOf(['pinch']).isRequired
512
+ }), _propTypes.default.shape({
513
+ pointerMode: _propTypes.default.any,
514
+ requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
515
+ type: _propTypes.default.oneOf(['wheel']).isRequired
503
516
  })]).isRequired)
504
517
  })
505
518
  } : void 0;
@@ -10,9 +10,10 @@ import { ChartsLegend } from '@mui/x-charts/ChartsLegend';
10
10
  import { ChartsToolbarPro } from '@mui/x-charts-pro/ChartsToolbarPro';
11
11
  import { ChartsTooltip } from '@mui/x-charts/ChartsTooltip';
12
12
  import { ChartsWrapper } from '@mui/x-charts/ChartsWrapper';
13
- import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
13
+ import { ChartsLayerContainer } from '@mui/x-charts/ChartsLayerContainer';
14
+ import { ChartsSvgLayer } from '@mui/x-charts/ChartsSvgLayer';
14
15
  import { ChartsGrid } from '@mui/x-charts/ChartsGrid';
15
- import { BarPlot, FocusedBar } from '@mui/x-charts/BarChart';
16
+ import { FocusedBar } from '@mui/x-charts/BarChart';
16
17
  import { ChartsOverlay } from '@mui/x-charts/ChartsOverlay';
17
18
  import { ChartsAxisHighlight } from '@mui/x-charts/ChartsAxisHighlight';
18
19
  import { ChartsAxis } from '@mui/x-charts/ChartsAxis';
@@ -22,6 +23,8 @@ import { ChartsClipPath } from '@mui/x-charts/ChartsClipPath';
22
23
  import { useChartsContainerProProps } from '@mui/x-charts-pro/internals';
23
24
  import { useBarChartPremiumProps } from "./useBarChartPremiumProps.mjs";
24
25
  import { BAR_CHART_PREMIUM_PLUGINS } from "./BarChartPremium.plugins.mjs";
26
+ import { BarPlotPremium } from "./BarPlotPremium.mjs";
27
+ import { ChartsWebGLLayer } from "../ChartsWebGLLayer/index.mjs";
25
28
  import { ChartsDataProviderPremium } from "../ChartsDataProviderPremium/index.mjs";
26
29
  import { RangeBarPlot } from "./RangeBar/RangeBarPlot.mjs";
27
30
  import { FocusedRangeBar } from "./RangeBar/FocusedRangeBar.mjs";
@@ -53,7 +56,7 @@ const BarChartPremium = /*#__PURE__*/React.forwardRef(function BarChartPremium(i
53
56
  const {
54
57
  chartsWrapperProps,
55
58
  chartsContainerProps,
56
- barPlotProps,
59
+ barPlotPremiumProps,
57
60
  rangeBarPlotProps,
58
61
  gridProps,
59
62
  clipPathProps,
@@ -76,14 +79,23 @@ const BarChartPremium = /*#__PURE__*/React.forwardRef(function BarChartPremium(i
76
79
  }));
77
80
  const Tooltip = props.slots?.tooltip ?? ChartsTooltip;
78
81
  const Toolbar = props.slots?.toolbar ?? ChartsToolbarPro;
82
+ const renderer = barPlotPremiumProps.renderer;
79
83
  return /*#__PURE__*/_jsx(ChartsDataProviderPremium, _extends({}, chartsDataProviderProProps, {
80
84
  children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
81
85
  ref: ref,
82
- children: [showToolbar ? /*#__PURE__*/_jsx(Toolbar, _extends({}, props.slotProps?.toolbar)) : null, !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
83
- children: [/*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
84
- children: [/*#__PURE__*/_jsx(BarPlot, _extends({}, barPlotProps)), /*#__PURE__*/_jsx(RangeBarPlot, _extends({}, rangeBarPlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps)), /*#__PURE__*/_jsx(FocusedBar, {}), /*#__PURE__*/_jsx(FocusedRangeBar, {})]
85
- })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx(ChartsZoomSlider, {}), /*#__PURE__*/_jsx(ChartsBrushOverlay, {}), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
86
- })), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip))]
86
+ children: [showToolbar ? /*#__PURE__*/_jsx(Toolbar, _extends({}, props.slotProps?.toolbar)) : null, !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsLayerContainer, {
87
+ children: [renderer === 'webgl' && /*#__PURE__*/_jsxs(React.Fragment, {
88
+ children: [/*#__PURE__*/_jsx(ChartsSvgLayer, {
89
+ children: /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps))
90
+ }), /*#__PURE__*/_jsx(ChartsWebGLLayer, {
91
+ children: /*#__PURE__*/_jsx(BarPlotPremium, _extends({}, barPlotPremiumProps))
92
+ })]
93
+ }), /*#__PURE__*/_jsxs(ChartsSvgLayer, _extends({}, chartsSurfaceProps, {
94
+ children: [renderer !== 'webgl' && /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
95
+ children: [renderer !== 'webgl' && /*#__PURE__*/_jsx(BarPlotPremium, _extends({}, barPlotPremiumProps)), /*#__PURE__*/_jsx(RangeBarPlot, _extends({}, rangeBarPlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps)), /*#__PURE__*/_jsx(FocusedBar, {}), /*#__PURE__*/_jsx(FocusedRangeBar, {})]
96
+ })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx(ChartsZoomSlider, {}), /*#__PURE__*/_jsx(ChartsBrushOverlay, {}), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
97
+ }))]
98
+ }), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip))]
87
99
  }))
88
100
  }));
89
101
  });
@@ -192,11 +204,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
192
204
  hiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
193
205
  dataIndex: PropTypes.number,
194
206
  seriesId: PropTypes.string.isRequired,
195
- type: PropTypes.oneOf(['bar'])
207
+ type: PropTypes.oneOf(['bar']).isRequired
196
208
  }), PropTypes.shape({
197
209
  dataIndex: PropTypes.number,
198
210
  seriesId: PropTypes.string.isRequired,
199
- type: PropTypes.oneOf(['bar']).isRequired
211
+ type: PropTypes.oneOf(['bar'])
200
212
  })]).isRequired),
201
213
  /**
202
214
  * If `true`, the legend is not rendered.
@@ -216,11 +228,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
216
228
  */
217
229
  highlightedItem: PropTypes.oneOfType([PropTypes.shape({
218
230
  dataIndex: PropTypes.number,
219
- seriesId: PropTypes.string.isRequired,
220
- type: PropTypes.oneOf(['bar']).isRequired
231
+ seriesId: PropTypes.string.isRequired
221
232
  }), PropTypes.shape({
222
233
  dataIndex: PropTypes.number,
223
- seriesId: PropTypes.string.isRequired
234
+ seriesId: PropTypes.string.isRequired,
235
+ type: PropTypes.oneOf(['bar']).isRequired
224
236
  })]),
225
237
  /**
226
238
  * This prop is used to help implement the accessibility logic.
@@ -251,11 +263,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
251
263
  initialHiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
252
264
  dataIndex: PropTypes.number,
253
265
  seriesId: PropTypes.string.isRequired,
254
- type: PropTypes.oneOf(['bar'])
266
+ type: PropTypes.oneOf(['bar']).isRequired
255
267
  }), PropTypes.shape({
256
268
  dataIndex: PropTypes.number,
257
269
  seriesId: PropTypes.string.isRequired,
258
- type: PropTypes.oneOf(['bar']).isRequired
270
+ type: PropTypes.oneOf(['bar'])
259
271
  })]).isRequired),
260
272
  /**
261
273
  * The list of zoom data related to each axis.
@@ -348,11 +360,12 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
348
360
  * The type of renderer to use for the bar plot.
349
361
  * - `svg-single`: Renders every bar in a `<rect />` element.
350
362
  * - `svg-batch`: Batch renders bars in `<path />` elements for better performance with large datasets, at the cost of some limitations.
363
+ * - `webgl`: Renders bars using WebGL for better performance with very large datasets, at the cost of some limitations.
351
364
  * Read more: https://mui.com/x/react-charts/bars/#performance
352
365
  *
353
366
  * @default 'svg-single'
354
367
  */
355
- renderer: PropTypes.oneOf(['svg-batch', 'svg-single']),
368
+ renderer: PropTypes.oneOf(['svg-batch', 'svg-single', 'webgl']),
356
369
  /**
357
370
  * The series to display in the bar chart.
358
371
  * An array of [[BarSeries]] or [[RangeBarSeries]] objects.
@@ -399,11 +412,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
399
412
  */
400
413
  tooltipItem: PropTypes.oneOfType([PropTypes.shape({
401
414
  dataIndex: PropTypes.number.isRequired,
402
- seriesId: PropTypes.string.isRequired,
403
- type: PropTypes.oneOf(['bar']).isRequired
415
+ seriesId: PropTypes.string.isRequired
404
416
  }), PropTypes.shape({
405
417
  dataIndex: PropTypes.number.isRequired,
406
- seriesId: PropTypes.string.isRequired
418
+ seriesId: PropTypes.string.isRequired,
419
+ type: PropTypes.oneOf(['bar']).isRequired
407
420
  })]),
408
421
  /**
409
422
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -426,11 +439,6 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
426
439
  */
427
440
  zAxis: PropTypes.arrayOf(PropTypes.shape({
428
441
  colorMap: PropTypes.oneOfType([PropTypes.shape({
429
- colors: PropTypes.arrayOf(PropTypes.string).isRequired,
430
- type: PropTypes.oneOf(['ordinal']).isRequired,
431
- unknownColor: PropTypes.string,
432
- values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
433
- }), PropTypes.shape({
434
442
  color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
435
443
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
436
444
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -439,6 +447,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
439
447
  colors: PropTypes.arrayOf(PropTypes.string).isRequired,
440
448
  thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
441
449
  type: PropTypes.oneOf(['piecewise']).isRequired
450
+ }), PropTypes.shape({
451
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
452
+ type: PropTypes.oneOf(['ordinal']).isRequired,
453
+ unknownColor: PropTypes.string,
454
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
442
455
  })]),
443
456
  data: PropTypes.array,
444
457
  dataKey: PropTypes.string,
@@ -460,6 +473,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
460
473
  */
461
474
  zoomInteractionConfig: PropTypes.shape({
462
475
  pan: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['drag', 'pressAndDrag', 'wheel']), PropTypes.shape({
476
+ allowedDirection: PropTypes.oneOf(['x', 'xy', 'y']),
477
+ pointerMode: PropTypes.any,
478
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
479
+ type: PropTypes.oneOf(['wheel']).isRequired
480
+ }), PropTypes.shape({
463
481
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
464
482
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
465
483
  type: PropTypes.oneOf(['drag']).isRequired
@@ -467,24 +485,11 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
467
485
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
468
486
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
469
487
  type: PropTypes.oneOf(['pressAndDrag']).isRequired
470
- }), PropTypes.shape({
471
- allowedDirection: PropTypes.oneOf(['x', 'xy', 'y']),
472
- pointerMode: PropTypes.any,
473
- requiredKeys: PropTypes.arrayOf(PropTypes.string),
474
- type: PropTypes.oneOf(['wheel']).isRequired
475
488
  })]).isRequired),
476
489
  zoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['brush', 'doubleTapReset', 'pinch', 'tapAndDrag', 'wheel']), PropTypes.shape({
477
- pointerMode: PropTypes.any,
478
- requiredKeys: PropTypes.arrayOf(PropTypes.string),
479
- type: PropTypes.oneOf(['wheel']).isRequired
480
- }), PropTypes.shape({
481
- pointerMode: PropTypes.any,
482
- requiredKeys: PropTypes.array,
483
- type: PropTypes.oneOf(['pinch']).isRequired
484
- }), PropTypes.shape({
485
490
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
486
491
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
487
- type: PropTypes.oneOf(['tapAndDrag']).isRequired
492
+ type: PropTypes.oneOf(['brush']).isRequired
488
493
  }), PropTypes.shape({
489
494
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
490
495
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
@@ -492,7 +497,15 @@ process.env.NODE_ENV !== "production" ? BarChartPremium.propTypes = {
492
497
  }), PropTypes.shape({
493
498
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
494
499
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
495
- type: PropTypes.oneOf(['brush']).isRequired
500
+ type: PropTypes.oneOf(['tapAndDrag']).isRequired
501
+ }), PropTypes.shape({
502
+ pointerMode: PropTypes.any,
503
+ requiredKeys: PropTypes.array,
504
+ type: PropTypes.oneOf(['pinch']).isRequired
505
+ }), PropTypes.shape({
506
+ pointerMode: PropTypes.any,
507
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
508
+ type: PropTypes.oneOf(['wheel']).isRequired
496
509
  })]).isRequired)
497
510
  })
498
511
  } : void 0;
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { type BarPlotProps, type BarPlotSlotProps, type BarPlotSlots } from '@mui/x-charts/BarChart';
3
+ import type { RendererType } from '@mui/x-charts/ScatterChart';
4
+ export type BarPlotPremiumRenderer = RendererType | 'webgl';
5
+ export interface BarPlotPremiumSlots extends BarPlotSlots {}
6
+ export interface BarPlotPremiumSlotProps extends BarPlotSlotProps {}
7
+ export interface BarPlotPremiumProps extends Omit<BarPlotProps, 'renderer' | 'slots' | 'slotProps'> {
8
+ /**
9
+ * Overridable component slots.
10
+ * @default {}
11
+ */
12
+ slots?: BarPlotPremiumSlots;
13
+ /**
14
+ * The props used for each component slot.
15
+ * @default {}
16
+ */
17
+ slotProps?: BarPlotPremiumSlotProps;
18
+ /**
19
+ * The type of renderer to use for the bar plot.
20
+ * - `svg-single`: Renders every bar in a `<rect />` element.
21
+ * - `svg-batch`: Batch renders bars in `<path />` elements for better performance with large datasets, at the cost of some limitations.
22
+ * - `webgl`: Renders bars using WebGL for better performance with very large datasets, at the cost of some limitations.
23
+ * Read more: https://mui.com/x/react-charts/bars/#performance
24
+ *
25
+ * @default 'svg-single'
26
+ */
27
+ renderer?: BarPlotPremiumRenderer;
28
+ }
29
+ declare function BarPlotPremium({
30
+ renderer,
31
+ borderRadius,
32
+ ...other
33
+ }: BarPlotPremiumProps): React.JSX.Element;
34
+ declare namespace BarPlotPremium {
35
+ var propTypes: any;
36
+ }
37
+ export { BarPlotPremium };
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { type BarPlotProps, type BarPlotSlotProps, type BarPlotSlots } from '@mui/x-charts/BarChart';
3
+ import type { RendererType } from '@mui/x-charts/ScatterChart';
4
+ export type BarPlotPremiumRenderer = RendererType | 'webgl';
5
+ export interface BarPlotPremiumSlots extends BarPlotSlots {}
6
+ export interface BarPlotPremiumSlotProps extends BarPlotSlotProps {}
7
+ export interface BarPlotPremiumProps extends Omit<BarPlotProps, 'renderer' | 'slots' | 'slotProps'> {
8
+ /**
9
+ * Overridable component slots.
10
+ * @default {}
11
+ */
12
+ slots?: BarPlotPremiumSlots;
13
+ /**
14
+ * The props used for each component slot.
15
+ * @default {}
16
+ */
17
+ slotProps?: BarPlotPremiumSlotProps;
18
+ /**
19
+ * The type of renderer to use for the bar plot.
20
+ * - `svg-single`: Renders every bar in a `<rect />` element.
21
+ * - `svg-batch`: Batch renders bars in `<path />` elements for better performance with large datasets, at the cost of some limitations.
22
+ * - `webgl`: Renders bars using WebGL for better performance with very large datasets, at the cost of some limitations.
23
+ * Read more: https://mui.com/x/react-charts/bars/#performance
24
+ *
25
+ * @default 'svg-single'
26
+ */
27
+ renderer?: BarPlotPremiumRenderer;
28
+ }
29
+ declare function BarPlotPremium({
30
+ renderer,
31
+ borderRadius,
32
+ ...other
33
+ }: BarPlotPremiumProps): React.JSX.Element;
34
+ declare namespace BarPlotPremium {
35
+ var propTypes: any;
36
+ }
37
+ export { BarPlotPremium };
@@ -0,0 +1,78 @@
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.BarPlotPremium = BarPlotPremium;
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 _BarChart = require("@mui/x-charts/BarChart");
15
+ var _BarWebGLPlot = require("./webgl/BarWebGLPlot");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ const _excluded = ["renderer", "borderRadius"];
18
+ function BarPlotPremium(_ref) {
19
+ let {
20
+ renderer,
21
+ borderRadius
22
+ } = _ref,
23
+ other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
24
+ if (renderer === 'webgl') {
25
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarWebGLPlot.BarWebGLPlot, {
26
+ borderRadius: borderRadius
27
+ });
28
+ }
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarChart.BarPlot, (0, _extends2.default)({
30
+ renderer: renderer,
31
+ borderRadius: borderRadius
32
+ }, other));
33
+ }
34
+ process.env.NODE_ENV !== "production" ? BarPlotPremium.propTypes = {
35
+ // ----------------------------- Warning --------------------------------
36
+ // | These PropTypes are generated from the TypeScript type definitions |
37
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
38
+ // ----------------------------------------------------------------------
39
+ /**
40
+ * Defines the border radius of the bar element.
41
+ */
42
+ borderRadius: _propTypes.default.number,
43
+ /**
44
+ * A CSS class name applied to the root element.
45
+ */
46
+ className: _propTypes.default.string,
47
+ /**
48
+ * Callback fired when a bar item is clicked.
49
+ * @param {MouseEvent} event The event source of the callback.
50
+ * @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
51
+ */
52
+ onItemClick: _propTypes.default.func,
53
+ /**
54
+ * The type of renderer to use for the bar plot.
55
+ * - `svg-single`: Renders every bar in a `<rect />` element.
56
+ * - `svg-batch`: Batch renders bars in `<path />` elements for better performance with large datasets, at the cost of some limitations.
57
+ * - `webgl`: Renders bars using WebGL for better performance with very large datasets, at the cost of some limitations.
58
+ * Read more: https://mui.com/x/react-charts/bars/#performance
59
+ *
60
+ * @default 'svg-single'
61
+ */
62
+ renderer: _propTypes.default.oneOf(['svg-batch', 'svg-single', 'webgl']),
63
+ /**
64
+ * If `true`, animations are skipped.
65
+ * @default undefined
66
+ */
67
+ skipAnimation: _propTypes.default.bool,
68
+ /**
69
+ * The props used for each component slot.
70
+ * @default {}
71
+ */
72
+ slotProps: _propTypes.default.object,
73
+ /**
74
+ * Overridable component slots.
75
+ * @default {}
76
+ */
77
+ slots: _propTypes.default.object
78
+ } : void 0;