@mui/x-charts 6.0.0-alpha.8 → 6.18.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 (286) hide show
  1. package/BarChart/BarChart.d.ts +19 -5
  2. package/BarChart/BarChart.js +52 -13
  3. package/BarChart/BarElement.d.ts +1319 -4
  4. package/BarChart/BarElement.js +10 -10
  5. package/BarChart/BarPlot.d.ts +17 -1
  6. package/BarChart/BarPlot.js +152 -66
  7. package/BarChart/formatter.js +2 -3
  8. package/BarChart/legend.js +1 -2
  9. package/CHANGELOG.md +786 -48
  10. package/ChartContainer/index.js +7 -5
  11. package/ChartsAxis/ChartsAxis.d.ts +9 -0
  12. package/ChartsAxis/ChartsAxis.js +28 -2
  13. package/ChartsAxis/axisClasses.d.ts +1 -1
  14. package/ChartsAxis/axisClasses.js +1 -2
  15. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +21 -0
  16. package/ChartsAxisHighlight/ChartsAxisHighlight.js +61 -22
  17. package/ChartsClipPath/ChartsClipPath.d.ts +5 -0
  18. package/ChartsClipPath/ChartsClipPath.js +7 -2
  19. package/ChartsLegend/ChartsLegend.d.ts +44 -24
  20. package/ChartsLegend/ChartsLegend.js +192 -150
  21. package/ChartsLegend/chartsLegendClasses.js +1 -2
  22. package/ChartsLegend/utils.d.ts +1 -6
  23. package/ChartsSurface.d.ts +1 -1
  24. package/ChartsSurface.js +9 -18
  25. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -0
  26. package/ChartsTooltip/ChartsAxisTooltipContent.js +46 -32
  27. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +3 -2
  28. package/ChartsTooltip/ChartsItemTooltipContent.js +18 -9
  29. package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
  30. package/ChartsTooltip/ChartsTooltip.js +62 -18
  31. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -10
  32. package/ChartsTooltip/ChartsTooltipTable.js +22 -20
  33. package/ChartsTooltip/tooltipClasses.js +1 -2
  34. package/ChartsTooltip/utils.js +2 -2
  35. package/ChartsXAxis/ChartsXAxis.d.ts +9 -0
  36. package/ChartsXAxis/ChartsXAxis.js +161 -40
  37. package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
  38. package/ChartsYAxis/ChartsYAxis.js +86 -33
  39. package/LineChart/AreaElement.d.ts +12 -2
  40. package/LineChart/AreaElement.js +14 -6
  41. package/LineChart/AreaPlot.d.ts +11 -0
  42. package/LineChart/AreaPlot.js +27 -8
  43. package/LineChart/LineChart.d.ts +21 -3
  44. package/LineChart/LineChart.js +61 -14
  45. package/LineChart/LineElement.d.ts +12 -2
  46. package/LineChart/LineElement.js +14 -6
  47. package/LineChart/LineHighlightElement.d.ts +31 -0
  48. package/LineChart/LineHighlightElement.js +88 -0
  49. package/LineChart/LineHighlightPlot.d.ts +35 -0
  50. package/LineChart/LineHighlightPlot.js +110 -0
  51. package/LineChart/LinePlot.d.ts +10 -0
  52. package/LineChart/LinePlot.js +25 -12
  53. package/LineChart/MarkElement.d.ts +11 -1
  54. package/LineChart/MarkElement.js +15 -9
  55. package/LineChart/MarkPlot.d.ts +10 -0
  56. package/LineChart/MarkPlot.js +62 -15
  57. package/LineChart/formatter.js +5 -5
  58. package/LineChart/index.d.ts +2 -0
  59. package/LineChart/index.js +20 -0
  60. package/LineChart/legend.js +1 -2
  61. package/PieChart/PieArc.d.ts +12 -14
  62. package/PieChart/PieArc.js +28 -60
  63. package/PieChart/PieArcLabel.d.ts +9 -10
  64. package/PieChart/PieArcLabel.js +46 -38
  65. package/PieChart/PieArcLabelPlot.d.ts +28 -0
  66. package/PieChart/PieArcLabelPlot.js +99 -0
  67. package/PieChart/PieArcPlot.d.ts +35 -0
  68. package/PieChart/PieArcPlot.js +92 -0
  69. package/PieChart/PieChart.d.ts +19 -5
  70. package/PieChart/PieChart.js +61 -14
  71. package/PieChart/PiePlot.d.ts +15 -9
  72. package/PieChart/PiePlot.js +77 -55
  73. package/PieChart/dataTransform/transition.d.ts +4 -0
  74. package/PieChart/dataTransform/transition.js +136 -0
  75. package/PieChart/dataTransform/useTransformData.d.ts +15 -0
  76. package/PieChart/dataTransform/useTransformData.js +67 -0
  77. package/PieChart/formatter.js +1 -2
  78. package/PieChart/legend.js +1 -2
  79. package/README.md +8 -14
  80. package/ResponsiveChartContainer/index.js +7 -8
  81. package/ScatterChart/Scatter.d.ts +10 -0
  82. package/ScatterChart/Scatter.js +12 -2
  83. package/ScatterChart/ScatterChart.d.ts +16 -3
  84. package/ScatterChart/ScatterChart.js +43 -12
  85. package/ScatterChart/ScatterPlot.d.ts +10 -0
  86. package/ScatterChart/ScatterPlot.js +12 -2
  87. package/ScatterChart/formatter.js +1 -2
  88. package/ScatterChart/legend.js +1 -2
  89. package/SparkLineChart/SparkLineChart.d.ts +13 -3
  90. package/SparkLineChart/SparkLineChart.js +34 -18
  91. package/colorPalettes/colorPalettes.js +6 -12
  92. package/constants.js +5 -8
  93. package/context/CartesianContextProvider.d.ts +5 -0
  94. package/context/CartesianContextProvider.js +31 -16
  95. package/context/DrawingProvider.d.ts +7 -0
  96. package/context/DrawingProvider.js +12 -6
  97. package/context/HighlightProvider.js +3 -4
  98. package/context/InteractionProvider.js +3 -4
  99. package/context/SeriesContextProvider.js +3 -4
  100. package/esm/BarChart/BarChart.js +49 -9
  101. package/esm/BarChart/BarElement.js +7 -4
  102. package/esm/BarChart/BarPlot.js +152 -67
  103. package/esm/BarChart/formatter.js +1 -1
  104. package/esm/ChartContainer/index.js +3 -0
  105. package/esm/ChartsAxis/ChartsAxis.js +26 -0
  106. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  107. package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
  108. package/esm/ChartsLegend/ChartsLegend.js +188 -142
  109. package/esm/ChartsSurface.js +4 -12
  110. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  111. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  112. package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
  113. package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
  114. package/esm/ChartsXAxis/ChartsXAxis.js +158 -37
  115. package/esm/ChartsYAxis/ChartsYAxis.js +83 -30
  116. package/esm/LineChart/AreaElement.js +10 -0
  117. package/esm/LineChart/AreaPlot.js +26 -6
  118. package/esm/LineChart/LineChart.js +58 -10
  119. package/esm/LineChart/LineElement.js +10 -0
  120. package/esm/LineChart/LineHighlightElement.js +78 -0
  121. package/esm/LineChart/LineHighlightPlot.js +103 -0
  122. package/esm/LineChart/LinePlot.js +25 -14
  123. package/esm/LineChart/MarkElement.js +12 -5
  124. package/esm/LineChart/MarkPlot.js +60 -13
  125. package/esm/LineChart/formatter.js +7 -3
  126. package/esm/LineChart/index.js +3 -1
  127. package/esm/PieChart/PieArc.js +26 -58
  128. package/esm/PieChart/PieArcLabel.js +43 -34
  129. package/esm/PieChart/PieArcLabelPlot.js +92 -0
  130. package/esm/PieChart/PieArcPlot.js +84 -0
  131. package/esm/PieChart/PieChart.js +59 -12
  132. package/esm/PieChart/PiePlot.js +76 -57
  133. package/esm/PieChart/dataTransform/transition.js +130 -0
  134. package/esm/PieChart/dataTransform/useTransformData.js +59 -0
  135. package/esm/ResponsiveChartContainer/index.js +3 -3
  136. package/esm/ScatterChart/Scatter.js +10 -0
  137. package/esm/ScatterChart/ScatterChart.js +40 -8
  138. package/esm/ScatterChart/ScatterPlot.js +10 -0
  139. package/esm/SparkLineChart/SparkLineChart.js +32 -15
  140. package/esm/constants.js +1 -1
  141. package/esm/context/CartesianContextProvider.js +30 -14
  142. package/esm/context/DrawingProvider.js +8 -0
  143. package/esm/hooks/useChartDimensions.js +2 -0
  144. package/esm/hooks/useMounted.js +16 -0
  145. package/esm/hooks/useReducedMotion.js +27 -0
  146. package/esm/hooks/useTicks.js +15 -9
  147. package/esm/internals/components/AxisSharedComponents.js +15 -70
  148. package/esm/internals/components/ChartsText.js +77 -0
  149. package/esm/internals/domUtils.js +113 -0
  150. package/esm/internals/geometry.js +36 -0
  151. package/hooks/useAxisEvents.js +2 -2
  152. package/hooks/useChartDimensions.d.ts +2 -0
  153. package/hooks/useChartDimensions.js +5 -4
  154. package/hooks/useDrawingArea.js +2 -2
  155. package/hooks/useInteractionItemProps.js +2 -2
  156. package/hooks/useMounted.d.ts +1 -0
  157. package/hooks/useMounted.js +25 -0
  158. package/hooks/useReducedMotion.d.ts +8 -0
  159. package/hooks/useReducedMotion.js +33 -0
  160. package/hooks/useScale.d.ts +2 -2
  161. package/hooks/useScale.js +2 -2
  162. package/hooks/useTicks.d.ts +19 -11
  163. package/hooks/useTicks.js +19 -14
  164. package/index.js +1 -1
  165. package/internals/components/AxisSharedComponents.d.ts +0 -4
  166. package/internals/components/AxisSharedComponents.js +18 -78
  167. package/internals/components/ChartsText.d.ts +35 -0
  168. package/internals/components/ChartsText.js +87 -0
  169. package/internals/defaultizeColor.d.ts +8 -1
  170. package/internals/defaultizeValueFormatter.js +1 -2
  171. package/internals/domUtils.d.ts +13 -0
  172. package/internals/domUtils.js +122 -0
  173. package/internals/geometry.d.ts +9 -0
  174. package/internals/geometry.js +42 -0
  175. package/internals/stackSeries.js +2 -4
  176. package/legacy/BarChart/BarChart.js +49 -9
  177. package/legacy/BarChart/BarElement.js +6 -3
  178. package/legacy/BarChart/BarPlot.js +151 -63
  179. package/legacy/BarChart/formatter.js +1 -1
  180. package/legacy/ChartContainer/index.js +3 -0
  181. package/legacy/ChartsAxis/ChartsAxis.js +26 -0
  182. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
  183. package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
  184. package/legacy/ChartsLegend/ChartsLegend.js +203 -140
  185. package/legacy/ChartsSurface.js +3 -12
  186. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
  187. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  188. package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
  189. package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
  190. package/legacy/ChartsXAxis/ChartsXAxis.js +162 -39
  191. package/legacy/ChartsYAxis/ChartsYAxis.js +83 -30
  192. package/legacy/LineChart/AreaElement.js +10 -0
  193. package/legacy/LineChart/AreaPlot.js +31 -7
  194. package/legacy/LineChart/LineChart.js +58 -10
  195. package/legacy/LineChart/LineElement.js +10 -0
  196. package/legacy/LineChart/LineHighlightElement.js +77 -0
  197. package/legacy/LineChart/LineHighlightPlot.js +96 -0
  198. package/legacy/LineChart/LinePlot.js +29 -12
  199. package/legacy/LineChart/MarkElement.js +12 -5
  200. package/legacy/LineChart/MarkPlot.js +50 -5
  201. package/legacy/LineChart/formatter.js +7 -3
  202. package/legacy/LineChart/index.js +3 -1
  203. package/legacy/PieChart/PieArc.js +30 -62
  204. package/legacy/PieChart/PieArcLabel.js +48 -34
  205. package/legacy/PieChart/PieArcLabelPlot.js +93 -0
  206. package/legacy/PieChart/PieArcPlot.js +84 -0
  207. package/legacy/PieChart/PieChart.js +59 -12
  208. package/legacy/PieChart/PiePlot.js +76 -59
  209. package/legacy/PieChart/dataTransform/transition.js +142 -0
  210. package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
  211. package/legacy/ResponsiveChartContainer/index.js +3 -3
  212. package/legacy/ScatterChart/Scatter.js +10 -0
  213. package/legacy/ScatterChart/ScatterChart.js +40 -8
  214. package/legacy/ScatterChart/ScatterPlot.js +10 -0
  215. package/legacy/SparkLineChart/SparkLineChart.js +32 -13
  216. package/legacy/constants.js +1 -1
  217. package/legacy/context/CartesianContextProvider.js +30 -14
  218. package/legacy/context/DrawingProvider.js +8 -0
  219. package/legacy/hooks/useChartDimensions.js +2 -0
  220. package/legacy/hooks/useMounted.js +21 -0
  221. package/legacy/hooks/useReducedMotion.js +27 -0
  222. package/legacy/hooks/useTicks.js +16 -9
  223. package/legacy/index.js +1 -1
  224. package/legacy/internals/components/AxisSharedComponents.js +11 -65
  225. package/legacy/internals/components/ChartsText.js +79 -0
  226. package/legacy/internals/domUtils.js +121 -0
  227. package/legacy/internals/geometry.js +37 -0
  228. package/models/axis.d.ts +27 -9
  229. package/models/layout.d.ts +7 -6
  230. package/models/seriesType/line.d.ts +39 -1
  231. package/models/seriesType/pie.d.ts +5 -1
  232. package/modern/BarChart/BarChart.js +49 -9
  233. package/modern/BarChart/BarElement.js +7 -4
  234. package/modern/BarChart/BarPlot.js +149 -65
  235. package/modern/BarChart/formatter.js +1 -1
  236. package/modern/ChartContainer/index.js +3 -0
  237. package/modern/ChartsAxis/ChartsAxis.js +26 -0
  238. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  239. package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
  240. package/modern/ChartsLegend/ChartsLegend.js +188 -142
  241. package/modern/ChartsSurface.js +4 -12
  242. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  243. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  244. package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
  245. package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
  246. package/modern/ChartsXAxis/ChartsXAxis.js +158 -37
  247. package/modern/ChartsYAxis/ChartsYAxis.js +83 -30
  248. package/modern/LineChart/AreaElement.js +10 -0
  249. package/modern/LineChart/AreaPlot.js +25 -6
  250. package/modern/LineChart/LineChart.js +58 -10
  251. package/modern/LineChart/LineElement.js +10 -0
  252. package/modern/LineChart/LineHighlightElement.js +78 -0
  253. package/modern/LineChart/LineHighlightPlot.js +102 -0
  254. package/modern/LineChart/LinePlot.js +23 -10
  255. package/modern/LineChart/MarkElement.js +12 -5
  256. package/modern/LineChart/MarkPlot.js +60 -13
  257. package/modern/LineChart/formatter.js +4 -3
  258. package/modern/LineChart/index.js +3 -1
  259. package/modern/PieChart/PieArc.js +26 -57
  260. package/modern/PieChart/PieArcLabel.js +43 -34
  261. package/modern/PieChart/PieArcLabelPlot.js +90 -0
  262. package/modern/PieChart/PieArcPlot.js +83 -0
  263. package/modern/PieChart/PieChart.js +59 -12
  264. package/modern/PieChart/PiePlot.js +76 -55
  265. package/modern/PieChart/dataTransform/transition.js +130 -0
  266. package/modern/PieChart/dataTransform/useTransformData.js +58 -0
  267. package/modern/ResponsiveChartContainer/index.js +3 -3
  268. package/modern/ScatterChart/Scatter.js +10 -0
  269. package/modern/ScatterChart/ScatterChart.js +40 -8
  270. package/modern/ScatterChart/ScatterPlot.js +10 -0
  271. package/modern/SparkLineChart/SparkLineChart.js +32 -15
  272. package/modern/constants.js +1 -1
  273. package/modern/context/CartesianContextProvider.js +29 -13
  274. package/modern/context/DrawingProvider.js +8 -0
  275. package/modern/hooks/useChartDimensions.js +2 -0
  276. package/modern/hooks/useMounted.js +16 -0
  277. package/modern/hooks/useReducedMotion.js +27 -0
  278. package/modern/hooks/useTicks.js +15 -9
  279. package/modern/index.js +1 -1
  280. package/modern/internals/components/AxisSharedComponents.js +15 -70
  281. package/modern/internals/components/ChartsText.js +77 -0
  282. package/modern/internals/domUtils.js +113 -0
  283. package/modern/internals/geometry.js +36 -0
  284. package/package.json +9 -6
  285. package/themeAugmentation/components.d.ts +1 -0
  286. package/themeAugmentation/overrides.d.ts +2 -0
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.LineHighlightPlot = LineHighlightPlot;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _SeriesContextProvider = require("../context/SeriesContextProvider");
13
+ var _CartesianContextProvider = require("../context/CartesianContextProvider");
14
+ var _LineHighlightElement = require("./LineHighlightElement");
15
+ var _useScale = require("../hooks/useScale");
16
+ var _InteractionProvider = require("../context/InteractionProvider");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ const _excluded = ["slots", "slotProps"];
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
+ /**
22
+ * Demos:
23
+ *
24
+ * - [Lines](https://mui.com/x/react-charts/lines/)
25
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
26
+ *
27
+ * API:
28
+ *
29
+ * - [LineHighlightPlot API](https://mui.com/x/api/charts/line-highlight-plot/)
30
+ */
31
+ function LineHighlightPlot(props) {
32
+ const {
33
+ slots,
34
+ slotProps
35
+ } = props,
36
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
37
+ const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).line;
38
+ const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
39
+ const {
40
+ axis
41
+ } = React.useContext(_InteractionProvider.InteractionContext);
42
+ const highlightedIndex = axis.x?.index;
43
+ if (highlightedIndex === undefined) {
44
+ return null;
45
+ }
46
+ if (seriesData === undefined) {
47
+ return null;
48
+ }
49
+ const {
50
+ series,
51
+ stackingGroups
52
+ } = seriesData;
53
+ const {
54
+ xAxis,
55
+ yAxis,
56
+ xAxisIds,
57
+ yAxisIds
58
+ } = axisData;
59
+ const defaultXAxisId = xAxisIds[0];
60
+ const defaultYAxisId = yAxisIds[0];
61
+ const Element = slots?.lineHighlight ?? _LineHighlightElement.LineHighlightElement;
62
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
63
+ children: stackingGroups.flatMap(({
64
+ ids: groupIds
65
+ }) => {
66
+ return groupIds.flatMap(seriesId => {
67
+ const {
68
+ xAxisKey = defaultXAxisId,
69
+ yAxisKey = defaultYAxisId,
70
+ stackedData,
71
+ data,
72
+ disableHighlight
73
+ } = series[seriesId];
74
+ if (disableHighlight || data[highlightedIndex] == null) {
75
+ return null;
76
+ }
77
+ const xScale = (0, _useScale.getValueToPositionMapper)(xAxis[xAxisKey].scale);
78
+ const yScale = yAxis[yAxisKey].scale;
79
+ const xData = xAxis[xAxisKey].data;
80
+ if (xData === undefined) {
81
+ throw new Error(`Axis of id "${xAxisKey}" should have data property to be able to display a line plot.`);
82
+ }
83
+ const x = xScale(xData[highlightedIndex]);
84
+ const y = yScale(stackedData[highlightedIndex][1]);
85
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Element, (0, _extends2.default)({
86
+ id: seriesId,
87
+ color: series[seriesId].color,
88
+ x: x,
89
+ y: y
90
+ }, slotProps?.lineHighlight), `${seriesId}`);
91
+ });
92
+ })
93
+ }));
94
+ }
95
+ process.env.NODE_ENV !== "production" ? LineHighlightPlot.propTypes = {
96
+ // ----------------------------- Warning --------------------------------
97
+ // | These PropTypes are generated from the TypeScript type definitions |
98
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
99
+ // ----------------------------------------------------------------------
100
+ /**
101
+ * The props used for each component slot.
102
+ * @default {}
103
+ */
104
+ slotProps: _propTypes.default.object,
105
+ /**
106
+ * Overridable component slots.
107
+ * @default {}
108
+ */
109
+ slots: _propTypes.default.object
110
+ } : void 0;
@@ -8,6 +8,16 @@ export interface LinePlotSlotComponentProps {
8
8
  }
