@mui/x-charts-premium 9.0.0-beta.0 → 9.0.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 (50) hide show
  1. package/BarChartPremium/BarChartPremium.js +18 -20
  2. package/BarChartPremium/BarChartPremium.mjs +19 -21
  3. package/BarChartPremium/RangeBar/seriesConfig/index.js +4 -1
  4. package/BarChartPremium/RangeBar/seriesConfig/index.mjs +4 -1
  5. package/CHANGELOG.md +267 -1
  6. package/CandlestickChart/CandlestickChart.js +20 -19
  7. package/CandlestickChart/CandlestickChart.mjs +20 -19
  8. package/CandlestickChart/CandlestickPlot.js +8 -1
  9. package/CandlestickChart/CandlestickPlot.mjs +8 -1
  10. package/CandlestickChart/seriesConfig/OHLCTooltipContent.js +10 -39
  11. package/CandlestickChart/seriesConfig/OHLCTooltipContent.mjs +10 -39
  12. package/CandlestickChart/seriesConfig/descriptionGetter.js +19 -0
  13. package/CandlestickChart/seriesConfig/descriptionGetter.mjs +19 -0
  14. package/CandlestickChart/seriesConfig/getColor.js +21 -4
  15. package/CandlestickChart/seriesConfig/getColor.mjs +21 -4
  16. package/CandlestickChart/seriesConfig/getSeriesWithDefaultValues.d.mts +14 -3
  17. package/CandlestickChart/seriesConfig/getSeriesWithDefaultValues.d.ts +14 -3
  18. package/CandlestickChart/seriesConfig/getSeriesWithDefaultValues.js +5 -2
  19. package/CandlestickChart/seriesConfig/getSeriesWithDefaultValues.mjs +5 -2
  20. package/CandlestickChart/seriesConfig/index.js +4 -1
  21. package/CandlestickChart/seriesConfig/index.mjs +4 -1
  22. package/CandlestickChart/seriesConfig/seriesProcessor.js +34 -7
  23. package/CandlestickChart/seriesConfig/seriesProcessor.mjs +34 -7
  24. package/CandlestickChart/seriesConfig/tooltip.js +28 -5
  25. package/CandlestickChart/seriesConfig/tooltip.mjs +28 -5
  26. package/CandlestickChart/useCandlestickChartProps.js +0 -2
  27. package/CandlestickChart/useCandlestickChartProps.mjs +0 -2
  28. package/CandlestickChart/useCandlestickPlotData.js +14 -21
  29. package/CandlestickChart/useCandlestickPlotData.mjs +13 -21
  30. package/ChartsDataProviderPremium/ChartsDataProviderPremium.js +2 -2
  31. package/ChartsDataProviderPremium/ChartsDataProviderPremium.mjs +2 -2
  32. package/ChartsZoomSlider/internals/previews/CandlestickPreviewPlot.d.mts +2 -0
  33. package/ChartsZoomSlider/internals/previews/CandlestickPreviewPlot.d.ts +2 -0
  34. package/ChartsZoomSlider/internals/previews/CandlestickPreviewPlot.js +73 -0
  35. package/ChartsZoomSlider/internals/previews/CandlestickPreviewPlot.mjs +66 -0
  36. package/HeatmapPremium/HeatmapPremium.js +2 -2
  37. package/HeatmapPremium/HeatmapPremium.mjs +2 -2
  38. package/colorPalettes/complementary/candlestick.d.mts +2 -0
  39. package/colorPalettes/complementary/candlestick.d.ts +2 -0
  40. package/colorPalettes/complementary/candlestick.js +10 -0
  41. package/colorPalettes/complementary/candlestick.mjs +2 -0
  42. package/index.js +1 -1
  43. package/index.mjs +1 -1
  44. package/models/seriesType/ohlc.d.mts +57 -2
  45. package/models/seriesType/ohlc.d.ts +57 -2
  46. package/package.json +201 -201
  47. package/plugins/selectors/useChartCandlestickPosition.selectors.js +3 -0
  48. package/plugins/selectors/useChartCandlestickPosition.selectors.mjs +3 -0
  49. package/typeOverloads/modules.d.mts +1 -1
  50. package/typeOverloads/modules.d.ts +1 -1
@@ -21,6 +21,7 @@ var _ChartsAxisHighlight = require("@mui/x-charts/ChartsAxisHighlight");
21
21
  var _ChartsLayerContainer = require("@mui/x-charts/ChartsLayerContainer");
