@mui/x-charts 7.0.0-beta.2 → 7.0.0-beta.4

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 (265) hide show
  1. package/BarChart/BarChart.d.ts +21 -5
  2. package/BarChart/BarChart.js +27 -7
  3. package/CHANGELOG.md +298 -23
  4. package/ChartsGrid/ChartsGrid.d.ts +30 -0
  5. package/ChartsGrid/ChartsGrid.js +128 -0
  6. package/ChartsGrid/chartsGridClasses.d.ts +13 -0
  7. package/ChartsGrid/chartsGridClasses.js +14 -0
  8. package/ChartsGrid/index.d.ts +2 -0
  9. package/ChartsGrid/index.js +27 -0
  10. package/ChartsGrid/package.json +6 -0
  11. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +1 -1
  12. package/ChartsSurface.js +6 -4
  13. package/ChartsTooltip/utils.js +1 -1
  14. package/ChartsVoronoiHandler/ChartsVoronoiHandler.d.ts +0 -1
  15. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +1 -2
  16. package/ChartsXAxis/ChartsXAxis.js +3 -3
  17. package/ChartsYAxis/ChartsYAxis.js +3 -3
  18. package/Gauge/Gauge.d.ts +13 -0
  19. package/Gauge/Gauge.js +154 -0
  20. package/Gauge/GaugeContainer.d.ts +17 -0
  21. package/Gauge/GaugeContainer.js +214 -0
  22. package/Gauge/GaugeProvider.d.ts +117 -0
  23. package/Gauge/GaugeProvider.js +99 -0
  24. package/Gauge/GaugeReferenceArc.d.ts +2 -0
  25. package/Gauge/GaugeReferenceArc.js +44 -0
  26. package/Gauge/GaugeValueArc.d.ts +2 -0
  27. package/Gauge/GaugeValueArc.js +51 -0
  28. package/Gauge/GaugeValueText.d.ts +15 -0
  29. package/Gauge/GaugeValueText.js +77 -0
  30. package/Gauge/gaugeClasses.d.ts +14 -0
  31. package/Gauge/gaugeClasses.js +15 -0
  32. package/Gauge/index.d.ts +7 -0
  33. package/Gauge/index.js +87 -0
  34. package/Gauge/package.json +6 -0
  35. package/Gauge/utils.d.ts +19 -0
  36. package/Gauge/utils.js +75 -0
  37. package/LineChart/LineChart.d.ts +24 -5
  38. package/LineChart/LineChart.js +31 -7
  39. package/PieChart/PieArc.d.ts +4 -4
  40. package/PieChart/PieArc.js +9 -9
  41. package/PieChart/PieArcLabelPlot.js +13 -13
  42. package/PieChart/PieChart.d.ts +22 -0
  43. package/PieChart/PieChart.js +22 -2
  44. package/ResponsiveChartContainer/ResponsiveChartContainer.d.ts +0 -2
  45. package/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -68
  46. package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +2 -0
  47. package/ResponsiveChartContainer/useChartContainerDimensions.js +76 -0
  48. package/ScatterChart/ScatterChart.d.ts +18 -0
  49. package/ScatterChart/ScatterChart.js +25 -3
  50. package/SparkLineChart/SparkLineChart.js +0 -2
  51. package/context/CartesianContextProvider.d.ts +0 -8
  52. package/context/CartesianContextProvider.js +4 -89
  53. package/context/DrawingProvider.d.ts +2 -11
  54. package/context/DrawingProvider.js +10 -35
  55. package/context/HighlightProvider.js +3 -0
  56. package/context/InteractionProvider.js +3 -0
  57. package/context/SeriesContextProvider.js +3 -0
  58. package/context/index.d.ts +0 -2
  59. package/context/index.js +1 -15
  60. package/esm/BarChart/BarChart.js +27 -7
  61. package/esm/ChartsGrid/ChartsGrid.js +121 -0
  62. package/esm/ChartsGrid/chartsGridClasses.js +6 -0
  63. package/esm/ChartsGrid/index.js +2 -0
  64. package/esm/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
  65. package/esm/ChartsSurface.js +6 -4
  66. package/esm/ChartsTooltip/utils.js +2 -2
  67. package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -3
  68. package/esm/ChartsXAxis/ChartsXAxis.js +2 -2
  69. package/esm/ChartsYAxis/ChartsYAxis.js +2 -2
  70. package/esm/Gauge/Gauge.js +147 -0
  71. package/esm/Gauge/GaugeContainer.js +209 -0
  72. package/esm/Gauge/GaugeProvider.js +88 -0
  73. package/esm/Gauge/GaugeReferenceArc.js +35 -0
  74. package/esm/Gauge/GaugeValueArc.js +42 -0
  75. package/esm/Gauge/GaugeValueText.js +69 -0
  76. package/esm/Gauge/gaugeClasses.js +7 -0
  77. package/esm/Gauge/index.js +7 -0
  78. package/esm/Gauge/utils.js +68 -0
  79. package/esm/LineChart/LineChart.js +31 -7
  80. package/esm/PieChart/PieArc.js +9 -9
  81. package/esm/PieChart/PieArcLabelPlot.js +13 -13
  82. package/esm/PieChart/PieChart.js +22 -2
  83. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -68
  84. package/esm/ResponsiveChartContainer/useChartContainerDimensions.js +66 -0
  85. package/esm/ScatterChart/ScatterChart.js +25 -3
  86. package/esm/SparkLineChart/SparkLineChart.js +0 -2
  87. package/esm/context/CartesianContextProvider.js +3 -88
  88. package/esm/context/DrawingProvider.js +10 -36
  89. package/esm/context/HighlightProvider.js +3 -0
  90. package/esm/context/InteractionProvider.js +3 -0
  91. package/esm/context/SeriesContextProvider.js +3 -0
  92. package/esm/context/index.js +1 -2
  93. package/esm/hooks/useAxisEvents.js +2 -2
  94. package/esm/hooks/useTicks.js +2 -3
  95. package/esm/index.js +2 -0
  96. package/hooks/useAxisEvents.js +1 -1
  97. package/hooks/useTicks.d.ts +2 -3
  98. package/hooks/useTicks.js +2 -3
  99. package/index.d.ts +2 -0
  100. package/index.js +23 -1
  101. package/modern/BarChart/BarChart.js +27 -7
  102. package/modern/ChartsGrid/ChartsGrid.js +121 -0
  103. package/modern/ChartsGrid/chartsGridClasses.js +6 -0
  104. package/modern/ChartsGrid/index.js +2 -0
  105. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
  106. package/modern/ChartsSurface.js +6 -4
  107. package/modern/ChartsTooltip/utils.js +2 -2
  108. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -3
  109. package/modern/ChartsXAxis/ChartsXAxis.js +2 -2
  110. package/modern/ChartsYAxis/ChartsYAxis.js +2 -2
  111. package/modern/Gauge/Gauge.js +147 -0
  112. package/modern/Gauge/GaugeContainer.js +206 -0
  113. package/modern/Gauge/GaugeProvider.js +88 -0
  114. package/modern/Gauge/GaugeReferenceArc.js +35 -0
  115. package/modern/Gauge/GaugeValueArc.js +42 -0
  116. package/modern/Gauge/GaugeValueText.js +69 -0
  117. package/modern/Gauge/gaugeClasses.js +7 -0
  118. package/modern/Gauge/index.js +7 -0
  119. package/modern/Gauge/utils.js +68 -0
  120. package/modern/LineChart/LineChart.js +31 -7
  121. package/modern/PieChart/PieArc.js +9 -9
  122. package/modern/PieChart/PieArcLabelPlot.js +13 -13
  123. package/modern/PieChart/PieChart.js +22 -2
  124. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -68
  125. package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +66 -0
  126. package/modern/ScatterChart/ScatterChart.js +25 -3
  127. package/modern/SparkLineChart/SparkLineChart.js +0 -2
  128. package/modern/context/CartesianContextProvider.js +3 -88
  129. package/modern/context/DrawingProvider.js +10 -36
  130. package/modern/context/HighlightProvider.js +3 -0
  131. package/modern/context/InteractionProvider.js +3 -0
  132. package/modern/context/SeriesContextProvider.js +3 -0
  133. package/modern/context/index.js +1 -2
  134. package/modern/hooks/useAxisEvents.js +2 -2
  135. package/modern/hooks/useTicks.js +2 -3
  136. package/modern/index.js +3 -1
  137. package/package.json +4 -4
  138. package/legacy/BarChart/BarChart.js +0 -418
  139. package/legacy/BarChart/BarElement.js +0 -119
  140. package/legacy/BarChart/BarPlot.js +0 -232
  141. package/legacy/BarChart/extremums.js +0 -45
  142. package/legacy/BarChart/formatter.js +0 -78
  143. package/legacy/BarChart/index.js +0 -3
  144. package/legacy/BarChart/legend.js +0 -15
  145. package/legacy/ChartContainer/ChartContainer.js +0 -189
  146. package/legacy/ChartContainer/index.js +0 -1
  147. package/legacy/ChartsAxis/ChartsAxis.js +0 -215
  148. package/legacy/ChartsAxis/axisClasses.js +0 -5
  149. package/legacy/ChartsAxis/index.js +0 -2
  150. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +0 -105
  151. package/legacy/ChartsAxisHighlight/index.js +0 -1
  152. package/legacy/ChartsClipPath/ChartsClipPath.js +0 -48
  153. package/legacy/ChartsClipPath/index.js +0 -1
  154. package/legacy/ChartsLegend/ChartsLegend.js +0 -100
  155. package/legacy/ChartsLegend/DefaultChartsLegend.js +0 -302
  156. package/legacy/ChartsLegend/chartsLegendClasses.js +0 -5
  157. package/legacy/ChartsLegend/index.js +0 -4
  158. package/legacy/ChartsLegend/utils.js +0 -15
  159. package/legacy/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +0 -75
  160. package/legacy/ChartsOnAxisClickHandler/index.js +0 -1
  161. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +0 -72
  162. package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +0 -105
  163. package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +0 -105
  164. package/legacy/ChartsReferenceLine/chartsReferenceLineClasses.js +0 -6
  165. package/legacy/ChartsReferenceLine/common.js +0 -19
  166. package/legacy/ChartsReferenceLine/index.js +0 -2
  167. package/legacy/ChartsSurface.js +0 -76
  168. package/legacy/ChartsText/ChartsText.js +0 -95
  169. package/legacy/ChartsText/index.js +0 -1
  170. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +0 -96
  171. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +0 -53
  172. package/legacy/ChartsTooltip/ChartsTooltip.js +0 -148
  173. package/legacy/ChartsTooltip/ChartsTooltipTable.js +0 -80
  174. package/legacy/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -118
  175. package/legacy/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -78
  176. package/legacy/ChartsTooltip/chartsTooltipClasses.js +0 -5
  177. package/legacy/ChartsTooltip/index.js +0 -6
  178. package/legacy/ChartsTooltip/utils.js +0 -103
  179. package/legacy/ChartsVoronoiHandler/ChartsVoronoiHandler.js +0 -206
  180. package/legacy/ChartsVoronoiHandler/index.js +0 -1
  181. package/legacy/ChartsXAxis/ChartsXAxis.js +0 -339
  182. package/legacy/ChartsXAxis/index.js +0 -1
  183. package/legacy/ChartsYAxis/ChartsYAxis.js +0 -267
  184. package/legacy/ChartsYAxis/index.js +0 -1
  185. package/legacy/LineChart/AnimatedArea.js +0 -102
  186. package/legacy/LineChart/AnimatedLine.js +0 -104
  187. package/legacy/LineChart/AreaElement.js +0 -112
  188. package/legacy/LineChart/AreaPlot.js +0 -149
  189. package/legacy/LineChart/LineChart.js +0 -426
  190. package/legacy/LineChart/LineElement.js +0 -112
  191. package/legacy/LineChart/LineHighlightElement.js +0 -79
  192. package/legacy/LineChart/LineHighlightPlot.js +0 -97
  193. package/legacy/LineChart/LinePlot.js +0 -144
  194. package/legacy/LineChart/MarkElement.js +0 -153
  195. package/legacy/LineChart/MarkPlot.js +0 -178
  196. package/legacy/LineChart/extremums.js +0 -54
  197. package/legacy/LineChart/formatter.js +0 -82
  198. package/legacy/LineChart/index.js +0 -11
  199. package/legacy/LineChart/legend.js +0 -15
  200. package/legacy/PieChart/PieArc.js +0 -103
  201. package/legacy/PieChart/PieArcLabel.js +0 -112
  202. package/legacy/PieChart/PieArcLabelPlot.js +0 -193
  203. package/legacy/PieChart/PieArcPlot.js +0 -180
  204. package/legacy/PieChart/PieChart.js +0 -382
  205. package/legacy/PieChart/PiePlot.js +0 -137
  206. package/legacy/PieChart/dataTransform/transition.js +0 -149
  207. package/legacy/PieChart/dataTransform/useTransformData.js +0 -63
  208. package/legacy/PieChart/formatter.js +0 -55
  209. package/legacy/PieChart/index.js +0 -6
  210. package/legacy/PieChart/legend.js +0 -16
  211. package/legacy/ResponsiveChartContainer/ResponsiveChartContainer.js +0 -255
  212. package/legacy/ResponsiveChartContainer/index.js +0 -1
  213. package/legacy/ScatterChart/Scatter.js +0 -110
  214. package/legacy/ScatterChart/ScatterChart.js +0 -370
  215. package/legacy/ScatterChart/ScatterPlot.js +0 -80
  216. package/legacy/ScatterChart/extremums.js +0 -39
  217. package/legacy/ScatterChart/formatter.js +0 -12
  218. package/legacy/ScatterChart/index.js +0 -3
  219. package/legacy/ScatterChart/legend.js +0 -15
  220. package/legacy/SparkLineChart/SparkLineChart.js +0 -266
  221. package/legacy/SparkLineChart/index.js +0 -1
  222. package/legacy/colorPalettes/colorPalettes.js +0 -15
  223. package/legacy/colorPalettes/index.js +0 -1
  224. package/legacy/constants.js +0 -8
  225. package/legacy/context/CartesianContextProvider.js +0 -327
  226. package/legacy/context/DrawingProvider.js +0 -74
  227. package/legacy/context/HighlightProvider.js +0 -56
  228. package/legacy/context/InteractionProvider.js +0 -81
  229. package/legacy/context/SeriesContextProvider.js +0 -74
  230. package/legacy/context/index.js +0 -2
  231. package/legacy/hooks/index.js +0 -2
  232. package/legacy/hooks/useAxisEvents.js +0 -120
  233. package/legacy/hooks/useChartDimensions.js +0 -18
  234. package/legacy/hooks/useDrawingArea.js +0 -21
  235. package/legacy/hooks/useInteractionItemProps.js +0 -71
  236. package/legacy/hooks/useMounted.js +0 -21
  237. package/legacy/hooks/useReducedMotion.js +0 -27
  238. package/legacy/hooks/useScale.js +0 -33
  239. package/legacy/hooks/useTicks.js +0 -66
  240. package/legacy/index.js +0 -31
  241. package/legacy/internals/components/AxisSharedComponents.js +0 -25
  242. package/legacy/internals/defaultizeColor.js +0 -17
  243. package/legacy/internals/defaultizeValueFormatter.js +0 -12
  244. package/legacy/internals/domUtils.js +0 -121
  245. package/legacy/internals/geometry.js +0 -37
  246. package/legacy/internals/getCurve.js +0 -39
  247. package/legacy/internals/getScale.js +0 -17
  248. package/legacy/internals/getWordsByLines.js +0 -15
  249. package/legacy/internals/isBandScale.js +0 -3
  250. package/legacy/internals/stackSeries.js +0 -92
  251. package/legacy/internals/useAnimatedPath.js +0 -32
  252. package/legacy/internals/utils.js +0 -52
  253. package/legacy/models/axis.js +0 -6
  254. package/legacy/models/helpers.js +0 -1
  255. package/legacy/models/index.js +0 -4
  256. package/legacy/models/layout.js +0 -1
  257. package/legacy/models/seriesType/bar.js +0 -1
  258. package/legacy/models/seriesType/common.js +0 -1
  259. package/legacy/models/seriesType/config.js +0 -1
  260. package/legacy/models/seriesType/index.js +0 -5
  261. package/legacy/models/seriesType/line.js +0 -1
  262. package/legacy/models/seriesType/pie.js +0 -1
  263. package/legacy/models/seriesType/scatter.js +0 -1
  264. package/legacy/models/stacking.js +0 -1
  265. package/legacy/themeAugmentation/index.js +0 -3
