@mui/x-charts 7.12.0 → 7.13.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 (196) hide show
  1. package/BarChart/BarChart.js +2 -0
  2. package/BarChart/BarPlot.js +2 -2
  3. package/BarChart/extremums.d.ts +1 -1
  4. package/BarChart/extremums.js +5 -3
  5. package/BarChart/formatter.d.ts +2 -2
  6. package/BarChart/getColor.d.ts +3 -3
  7. package/BarChart/getColor.js +4 -3
  8. package/BarChart/legend.d.ts +1 -1
  9. package/BarChart/plugin.d.ts +2 -2
  10. package/CHANGELOG.md +151 -2
  11. package/ChartContainer/ChartContainer.d.ts +4 -15
  12. package/ChartContainer/ChartContainer.js +8 -6
  13. package/ChartContainer/useChartContainerProps.d.ts +10 -7
  14. package/ChartContainer/useChartContainerProps.js +16 -19
  15. package/ChartContainer/useDefaultizeAxis.d.ts +2 -1
  16. package/ChartsTooltip/ChartsAxisTooltipContent.js +2 -2
  17. package/ChartsTooltip/ChartsItemTooltipContent.js +2 -2
  18. package/ChartsTooltip/utils.js +4 -2
  19. package/ChartsXAxis/ChartsXAxis.js +11 -5
  20. package/ChartsYAxis/ChartsYAxis.js +11 -5
  21. package/LineChart/AreaPlot.js +11 -1
  22. package/LineChart/LineChart.js +2 -0
  23. package/LineChart/extremums.d.ts +1 -1
  24. package/LineChart/extremums.js +4 -15
  25. package/LineChart/formatter.d.ts +2 -2
  26. package/LineChart/getColor.d.ts +3 -3
  27. package/LineChart/getColor.js +4 -3
  28. package/LineChart/legend.d.ts +1 -1
  29. package/LineChart/plugin.d.ts +2 -2
  30. package/PieChart/PieChart.js +2 -0
  31. package/PieChart/formatter.d.ts +2 -2
  32. package/PieChart/getColor.d.ts +3 -2
  33. package/PieChart/getColor.js +4 -3
  34. package/PieChart/legend.d.ts +1 -1
  35. package/PieChart/plugin.d.ts +2 -2
  36. package/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -0
  37. package/ResponsiveChartContainer/useResponsiveChartContainerProps.d.ts +1 -2
  38. package/ScatterChart/ScatterChart.js +2 -0
  39. package/ScatterChart/extremums.d.ts +1 -1
  40. package/ScatterChart/extremums.js +6 -14
  41. package/ScatterChart/formatter.d.ts +2 -2
  42. package/ScatterChart/getColor.d.ts +3 -4
  43. package/ScatterChart/getColor.js +4 -3
  44. package/ScatterChart/legend.d.ts +1 -1
  45. package/ScatterChart/plugin.d.ts +2 -2
  46. package/SparkLineChart/SparkLineChart.js +2 -0
  47. package/context/CartesianProvider/CartesianProvider.d.ts +3 -12
  48. package/context/CartesianProvider/CartesianProvider.js +6 -4
  49. package/context/CartesianProvider/computeValue.d.ts +2 -1
  50. package/context/CartesianProvider/defaultizeAxis.d.ts +2 -1
  51. package/context/CartesianProvider/getAxisExtremum.d.ts +2 -2
  52. package/context/CartesianProvider/getAxisExtremum.js +3 -10
  53. package/context/PluginProvider/ColorProcessor.types.d.ts +8 -0
  54. package/context/PluginProvider/ExtremumGetter.types.d.ts +14 -0
  55. package/context/PluginProvider/ExtremumGetter.types.js +5 -0
  56. package/context/PluginProvider/Plugin.types.d.ts +25 -0
  57. package/context/PluginProvider/Plugin.types.js +5 -0
  58. package/context/PluginProvider/PluginContext.d.ts +4 -0
  59. package/{hooks/useColor.js → context/PluginProvider/PluginContext.js} +11 -7
  60. package/context/PluginProvider/PluginProvider.d.ts +4 -0
  61. package/context/{ColorProvider.js → PluginProvider/PluginProvider.js} +12 -11
  62. package/context/PluginProvider/SeriesFormatter.types.d.ts +21 -0
  63. package/context/PluginProvider/SeriesFormatter.types.js +5 -0
  64. package/context/PluginProvider/index.d.ts +10 -0
  65. package/context/PluginProvider/index.js +115 -0
  66. package/context/PluginProvider/mergePlugins.d.ts +36 -0
  67. package/context/PluginProvider/mergePlugins.js +37 -0
  68. package/context/PluginProvider/useColorProcessor.d.ts +4 -0
  69. package/context/PluginProvider/useColorProcessor.js +23 -0
  70. package/context/PluginProvider/useSeriesFormatter.d.ts +4 -0
  71. package/context/PluginProvider/useSeriesFormatter.js +23 -0
  72. package/context/PluginProvider/useXExtremumGetter.d.ts +4 -0
  73. package/context/PluginProvider/useXExtremumGetter.js +23 -0
  74. package/context/PluginProvider/useYExtremumGetter.d.ts +4 -0
  75. package/context/PluginProvider/useYExtremumGetter.js +23 -0
  76. package/context/SeriesProvider/Series.types.d.ts +4 -10
  77. package/context/SeriesProvider/SeriesProvider.js +2 -1
  78. package/context/SeriesProvider/index.d.ts +1 -1
  79. package/context/SeriesProvider/processSeries.d.ts +2 -1
  80. package/esm/BarChart/BarChart.js +2 -0
  81. package/esm/BarChart/BarPlot.js +1 -2
  82. package/esm/BarChart/extremums.js +5 -3
  83. package/esm/BarChart/getColor.js +3 -2
  84. package/esm/ChartContainer/ChartContainer.js +9 -7
  85. package/esm/ChartContainer/useChartContainerProps.js +14 -19
  86. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  87. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +1 -1
  88. package/esm/ChartsTooltip/utils.js +4 -2
  89. package/esm/ChartsXAxis/ChartsXAxis.js +11 -5
  90. package/esm/ChartsYAxis/ChartsYAxis.js +11 -5
  91. package/esm/LineChart/AreaPlot.js +11 -1
  92. package/esm/LineChart/LineChart.js +2 -0
  93. package/esm/LineChart/extremums.js +4 -15
  94. package/esm/LineChart/getColor.js +3 -2
  95. package/esm/PieChart/PieChart.js +2 -0
  96. package/esm/PieChart/getColor.js +3 -2
  97. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -0
  98. package/esm/ScatterChart/ScatterChart.js +2 -0
  99. package/esm/ScatterChart/extremums.js +6 -14
  100. package/esm/ScatterChart/getColor.js +3 -2
  101. package/esm/SparkLineChart/SparkLineChart.js +2 -0
  102. package/esm/context/CartesianProvider/CartesianProvider.js +6 -4
  103. package/esm/context/CartesianProvider/getAxisExtremum.js +3 -10
  104. package/esm/context/PluginProvider/Plugin.types.js +1 -0
  105. package/esm/context/PluginProvider/PluginContext.js +13 -0
  106. package/esm/context/PluginProvider/PluginProvider.js +19 -0
  107. package/esm/context/PluginProvider/SeriesFormatter.types.js +1 -0
  108. package/esm/context/PluginProvider/index.js +10 -0
  109. package/esm/context/PluginProvider/mergePlugins.js +30 -0
  110. package/esm/context/PluginProvider/useColorProcessor.js +15 -0
  111. package/esm/context/PluginProvider/useSeriesFormatter.js +15 -0
  112. package/esm/context/PluginProvider/useXExtremumGetter.js +15 -0
  113. package/esm/context/PluginProvider/useYExtremumGetter.js +15 -0
  114. package/esm/context/SeriesProvider/SeriesProvider.js +2 -1
  115. package/esm/hooks/useTicks.js +5 -2
  116. package/esm/internals/index.js +1 -1
  117. package/esm/internals/isInfinity.js +3 -0
  118. package/esm/models/index.js +0 -1
  119. package/hooks/useTicks.js +5 -2
  120. package/index.js +1 -1
  121. package/internals/colorScale.d.ts +1 -1
  122. package/internals/defaultizeColor.d.ts +1 -0
  123. package/internals/index.d.ts +1 -1
  124. package/internals/index.js +12 -12
  125. package/internals/isInfinity.d.ts +1 -0
  126. package/internals/isInfinity.js +9 -0
  127. package/models/axis.d.ts +2 -0
  128. package/models/index.d.ts +0 -1
  129. package/models/index.js +0 -11
  130. package/models/seriesType/config.d.ts +0 -26
  131. package/models/seriesType/line.d.ts +10 -0
  132. package/modern/BarChart/BarChart.js +2 -0
  133. package/modern/BarChart/BarPlot.js +1 -2
  134. package/modern/BarChart/extremums.js +5 -3
  135. package/modern/BarChart/getColor.js +3 -2
  136. package/modern/ChartContainer/ChartContainer.js +9 -7
  137. package/modern/ChartContainer/useChartContainerProps.js +14 -19
  138. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  139. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +1 -1
  140. package/modern/ChartsTooltip/utils.js +4 -2
  141. package/modern/ChartsXAxis/ChartsXAxis.js +11 -5
  142. package/modern/ChartsYAxis/ChartsYAxis.js +11 -5
  143. package/modern/LineChart/AreaPlot.js +11 -1
  144. package/modern/LineChart/LineChart.js +2 -0
  145. package/modern/LineChart/extremums.js +4 -15
  146. package/modern/LineChart/getColor.js +3 -2
  147. package/modern/PieChart/PieChart.js +2 -0
  148. package/modern/PieChart/getColor.js +3 -2
  149. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -0
  150. package/modern/ScatterChart/ScatterChart.js +2 -0
  151. package/modern/ScatterChart/extremums.js +6 -14
  152. package/modern/ScatterChart/getColor.js +3 -2
  153. package/modern/SparkLineChart/SparkLineChart.js +2 -0
  154. package/modern/context/CartesianProvider/CartesianProvider.js +6 -4
  155. package/modern/context/CartesianProvider/getAxisExtremum.js +3 -10
  156. package/modern/context/PluginProvider/ColorProcessor.types.js +1 -0
  157. package/modern/context/PluginProvider/ExtremumGetter.types.js +1 -0
  158. package/modern/context/PluginProvider/Plugin.types.js +1 -0
  159. package/modern/context/PluginProvider/PluginContext.js +13 -0
  160. package/modern/context/PluginProvider/PluginProvider.js +19 -0
  161. package/modern/context/PluginProvider/SeriesFormatter.types.js +1 -0
  162. package/modern/context/PluginProvider/index.js +10 -0
  163. package/modern/context/PluginProvider/mergePlugins.js +30 -0
  164. package/modern/context/PluginProvider/useColorProcessor.js +15 -0
  165. package/modern/context/PluginProvider/useSeriesFormatter.js +15 -0
  166. package/modern/context/PluginProvider/useXExtremumGetter.js +15 -0
  167. package/modern/context/PluginProvider/useYExtremumGetter.js +15 -0
  168. package/modern/context/SeriesProvider/SeriesProvider.js +2 -1
  169. package/modern/hooks/useTicks.js +5 -2
  170. package/modern/index.js +1 -1
  171. package/modern/internals/index.js +1 -1
  172. package/modern/internals/isInfinity.js +3 -0
  173. package/modern/models/index.js +0 -1
  174. package/package.json +2 -2
  175. package/ChartContainer/defaultPlugins.d.ts +0 -2
  176. package/ChartContainer/defaultPlugins.js +0 -11
  177. package/ChartContainer/useChartContainerHooks.d.ts +0 -11
  178. package/ChartContainer/useChartContainerHooks.js +0 -34
  179. package/ChartContainer/usePluginsMerge.d.ts +0 -9
  180. package/ChartContainer/usePluginsMerge.js +0 -39
  181. package/context/ColorProvider.d.ts +0 -12
  182. package/esm/ChartContainer/defaultPlugins.js +0 -5
  183. package/esm/ChartContainer/useChartContainerHooks.js +0 -24
  184. package/esm/ChartContainer/usePluginsMerge.js +0 -31
  185. package/esm/context/ColorProvider.js +0 -16
  186. package/esm/hooks/useColor.js +0 -9
  187. package/hooks/useColor.d.ts +0 -4
  188. package/models/plugin.d.ts +0 -19
  189. package/modern/ChartContainer/defaultPlugins.js +0 -5
  190. package/modern/ChartContainer/useChartContainerHooks.js +0 -24
  191. package/modern/ChartContainer/usePluginsMerge.js +0 -31
  192. package/modern/context/ColorProvider.js +0 -16
  193. package/modern/hooks/useColor.js +0 -9
  194. /package/{models/plugin.js → context/PluginProvider/ColorProcessor.types.js} +0 -0
  195. /package/esm/{models/plugin.js → context/PluginProvider/ColorProcessor.types.js} +0 -0
  196. /package/{modern/models/plugin.js → esm/context/PluginProvider/ExtremumGetter.types.js} +0 -0
