@mui/x-charts 8.22.1 → 8.24.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 (354) hide show
  1. package/BarChart/BarChart.js +39 -0
  2. package/BarChart/BarChart.plugins.d.ts +2 -1
  3. package/BarChart/BarChart.plugins.js +2 -1
  4. package/BarChart/BarElement.js +1 -1
  5. package/BarChart/BarLabel/BarLabel.d.ts +2 -0
  6. package/BarChart/BarLabel/BarLabel.js +8 -3
  7. package/BarChart/BarLabel/BarLabelItem.d.ts +2 -0
  8. package/BarChart/BarLabel/BarLabelItem.js +4 -2
  9. package/BarChart/BarPlot.d.ts +12 -2
  10. package/BarChart/BarPlot.js +29 -86
  11. package/BarChart/BatchBarPlot/BarGroup.d.ts +15 -0
  12. package/BarChart/BatchBarPlot/BarGroup.js +142 -0
  13. package/BarChart/BatchBarPlot/BatchBarPlot.d.ts +12 -0
  14. package/BarChart/BatchBarPlot/BatchBarPlot.js +140 -0
  15. package/BarChart/BatchBarPlot/index.d.ts +1 -0
  16. package/BarChart/BatchBarPlot/index.js +12 -0
  17. package/BarChart/BatchBarPlot/useCreateBarPaths.d.ts +8 -0
  18. package/BarChart/BatchBarPlot/useCreateBarPaths.js +53 -0
  19. package/BarChart/FocusedBar.js +6 -2
  20. package/BarChart/IndividualBarPlot.d.ts +21 -0
  21. package/BarChart/IndividualBarPlot.js +106 -0
  22. package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.ts +1 -1
  23. package/BarChart/seriesConfig/bar/keyboardFocusHandler.d.ts +3 -0
  24. package/BarChart/seriesConfig/bar/keyboardFocusHandler.js +23 -0
  25. package/BarChart/seriesConfig/bar/legend.js +1 -0
  26. package/BarChart/seriesConfig/bar/seriesProcessor.js +2 -2
  27. package/BarChart/seriesConfig/index.js +5 -1
  28. package/BarChart/types.d.ts +2 -0
  29. package/BarChart/useBarChartProps.d.ts +6 -2
  30. package/BarChart/useBarChartProps.js +4 -2
  31. package/BarChart/useBarPlotData.d.ts +1 -1
  32. package/BarChart/useBarPlotData.js +23 -4
  33. package/BarChart/useRegisterItemClickHandlers.d.ts +6 -0
  34. package/BarChart/useRegisterItemClickHandlers.js +72 -0
  35. package/CHANGELOG.md +211 -0
  36. package/ChartContainer/ChartContainer.js +34 -0
  37. package/ChartContainer/useChartContainerProps.js +6 -2
  38. package/ChartsLegend/ChartsLegend.js +2 -2
  39. package/ChartsLegend/legendContext.types.d.ts +12 -0
  40. package/ChartsLegend/onClickContextBuilder.js +2 -1
  41. package/ChartsOverlay/ChartsLoadingOverlay.js +4 -1
  42. package/ChartsOverlay/ChartsNoDataOverlay.js +4 -1
  43. package/ChartsReferenceLine/common.d.ts +1 -1
  44. package/ChartsReferenceLine/common.js +4 -1
  45. package/ChartsTooltip/ChartsTooltipContainer.js +25 -21
  46. package/Gauge/GaugeContainer.js +4 -1
  47. package/LineChart/AnimatedLine.js +7 -3
  48. package/LineChart/AppearingMask.js +4 -1
  49. package/LineChart/CircleMarkElement.d.ts +5 -0
  50. package/LineChart/CircleMarkElement.js +13 -5
  51. package/LineChart/FocusedLineMark.js +6 -2
  52. package/LineChart/LineChart.js +30 -0
  53. package/LineChart/LineChart.plugins.d.ts +2 -1
  54. package/LineChart/LineChart.plugins.js +2 -1
  55. package/LineChart/LineElement.d.ts +4 -0
  56. package/LineChart/LineElement.js +7 -3
  57. package/LineChart/MarkElement.d.ts +5 -0
  58. package/LineChart/MarkElement.js +17 -10
  59. package/LineChart/markElementClasses.d.ts +0 -1
  60. package/LineChart/seriesConfig/index.js +5 -1
  61. package/LineChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  62. package/LineChart/seriesConfig/keyboardFocusHandler.js +23 -0
  63. package/LineChart/seriesConfig/legend.js +1 -0
  64. package/LineChart/seriesConfig/seriesProcessor.js +2 -2
  65. package/PieChart/FocusedPieArc.js +6 -3
  66. package/PieChart/PieArcLabel.d.ts +2 -0
  67. package/PieChart/PieArcLabel.js +5 -2
  68. package/PieChart/PieChart.js +35 -5
  69. package/PieChart/PieChart.plugins.d.ts +2 -1
  70. package/PieChart/PieChart.plugins.js +2 -1
  71. package/PieChart/dataTransform/useTransformData.js +1 -1
  72. package/PieChart/seriesConfig/index.js +5 -1
  73. package/PieChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  74. package/PieChart/seriesConfig/keyboardFocusHandler.js +23 -0
  75. package/PieChart/seriesConfig/legend.js +6 -3
  76. package/RadarChart/RadarChart.js +30 -0
  77. package/RadarChart/RadarChart.plugins.d.ts +3 -2
  78. package/RadarChart/RadarChart.plugins.js +2 -1
  79. package/RadarChart/seriesConfig/index.js +3 -1
  80. package/RadarChart/seriesConfig/legend.js +1 -0
  81. package/ScatterChart/BatchScatter.js +8 -14
  82. package/ScatterChart/FocusedScatterMark.js +1 -1
  83. package/ScatterChart/ScatterChart.js +30 -0
  84. package/ScatterChart/ScatterChart.plugins.d.ts +2 -1
  85. package/ScatterChart/ScatterChart.plugins.js +2 -1
  86. package/ScatterChart/seriesConfig/index.js +5 -1
  87. package/ScatterChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  88. package/ScatterChart/seriesConfig/keyboardFocusHandler.js +23 -0
  89. package/ScatterChart/seriesConfig/legend.js +1 -0
  90. package/SparkLineChart/SparkLineChart.js +46 -0
  91. package/esm/BarChart/BarChart.js +39 -0
  92. package/esm/BarChart/BarChart.plugins.d.ts +2 -1
  93. package/esm/BarChart/BarChart.plugins.js +2 -1
  94. package/esm/BarChart/BarElement.js +1 -1
  95. package/esm/BarChart/BarLabel/BarLabel.d.ts +2 -0
  96. package/esm/BarChart/BarLabel/BarLabel.js +8 -3
  97. package/esm/BarChart/BarLabel/BarLabelItem.d.ts +2 -0
  98. package/esm/BarChart/BarLabel/BarLabelItem.js +4 -2
  99. package/esm/BarChart/BarPlot.d.ts +12 -2
  100. package/esm/BarChart/BarPlot.js +29 -86
  101. package/esm/BarChart/BatchBarPlot/BarGroup.d.ts +15 -0
  102. package/esm/BarChart/BatchBarPlot/BarGroup.js +134 -0
  103. package/esm/BarChart/BatchBarPlot/BatchBarPlot.d.ts +12 -0
  104. package/esm/BarChart/BatchBarPlot/BatchBarPlot.js +133 -0
  105. package/esm/BarChart/BatchBarPlot/index.d.ts +1 -0
  106. package/esm/BarChart/BatchBarPlot/index.js +1 -0
  107. package/esm/BarChart/BatchBarPlot/useCreateBarPaths.d.ts +8 -0
  108. package/esm/BarChart/BatchBarPlot/useCreateBarPaths.js +46 -0
  109. package/esm/BarChart/FocusedBar.js +6 -2
  110. package/esm/BarChart/IndividualBarPlot.d.ts +21 -0
  111. package/esm/BarChart/IndividualBarPlot.js +98 -0
  112. package/esm/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.ts +1 -1
  113. package/esm/BarChart/seriesConfig/bar/keyboardFocusHandler.d.ts +3 -0
  114. package/esm/BarChart/seriesConfig/bar/keyboardFocusHandler.js +17 -0
  115. package/esm/BarChart/seriesConfig/bar/legend.js +1 -0
  116. package/esm/BarChart/seriesConfig/bar/seriesProcessor.js +1 -1
  117. package/esm/BarChart/seriesConfig/index.js +5 -1
  118. package/esm/BarChart/types.d.ts +2 -0
  119. package/esm/BarChart/useBarChartProps.d.ts +6 -2
  120. package/esm/BarChart/useBarChartProps.js +4 -3
  121. package/esm/BarChart/useBarPlotData.d.ts +1 -1
  122. package/esm/BarChart/useBarPlotData.js +20 -1
  123. package/esm/BarChart/useRegisterItemClickHandlers.d.ts +6 -0
  124. package/esm/BarChart/useRegisterItemClickHandlers.js +67 -0
  125. package/esm/ChartContainer/ChartContainer.js +34 -0
  126. package/esm/ChartContainer/useChartContainerProps.js +6 -2
  127. package/esm/ChartsLegend/ChartsLegend.js +2 -2
  128. package/esm/ChartsLegend/legendContext.types.d.ts +12 -0
  129. package/esm/ChartsLegend/onClickContextBuilder.js +2 -1
  130. package/esm/ChartsOverlay/ChartsLoadingOverlay.js +4 -1
  131. package/esm/ChartsOverlay/ChartsNoDataOverlay.js +4 -1
  132. package/esm/ChartsReferenceLine/common.d.ts +1 -1
  133. package/esm/ChartsReferenceLine/common.js +4 -1
  134. package/esm/ChartsTooltip/ChartsTooltipContainer.js +26 -22
  135. package/esm/Gauge/GaugeContainer.js +4 -1
  136. package/esm/LineChart/AnimatedLine.js +7 -3
  137. package/esm/LineChart/AppearingMask.js +4 -1
  138. package/esm/LineChart/CircleMarkElement.d.ts +5 -0
  139. package/esm/LineChart/CircleMarkElement.js +13 -5
  140. package/esm/LineChart/FocusedLineMark.js +6 -2
  141. package/esm/LineChart/LineChart.js +30 -0
  142. package/esm/LineChart/LineChart.plugins.d.ts +2 -1
  143. package/esm/LineChart/LineChart.plugins.js +2 -1
  144. package/esm/LineChart/LineElement.d.ts +4 -0
  145. package/esm/LineChart/LineElement.js +7 -3
  146. package/esm/LineChart/MarkElement.d.ts +5 -0
  147. package/esm/LineChart/MarkElement.js +17 -10
  148. package/esm/LineChart/markElementClasses.d.ts +0 -1
  149. package/esm/LineChart/seriesConfig/index.js +5 -1
  150. package/esm/LineChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  151. package/esm/LineChart/seriesConfig/keyboardFocusHandler.js +17 -0
  152. package/esm/LineChart/seriesConfig/legend.js +1 -0
  153. package/esm/LineChart/seriesConfig/seriesProcessor.js +1 -1
  154. package/esm/PieChart/FocusedPieArc.js +5 -2
  155. package/esm/PieChart/PieArcLabel.d.ts +2 -0
  156. package/esm/PieChart/PieArcLabel.js +5 -2
  157. package/esm/PieChart/PieChart.js +35 -5
  158. package/esm/PieChart/PieChart.plugins.d.ts +2 -1
  159. package/esm/PieChart/PieChart.plugins.js +2 -1
  160. package/esm/PieChart/dataTransform/useTransformData.js +1 -1
  161. package/esm/PieChart/seriesConfig/index.js +5 -1
  162. package/esm/PieChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  163. package/esm/PieChart/seriesConfig/keyboardFocusHandler.js +17 -0
  164. package/esm/PieChart/seriesConfig/legend.js +6 -3
  165. package/esm/RadarChart/RadarChart.js +30 -0
  166. package/esm/RadarChart/RadarChart.plugins.d.ts +3 -2
  167. package/esm/RadarChart/RadarChart.plugins.js +2 -1
  168. package/esm/RadarChart/seriesConfig/index.js +3 -1
  169. package/esm/RadarChart/seriesConfig/legend.js +1 -0
  170. package/esm/ScatterChart/BatchScatter.js +5 -11
  171. package/esm/ScatterChart/FocusedScatterMark.js +1 -1
  172. package/esm/ScatterChart/ScatterChart.js +30 -0
  173. package/esm/ScatterChart/ScatterChart.plugins.d.ts +2 -1
  174. package/esm/ScatterChart/ScatterChart.plugins.js +2 -1
  175. package/esm/ScatterChart/seriesConfig/index.js +5 -1
  176. package/esm/ScatterChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  177. package/esm/ScatterChart/seriesConfig/keyboardFocusHandler.js +17 -0
  178. package/esm/ScatterChart/seriesConfig/legend.js +1 -0
  179. package/esm/SparkLineChart/SparkLineChart.js +46 -0
  180. package/esm/hooks/useFocusedItem.d.ts +1 -12
  181. package/esm/hooks/useFocusedItem.js +3 -10
  182. package/esm/hooks/useIsItemFocused.d.ts +4 -3
  183. package/esm/hooks/useIsItemFocused.js +1 -1
  184. package/esm/hooks/useIsItemFocusedGetter.d.ts +3 -2
  185. package/esm/hooks/useIsItemFocusedGetter.js +2 -1
  186. package/esm/index.js +1 -1
  187. package/esm/internals/appendAtKey.d.ts +8 -0
  188. package/esm/internals/appendAtKey.js +17 -0
  189. package/esm/internals/commonNextFocusItem.d.ts +14 -0
  190. package/esm/internals/commonNextFocusItem.js +88 -0
  191. package/esm/internals/getBarDimensions.d.ts +1 -2
  192. package/esm/internals/identifierSerializer.d.ts +9 -0
  193. package/esm/internals/identifierSerializer.js +6 -0
  194. package/esm/internals/index.d.ts +7 -3
  195. package/esm/internals/index.js +7 -3
  196. package/esm/internals/invertScale.d.ts +6 -2
  197. package/esm/internals/invertScale.js +9 -1
  198. package/esm/internals/plugins/allPlugins.d.ts +4 -3
  199. package/esm/internals/plugins/allPlugins.js +2 -1
  200. package/esm/internals/plugins/corePlugins/useChartSeries/serializeIdentifier.d.ts +14 -0
  201. package/esm/internals/plugins/corePlugins/useChartSeries/serializeIdentifier.js +18 -0
  202. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +8 -1
  203. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +12 -1
  204. package/esm/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.d.ts +11 -0
  205. package/esm/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.js +74 -0
  206. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +20 -3
  207. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +10 -3
  208. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.ts +4 -0
  209. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.js +83 -0
  210. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.d.ts +13 -0
  211. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js +1 -0
  212. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.d.ts +2 -2
  213. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +12 -105
  214. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +5 -31
  215. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +9 -15
  216. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +6 -21
  217. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.d.ts +3 -0
  218. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.js +6 -0
  219. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.d.ts +15 -0
  220. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.js +18 -0
  221. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.d.ts +7 -0
  222. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.js +9 -0
  223. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.d.ts +11 -0
  224. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.js +18 -0
  225. package/esm/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +2 -10
  226. package/esm/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.js +2 -2
  227. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/index.d.ts +3 -0
  228. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/index.js +3 -0
  229. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/isIdentifierVisible.d.ts +4 -0
  230. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/isIdentifierVisible.js +5 -0
  231. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.d.ts +3 -0
  232. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.js +78 -0
  233. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.selectors.d.ts +16 -0
  234. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.selectors.js +19 -0
  235. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.types.d.ts +90 -0
  236. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.types.js +1 -0
  237. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/visibilityParamToMap.d.ts +4 -0
  238. package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/visibilityParamToMap.js +11 -0
  239. package/esm/internals/plugins/models/seriesConfig/identifierSerializer.types.d.ts +2 -0
  240. package/esm/internals/plugins/models/seriesConfig/identifierSerializer.types.js +1 -0
  241. package/esm/internals/plugins/models/seriesConfig/index.d.ts +2 -1
  242. package/esm/internals/plugins/models/seriesConfig/index.js +2 -1
  243. package/esm/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +9 -0
  244. package/esm/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
  245. package/esm/internals/seriesHasData.d.ts +4 -0
  246. package/esm/internals/seriesHasData.js +8 -0
  247. package/esm/internals/stacking/index.d.ts +1 -0
  248. package/esm/internals/stacking/index.js +1 -0
  249. package/esm/internals/stacking/offset/index.d.ts +1 -0
  250. package/esm/internals/stacking/offset/index.js +1 -0
  251. package/esm/internals/stacking/offset/offsetDiverging.d.ts +8 -0
  252. package/esm/internals/stacking/offset/offsetDiverging.js +47 -0
  253. package/esm/internals/{stackSeries.d.ts → stacking/stackSeries.d.ts} +8 -8
  254. package/esm/internals/{stackSeries.js → stacking/stackSeries.js} +8 -6
  255. package/esm/models/axis.d.ts +5 -4
  256. package/esm/models/featureFlags.d.ts +1 -0
  257. package/esm/models/featureFlags.js +1 -0
  258. package/esm/models/index.d.ts +1 -0
  259. package/esm/models/index.js +1 -0
  260. package/esm/models/seriesType/index.d.ts +3 -1
  261. package/esm/moduleAugmentation/barChartBatchRendererOnItemClick.d.ts +13 -0
  262. package/esm/moduleAugmentation/barChartBatchRendererOnItemClick.js +1 -0
  263. package/hooks/useFocusedItem.d.ts +1 -12
  264. package/hooks/useFocusedItem.js +1 -10
  265. package/hooks/useIsItemFocused.d.ts +4 -3
  266. package/hooks/useIsItemFocused.js +1 -1
  267. package/hooks/useIsItemFocusedGetter.d.ts +3 -2
  268. package/hooks/useIsItemFocusedGetter.js +2 -1
  269. package/index.js +1 -1
  270. package/internals/appendAtKey.d.ts +8 -0
  271. package/internals/appendAtKey.js +23 -0
  272. package/internals/commonNextFocusItem.d.ts +14 -0
  273. package/internals/commonNextFocusItem.js +97 -0
  274. package/internals/getBarDimensions.d.ts +1 -2
  275. package/internals/identifierSerializer.d.ts +9 -0
  276. package/internals/identifierSerializer.js +16 -0
  277. package/internals/index.d.ts +7 -3
  278. package/internals/index.js +55 -11
  279. package/internals/invertScale.d.ts +6 -2
  280. package/internals/invertScale.js +10 -1
  281. package/internals/plugins/allPlugins.d.ts +4 -3
  282. package/internals/plugins/allPlugins.js +2 -1
  283. package/internals/plugins/corePlugins/useChartSeries/serializeIdentifier.d.ts +14 -0
  284. package/internals/plugins/corePlugins/useChartSeries/serializeIdentifier.js +25 -0
  285. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +8 -1
  286. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +12 -1
  287. package/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.d.ts +11 -0
  288. package/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.js +81 -0
  289. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +20 -3
  290. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +10 -3
  291. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.ts +4 -0
  292. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.js +89 -0
  293. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.d.ts +13 -0
  294. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js +5 -0
  295. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.d.ts +2 -2
  296. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +11 -104
  297. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +5 -31
  298. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +10 -16
  299. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +6 -21
  300. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.d.ts +3 -0
  301. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.js +12 -0
  302. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.d.ts +15 -0
  303. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.js +23 -0
  304. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.d.ts +7 -0
  305. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.js +15 -0
  306. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.d.ts +11 -0
  307. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.js +23 -0
  308. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +2 -10
  309. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.js +1 -1
  310. package/internals/plugins/featurePlugins/useChartVisibilityManager/index.d.ts +3 -0
  311. package/internals/plugins/featurePlugins/useChartVisibilityManager/index.js +39 -0
  312. package/internals/plugins/featurePlugins/useChartVisibilityManager/isIdentifierVisible.d.ts +4 -0
  313. package/internals/plugins/featurePlugins/useChartVisibilityManager/isIdentifierVisible.js +12 -0
  314. package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.d.ts +3 -0
  315. package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.js +85 -0
  316. package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.selectors.d.ts +16 -0
  317. package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.selectors.js +25 -0
  318. package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.types.d.ts +90 -0
  319. package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.types.js +5 -0
  320. package/internals/plugins/featurePlugins/useChartVisibilityManager/visibilityParamToMap.d.ts +4 -0
  321. package/internals/plugins/featurePlugins/useChartVisibilityManager/visibilityParamToMap.js +18 -0
  322. package/internals/plugins/models/seriesConfig/identifierSerializer.types.d.ts +2 -0
  323. package/internals/plugins/models/seriesConfig/identifierSerializer.types.js +5 -0
  324. package/internals/plugins/models/seriesConfig/index.d.ts +2 -1
  325. package/internals/plugins/models/seriesConfig/index.js +11 -0
  326. package/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +9 -0
  327. package/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
  328. package/internals/seriesHasData.d.ts +4 -0
  329. package/internals/seriesHasData.js +14 -0
  330. package/internals/stacking/index.d.ts +1 -0
  331. package/internals/stacking/index.js +16 -0
  332. package/internals/stacking/offset/index.d.ts +1 -0
  333. package/internals/stacking/offset/index.js +16 -0
  334. package/internals/stacking/offset/offsetDiverging.d.ts +8 -0
  335. package/internals/stacking/offset/offsetDiverging.js +53 -0
  336. package/internals/{stackSeries.d.ts → stacking/stackSeries.d.ts} +8 -8
  337. package/internals/{stackSeries.js → stacking/stackSeries.js} +3 -1
  338. package/models/axis.d.ts +5 -4
  339. package/models/featureFlags.d.ts +1 -0
  340. package/models/featureFlags.js +5 -0
  341. package/models/index.d.ts +1 -0
  342. package/models/index.js +11 -0
  343. package/models/seriesType/index.d.ts +3 -1
  344. package/moduleAugmentation/barChartBatchRendererOnItemClick.d.ts +13 -0
  345. package/moduleAugmentation/barChartBatchRendererOnItemClick.js +5 -0
  346. package/package.json +14 -4
  347. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +0 -3
  348. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +0 -4
  349. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +0 -21
  350. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +0 -92
  351. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +0 -3
  352. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +0 -10
  353. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +0 -21
  354. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +0 -99