22
22
  var _ChartsSvgLayer = require("@mui/x-charts/ChartsSvgLayer");
23
23
  var _ChartsToolbarPro = require("@mui/x-charts-pro/ChartsToolbarPro");
24
+ var _ChartsZoomSlider = require("@mui/x-charts-pro/ChartsZoomSlider");
24
25
  var _ChartsLegend = require("@mui/x-charts/ChartsLegend");
25
26
  var _ChartsWebGLLayer = require("../ChartsWebGLLayer");
26
27
  var _ChartsDataProviderPremium = require("../ChartsDataProviderPremium");
@@ -81,7 +82,7 @@ const CandlestickChart = exports.CandlestickChart = /*#__PURE__*/React.forwardRe
81
82
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsSvgLayer.ChartsSvgLayer, (0, _extends2.default)({}, chartsSvgLayerProps, {
82
83
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("g", (0, _extends2.default)({}, clipPathGroupProps, {
83
84
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsOverlay.ChartsOverlay, (0, _extends2.default)({}, overlayProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlightProps))]
84
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, (0, _extends2.default)({}, chartsAxisProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
85
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, (0, _extends2.default)({}, chartsAxisProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsZoomSlider.ChartsZoomSlider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
85
86
  }))]
86
87
  }), !props.loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, props.slotProps?.tooltip))]
87
88
  }))
@@ -445,7 +446,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
445
446
  panning: _propTypes.default.bool,
446
447
  slider: _propTypes.default.shape({
447
448
  enabled: _propTypes.default.bool,
448
- preview: _propTypes.default.bool,
449
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
449
450
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
450
451
  size: _propTypes.default.number
451
452
  }),
@@ -519,7 +520,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
519
520
  panning: _propTypes.default.bool,
520
521
  slider: _propTypes.default.shape({
521
522
  enabled: _propTypes.default.bool,
522
- preview: _propTypes.default.bool,
523
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
523
524
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
524
525
  size: _propTypes.default.number
525
526
  }),
@@ -580,7 +581,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
580
581
  panning: _propTypes.default.bool,
581
582
  slider: _propTypes.default.shape({
582
583
  enabled: _propTypes.default.bool,
583
- preview: _propTypes.default.bool,
584
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
584
585
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
585
586
  size: _propTypes.default.number
586
587
  }),
@@ -642,7 +643,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
642
643
  panning: _propTypes.default.bool,
643
644
  slider: _propTypes.default.shape({
644
645
  enabled: _propTypes.default.bool,
645
- preview: _propTypes.default.bool,
646
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
646
647
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
647
648
  size: _propTypes.default.number
648
649
  }),
@@ -703,7 +704,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
703
704
  panning: _propTypes.default.bool,
704
705
  slider: _propTypes.default.shape({
705
706
  enabled: _propTypes.default.bool,
706
- preview: _propTypes.default.bool,
707
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
707
708
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
708
709
  size: _propTypes.default.number
709
710
  }),
@@ -764,7 +765,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
764
765
  panning: _propTypes.default.bool,
765
766
  slider: _propTypes.default.shape({
766
767
  enabled: _propTypes.default.bool,
767
- preview: _propTypes.default.bool,
768
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
768
769
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
769
770
  size: _propTypes.default.number
770
771
  }),
@@ -829,7 +830,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
829
830
  panning: _propTypes.default.bool,
830
831
  slider: _propTypes.default.shape({
831
832
  enabled: _propTypes.default.bool,
832
- preview: _propTypes.default.bool,
833
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
833
834
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
834
835
  size: _propTypes.default.number
835
836
  }),
@@ -894,7 +895,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
894
895
  panning: _propTypes.default.bool,
895
896
  slider: _propTypes.default.shape({
896
897
  enabled: _propTypes.default.bool,
897
- preview: _propTypes.default.bool,
898
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
898
899
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
899
900
  size: _propTypes.default.number
900
901
  }),
@@ -955,7 +956,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
955
956
  panning: _propTypes.default.bool,
956
957
  slider: _propTypes.default.shape({
957
958
  enabled: _propTypes.default.bool,
958
- preview: _propTypes.default.bool,
959
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
959
960
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
960
961
  size: _propTypes.default.number
961
962
  }),
@@ -1036,7 +1037,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1036
1037
  panning: _propTypes.default.bool,