@@ -0,0 +1,25 @@
1
+ import type { ChartSeriesType } from '../../models/seriesType/config';
2
+ import type { ColorProcessor, ColorProcessorsConfig } from './ColorProcessor.types';
3
+ import type { ExtremumGetter, ExtremumGettersConfig } from './ExtremumGetter.types';
4
+ import type { SeriesFormatter, SeriesFormatterConfig } from './SeriesFormatter.types';
5
+ export type PluginProviderProps = {
6
+ /**
7
+ * An array of plugins defining how to preprocess data.
8
+ * If not provided, the container supports line, bar, scatter and pie charts.
9
+ */
10
+ plugins?: ChartsPlugin<ChartSeriesType>[];
11
+ children: React.ReactNode;
12
+ };
13
+ export type PluginContextState = {
14
+ seriesFormatters: SeriesFormatterConfig<ChartSeriesType>;
15
+ colorProcessors: ColorProcessorsConfig<ChartSeriesType>;
16
+ xExtremumGetters: ExtremumGettersConfig<ChartSeriesType>;
17
+ yExtremumGetters: ExtremumGettersConfig<ChartSeriesType>;
18
+ };
19
+ export type ChartsPlugin<T> = T extends ChartSeriesType ? {
20
+ seriesType: T;
21
+ seriesFormatter: SeriesFormatter<T>;
22
+ colorProcessor: ColorProcessor<T>;
23
+ xExtremumGetter?: ExtremumGetter<T>;
24
+ yExtremumGetter?: ExtremumGetter<T>;
25
+ } : never;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { Initializable } from '../context.types';
3
+ import { PluginContextState } from './Plugin.types';
4
+ export declare const PluginContext: React.Context<Initializable<PluginContextState>>;
@@ -3,15 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useColorProcessor = useColorProcessor;
6
+ exports.PluginContext = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
- var _ColorProvider = require("../context/ColorProvider");
9
8
  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