@@ -1,74 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import PropTypes from 'prop-types';
4
- import useId from '@mui/utils/useId';
5
- import useChartDimensions from '../hooks/useChartDimensions';
6
-
7
- /**
8
- * Defines the area in which it is possible to draw the charts.
9
- */
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- export var DrawingContext = /*#__PURE__*/React.createContext({
12
- top: 0,
13
- left: 0,
14
- bottom: 0,
15
- right: 0,
16
- height: 300,
17
- width: 400,
18
- chartId: ''
19
- });
20
- export var SVGContext = /*#__PURE__*/React.createContext({
21
- current: null
22
- });
23
-
24
- /**
25
- * API:
26
- *
27
- * - [DrawingProvider API](https://mui.com/x/api/charts/drawing-provider/)
28
- */
29
- function DrawingProvider(props) {
30
- var width = props.width,
31
- height = props.height,
32
- margin = props.margin,
33
- svgRef = props.svgRef,
34
- children = props.children;
35
- var drawingArea = useChartDimensions(width, height, margin);
36
- var chartId = useId();
37
- var value = React.useMemo(function () {
38
- return _extends({
39
- chartId: chartId != null ? chartId : ''
40
- }, drawingArea);
41
- }, [chartId, drawingArea]);
42
- return /*#__PURE__*/_jsx(SVGContext.Provider, {
43
- value: svgRef,
44
- children: /*#__PURE__*/_jsx(DrawingContext.Provider, {
45
- value: value,
46
- children: children
47
- })
48
- });
49
- }
50
- process.env.NODE_ENV !== "production" ? DrawingProvider.propTypes = {
51
- // ----------------------------- Warning --------------------------------
52
- // | These PropTypes are generated from the TypeScript type definitions |
53
- // | To update them edit the TypeScript types and run "yarn proptypes" |
54
- // ----------------------------------------------------------------------
55
- children: PropTypes.node,
56
- height: PropTypes.number.isRequired,
57
- /**
58
- * The margin between the SVG and the drawing area.
59
- * It's used for leaving some space for extra information such as the x- and y-axis or legend.
60
- * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
61
- * @default object Depends on the charts type.
62
- */
63
- margin: PropTypes.shape({
64
- bottom: PropTypes.number,
65
- left: PropTypes.number,
66
- right: PropTypes.number,
67
- top: PropTypes.number
68
- }),
69
- svgRef: PropTypes.shape({
70
- current: PropTypes.object
71
- }).isRequired,
72
- width: PropTypes.number.isRequired
73
- } : void 0;
74
- export { DrawingProvider };
@@ -1,56 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import * as React from 'react';
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- var defaultScope = {
6
- highlighted: 'none',
7
- faded: 'none'
8
- };
9
- export var HighlighContext = /*#__PURE__*/React.createContext({
10
- item: null,
11
- scope: defaultScope,
12
- dispatch: function dispatch() {
13
- return null;
14
- }
15
- });
16
- var dataReducer = function dataReducer(prevState, action) {
17
- switch (action.type) {
18
- case 'enterItem':
19
- return _extends({}, prevState, {
20
- item: action.item,
21
- scope: _extends({}, defaultScope, action.scope)
22
- });
23
- case 'leaveItem':
24
- if (prevState.item === null || Object.keys(action.item).some(function (key) {
25
- return action.item[key] !== prevState.item[key];
26
- })) {
27
- // The item is already something else
28
- return prevState;
29
- }
30
- return _extends({}, prevState, {
31
- item: null
32
- });
33
- default:
34
- return prevState;
35
- }
36
- };
37
- function HighlightProvider(props) {
38
- var children = props.children;
39
- var _React$useReducer = React.useReducer(dataReducer, {
40
- item: null,
41
- scope: defaultScope
42
- }),
43
- _React$useReducer2 = _slicedToArray(_React$useReducer, 2),
44
- data = _React$useReducer2[0],
45
- dispatch = _React$useReducer2[1];
46
- var value = React.useMemo(function () {
47
- return _extends({}, data, {
48
- dispatch: dispatch
49
- });
50
- }, [data]);
51
- return /*#__PURE__*/_jsx(HighlighContext.Provider, {
52
- value: value,
53
- children: children
54
- });
55
- }
56
- export { HighlightProvider };
@@ -1,81 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import * as React from 'react';
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- export var InteractionContext = /*#__PURE__*/React.createContext({
6
- item: null,
7
- axis: {
8
- x: null,
9
- y: null
10
- },
11
- useVoronoiInteraction: false,
12
- dispatch: function dispatch() {
13
- return null;
14
- }
15
- });
16
- var dataReducer = function dataReducer(prevState, action) {
17
- switch (action.type) {
18
- case 'enterItem':
19
- return _extends({}, prevState, {
20
- item: action.data
21
- });
22
- case 'exitChart':
23
- if (prevState.item === null && prevState.axis.x === null && prevState.axis.y === null) {
24
- return prevState;
25
- }
26
- return _extends({}, prevState, {
27
- axis: {
28
- x: null,
29
- y: null
30
- },
31
- item: null
32
- });
33
- case 'updateVoronoiUsage':
34
- return _extends({}, prevState, {
35
- useVoronoiInteraction: action.useVoronoiInteraction
36
- });
37
- case 'leaveItem':
38
- if (prevState.item === null || Object.keys(action.data).some(function (key) {
39
- return action.data[key] !== prevState.item[key];
40
- })) {
41
- // The item is already something else
42
- return prevState;
43
- }
44
- return _extends({}, prevState, {
45
- item: null
46
- });
47
- case 'updateAxis':
48
- if (action.data.x === prevState.axis.x && action.data.y === prevState.axis.y) {
49
- return prevState;
50
- }
51
- return _extends({}, prevState, {
52
- axis: action.data
53
- });
54
- default:
55
- return prevState;
56
- }
57
- };
58
- function InteractionProvider(props) {
59
- var children = props.children;
60
- var _React$useReducer = React.useReducer(dataReducer, {
61
- item: null,
62
- axis: {
63
- x: null,
64
- y: null
65
- },
66
- useVoronoiInteraction: false
67
- }),
68
- _React$useReducer2 = _slicedToArray(_React$useReducer, 2),
69
- data = _React$useReducer2[0],
70
- dispatch = _React$useReducer2[1];
71
- var value = React.useMemo(function () {
72
- return _extends({}, data, {
73
- dispatch: dispatch
74
- });
75
- }, [data]);
76
- return /*#__PURE__*/_jsx(InteractionContext.Provider, {
77
- value: value,
78
- children: children
79
- });
80
- }
81
- export { InteractionProvider };
@@ -1,74 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import { useTheme } from '@mui/material/styles';
4
- import barSeriesFormatter from '../BarChart/formatter';
5
- import scatterSeriesFormatter from '../ScatterChart/formatter';
6
- import lineSeriesFormatter from '../LineChart/formatter';
7
- import pieSeriesFormatter from '../PieChart/formatter';
8
- import { defaultizeColor } from '../internals/defaultizeColor';
9
- import { blueberryTwilightPalette } from '../colorPalettes';
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- export var SeriesContext = /*#__PURE__*/React.createContext({});
12
- var seriesTypeFormatter = {
13
- bar: barSeriesFormatter,
14
- scatter: scatterSeriesFormatter,
15
- line: lineSeriesFormatter,
16
- pie: pieSeriesFormatter
17
- };
18
-
19
- /**
20
- * This methods is the interface between what the developer is providing and what components receives
21
- * To simplify the components behaviors, it groups series by type, such that LinePlots props are not updated if some line data are modified
22
- * It also add defaultized values such as the ids, colors
23
- * @param series The array of series provided by devs
24
- * @param colors The color palette used to defaultize series colors
25
- * @returns An object structuring all the series by type.
26
- */
27
- var formatSeries = function formatSeries(series, colors, dataset) {
28
- // Group series by type
29
- var seriesGroups = {};
30
- series.forEach(function (seriesData, seriesIndex) {
31
- var _seriesGroups$type;
32
- var _seriesData$id = seriesData.id,
33
- id = _seriesData$id === void 0 ? "auto-generated-id-".concat(seriesIndex) : _seriesData$id,
34
- type = seriesData.type;
35
- if (seriesGroups[type] === undefined) {
36
- seriesGroups[type] = {
37
- series: {},
38
- seriesOrder: []
39
- };
40
- }
41
- if (((_seriesGroups$type = seriesGroups[type]) == null ? void 0 : _seriesGroups$type.series[id]) !== undefined) {
42
- throw new Error("MUI X Charts: series' id \"".concat(id, "\" is not unique."));
43
- }
44
- seriesGroups[type].series[id] = _extends({
45
- id: id
46
- }, defaultizeColor(seriesData, seriesIndex, colors));
47
- seriesGroups[type].seriesOrder.push(id);
48
- });
49
- var formattedSeries = {};
50
- // Apply formater on a type group
51
- Object.keys(seriesTypeFormatter).forEach(function (type) {
52
- if (seriesGroups[type] !== undefined) {
53
- var _seriesTypeFormatter$, _seriesTypeFormatter$2;
54
- formattedSeries[type] = (_seriesTypeFormatter$ = (_seriesTypeFormatter$2 = seriesTypeFormatter[type]) == null ? void 0 : _seriesTypeFormatter$2.call(seriesTypeFormatter, seriesGroups[type], dataset)) != null ? _seriesTypeFormatter$ : seriesGroups[type];
55
- }
56
- });
57
- return formattedSeries;
58
- };
59
- function SeriesContextProvider(props) {
60
- var series = props.series,
61
- dataset = props.dataset,
62
- _props$colors = props.colors,
63
- colors = _props$colors === void 0 ? blueberryTwilightPalette : _props$colors,
64
- children = props.children;
65
- var theme = useTheme();
66
- var formattedSeries = React.useMemo(function () {
67
- return formatSeries(series, typeof colors === 'function' ? colors(theme.palette.mode) : colors, dataset);
68
- }, [series, colors, theme.palette.mode, dataset]);
69
- return /*#__PURE__*/_jsx(SeriesContext.Provider, {
70
- value: formattedSeries,
71
- children: children
72
- });
73
- }
74
- export { SeriesContextProvider };
@@ -1,2 +0,0 @@
1
- export { CartesianContextProvider } from './CartesianContextProvider';
2
- export { DrawingProvider } from './DrawingProvider';
@@ -1,2 +0,0 @@
1
- export * from './useDrawingArea';
2
- export * from './useScale';
@@ -1,120 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import * as React from 'react';
3
- import { InteractionContext } from '../context/InteractionProvider';
4
- import { CartesianContext } from '../context/CartesianContextProvider';
5
- import { SVGContext, DrawingContext } from '../context/DrawingProvider';
6
- import { isBandScale } from '../internals/isBandScale';
7
- import { getSVGPoint } from '../internals/utils';
8
- function getAsANumber(value) {
9
- return value instanceof Date ? value.getTime() : value;
10
- }
11
- export var useAxisEvents = function useAxisEvents(disableAxisListener) {
12
- var svgRef = React.useContext(SVGContext);
13
- var _React$useContext = React.useContext(DrawingContext),
14
- width = _React$useContext.width,
15
- height = _React$useContext.height,
16
- top = _React$useContext.top,
17
- left = _React$useContext.left;
18
- var _React$useContext2 = React.useContext(CartesianContext),
19
- xAxis = _React$useContext2.xAxis,
20
- yAxis = _React$useContext2.yAxis,
21
- xAxisIds = _React$useContext2.xAxisIds,
22
- yAxisIds = _React$useContext2.yAxisIds;
23
- var _React$useContext3 = React.useContext(InteractionContext),
24
- dispatch = _React$useContext3.dispatch;
25
- var usedXAxis = xAxisIds[0];
26
- var usedYAxis = yAxisIds[0];
27
-
28
- // Use a ref to avoid rerendering on every mousemove event.
29
- var mousePosition = React.useRef({
30
- x: -1,
31
- y: -1
32
- });
33
- React.useEffect(function () {
34
- var element = svgRef.current;
35
- if (element === null || disableAxisListener) {
36
- return function () {};
37
- }
38
- var getUpdate = function getUpdate(axisConfig, mouseValue) {
39
- if (usedXAxis === null) {
40
- return null;
41
- }
42
- var scale = axisConfig.scale,
43
- axisData = axisConfig.data;
44
- if (!isBandScale(scale)) {
45
- var value = scale.invert(mouseValue);
46
- if (axisData === undefined) {
47
- return {
48
- value: value
49
- };
50
- }
51
- var valueAsNumber = getAsANumber(value);
52
- var closestIndex = axisData == null ? void 0 : axisData.findIndex(function (pointValue, index) {
53
- var v = getAsANumber(pointValue);
54
- if (v > valueAsNumber) {
55
- if (index === 0 || Math.abs(valueAsNumber - v) <= Math.abs(valueAsNumber - getAsANumber(axisData[index - 1]))) {
56
- return true;
57
- }
58
- }
59
- if (v <= valueAsNumber) {
60
- if (index === axisData.length - 1 || Math.abs(getAsANumber(value) - v) < Math.abs(getAsANumber(value) - getAsANumber(axisData[index + 1]))) {
61
- return true;
62
- }
63
- }
64
- return false;
65
- });
66
- return {
67
- value: closestIndex !== undefined && closestIndex >= 0 ? axisData[closestIndex] : value,
68
- index: closestIndex
69
- };
70
- }
71
- var dataIndex = scale.bandwidth() === 0 ? Math.floor((mouseValue - Math.min.apply(Math, _toConsumableArray(scale.range())) + scale.step() / 2) / scale.step()) : Math.floor((mouseValue - Math.min.apply(Math, _toConsumableArray(scale.range()))) / scale.step());
72
- if (dataIndex < 0 || dataIndex >= axisData.length) {
73
- return null;
74
- }
75
- return {
76
- index: dataIndex,
77
- value: axisData[dataIndex]
78
- };
79
- };
80
- var handleMouseOut = function handleMouseOut() {
81
- mousePosition.current = {
82
- x: -1,
83
- y: -1
84
- };
85
- dispatch({
86
- type: 'exitChart'
87
- });
88
- };
89
- var handleMouseMove = function handleMouseMove(event) {
90
- var svgPoint = getSVGPoint(svgRef.current, event);
91
- mousePosition.current = {
92
- x: svgPoint.x,
93
- y: svgPoint.y
94
- };
95
- var outsideX = svgPoint.x < left || svgPoint.x > left + width;
96
- var outsideY = svgPoint.y < top || svgPoint.y > top + height;
97
- if (outsideX || outsideY) {
98
- dispatch({
99
- type: 'exitChart'
100
- });
101
- return;
102
- }
103
- var newStateX = getUpdate(xAxis[usedXAxis], svgPoint.x);
104
- var newStateY = getUpdate(yAxis[usedYAxis], svgPoint.y);
105
- dispatch({
106
- type: 'updateAxis',
107
- data: {
108
- x: newStateX,
109
- y: newStateY
110
- }
111
- });
112
- };
113
- element.addEventListener('mouseout', handleMouseOut);
114
- element.addEventListener('mousemove', handleMouseMove);
115
- return function () {
116
- element.removeEventListener('mouseout', handleMouseOut);
117
- element.removeEventListener('mousemove', handleMouseMove);
118
- };
119
- }, [svgRef, dispatch, left, width, top, height, usedYAxis, yAxis, usedXAxis, xAxis, disableAxisListener]);
120
- };
@@ -1,18 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import { DEFAULT_MARGINS } from '../constants';
4
- var useChartDimensions = function useChartDimensions(width, height, margin) {
5
- var defaultizedMargin = _extends({}, DEFAULT_MARGINS, margin);
6
- var drawingArea = React.useMemo(function () {
7
- return {
8
- left: defaultizedMargin.left,
9
- top: defaultizedMargin.top,
10
- right: defaultizedMargin.right,
11
- bottom: defaultizedMargin.bottom,
12
- width: Math.max(0, width - defaultizedMargin.left - defaultizedMargin.right),
13
- height: Math.max(0, height - defaultizedMargin.top - defaultizedMargin.bottom)
14
- };
15
- }, [width, height, defaultizedMargin.top, defaultizedMargin.bottom, defaultizedMargin.left, defaultizedMargin.right]);
16
- return drawingArea;
17
- };
18
- export default useChartDimensions;
@@ -1,21 +0,0 @@
1
- import * as React from 'react';
2
- import { DrawingContext } from '../context/DrawingProvider';
3
- export function useDrawingArea() {
4
- var _React$useContext = React.useContext(DrawingContext),
5
- left = _React$useContext.left,
6
- top = _React$useContext.top,
7
- width = _React$useContext.width,
8
- height = _React$useContext.height,
9
- bottom = _React$useContext.bottom,
10
- right = _React$useContext.right;
11
- return React.useMemo(function () {
12
- return {
13
- left: left,
14
- top: top,
15
- width: width,
16
- height: height,
17
- bottom: bottom,
18
- right: right
19
- };
20
- }, [height, left, top, width, bottom, right]);
21
- }
@@ -1,71 +0,0 @@
1
- import * as React from 'react';
2
- import { InteractionContext } from '../context/InteractionProvider';
3
- import { HighlighContext } from '../context/HighlightProvider';
4
- export var useInteractionItemProps = function useInteractionItemProps(scope, skip) {
5
- var _React$useContext = React.useContext(InteractionContext),
6
- dispatchInteraction = _React$useContext.dispatch;
7
- var _React$useContext2 = React.useContext(HighlighContext),
8
- dispatchHighlight = _React$useContext2.dispatch;
9
- if (skip) {
10
- return function () {
11
- return {};
12
- };
13
- }
14
- var getInteractionItemProps = function getInteractionItemProps(data) {
15
- var onMouseEnter = function onMouseEnter() {
16
- dispatchInteraction({
17
- type: 'enterItem',
18
- data: data
19
- });
20
- dispatchHighlight({
21
- type: 'enterItem',
22
- item: data,
23
- scope: scope
24
- });
25
- };
26
- var onMouseLeave = function onMouseLeave() {
27
- dispatchInteraction({
28
- type: 'leaveItem',
29
- data: data
30
- });
31
- dispatchHighlight({
32
- type: 'leaveItem',
33
- item: data
34
- });
35
- };
36
- return {
37
- onMouseEnter: onMouseEnter,
38
- onMouseLeave: onMouseLeave
39
- };
40
- };
41
- return getInteractionItemProps;
42
- };
43
- export var getIsHighlighted = function getIsHighlighted(selectedItem, currentItem, highlightScope) {
44
- if (!(highlightScope != null && highlightScope.highlighted) || highlightScope.highlighted === 'none' || selectedItem === null) {
45
- return false;
46
- }
47
- var isSeriesSelected = selectedItem.type === currentItem.type && selectedItem.seriesId === currentItem.seriesId;
48
- if (!isSeriesSelected) {
49
- return false;
50
- }
51
- if (highlightScope.highlighted === 'series') {
52
- return isSeriesSelected;
53
- }
54
- return selectedItem.dataIndex !== undefined && selectedItem.dataIndex === currentItem.dataIndex;
55
- };
56
- export var getIsFaded = function getIsFaded(selectedItem, currentItem, highlightScope) {
57
- if (!(highlightScope != null && highlightScope.faded) || highlightScope.faded === 'none' || selectedItem === null) {
58
- return false;
59
- }
60
- var isSeriesSelected = selectedItem.type === currentItem.type && selectedItem.seriesId === currentItem.seriesId;
61
- if (highlightScope.faded === 'series') {
62
- return isSeriesSelected && selectedItem.dataIndex !== currentItem.dataIndex;
63
- }
64
- if (highlightScope.faded === 'global') {
65
- if (!isSeriesSelected) {
66
- return true;
67
- }
68
- return selectedItem.dataIndex !== undefined && selectedItem.dataIndex !== currentItem.dataIndex;
69
- }
70
- return false;
71
- };
@@ -1,21 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import * as React from 'react';
3
- import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
4
- export function useMounted() {
5
- var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6
- var _React$useState = React.useState(false),
7
- _React$useState2 = _slicedToArray(_React$useState, 2),
8
- mountedState = _React$useState2[0],
9
- setMountedState = _React$useState2[1];
10
- useEnhancedEffect(function () {
11
- if (!defer) {
12
- setMountedState(true);
13
- }
14
- }, [defer]);
15
- React.useEffect(function () {
16
- if (defer) {
17
- setMountedState(true);
18
- }
19
- }, [defer]);
20
- return mountedState;
21
- }
@@ -1,27 +0,0 @@
1
- import { useIsomorphicLayoutEffect, Globals } from '@react-spring/web';
2
-
3
- /**
4
- * Returns `boolean` or `null`, used to automatically
5
- * set skipAnimations to the value of the user's
6
- * `prefers-reduced-motion` query.
7
- *
8
- * The return value, post-effect, is the value of their prefered setting
9
- */
10
- export var useReducedMotion = function useReducedMotion() {
11
- // Taken from: https://github.com/pmndrs/react-spring/blob/02ec877bbfab0df46da0e4a47d5f68d3e731206a/packages/shared/src/hooks/useReducedMotion.ts#L13
12
-
13
- useIsomorphicLayoutEffect(function () {
14
- var mql = window.matchMedia('(prefers-reduced-motion)');
15
- var handleMediaChange = function handleMediaChange(e) {
16
- Globals.assign({
17
- // Modification such the react-spring implementation such that this hook can remove animation but never activate animation.
18
- skipAnimation: e.matches || undefined
19
- });
20
- };
21
- handleMediaChange(mql);
22
- mql.addEventListener('change', handleMediaChange);
23
- return function () {
24
- mql.removeEventListener('change', handleMediaChange);
25
- };
26
- }, []);
27
- };
@@ -1,33 +0,0 @@
1
- import * as React from 'react';
2
- import { CartesianContext } from '../context/CartesianContextProvider';
3
- import { isBandScale } from '../internals/isBandScale';
4
- /**
5
- * For a given scale return a function that map value to their position.
6
- * Usefull when dealing with specific scale such as band.
7
- * @param scale The scale to use
8
- * @returns (value: any) => number
9
- */
10
- export function getValueToPositionMapper(scale) {
11
- if (isBandScale(scale)) {
12
- return function (value) {
13
- return scale(value) + scale.bandwidth() / 2;
14
- };
15
- }
16
- return function (value) {
17
- return scale(value);
18
- };
19
- }
20
- export function useXScale(identifier) {
21
- var _React$useContext = React.useContext(CartesianContext),
22
- xAxis = _React$useContext.xAxis,
23
- xAxisIds = _React$useContext.xAxisIds;
24
- var id = typeof identifier === 'string' ? identifier : xAxisIds[identifier != null ? identifier : 0];
25
- return xAxis[id].scale;
26
- }
27
- export function useYScale(identifier) {
28
- var _React$useContext2 = React.useContext(CartesianContext),
29
- yAxis = _React$useContext2.yAxis,
30
- yAxisIds = _React$useContext2.yAxisIds;
31
- var id = typeof identifier === 'string' ? identifier : yAxisIds[identifier != null ? identifier : 0];
32
- return yAxis[id].scale;
33
- }
@@ -1,66 +0,0 @@
1
- import _typeof from "@babel/runtime/helpers/esm/typeof";
2
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
- import * as React from 'react';
4
- import { isBandScale } from '../internals/isBandScale';
5
- export function getTickNumber(params) {
6
- var tickMaxStep = params.tickMaxStep,
7
- tickMinStep = params.tickMinStep,
8
- tickNumber = params.tickNumber,
9
- range = params.range,
10
- domain = params.domain;
11
- var maxTicks = tickMinStep === undefined ? 999 : Math.floor(Math.abs(domain[1] - domain[0]) / tickMinStep);
12
- var minTicks = tickMaxStep === undefined ? 2 : Math.ceil(Math.abs(domain[1] - domain[0]) / tickMaxStep);
13
- var defaultizedTickNumber = tickNumber != null ? tickNumber : Math.floor(Math.abs(range[1] - range[0]) / 50);
14
- return Math.min(maxTicks, Math.max(minTicks, defaultizedTickNumber));
15
- }
16
- function useTicks(options) {
17
- var scale = options.scale,
18
- tickNumber = options.tickNumber,
19
- valueFormatter = options.valueFormatter,
20
- tickInterval = options.tickInterval;
21
- return React.useMemo(function () {
22
- // band scale
23
- if (isBandScale(scale)) {
24
- var domain = scale.domain();
25
- if (scale.bandwidth() > 0) {
26
- // scale type = 'band'
27
- return [].concat(_toConsumableArray(domain.map(function (value) {
28
- var _valueFormatter;
29
- return {
30
- value: value,
31
- formattedValue: (_valueFormatter = valueFormatter == null ? void 0 : valueFormatter(value)) != null ? _valueFormatter : "".concat(value),
32
- offset: scale(value) - (scale.step() - scale.bandwidth()) / 2,
33
- labelOffset: scale.step() / 2
34
- };
35
- })), [{
36
- formattedValue: undefined,
37
- offset: scale.range()[1],
38
- labelOffset: 0
39
- }]);
40
- }
41
-
42
- // scale type = 'point'
43
- var filteredDomain = typeof tickInterval === 'function' && domain.filter(tickInterval) || _typeof(tickInterval) === 'object' && tickInterval || domain;
44
- return filteredDomain.map(function (value) {
45
- var _valueFormatter2;
46
- return {
47
- value: value,
48
- formattedValue: (_valueFormatter2 = valueFormatter == null ? void 0 : valueFormatter(value)) != null ? _valueFormatter2 : "".concat(value),
49
- offset: scale(value),
50
- labelOffset: 0
51
- };
52
- });
53
- }
54
- var ticks = _typeof(tickInterval) === 'object' ? tickInterval : scale.ticks(tickNumber);
55
- return ticks.map(function (value) {
56
- var _valueFormatter3;
57
- return {
58
- value: value,
59
- formattedValue: (_valueFormatter3 = valueFormatter == null ? void 0 : valueFormatter(value)) != null ? _valueFormatter3 : scale.tickFormat(tickNumber)(value),
60
- offset: scale(value),
61
- labelOffset: 0
62
- };
63
- });
64
- }, [tickNumber, scale, valueFormatter, tickInterval]);
65
- }
66
- export default useTicks;