@mui/x-charts 7.1.1 → 7.3.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 (192) hide show
  1. package/BarChart/BarChart.js +32 -2
  2. package/BarChart/BarPlot.js +12 -5
  3. package/BarChart/extremums.js +1 -1
  4. package/BarChart/getColor.d.ts +3 -0
  5. package/BarChart/getColor.js +33 -0
  6. package/CHANGELOG.md +211 -0
  7. package/ChartContainer/ChartContainer.js +35 -4
  8. package/ChartsAxis/ChartsAxis.js +4 -4
  9. package/ChartsClipPath/ChartsClipPath.js +2 -2
  10. package/ChartsLegend/ChartsLegend.js +2 -2
  11. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +4 -1
  12. package/ChartsTooltip/ChartsAxisTooltipContent.js +7 -2
  13. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +6 -0
  14. package/ChartsTooltip/ChartsItemTooltipContent.js +15 -1
  15. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +6 -3
  16. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +13 -4
  17. package/ChartsTooltip/utils.d.ts +5 -1
  18. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
  19. package/ChartsXAxis/ChartsXAxis.js +7 -7
  20. package/ChartsYAxis/ChartsYAxis.js +9 -6
  21. package/Gauge/GaugeProvider.js +5 -5
  22. package/LineChart/AnimatedArea.js +6 -5
  23. package/LineChart/AnimatedLine.js +7 -5
  24. package/LineChart/AreaElement.d.ts +1 -0
  25. package/LineChart/AreaElement.js +4 -1
  26. package/LineChart/AreaPlot.js +7 -1
  27. package/LineChart/LineChart.js +32 -2
  28. package/LineChart/LineElement.d.ts +1 -0
  29. package/LineChart/LineElement.js +4 -1
  30. package/LineChart/LineHighlightPlot.js +4 -1
  31. package/LineChart/LinePlot.js +7 -1
  32. package/LineChart/MarkPlot.js +5 -5
  33. package/LineChart/getColor.d.ts +3 -0
  34. package/LineChart/getColor.js +31 -0
  35. package/PieChart/PieChart.js +32 -2
  36. package/PieChart/PiePlot.js +26 -6
  37. package/PieChart/formatter.js +4 -2
  38. package/PieChart/getColor.d.ts +2 -0
  39. package/PieChart/getColor.js +11 -0
  40. package/PieChart/getPieCoordinates.d.ts +7 -0
  41. package/PieChart/getPieCoordinates.js +25 -0
  42. package/PieChart/index.d.ts +1 -0
  43. package/PieChart/index.js +11 -0
  44. package/ResponsiveChartContainer/ResponsiveChartContainer.js +32 -2
  45. package/ScatterChart/Scatter.d.ts +1 -0
  46. package/ScatterChart/Scatter.js +6 -3
  47. package/ScatterChart/ScatterChart.js +32 -2
  48. package/ScatterChart/ScatterPlot.js +3 -0
  49. package/ScatterChart/getColor.d.ts +3 -0
  50. package/ScatterChart/getColor.js +31 -0
  51. package/SparkLineChart/SparkLineChart.js +15 -0
  52. package/context/CartesianContextProvider.d.ts +2 -2
  53. package/context/CartesianContextProvider.js +23 -8
  54. package/esm/BarChart/BarChart.js +32 -2
  55. package/esm/BarChart/BarPlot.js +13 -5
  56. package/esm/BarChart/extremums.js +1 -1
  57. package/esm/BarChart/getColor.js +27 -0
  58. package/esm/ChartContainer/ChartContainer.js +36 -4
  59. package/esm/ChartsAxis/ChartsAxis.js +4 -4
  60. package/esm/ChartsClipPath/ChartsClipPath.js +2 -2
  61. package/esm/ChartsLegend/ChartsLegend.js +2 -2
  62. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +7 -2
  63. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -1
  64. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +6 -3
  65. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +13 -4
  66. package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
  67. package/esm/ChartsXAxis/ChartsXAxis.js +7 -7
  68. package/esm/ChartsYAxis/ChartsYAxis.js +9 -6
  69. package/esm/Gauge/GaugeProvider.js +5 -5
  70. package/esm/LineChart/AnimatedArea.js +6 -5
  71. package/esm/LineChart/AnimatedLine.js +7 -5
  72. package/esm/LineChart/AreaElement.js +4 -1
  73. package/esm/LineChart/AreaPlot.js +7 -1
  74. package/esm/LineChart/LineChart.js +32 -2
  75. package/esm/LineChart/LineElement.js +4 -1
  76. package/esm/LineChart/LineHighlightPlot.js +4 -1
  77. package/esm/LineChart/LinePlot.js +7 -1
  78. package/esm/LineChart/MarkPlot.js +5 -5
  79. package/esm/LineChart/getColor.js +25 -0
  80. package/esm/PieChart/PieChart.js +32 -2
  81. package/esm/PieChart/PiePlot.js +26 -6
  82. package/esm/PieChart/formatter.js +4 -2
  83. package/esm/PieChart/getColor.js +5 -0
  84. package/esm/PieChart/getPieCoordinates.js +19 -0
  85. package/esm/PieChart/index.js +2 -1
  86. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +32 -2
  87. package/esm/ScatterChart/Scatter.js +6 -3
  88. package/esm/ScatterChart/ScatterChart.js +32 -2
  89. package/esm/ScatterChart/ScatterPlot.js +3 -0
  90. package/esm/ScatterChart/getColor.js +25 -0
  91. package/esm/SparkLineChart/SparkLineChart.js +15 -0
  92. package/esm/context/CartesianContextProvider.js +23 -8
  93. package/esm/hooks/index.js +4 -1
  94. package/esm/hooks/useAxisEvents.js +7 -6
  95. package/esm/hooks/useChartId.js +8 -0
  96. package/esm/hooks/useSeries.js +64 -0
  97. package/esm/hooks/useSvgRef.js +9 -0
  98. package/esm/internals/colorGetter.js +22 -0
  99. package/esm/internals/colorScale.js +16 -0
  100. package/esm/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +96 -0
  101. package/esm/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +55 -0
  102. package/esm/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +41 -0
  103. package/esm/internals/components/ChartsAxesGradients/index.js +1 -0
  104. package/esm/models/colorMapping.js +1 -0
  105. package/esm/models/seriesType/index.js +6 -1
  106. package/hooks/index.d.ts +3 -0
  107. package/hooks/index.js +65 -1
  108. package/hooks/useAxisEvents.js +7 -6
  109. package/hooks/useChartId.d.ts +1 -0
  110. package/hooks/useChartId.js +16 -0
  111. package/hooks/useSeries.d.ts +45 -0
  112. package/hooks/useSeries.js +75 -0
  113. package/hooks/useSvgRef.d.ts +2 -0
  114. package/hooks/useSvgRef.js +17 -0
  115. package/hooks/useTicks.d.ts +1 -1
  116. package/index.js +1 -1
  117. package/internals/colorGetter.d.ts +5 -0
  118. package/internals/colorGetter.js +29 -0
  119. package/internals/colorScale.d.ts +5 -0
  120. package/internals/colorScale.js +24 -0
  121. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +3 -0
  122. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +105 -0
  123. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.d.ts +13 -0
  124. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +63 -0
  125. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.d.ts +12 -0
  126. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +48 -0
  127. package/internals/components/ChartsAxesGradients/index.d.ts +1 -0
  128. package/internals/components/ChartsAxesGradients/index.js +16 -0
  129. package/internals/defaultizeColor.d.ts +4 -4
  130. package/internals/defaultizeValueFormatter.d.ts +5 -5
  131. package/internals/getScale.d.ts +2 -2
  132. package/models/axis.d.ts +44 -4
  133. package/models/colorMapping.d.ts +45 -0
  134. package/models/colorMapping.js +5 -0
  135. package/models/index.d.ts +1 -1
  136. package/models/seriesType/common.d.ts +10 -2
  137. package/models/seriesType/index.d.ts +2 -0
  138. package/models/seriesType/index.js +17 -1
  139. package/modern/BarChart/BarChart.js +32 -2
  140. package/modern/BarChart/BarPlot.js +13 -5
  141. package/modern/BarChart/extremums.js +1 -1
  142. package/modern/BarChart/getColor.js +27 -0
  143. package/modern/ChartContainer/ChartContainer.js +36 -4
  144. package/modern/ChartsAxis/ChartsAxis.js +4 -4
  145. package/modern/ChartsClipPath/ChartsClipPath.js +2 -2
  146. package/modern/ChartsLegend/ChartsLegend.js +2 -2
  147. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +7 -2
  148. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -1
  149. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +6 -3
  150. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +13 -4
  151. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
  152. package/modern/ChartsXAxis/ChartsXAxis.js +7 -7
  153. package/modern/ChartsYAxis/ChartsYAxis.js +9 -6
  154. package/modern/Gauge/GaugeProvider.js +5 -5
  155. package/modern/LineChart/AnimatedArea.js +6 -5
  156. package/modern/LineChart/AnimatedLine.js +7 -5
  157. package/modern/LineChart/AreaElement.js +4 -1
  158. package/modern/LineChart/AreaPlot.js +7 -1
  159. package/modern/LineChart/LineChart.js +32 -2
  160. package/modern/LineChart/LineElement.js +4 -1
  161. package/modern/LineChart/LineHighlightPlot.js +4 -1
  162. package/modern/LineChart/LinePlot.js +7 -1
  163. package/modern/LineChart/MarkPlot.js +5 -5
  164. package/modern/LineChart/getColor.js +25 -0
  165. package/modern/PieChart/PieChart.js +32 -2
  166. package/modern/PieChart/PiePlot.js +26 -6
  167. package/modern/PieChart/formatter.js +4 -2
  168. package/modern/PieChart/getColor.js +5 -0
  169. package/modern/PieChart/getPieCoordinates.js +19 -0
  170. package/modern/PieChart/index.js +2 -1
  171. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +32 -2
  172. package/modern/ScatterChart/Scatter.js +6 -3
  173. package/modern/ScatterChart/ScatterChart.js +32 -2
  174. package/modern/ScatterChart/ScatterPlot.js +3 -0
  175. package/modern/ScatterChart/getColor.js +25 -0
  176. package/modern/SparkLineChart/SparkLineChart.js +15 -0
  177. package/modern/context/CartesianContextProvider.js +23 -8
  178. package/modern/hooks/index.js +4 -1
  179. package/modern/hooks/useAxisEvents.js +7 -6
  180. package/modern/hooks/useChartId.js +8 -0
  181. package/modern/hooks/useSeries.js +64 -0
  182. package/modern/hooks/useSvgRef.js +9 -0
  183. package/modern/index.js +1 -1
  184. package/modern/internals/colorGetter.js +22 -0
  185. package/modern/internals/colorScale.js +16 -0
  186. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +96 -0
  187. package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +55 -0
  188. package/modern/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +41 -0
  189. package/modern/internals/components/ChartsAxesGradients/index.js +1 -0
  190. package/modern/models/colorMapping.js +1 -0
  191. package/modern/models/seriesType/index.js +6 -1
  192. package/package.json +1 -1