1037
1038
  slider: _propTypes.default.shape({
1038
1039
  enabled: _propTypes.default.bool,
1039
- preview: _propTypes.default.bool,
1040
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1040
1041
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
1041
1042
  size: _propTypes.default.number
1042
1043
  }),
@@ -1109,7 +1110,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1109
1110
  panning: _propTypes.default.bool,
1110
1111
  slider: _propTypes.default.shape({
1111
1112
  enabled: _propTypes.default.bool,
1112
- preview: _propTypes.default.bool,
1113
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1113
1114
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
1114
1115
  size: _propTypes.default.number
1115
1116
  }),
@@ -1169,7 +1170,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1169
1170
  panning: _propTypes.default.bool,
1170
1171
  slider: _propTypes.default.shape({
1171
1172
  enabled: _propTypes.default.bool,
1172
- preview: _propTypes.default.bool,
1173
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1173
1174
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
1174
1175
  size: _propTypes.default.number
1175
1176
  }),
@@ -1230,7 +1231,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1230
1231
  panning: _propTypes.default.bool,
1231
1232
  slider: _propTypes.default.shape({
1232
1233
  enabled: _propTypes.default.bool,
1233
- preview: _propTypes.default.bool,
1234
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1234
1235
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
1235
1236
  size: _propTypes.default.number
1236
1237
  }),
@@ -1290,7 +1291,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1290
1291
  panning: _propTypes.default.bool,
1291
1292
  slider: _propTypes.default.shape({
1292
1293
  enabled: _propTypes.default.bool,
1293
- preview: _propTypes.default.bool,
1294
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1294
1295
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
1295
1296
  size: _propTypes.default.number
1296
1297
  }),
@@ -1350,7 +1351,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1350
1351
  panning: _propTypes.default.bool,
1351
1352
  slider: _propTypes.default.shape({
1352
1353
  enabled: _propTypes.default.bool,
1353
- preview: _propTypes.default.bool,
1354
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1354
1355
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
1355
1356
  size: _propTypes.default.number
1356
1357
  }),
@@ -1414,7 +1415,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1414
1415
  panning: _propTypes.default.bool,
1415
1416
  slider: _propTypes.default.shape({
1416
1417
  enabled: _propTypes.default.bool,
1417
- preview: _propTypes.default.bool,
1418
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1418
1419
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
1419
1420
  size: _propTypes.default.number
1420
1421
  }),
@@ -1478,7 +1479,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1478
1479
  panning: _propTypes.default.bool,
1479
1480
  slider: _propTypes.default.shape({
1480
1481
  enabled: _propTypes.default.bool,
1481
- preview: _propTypes.default.bool,
1482
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1482
1483
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
1483
1484
  size: _propTypes.default.number
1484
1485
  }),
@@ -1538,7 +1539,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1538
1539
  panning: _propTypes.default.bool,
1539
1540
  slider: _propTypes.default.shape({
1540
1541
  enabled: _propTypes.default.bool,
1541
- preview: _propTypes.default.bool,
1542
+ preview: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1542
1543
  showTooltip: _propTypes.default.oneOf(['always', 'hover', 'never']),
1543
1544
  size: _propTypes.default.number
1544
1545
  }),
@@ -14,6 +14,7 @@ import { ChartsAxisHighlight } from '@mui/x-charts/ChartsAxisHighlight';
14
14
  import { ChartsLayerContainer } from '@mui/x-charts/ChartsLayerContainer';
15
15
  import { ChartsSvgLayer } from '@mui/x-charts/ChartsSvgLayer';
16
16
  import { ChartsToolbarPro } from '@mui/x-charts-pro/ChartsToolbarPro';
17
+ import { ChartsZoomSlider } from '@mui/x-charts-pro/ChartsZoomSlider';
17
18
  import { ChartsLegend } from '@mui/x-charts/ChartsLegend';
18
19
  import { ChartsWebGLLayer } from "../ChartsWebGLLayer/index.mjs";
19
20
  import { ChartsDataProviderPremium } from "../ChartsDataProviderPremium/index.mjs";
