@mui/x-charts 9.3.0 → 9.5.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 (264) hide show
  1. package/BarChart/BarElement.d.mts +3 -2
  2. package/BarChart/BarElement.d.ts +3 -2
  3. package/BarChart/BarLabel/BarLabelItem.d.mts +3 -2
  4. package/BarChart/BarLabel/BarLabelItem.d.ts +3 -2
  5. package/BarChart/seriesConfig/bar/extremums.js +7 -2
  6. package/BarChart/seriesConfig/bar/extremums.mjs +7 -2
  7. package/CHANGELOG.md +296 -0
  8. package/ChartsContainer/ChartsContainer.js +21 -0
  9. package/ChartsContainer/ChartsContainer.mjs +21 -0
  10. package/ChartsLabel/ChartsLabelMark.js +1 -21
  11. package/ChartsLabel/ChartsLabelMark.mjs +0 -20
  12. package/ChartsLegend/chartsLegend.types.d.mts +3 -2
  13. package/ChartsLegend/chartsLegend.types.d.ts +3 -2
  14. package/ChartsLegend/piecewiseColorLegendClasses.js +8 -2
  15. package/ChartsLegend/piecewiseColorLegendClasses.mjs +8 -2
  16. package/ChartsOverlay/ChartsOverlay.d.mts +5 -4
  17. package/ChartsOverlay/ChartsOverlay.d.ts +5 -4
  18. package/ChartsRadialAxisHighlight/index.d.mts +6 -1
  19. package/ChartsRadialAxisHighlight/index.d.ts +6 -1
  20. package/ChartsRadialAxisHighlight/index.js +9 -2
  21. package/ChartsRadialAxisHighlight/index.mjs +8 -1
  22. package/ChartsRadialDataProvider/ChartsRadialDataProvider.d.mts +1 -1
  23. package/ChartsRadialDataProvider/ChartsRadialDataProvider.d.ts +1 -1
  24. package/ChartsRadialDataProvider/ChartsRadialDataProvider.js +1 -1
  25. package/ChartsRadialDataProvider/ChartsRadialDataProvider.mjs +1 -1
  26. package/ChartsRadialDataProvider/index.d.mts +5 -0
  27. package/ChartsRadialDataProvider/index.d.ts +5 -0
  28. package/ChartsRadialDataProvider/index.js +12 -1
  29. package/ChartsRadialDataProvider/index.mjs +7 -0
  30. package/ChartsRadialGrid/index.d.mts +6 -1
  31. package/ChartsRadialGrid/index.d.ts +6 -1
  32. package/ChartsRadialGrid/index.js +8 -2
  33. package/ChartsRadialGrid/index.mjs +8 -1
  34. package/ChartsRadiusAxis/index.d.mts +6 -1
  35. package/ChartsRadiusAxis/index.d.ts +6 -1
  36. package/ChartsRadiusAxis/index.js +10 -2
  37. package/ChartsRadiusAxis/index.mjs +7 -1
  38. package/ChartsReferenceLine/ChartsXReferenceLine.js +6 -1
  39. package/ChartsReferenceLine/ChartsXReferenceLine.mjs +6 -1
  40. package/ChartsReferenceLine/ChartsYReferenceLine.js +5 -0
  41. package/ChartsReferenceLine/ChartsYReferenceLine.mjs +5 -0
  42. package/ChartsRotationAxis/index.d.mts +6 -1
  43. package/ChartsRotationAxis/index.d.ts +6 -1
  44. package/ChartsRotationAxis/index.js +10 -2
  45. package/ChartsRotationAxis/index.mjs +7 -1
  46. package/ChartsTooltip/ChartTooltip.types.d.mts +3 -2
  47. package/ChartsTooltip/ChartTooltip.types.d.ts +3 -2
  48. package/ChartsTooltip/ChartsTooltipContainer.js +11 -4
  49. package/ChartsTooltip/ChartsTooltipContainer.mjs +11 -4
  50. package/ChartsTooltip/useAxesTooltip.js +2 -2
  51. package/ChartsTooltip/useAxesTooltip.mjs +2 -2
  52. package/ChartsTooltip/useItemTooltip.js +2 -2
  53. package/ChartsTooltip/useItemTooltip.mjs +2 -2
  54. package/ChartsXAxis/useAxisTicksProps.d.mts +84 -3
  55. package/ChartsXAxis/useAxisTicksProps.d.ts +84 -3
  56. package/ChartsYAxis/useAxisTicksProps.d.mts +84 -3
  57. package/ChartsYAxis/useAxisTicksProps.d.ts +84 -3
  58. package/LineChart/AreaElement.d.mts +3 -2
  59. package/LineChart/AreaElement.d.ts +3 -2
  60. package/LineChart/AreaElement.js +1 -1
  61. package/LineChart/AreaElement.mjs +1 -1
  62. package/LineChart/CircleMarkElement.js +1 -1
  63. package/LineChart/CircleMarkElement.mjs +1 -1
  64. package/LineChart/LineElement.d.mts +3 -2
  65. package/LineChart/LineElement.d.ts +3 -2
  66. package/LineChart/LineElement.js +1 -1
  67. package/LineChart/LineElement.mjs +1 -1
  68. package/LineChart/LineHighlightPlot.d.mts +3 -2
  69. package/LineChart/LineHighlightPlot.d.ts +3 -2
  70. package/LineChart/LineHighlightPlot.js +65 -45
  71. package/LineChart/LineHighlightPlot.mjs +65 -45
  72. package/LineChart/MarkElement.js +1 -1
  73. package/LineChart/MarkElement.mjs +1 -1
  74. package/LineChart/MarkPlot.d.mts +3 -2
  75. package/LineChart/MarkPlot.d.ts +3 -2
  76. package/LineChart/seriesConfig/curveEvaluation.js +28 -14
  77. package/LineChart/seriesConfig/curveEvaluation.mjs +27 -14
  78. package/LineChart/seriesConfig/extremums.js +5 -1
  79. package/LineChart/seriesConfig/extremums.mjs +5 -1
  80. package/LineChart/useMarkPlotData.js +3 -1
  81. package/LineChart/useMarkPlotData.mjs +3 -1
  82. package/PieChart/PieArcLabelPlot.d.mts +3 -2
  83. package/PieChart/PieArcLabelPlot.d.ts +3 -2
  84. package/PieChart/PieArcPlot.d.mts +3 -2
  85. package/PieChart/PieArcPlot.d.ts +3 -2
  86. package/RadarChart/RadarAxis/RadarAxis.utils.d.mts +2 -2
  87. package/RadarChart/RadarAxis/RadarAxis.utils.d.ts +2 -2
  88. package/ScatterChart/BatchScatter.d.mts +2 -8
  89. package/ScatterChart/BatchScatter.d.ts +2 -8
  90. package/ScatterChart/BatchScatter.js +17 -12
  91. package/ScatterChart/BatchScatter.mjs +17 -12
  92. package/ScatterChart/FocusedScatterMark.js +2 -2
  93. package/ScatterChart/FocusedScatterMark.mjs +2 -2
  94. package/ScatterChart/HighlightedScatterMark.js +3 -3
  95. package/ScatterChart/HighlightedScatterMark.mjs +3 -3
  96. package/ScatterChart/Scatter.d.mts +5 -0
  97. package/ScatterChart/Scatter.d.ts +5 -0
  98. package/ScatterChart/Scatter.js +7 -2
  99. package/ScatterChart/Scatter.mjs +7 -2
  100. package/ScatterChart/ScatterChart.d.mts +2 -1
  101. package/ScatterChart/ScatterChart.d.ts +2 -1
  102. package/ScatterChart/ScatterChart.js +28 -3
  103. package/ScatterChart/ScatterChart.mjs +28 -3
  104. package/ScatterChart/ScatterChart.plugins.d.mts +2 -1
  105. package/ScatterChart/ScatterChart.plugins.d.ts +2 -1
  106. package/ScatterChart/ScatterChart.plugins.js +2 -1
  107. package/ScatterChart/ScatterChart.plugins.mjs +2 -1
  108. package/ScatterChart/ScatterMarker.types.d.mts +3 -2
  109. package/ScatterChart/ScatterMarker.types.d.ts +3 -2
  110. package/ScatterChart/ScatterPlot.d.mts +7 -4
  111. package/ScatterChart/ScatterPlot.d.ts +7 -4
  112. package/ScatterChart/ScatterPlot.js +31 -4
  113. package/ScatterChart/ScatterPlot.mjs +31 -4
  114. package/ScatterChart/async/ScatterAsync.d.mts +9 -0
  115. package/ScatterChart/async/ScatterAsync.d.ts +9 -0
  116. package/ScatterChart/async/ScatterAsync.js +71 -0
  117. package/ScatterChart/async/ScatterAsync.mjs +67 -0
  118. package/ScatterChart/async/ScatterAsyncBatch.d.mts +24 -0
  119. package/ScatterChart/async/ScatterAsyncBatch.d.ts +24 -0
  120. package/ScatterChart/async/ScatterAsyncBatch.js +112 -0
  121. package/ScatterChart/async/ScatterAsyncBatch.mjs +106 -0
  122. package/ScatterChart/async/scatterRenderData.selectors.d.mts +38 -0
  123. package/ScatterChart/async/scatterRenderData.selectors.d.ts +38 -0
  124. package/ScatterChart/async/scatterRenderData.selectors.js +93 -0
  125. package/ScatterChart/async/scatterRenderData.selectors.mjs +87 -0
  126. package/ScatterChart/seriesConfig/extremums.js +6 -0
  127. package/ScatterChart/seriesConfig/extremums.mjs +6 -0
  128. package/ScatterChart/seriesConfig/getColor.js +1 -1
  129. package/ScatterChart/seriesConfig/getColor.mjs +1 -1
  130. package/ScatterChart/seriesConfig/getMarkerSize.d.mts +18 -0
  131. package/ScatterChart/seriesConfig/getMarkerSize.d.ts +18 -0
  132. package/ScatterChart/seriesConfig/getMarkerSize.js +43 -0
  133. package/ScatterChart/seriesConfig/getMarkerSize.mjs +37 -0
  134. package/ScatterChart/seriesConfig/seriesProcessor.js +23 -8
  135. package/ScatterChart/seriesConfig/seriesProcessor.mjs +23 -8
  136. package/ScatterChart/useScatterItemPosition.d.mts +4 -0
  137. package/ScatterChart/useScatterItemPosition.d.ts +4 -0
  138. package/ScatterChart/useScatterItemPosition.js +9 -0
  139. package/ScatterChart/useScatterItemPosition.mjs +8 -0
  140. package/SparkLineChart/SparkLineChart.js +2 -1
  141. package/SparkLineChart/SparkLineChart.mjs +2 -1
  142. package/Toolbar/Toolbar.types.d.mts +3 -2
  143. package/Toolbar/Toolbar.types.d.ts +3 -2
  144. package/index.js +1 -1
  145. package/index.mjs +1 -1
  146. package/internals/animation/animation.d.mts +1 -2
  147. package/internals/animation/animation.d.ts +1 -2
  148. package/internals/commonNextFocusItem.d.mts +10 -2
  149. package/internals/commonNextFocusItem.d.ts +10 -2
  150. package/internals/commonNextFocusItem.js +12 -4
  151. package/internals/commonNextFocusItem.mjs +12 -4
  152. package/internals/createCommonKeyboardFocusHandler.d.mts +1 -1
  153. package/internals/createCommonKeyboardFocusHandler.d.ts +1 -1
  154. package/internals/createCommonKeyboardFocusHandler.js +3 -3
  155. package/internals/createCommonKeyboardFocusHandler.mjs +3 -3
  156. package/internals/getSeriesColorFn.d.mts +5 -5
  157. package/internals/getSeriesColorFn.d.ts +5 -5
  158. package/internals/incompleteDatasetKeysError.d.mts +1 -0
  159. package/internals/incompleteDatasetKeysError.d.ts +1 -0
  160. package/internals/incompleteDatasetKeysError.js +11 -0
  161. package/internals/incompleteDatasetKeysError.mjs +4 -0
  162. package/internals/index.d.mts +3 -0
  163. package/internals/index.d.ts +3 -0
  164. package/internals/index.js +36 -0
  165. package/internals/index.mjs +3 -0
  166. package/internals/plugins/allPlugins.d.mts +4 -3
  167. package/internals/plugins/allPlugins.d.ts +4 -3
  168. package/internals/plugins/allPlugins.js +2 -1
  169. package/internals/plugins/allPlugins.mjs +2 -1
  170. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.mts +12 -3
  171. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.d.ts +12 -3
  172. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.js +10 -1
  173. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.selectors.mjs +10 -1
  174. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.mts +15 -1
  175. package/internals/plugins/corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.d.ts +15 -1
  176. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.js +3 -2
  177. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.mjs +4 -3
  178. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js +2 -2
  179. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.mjs +3 -3
  180. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.mts +10 -1
  181. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +10 -1
  182. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +18 -1
  183. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.mjs +16 -0
  184. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisScale.js +27 -2
  185. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisScale.mjs +27 -2
  186. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +1 -3
  187. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.mjs +1 -3
  188. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.mts +11 -3
  189. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +11 -3
  190. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +24 -5
  191. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.mjs +24 -5
  192. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.d.mts +1 -1
  193. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.d.ts +1 -1
  194. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.js +46 -2
  195. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.mjs +47 -2
  196. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.js +46 -11
  197. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.mjs +46 -11
  198. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.types.d.mts +2 -1
  199. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.types.d.ts +2 -1
  200. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.js +3 -2
  201. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.mjs +3 -2
  202. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.mts +4 -0
  203. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.ts +4 -0
  204. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.js +3 -1
  205. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.mjs +1 -0
  206. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +5 -3
  207. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.mjs +7 -5
  208. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.js +17 -3
  209. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.mjs +17 -3
  210. package/internals/plugins/featurePlugins/useProgressiveRendering/index.d.mts +3 -0
  211. package/internals/plugins/featurePlugins/useProgressiveRendering/index.d.ts +3 -0
  212. package/internals/plugins/featurePlugins/useProgressiveRendering/index.js +27 -0
  213. package/internals/plugins/featurePlugins/useProgressiveRendering/index.mjs +2 -0
  214. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.d.mts +13 -0
  215. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.d.ts +13 -0
  216. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.js +136 -0
  217. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.mjs +128 -0
  218. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.selectors.d.mts +42 -0
  219. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.selectors.d.ts +42 -0
  220. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.selectors.js +166 -0
  221. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.selectors.mjs +159 -0
  222. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.types.d.mts +34 -0
  223. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.types.d.ts +34 -0
  224. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.types.js +5 -0
  225. package/internals/plugins/featurePlugins/useProgressiveRendering/useProgressiveRendering.types.mjs +1 -0
  226. package/internals/scales/scaleBand.js +70 -43
  227. package/internals/scales/scaleBand.mjs +71 -44
  228. package/internals/sizeScale.d.mts +6 -0
  229. package/internals/sizeScale.d.ts +6 -0
  230. package/internals/sizeScale.js +46 -0
  231. package/internals/sizeScale.mjs +38 -0
  232. package/models/axis.d.mts +18 -12
  233. package/models/axis.d.ts +18 -12
  234. package/models/chartsSlotsComponentsProps.d.mts +25 -0
  235. package/models/chartsSlotsComponentsProps.d.ts +25 -0
  236. package/models/chartsSlotsComponentsProps.js +5 -0
  237. package/models/chartsSlotsComponentsProps.mjs +1 -0
  238. package/models/index.d.mts +1 -0
  239. package/models/index.d.ts +1 -0
  240. package/models/index.js +11 -0
  241. package/models/index.mjs +1 -0
  242. package/models/seriesType/bar.d.mts +1 -1
  243. package/models/seriesType/bar.d.ts +1 -1
  244. package/models/seriesType/common.d.mts +4 -4
  245. package/models/seriesType/common.d.ts +4 -4
  246. package/models/seriesType/config.d.mts +3 -3
  247. package/models/seriesType/config.d.ts +3 -3
  248. package/models/seriesType/line.d.mts +6 -3
  249. package/models/seriesType/line.d.ts +6 -3
  250. package/models/seriesType/pie.d.mts +1 -1
  251. package/models/seriesType/pie.d.ts +1 -1
  252. package/models/seriesType/radar.d.mts +1 -1
  253. package/models/seriesType/radar.d.ts +1 -1
  254. package/models/seriesType/scatter.d.mts +35 -3
  255. package/models/seriesType/scatter.d.ts +35 -3
  256. package/models/sizeMapping.d.mts +64 -0
  257. package/models/sizeMapping.d.ts +64 -0
  258. package/models/sizeMapping.js +5 -0
  259. package/models/sizeMapping.mjs +1 -0
  260. package/models/slots/chartsBaseSlots.d.mts +6 -5
  261. package/models/slots/chartsBaseSlots.d.ts +6 -5
  262. package/models/z-axis.d.mts +10 -1
  263. package/models/z-axis.d.ts +10 -1
  264. package/package.json +5 -5