package/hooks/index.js CHANGED
@@ -3,9 +3,47 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ unstable_useSeries: true,
8
+ unstable_usePieSeries: true,
9
+ unstable_useLineSeries: true,
10
+ unstable_useBarSeries: true,
11
+ unstable_useScatterSeries: true
12
+ };
13
+ Object.defineProperty(exports, "unstable_useBarSeries", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _useSeries.useBarSeries;
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "unstable_useLineSeries", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _useSeries.useLineSeries;
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "unstable_usePieSeries", {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _useSeries.usePieSeries;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "unstable_useScatterSeries", {
32
+ enumerable: true,
33
+ get: function () {
34
+ return _useSeries.useScatterSeries;
35
+ }
36
+ });
37
+ Object.defineProperty(exports, "unstable_useSeries", {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _useSeries.useSeries;
41
+ }
42
+ });
6
43
  var _useDrawingArea = require("./useDrawingArea");
7
44
  Object.keys(_useDrawingArea).forEach(function (key) {
8
45
  if (key === "default" || key === "__esModule") return;
46
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
9
47
  if (key in exports && exports[key] === _useDrawingArea[key]) return;
10
48
  Object.defineProperty(exports, key, {
11
49
  enumerable: true,
@@ -14,9 +52,22 @@ Object.keys(_useDrawingArea).forEach(function (key) {
14
52
  }
15
53
  });
16
54
  });
55
+ var _useChartId = require("./useChartId");
56
+ Object.keys(_useChartId).forEach(function (key) {
57
+ if (key === "default" || key === "__esModule") return;
58
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
59
+ if (key in exports && exports[key] === _useChartId[key]) return;
60
+ Object.defineProperty(exports, key, {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _useChartId[key];
64
+ }
65
+ });
66
+ });
17
67
  var _useScale = require("./useScale");