@@ -0,0 +1,16 @@
1
+ import type { VisibilityIdentifier } from "./useChartVisibilityManager.types.js";
2
+ import type { ChartSeriesConfig } from "../../models/index.js";
3
+ import type { ChartSeriesType } from "../../../../models/seriesType/config.js";
4
+ export declare const EMPTY_VISIBILITY_MAP: Map<any, any>;
5
+ /**
6
+ * Selector to get the hidden identifiers from the visibility manager.
7
+ */
8
+ export declare const selectorVisibilityMap: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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("./useChartVisibilityManager.types.js").UseChartVisibilityManagerState> & {
9
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
10
+ }) => Map<any, any>;
11
+ /**
12
+ * Selector that returns a function which returns whether an item is visible.
13
+ */
14
+ export declare const selectorIsItemVisibleGetter: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & 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("./useChartVisibilityManager.types.js").UseChartVisibilityManagerState> & {
15
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
16
+ }) => (seriesConfig: ChartSeriesConfig<ChartSeriesType>, identifier: VisibilityIdentifier) => boolean;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.selectorVisibilityMap = exports.selectorIsItemVisibleGetter = exports.EMPTY_VISIBILITY_MAP = void 0;
7
+ var _store = require("@mui/x-internals/store");
8
+ var _isIdentifierVisible = require("./isIdentifierVisible");
9
+ /**
10
+ * Selector to get the visibility manager state.
11
+ */
12
+ const selectVisibilityManager = state => state.visibilityManager;
13
+ const EMPTY_VISIBILITY_MAP = exports.EMPTY_VISIBILITY_MAP = new Map();
14
+
15
+ /**
16
+ * Selector to get the hidden identifiers from the visibility manager.
17
+ */
18
+ const selectorVisibilityMap = exports.selectorVisibilityMap = (0, _store.createSelector)(selectVisibilityManager, visibilityManager => visibilityManager?.visibilityMap ?? EMPTY_VISIBILITY_MAP);
19
+
20
+ /**
21
+ * Selector that returns a function which returns whether an item is visible.
22
+ */
23
+ const selectorIsItemVisibleGetter = exports.selectorIsItemVisibleGetter = (0, _store.createSelectorMemoized)(selectorVisibilityMap, visibilityMap => {
24
+ return (seriesConfig, identifier) => (0, _isIdentifierVisible.isIdentifierVisible)(visibilityMap, identifier, seriesConfig);
25
+ });
@@ -0,0 +1,90 @@
1
+ import { type ChartPluginSignature } from "../../models/index.js";
2
+ import { type UseChartSeriesSignature } from "../../corePlugins/useChartSeries/index.js";
3
+ import { type SeriesItemIdentifier } from "../../../../models/index.js";
4
+ import { type ChartSeriesType } from "../../../../models/seriesType/config.js";
5
+ export type VisibilityIdentifier<T extends ChartSeriesType = ChartSeriesType> = Partial<SeriesItemIdentifier<T>> & (SeriesItemIdentifier<T> extends {
6
+ subType?: infer U;
7
+ } ? {
8
+ type: T;
9
+ subType: U;
10
+ } : {
11
+ type: T;
12
+ });
13
+ export type VisibilityMap = Map<string, VisibilityIdentifier>;
14
+ export type IsItemVisibleFunction = {
15
+ /**
16
+ * Function to check if an item is visible based on its identifier.
17
+ *
18
+ * @param {VisibilityIdentifier} identifier The identifier of the item to check.
19
+ * @returns {boolean} Whether the item is visible.
20
+ */
21
+ (identifier: VisibilityIdentifier): boolean;
22
+ };
23
+ export interface UseChartVisibilityManagerInstance<T extends ChartSeriesType> {
24
+ /**
25
+ * Hide an item by its identifier.
26
+ *
27
+ * @param {VisibilityIdentifier} identifier The identifier of the item to hide.
28
+ */
29
+ hideItem(identifier: VisibilityIdentifier<T>): void;
30
+ /**
31
+ * Show an item by its identifier.
32
+ *
33
+ * @param {VisibilityIdentifier} identifier The identifier of the item to show.
34
+ */
35
+ showItem(identifier: VisibilityIdentifier<T>): void;
36
+ /**
37
+ * Toggle the visibility of an item by its identifier.
38
+ *
39
+ * @param {VisibilityIdentifier} identifier The identifier of the item to toggle.
40
+ */
41
+ toggleItemVisibility(identifier: VisibilityIdentifier<T>): void;
42
+ }
43
+ export interface UseChartVisibilityManagerParameters<T extends ChartSeriesType> {
44
+ /**
45
+ * Callback fired when any hidden identifiers change.
46
+ * @param {VisibilityIdentifier[]} hiddenItems The new list of hidden identifiers.
47
+ */
48
+ onHiddenItemsChange?: (hiddenItems: VisibilityIdentifier<T>[]) => void;
49
+ /**
50
+ * List of hidden series and/or items.
51
+ *
52
+ * Different chart types use different keys.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * [
57
+ * {
58
+ * type: 'pie',
59
+ * seriesId: 'series-1',
60
+ * dataIndex: 3,
61
+ * },
62
+ * {
63
+ * type: 'line',
64
+ * seriesId: 'series-2',
65
+ * }
66
+ * ]
67
+ * ```
68
+ */
69
+ hiddenItems?: VisibilityIdentifier<T>[];
70
+ }
71
+ export type UseChartVisibilityManagerDefaultizedParameters<T extends ChartSeriesType> = UseChartVisibilityManagerParameters<T>;
72
+ export interface UseChartVisibilityManagerState {
73
+ visibilityManager: {
74
+ /**
75
+ * Map of hidden identifiers by their serialized form.
76
+ */
77
+ visibilityMap: VisibilityMap;
78
+ /**
79
+ * Internal information to know if the user controls the state or not.
80
+ */
81
+ isControlled: boolean;
82
+ };
83
+ }
84
+ export type UseChartVisibilityManagerSignature<T extends ChartSeriesType = ChartSeriesType> = ChartPluginSignature<{
85
+ instance: UseChartVisibilityManagerInstance<T>;
86
+ state: UseChartVisibilityManagerState;
87
+ params: UseChartVisibilityManagerParameters<T>;
88
+ defaultizedParams: UseChartVisibilityManagerDefaultizedParameters<T>;
89
+ dependencies: [UseChartSeriesSignature];
90
+ }>;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,4 @@
1
+ import type { ChartSeriesType } from "../../../../models/seriesType/config.js";
2
+ import type { ChartSeriesConfig } from "../../models/index.js";
3
+ import type { VisibilityIdentifier, VisibilityMap } from "./useChartVisibilityManager.types.js";
4
+ export declare const visibilityParamToMap: (hiddenItems: VisibilityIdentifier[] | undefined, seriesConfig: ChartSeriesConfig<ChartSeriesType>) => VisibilityMap;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.visibilityParamToMap = void 0;
7
+ var _serializeIdentifier = require("../../corePlugins/useChartSeries/serializeIdentifier");
8
+ const visibilityParamToMap = (hiddenItems, seriesConfig) => {
9
+ const visibilityMap = new Map();
10
+ if (hiddenItems) {
11
+ hiddenItems.forEach(identifier => {
12
+ const uniqueId = (0, _serializeIdentifier.serializeIdentifier)(seriesConfig, identifier);
13
+ visibilityMap.set(uniqueId, identifier);
14
+ });
15
+ }
16
+ return visibilityMap;
17
+ };
18
+ exports.visibilityParamToMap = visibilityParamToMap;
@@ -0,0 +1,2 @@
1
+ import type { ChartSeriesType, ChartsSeriesConfig } from "../../../../models/seriesType/config.js";
2
+ export type IdentifierSerializer<TSeriesType extends ChartSeriesType> = (identifier: ChartsSeriesConfig[TSeriesType]['itemIdentifier']) => string;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -7,4 +7,5 @@ export * from "./seriesLayout.types.js";
7
7
  export * from "./tooltipGetter.types.js";