@@ -541,6 +541,18 @@ Object.keys(_useChartItemClick).forEach(function (key) {
541
541
  }
542
542
  });
543
543
  });
544
+ var _useProgressiveRendering = require("./plugins/featurePlugins/useProgressiveRendering");
545
+ Object.keys(_useProgressiveRendering).forEach(function (key) {
546
+ if (key === "default" || key === "__esModule") return;
547
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
548
+ if (key in exports && exports[key] === _useProgressiveRendering[key]) return;
549
+ Object.defineProperty(exports, key, {
550
+ enumerable: true,
551
+ get: function () {
552
+ return _useProgressiveRendering[key];
553
+ }
554
+ });
555
+ });
544
556
  var _selectors = require("./plugins/utils/selectors");
545
557
  Object.keys(_selectors).forEach(function (key) {
546
558
  if (key === "default" || key === "__esModule") return;
@@ -832,6 +844,30 @@ Object.keys(_colorScale).forEach(function (key) {
832
844
  }
833
845
  });
834
846
  });
847
+ var _sizeScale = require("./sizeScale");
848
+ Object.keys(_sizeScale).forEach(function (key) {
849
+ if (key === "default" || key === "__esModule") return;
850
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
851
+ if (key in exports && exports[key] === _sizeScale[key]) return;
852
+ Object.defineProperty(exports, key, {
853
+ enumerable: true,
854
+ get: function () {
855
+ return _sizeScale[key];
856
+ }
857
+ });
858
+ });
859
+ var _incompleteDatasetKeysError = require("./incompleteDatasetKeysError");
860
+ Object.keys(_incompleteDatasetKeysError).forEach(function (key) {
861
+ if (key === "default" || key === "__esModule") return;
862
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
863
+ if (key in exports && exports[key] === _incompleteDatasetKeysError[key]) return;
864
+ Object.defineProperty(exports, key, {
865
+ enumerable: true,
866
+ get: function () {
867
+ return _incompleteDatasetKeysError[key];
868
+ }
869
+ });
870
+ });
835
871
  var _ticks = require("./ticks");