18
68
  Object.keys(_useScale).forEach(function (key) {
19
69
  if (key === "default" || key === "__esModule") return;
70
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
71
  if (key in exports && exports[key] === _useScale[key]) return;
21
72
  Object.defineProperty(exports, key, {
22
73
  enumerable: true,
@@ -24,4 +75,17 @@ Object.keys(_useScale).forEach(function (key) {
24
75
  return _useScale[key];
25
76
  }
26
77
  });
27
- });
78
+ });
79
+ var _useSvgRef = require("./useSvgRef");
80
+ Object.keys(_useSvgRef).forEach(function (key) {
81
+ if (key === "default" || key === "__esModule") return;
82
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
83
+ if (key in exports && exports[key] === _useSvgRef[key]) return;
84
+ Object.defineProperty(exports, key, {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _useSvgRef[key];
88
+ }
89
+ });
90
+ });
91
+ var _useSeries = require("./useSeries");
@@ -7,22 +7,23 @@ exports.useAxisEvents = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _InteractionProvider = require("../context/InteractionProvider");
9
9
  var _CartesianContextProvider = require("../context/CartesianContextProvider");
10
- var _DrawingProvider = require("../context/DrawingProvider");
11
10
  var _isBandScale = require("../internals/isBandScale");
12
11
  var _utils = require("../internals/utils");