8
8
  export * from "./tooltipItemPositionGetter.types.js";
9
9
  export * from "./legendGetter.types.js";
10
- export * from "./getSeriesWithDefaultValues.types.js";
10
+ export * from "./getSeriesWithDefaultValues.types.js";
11
+ export * from "./identifierSerializer.types.js";
@@ -112,4 +112,15 @@ Object.keys(_getSeriesWithDefaultValues).forEach(function (key) {
112
112
  return _getSeriesWithDefaultValues[key];
113
113
  }
114
114
  });
115
+ });
116
+ var _identifierSerializer = require("./identifierSerializer.types");
117
+ Object.keys(_identifierSerializer).forEach(function (key) {
118
+ if (key === "default" || key === "__esModule") return;
119
+ if (key in exports && exports[key] === _identifierSerializer[key]) return;
120
+ Object.defineProperty(exports, key, {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _identifierSerializer[key];
124
+ }
125
+ });
115
126
  });
@@ -8,6 +8,8 @@ import { type PolarExtremumGetter } from "./polarExtremumGetter.types.js";
8
8
  import { type GetSeriesWithDefaultValues } from "./getSeriesWithDefaultValues.types.js";
9
9
  import { type TooltipItemPositionGetter } from "./tooltipItemPositionGetter.types.js";
