@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
@@ -13,8 +13,19 @@ import { ChartsTooltip } from '../ChartsTooltip';
13
13
  import { ChartsLegend } from '../ChartsLegend';
14
14
  import { ChartsAxisHighlight } from '../ChartsAxisHighlight';
15
15
  import { ChartsClipPath } from '../ChartsClipPath';
16
+ import { LineHighlightPlot } from './LineHighlightPlot';
16
17
  import { jsx as _jsx } from "react/jsx-runtime";
17
18
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
+ /**
20
+ * Demos:
21
+ *
22
+ * - [Lines](https://mui.com/x/react-charts/lines/)
23
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
24
+ *
25
+ * API:
26
+ *
27
+ * - [LineChart API](https://mui.com/x/api/charts/line-chart/)
28
+ */
18
29
  var LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
19
30
  var xAxis = props.xAxis,
20
31
  yAxis = props.yAxis,
@@ -30,6 +41,7 @@ var LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
30
41
  axisHighlight = _props$axisHighlight === void 0 ? {
31
42
  x: 'line'
32
43
  } : _props$axisHighlight,
44
+ disableLineItemHighlight = props.disableLineItemHighlight,
33
45
  legend = props.legend,
34
46
  topAxis = props.topAxis,
35
47
  leftAxis = props.leftAxis,
@@ -44,6 +56,7 @@ var LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
44
56
  ref: ref,
45
57
  series: series.map(function (s) {
46
58
  return _extends({
59
+ disableHighlight: !!disableLineItemHighlight,
47
60
  type: 'line'
48
61
  }, s);
49
62
  }),
@@ -83,13 +96,19 @@ var LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
83
96
  bottomAxis: bottomAxis,
84
97
  slots: slots,
85
98
  slotProps: slotProps
86
- }), /*#__PURE__*/_jsx(MarkPlot, {
99
+ }), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlight)), /*#__PURE__*/_jsx(MarkPlot, {
100
+ slots: slots,
101
+ slotProps: slotProps
102
+ }), /*#__PURE__*/_jsx(LineHighlightPlot, {
87
103
  slots: slots,
88
104
  slotProps: slotProps
89
105
  }), /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legend, {
90
106
  slots: slots,
91
107
  slotProps: slotProps
92
- })), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlight)), /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltip)), /*#__PURE__*/_jsx(ChartsClipPath, {
108
+ })), /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltip, {
109
+ slots: slots,
110
+ slotProps: slotProps
111
+ })), /*#__PURE__*/_jsx(ChartsClipPath, {
93
112
  id: clipPathId
94
113
  }), children]
95
114
  });
@@ -116,11 +135,15 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
116
135
  fill: PropTypes.string,
117
136
  label: PropTypes.string,
118
137
  labelFontSize: PropTypes.number,
138
+ labelStyle: PropTypes.object,
119
139
  position: PropTypes.oneOf(['bottom', 'top']),
120
140
  slotProps: PropTypes.object,
121
141
  slots: PropTypes.object,
122
142
  stroke: PropTypes.string,
123
143
  tickFontSize: PropTypes.number,
144
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
145
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
146
+ tickLabelStyle: PropTypes.object,
124
147
  tickMaxStep: PropTypes.number,
125
148
  tickMinStep: PropTypes.number,
126
149
  tickNumber: PropTypes.number,
@@ -135,6 +158,10 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
135
158
  dataset: PropTypes.arrayOf(PropTypes.object),
136
159
  desc: PropTypes.string,
137
160
  disableAxisListener: PropTypes.bool,
161
+ /**
162
+ * If `true`, render the line highlight item.
163
+ */
164
+ disableLineItemHighlight: PropTypes.bool,
138
165
  height: PropTypes.number,