@@ -73,7 +74,7 @@ const CandlestickChart = /*#__PURE__*/React.forwardRef(function CandlestickChart
73
74
  }), /*#__PURE__*/_jsxs(ChartsSvgLayer, _extends({}, chartsSvgLayerProps, {
74
75
  children: [/*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
75
76
  children: [/*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
76
- })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
77
+ })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx(ChartsZoomSlider, {}), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
77
78
  }))]
78
79
  }), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip))]
79
80
  }))
@@ -437,7 +438,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
437
438
  panning: PropTypes.bool,
438
439
  slider: PropTypes.shape({
439
440
  enabled: PropTypes.bool,
440
- preview: PropTypes.bool,
441
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
441
442
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
442
443
  size: PropTypes.number
443
444
  }),
@@ -511,7 +512,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
511
512
  panning: PropTypes.bool,
512
513
  slider: PropTypes.shape({
513
514
  enabled: PropTypes.bool,
514
- preview: PropTypes.bool,
515
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
515
516
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
516
517
  size: PropTypes.number
517
518
  }),
@@ -572,7 +573,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
572
573
  panning: PropTypes.bool,
573
574
  slider: PropTypes.shape({
574
575
  enabled: PropTypes.bool,
575
- preview: PropTypes.bool,
576
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
576
577
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
577
578
  size: PropTypes.number
578
579
  }),
@@ -634,7 +635,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
634
635
  panning: PropTypes.bool,
635
636
  slider: PropTypes.shape({
636
637
  enabled: PropTypes.bool,
637
- preview: PropTypes.bool,
638
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
638
639
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
639
640
  size: PropTypes.number
640
641
  }),
@@ -695,7 +696,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
695
696
  panning: PropTypes.bool,
696
697
  slider: PropTypes.shape({
697
698
  enabled: PropTypes.bool,
698
- preview: PropTypes.bool,
699
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
699
700
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
700
701
  size: PropTypes.number
701
702
  }),
@@ -756,7 +757,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
756
757
  panning: PropTypes.bool,
757
758
  slider: PropTypes.shape({
758
759
  enabled: PropTypes.bool,
759
- preview: PropTypes.bool,
760
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
760
761
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
761
762
  size: PropTypes.number
762
763
  }),
@@ -821,7 +822,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
821
822
  panning: PropTypes.bool,
822
823
  slider: PropTypes.shape({
823
824
  enabled: PropTypes.bool,
824
- preview: PropTypes.bool,
825
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
825
826
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
826
827
  size: PropTypes.number
827
828
  }),
@@ -886,7 +887,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
886
887
  panning: PropTypes.bool,
887
888
  slider: PropTypes.shape({
888
889
  enabled: PropTypes.bool,
889
- preview: PropTypes.bool,
890
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
890
891
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
891
892
  size: PropTypes.number
892
893
  }),
@@ -947,7 +948,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
947
948
  panning: PropTypes.bool,
948
949
  slider: PropTypes.shape({
949
950
  enabled: PropTypes.bool,
950
- preview: PropTypes.bool,
951
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
951
952
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
952
953
  size: PropTypes.number
953
954
  }),
@@ -1028,7 +1029,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1028
1029
  panning: PropTypes.bool,
1029
1030
  slider: PropTypes.shape({
1030
1031
  enabled: PropTypes.bool,
1031
- preview: PropTypes.bool,
1032
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
1032
1033
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1033
1034
  size: PropTypes.number
1034
1035
  }),
@@ -1101,7 +1102,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1101
1102
  panning: PropTypes.bool,
1102
1103
  slider: PropTypes.shape({
1103
1104
  enabled: PropTypes.bool,
1104
- preview: PropTypes.bool,
1105
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
1105
1106
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1106
1107
  size: PropTypes.number
1107
1108
  }),
@@ -1161,7 +1162,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1161
1162
  panning: PropTypes.bool,
1162
1163
  slider: PropTypes.shape({
1163
1164
  enabled: PropTypes.bool,
1164
- preview: PropTypes.bool,
1165
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
1165
1166
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1166
1167
  size: PropTypes.number
1167
1168
  }),
@@ -1222,7 +1223,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1222
1223
  panning: PropTypes.bool,
1223
1224
  slider: PropTypes.shape({
1224
1225
  enabled: PropTypes.bool,
1225
- preview: PropTypes.bool,
1226
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
1226
1227
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1227
1228
  size: PropTypes.number
1228
1229
  }),
@@ -1282,7 +1283,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1282
1283
  panning: PropTypes.bool,
1283
1284
  slider: PropTypes.shape({
1284
1285
  enabled: PropTypes.bool,
1285
- preview: PropTypes.bool,
1286
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
1286
1287
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1287
1288
  size: PropTypes.number
1288
1289
  }),
@@ -1342,7 +1343,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1342
1343
  panning: PropTypes.bool,
1343
1344
  slider: PropTypes.shape({
1344
1345
  enabled: PropTypes.bool,
1345
- preview: PropTypes.bool,
1346
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
1346
1347
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1347
1348
  size: PropTypes.number
1348
1349
  }),
@@ -1406,7 +1407,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1406
1407
  panning: PropTypes.bool,
1407
1408
  slider: PropTypes.shape({
1408
1409
  enabled: PropTypes.bool,
1409
- preview: PropTypes.bool,
1410
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
1410
1411
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1411
1412
  size: PropTypes.number
1412
1413
  }),
@@ -1470,7 +1471,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1470
1471
  panning: PropTypes.bool,
1471
1472
  slider: PropTypes.shape({
1472
1473
  enabled: PropTypes.bool,
1473
- preview: PropTypes.bool,
1474
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
1474
1475
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1475
1476
  size: PropTypes.number
1476
1477
  }),
@@ -1530,7 +1531,7 @@ process.env.NODE_ENV !== "production" ? CandlestickChart.propTypes = {
1530
1531
  panning: PropTypes.bool,
1531
1532
  slider: PropTypes.shape({
1532
1533
  enabled: PropTypes.bool,
1533
- preview: PropTypes.bool,
1534
+ preview: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
1534
1535
  showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1535
1536
  size: PropTypes.number
1536
1537
  }),
@@ -23,7 +23,14 @@ function CandlestickWebGLPlot() {
23
23
  const gl = (0, _ChartsWebGLLayer.useWebGLContext)();
24
24
  const series = (0, _useOHLCSeries.useOHLCSeriesContext)();
25
25
  const seriesToDisplay = series?.series[series.seriesOrder[0]];
26
- if (!gl || !seriesToDisplay) {
26
+ const isHidden = !seriesToDisplay || seriesToDisplay.hidden;
27
+ React.useEffect(() => {
28
+ if (gl && isHidden) {
29
+ gl.clearColor(0, 0, 0, 0);
30
+ gl.clear(gl.COLOR_BUFFER_BIT);
31
+ }
32
+ }, [gl, isHidden]);
33
+ if (!gl || isHidden) {
27
34
  return null;
28
35
  }
29
36
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(CandlestickWebGLPlotImpl, {
@@ -17,7 +17,14 @@ function CandlestickWebGLPlot() {
17
17
  const gl = useWebGLContext();
18
18
  const series = useOHLCSeriesContext();
19
19
  const seriesToDisplay = series?.series[series.seriesOrder[0]];
20
- if (!gl || !seriesToDisplay) {
20
+ const isHidden = !seriesToDisplay || seriesToDisplay.hidden;
21
+ React.useEffect(() => {
22
+ if (gl && isHidden) {
23
+ gl.clearColor(0, 0, 0, 0);
24
+ gl.clear(gl.COLOR_BUFFER_BIT);
25
+ }
26
+ }, [gl, isHidden]);
27
+ if (!gl || isHidden) {
21
28
  return null;
22
29
  }
23
30
  return /*#__PURE__*/_jsx(CandlestickWebGLPlotImpl, {
@@ -12,6 +12,7 @@ var _ChartsTooltip = require("@mui/x-charts/ChartsTooltip");
12
12
  var _hooks = require("@mui/x-charts/hooks");
13
13
  var _internals = require("@mui/x-charts/internals");
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
+ const OHLC_FIELDS = ['open', 'high', 'low', 'close'];
15
16
  function OHLCTooltipContent(props) {
16
17
  const {
17
18
  item
@@ -31,52 +32,22 @@ function OHLCTooltipContent(props) {
31
32
  if (item.value == null) {
32
33
  return null;
33
34
  }
34
- const [open, high, low, close] = item.value;
35
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
36
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsTooltip.ChartsTooltipRow, {
37
- className: classes.row,
38
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltipCell, {
39
- className: (0, _clsx.default)(classes.labelCell, classes.cell),
40
- component: "th",
41
- children: localeText.open
42
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltipCell, {
43
- className: (0, _clsx.default)(classes.valueCell, classes.cell),
44
- component: "td",
45
- children: open
46
- })]
47
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsTooltip.ChartsTooltipRow, {
48
- className: classes.row,
49
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltipCell, {
50
- className: (0, _clsx.default)(classes.labelCell, classes.cell),
51
- component: "th",
52
- children: localeText.high
53
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltipCell, {
54
- className: (0, _clsx.default)(classes.valueCell, classes.cell),
55
- component: "td",
56
- children: high
57
- })]
58
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsTooltip.ChartsTooltipRow, {
59
- className: classes.row,
60
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltipCell, {
61
- className: (0, _clsx.default)(classes.labelCell, classes.cell),
62
- component: "th",
63
- children: localeText.low
64
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltipCell, {
65
- className: (0, _clsx.default)(classes.valueCell, classes.cell),
66
- component: "td",
67
- children: low
68
- })]
69
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsTooltip.ChartsTooltipRow, {
35
+ const {
36
+ value,
37
+ formattedValue
38
+ } = item;
39
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
40
+ children: OHLC_FIELDS.map(field => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsTooltip.ChartsTooltipRow, {
70
41
  className: classes.row,
71
42
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltipCell, {
72
43
  className: (0, _clsx.default)(classes.labelCell, classes.cell),
73
44
  component: "th",
74
- children: localeText.close
45
+ children: localeText[field]
75
46
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltipCell, {
76
47
  className: (0, _clsx.default)(classes.valueCell, classes.cell),
77
48
  component: "td",
78
- children: close
49
+ children: formattedValue[field] ?? value[field]
79
50
  })]
80
- })]
51
+ }, field))
81
52
  });
82
53
  }
@@ -4,6 +4,7 @@ import { ChartsTooltipCell, ChartsTooltipRow } from '@mui/x-charts/ChartsTooltip
4
4
  import { useChartsLocalization } from '@mui/x-charts/hooks';
5
5
  import { useChartsTooltipUtilityClasses } from '@mui/x-charts/internals';
6
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const OHLC_FIELDS = ['open', 'high', 'low', 'close'];
7
8
  export function OHLCTooltipContent(props) {
8
9
  const {
9
10
  item
@@ -23,52 +24,22 @@ export function OHLCTooltipContent(props) {
23
24
  if (item.value == null) {
24
25
  return null;
25
26
  }
26
- const [open, high, low, close] = item.value;
27
- return /*#__PURE__*/_jsxs(React.Fragment, {
28
- children: [/*#__PURE__*/_jsxs(ChartsTooltipRow, {
29
- className: classes.row,
30
- children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
31
- className: clsx(classes.labelCell, classes.cell),
32
- component: "th",
33
- children: localeText.open
34
- }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
35
- className: clsx(classes.valueCell, classes.cell),
36
- component: "td",
37
- children: open
38
- })]
39
- }), /*#__PURE__*/_jsxs(ChartsTooltipRow, {
40
- className: classes.row,
41
- children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
42
- className: clsx(classes.labelCell, classes.cell),
43
- component: "th",
44
- children: localeText.high
45
- }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
46
- className: clsx(classes.valueCell, classes.cell),
47
- component: "td",
48
- children: high
49
- })]
50
- }), /*#__PURE__*/_jsxs(ChartsTooltipRow, {
51
- className: classes.row,
52
- children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
53
- className: clsx(classes.labelCell, classes.cell),
54
- component: "th",
55
- children: localeText.low
56
- }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
57
- className: clsx(classes.valueCell, classes.cell),
58
- component: "td",
59
- children: low
60
- })]
61
- }), /*#__PURE__*/_jsxs(ChartsTooltipRow, {
27
+ const {
28
+ value,
29
+ formattedValue
30
+ } = item;
31
+ return /*#__PURE__*/_jsx(React.Fragment, {
32
+ children: OHLC_FIELDS.map(field => /*#__PURE__*/_jsxs(ChartsTooltipRow, {
62
33
  className: classes.row,
63
34
  children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
64
35
  className: clsx(classes.labelCell, classes.cell),
65
36
  component: "th",
66
- children: localeText.close
37
+ children: localeText[field]
67
38
  }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
68
39
  className: clsx(classes.valueCell, classes.cell),
69
40
  component: "td",
70
- children: close
41
+ children: formattedValue[field] ?? value[field]
71
42
  })]
72
- })]
43
+ }, field))
73
44
  });