836
872
  Object.keys(_ticks).forEach(function (key) {
837
873
  if (key === "default" || key === "__esModule") return;
@@ -42,6 +42,7 @@ export * from "./plugins/featurePlugins/useChartKeyboardNavigation/index.mjs";
42
42
  export * from "./plugins/featurePlugins/useChartClosestPoint/index.mjs";
43
43
  export * from "./plugins/featurePlugins/useChartBrush/index.mjs";
44
44
  export * from "./plugins/featurePlugins/useChartItemClick/index.mjs";
45
+ export * from "./plugins/featurePlugins/useProgressiveRendering/index.mjs";
45
46
  export * from "./plugins/utils/selectors.mjs";
46
47
  export { getAxisTriggerTooltip as getCartesianAxisTriggerTooltip } from "./plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.mjs";
47
48
  export { getAxisIndex as getCartesianAxisIndex } from "./plugins/featurePlugins/useChartCartesianAxis/getAxisValue.mjs";
@@ -73,6 +74,8 @@ export * from "./consumeSlots.mjs";
73
74
  export * from "./consumeThemeProps.mjs";
74
75
  export * from "./defaultizeMargin.mjs";
75
76
  export * from "./colorScale.mjs";
77
+ export * from "./sizeScale.mjs";
78
+ export * from "./incompleteDatasetKeysError.mjs";
76
79
  export * from "./ticks.mjs";
77
80
  export * from "./dateHelpers.mjs";
78
81
  export * from "./invertScale.mjs";
@@ -9,6 +9,7 @@ import { type UseChartZAxisSignature } from "./featurePlugins/useChartZAxis/inde
9
9
  import { type UseChartBrushSignature } from "./featurePlugins/useChartBrush/index.mjs";
10
10
  import { type UseChartVisibilityManagerSignature } from "./featurePlugins/useChartVisibilityManager/index.mjs";
11
11
  import { type UseChartTooltipSignature } from "./featurePlugins/useChartTooltip/index.mjs";
12
- export type AllPluginSignatures<SeriesType extends ChartSeriesType = ChartSeriesType> = [UseChartZAxisSignature, UseChartBrushSignature, UseChartCartesianAxisSignature<SeriesType>, UseChartPolarAxisSignature, UseChartTooltipSignature<SeriesType>, UseChartInteractionSignature, UseChartHighlightSignature<SeriesType>, UseChartVisibilityManagerSignature<SeriesType>, UseChartClosestPointSignature, UseChartKeyboardNavigationSignature];
13
- export type DefaultPluginSignatures<SeriesType extends ChartSeriesType = ChartSeriesType> = [UseChartZAxisSignature, UseChartBrushSignature, UseChartTooltipSignature<SeriesType>, UseChartInteractionSignature, UseChartCartesianAxisSignature<SeriesType>, UseChartHighlightSignature<SeriesType>, UseChartVisibilityManagerSignature<SeriesType>, UseChartClosestPointSignature, UseChartKeyboardNavigationSignature];
14
- export declare const DEFAULT_PLUGINS: readonly [import("./models/index.mjs").ChartPlugin<UseChartZAxisSignature>, import("./models/index.mjs").ChartPlugin<UseChartBrushSignature>, import("./models/index.mjs").ChartPlugin<UseChartTooltipSignature<any>>, import("./models/index.mjs").ChartPlugin<UseChartInteractionSignature>, import("./models/index.mjs").ChartPlugin<UseChartCartesianAxisSignature<any>>, import("./models/index.mjs").ChartPlugin<UseChartHighlightSignature<any>>, import("./models/index.mjs").ChartPlugin<UseChartVisibilityManagerSignature<any>>, import("./models/index.mjs").ChartPlugin<UseChartClosestPointSignature>, import("./models/index.mjs").ChartPlugin<UseChartKeyboardNavigationSignature>];
12
+ import { type UseProgressiveRenderingSignature } from "./featurePlugins/useProgressiveRendering/index.mjs";
13
+ export type AllPluginSignatures<SeriesType extends ChartSeriesType = ChartSeriesType> = [UseChartZAxisSignature, UseChartBrushSignature, UseChartCartesianAxisSignature<SeriesType>, UseChartPolarAxisSignature, UseChartTooltipSignature<SeriesType>, UseChartInteractionSignature, UseChartHighlightSignature<SeriesType>, UseChartVisibilityManagerSignature<SeriesType>, UseChartClosestPointSignature, UseChartKeyboardNavigationSignature, UseProgressiveRenderingSignature];
14
+ export type DefaultPluginSignatures<SeriesType extends ChartSeriesType = ChartSeriesType> = [UseChartZAxisSignature, UseChartBrushSignature, UseChartTooltipSignature<SeriesType>, UseChartInteractionSignature, UseChartCartesianAxisSignature<SeriesType>, UseChartHighlightSignature<SeriesType>, UseChartVisibilityManagerSignature<SeriesType>, UseChartClosestPointSignature, UseChartKeyboardNavigationSignature, UseProgressiveRenderingSignature];
15
+ export declare const DEFAULT_PLUGINS: readonly [import("./models/index.mjs").ChartPlugin<UseChartZAxisSignature>, import("./models/index.mjs").ChartPlugin<UseChartBrushSignature>, import("./models/index.mjs").ChartPlugin<UseChartTooltipSignature<any>>, import("./models/index.mjs").ChartPlugin<UseChartInteractionSignature>, import("./models/index.mjs").ChartPlugin<UseChartCartesianAxisSignature<any>>, import("./models/index.mjs").ChartPlugin<UseChartHighlightSignature<any>>, import("./models/index.mjs").ChartPlugin<UseChartVisibilityManagerSignature<any>>, import("./models/index.mjs").ChartPlugin<UseChartClosestPointSignature>, import("./models/index.mjs").ChartPlugin<UseChartKeyboardNavigationSignature>, import("./models/index.mjs").ChartPlugin<UseProgressiveRenderingSignature>];
@@ -9,6 +9,7 @@ import { type UseChartZAxisSignature } from "./featurePlugins/useChartZAxis/inde
9
9
  import { type UseChartBrushSignature } from "./featurePlugins/useChartBrush/index.js";
10
10
  import { type UseChartVisibilityManagerSignature } from "./featurePlugins/useChartVisibilityManager/index.js";
11
11
  import { type UseChartTooltipSignature } from "./featurePlugins/useChartTooltip/index.js";
12
- export type AllPluginSignatures<SeriesType extends ChartSeriesType = ChartSeriesType> = [UseChartZAxisSignature, UseChartBrushSignature, UseChartCartesianAxisSignature<SeriesType>, UseChartPolarAxisSignature, UseChartTooltipSignature<SeriesType>, UseChartInteractionSignature, UseChartHighlightSignature<SeriesType>, UseChartVisibilityManagerSignature<SeriesType>, UseChartClosestPointSignature, UseChartKeyboardNavigationSignature];
13
- export type DefaultPluginSignatures<SeriesType extends ChartSeriesType = ChartSeriesType> = [UseChartZAxisSignature, UseChartBrushSignature, UseChartTooltipSignature<SeriesType>, UseChartInteractionSignature, UseChartCartesianAxisSignature<SeriesType>, UseChartHighlightSignature<SeriesType>, UseChartVisibilityManagerSignature<SeriesType>, UseChartClosestPointSignature, UseChartKeyboardNavigationSignature];
14
- export declare const DEFAULT_PLUGINS: readonly [import("./models/index.js").ChartPlugin<UseChartZAxisSignature>, import("./models/index.js").ChartPlugin<UseChartBrushSignature>, import("./models/index.js").ChartPlugin<UseChartTooltipSignature<any>>, import("./models/index.js").ChartPlugin<UseChartInteractionSignature>, import("./models/index.js").ChartPlugin<UseChartCartesianAxisSignature<any>>, import("./models/index.js").ChartPlugin<UseChartHighlightSignature<any>>, import("./models/index.js").ChartPlugin<UseChartVisibilityManagerSignature<any>>, import("./models/index.js").ChartPlugin<UseChartClosestPointSignature>, import("./models/index.js").ChartPlugin<UseChartKeyboardNavigationSignature>];
12
+ import { type UseProgressiveRenderingSignature } from "./featurePlugins/useProgressiveRendering/index.js";
13
+ export type AllPluginSignatures<SeriesType extends ChartSeriesType = ChartSeriesType> = [UseChartZAxisSignature, UseChartBrushSignature, UseChartCartesianAxisSignature<SeriesType>, UseChartPolarAxisSignature, UseChartTooltipSignature<SeriesType>, UseChartInteractionSignature, UseChartHighlightSignature<SeriesType>, UseChartVisibilityManagerSignature<SeriesType>, UseChartClosestPointSignature, UseChartKeyboardNavigationSignature, UseProgressiveRenderingSignature];
14
+ export type DefaultPluginSignatures<SeriesType extends ChartSeriesType = ChartSeriesType> = [UseChartZAxisSignature, UseChartBrushSignature, UseChartTooltipSignature<SeriesType>, UseChartInteractionSignature, UseChartCartesianAxisSignature<SeriesType>, UseChartHighlightSignature<SeriesType>, UseChartVisibilityManagerSignature<SeriesType>, UseChartClosestPointSignature, UseChartKeyboardNavigationSignature, UseProgressiveRenderingSignature];
15
+ export declare const DEFAULT_PLUGINS: readonly [import("./models/index.js").ChartPlugin<UseChartZAxisSignature>, import("./models/index.js").ChartPlugin<UseChartBrushSignature>, import("./models/index.js").ChartPlugin<UseChartTooltipSignature<any>>, import("./models/index.js").ChartPlugin<UseChartInteractionSignature>, import("./models/index.js").ChartPlugin<UseChartCartesianAxisSignature<any>>, import("./models/index.js").ChartPlugin<UseChartHighlightSignature<any>>, import("./models/index.js").ChartPlugin<UseChartVisibilityManagerSignature<any>>, import("./models/index.js").ChartPlugin<UseChartClosestPointSignature>, import("./models/index.js").ChartPlugin<UseChartKeyboardNavigationSignature>, import("./models/index.js").ChartPlugin<UseProgressiveRenderingSignature>];
@@ -13,6 +13,7 @@ var _useChartZAxis = require("./featurePlugins/useChartZAxis");
13
13
  var _useChartBrush = require("./featurePlugins/useChartBrush");
14
14
  var _useChartVisibilityManager = require("./featurePlugins/useChartVisibilityManager");
15
15
  var _useChartTooltip = require("./featurePlugins/useChartTooltip");
16
+ var _useProgressiveRendering = require("./featurePlugins/useProgressiveRendering");
16
17
  // This file should be removed after creating all plugins in favor of a file per chart type.
17
18
 
18
- const DEFAULT_PLUGINS = exports.DEFAULT_PLUGINS = [_useChartZAxis.useChartZAxis, _useChartBrush.useChartBrush, _useChartTooltip.useChartTooltip, _useChartInteraction.useChartInteraction, _useChartCartesianAxis.useChartCartesianAxis, _useChartHighlight.useChartHighlight, _useChartVisibilityManager.useChartVisibilityManager, _useChartClosestPoint.useChartClosestPoint, _useChartKeyboardNavigation.useChartKeyboardNavigation];
19
+ const DEFAULT_PLUGINS = exports.DEFAULT_PLUGINS = [_useChartZAxis.useChartZAxis, _useChartBrush.useChartBrush, _useChartTooltip.useChartTooltip, _useChartInteraction.useChartInteraction, _useChartCartesianAxis.useChartCartesianAxis, _useChartHighlight.useChartHighlight, _useChartVisibilityManager.useChartVisibilityManager, _useChartClosestPoint.useChartClosestPoint, _useChartKeyboardNavigation.useChartKeyboardNavigation, _useProgressiveRendering.useProgressiveRendering];
@@ -9,4 +9,5 @@ import { useChartZAxis } from "./featurePlugins/useChartZAxis/index.mjs";
9
9
  import { useChartBrush } from "./featurePlugins/useChartBrush/index.mjs";
10
10
  import { useChartVisibilityManager } from "./featurePlugins/useChartVisibilityManager/index.mjs";
11
11
  import { useChartTooltip } from "./featurePlugins/useChartTooltip/index.mjs";
12
- export const DEFAULT_PLUGINS = [useChartZAxis, useChartBrush, useChartTooltip, useChartInteraction, useChartCartesianAxis, useChartHighlight, useChartVisibilityManager, useChartClosestPoint, useChartKeyboardNavigation];
12
+ import { useProgressiveRendering } from "./featurePlugins/useProgressiveRendering/index.mjs";
13
+ export const DEFAULT_PLUGINS = [useChartZAxis, useChartBrush, useChartTooltip, useChartInteraction, useChartCartesianAxis, useChartHighlight, useChartVisibilityManager, useChartClosestPoint, useChartKeyboardNavigation, useProgressiveRendering];
@@ -1,4 +1,13 @@
1
1
  import type { ChartSeriesType } from "../../../../models/seriesType/config.mjs";
2
- import { type ChartRootSelector } from "../../utils/selectors.mjs";
3
- import type { UseChartExperimentalFeaturesSignature } from "./useChartExperimentalFeature.types.mjs";
4
- export declare const selectorChartExperimentalFeaturesState: ChartRootSelector<UseChartExperimentalFeaturesSignature<ChartSeriesType>>;
2
+ import { type ChartState } from "../../models/chart.mjs";
3
+ import type { ChartExperimentalFeatures, UseChartExperimentalFeaturesSignature } from "./useChartExperimentalFeature.types.mjs";
4
+ /**
5
+ * Reads the value of a single experimental feature flag from the store.
6
+ *
7
+ * @example
8
+ * const enabled = store.use(
9
+ * selectorChartExperimentalFeaturesState,
10
+ * 'progressiveRendering',
11
+ * );
12
+ */
13
+ export declare const selectorChartExperimentalFeaturesState: <K extends keyof ChartExperimentalFeatures>(state: ChartState<[UseChartExperimentalFeaturesSignature<ChartSeriesType>]>, featureName: K) => ChartExperimentalFeatures[K] | undefined;
@@ -1,4 +1,13 @@
1
1
  import type { ChartSeriesType } from "../../../../models/seriesType/config.js";
2
- import { type ChartRootSelector } from "../../utils/selectors.js";
3
- import type { UseChartExperimentalFeaturesSignature } from "./useChartExperimentalFeature.types.js";
4
- export declare const selectorChartExperimentalFeaturesState: ChartRootSelector<UseChartExperimentalFeaturesSignature<ChartSeriesType>>;
2
+ import { type ChartState } from "../../models/chart.js";
3
+ import type { ChartExperimentalFeatures, UseChartExperimentalFeaturesSignature } from "./useChartExperimentalFeature.types.js";
4
+ /**
5
+ * Reads the value of a single experimental feature flag from the store.
6
+ *
7
+ * @example
8
+ * const enabled = store.use(
9
+ * selectorChartExperimentalFeaturesState,
10
+ * 'progressiveRendering',
11
+ * );
12
+ */
13
+ export declare const selectorChartExperimentalFeaturesState: <K extends keyof ChartExperimentalFeatures>(state: ChartState<[UseChartExperimentalFeaturesSignature<ChartSeriesType>]>, featureName: K) => ChartExperimentalFeatures[K] | undefined;
@@ -4,5 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selectorChartExperimentalFeaturesState = void 0;
7
- const selectorChartExperimentalFeaturesState = state => state.experimentalFeatures;
7
+ /**
8
+ * Reads the value of a single experimental feature flag from the store.
9
+ *
10
+ * @example
11
+ * const enabled = store.use(
12
+ * selectorChartExperimentalFeaturesState,
13
+ * 'progressiveRendering',
14
+ * );
15
+ */
16
+ const selectorChartExperimentalFeaturesState = (state, featureName) => state.experimentalFeatures?.[featureName];
8
17
  exports.selectorChartExperimentalFeaturesState = selectorChartExperimentalFeaturesState;
@@ -1 +1,10 @@
1
- export const selectorChartExperimentalFeaturesState = state => state.experimentalFeatures;
1
+ /**
2
+ * Reads the value of a single experimental feature flag from the store.
3
+ *
4
+ * @example
5
+ * const enabled = store.use(
6
+ * selectorChartExperimentalFeaturesState,
7
+ * 'progressiveRendering',
8
+ * );
9
+ */
10
+ export const selectorChartExperimentalFeaturesState = (state, featureName) => state.experimentalFeatures?.[featureName];
@@ -13,7 +13,21 @@ interface LineExperimentalFeatures {
13
13
  */
14
14
  enablePositionBasedPointerInteraction?: boolean;
15
15
  }
16
- export type ChartExperimentalFeatures<SeriesType extends ChartSeriesType = ChartSeriesType> = 'line' extends SeriesType ? LineExperimentalFeatures : {};
16
+ interface ScatterExperimentalFeatures {
17
+ /**
18
+ * Enables automatic progressive (batched) rendering for scatter series.
19
+ *
20
+ * When enabled and the `renderer` prop is left unset, the chart switches to
21
+ * the `svg-progressive` renderer above an internal point-count threshold,
22
+ * painting points over several animation frames to keep the main thread
23
+ * responsive. When disabled, the unset `renderer` keeps the synchronous
24
+ * `svg-single` renderer. Setting `renderer` explicitly is unaffected.
25
+ *
26
+ * This behavior will become the default in the next major version.
27
+ */
28
+ progressiveRendering?: boolean;
29
+ }
30
+ export type ChartExperimentalFeatures<SeriesType extends ChartSeriesType = ChartSeriesType> = ('line' extends SeriesType ? LineExperimentalFeatures : {}) & ('scatter' extends SeriesType ? ScatterExperimentalFeatures : {});
17
31
  export interface UseChartExperimentalFeaturesParameters<SeriesType extends ChartSeriesType = ChartSeriesType> {
18
32
  /**
19
33
  * Options to enable features planned for the next major.
@@ -13,7 +13,21 @@ interface LineExperimentalFeatures {
13
13
  */
14
14
  enablePositionBasedPointerInteraction?: boolean;
15
15
  }
16
- export type ChartExperimentalFeatures<SeriesType extends ChartSeriesType = ChartSeriesType> = 'line' extends SeriesType ? LineExperimentalFeatures : {};
16
+ interface ScatterExperimentalFeatures {
17
+ /**
18
+ * Enables automatic progressive (batched) rendering for scatter series.
19
+ *
20
+ * When enabled and the `renderer` prop is left unset, the chart switches to
21
+ * the `svg-progressive` renderer above an internal point-count threshold,
22
+ * painting points over several animation frames to keep the main thread
23
+ * responsive. When disabled, the unset `renderer` keeps the synchronous
24
+ * `svg-single` renderer. Setting `renderer` explicitly is unaffected.
25
+ *
26
+ * This behavior will become the default in the next major version.
27
+ */
28
+ progressiveRendering?: boolean;
29
+ }
30
+ export type ChartExperimentalFeatures<SeriesType extends ChartSeriesType = ChartSeriesType> = ('line' extends SeriesType ? LineExperimentalFeatures : {}) & ('scatter' extends SeriesType ? ScatterExperimentalFeatures : {});
17
31
  export interface UseChartExperimentalFeaturesParameters<SeriesType extends ChartSeriesType = ChartSeriesType> {
18
32
  /**
19
33
  * Options to enable features planned for the next major.
@@ -10,9 +10,10 @@ const createZoomLookup = axisDirection => (axes = []) => axes.reduce((acc, v) =>
10
10
  const {
11
11
  zoom,
12
12
  id: axisId,
13
- reverse
13
+ reverse,
14
+ scaleType
14
15
  } = v;
15
- const defaultizedZoom = (0, _defaultizeZoom.defaultizeZoom)(zoom, axisId, axisDirection, reverse);
16
+ const defaultizedZoom = (0, _defaultizeZoom.defaultizeZoom)(zoom, axisId, axisDirection, (0, _defaultizeZoom.getEffectiveZoomReverse)(axisDirection, scaleType, reverse));
16
17
  if (defaultizedZoom) {
17
18
  acc[axisId] = defaultizedZoom;
18
19
  }
@@ -1,12 +1,13 @@
1
- import { defaultizeZoom } from "./defaultizeZoom.mjs";
1
+ import { defaultizeZoom, getEffectiveZoomReverse } from "./defaultizeZoom.mjs";
2
2
  export const createZoomLookup = axisDirection => (axes = []) => axes.reduce((acc, v) => {
3
3
  // @ts-ignore
4
4
  const {
5
5
  zoom,
6
6
  id: axisId,
7
- reverse
7
+ reverse,
8
+ scaleType
8
9
  } = v;
9
- const defaultizedZoom = defaultizeZoom(zoom, axisId, axisDirection, reverse);
10
+ const defaultizedZoom = defaultizeZoom(zoom, axisId, axisDirection, getEffectiveZoomReverse(axisDirection, scaleType, reverse));
10
11
  if (defaultizedZoom) {
11
12
  acc[axisId] = defaultizedZoom;
12
13
  }
@@ -35,7 +35,7 @@ function defaultizeXAxis(inAxes, dataset, axesGap) {
35
35
  id,
36
36
  position,
37
37
  height,
38
- zoom: (0, _defaultizeZoom.defaultizeZoom)(axisConfig.zoom, id, 'x', axisConfig.reverse)
38
+ zoom: (0, _defaultizeZoom.defaultizeZoom)(axisConfig.zoom, id, 'x', (0, _defaultizeZoom.getEffectiveZoomReverse)('x', axisConfig.scaleType, axisConfig.reverse))
39
39
  });
40
40
 
41
41
  // Increment the offset for the next axis
@@ -87,7 +87,7 @@ function defaultizeYAxis(inAxes, dataset, axesGap) {
87
87
  id,
88
88
  position,
89
89
  width,
90
- zoom: (0, _defaultizeZoom.defaultizeZoom)(axisConfig.zoom, id, 'y', axisConfig.reverse)
90
+ zoom: (0, _defaultizeZoom.defaultizeZoom)(axisConfig.zoom, id, 'y', (0, _defaultizeZoom.getEffectiveZoomReverse)('y', axisConfig.scaleType, axisConfig.reverse))
91
91
  });
92
92
 
93
93
  // Increment the offset for the next axis
@@ -1,6 +1,6 @@
1
1
  import _formatErrorMessage from "@mui/x-internals/formatErrorMessage";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- import { defaultizeZoom } from "./defaultizeZoom.mjs";
3
+ import { defaultizeZoom, getEffectiveZoomReverse } from "./defaultizeZoom.mjs";
4
4
  import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY, DEFAULT_AXIS_SIZE_HEIGHT, DEFAULT_AXIS_SIZE_WIDTH, AXIS_LABEL_DEFAULT_HEIGHT } from "../../../../constants/index.mjs";
5
5
  export function defaultizeXAxis(inAxes, dataset, axesGap) {
6
6
  const offsets = {
@@ -27,7 +27,7 @@ export function defaultizeXAxis(inAxes, dataset, axesGap) {
27
27
  id,
28
28
  position,
29
29
  height,
30
- zoom: defaultizeZoom(axisConfig.zoom, id, 'x', axisConfig.reverse)
30
+ zoom: defaultizeZoom(axisConfig.zoom, id, 'x', getEffectiveZoomReverse('x', axisConfig.scaleType, axisConfig.reverse))
31
31
  });
32
32
 
33
33
  // Increment the offset for the next axis
@@ -79,7 +79,7 @@ export function defaultizeYAxis(inAxes, dataset, axesGap) {
79
79
  id,
80
80
  position,
81
81
  width,
82
- zoom: defaultizeZoom(axisConfig.zoom, id, 'y', axisConfig.reverse)
82
+ zoom: defaultizeZoom(axisConfig.zoom, id, 'y', getEffectiveZoomReverse('y', axisConfig.scaleType, axisConfig.reverse))
83
83
  });
84
84
 
85
85
  // Increment the offset for the next axis
@@ -1,6 +1,15 @@
1
- import { type AxisId } from "../../../../models/axis.mjs";
1
+ import { type AxisId, type ScaleName } from "../../../../models/axis.mjs";
2
2
  import { type DefaultizedZoomOptions } from "./useChartCartesianAxis.types.mjs";
3
3
  import { type ZoomOptions } from "./zoom.types.mjs";
4
+ /**
5
+ * Ordinal Y axes (band/point) render with `domain[0]` at the top of the chart
6
+ * (see the `range.reverse()` applied in `selectorChartYScales`), which is the
7
+ * opposite of the cartesian convention assumed by the zoom/pan math.
8
+ *
9
+ * Returns the `reverse` flag the zoom handlers should use so that pan/wheel
10
+ * gestures follow the visual direction of the axis.
11
+ */
12
+ export declare const getEffectiveZoomReverse: (axisDirection: "x" | "y", scaleType: ScaleName | undefined, reverse: boolean | undefined) => boolean;
4
13
  export declare const defaultZoomOptions: {
5
14
  minStart: number;
6
15
  maxEnd: number;
@@ -1,6 +1,15 @@
1
- import { type AxisId } from "../../../../models/axis.js";
1
+ import { type AxisId, type ScaleName } from "../../../../models/axis.js";
2
2
  import { type DefaultizedZoomOptions } from "./useChartCartesianAxis.types.js";
3
3
  import { type ZoomOptions } from "./zoom.types.js";
4
+ /**
5
+ * Ordinal Y axes (band/point) render with `domain[0]` at the top of the chart
6
+ * (see the `range.reverse()` applied in `selectorChartYScales`), which is the
7
+ * opposite of the cartesian convention assumed by the zoom/pan math.
8
+ *
9
+ * Returns the `reverse` flag the zoom handlers should use so that pan/wheel
10
+ * gestures follow the visual direction of the axis.
11
+ */
12
+ export declare const getEffectiveZoomReverse: (axisDirection: "x" | "y", scaleType: ScaleName | undefined, reverse: boolean | undefined) => boolean;
4
13
  export declare const defaultZoomOptions: {
5
14
  minStart: number;
6
15
  maxEnd: number;
@@ -4,9 +4,26 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.defaultizeZoom = exports.defaultZoomOptions = void 0;
7
+ exports.getEffectiveZoomReverse = exports.defaultizeZoom = exports.defaultZoomOptions = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _constants = require("../../../constants");
10
+ /**
11
+ * Ordinal Y axes (band/point) render with `domain[0]` at the top of the chart
12
+ * (see the `range.reverse()` applied in `selectorChartYScales`), which is the
13
+ * opposite of the cartesian convention assumed by the zoom/pan math.
14
+ *
15
+ * Returns the `reverse` flag the zoom handlers should use so that pan/wheel
16
+ * gestures follow the visual direction of the axis.
17
+ */
18
+ const getEffectiveZoomReverse = (axisDirection, scaleType, reverse) => {
19
+ const resolvedReverse = reverse ?? false;
20
+ const isOrdinal = scaleType === 'band' || scaleType === 'point';
21
+ if (axisDirection === 'y' && isOrdinal) {
22
+ return !resolvedReverse;
23
+ }
24
+ return resolvedReverse;
25
+ };
26
+ exports.getEffectiveZoomReverse = getEffectiveZoomReverse;
10
27
  const defaultZoomOptions = exports.defaultZoomOptions = {
11
28
  minStart: 0,
12
29
  maxEnd: 100,
@@ -1,5 +1,21 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { DEFAULT_ZOOM_SLIDER_PREVIEW_SIZE, DEFAULT_ZOOM_SLIDER_SHOW_TOOLTIP, DEFAULT_ZOOM_SLIDER_SIZE } from "../../../constants.mjs";
3
+ /**
4
+ * Ordinal Y axes (band/point) render with `domain[0]` at the top of the chart
5
+ * (see the `range.reverse()` applied in `selectorChartYScales`), which is the
6
+ * opposite of the cartesian convention assumed by the zoom/pan math.
7
+ *
8
+ * Returns the `reverse` flag the zoom handlers should use so that pan/wheel
9
+ * gestures follow the visual direction of the axis.
10
+ */
11
+ export const getEffectiveZoomReverse = (axisDirection, scaleType, reverse) => {
12
+ const resolvedReverse = reverse ?? false;
13
+ const isOrdinal = scaleType === 'band' || scaleType === 'point';
14
+ if (axisDirection === 'y' && isOrdinal) {
15
+ return !resolvedReverse;
16
+ }
17
+ return resolvedReverse;
18
+ };
3
19
  export const defaultZoomOptions = {
4
20
  minStart: 0,
5
21
  maxEnd: 100,
@@ -13,14 +13,39 @@ function getRange(drawingArea, axisDirection, axis) {
13
13
  const range = axisDirection === 'x' ? [drawingArea.left, drawingArea.left + drawingArea.width] : [drawingArea.top + drawingArea.height, drawingArea.top];
14
14
  return axis.reverse ? [range[1], range[0]] : range;
15
15
  }
16
+
17
+ /**
18
+ * Caches the normalized ordinal scale so it is not rebuilt on every pan/zoom frame. Building a
19
+ * band/point scale is `O(domain)` — it interns the whole domain — which is prohibitive for large
20
+ * category axes when zooming. The domain array (the axis `data`) is referentially stable across
21
+ * zoom, so it is the outer key; a `WeakMap` lets unused domains be collected. The inner key is the
22
+ * scale variant (type + padding), because the same domain array can back several axes (e.g. a `band`
23
+ * and a `point` axis sharing one `data` array), which must not share a scale. Continuous scales are
24
+ * not cached: they are cheap to build and their domain reference changes with zoom anyway, so a
25
+ * cache would only ever miss.
26
+ */
27
+ const normalizedScaleCache = new WeakMap();
28
+ function getCachedOrdinalScale(domain, variant, build) {
29
+ let variants = normalizedScaleCache.get(domain);
30
+ if (!variants) {
31
+ variants = new Map();
32
+ normalizedScaleCache.set(domain, variants);
33
+ }
34
+ let scale = variants.get(variant);
35
+ if (!scale) {
36
+ scale = build();
37
+ variants.set(variant, scale);
38
+ }
39
+ return scale;
40
+ }
16
41
  function getNormalizedAxisScale(axis, domain) {
17
42
  const range = [0, 1];
18
43
  if ((0, _axis.isBandScaleConfig)(axis)) {
19
44
  const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
20
- return (0, _scales.scaleBand)(domain, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2);
45
+ return getCachedOrdinalScale(domain, `band:${categoryGapRatio}`, () => (0, _scales.scaleBand)(domain, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2));
21
46
  }
22
47
  if ((0, _axis.isPointScaleConfig)(axis)) {
23
- return (0, _scales.scalePoint)(domain, range);
48
+ return getCachedOrdinalScale(domain, 'point', () => (0, _scales.scalePoint)(domain, range));
24
49
  }
25
50
  const scaleType = axis.scaleType ?? 'linear';
26
51
  const scale = (0, _getScale.getScale)(scaleType, domain, range);
@@ -6,14 +6,39 @@ export function getRange(drawingArea, axisDirection, axis) {
6
6
  const range = axisDirection === 'x' ? [drawingArea.left, drawingArea.left + drawingArea.width] : [drawingArea.top + drawingArea.height, drawingArea.top];
7
7
  return axis.reverse ? [range[1], range[0]] : range;
8
8
  }
9
+
10
+ /**
11
+ * Caches the normalized ordinal scale so it is not rebuilt on every pan/zoom frame. Building a
12
+ * band/point scale is `O(domain)` — it interns the whole domain — which is prohibitive for large
13
+ * category axes when zooming. The domain array (the axis `data`) is referentially stable across
14
+ * zoom, so it is the outer key; a `WeakMap` lets unused domains be collected. The inner key is the
15
+ * scale variant (type + padding), because the same domain array can back several axes (e.g. a `band`
16
+ * and a `point` axis sharing one `data` array), which must not share a scale. Continuous scales are
17
+ * not cached: they are cheap to build and their domain reference changes with zoom anyway, so a
18
+ * cache would only ever miss.
19
+ */
20
+ const normalizedScaleCache = new WeakMap();
21
+ function getCachedOrdinalScale(domain, variant, build) {
22
+ let variants = normalizedScaleCache.get(domain);
23
+ if (!variants) {
24
+ variants = new Map();
25
+ normalizedScaleCache.set(domain, variants);
26
+ }
27
+ let scale = variants.get(variant);
28
+ if (!scale) {
29
+ scale = build();
30
+ variants.set(variant, scale);
31
+ }
32
+ return scale;
33
+ }
9
34
  export function getNormalizedAxisScale(axis, domain) {
10
35
  const range = [0, 1];
11
36
  if (isBandScaleConfig(axis)) {
12
37
  const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
13
- return scaleBand(domain, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2);
38
+ return getCachedOrdinalScale(domain, `band:${categoryGapRatio}`, () => scaleBand(domain, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2));
14
39
  }
15
40
  if (isPointScaleConfig(axis)) {
16
- return scalePoint(domain, range);
41
+ return getCachedOrdinalScale(domain, 'point', () => scalePoint(domain, range));
17
42
  }
18
43
  const scaleType = axis.scaleType ?? 'linear';
19
44
  const scale = getScale(scaleType, domain, range);
@@ -14,7 +14,6 @@ var _store = require("@mui/x-internals/store");
14
14
  var _useAssertModelConsistency = require("@mui/x-internals/useAssertModelConsistency");
15
15
  var _warning = require("@mui/x-internals/warning");
16
16
  var _colorPalettes = require("../../../../colorPalettes");
17
- var _useChartDimensions = require("../../corePlugins/useChartDimensions/useChartDimensions.selectors");
18
17
  var _useChartSeries = require("../../corePlugins/useChartSeries/useChartSeries.selectors");
19
18
  var _defaultizeAxis = require("./defaultizeAxis");
20
19
  var _useChartCartesianAxisRendering = require("./useChartCartesianAxisRendering.selectors");
@@ -47,7 +46,6 @@ const useChartCartesianAxis = ({
47
46
  (0, _warning.warnOnce)([`MUI X Charts: The following axis ids are duplicated: ${Array.from(duplicates).join(', ')}.`, `Please make sure that each axis has a unique id.`].join('\n'), 'error');
48
47
  }
49
48
  }
50
- const drawingArea = store.use(_useChartDimensions.selectorChartDrawingArea);
51
49
  const processedSeries = store.use(_useChartSeries.selectorChartSeriesProcessed);
52
50
  const isInteractionEnabled = store.use(_useChartInteraction.selectorChartsInteractionIsInitialized);
53
51
  const {
@@ -96,7 +94,7 @@ const useChartCartesianAxis = ({
96
94
  x: (0, _defaultizeAxis.defaultizeXAxis)(xAxis, dataset, axesGap),
97
95
  y: (0, _defaultizeAxis.defaultizeYAxis)(yAxis, dataset, axesGap)
98
96
  });
99
- }, [drawingArea, xAxis, yAxis, dataset, axesGap, store]);
97
+ }, [xAxis, yAxis, dataset, axesGap, store]);
100
98
  const usedXAxis = xAxisIds[0];
101
99
  const usedYAxis = yAxisIds[0];
102
100
  (0, _store.useStoreEffect)(store, _useChartCartesianInteraction.selectorChartAxisInteraction, (prevAxisInteraction, nextAxisInteraction) => {
@@ -7,7 +7,6 @@ import { useStoreEffect } from '@mui/x-internals/store';
7
7
  import { useAssertModelConsistency } from '@mui/x-internals/useAssertModelConsistency';
8
8
  import { warnOnce } from '@mui/x-internals/warning';
9
9
  import { rainbowSurgePalette } from "../../../../colorPalettes/index.mjs";
10
- import { selectorChartDrawingArea } from "../../corePlugins/useChartDimensions/useChartDimensions.selectors.mjs";
11
10
  import { selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/useChartSeries.selectors.mjs";
12
11
  import { defaultizeXAxis, defaultizeYAxis } from "./defaultizeAxis.mjs";
13
12
  import { selectorChartXAxis, selectorChartYAxis } from "./useChartCartesianAxisRendering.selectors.mjs";
@@ -40,7 +39,6 @@ export const useChartCartesianAxis = ({
40
39
  warnOnce([`MUI X Charts: The following axis ids are duplicated: ${Array.from(duplicates).join(', ')}.`, `Please make sure that each axis has a unique id.`].join('\n'), 'error');
41
40
  }
42
41
  }
43
- const drawingArea = store.use(selectorChartDrawingArea);
44
42
  const processedSeries = store.use(selectorChartSeriesProcessed);
45
43
  const isInteractionEnabled = store.use(selectorChartsInteractionIsInitialized);
46
44
  const {
@@ -89,7 +87,7 @@ export const useChartCartesianAxis = ({
89
87
  x: defaultizeXAxis(xAxis, dataset, axesGap),
90
88
  y: defaultizeYAxis(yAxis, dataset, axesGap)
91
89
  });
92
- }, [drawingArea, xAxis, yAxis, dataset, axesGap, store]);
90
+ }, [xAxis, yAxis, dataset, axesGap, store]);
93
91
  const usedXAxis = xAxisIds[0];
94
92
  const usedYAxis = yAxisIds[0];
95
93
  useStoreEffect(store, selectorChartAxisInteraction, (prevAxisInteraction, nextAxisInteraction) => {
@@ -164,6 +164,7 @@ export declare const selectorChartRawAxis: (args_0: import("../../corePlugins/us
164
164
  min: NumberValue;
165
165
  max: NumberValue;
166
166
  });
167
+ domainSeries?: "all" | "visible";
167
168
  ignoreTooltip?: boolean;
168
169
  } & Omit<Partial<import("../../../index.mjs").ChartsYAxisProps>, "axisId"> & Partial<Omit<{
169
170
  scaleType: "linear";
@@ -223,7 +224,14 @@ export declare const selectorChartDefaultXAxisId: (args_0: import("../../corePlu
223
224
  export declare const selectorChartDefaultYAxisId: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.mjs").UseChartCartesianAxisState> & {
224
225
  cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
225
226
  }) => AxisId;
226
- export declare const selectorChartSeriesEmptyFlatbushMap: () => Map<string, Flatbush>;
227
- export declare const selectorChartSeriesFlatbushMap: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & Partial<{}> & {
227
+ export type ScatterFlatbushEntry = {
228
+ flatbush: Flatbush;
229
+ /** Per-point marker radius, in pixels. */
230
+ getItemRadius: number | ((dataIndex: number) => number);
231
+ /** Largest radius across all points in this series, in pixels. */
232
+ maxItemRadius: number;
233
+ };
234
+ export declare const selectorChartSeriesEmptyFlatbushMap: () => Map<string, ScatterFlatbushEntry>;
235
+ export declare const selectorChartSeriesFlatbushMap: (args_0: import("../../corePlugins/useChartId/useChartId.types.mjs").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.mjs").UseChartSeriesConfigState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.mjs").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.mjs").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.mjs").UseChartSeriesState<keyof import("../../../index.mjs").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.mjs").UseChartAnimationState & import("../../../index.mjs").UseChartInteractionListenerState & import("../useChartZAxis/index.mjs").UseChartZAxisState & Partial<{}> & {
228
236
  cacheKey: import("../../models/index.mjs").ChartStateCacheKey;
229
- }) => Map<string, Flatbush>;
237
+ }) => Map<string, ScatterFlatbushEntry>;
@@ -164,6 +164,7 @@ export declare const selectorChartRawAxis: (args_0: import("../../corePlugins/us
164
164
  min: NumberValue;
165
165
  max: NumberValue;
166
166
  });
167
+ domainSeries?: "all" | "visible";
167
168
  ignoreTooltip?: boolean;
168
169
  } & Omit<Partial<import("../../../index.js").ChartsYAxisProps>, "axisId"> & Partial<Omit<{
169
170
  scaleType: "linear";
@@ -223,7 +224,14 @@ export declare const selectorChartDefaultXAxisId: (args_0: import("../../corePlu
223
224
  export declare const selectorChartDefaultYAxisId: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartCartesianAxis.types.js").UseChartCartesianAxisState> & {
224
225
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
225
226
  }) => AxisId;
226
- export declare const selectorChartSeriesEmptyFlatbushMap: () => Map<string, Flatbush>;
227
- export declare const selectorChartSeriesFlatbushMap: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<{}> & {
227
+ export type ScatterFlatbushEntry = {
228
+ flatbush: Flatbush;
229
+ /** Per-point marker radius, in pixels. */
230
+ getItemRadius: number | ((dataIndex: number) => number);
231
+ /** Largest radius across all points in this series, in pixels. */
232
+ maxItemRadius: number;
233
+ };
234
+ export declare const selectorChartSeriesEmptyFlatbushMap: () => Map<string, ScatterFlatbushEntry>;
235
+ export declare const selectorChartSeriesFlatbushMap: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartSeriesConfig/useChartSeriesConfig.types.js").UseChartSeriesConfigState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & import("../useChartZAxis/index.js").UseChartZAxisState & Partial<{}> & {
228
236
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
229
- }) => Map<string, Flatbush>;
237
+ }) => Map<string, ScatterFlatbushEntry>;