9
9
  export interface LinePlotProps extends React.SVGAttributes<SVGSVGElement>, Pick<LineElementProps, 'slots' | 'slotProps'> {
10
10
  }
11
+ /**
12
+ * Demos:
13
+ *
14
+ * - [Lines](https://mui.com/x/react-charts/lines/)
15
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
16
+ *
17
+ * API:
18
+ *
19
+ * - [LinePlot API](https://mui.com/x/api/charts/line-plot/)
20
+ */
11
21
  declare function LinePlot(props: LinePlotProps): React.JSX.Element | null;
12
22
  declare namespace LinePlot {
13
23
  var propTypes: any;
@@ -17,8 +17,18 @@ var _useScale = require("../hooks/useScale");
17
17
  var _getCurve = _interopRequireDefault(require("../internals/getCurve"));
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
19
  const _excluded = ["slots", "slotProps"];
20
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ /**
23
+ * Demos:
24
+ *
25
+ * - [Lines](https://mui.com/x/react-charts/lines/)
26
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
27
+ *
28
+ * API:
29
+ *
30
+ * - [LinePlot API](https://mui.com/x/api/charts/line-plot/)
31
+ */
22
32
  function LinePlot(props) {
23
33
  const {
24
34
  slots,
@@ -50,25 +60,28 @@ function LinePlot(props) {
50
60
  const {
51
61
  xAxisKey = defaultXAxisId,
52
62
  yAxisKey = defaultYAxisId,
53
- stackedData
63
+ stackedData,
64
+ data,
65
+ connectNulls
54
66
  } = series[seriesId];
55
67
  const xScale = (0, _useScale.getValueToPositionMapper)(xAxis[xAxisKey].scale);
56
68
  const yScale = yAxis[yAxisKey].scale;
57
69
  const xData = xAxis[xAxisKey].data;
58
- if (xData === undefined) {
59
- throw new Error(`Axis of id "${xAxisKey}" should have data property to be able to display a line plot`);
60
- }
61
- const linePath = (0, _d3Shape.line)().x(d => xScale(d.x)).y(d => yScale(d.y[1]));
62
70
  if (process.env.NODE_ENV !== 'production') {
63
- if (xData.length !== stackedData.length) {
64
- throw new Error(`MUI: data length of the x axis (${xData.length} items) does not match length of series (${stackedData.length} items)`);
71
+ if (xData === undefined) {
72
+ throw new Error(`Axis of id "${xAxisKey}" should have data property to be able to display a line plot`);
73
+ }
74
+ if (xData.length < stackedData.length) {
75
+ throw new Error(`MUI: data length of the x axis (${xData.length} items) is lower than the length of series (${stackedData.length} items)`);
65
76
  }
66
77
  }
78
+ const linePath = (0, _d3Shape.line)().x(d => xScale(d.x)).defined((_, i) => connectNulls || data[i] != null).y(d => yScale(d.y[1]));
67
79
  const curve = (0, _getCurve.default)(series[seriesId].curve);
68
- const d3Data = xData?.map((x, index) => ({
80
+ const formattedData = xData?.map((x, index) => ({
69
81
  x,
70
- y: stackedData[index] ?? [0, 0]
71
- }));
82
+ y: stackedData[index]
83
+ })) ?? [];
84
+ const d3Data = connectNulls ? formattedData.filter((_, i) => data[i] != null) : formattedData;
72
85
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LineElement.LineElement, {
73
86
  id: seriesId,
74
87
  d: linePath.curve(curve)(d3Data) || undefined,
@@ -9,7 +9,7 @@ export interface MarkElementClasses {
9
9
  faded: string;
10
10
  }
11
11
  export type MarkElementClassKey = keyof MarkElementClasses;
12
- export interface MarkElementOwnerState {
12
+ interface MarkElementOwnerState {
13
13
  id: string;
14
14
  color: string;
15
15
  isFaded: boolean;
@@ -31,6 +31,16 @@ export type MarkElementProps = Omit<MarkElementOwnerState, 'isFaded' | 'isHighli
31
31
  dataIndex: number;
32
32
  highlightScope?: Partial<HighlightScope>;
33
33
  };
34
+ /**
35
+ * Demos:
36
+ *
37
+ * - [Lines](https://mui.com/x/react-charts/lines/)
38
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
39
+ *
40
+ * API:
41
+ *
42
+ * - [MarkElement API](https://mui.com/x/api/charts/mark-element/)
43
+ */
34
44
  declare function MarkElement(props: MarkElementProps): React.JSX.Element;
35
45
  declare namespace MarkElement {
36
46
  var propTypes: any;
@@ -21,13 +21,12 @@ var _InteractionProvider = require("../context/InteractionProvider");
21
21
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
22
22
  var _jsxRuntime = require("react/jsx-runtime");
23
23
  const _excluded = ["x", "y", "id", "classes", "color", "shape", "dataIndex", "highlightScope"];
24
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
26
  function getMarkElementUtilityClass(slot) {
27
27
  return (0, _generateUtilityClass.default)('MuiMarkElement', slot);
28
28
  }
29
- const markElementClasses = (0, _generateUtilityClasses.default)('MuiMarkElement', ['root', 'highlighted', 'faded']);
30
- exports.markElementClasses = markElementClasses;
29
+ const markElementClasses = exports.markElementClasses = (0, _generateUtilityClasses.default)('MuiMarkElement', ['root', 'highlighted', 'faded']);
31
30
  const useUtilityClasses = ownerState => {
32
31
  const {
33
32
  classes,
@@ -50,12 +49,9 @@ const MarkElementPath = (0, _styles.styled)('path', {
50
49
  }) => ({
51
50
  transform: `translate(${ownerState.x}px, ${ownerState.y}px)`,
52
51
  transformOrigin: `${ownerState.x}px ${ownerState.y}px`,
53
- fill: theme.palette.background.paper,
52
+ fill: (theme.vars || theme).palette.background.paper,
54
53
  stroke: ownerState.color,
55
- strokeWidth: 2,
56
- '&.MuiMarkElement-highlighted': {
57
- fill: ownerState.color
58
- }
54
+ strokeWidth: 2
59
55
  }));
60
56
  MarkElementPath.propTypes = {
61
57
  // ----------------------------- Warning --------------------------------
@@ -74,6 +70,16 @@ MarkElementPath.propTypes = {
74
70
  }).isRequired,
75
71
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
76
72
  };
73
+ /**
74
+ * Demos:
75
+ *
76
+ * - [Lines](https://mui.com/x/react-charts/lines/)
77
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
78
+ *
79
+ * API:
80
+ *
81
+ * - [MarkElement API](https://mui.com/x/api/charts/mark-element/)
82
+ */
77
83
  function MarkElement(props) {
78
84
  const {
79
85
  x,
@@ -18,6 +18,16 @@ export interface MarkPlotProps extends React.SVGAttributes<SVGSVGElement> {
18
18
  */
19
19
  slotProps?: MarkPlotSlotComponentProps;
20
20
  }
21
+ /**
22
+ * Demos:
23
+ *
24
+ * - [Lines](https://mui.com/x/react-charts/lines/)
25
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
26
+ *
27
+ * API:
28
+ *
29
+ * - [MarkPlot API](https://mui.com/x/api/charts/mark-plot/)
30
+ */
21
31
  declare function MarkPlot(props: MarkPlotProps): React.JSX.Element | null;
22
32
  declare namespace MarkPlot {
23
33
  var propTypes: any;
@@ -15,8 +15,18 @@ var _MarkElement = require("./MarkElement");
15
15
  var _useScale = require("../hooks/useScale");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  const _excluded = ["slots", "slotProps"];
18
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ /**
21
+ * Demos:
22
+ *
23
+ * - [Lines](https://mui.com/x/react-charts/lines/)
24
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
25
+ *
26
+ * API:
27
+ *
28
+ * - [MarkPlot API](https://mui.com/x/api/charts/mark-plot/)
29
+ */
20
30
  function MarkPlot(props) {
21
31
  const {
22
32
  slots,
@@ -49,8 +59,13 @@ function MarkPlot(props) {
49
59
  const {
50
60
  xAxisKey = defaultXAxisId,
51
61
  yAxisKey = defaultYAxisId,
52
- stackedData
62
+ stackedData,
63
+ data,
64
+ showMark = true
53
65
  } = series[seriesId];
66
+ if (showMark === false) {
67
+ return null;
68
+ }
54
69
  const xScale = (0, _useScale.getValueToPositionMapper)(xAxis[xAxisKey].scale);
55
70
  const yScale = yAxis[yAxisKey].scale;
56
71
  const xData = xAxis[xAxisKey].data;
@@ -72,25 +87,57 @@ function MarkPlot(props) {
72
87
  throw new Error(`Axis of id "${xAxisKey}" should have data property to be able to display a line plot`);
73
88
  }
74
89
  return xData?.map((x, index) => {
75
- const y = stackedData[index][1];
90
+ const value = data[index] == null ? null : stackedData[index][1];
76
91
  return {
77
92
  x: xScale(x),
78
- y: yScale(y),
93
+ y: value === null ? null : yScale(value),
94
+ position: x,
95
+ value,
79
96
  index
80
97
  };
81
- }).filter(isInRange).map(({
98
+ }).filter(({
99
+ x,
100
+ y,
101
+ index,
102
+ position,
103
+ value
104
+ }) => {
105
+ if (value === null || y === null) {
106
+ // Remove missing data point
107
+ return false;
108
+ }
109
+ if (!isInRange({
110
+ x,
111
+ y
112
+ })) {
113
+ // Remove out of range
114
+ return false;
115
+ }
116
+ if (showMark === true) {
117
+ return true;
118
+ }
119
+ return showMark({
120
+ x,
121
+ y,
122
+ index,
123
+ position,
124
+ value
125
+ });
126
+ }).map(({
82
127
  x,
83
128
  y,
84
129
  index
85
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Mark, (0, _extends2.default)({
86
- id: seriesId,
87
- dataIndex: index,
88
- shape: "circle",
89
- color: series[seriesId].color,
90
- x: x,
91
- y: y,
92
- highlightScope: series[seriesId].highlightScope
93
- }, slotProps?.mark), `${seriesId}-${index}`));
130
+ }) => {
131
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Mark, (0, _extends2.default)({
132
+ id: seriesId,
133
+ dataIndex: index,
134
+ shape: "circle",
135
+ color: series[seriesId].color,
136
+ x: x,
137
+ y: y,
138
+ highlightScope: series[seriesId].highlightScope
139
+ }, slotProps?.mark), `${seriesId}-${index}`);
140
+ });
94
141
  });
95
142
  })
96
143
  }));
@@ -31,7 +31,7 @@ const formatter = (params, dataset) => {
31
31
  d3Dataset[index][id] = value;
32
32
  }
33
33
  });
34
- } else if (dataset === undefined) {
34
+ } else if (dataset === undefined && process.env.NODE_ENV !== 'production') {
35
35
  throw new Error([`MUI: line series with id='${id}' has no data.`, 'Either provide a data property to the series or use the dataset prop.'].join('\n'));
36
36
  }
37
37
  });