10
10
  import { type SeriesLayoutGetter } from "./seriesLayout.types.js";
11
+ import { type KeyboardFocusHandler } from "../../featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
12
+ import { type IdentifierSerializer } from "./identifierSerializer.types.js";
11
13
  export type ChartSeriesTypeConfig<TSeriesType extends ChartSeriesType> = {
12
14
  seriesProcessor: SeriesProcessor<TSeriesType>;
13
15
  /**
@@ -19,6 +21,13 @@ export type ChartSeriesTypeConfig<TSeriesType extends ChartSeriesType> = {
19
21
  tooltipGetter: TooltipGetter<TSeriesType>;
20
22
  tooltipItemPositionGetter?: TooltipItemPositionGetter<TSeriesType>;
21
23
  getSeriesWithDefaultValues: GetSeriesWithDefaultValues<TSeriesType>;
24
+ keyboardFocusHandler?: KeyboardFocusHandler<TSeriesType>;
25
+ /**
26
+ * A function to serialize the series item identifier into a unique string.
27
+ * @param {ChartsSeriesConfig[TSeriesType]['itemIdentifier']} identifier The series item identifier.
28
+ * @returns {string} A unique string representation of the identifier.
29
+ */
30
+ identifierSerializer: IdentifierSerializer<TSeriesType>;
22
31
  } & (TSeriesType extends CartesianChartSeriesType ? {
23
32
  xExtremumGetter: CartesianExtremumGetter<TSeriesType>;
24
33
  yExtremumGetter: CartesianExtremumGetter<TSeriesType>;
@@ -1,6 +1,6 @@
1
1
  import type { ChartSeriesDefaultized, ChartSeriesType, ChartsSeriesConfig, DatasetType } from "../../../../models/seriesType/config.js";
2
2
  import type { SeriesId } from "../../../../models/seriesType/common.js";
3
- import type { StackingGroupsType } from "../../../stackSeries.js";
3
+ import type { StackingGroupsType } from "../../../stacking/index.js";
4
4
  export type SeriesProcessorParams<TSeriesType extends ChartSeriesType> = {
5
5
  series: Record<SeriesId, ChartsSeriesConfig[TSeriesType]['seriesInput']>;
6
6
  seriesOrder: SeriesId[];
@@ -0,0 +1,4 @@
1
+ import type { SeriesId } from "../models/seriesType/common.js";
2
+ import type { ChartSeriesType, ChartsSeriesConfig } from "../models/seriesType/config.js";
3
+ import type { ProcessedSeries } from "./plugins/corePlugins/useChartSeries/index.js";
4
+ export declare function seriesHasData(series: ProcessedSeries<keyof ChartsSeriesConfig>, type: ChartSeriesType, seriesId: SeriesId): boolean;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.seriesHasData = seriesHasData;
7
+ function seriesHasData(series, type, seriesId) {
8
+ // @ts-ignore sankey is not in MIT version
9
+ if (type === 'sankey') {
10
+ return false;
11
+ }
12
+ const data = series[type]?.series[seriesId]?.data;
13
+ return data != null && data.length > 0;
14
+ }
@@ -0,0 +1 @@
1
+ export * from "./stackSeries.js";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _stackSeries = require("./stackSeries");
7
+ Object.keys(_stackSeries).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _stackSeries[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _stackSeries[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1 @@
1
+ export * from "./offsetDiverging.js";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _offsetDiverging = require("./offsetDiverging");
7
+ Object.keys(_offsetDiverging).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _offsetDiverging[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _offsetDiverging[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1,8 @@
1
+ import type { Series } from '@mui/x-charts-vendor/d3-shape';
2
+ /**
3
+ * Positive values are stacked above zero, while negative values are stacked below zero.
4
+ *
5
+ * @param series A series generated by a stack generator.
6
+ * @param order An array of numeric indexes representing the stack order.
7
+ */
8
+ export declare function offsetDiverging(series: Series<any, any>[], order: Iterable<number>): void;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.offsetDiverging = offsetDiverging;
7
+ // Adapted from D3.js's offsetDiverging function https://github.com/d3/d3-shape/blob/main/src/offset/diverging.js
8
+ // Hidden series (with all zero values) affect the stacking in a different way in our implementation compared to the D3 behavior.
9
+ // The D3 stacking keep those values at the 0 "line", which creates issues when animating between hidden and visible states.
10
+ // In our modification, we stack them on top/below already stacked items according to the sign of their original value.
11
+ // A hidden negative value will be placed below all the already stacked negative values
12
+
13
+ /**
14
+ * Positive values are stacked above zero, while negative values are stacked below zero.
15
+ *
16
+ * @param series A series generated by a stack generator.
17
+ * @param order An array of numeric indexes representing the stack order.
18
+ */
19
+ function offsetDiverging(series, order) {
20
+ if (series.length === 0) {
21
+ return;
22
+ }
23
+ const seriesCount = series.length;
24
+ const numericOrder = order;
25
+ const pointCount = series[numericOrder[0]].length;
26
+ for (let pointIndex = 0; pointIndex < pointCount; pointIndex += 1) {
27
+ let positiveSum = 0;
28
+ let negativeSum = 0;
29
+ for (let seriesIndex = 0; seriesIndex < seriesCount; seriesIndex += 1) {
30
+ const currentSeries = series[numericOrder[seriesIndex]];
31
+ const dataPoint = currentSeries[pointIndex];
32
+ const difference = dataPoint[1] - dataPoint[0];
33
+ if (difference > 0) {
34
+ dataPoint[0] = positiveSum;
35
+ positiveSum += difference;
36
+ dataPoint[1] = positiveSum;
37
+ } else if (difference < 0) {
38
+ dataPoint[1] = negativeSum;
39
+ negativeSum += difference;
40
+ dataPoint[0] = negativeSum;
41
+ } else if (dataPoint.data[currentSeries.key] > 0) {
42
+ dataPoint[0] = positiveSum;
43
+ dataPoint[1] = positiveSum;
44
+ } else if (dataPoint.data[currentSeries.key] < 0) {
45
+ dataPoint[1] = negativeSum;
46
+ dataPoint[0] = negativeSum;
47
+ } else {
48
+ dataPoint[0] = 0;
49
+ dataPoint[1] = 0;
50
+ }
51
+ }
52
+ }
53
+ }
@@ -1,6 +1,6 @@
1
- import { stackOrderAppearance as d3StackOrderAppearance, stackOrderAscending as d3StackOrderAscending, stackOrderDescending as d3StackOrderDescending, stackOrderInsideOut as d3StackOrderInsideOut, stackOrderNone as d3StackOrderNone, stackOrderReverse as d3StackOrderReverse, stackOffsetExpand as d3StackOffsetExpand, stackOffsetDiverging as d3StackOffsetDiverging, stackOffsetNone as d3StackOffsetNone, stackOffsetSilhouette as d3StackOffsetSilhouette, stackOffsetWiggle as d3StackOffsetWiggle, type Series } from '@mui/x-charts-vendor/d3-shape';
2
- import type { StackOffsetType, StackOrderType } from "../models/stacking.js";
3
- import { type SeriesId, type StackableSeriesType } from "../models/seriesType/common.js";
1
+ import { stackOrderNone as d3StackOrderNone, stackOrderReverse as d3StackOrderReverse, stackOrderAppearance as d3OrderAppearance, stackOrderAscending as d3OrderAscending, stackOrderDescending as d3OrderDescending, stackOrderInsideOut as d3OrderInsideOut, stackOffsetExpand as d3StackOffsetExpand, stackOffsetNone as d3StackOffsetNone, stackOffsetSilhouette as d3StackOffsetSilhouette, stackOffsetWiggle as d3StackOffsetWiggle, type Series } from '@mui/x-charts-vendor/d3-shape';
2
+ import type { StackOffsetType, StackOrderType } from "../../models/stacking.js";
3
+ import { type SeriesId, type StackableSeriesType } from "../../models/seriesType/common.js";
4
4
  type FormatterParams<T> = {
5
5
  series: Record<SeriesId, T>;
6
6
  seriesOrder: SeriesId[];
@@ -18,19 +18,19 @@ export declare const StackOrder: {
18
18
  /**
19
19
  * Series order such that the earliest series (according to the maximum value) is at the bottom.
20
20
  * */
21
- appearance: typeof d3StackOrderAppearance;
21
+ appearance: typeof d3OrderAppearance;
22
22
  /**
23
23
  * Series order such that the smallest series (according to the sum of values) is at the bottom.
24
24
  * */
25
- ascending: typeof d3StackOrderAscending;
25
+ ascending: typeof d3OrderAscending;
26
26
  /**
27
27
  * Series order such that the largest series (according to the sum of values) is at the bottom.
28
28
  */
29
- descending: typeof d3StackOrderDescending;
29
+ descending: typeof d3OrderDescending;
30
30
  /**
31
31
  * Series order such that the earliest series (according to the maximum value) are on the inside and the later series are on the outside. This order is recommended for streamgraphs in conjunction with the wiggle offset. See Stacked Graphs—Geometry & Aesthetics by Byron & Wattenberg for more information.
32
32
  */
33
- insideOut: typeof d3StackOrderInsideOut;
33
+ insideOut: typeof d3OrderInsideOut;
34
34
  /**
35
35
  * Given series order [0, 1, … n - 1] where n is the number of elements in series. Thus, the stack order is given by the key accessor.
36
36
  */
@@ -48,7 +48,7 @@ export declare const StackOffset: {
48
48
  /**
49
49
  * Positive values are stacked above zero, negative values are stacked below zero, and zero values are stacked at zero.
50
50
  * */
51
- diverging: typeof d3StackOffsetDiverging;
51
+ diverging: (series: Series<any, any>, order: Iterable<number>) => void;
52
52
  /**
53
53
  * Applies a zero baseline.
54
54
  * */
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getStackingGroups = exports.StackOrder = exports.StackOffset = void 0;
7
7
  var _d3Shape = require("@mui/x-charts-vendor/d3-shape");
8
+ var _offset = require("./offset");
8
9
  const StackOrder = exports.StackOrder = {
9
10
  /**
10
11
  * Series order such that the earliest series (according to the maximum value) is at the bottom.
@@ -39,7 +40,8 @@ const StackOffset = exports.StackOffset = {
39
40
  /**
40
41
  * Positive values are stacked above zero, negative values are stacked below zero, and zero values are stacked at zero.
41
42
  * */
42
- diverging: _d3Shape.stackOffsetDiverging,
43
+ // @ts-expect-error, d3 types are wrong, our custom function implements the correct signature
44
+ diverging: _offset.offsetDiverging,
43
45
  /**
44
46
  * Applies a zero baseline.
45
47
  * */
package/models/axis.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import type { ScaleBand, ScaleLinear, ScaleLogarithmic, ScaleOrdinal, ScalePoint, ScalePower, ScaleSequential, ScaleThreshold, ScaleTime, ScaleSymLog, NumberValue } from '@mui/x-charts-vendor/d3-scale';
2
2
  import { type SxProps } from '@mui/system/styleFunctionSx';
3
- import { type MakeOptional, type MakeRequired } from '@mui/x-internals/types';
3
+ import { type HasProperty, type MakeOptional, type MakeRequired } from '@mui/x-internals/types';
4
4
  import type { DefaultizedZoomOptions } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
5
5
  import { type ChartsAxisClasses } from "../ChartsAxis/axisClasses.js";
6
6
  import type { TickParams } from "../hooks/useTicks.js";
7
7
  import type { ChartsTextProps } from "../ChartsText/index.js";
8
8
  import type { ContinuousColorConfig, OrdinalColorConfig, PiecewiseColorConfig } from "./colorMapping.js";
9
9
  import type { OrdinalTimeTicks } from "./timeTicks.js";
10
+ import { type ChartsTypeFeatureFlags } from "./featureFlags.js";
10
11
  export type AxisId = string | number;
11
12
  export type D3Scale<Domain extends {
12
13
  toString(): string;
@@ -133,7 +134,7 @@ type AxisSideConfig<AxisProps extends ChartsAxisProps> = AxisProps extends Chart
133
134
  position?: 'top' | 'bottom' | 'none';
134
135
  /**
135
136
  * The height of the axis.
136
- * @default 30
137
+ * @default 45 if an axis label is provided, 25 otherwise.
137
138
  */
138
139
  height?: number;
139
140
  } : AxisProps extends ChartsYAxisProps ? {
@@ -149,7 +150,7 @@ type AxisSideConfig<AxisProps extends ChartsAxisProps> = AxisProps extends Chart
149
150
  position?: 'left' | 'right' | 'none';
150
151
  /**
151
152
  * The width of the axis.
152
- * @default 30
153
+ * @default 65 if an axis label is provided, 45 otherwise.
153
154
  */
154
155
  width?: number;
155
156
  } : {
@@ -521,7 +522,7 @@ export interface ChartsAxisData {
521
522
  /**
522
523
  * The mapping of series ids to their value for this particular axis index.
523
524
  */
524
- seriesValues: Record<string, number | null | undefined>;
525
+ seriesValues: Record<string, HasProperty<ChartsTypeFeatureFlags, 'seriesValueOverride'> extends true ? ChartsTypeFeatureFlags['seriesValuesOverride'] : number | null | undefined>;
525
526
  }
526
527
  export type CartesianDirection = 'x' | 'y';
527
528
  export type PolarDirection = 'rotation' | 'radius';
@@ -0,0 +1 @@
1
+ export interface ChartsTypeFeatureFlags {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/models/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./seriesType/index.js";
2
2
  export * from "./stacking.js";
3
3
  export * from "./slots/index.js";
4
+ export * from "./featureFlags.js";
4
5
  export type { AxisConfig, ChartsYAxisProps, ChartsXAxisProps, ScaleName, ContinuousScaleName, ChartsAxisData, XAxis, YAxis, RadiusAxis, RotationAxis, AxisItemIdentifier, AxisValueFormatterContext } from "./axis.js";
5
6
  export type { PropsFromSlot } from '@mui/x-internals/slots';
6
7
  export type { Position } from "./position.js";
package/models/index.js CHANGED
@@ -35,4 +35,15 @@ Object.keys(_slots).forEach(function (key) {
35
35
  return _slots[key];
36
36
  }
37
37
  });
38
+ });
39
+ var _featureFlags = require("./featureFlags");
40
+ Object.keys(_featureFlags).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _featureFlags[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _featureFlags[key];
47
+ }
48
+ });
38
49
  });
@@ -1,4 +1,5 @@
1
- import { type BarSeriesType, type DefaultizedBarSeriesType } from "./bar.js";
1
+ import type { DefaultizedProps } from '@mui/x-internals/types';
2
+ import type { BarSeriesType, DefaultizedBarSeriesType } from "./bar.js";
2
3
  import { type CartesianChartSeriesType, type ChartSeriesType, type ChartsSeriesConfig, type StackableChartSeriesType } from "./config.js";
3
4
  type AllSeriesType<T extends ChartSeriesType = ChartSeriesType> = ChartsSeriesConfig[T]['seriesProp'];
4
5
  /**
@@ -19,6 +20,7 @@ type DefaultizedCartesianSeriesType = DefaultizedSeriesType<CartesianChartSeries
19
20
  type StackableSeriesType = DefaultizedSeriesType<StackableChartSeriesType>;
20
21
  export type SeriesItemIdentifier<T extends ChartSeriesType = ChartSeriesType> = ChartsSeriesConfig[T]['itemIdentifier'];
21
22
  export type SeriesItemIdentifierWithData<T extends ChartSeriesType = ChartSeriesType> = ChartsSeriesConfig[T]['itemIdentifierWithData'];
23
+ export type FocusedItemIdentifier<T extends ChartSeriesType = ChartSeriesType> = T extends 'line' ? DefaultizedProps<ChartsSeriesConfig[T]['itemIdentifier'], 'dataIndex'> : ChartsSeriesConfig[T]['itemIdentifier'];
22
24
  export { type SeriesId } from "./common.js";
23
25
  export * from "./line.js";
24
26
  export * from "./bar.js";
@@ -0,0 +1,13 @@
1
+ import type * as React from 'react';
2
+ import type { BarItemIdentifier } from "../models/index.js";
3
+ declare module '@mui/x-charts/BarChart' {
4
+ interface BarPlotProps {
5
+ /**
6
+ * Callback fired when a bar item is clicked.
7
+ * @param {MouseEvent | React.MouseEvent<SVGElement, MouseEvent>} event The event source of the callback.
8
+ * It is a native MouseEvent for `svg-batch` renderer and a React MouseEvent for `svg-single` renderer.
9
+ * @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
10
+ */
11
+ onItemClick?(event: MouseEvent | React.MouseEvent<SVGElement, MouseEvent>, barItemIdentifier: BarItemIdentifier): void;
12
+ }
13
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-charts",
3
- "version": "8.22.1",
3
+ "version": "8.24.0",
4
4
  "author": "MUI Team",
5
5
  "description": "The community edition of MUI X Charts components.",
6
6
  "license": "MIT",
@@ -34,9 +34,9 @@
34
34
  "prop-types": "^15.8.1",
35
35
  "reselect": "^5.1.1",
36
36
  "use-sync-external-store": "^1.6.0",
37
- "@mui/x-charts-vendor": "8.22.0",
38
- "@mui/x-internals": "8.22.0",
39
- "@mui/x-internal-gestures": "0.3.6"
37
+ "@mui/x-charts-vendor": "8.23.0",
38
+ "@mui/x-internal-gestures": "0.4.0",
39
+ "@mui/x-internals": "8.24.0"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "@emotion/react": "^11.9.0",
@@ -82,6 +82,16 @@
82
82
  "default": "./esm/*/index.js"
83
83
  }
84
84
  },
85
+ "./moduleAugmentation/*": {
86
+ "require": {
87
+ "types": "./moduleAugmentation/*.d.ts",
88
+ "default": "./moduleAugmentation/*.js"
89
+ },
90
+ "default": {
91
+ "types": "./esm/moduleAugmentation/*.d.ts",
92
+ "default": "./esm/moduleAugmentation/*.js"
93
+ }
94
+ },
85
95
  "./esm": null
86
96
  }
87
97
  }
@@ -1,3 +0,0 @@
1
- import { type ChartSeriesType } from "../../../../models/seriesType/config.js";
2
- import { type FocusableSeriesTypes } from "./useChartKeyboardNavigation.types.js";
3
- export declare function isFocusableSeriesType(type: ChartSeriesType): type is FocusableSeriesTypes;
@@ -1,4 +0,0 @@
1
- const FOCUSABLE_SERIES_TYPES = new Set(['bar', 'line', 'scatter', 'pie']);
2
- export function isFocusableSeriesType(type) {
3
- return FOCUSABLE_SERIES_TYPES.has(type);
4
- }
@@ -1,21 +0,0 @@
1
- import { type ChartSeriesType, type ChartsSeriesConfig } from "../../../../models/seriesType/config.js";
2
- import { type SeriesId } from "../../../../models/seriesType/common.js";
3
- import { type ProcessedSeries } from "../../corePlugins/useChartSeries/index.js";
4
- import { type FocusableSeriesTypes } from "./useChartKeyboardNavigation.types.js";
5
- /**
6
- * Returns the next series type and id that contains some data.
7
- * Returns `null` if no other series have data.
8
- */
9
- export declare function getNextSeriesWithData(series: ProcessedSeries<keyof ChartsSeriesConfig>, type?: FocusableSeriesTypes, seriesId?: SeriesId): {
10
- type: FocusableSeriesTypes;
11
- seriesId: SeriesId;
12
- } | null;
13
- /**
14
- * Returns the previous series type and id that contains some data.
15
- * Returns `null` if no other series have data.
16
- */
17
- export declare function getPreviousSeriesWithData(series: ProcessedSeries<keyof ChartsSeriesConfig>, type?: FocusableSeriesTypes, seriesId?: SeriesId): {
18
- type: FocusableSeriesTypes;
19
- seriesId: SeriesId;
20
- } | null;
21
- export declare function seriesHasData(series: ProcessedSeries<keyof ChartsSeriesConfig>, type: ChartSeriesType, seriesId: SeriesId): boolean | undefined;