74
45
  }
@@ -19,11 +19,30 @@ const descriptionGetter = params => {
19
19
  location: 'tooltip',
20
20
  scale: xAxis.scale
21
21
  }) ?? '';
22
+ const {
23
+ dataIndex
24
+ } = identifier;
22
25
  return localeText.ohlcDescription({
23
26
  open: value?.[0] ?? null,
24
27
  high: value?.[1] ?? null,
25
28
  low: value?.[2] ?? null,
26
29
  close: value?.[3] ?? null,
30
+ formattedOpen: value ? series.valueFormatter(value[0], {
31
+ dataIndex,
32
+ field: 'open'
33
+ }) : null,
34
+ formattedHigh: value ? series.valueFormatter(value[1], {
35
+ dataIndex,
36
+ field: 'high'
37
+ }) : null,
38
+ formattedLow: value ? series.valueFormatter(value[2], {
39
+ dataIndex,
40
+ field: 'low'
41
+ }) : null,
42
+ formattedClose: value ? series.valueFormatter(value[3], {
43
+ dataIndex,
44
+ field: 'close'
45
+ }) : null,
27
46
  date,
28
47
  formattedDate,
29
48
  seriesLabel: label
@@ -13,11 +13,30 @@ const descriptionGetter = params => {
13
13
  location: 'tooltip',
14
14
  scale: xAxis.scale
15
15
  }) ?? '';
16
+ const {
17
+ dataIndex
18
+ } = identifier;
16
19
  return localeText.ohlcDescription({
17
20
  open: value?.[0] ?? null,
18
21
  high: value?.[1] ?? null,
19
22
  low: value?.[2] ?? null,
20
23
  close: value?.[3] ?? null,
24
+ formattedOpen: value ? series.valueFormatter(value[0], {
25
+ dataIndex,
26
+ field: 'open'
27
+ }) : null,
28
+ formattedHigh: value ? series.valueFormatter(value[1], {
29
+ dataIndex,
30
+ field: 'high'
31
+ }) : null,
32
+ formattedLow: value ? series.valueFormatter(value[2], {
33
+ dataIndex,
34
+ field: 'low'
35
+ }) : null,
36
+ formattedClose: value ? series.valueFormatter(value[3], {
37
+ dataIndex,
38
+ field: 'close'
39
+ }) : null,
21
40
  date,
22
41
  formattedDate,
23
42
  seriesLabel: label
@@ -28,15 +28,32 @@ const getColor = (series, xAxis) => {
28
28
  return color;
29
29
  };
30
30
  }
31
+ if (series.colorGetter) {
32
+ return dataIndex => {
33
+ if (dataIndex === undefined) {
34
+ return series.color;
35
+ }
36
+ const value = series.data[dataIndex];
37
+ return getSeriesColor({
38
+ value,
39
+ dataIndex
40
+ });
41
+ };
42
+ }
43
+ const {
44
+ upColor,
45
+ downColor
46
+ } = series;
31
47
  return dataIndex => {
32
48
  if (dataIndex === undefined) {
33
49
  return series.color;
34
50
  }
35
51
  const value = series.data[dataIndex];
36
- return getSeriesColor({
37
- value,
38
- dataIndex
39
- });
52
+ if (value === null) {
53
+ return series.color;
54
+ }
55
+ const [open,,, close] = value;
56
+ return close >= open ? upColor : downColor;
40
57
  };
41
58
  };
42
59
  var _default = exports.default = getColor;
@@ -22,15 +22,32 @@ const getColor = (series, xAxis) => {
22
22
  return color;
23
23
  };
24
24
  }
25
+ if (series.colorGetter) {
26
+ return dataIndex => {
27
+ if (dataIndex === undefined) {
28
+ return series.color;
29
+ }
30
+ const value = series.data[dataIndex];
31
+ return getSeriesColor({
32
+ value,
33
+ dataIndex
34
+ });
35
+ };
36
+ }
37
+ const {
38
+ upColor,
39
+ downColor
40
+ } = series;
25
41
  return dataIndex => {
26
42
  if (dataIndex === undefined) {
27
43
  return series.color;
28
44
  }
29
45
  const value = series.data[dataIndex];
30
- return getSeriesColor({
31
- value,
32
- dataIndex
33
- });
46
+ if (value === null) {
47
+ return series.color;
48
+ }
49
+ const [open,,, close] = value;
50
+ return close >= open ? upColor : downColor;
34
51
  };
35
52
  };
36
53
  export default getColor;