@@ -47,7 +47,8 @@ const formatter = (params, dataset) => {
47
47
  // Use dataKey if needed and available
48
48
  const dataKey = series[id].dataKey;
49
49
  return series[id].data === undefined && dataKey !== undefined ? dataKey : id;
50
- })).order(stackingOrder).offset(stackingOffset)(d3Dataset);
50
+ })).value((d, key) => d[key] ?? 0) // defaultize null value to 0
51
+ .order(stackingOrder).offset(stackingOffset)(d3Dataset);
51
52
  ids.forEach((id, index) => {
52
53
  const dataKey = series[id].dataKey;
53
54
  completedSeries[id] = (0, _extends2.default)({}, series[id], {
@@ -59,8 +60,7 @@ const formatter = (params, dataset) => {
59
60
  return {
60
61
  seriesOrder,
61
62
  stackingGroups,
62
- series: (0, _defaultizeValueFormatter.default)(completedSeries, v => v.toLocaleString())
63
+ series: (0, _defaultizeValueFormatter.default)(completedSeries, v => v?.toLocaleString())
63
64
  };
64
65
  };
65
- var _default = formatter;
66
- exports.default = _default;
66
+ var _default = exports.default = formatter;
@@ -1,7 +1,9 @@
1
1
  export { LinePlot } from './LinePlot';
2
2
  export { AreaPlot } from './AreaPlot';
3
3
  export { MarkPlot } from './MarkPlot';
4
+ export { LineHighlightPlot } from './LineHighlightPlot';
4
5
  export { LineChart } from './LineChart';
5
6
  export * from './AreaElement';
6
7
  export * from './LineElement';
7
8
  export * from './MarkElement';
9
+ export * from './LineHighlightElement';
@@ -7,6 +7,7 @@ var _exportNames = {
7
7
  LinePlot: true,
8
8
  AreaPlot: true,
9
9
  MarkPlot: true,
10
+ LineHighlightPlot: true,
10
11
  LineChart: true
11
12
  };
12
13
  Object.defineProperty(exports, "AreaPlot", {
@@ -21,6 +22,12 @@ Object.defineProperty(exports, "LineChart", {
21
22
  return _LineChart.LineChart;
22
23
  }
23
24
  });
25
+ Object.defineProperty(exports, "LineHighlightPlot", {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _LineHighlightPlot.LineHighlightPlot;
29
+ }
30
+ });
24
31
  Object.defineProperty(exports, "LinePlot", {
25
32
  enumerable: true,
26
33
  get: function () {
@@ -36,6 +43,7 @@ Object.defineProperty(exports, "MarkPlot", {
36
43
  var _LinePlot = require("./LinePlot");
37
44
  var _AreaPlot = require("./AreaPlot");
38
45
  var _MarkPlot = require("./MarkPlot");
46
+ var _LineHighlightPlot = require("./LineHighlightPlot");
39
47
  var _LineChart = require("./LineChart");
40
48
  var _AreaElement = require("./AreaElement");
41
49
  Object.keys(_AreaElement).forEach(function (key) {
@@ -72,4 +80,16 @@ Object.keys(_MarkElement).forEach(function (key) {
72
80
  return _MarkElement[key];
73
81
  }
74
82
  });
83
+ });
84
+ var _LineHighlightElement = require("./LineHighlightElement");
85
+ Object.keys(_LineHighlightElement).forEach(function (key) {
86
+ if (key === "default" || key === "__esModule") return;
87
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
88
+ if (key in exports && exports[key] === _LineHighlightElement[key]) return;
89
+ Object.defineProperty(exports, key, {
90
+ enumerable: true,
91
+ get: function () {
92
+ return _LineHighlightElement[key];
93
+ }
94
+ });
75
95
  });
@@ -16,5 +16,4 @@ const legendGetter = params => {
16
16
  }));
17
17
  return data.filter(item => item.label !== undefined);
18
18
  };
19
- var _default = legendGetter;
20
- exports.default = _default;
19
+ var _default = exports.default = legendGetter;
@@ -1,7 +1,6 @@
1
1
  import * as React from 'react';
2
- import { PieArcDatum as D3PieArcDatum } from 'd3-shape';
2
+ import { SpringValue } from '@react-spring/web';
3
3
  import { HighlightScope } from '../context/HighlightProvider';
4
- import { PieSeriesType } from '../models/seriesType/pie';
5
4
  export interface PieArcClasses {
6
5
  /** Styles applied to the root element. */
7
6
  root: string;
@@ -11,7 +10,7 @@ export interface PieArcClasses {
11
10
  faded: string;
12
11
  }
13
12
  export type PieArcClassKey = keyof PieArcClasses;
14
- export interface PieArcOwnerState {
13
+ interface PieArcOwnerState {
15
14
  id: string;
16
15
  dataIndex: number;
17
16
  color: string;
@@ -21,16 +20,15 @@ export interface PieArcOwnerState {
21
20
  }
22
21
  export declare function getPieArcUtilityClass(slot: string): string;
23
22
  export declare const pieArcClasses: PieArcClasses;
24
- export type PieArcProps = Omit<PieArcOwnerState, 'isFaded' | 'isHighlighted'> & React.ComponentPropsWithoutRef<'path'> & D3PieArcDatum<any> & {
23
+ export type PieArcProps = PieArcOwnerState & React.ComponentPropsWithoutRef<'path'> & {
24
+ startAngle: SpringValue<number>;
25
+ endAngle: SpringValue<number>;
26
+ innerRadius: SpringValue<number>;
27
+ outerRadius: SpringValue<number>;
28
+ cornerRadius: SpringValue<number>;
29
+ paddingAngle: SpringValue<number>;
25
30
  highlightScope?: Partial<HighlightScope>;
26
- innerRadius: PieSeriesType['innerRadius'];
27
- outerRadius: number;
28
- cornerRadius: PieSeriesType['cornerRadius'];
29
- highlighted: PieSeriesType['highlighted'];
30
- faded: PieSeriesType['faded'];
31
+ onClick?: (event: React.MouseEvent<SVGPathElement, MouseEvent>) => void;
31
32
  };
32
- declare function PieArc(props: PieArcProps): React.JSX.Element;
33
- declare namespace PieArc {
34
- var propTypes: any;
35
- }
36
- export default PieArc;
33
+ export default function PieArc(props: PieArcProps): React.JSX.Element;
34
+ export {};