139
166
  /**
140
167
  * Indicate which axis to display the left of the charts.
@@ -149,33 +176,33 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
149
176
  fill: PropTypes.string,
150
177
  label: PropTypes.string,
151
178
  labelFontSize: PropTypes.number,
179
+ labelStyle: PropTypes.object,
152
180
  position: PropTypes.oneOf(['left', 'right']),
153
181
  slotProps: PropTypes.object,
154
182
  slots: PropTypes.object,
155
183
  stroke: PropTypes.string,
156
184
  tickFontSize: PropTypes.number,
185
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
186
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
187
+ tickLabelStyle: PropTypes.object,
157
188
  tickMaxStep: PropTypes.number,
158
189
  tickMinStep: PropTypes.number,
159
190
  tickNumber: PropTypes.number,
160
191
  tickSize: PropTypes.number
161
192
  }), PropTypes.string]),
193
+ /**
194
+ * @deprecated Consider using `slotProps.legend` instead.
195
+ */
162
196
  legend: PropTypes.shape({
163
197
  classes: PropTypes.object,
164
198
  direction: PropTypes.oneOf(['column', 'row']),
165
199
  hidden: PropTypes.bool,
166
- itemWidth: PropTypes.number,
167
- markSize: PropTypes.number,
168
- offset: PropTypes.shape({
169
- x: PropTypes.number,
170
- y: PropTypes.number
171
- }),
172
200
  position: PropTypes.shape({
173
201
  horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
174
202
  vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
175
203
  }),
176
204
  slotProps: PropTypes.object,
177
- slots: PropTypes.object,
178
- spacing: PropTypes.number
205
+ slots: PropTypes.object
179
206
  }),