12
+ var _useSvgRef = require("./useSvgRef");
13
+ var _useDrawingArea = require("./useDrawingArea");
13
14
  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); }
14
15
  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; }
15
16
  function getAsANumber(value) {
16
17
  return value instanceof Date ? value.getTime() : value;
17
18
  }
18
19
  const useAxisEvents = disableAxisListener => {
19
- const svgRef = React.useContext(_DrawingProvider.SvgContext);
20
+ const svgRef = (0, _useSvgRef.useSvgRef)();
20
21
  const {
21
- width,
22
- height,
22
+ left,
23
23
  top,
24
- left
25
- } = React.useContext(_DrawingProvider.DrawingContext);
24
+ width,
25
+ height
26
+ } = (0, _useDrawingArea.useDrawingArea)();
26
27
  const {
27
28
  xAxis,
28
29
  yAxis,
@@ -0,0 +1 @@
1
+ export declare function useChartId(): string;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useChartId = useChartId;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _DrawingProvider = require("../context/DrawingProvider");
9
+ 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); }
10
+ 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; }
11
+ function useChartId() {
12
+ const {
13
+ chartId
14
+ } = React.useContext(_DrawingProvider.DrawingContext);
15
+ return React.useMemo(() => chartId, [chartId]);
16
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Get access to the internal state of series.
3
+ * Structured by type of series:
4
+ * { seriesType?: { series: { id1: precessedValue, ... }, seriesOrder: [id1, ...] } }
5
+ * @returns FormattedSeries series
6
+ */
7
+ export declare function useSeries(): import("../context/SeriesContextProvider").FormattedSeries;
8
+ /**
9
+ * Get access to the internal state of pie series.
10
+ * The returned object contains:
11
+ * - series: a mapping from ids to series attributes.
12
+ * - seriesOrder: the array of series ids.
13
+ * @returns { series: Record<SeriesId, DefaultizedPieSeriesType>; seriesOrder: SeriesId[]; } | undefined pieSeries
14
+ */
15
+ export declare function usePieSeries(): {
16
+ series: Record<import("../models/seriesType/common").SeriesId, import("..").DefaultizedPieSeriesType>;
17
+ seriesOrder: import("../models/seriesType/common").SeriesId[];
18
+ } | undefined;
19
+ /**
20
+ * Get access to the internal state of line series.
21
+ * The returned object contains:
22
+ * - series: a mapping from ids to series attributes.
23
+ * - seriesOrder: the array of series ids.
24
+ * @returns { series: Record<SeriesId, DefaultizedLineSeriesType>; seriesOrder: SeriesId[]; } | undefined lineSeries
25
+ */
26
+ export declare function useLineSeries(): import("../models/seriesType/config").FormatterResult<"line"> | undefined;
27
+ /**
28
+ * Get access to the internal state of bar series.
29
+ * The returned object contains:
30
+ * - series: a mapping from ids to series attributes.
31
+ * - seriesOrder: the array of series ids.
32
+ * @returns { series: Record<SeriesId, DefaultizedBarSeriesType>; seriesOrder: SeriesId[]; } | undefined barSeries
33
+ */
34
+ export declare function useBarSeries(): import("../models/seriesType/config").FormatterResult<"bar"> | undefined;
35
+ /**
36
+ * Get access to the internal state of scatter series.
37
+ * The returned object contains:
38
+ * - series: a mapping from ids to series attributes.
39
+ * - seriesOrder: the array of series ids.
40
+ * @returns { series: Record<SeriesId, DefaultizedScatterSeriesType>; seriesOrder: SeriesId[]; } | undefined scatterSeries
41
+ */
42
+ export declare function useScatterSeries(): {
43
+ series: Record<import("../models/seriesType/common").SeriesId, import("..").DefaultizedScatterSeriesType>;
44
+ seriesOrder: import("../models/seriesType/common").SeriesId[];
45
+ } | undefined;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBarSeries = useBarSeries;
7
+ exports.useLineSeries = useLineSeries;
8
+ exports.usePieSeries = usePieSeries;
9
+ exports.useScatterSeries = useScatterSeries;
10
+ exports.useSeries = useSeries;
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _SeriesContextProvider = require("../context/SeriesContextProvider");
13
+ 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); }
14
+ 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; }
15
+ /**
16
+ * Get access to the internal state of series.
17
+ * Structured by type of series:
18
+ * { seriesType?: { series: { id1: precessedValue, ... }, seriesOrder: [id1, ...] } }
19
+ * @returns FormattedSeries series
20
+ */
21
+ function useSeries() {
22
+ const series = React.useContext(_SeriesContextProvider.SeriesContext);
23
+ if (series === undefined) {
24
+ throw new Error(['MUI X: Could not find the series ref context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
25
+ }
26
+ return series;
27
+ }
28
+
29
+ /**
30
+ * Get access to the internal state of pie series.
31
+ * The returned object contains:
32
+ * - series: a mapping from ids to series attributes.
33
+ * - seriesOrder: the array of series ids.
34
+ * @returns { series: Record<SeriesId, DefaultizedPieSeriesType>; seriesOrder: SeriesId[]; } | undefined pieSeries
35
+ */
36
+ function usePieSeries() {
37
+ const series = useSeries();
38
+ return React.useMemo(() => series.pie, [series.pie]);
39
+ }
40
+
41
+ /**
42
+ * Get access to the internal state of line series.
43
+ * The returned object contains:
44
+ * - series: a mapping from ids to series attributes.
45
+ * - seriesOrder: the array of series ids.
46
+ * @returns { series: Record<SeriesId, DefaultizedLineSeriesType>; seriesOrder: SeriesId[]; } | undefined lineSeries
47
+ */
48
+ function useLineSeries() {
49
+ const series = useSeries();
50
+ return React.useMemo(() => series.line, [series.line]);
51
+ }
52
+
53
+ /**
54
+ * Get access to the internal state of bar series.
55
+ * The returned object contains:
56
+ * - series: a mapping from ids to series attributes.
57
+ * - seriesOrder: the array of series ids.
58
+ * @returns { series: Record<SeriesId, DefaultizedBarSeriesType>; seriesOrder: SeriesId[]; } | undefined barSeries
59
+ */
60
+ function useBarSeries() {
61
+ const series = useSeries();
62
+ return React.useMemo(() => series.bar, [series.bar]);
63
+ }
64
+
65
+ /**
66
+ * Get access to the internal state of scatter series.
67
+ * The returned object contains:
68
+ * - series: a mapping from ids to series attributes.
69
+ * - seriesOrder: the array of series ids.
70
+ * @returns { series: Record<SeriesId, DefaultizedScatterSeriesType>; seriesOrder: SeriesId[]; } | undefined scatterSeries
71
+ */
72
+ function useScatterSeries() {
73
+ const series = useSeries();
74
+ return React.useMemo(() => series.scatter, [series.scatter]);
75
+ }
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare function useSvgRef(): React.MutableRefObject<SVGSVGElement>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useSvgRef = useSvgRef;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _DrawingProvider = require("../context/DrawingProvider");
9
+ 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); }
10
+ 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; }
11
+ function useSvgRef() {
12
+ const svgRef = React.useContext(_DrawingProvider.SvgContext);
13
+ if (svgRef === undefined) {
14
+ throw new Error(['MUI X: Could not find the svg ref context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
15
+ }
16
+ return svgRef;
17
+ }
@@ -13,7 +13,7 @@ export interface TickParams {
13
13
  */
14
14
  tickMinStep?: number;
15
15
  /**
16
- * The number of ticks. This number is not guaranted.
16
+ * The number of ticks. This number is not guaranteed.
17
17
  * Not supported by categorical axis (band, points).
18
18
  */
19
19
  tickNumber?: number;
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts v7.1.1
2
+ * @mui/x-charts v7.3.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -0,0 +1,5 @@
1
+ import { DefaultizedBarSeriesType, DefaultizedLineSeriesType, DefaultizedPieSeriesType, DefaultizedScatterSeriesType } from '../models';
2
+ import { AxisDefaultized } from '../models/axis';
3
+ declare function getColor(series: DefaultizedPieSeriesType): (dataIndex: number) => string;
4
+ declare function getColor(series: DefaultizedBarSeriesType | DefaultizedLineSeriesType | DefaultizedScatterSeriesType | DefaultizedPieSeriesType, xAxis: AxisDefaultized, yAxis: AxisDefaultized): (dataIndex: number) => string;
5
+ export default getColor;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _getColor = _interopRequireDefault(require("../BarChart/getColor"));
9
+ var _getColor2 = _interopRequireDefault(require("../LineChart/getColor"));
10
+ var _getColor3 = _interopRequireDefault(require("../ScatterChart/getColor"));
11
+ var _getColor4 = _interopRequireDefault(require("../PieChart/getColor"));
12
+ function getColor(series, xAxis, yAxis) {
13
+ if (xAxis !== undefined && yAxis !== undefined) {
14
+ if (series.type === 'bar') {
15
+ return (0, _getColor.default)(series, xAxis, yAxis);
16
+ }
17
+ if (series.type === 'line') {
18
+ return (0, _getColor2.default)(series, xAxis, yAxis);
19
+ }
20
+ if (series.type === 'scatter') {
21
+ return (0, _getColor3.default)(series, xAxis, yAxis);
22
+ }
23
+ }
24
+ if (series.type === 'pie') {
25
+ return (0, _getColor4.default)(series);
26
+ }
27
+ throw Error(`MUI X Charts: getColor called with unexpected arguments for series with id "${series.id}"`);
28
+ }
29
+ var _default = exports.default = getColor;
@@ -0,0 +1,5 @@
1
+ import { ScaleOrdinal } from 'd3-scale';
2
+ import { ContinuousColorConfig, PiecewiseColorConfig, OrdinalColorConfig } from '../models/colorMapping';
3
+ export declare function getSequentialColorScale<Value extends number | Date>(config: ContinuousColorConfig<Value> | PiecewiseColorConfig<Value>): import("d3-scale").ScaleThreshold<Value, string, never> | import("d3-scale").ScaleSequential<string, never>;
4
+ export declare function getOrdinalColorScale<Value extends number | Date | string>(config: OrdinalColorConfig<Value>): ScaleOrdinal<Value, string, null | string> | ScaleOrdinal<number, string, null | string>;
5
+ export declare function getColorScale(config: ContinuousColorConfig | PiecewiseColorConfig | OrdinalColorConfig): ScaleOrdinal<string | number | Date, string, string | null> | ScaleOrdinal<number, string, string | null> | import("d3-scale").ScaleSequential<string, never> | import("d3-scale").ScaleThreshold<number | Date, string, never>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getColorScale = getColorScale;
7
+ exports.getOrdinalColorScale = getOrdinalColorScale;
8
+ exports.getSequentialColorScale = getSequentialColorScale;
9
+ var _d3Scale = require("d3-scale");
10
+ function getSequentialColorScale(config) {
11
+ if (config.type === 'piecewise') {
12
+ return (0, _d3Scale.scaleThreshold)(config.thresholds, config.colors);
13
+ }
14
+ return (0, _d3Scale.scaleSequential)([config.min ?? 0, config.max ?? 100], config.color);
15
+ }
16
+ function getOrdinalColorScale(config) {
17
+ if (config.values) {
18
+ return (0, _d3Scale.scaleOrdinal)(config.values, config.colors).unknown(config.unknownColor ?? null);
19
+ }
20
+ return (0, _d3Scale.scaleOrdinal)(config.colors.map((_, index) => index), config.colors).unknown(config.unknownColor ?? null);
21
+ }
22
+ function getColorScale(config) {
23
+ return config.type === 'ordinal' ? getOrdinalColorScale(config) : getSequentialColorScale(config);
24
+ }
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ export declare function useChartGradient(): (axisId: string, direction: 'x' | 'y') => string;
3
+ export declare function ChartsAxesGradients(): React.JSX.Element;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ChartsAxesGradients = ChartsAxesGradients;
8
+ exports.useChartGradient = useChartGradient;
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _CartesianContextProvider = require("../../../context/CartesianContextProvider");
11
+ var _DrawingProvider = require("../../../context/DrawingProvider");
12
+ var _hooks = require("../../../hooks");
13
+ var _ChartsPiecewiseGradient = _interopRequireDefault(require("./ChartsPiecewiseGradient"));
14
+ var _ChartsContinuousGradient = _interopRequireDefault(require("./ChartsContinuousGradient"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ 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); }
17
+ 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; }
18
+ function useChartGradient() {
19
+ const {
20
+ chartId
21
+ } = React.useContext(_DrawingProvider.DrawingContext);
22
+ return React.useCallback((axisId, direction) => `${chartId}-graient-${direction}-${axisId}`, [chartId]);
23
+ }
24
+ function ChartsAxesGradients() {
25
+ const {
26
+ top,
27
+ height,
28
+ bottom,
29
+ left,
30
+ width,
31
+ right
32
+ } = (0, _hooks.useDrawingArea)();
33
+ const svgHeight = top + height + bottom;
34
+ const svgWidth = left + width + right;
35
+ const getGradientId = useChartGradient();
36
+ const {
37
+ xAxisIds,
38
+ xAxis,
39
+ yAxisIds,
40
+ yAxis
41
+ } = React.useContext(_CartesianContextProvider.CartesianContext);
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("defs", {
43
+ children: [yAxisIds.filter(axisId => yAxis[axisId].colorMap !== undefined).map(axisId => {
44
+ const gradientId = getGradientId(axisId, 'y');
45
+ const {
46
+ colorMap,
47
+ scale,
48
+ colorScale,
49
+ reverse
50
+ } = yAxis[axisId];
51
+ if (colorMap?.type === 'piecewise') {
52
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsPiecewiseGradient.default, {
53
+ isReveresed: !reverse,
54
+ scale: scale,
55
+ colorMap: colorMap,
56
+ size: svgHeight,
57
+ gradientId: gradientId,
58
+ direction: "y"
59
+ }, gradientId);
60
+ }
61
+ if (colorMap?.type === 'continuous') {
62
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsContinuousGradient.default, {
63
+ isReveresed: !reverse,
64
+ scale: scale,
65
+ colorScale: colorScale,
66
+ colorMap: colorMap,
67
+ size: svgHeight,
68
+ gradientId: gradientId,
69
+ direction: "y"
70
+ }, gradientId);
71
+ }
72
+ return null;
73
+ }), xAxisIds.filter(axisId => xAxis[axisId].colorMap !== undefined).map(axisId => {
74
+ const gradientId = getGradientId(axisId, 'x');
75
+ const {
76
+ colorMap,
77
+ scale,
78
+ reverse,
79
+ colorScale
80
+ } = xAxis[axisId];
81
+ if (colorMap?.type === 'piecewise') {
82
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsPiecewiseGradient.default, {
83
+ isReveresed: reverse,
84
+ scale: scale,
85
+ colorMap: colorMap,
86
+ size: svgWidth,
87
+ gradientId: gradientId,
88
+ direction: "x"
89
+ }, gradientId);
90
+ }
91
+ if (colorMap?.type === 'continuous') {
92
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsContinuousGradient.default, {
93
+ isReveresed: reverse,
94
+ scale: scale,
95
+ colorScale: colorScale,
96
+ colorMap: colorMap,
97
+ size: svgWidth,
98
+ gradientId: gradientId,
99
+ direction: "x"
100
+ }, gradientId);
101
+ }
102
+ return null;
103
+ })]
104
+ });
105
+ }
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import { ContinuousColorConfig } from '../../../models/colorMapping';
3
+ type ChartsContinuousGradientProps = {
4
+ isReveresed?: boolean;
5
+ gradientId: string;
6
+ size: number;
7
+ direction: 'x' | 'y';
8
+ scale: (value: any) => number | undefined;
9
+ colorMap: ContinuousColorConfig;
10
+ colorScale: (value: any) => string | null;
11
+ };
12
+ export default function ChartsContinuousGradient(props: ChartsContinuousGradientProps): React.JSX.Element | null;
13
+ export {};
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ChartsContinuousGradient;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _d3Interpolate = require("d3-interpolate");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ 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); }
11
+ 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; }
12
+ const PX_PRECISION = 10;
13
+ function ChartsContinuousGradient(props) {
14
+ const {
15
+ isReveresed,
16
+ gradientId,
17
+ size,
18
+ direction,
19
+ scale,
20
+ colorScale,
21
+ colorMap
22
+ } = props;
23
+ const extremValues = [colorMap.min ?? 0, colorMap.max ?? 100];
24
+ const extremPositions = extremValues.map(scale).filter(p => p !== undefined);
25
+ if (extremPositions.length !== 2) {
26
+ return null;
27
+ }
28
+ const interpolator = typeof extremValues[0] === 'number' ? (0, _d3Interpolate.interpolateNumber)(extremValues[0], extremValues[1]) : (0, _d3Interpolate.interpolateDate)(extremValues[0], extremValues[1]);
29
+ const numberOfPoints = Math.round((Math.max(...extremPositions) - Math.min(...extremPositions)) / PX_PRECISION);
30
+ const keyPrefix = `${extremValues[0]}-${extremValues[1]}-`;
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("linearGradient", {
32
+ id: gradientId,
33
+ x1: "0",
34
+ x2: "0",
35
+ y1: "0",
36
+ y2: "0",
37
+ [`${direction}${isReveresed ? 1 : 2}`]: `${size}px`,
38
+ gradientUnits: "userSpaceOnUse" // Use the SVG coordinate instead of the component ones.
39
+ ,
40
+ children: Array.from({
41
+ length: numberOfPoints + 1
42
+ }, (_, index) => {
43
+ const value = interpolator(index / numberOfPoints);
44
+ if (value === undefined) {
45
+ return null;
46
+ }
47
+ const x = scale(value);
48
+ if (x === undefined) {
49
+ return null;
50
+ }
51
+ const offset = isReveresed ? 1 - x / size : x / size;
52
+ const color = colorScale(value);
53
+ if (color === null) {
54
+ return null;
55
+ }
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("stop", {
57
+ offset: offset,
58
+ stopColor: color,
59
+ stopOpacity: 1
60
+ }, keyPrefix + index);
61
+ })
62
+ });
63
+ }
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ import { PiecewiseColorConfig } from '../../../models/colorMapping';
3
+ type ChartsPiecewiseGradientProps = {
4
+ isReveresed?: boolean;
5
+ gradientId: string;
6
+ size: number;
7
+ direction: 'x' | 'y';
8
+ scale: (value: any) => number | undefined;
9
+ colorMap: PiecewiseColorConfig;
10
+ };
11
+ export default function ChartsPiecewiseGradient(props: ChartsPiecewiseGradientProps): React.JSX.Element;
12
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ChartsPiecewiseGradient;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ 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); }
10
+ 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; }
11
+ function ChartsPiecewiseGradient(props) {
12
+ const {
13
+ isReveresed,
14
+ gradientId,
15
+ size,
16
+ direction,
17
+ scale,
18
+ colorMap
19
+ } = props;
20
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("linearGradient", {
21
+ id: gradientId,
22
+ x1: "0",
23
+ x2: "0",
24
+ y1: "0",
25
+ y2: "0",
26
+ [`${direction}${isReveresed ? 1 : 2}`]: `${size}px`,
27
+ gradientUnits: "userSpaceOnUse" // Use the SVG coordinate instead of the component ones.
28
+ ,
29
+ children: colorMap.thresholds.map((threshold, index) => {
30
+ const x = scale(threshold);
31
+ if (x === undefined) {
32
+ return null;
33
+ }
34
+ const offset = isReveresed ? 1 - x / size : x / size;
35
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
36
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("stop", {
37
+ offset: offset,
38
+ stopColor: colorMap.colors[index],
39
+ stopOpacity: 1
40
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("stop", {
41
+ offset: offset,
42
+ stopColor: colorMap.colors[index + 1],
43
+ stopOpacity: 1
44
+ })]
45
+ }, threshold.toString() + index);
46
+ })
47
+ });
48
+ }
@@ -0,0 +1 @@
1
+ export * from './ChartsAxesGradients';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _ChartsAxesGradients = require("./ChartsAxesGradients");
7
+ Object.keys(_ChartsAxesGradients).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _ChartsAxesGradients[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _ChartsAxesGradients[key];
14
+ }
15
+ });
16
+ });