9
  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 && {}.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 useColorProcessor(seriesType) {
12
- const colorProcessors = React.useContext(_ColorProvider.ColorContext);
13
- if (!seriesType) {
14
- return colorProcessors;
10
+ const PluginContext = exports.PluginContext = /*#__PURE__*/React.createContext({
11
+ isInitialized: false,
12
+ data: {
13
+ colorProcessors: {},
14
+ seriesFormatters: {},
15
+ xExtremumGetters: {},
16
+ yExtremumGetters: {}
15
17
  }
16
- return colorProcessors[seriesType];
18
+ });
19
+ if (process.env.NODE_ENV !== 'production') {
20
+ PluginContext.displayName = 'PluginContext';
17
21
  }
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { PluginProviderProps } from './Plugin.types';
3
+ declare function PluginProvider(props: PluginProviderProps): React.JSX.Element;
4
+ export { PluginProvider };
@@ -3,23 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ColorContext = void 0;
7
- exports.ColorProvider = ColorProvider;
6
+ exports.PluginProvider = PluginProvider;
8
7
  var React = _interopRequireWildcard(require("react"));
8
+ var _PluginContext = require("./PluginContext");
9
+ var _mergePlugins = require("./mergePlugins");
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  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
12
  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 && {}.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 ColorContext = exports.ColorContext = /*#__PURE__*/React.createContext({});
13
- if (process.env.NODE_ENV !== 'production') {
14
- ColorContext.displayName = 'ColorContext';
15
- }
16
- function ColorProvider(props) {
13
+ function PluginProvider(props) {
17
14
  const {
18
- colorProcessors,
19
- children
15
+ children,
16
+ plugins
20
17
  } = props;
21
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(ColorContext.Provider, {
22
- value: colorProcessors,
18
+ const formattedSeries = React.useMemo(() => ({
19
+ isInitialized: true,
20
+ data: (0, _mergePlugins.mergePlugins)(plugins)
21
+ }), [plugins]);
22
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PluginContext.PluginContext.Provider, {
23
+ value: formattedSeries,
23
24
  children: children
24
25
  });
25
26
  }
@@ -0,0 +1,21 @@
1
+ import type { ChartSeriesDefaultized, ChartSeriesType, ChartsSeriesConfig, DatasetType } from '../../models/seriesType/config';
2
+ import type { SeriesId } from '../../models/seriesType/common';
3
+ import type { StackingGroupsType } from '../../internals/stackSeries';
4
+ import type { LegendItemParams } from '../../ChartsLegend/chartsLegend.types';
5
+ export type SeriesFormatterParams<T extends ChartSeriesType> = {
6
+ series: Record<SeriesId, ChartsSeriesConfig[T]['seriesInput']>;
7
+ seriesOrder: SeriesId[];
8
+ };
9
+ export type SeriesFormatterResult<T extends ChartSeriesType> = {
10
+ series: Record<SeriesId, ChartSeriesDefaultized<T>>;
11
+ seriesOrder: SeriesId[];
12
+ } & (ChartsSeriesConfig[T] extends {
13
+ canBeStacked: true;
14
+ } ? {
15
+ stackingGroups: StackingGroupsType;
16
+ } : {});
17
+ export type SeriesFormatter<T extends ChartSeriesType> = (params: SeriesFormatterParams<T>, dataset?: DatasetType) => SeriesFormatterResult<T>;
18
+ export type LegendGetter<T extends ChartSeriesType> = (series: SeriesFormatterResult<T>) => LegendItemParams[];
19
+ export type SeriesFormatterConfig<T extends ChartSeriesType = ChartSeriesType> = {
20
+ [K in T]?: (series: SeriesFormatterParams<K>, dataset?: DatasetType) => any;
21
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,10 @@
1
+ export * from './PluginProvider';
2
+ export * from './Plugin.types';
3
+ export * from './PluginContext';
4
+ export * from './ColorProcessor.types';
5
+ export * from './SeriesFormatter.types';
6
+ export * from './ExtremumGetter.types';
7
+ export * from './useColorProcessor';
8
+ export * from './useSeriesFormatter';
9
+ export * from './useXExtremumGetter';
10
+ export * from './useYExtremumGetter';
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _PluginProvider = require("./PluginProvider");
7
+ Object.keys(_PluginProvider).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _PluginProvider[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _PluginProvider[key];
14
+ }
15
+ });
16
+ });
17
+ var _Plugin = require("./Plugin.types");
18
+ Object.keys(_Plugin).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _Plugin[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _Plugin[key];
25
+ }
26
+ });
27
+ });
28
+ var _PluginContext = require("./PluginContext");
29
+ Object.keys(_PluginContext).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _PluginContext[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _PluginContext[key];
36
+ }
37
+ });
38
+ });
39
+ var _ColorProcessor = require("./ColorProcessor.types");
40
+ Object.keys(_ColorProcessor).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _ColorProcessor[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _ColorProcessor[key];
47
+ }
48
+ });
49
+ });
50
+ var _SeriesFormatter = require("./SeriesFormatter.types");
51
+ Object.keys(_SeriesFormatter).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _SeriesFormatter[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _SeriesFormatter[key];
58
+ }
59
+ });
60
+ });
61
+ var _ExtremumGetter = require("./ExtremumGetter.types");
62
+ Object.keys(_ExtremumGetter).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _ExtremumGetter[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _ExtremumGetter[key];
69
+ }
70
+ });
71
+ });
72
+ var _useColorProcessor = require("./useColorProcessor");
73
+ Object.keys(_useColorProcessor).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _useColorProcessor[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _useColorProcessor[key];
80
+ }
81
+ });
82
+ });
83
+ var _useSeriesFormatter = require("./useSeriesFormatter");
84
+ Object.keys(_useSeriesFormatter).forEach(function (key) {
85
+ if (key === "default" || key === "__esModule") return;
86
+ if (key in exports && exports[key] === _useSeriesFormatter[key]) return;
87
+ Object.defineProperty(exports, key, {
88
+ enumerable: true,
89
+ get: function () {
90
+ return _useSeriesFormatter[key];
91
+ }
92
+ });
93
+ });
94
+ var _useXExtremumGetter = require("./useXExtremumGetter");
95
+ Object.keys(_useXExtremumGetter).forEach(function (key) {
96
+ if (key === "default" || key === "__esModule") return;
97
+ if (key in exports && exports[key] === _useXExtremumGetter[key]) return;
98
+ Object.defineProperty(exports, key, {
99
+ enumerable: true,
100
+ get: function () {
101
+ return _useXExtremumGetter[key];
102
+ }
103
+ });
104
+ });
105
+ var _useYExtremumGetter = require("./useYExtremumGetter");
106
+ Object.keys(_useYExtremumGetter).forEach(function (key) {
107
+ if (key === "default" || key === "__esModule") return;
108
+ if (key in exports && exports[key] === _useYExtremumGetter[key]) return;
109
+ Object.defineProperty(exports, key, {
110
+ enumerable: true,
111
+ get: function () {
112
+ return _useYExtremumGetter[key];
113
+ }
114
+ });
115
+ });
@@ -0,0 +1,36 @@
1
+ import { ChartsPlugin } from './Plugin.types';
2
+ import { ChartSeriesType } from '../../models/seriesType/config';
3
+ import { SeriesFormatter, SeriesFormatterConfig } from './SeriesFormatter.types';
4
+ import { ColorProcessor, ColorProcessorsConfig } from './ColorProcessor.types';
5
+ import { ExtremumGetter, ExtremumGettersConfig } from './ExtremumGetter.types';
6
+ export declare const defaultPlugins: ({
7
+ seriesType: "bar";
8
+ seriesFormatter: SeriesFormatter<"bar">;
9
+ colorProcessor: ColorProcessor<"bar">;
10
+ xExtremumGetter?: ExtremumGetter<"bar"> | undefined;
11
+ yExtremumGetter?: ExtremumGetter<"bar"> | undefined;
12
+ } | {
13
+ seriesType: "line";
14
+ seriesFormatter: SeriesFormatter<"line">;
15
+ colorProcessor: ColorProcessor<"line">;
16
+ xExtremumGetter?: ExtremumGetter<"line"> | undefined;
17
+ yExtremumGetter?: ExtremumGetter<"line"> | undefined;
18
+ } | {
19
+ seriesType: "pie";
20
+ seriesFormatter: SeriesFormatter<"pie">;
21
+ colorProcessor: ColorProcessor<"pie">;
22
+ xExtremumGetter?: ExtremumGetter<"pie"> | undefined;
23
+ yExtremumGetter?: ExtremumGetter<"pie"> | undefined;
24
+ } | {
25
+ seriesType: "scatter";
26
+ seriesFormatter: SeriesFormatter<"scatter">;
27
+ colorProcessor: ColorProcessor<"scatter">;
28
+ xExtremumGetter?: ExtremumGetter<"scatter"> | undefined;
29
+ yExtremumGetter?: ExtremumGetter<"scatter"> | undefined;
30
+ })[];
31
+ export declare function mergePlugins(plugins?: ChartsPlugin<ChartSeriesType>[]): {
32
+ seriesFormatters: SeriesFormatterConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
33
+ colorProcessors: ColorProcessorsConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
34
+ xExtremumGetters: ExtremumGettersConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
35
+ yExtremumGetters: ExtremumGettersConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
36
+ };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultPlugins = void 0;
7
+ exports.mergePlugins = mergePlugins;
8
+ var _plugin = require("../../BarChart/plugin");
9
+ var _plugin2 = require("../../ScatterChart/plugin");
10
+ var _plugin3 = require("../../LineChart/plugin");
11
+ var _plugin4 = require("../../PieChart/plugin");
12
+ const defaultPlugins = exports.defaultPlugins = [_plugin.plugin, _plugin2.plugin, _plugin3.plugin, _plugin4.plugin];
13
+ function mergePlugins(plugins) {
14
+ const defaultizedPlugins = plugins ?? defaultPlugins;
15
+ const seriesFormatters = {};
16
+ const colorProcessors = {};
17
+ const xExtremumGetters = {};
18
+ const yExtremumGetters = {};
19
+ for (let i = 0; i < defaultizedPlugins.length; i += 1) {
20
+ const plugin = defaultizedPlugins[i];
21
+ const seriesType = plugin.seriesType;
22
+ seriesFormatters[seriesType] = plugin.seriesFormatter;
23
+ colorProcessors[seriesType] = plugin.colorProcessor;
24
+ if (plugin.xExtremumGetter) {
25
+ xExtremumGetters[seriesType] = plugin.xExtremumGetter;
26
+ }
27
+ if (plugin.yExtremumGetter) {
28
+ yExtremumGetters[seriesType] = plugin.yExtremumGetter;
29
+ }
30
+ }
31
+ return {
32
+ seriesFormatters,
33
+ colorProcessors,
34
+ xExtremumGetters,
35
+ yExtremumGetters
36
+ };
37
+ }
@@ -0,0 +1,4 @@
1
+ import { ChartSeriesType } from '../../models/seriesType/config';
2
+ import { ColorProcessorsConfig } from './ColorProcessor.types';
3
+ export declare function useColorProcessor<T extends ChartSeriesType>(seriesType: T): ColorProcessorsConfig<T>[T];
4
+ export declare function useColorProcessor(): ColorProcessorsConfig<ChartSeriesType>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useColorProcessor = useColorProcessor;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _PluginContext = require("./PluginContext");
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 && {}.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 useColorProcessor(seriesType) {
12
+ const {
13
+ isInitialized,
14
+ data
15
+ } = React.useContext(_PluginContext.PluginContext);
16
+ if (!isInitialized) {
17
+ throw new Error(['MUI X: Could not find the plugin context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
18
+ }
19
+ if (!seriesType) {
20
+ return data.colorProcessors;
21
+ }
22
+ return data.colorProcessors[seriesType];
23
+ }
@@ -0,0 +1,4 @@
1
+ import { ChartSeriesType } from '../../models/seriesType/config';
2
+ import { SeriesFormatterConfig } from './SeriesFormatter.types';
3
+ export declare function useSeriesFormatter<T extends ChartSeriesType>(seriesType: T): SeriesFormatterConfig<T>[T];
4
+ export declare function useSeriesFormatter(): SeriesFormatterConfig<ChartSeriesType>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useSeriesFormatter = useSeriesFormatter;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _PluginContext = require("./PluginContext");
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 && {}.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 useSeriesFormatter(seriesType) {
12
+ const {
13
+ isInitialized,
14
+ data
15
+ } = React.useContext(_PluginContext.PluginContext);
16
+ if (!isInitialized) {
17
+ throw new Error(['MUI X: Could not find the plugin context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
18
+ }
19
+ if (!seriesType) {
20
+ return data.seriesFormatters;
21
+ }
22
+ return data.seriesFormatters[seriesType];
23
+ }
@@ -0,0 +1,4 @@
1
+ import { ChartSeriesType } from '../../models/seriesType/config';
2
+ import { ExtremumGettersConfig } from './ExtremumGetter.types';
3
+ export declare function useXExtremumGetter<T extends ChartSeriesType>(seriesType: T): ExtremumGettersConfig<T>[T];
4
+ export declare function useXExtremumGetter(): ExtremumGettersConfig<ChartSeriesType>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useXExtremumGetter = useXExtremumGetter;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _PluginContext = require("./PluginContext");
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 && {}.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 useXExtremumGetter(seriesType) {
12
+ const {
13
+ isInitialized,
14
+ data
15
+ } = React.useContext(_PluginContext.PluginContext);
16
+ if (!isInitialized) {
17
+ throw new Error(['MUI X: Could not find the plugin context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
18
+ }
19
+ if (!seriesType) {
20
+ return data.xExtremumGetters;
21
+ }
22
+ return data.xExtremumGetters[seriesType];
23
+ }
@@ -0,0 +1,4 @@
1
+ import { ChartSeriesType } from '../../models/seriesType/config';
2
+ import { ExtremumGettersConfig } from './ExtremumGetter.types';
3
+ export declare function useYExtremumGetter<T extends ChartSeriesType>(seriesType: T): ExtremumGettersConfig<T>[T];
4
+ export declare function useYExtremumGetter(): ExtremumGettersConfig<ChartSeriesType>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useYExtremumGetter = useYExtremumGetter;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _PluginContext = require("./PluginContext");
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 && {}.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 useYExtremumGetter(seriesType) {
12
+ const {
13
+ isInitialized,
14
+ data
15
+ } = React.useContext(_PluginContext.PluginContext);
16
+ if (!isInitialized) {
17
+ throw new Error(['MUI X: Could not find the plugin context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
18
+ }
19
+ if (!seriesType) {
20
+ return data.yExtremumGetters;
21
+ }
22
+ return data.yExtremumGetters[seriesType];
23
+ }
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { AllSeriesType } from '../../models/seriesType';
3
- import { ChartSeriesType, DatasetType, FormatterParams, FormatterResult } from '../../models/seriesType/config';
3
+ import { ChartSeriesType, DatasetType } from '../../models/seriesType/config';
4
4
  import { ChartsColorPalette } from '../../colorPalettes';
5
+ import { SeriesFormatterResult } from '../PluginProvider';
5
6
  export type SeriesFormatterType<T extends ChartSeriesType> = (series: AllSeriesType<T>[], colors: string[], dataset?: DatasetType) => {
6
- [type in T]?: FormatterResult<type>;
7
+ [type in T]?: SeriesFormatterResult<type>;
7
8
  };
8
9
  export type SeriesProviderProps<T extends ChartSeriesType = ChartSeriesType> = {
9
10
  dataset?: DatasetType;
@@ -18,15 +19,8 @@ export type SeriesProviderProps<T extends ChartSeriesType = ChartSeriesType> = {
18
19
  * @default blueberryTwilightPalette
19
20
  */
20
21
  colors?: ChartsColorPalette;
21
- /**
22
- * Preprocessors for each series types.
23
- */
24
- seriesFormatters: SeriesFormatterConfig<T>;
25
22
  children: React.ReactNode;
26
23
  };
27
24
  export type FormattedSeries = {
28
- [type in ChartSeriesType]?: FormatterResult<type>;
29
- };
30
- export type SeriesFormatterConfig<T extends ChartSeriesType = ChartSeriesType> = {
31
- [K in T]?: (series: FormatterParams<K>, dataset?: DatasetType) => any;
25
+ [type in ChartSeriesType]?: SeriesFormatterResult<type>;
32
26
  };
@@ -9,6 +9,7 @@ var _styles = require("@mui/material/styles");
9
9
  var _colorPalettes = require("../../colorPalettes");
10
10
  var _SeriesContext = require("./SeriesContext");
11
11
  var _processSeries = require("./processSeries");
12
+ var _PluginProvider = require("../PluginProvider");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
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 && {}.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; }
@@ -17,9 +18,9 @@ function SeriesProvider(props) {
17
18
  series,
18
19
  dataset,
19
20
  colors = _colorPalettes.blueberryTwilightPalette,
20
- seriesFormatters,
21
21
  children
22
22
  } = props;
23
+ const seriesFormatters = (0, _PluginProvider.useSeriesFormatter)();
23
24
  const theme = (0, _styles.useTheme)();
24
25
  const formattedSeries = React.useMemo(() => ({
25
26
  isInitialized: true,
@@ -5,7 +5,7 @@ declare const seriesProviderUtils: {
5
5
  preprocessSeries: <T extends import("../../internals").ChartSeriesType>({ series, colors, seriesFormatters, dataset, }: {
6
6
  series: import("../..").AllSeriesType<T>[];
7
7
  colors: string[];
8
- seriesFormatters: import("./Series.types").SeriesFormatterConfig<T>;
8
+ seriesFormatters: import("../PluginProvider").SeriesFormatterConfig<T>;
9
9
  dataset?: import("../../internals").DatasetType;
10
10
  }) => import("./Series.types").FormattedSeries;
11
11
  };
@@ -1,6 +1,7 @@
1
1
  import { AllSeriesType } from '../../models/seriesType';
2
2
  import { ChartSeriesType, DatasetType } from '../../models/seriesType/config';
3
- import { FormattedSeries, SeriesFormatterConfig } from './Series.types';
3
+ import { FormattedSeries } from './Series.types';
4
+ import { SeriesFormatterConfig } from '../PluginProvider';
4
5
  /**
5
6
  * This methods is the interface between what the developer is providing and what components receives
6
7
  * To simplify the components behaviors, it groups series by type, such that LinePlots props are not updated if some line data are modified
@@ -273,6 +273,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
273
273
  slotProps: PropTypes.object,
274
274
  slots: PropTypes.object,
275
275
  stroke: PropTypes.string,
276
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
276
277
  tickFontSize: PropTypes.number,
277
278
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
278
279
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
@@ -325,6 +326,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
325
326
  slotProps: PropTypes.object,
326
327
  slots: PropTypes.object,
327
328
  stroke: PropTypes.string,
329
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
328
330
  tickFontSize: PropTypes.number,
329
331
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
330
332
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
@@ -12,7 +12,7 @@ import { BarClipPath } from './BarClipPath';
12
12
  import { BarLabelPlot } from './BarLabel/BarLabelPlot';
13
13
  import { checkScaleErrors } from './checkScaleErrors';
14
14
  import { useBarSeries } from '../hooks/useSeries';
15
-
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  /**
17
17
  * Solution of the equations
18
18
  * W = barWidth * N + offset * (N-1)
@@ -22,7 +22,6 @@ import { useBarSeries } from '../hooks/useSeries';
22
22
  * @param gapRatio The ratio of the gap between bars over the bar width.
23
23
  * @returns The bar width and the offset between bars.
24
24
  */
25
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
25
  function getBandSize({
27
26
  bandWidth: W,
28
27
  numberOfGroups: N,
@@ -16,9 +16,11 @@ const getValueExtremum = params => {
16
16
  const yAxisId = series[seriesId].yAxisId ?? series[seriesId].yAxisKey;
17
17
  return yAxisId === axis.id || isDefaultAxis && yAxisId === undefined;
18
18
  }).reduce((acc, seriesId) => {
19
- const [seriesMin, seriesMax] = series[seriesId].stackedData?.reduce((seriesAcc, values) => [Math.min(...values, ...(seriesAcc[0] === null ? [] : [seriesAcc[0]])), Math.max(...values, ...(seriesAcc[1] === null ? [] : [seriesAcc[1]]))], series[seriesId].stackedData[0]) ?? [null, null];
20
- return [acc[0] === null ? seriesMin : Math.min(seriesMin, acc[0]), acc[1] === null ? seriesMax : Math.max(seriesMax, acc[1])];
21
- }, [null, null]);
19
+ const [seriesMin, seriesMax] = series[seriesId].stackedData?.reduce((seriesAcc, values) => {
20
+ return [Math.min(...values, seriesAcc[0]), Math.max(...values, seriesAcc[1])];
21
+ }, [Infinity, -Infinity]) ?? [Infinity, -Infinity];
22
+ return [Math.min(seriesMin, acc[0]), Math.max(seriesMax, acc[1])];
23
+ }, [Infinity, -Infinity]);
22
24
  };
23
25
  export const getExtremumX = params => {
24
26
  // Notice that bar should be all horizontal or all vertical.
@@ -1,4 +1,4 @@
1
- export default function getColor(series, xAxis, yAxis) {
1
+ const getColor = (series, xAxis, yAxis) => {
2
2
  const verticalLayout = series.layout === 'vertical';
3
3
  const bandColorScale = verticalLayout ? xAxis?.colorScale : yAxis?.colorScale;
4
4
  const valueColorScale = verticalLayout ? yAxis?.colorScale : xAxis?.colorScale;
@@ -24,4 +24,5 @@ export default function getColor(series, xAxis, yAxis) {
24
24
  };
25
25
  }
26
26
  return () => series.color;
27
- }
27
+ };
28
+ export default getColor;