180
207
  margin: PropTypes.shape({
181
208
  bottom: PropTypes.number,
@@ -196,11 +223,15 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
196
223
  fill: PropTypes.string,
197
224
  label: PropTypes.string,
198
225
  labelFontSize: PropTypes.number,
226
+ labelStyle: PropTypes.object,
199
227
  position: PropTypes.oneOf(['left', 'right']),
200
228
  slotProps: PropTypes.object,
201
229
  slots: PropTypes.object,
202
230
  stroke: PropTypes.string,
203
231
  tickFontSize: PropTypes.number,
232
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
233
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
234
+ tickLabelStyle: PropTypes.object,
204
235
  tickMaxStep: PropTypes.number,
205
236
  tickMinStep: PropTypes.number,
206
237
  tickNumber: PropTypes.number,
@@ -209,15 +240,18 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
209
240
  series: PropTypes.arrayOf(PropTypes.shape({
210
241
  area: PropTypes.bool,
211
242
  color: PropTypes.string,
243
+ connectNulls: PropTypes.bool,
212
244
  curve: PropTypes.oneOf(['catmullRom', 'linear', 'monotoneX', 'monotoneY', 'natural', 'step', 'stepAfter', 'stepBefore']),
213
245
  data: PropTypes.arrayOf(PropTypes.number),
214
246
  dataKey: PropTypes.string,
247
+ disableHighlight: PropTypes.bool,
215
248
  highlightScope: PropTypes.shape({
216
249
  faded: PropTypes.oneOf(['global', 'none', 'series']),
217
250
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
218
251
  }),
219
252
  id: PropTypes.string,
220
253
  label: PropTypes.string,
254
+ showMark: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),
221
255
  stack: PropTypes.string,
222
256
  stackOffset: PropTypes.oneOf(['diverging', 'expand', 'none', 'silhouette', 'wiggle']),
223
257
  stackOrder: PropTypes.oneOf(['appearance', 'ascending', 'descending', 'insideOut', 'none', 'reverse']),
@@ -242,6 +276,8 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
242
276
  axisContent: PropTypes.elementType,
243
277
  classes: PropTypes.object,
244
278
  itemContent: PropTypes.elementType,
279
+ slotProps: PropTypes.object,
280
+ slots: PropTypes.object,
245
281
  trigger: PropTypes.oneOf(['axis', 'item', 'none'])
246
282
  }),
247
283
  /**
@@ -257,11 +293,15 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
257
293
  fill: PropTypes.string,
258
294
  label: PropTypes.string,
259
295
  labelFontSize: PropTypes.number,
296
+ labelStyle: PropTypes.object,
260
297
  position: PropTypes.oneOf(['bottom', 'top']),
261
298
  slotProps: PropTypes.object,
262
299
  slots: PropTypes.object,
263
300
  stroke: PropTypes.string,
264
301
  tickFontSize: PropTypes.number,
302
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
303
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
304
+ tickLabelStyle: PropTypes.object,
265
305
  tickMaxStep: PropTypes.number,
266
306
  tickMinStep: PropTypes.number,
267
307
  tickNumber: PropTypes.number,
@@ -286,6 +326,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
286
326
  id: PropTypes.string,
287
327
  label: PropTypes.string,
288
328
  labelFontSize: PropTypes.number,
329
+ labelStyle: PropTypes.object,
289
330
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
290
331
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
291
332
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -294,6 +335,9 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
294
335
  slots: PropTypes.object,
295
336
  stroke: PropTypes.string,
296
337
  tickFontSize: PropTypes.number,
338
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
339
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
340
+ tickLabelStyle: PropTypes.object,
297
341
  tickMaxStep: PropTypes.number,
298
342
  tickMinStep: PropTypes.number,
299
343
  tickNumber: PropTypes.number,
@@ -312,6 +356,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
312
356
  id: PropTypes.string,
313
357
  label: PropTypes.string,
314
358
  labelFontSize: PropTypes.number,
359
+ labelStyle: PropTypes.object,
315
360
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
316
361
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
317
362
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -320,6 +365,9 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
320
365
  slots: PropTypes.object,
321
366
  stroke: PropTypes.string,
322
367
  tickFontSize: PropTypes.number,
368
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
369
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
370
+ tickLabelStyle: PropTypes.object,
323
371
  tickMaxStep: PropTypes.number,
324
372
  tickMinStep: PropTypes.number,
325
373
  tickNumber: PropTypes.number,
@@ -58,6 +58,16 @@ LineElementPath.propTypes = {
58
58
  }).isRequired,
59
59
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
60
60
  };
61
+ /**
62
+ * Demos:
63
+ *
64
+ * - [Lines](https://mui.com/x/react-charts/lines/)
65
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
66
+ *
67
+ * API:
68
+ *
69
+ * - [LineElement API](https://mui.com/x/api/charts/line-element/)
70
+ */
61
71
  function LineElement(props) {
62
72
  var _slots$line;
63
73
  var id = props.id,
@@ -0,0 +1,77 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ var _excluded = ["x", "y", "id", "classes", "color"];
4
+ import * as React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import composeClasses from '@mui/utils/composeClasses';
7
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
8
+ import { styled } from '@mui/material/styles';
9
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ export function getHighlightElementUtilityClass(slot) {
12
+ return generateUtilityClass('MuiHighlightElement', slot);
13
+ }
14
+ export var lineHighlightElementClasses = generateUtilityClasses('MuiHighlightElement', ['root']);
15
+ var useUtilityClasses = function useUtilityClasses(ownerState) {
16
+ var classes = ownerState.classes,
17
+ id = ownerState.id;
18
+ var slots = {
19
+ root: ['root', "series-".concat(id)]
20
+ };
21
+ return composeClasses(slots, getHighlightElementUtilityClass, classes);
22
+ };
23
+ var HighlightElement = styled('circle', {
24
+ name: 'MuiHighlightElement',
25
+ slot: 'Root',
26
+ overridesResolver: function overridesResolver(_, styles) {
27
+ return styles.root;
28
+ }
29
+ })(function (_ref) {
30
+ var ownerState = _ref.ownerState;
31
+ return {
32
+ transform: "translate(".concat(ownerState.x, "px, ").concat(ownerState.y, "px)"),
33
+ transformOrigin: "".concat(ownerState.x, "px ").concat(ownerState.y, "px"),
34
+ fill: ownerState.color
35
+ };
36
+ });
37
+ /**
38
+ * Demos:
39
+ *
40
+ * - [Lines](https://mui.com/x/react-charts/lines/)
41
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
42
+ *
43
+ * API:
44
+ *
45
+ * - [LineHighlightElement API](https://mui.com/x/api/charts/line-highlight-element/)
46
+ */
47
+ function LineHighlightElement(props) {
48
+ var x = props.x,
49
+ y = props.y,
50
+ id = props.id,
51
+ innerClasses = props.classes,
52
+ color = props.color,
53
+ other = _objectWithoutProperties(props, _excluded);
54
+ var ownerState = {
55
+ id: id,
56
+ classes: innerClasses,
57
+ color: color,
58
+ x: x,
59
+ y: y
60
+ };
61
+ var classes = useUtilityClasses(ownerState);
62
+ return /*#__PURE__*/_jsx(HighlightElement, _extends({}, other, {
63
+ ownerState: ownerState,
64
+ className: classes.root,
65
+ cx: 0,
66
+ cy: 0,
67
+ r: other.r === undefined ? 5 : other.r
68
+ }));
69
+ }
70
+ process.env.NODE_ENV !== "production" ? LineHighlightElement.propTypes = {
71
+ // ----------------------------- Warning --------------------------------
72
+ // | These PropTypes are generated from the TypeScript type definitions |
73
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
74
+ // ----------------------------------------------------------------------
75
+ classes: PropTypes.object
76
+ } : void 0;
77
+ export { LineHighlightElement };
@@ -0,0 +1,96 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ var _excluded = ["slots", "slotProps"];
4
+ import * as React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { SeriesContext } from '../context/SeriesContextProvider';
7
+ import { CartesianContext } from '../context/CartesianContextProvider';
8
+ import { LineHighlightElement } from './LineHighlightElement';
9
+ import { getValueToPositionMapper } from '../hooks/useScale';
10
+ import { InteractionContext } from '../context/InteractionProvider';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ /**
13
+ * Demos:
14
+ *
15
+ * - [Lines](https://mui.com/x/react-charts/lines/)
16
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
17
+ *
18
+ * API:
19
+ *
20
+ * - [LineHighlightPlot API](https://mui.com/x/api/charts/line-highlight-plot/)
21
+ */
22
+ function LineHighlightPlot(props) {
23
+ var _axis$x, _slots$lineHighlight;
24
+ var slots = props.slots,
25
+ slotProps = props.slotProps,
26
+ other = _objectWithoutProperties(props, _excluded);
27
+ var seriesData = React.useContext(SeriesContext).line;
28
+ var axisData = React.useContext(CartesianContext);
29
+ var _React$useContext = React.useContext(InteractionContext),
30
+ axis = _React$useContext.axis;
31
+ var highlightedIndex = (_axis$x = axis.x) == null ? void 0 : _axis$x.index;
32
+ if (highlightedIndex === undefined) {
33
+ return null;
34
+ }
35
+ if (seriesData === undefined) {
36
+ return null;
37
+ }
38
+ var series = seriesData.series,
39
+ stackingGroups = seriesData.stackingGroups;
40
+ var xAxis = axisData.xAxis,
41
+ yAxis = axisData.yAxis,
42
+ xAxisIds = axisData.xAxisIds,
43
+ yAxisIds = axisData.yAxisIds;
44
+ var defaultXAxisId = xAxisIds[0];
45
+ var defaultYAxisId = yAxisIds[0];
46
+ var Element = (_slots$lineHighlight = slots == null ? void 0 : slots.lineHighlight) != null ? _slots$lineHighlight : LineHighlightElement;
47
+ return /*#__PURE__*/_jsx("g", _extends({}, other, {
48
+ children: stackingGroups.flatMap(function (_ref) {
49
+ var groupIds = _ref.ids;
50
+ return groupIds.flatMap(function (seriesId) {
51
+ var _series$seriesId = series[seriesId],
52
+ _series$seriesId$xAxi = _series$seriesId.xAxisKey,
53
+ xAxisKey = _series$seriesId$xAxi === void 0 ? defaultXAxisId : _series$seriesId$xAxi,
54
+ _series$seriesId$yAxi = _series$seriesId.yAxisKey,
55
+ yAxisKey = _series$seriesId$yAxi === void 0 ? defaultYAxisId : _series$seriesId$yAxi,
56
+ stackedData = _series$seriesId.stackedData,
57
+ data = _series$seriesId.data,
58
+ disableHighlight = _series$seriesId.disableHighlight;
59
+ if (disableHighlight || data[highlightedIndex] == null) {
60
+ return null;
61
+ }
62
+ var xScale = getValueToPositionMapper(xAxis[xAxisKey].scale);
63
+ var yScale = yAxis[yAxisKey].scale;
64
+ var xData = xAxis[xAxisKey].data;
65
+ if (xData === undefined) {
66
+ throw new Error("Axis of id \"".concat(xAxisKey, "\" should have data property to be able to display a line plot."));
67
+ }
68
+ var x = xScale(xData[highlightedIndex]);
69
+ var y = yScale(stackedData[highlightedIndex][1]);
70
+ return /*#__PURE__*/_jsx(Element, _extends({
71
+ id: seriesId,
72
+ color: series[seriesId].color,
73
+ x: x,
74
+ y: y
75
+ }, slotProps == null ? void 0 : slotProps.lineHighlight), "".concat(seriesId));
76
+ });
77
+ })
78
+ }));
79
+ }
80
+ process.env.NODE_ENV !== "production" ? LineHighlightPlot.propTypes = {
81
+ // ----------------------------- Warning --------------------------------
82
+ // | These PropTypes are generated from the TypeScript type definitions |
83
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
84
+ // ----------------------------------------------------------------------
85
+ /**
86
+ * The props used for each component slot.
87
+ * @default {}
88
+ */
89
+ slotProps: PropTypes.object,
90
+ /**
91
+ * Overridable component slots.
92
+ * @default {}
93
+ */
94
+ slots: PropTypes.object
95
+ } : void 0;
96
+ export { LineHighlightPlot };
@@ -10,6 +10,16 @@ import { LineElement } from './LineElement';
10
10
  import { getValueToPositionMapper } from '../hooks/useScale';
11
11
  import getCurveFactory from '../internals/getCurve';
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
+ /**
14
+ * Demos:
15
+ *
16
+ * - [Lines](https://mui.com/x/react-charts/lines/)
17
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
18
+ *
19
+ * API:
20
+ *
21
+ * - [LinePlot API](https://mui.com/x/api/charts/line-plot/)
22
+ */
13
23
  function LinePlot(props) {
14
24
  var slots = props.slots,
15
25
  slotProps = props.slotProps,
@@ -31,36 +41,43 @@ function LinePlot(props) {
31
41
  children: stackingGroups.flatMap(function (_ref) {
32
42
  var groupIds = _ref.ids;
33
43
  return groupIds.flatMap(function (seriesId) {
44
+ var _xData$map;
34
45
  var _series$seriesId = series[seriesId],
35
46
  _series$seriesId$xAxi = _series$seriesId.xAxisKey,
36
47
  xAxisKey = _series$seriesId$xAxi === void 0 ? defaultXAxisId : _series$seriesId$xAxi,
37
48
  _series$seriesId$yAxi = _series$seriesId.yAxisKey,
38
49
  yAxisKey = _series$seriesId$yAxi === void 0 ? defaultYAxisId : _series$seriesId$yAxi,
39
- stackedData = _series$seriesId.stackedData;
50
+ stackedData = _series$seriesId.stackedData,
51
+ data = _series$seriesId.data,
52
+ connectNulls = _series$seriesId.connectNulls;
40
53
  var xScale = getValueToPositionMapper(xAxis[xAxisKey].scale);
41
54
  var yScale = yAxis[yAxisKey].scale;
42
55
  var xData = xAxis[xAxisKey].data;
43
- if (xData === undefined) {
44
- throw new Error("Axis of id \"".concat(xAxisKey, "\" should have data property to be able to display a line plot"));
56
+ if (process.env.NODE_ENV !== 'production') {
57
+ if (xData === undefined) {
58
+ throw new Error("Axis of id \"".concat(xAxisKey, "\" should have data property to be able to display a line plot"));
59
+ }
60
+ if (xData.length < stackedData.length) {
61
+ throw new Error("MUI: data length of the x axis (".concat(xData.length, " items) is lower than the length of series (").concat(stackedData.length, " items)"));
62
+ }
45
63
  }
46
64
  var linePath = d3Line().x(function (d) {
47
65
  return xScale(d.x);
66
+ }).defined(function (_, i) {
67
+ return connectNulls || data[i] != null;
48
68
  }).y(function (d) {
49
69
  return yScale(d.y[1]);
50
70
  });
51
- if (process.env.NODE_ENV !== 'production') {
52
- if (xData.length !== stackedData.length) {
53
- throw new Error("MUI: data length of the x axis (".concat(xData.length, " items) does not match length of series (").concat(stackedData.length, " items)"));
54
- }
55
- }
56
71
  var curve = getCurveFactory(series[seriesId].curve);
57
- var d3Data = xData == null ? void 0 : xData.map(function (x, index) {
58
- var _stackedData$index;
72
+ var formattedData = (_xData$map = xData == null ? void 0 : xData.map(function (x, index) {
59
73
  return {
60
74
  x: x,
61
- y: (_stackedData$index = stackedData[index]) != null ? _stackedData$index : [0, 0]
75
+ y: stackedData[index]
62
76
  };
63
- });
77
+ })) != null ? _xData$map : [];
78
+ var d3Data = connectNulls ? formattedData.filter(function (_, i) {
79
+ return data[i] != null;
80
+ }) : formattedData;
64
81
  return /*#__PURE__*/_jsx(LineElement, {
65
82
  id: seriesId,
66
83
  d: linePath.curve(curve)(d3Data) || undefined,
@@ -38,12 +38,9 @@ var MarkElementPath = styled('path', {
38
38
  return {
39
39
  transform: "translate(".concat(ownerState.x, "px, ").concat(ownerState.y, "px)"),
40
40
  transformOrigin: "".concat(ownerState.x, "px ").concat(ownerState.y, "px"),
41
- fill: theme.palette.background.paper,
41
+ fill: (theme.vars || theme).palette.background.paper,
42
42
  stroke: ownerState.color,
43
- strokeWidth: 2,
44
- '&.MuiMarkElement-highlighted': {
45
- fill: ownerState.color
46
- }
43
+ strokeWidth: 2
47
44
  };
48
45
  });
49
46
  MarkElementPath.propTypes = {
@@ -63,6 +60,16 @@ MarkElementPath.propTypes = {
63
60
  }).isRequired,
64
61
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
65
62
  };
63
+ /**
64
+ * Demos:
65
+ *
66
+ * - [Lines](https://mui.com/x/react-charts/lines/)
67
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
68
+ *
69
+ * API:
70
+ *
71
+ * - [MarkElement API](https://mui.com/x/api/charts/mark-element/)
72
+ */
66
73
  function MarkElement(props) {
67
74
  var _axis$x;
68
75
  var x = props.x,
@@ -9,6 +9,16 @@ import { CartesianContext } from '../context/CartesianContextProvider';
9
9
  import { MarkElement } from './MarkElement';
10
10
  import { getValueToPositionMapper } from '../hooks/useScale';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
+ /**
13
+ * Demos:
14
+ *
15
+ * - [Lines](https://mui.com/x/react-charts/lines/)
16
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
17
+ *
18
+ * API:
19
+ *
20
+ * - [MarkPlot API](https://mui.com/x/api/charts/mark-plot/)
21
+ */
12
22
  function MarkPlot(props) {
13
23
  var _slots$mark;
14
24
  var slots = props.slots,
@@ -37,7 +47,13 @@ function MarkPlot(props) {
37
47
  xAxisKey = _series$seriesId$xAxi === void 0 ? defaultXAxisId : _series$seriesId$xAxi,
38
48
  _series$seriesId$yAxi = _series$seriesId.yAxisKey,
39
49
  yAxisKey = _series$seriesId$yAxi === void 0 ? defaultYAxisId : _series$seriesId$yAxi,
40
- stackedData = _series$seriesId.stackedData;
50
+ stackedData = _series$seriesId.stackedData,
51
+ data = _series$seriesId.data,
52
+ _series$seriesId$show = _series$seriesId.showMark,
53
+ showMark = _series$seriesId$show === void 0 ? true : _series$seriesId$show;
54
+ if (showMark === false) {
55
+ return null;
56
+ }
41
57
  var xScale = getValueToPositionMapper(xAxis[xAxisKey].scale);
42
58
  var yScale = yAxis[yAxisKey].scale;
43
59
  var xData = xAxis[xAxisKey].data;
@@ -58,16 +74,45 @@ function MarkPlot(props) {
58
74
  throw new Error("Axis of id \"".concat(xAxisKey, "\" should have data property to be able to display a line plot"));
59
75
  }
60
76
  return xData == null ? void 0 : xData.map(function (x, index) {
61
- var y = stackedData[index][1];
77
+ var value = data[index] == null ? null : stackedData[index][1];
62
78
  return {
63
79
  x: xScale(x),
64
- y: yScale(y),
80
+ y: value === null ? null : yScale(value),
81
+ position: x,
82
+ value: value,
65
83
  index: index
66
84
  };
67
- }).filter(isInRange).map(function (_ref3) {
85
+ }).filter(function (_ref3) {
68
86
  var x = _ref3.x,
69
87
  y = _ref3.y,
70
- index = _ref3.index;
88
+ index = _ref3.index,
89
+ position = _ref3.position,
90
+ value = _ref3.value;
91
+ if (value === null || y === null) {
92
+ // Remove missing data point
93
+ return false;
94
+ }
95
+ if (!isInRange({
96
+ x: x,
97
+ y: y
98
+ })) {
99
+ // Remove out of range
100
+ return false;
101
+ }
102
+ if (showMark === true) {
103
+ return true;
104
+ }
105
+ return showMark({
106
+ x: x,
107
+ y: y,
108
+ index: index,
109
+ position: position,
110
+ value: value
111
+ });
112
+ }).map(function (_ref4) {
113
+ var x = _ref4.x,
114
+ y = _ref4.y,
115
+ index = _ref4.index;
71
116
  return /*#__PURE__*/_jsx(Mark, _extends({
72
117
  id: seriesId,
73
118
  dataIndex: index,
@@ -22,7 +22,7 @@ var formatter = function formatter(params, dataset) {
22
22
  d3Dataset[index][id] = value;
23
23
  }
24
24
  });
25
- } else if (dataset === undefined) {
25
+ } else if (dataset === undefined && process.env.NODE_ENV !== 'production') {
26
26
  throw new Error(["MUI: line series with id='".concat(id, "' has no data."), 'Either provide a data property to the series or use the dataset prop.'].join('\n'));
27
27
  }
28
28
  });
@@ -36,7 +36,11 @@ var formatter = function formatter(params, dataset) {
36
36
  // Use dataKey if needed and available
37
37
  var dataKey = series[id].dataKey;
38
38
  return series[id].data === undefined && dataKey !== undefined ? dataKey : id;
39
- })).order(stackingOrder).offset(stackingOffset)(d3Dataset);
39
+ })).value(function (d, key) {
40
+ var _d$key;
41
+ return (_d$key = d[key]) != null ? _d$key : 0;
42
+ }) // defaultize null value to 0
43
+ .order(stackingOrder).offset(stackingOffset)(d3Dataset);
40
44
  ids.forEach(function (id, index) {
41
45
  var dataKey = series[id].dataKey;
42
46
  completedSeries[id] = _extends({}, series[id], {
@@ -56,7 +60,7 @@ var formatter = function formatter(params, dataset) {
56
60
  seriesOrder: seriesOrder,
57
61
  stackingGroups: stackingGroups,
58
62
  series: defaultizeValueFormatter(completedSeries, function (v) {
59
- return v.toLocaleString();
63
+ return v == null ? void 0 : v.toLocaleString();
60
64
  })
61
65
  };
62
66
  };
@@ -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
- export * from './MarkElement';
8
+ export * from './MarkElement';
9
+ export * from './LineHighlightElement';