@mui/x-charts-premium 9.0.4 → 9.1.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 (171) hide show
  1. package/BarChartPremium/BarChartPremium.js +2 -1183
  2. package/BarChartPremium/BarChartPremium.mjs +2 -1183
  3. package/BarChartPremium/RangeBar/seriesConfig/seriesProcessor.js +2 -0
  4. package/BarChartPremium/RangeBar/seriesConfig/seriesProcessor.mjs +2 -0
  5. package/CHANGELOG.md +133 -0
  6. package/CandlestickChart/CandlestickChart.d.mts +2 -2
  7. package/CandlestickChart/CandlestickChart.d.ts +2 -2
  8. package/CandlestickChart/CandlestickChart.js +2 -1183
  9. package/CandlestickChart/CandlestickChart.mjs +2 -1183
  10. package/CandlestickChart/CandlestickWebGLProgram.d.mts +6 -11
  11. package/CandlestickChart/CandlestickWebGLProgram.d.ts +6 -11
  12. package/CandlestickChart/CandlestickWebGLProgram.js +136 -121
  13. package/CandlestickChart/CandlestickWebGLProgram.mjs +137 -122
  14. package/CandlestickChart/useCandlestickPlotData.d.mts +2 -2
  15. package/CandlestickChart/useCandlestickPlotData.d.ts +2 -2
  16. package/CandlestickChart/useCandlestickPlotData.js +121 -61
  17. package/CandlestickChart/useCandlestickPlotData.mjs +122 -61
  18. package/ChartsAxisHighlightValue/index.d.mts +1 -0
  19. package/ChartsAxisHighlightValue/index.d.ts +1 -0
  20. package/ChartsAxisHighlightValue/index.js +16 -0
  21. package/ChartsAxisHighlightValue/index.mjs +2 -0
  22. package/ChartsDataProviderPremium/ChartsDataProviderPremium.js +2 -2
  23. package/ChartsDataProviderPremium/ChartsDataProviderPremium.mjs +2 -2
  24. package/ChartsRadialAxisHighlight/index.d.mts +1 -0
  25. package/ChartsRadialAxisHighlight/index.d.ts +1 -0
  26. package/ChartsRadialAxisHighlight/index.js +16 -0
  27. package/ChartsRadialAxisHighlight/index.mjs +2 -0
  28. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.js +2 -2
  29. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.mjs +2 -2
  30. package/HeatmapPremium/HeatmapPremium.js +2 -155
  31. package/HeatmapPremium/HeatmapPremium.mjs +2 -155
  32. package/HeatmapPremium/webgl/HeatmapWebGLPlot.js +19 -112
  33. package/HeatmapPremium/webgl/HeatmapWebGLPlot.mjs +19 -111
  34. package/HeatmapPremium/webgl/HeatmapWebGLProgram.d.mts +24 -0
  35. package/HeatmapPremium/webgl/HeatmapWebGLProgram.d.ts +24 -0
  36. package/HeatmapPremium/webgl/HeatmapWebGLProgram.js +132 -0
  37. package/HeatmapPremium/webgl/HeatmapWebGLProgram.mjs +125 -0
  38. package/HeatmapPremium/webgl/useHeatmapPlotData.d.mts +3 -3
  39. package/HeatmapPremium/webgl/useHeatmapPlotData.d.ts +3 -3
  40. package/HeatmapPremium/webgl/useHeatmapPlotData.js +78 -26
  41. package/HeatmapPremium/webgl/useHeatmapPlotData.mjs +80 -26
  42. package/LICENSE +3 -1
  43. package/RadialBarChart/RadialBarChart.d.mts +60 -0
  44. package/RadialBarChart/RadialBarChart.d.ts +60 -0
  45. package/RadialBarChart/RadialBarChart.js +298 -0
  46. package/RadialBarChart/RadialBarChart.mjs +292 -0
  47. package/RadialBarChart/RadialBarChart.plugins.d.mts +4 -0
  48. package/RadialBarChart/RadialBarChart.plugins.d.ts +4 -0
  49. package/RadialBarChart/RadialBarChart.plugins.js +9 -0
  50. package/RadialBarChart/RadialBarChart.plugins.mjs +3 -0
  51. package/RadialBarChart/RadialBarElement.d.mts +16 -0
  52. package/RadialBarChart/RadialBarElement.d.ts +16 -0
  53. package/RadialBarChart/RadialBarElement.js +54 -0
  54. package/RadialBarChart/RadialBarElement.mjs +48 -0
  55. package/RadialBarChart/RadialBarPlot.d.mts +21 -0
  56. package/RadialBarChart/RadialBarPlot.d.ts +21 -0
  57. package/RadialBarChart/RadialBarPlot.js +85 -0
  58. package/RadialBarChart/RadialBarPlot.mjs +79 -0
  59. package/RadialBarChart/index.d.mts +3 -0
  60. package/RadialBarChart/index.d.ts +3 -0
  61. package/RadialBarChart/index.js +39 -0
  62. package/RadialBarChart/index.mjs +3 -0
  63. package/RadialBarChart/radialBarClasses.d.mts +15 -0
  64. package/RadialBarChart/radialBarClasses.d.ts +15 -0
  65. package/RadialBarChart/radialBarClasses.js +26 -0
  66. package/RadialBarChart/radialBarClasses.mjs +18 -0
  67. package/RadialBarChart/seriesConfig/seriesProcessor.js +4 -0
  68. package/RadialBarChart/seriesConfig/seriesProcessor.mjs +4 -0
  69. package/RadialBarChart/useRadialBarChartProps.d.mts +28 -0
  70. package/RadialBarChart/useRadialBarChartProps.d.ts +28 -0
  71. package/RadialBarChart/useRadialBarChartProps.js +100 -0
  72. package/RadialBarChart/useRadialBarChartProps.mjs +93 -0
  73. package/RadialBarChart/useRadialBarPlotData.d.mts +23 -0
  74. package/RadialBarChart/useRadialBarPlotData.d.ts +23 -0
  75. package/RadialBarChart/useRadialBarPlotData.js +94 -0
  76. package/RadialBarChart/useRadialBarPlotData.mjs +87 -0
  77. package/RadialLineChart/RadialArea.js +13 -1
  78. package/RadialLineChart/RadialArea.mjs +13 -1
  79. package/RadialLineChart/RadialLine.js +13 -1
  80. package/RadialLineChart/RadialLine.mjs +13 -1
  81. package/RadialLineChart/RadialLineChart.d.mts +11 -3
  82. package/RadialLineChart/RadialLineChart.d.ts +11 -3
  83. package/RadialLineChart/RadialLineChart.js +24 -673
  84. package/RadialLineChart/RadialLineChart.mjs +24 -673
  85. package/RadialLineChart/RadialLineHighlightElement.d.mts +15 -0
  86. package/RadialLineChart/RadialLineHighlightElement.d.ts +15 -0
  87. package/RadialLineChart/RadialLineHighlightElement.js +46 -0
  88. package/RadialLineChart/RadialLineHighlightElement.mjs +39 -0
  89. package/RadialLineChart/RadialLineHighlightPlot.d.mts +23 -0
  90. package/RadialLineChart/RadialLineHighlightPlot.d.ts +23 -0
  91. package/RadialLineChart/RadialLineHighlightPlot.js +92 -0
  92. package/RadialLineChart/RadialLineHighlightPlot.mjs +86 -0
  93. package/RadialLineChart/RadialMarkPlot.js +17 -2
  94. package/RadialLineChart/RadialMarkPlot.mjs +17 -2
  95. package/RadialLineChart/index.d.mts +3 -1
  96. package/RadialLineChart/index.d.ts +3 -1
  97. package/RadialLineChart/index.js +22 -0
  98. package/RadialLineChart/index.mjs +3 -1
  99. package/RadialLineChart/radialLineClasses.d.mts +3 -1
  100. package/RadialLineChart/radialLineClasses.d.ts +3 -1
  101. package/RadialLineChart/radialLineClasses.js +2 -1
  102. package/RadialLineChart/radialLineClasses.mjs +2 -1
  103. package/RadialLineChart/seriesConfig/getItemAtPosition.d.mts +6 -0
  104. package/RadialLineChart/seriesConfig/getItemAtPosition.d.ts +6 -0
  105. package/RadialLineChart/seriesConfig/getItemAtPosition.js +353 -0
  106. package/RadialLineChart/seriesConfig/getItemAtPosition.mjs +348 -0
  107. package/RadialLineChart/seriesConfig/getSeriesWithDefaultValues.js +2 -1
  108. package/RadialLineChart/seriesConfig/getSeriesWithDefaultValues.mjs +2 -1
  109. package/RadialLineChart/seriesConfig/index.js +2 -1
  110. package/RadialLineChart/seriesConfig/index.mjs +2 -1
  111. package/RadialLineChart/seriesConfig/seriesProcessor.js +4 -0
  112. package/RadialLineChart/seriesConfig/seriesProcessor.mjs +4 -0
  113. package/RadialLineChart/useRadialLineChartProps.d.mts +2 -0
  114. package/RadialLineChart/useRadialLineChartProps.d.ts +2 -0
  115. package/RadialLineChart/useRadialLineChartProps.js +16 -8
  116. package/RadialLineChart/useRadialLineChartProps.mjs +16 -8
  117. package/RadialLineChart/useRadialLinePlotData.js +2 -1
  118. package/RadialLineChart/useRadialLinePlotData.mjs +3 -2
  119. package/ScatterChartPremium/ScatterChartPremium.d.mts +25 -0
  120. package/ScatterChartPremium/ScatterChartPremium.d.ts +25 -0
  121. package/ScatterChartPremium/ScatterChartPremium.js +507 -0
  122. package/ScatterChartPremium/ScatterChartPremium.mjs +501 -0
  123. package/ScatterChartPremium/ScatterChartPremium.plugins.d.mts +3 -0
  124. package/ScatterChartPremium/ScatterChartPremium.plugins.d.ts +3 -0
  125. package/ScatterChartPremium/ScatterChartPremium.plugins.js +8 -0
  126. package/ScatterChartPremium/ScatterChartPremium.plugins.mjs +2 -0
  127. package/ScatterChartPremium/ScatterPlotPremium.d.mts +14 -0
  128. package/ScatterChartPremium/ScatterPlotPremium.d.ts +14 -0
  129. package/ScatterChartPremium/ScatterPlotPremium.js +28 -0
  130. package/ScatterChartPremium/ScatterPlotPremium.mjs +21 -0
  131. package/ScatterChartPremium/index.d.mts +3 -0
  132. package/ScatterChartPremium/index.d.ts +3 -0
  133. package/ScatterChartPremium/index.js +26 -0
  134. package/ScatterChartPremium/index.mjs +3 -0
  135. package/ScatterChartPremium/webgl/ScatterWebGLPlot.d.mts +4 -0
  136. package/ScatterChartPremium/webgl/ScatterWebGLPlot.d.ts +4 -0
  137. package/ScatterChartPremium/webgl/ScatterWebGLPlot.js +70 -0
  138. package/ScatterChartPremium/webgl/ScatterWebGLPlot.mjs +65 -0
  139. package/ScatterChartPremium/webgl/ScatterWebGLProgram.d.mts +18 -0
  140. package/ScatterChartPremium/webgl/ScatterWebGLProgram.d.ts +18 -0
  141. package/ScatterChartPremium/webgl/ScatterWebGLProgram.js +129 -0
  142. package/ScatterChartPremium/webgl/ScatterWebGLProgram.mjs +122 -0
  143. package/ScatterChartPremium/webgl/shaders.d.mts +2 -0
  144. package/ScatterChartPremium/webgl/shaders.d.ts +2 -0
  145. package/ScatterChartPremium/webgl/shaders.js +57 -0
  146. package/ScatterChartPremium/webgl/shaders.mjs +51 -0
  147. package/ScatterChartPremium/webgl/useScatterWebGLPlotData.d.mts +7 -0
  148. package/ScatterChartPremium/webgl/useScatterWebGLPlotData.d.ts +7 -0
  149. package/ScatterChartPremium/webgl/useScatterWebGLPlotData.js +140 -0
  150. package/ScatterChartPremium/webgl/useScatterWebGLPlotData.mjs +134 -0
  151. package/index.d.mts +3 -1
  152. package/index.d.ts +3 -1
  153. package/index.js +25 -1
  154. package/index.mjs +4 -2
  155. package/internals/index.d.mts +1 -0
  156. package/internals/index.d.ts +1 -0
  157. package/internals/index.js +13 -0
  158. package/internals/index.mjs +1 -0
  159. package/models/seriesType/radialLine.d.mts +7 -1
  160. package/models/seriesType/radialLine.d.ts +7 -1
  161. package/package.json +184 -114
  162. package/plugins/selectors/useChartCandlestickPosition.selectors.d.mts +1 -1
  163. package/plugins/selectors/useChartCandlestickPosition.selectors.d.ts +1 -1
  164. package/utils/webgl/parseColor.d.mts +2 -1
  165. package/utils/webgl/parseColor.d.ts +2 -1
  166. package/utils/webgl/parseColor.js +8 -7
  167. package/utils/webgl/parseColor.mjs +8 -7
  168. package/utils/webgl/utils.d.mts +13 -0
  169. package/utils/webgl/utils.d.ts +13 -0
  170. package/utils/webgl/utils.js +29 -0
  171. package/utils/webgl/utils.mjs +27 -0
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ radialBarClasses: true
8
+ };
9
+ Object.defineProperty(exports, "radialBarClasses", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _radialBarClasses.radialBarClasses;
13
+ }
14
+ });
15
+ var _RadialBarChart = require("./RadialBarChart");
16
+ Object.keys(_RadialBarChart).forEach(function (key) {
17
+ if (key === "default" || key === "__esModule") return;
18
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
19
+ if (key in exports && exports[key] === _RadialBarChart[key]) return;
20
+ Object.defineProperty(exports, key, {
21
+ enumerable: true,
22
+ get: function () {
23
+ return _RadialBarChart[key];
24
+ }
25
+ });
26
+ });
27
+ var _RadialBarPlot = require("./RadialBarPlot");
28
+ Object.keys(_RadialBarPlot).forEach(function (key) {
29
+ if (key === "default" || key === "__esModule") return;
30
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
+ if (key in exports && exports[key] === _RadialBarPlot[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _RadialBarPlot[key];
36
+ }
37
+ });
38
+ });
39
+ var _radialBarClasses = require("./radialBarClasses");
@@ -0,0 +1,3 @@
1
+ export * from "./RadialBarChart.mjs";
2
+ export * from "./RadialBarPlot.mjs";
3
+ export { radialBarClasses } from "./radialBarClasses.mjs";
@@ -0,0 +1,15 @@
1
+ export interface RadialBarClasses {
2
+ /** Styles applied to the bar plot element. */
3
+ root: string;
4
+ /** Styles applied to the group surrounding a series' bar elements. */
5
+ series: string;
6
+ /** Styles applied to an individual bar element. */
7
+ element: string;
8
+ }
9
+ export type RadialBarClassKey = keyof RadialBarClasses;
10
+ export declare const radialBarClasses: RadialBarClasses;
11
+ interface UseUtilityClassesOptions {
12
+ classes?: Partial<RadialBarClasses>;
13
+ }
14
+ export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"series" | "root" | "element", string>;
15
+ export {};
@@ -0,0 +1,15 @@
1
+ export interface RadialBarClasses {
2
+ /** Styles applied to the bar plot element. */
3
+ root: string;
4
+ /** Styles applied to the group surrounding a series' bar elements. */
5
+ series: string;
6
+ /** Styles applied to an individual bar element. */
7
+ element: string;
8
+ }
9
+ export type RadialBarClassKey = keyof RadialBarClasses;
10
+ export declare const radialBarClasses: RadialBarClasses;
11
+ interface UseUtilityClassesOptions {
12
+ classes?: Partial<RadialBarClasses>;
13
+ }
14
+ export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"series" | "root" | "element", string>;
15
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useUtilityClasses = exports.radialBarClasses = void 0;
8
+ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
9
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
10
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
11
+ function getRadialBarUtilityClass(slot) {
12
+ return (0, _generateUtilityClass.default)('MuiRadialBarChart', slot);
13
+ }
14
+ const radialBarClasses = exports.radialBarClasses = (0, _generateUtilityClasses.default)('MuiRadialBarChart', ['root', 'series', 'element']);
15
+ const useUtilityClasses = options => {
16
+ const {
17
+ classes
18
+ } = options ?? {};
19
+ const slots = {
20
+ root: ['root'],
21
+ series: ['series'],
22
+ element: ['element']
23
+ };
24
+ return (0, _composeClasses.default)(slots, getRadialBarUtilityClass, classes);
25
+ };
26
+ exports.useUtilityClasses = useUtilityClasses;
@@ -0,0 +1,18 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import composeClasses from '@mui/utils/composeClasses';
3
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
4
+ function getRadialBarUtilityClass(slot) {
5
+ return generateUtilityClass('MuiRadialBarChart', slot);
6
+ }
7
+ export const radialBarClasses = generateUtilityClasses('MuiRadialBarChart', ['root', 'series', 'element']);
8
+ export const useUtilityClasses = options => {
9
+ const {
10
+ classes
11
+ } = options ?? {};
12
+ const slots = {
13
+ root: ['root'],
14
+ series: ['series'],
15
+ element: ['element']
16
+ };
17
+ return composeClasses(slots, getRadialBarUtilityClass, classes);
18
+ };
@@ -45,12 +45,16 @@ function seriesProcessor(params, dataset, isItemVisible) {
45
45
  }
46
46
  });
47
47
  } else if (dataset === undefined && process.env.NODE_ENV !== 'production') {
48
+ // TODO: fix mui/no-guarded-throw
49
+ // eslint-disable-next-line mui/no-guarded-throw
48
50
  throw new Error(process.env.NODE_ENV !== "production" ? `MUI X Charts: Radial bar series with id="${id}" has no data. ` + 'The chart cannot render this series without data. ' + 'Provide a data property to the series or use the dataset prop.' : (0, _formatErrorMessage2.default)(269, id));
49
51
  }
50
52
  if (process.env.NODE_ENV !== 'production') {
51
53
  if (!data && dataset) {
52
54
  const dataKey = series[id].dataKey;
53
55
  if (!dataKey && !series[id].valueGetter) {
56
+ // TODO: fix mui/no-guarded-throw
57
+ // eslint-disable-next-line mui/no-guarded-throw
54
58
  throw new Error(`MUI X Charts: Radial bar series with id="${id}" has no data, no dataKey, and no valueGetter. ` + 'When using the dataset prop, each series must have a dataKey or valueGetter to identify which dataset values to use. ' + 'Add a dataKey or valueGetter property to the series configuration.');
55
59
  }
56
60
  if (dataKey) {
@@ -38,12 +38,16 @@ function seriesProcessor(params, dataset, isItemVisible) {
38
38
  }
39
39
  });
40
40
  } else if (dataset === undefined && process.env.NODE_ENV !== 'production') {
41
+ // TODO: fix mui/no-guarded-throw
42
+ // eslint-disable-next-line mui/no-guarded-throw
41
43
  throw new Error(process.env.NODE_ENV !== "production" ? `MUI X Charts: Radial bar series with id="${id}" has no data. ` + 'The chart cannot render this series without data. ' + 'Provide a data property to the series or use the dataset prop.' : _formatErrorMessage(269, id));
42
44
  }
43
45
  if (process.env.NODE_ENV !== 'production') {
44
46
  if (!data && dataset) {
45
47
  const dataKey = series[id].dataKey;
46
48
  if (!dataKey && !series[id].valueGetter) {
49
+ // TODO: fix mui/no-guarded-throw
50
+ // eslint-disable-next-line mui/no-guarded-throw
47
51
  throw new Error(`MUI X Charts: Radial bar series with id="${id}" has no data, no dataKey, and no valueGetter. ` + 'When using the dataset prop, each series must have a dataKey or valueGetter to identify which dataset values to use. ' + 'Add a dataKey or valueGetter property to the series configuration.');
48
52
  }
49
53
  if (dataKey) {
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import { type ChartsClipPathProps } from "../ChartsClipPath/index.mjs";
3
+ import { type ChartsRadialGridProps } from "../ChartsRadialGrid/index.mjs";
4
+ import { type ChartsLegendSlotExtension } from "../ChartsLegend/index.mjs";
5
+ import { type ChartsOverlayProps } from "../ChartsOverlay/index.mjs";
6
+ import { type ChartsRadialDataProviderProps } from "../ChartsRadialDataProvider/index.mjs";
7
+ import type { RadialBarChartProps } from "./RadialBarChart.mjs";
8
+ import type { ChartsWrapperProps } from "../ChartsWrapper/index.mjs";
9
+ import { type RadialBarChartPluginSignatures } from "./RadialBarChart.plugins.mjs";
10
+ /**
11
+ * A helper function that extracts RadialBarChartProps from the input props
12
+ * and returns an object with props for the children components of RadialBarChart.
13
+ *
14
+ * @param props The input props for RadialBarChart
15
+ * @returns An object with props for the children components of RadialBarChart
16
+ */
17
+ export declare const useRadialBarChartProps: (props: RadialBarChartProps) => {
18
+ chartsWrapperProps: Omit<ChartsWrapperProps, "children">;
19
+ chartsContainerProps: ChartsRadialDataProviderProps<"radialBar", RadialBarChartPluginSignatures>;
20
+ gridProps: ChartsRadialGridProps | undefined;
21
+ clipPathProps: ChartsClipPathProps;
22
+ clipPathGroupProps: {
23
+ clipPath: string;
24
+ };
25
+ overlayProps: ChartsOverlayProps;
26
+ legendProps: ChartsLegendSlotExtension;
27
+ children: React.ReactNode;
28
+ };
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import { type ChartsClipPathProps } from "../ChartsClipPath/index.js";
3
+ import { type ChartsRadialGridProps } from "../ChartsRadialGrid/index.js";
4
+ import { type ChartsLegendSlotExtension } from "../ChartsLegend/index.js";
5
+ import { type ChartsOverlayProps } from "../ChartsOverlay/index.js";
6
+ import { type ChartsRadialDataProviderProps } from "../ChartsRadialDataProvider/index.js";
7
+ import type { RadialBarChartProps } from "./RadialBarChart.js";
8
+ import type { ChartsWrapperProps } from "../ChartsWrapper/index.js";
9
+ import { type RadialBarChartPluginSignatures } from "./RadialBarChart.plugins.js";
10
+ /**
11
+ * A helper function that extracts RadialBarChartProps from the input props
12
+ * and returns an object with props for the children components of RadialBarChart.
13
+ *
14
+ * @param props The input props for RadialBarChart
15
+ * @returns An object with props for the children components of RadialBarChart
16
+ */
17
+ export declare const useRadialBarChartProps: (props: RadialBarChartProps) => {
18
+ chartsWrapperProps: Omit<ChartsWrapperProps, "children">;
19
+ chartsContainerProps: ChartsRadialDataProviderProps<"radialBar", RadialBarChartPluginSignatures>;
20
+ gridProps: ChartsRadialGridProps | undefined;
21
+ clipPathProps: ChartsClipPathProps;
22
+ clipPathGroupProps: {
23
+ clipPath: string;
24
+ };
25
+ overlayProps: ChartsOverlayProps;
26
+ legendProps: ChartsLegendSlotExtension;
27
+ children: React.ReactNode;
28
+ };
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.useRadialBarChartProps = void 0;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
+ var React = _interopRequireWildcard(require("react"));
13
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
+ var _RadialBarChart = require("./RadialBarChart.plugins");
15
+ var _constants = require("../constants");
16
+ const _excluded = ["rotationAxis", "radiusAxis", "series", "width", "height", "margin", "colors", "dataset", "hideLegend", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "showToolbar"];
17
+ /**
18
+ * A helper function that extracts RadialBarChartProps from the input props
19
+ * and returns an object with props for the children components of RadialBarChart.
20
+ *
21
+ * @param props The input props for RadialBarChart
22
+ * @returns An object with props for the children components of RadialBarChart
23
+ */
24
+ const useRadialBarChartProps = props => {
25
+ const {
26
+ rotationAxis,
27
+ radiusAxis,
28
+ series,
29
+ width,
30
+ height,
31
+ margin,
32
+ colors,
33
+ dataset,
34
+ grid,
35
+ children,
36
+ slots,
37
+ slotProps,
38
+ skipAnimation,
39
+ loading
40
+ } = props,
41
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
42
+ const id = (0, _useId.default)();
43
+ const clipPathId = `${id}-clip-path`;
44
+ const seriesWithDefault = React.useMemo(() => series.map(s => (0, _extends2.default)({
45
+ type: 'radialBar'
46
+ }, s)), [series]);
47
+ const defaultRotationAxis = React.useMemo(() => {
48
+ return [{
49
+ id: _constants.DEFAULT_ROTATION_AXIS_KEY,
50
+ scaleType: 'band',
51
+ data: Array.from({
52
+ length: Math.max(...series.map(s => (s.data ?? dataset ?? []).length))
53
+ }, (_, index) => index)
54
+ }];
55
+ }, [series, dataset]);
56
+ const chartsContainerProps = (0, _extends2.default)({}, other, {
57
+ series: seriesWithDefault,
58
+ width,
59
+ height,
60
+ margin,
61
+ colors,
62
+ dataset,
63
+ rotationAxis: rotationAxis ?? defaultRotationAxis,
64
+ radiusAxis,
65
+ skipAnimation,
66
+ plugins: _RadialBarChart.RADIAL_BAR_CHART_PLUGINS
67
+ });
68
+ const gridProps = grid;
69
+ const clipPathGroupProps = {
70
+ clipPath: `url(#${clipPathId})`
71
+ };
72
+ const clipPathProps = {
73
+ id: clipPathId
74
+ };
75
+ const overlayProps = {
76
+ slots,
77
+ slotProps,
78
+ loading
79
+ };
80
+ const legendProps = {
81
+ slots,
82
+ slotProps
83
+ };
84
+ const chartsWrapperProps = {
85
+ legendPosition: props.slotProps?.legend?.position,
86
+ legendDirection: props.slotProps?.legend?.direction,
87
+ hideLegend: props.hideLegend ?? false
88
+ };
89
+ return {
90
+ chartsWrapperProps,
91
+ chartsContainerProps,
92
+ gridProps,
93
+ clipPathProps,
94
+ clipPathGroupProps,
95
+ overlayProps,
96
+ legendProps,
97
+ children
98
+ };
99
+ };
100
+ exports.useRadialBarChartProps = useRadialBarChartProps;
@@ -0,0 +1,93 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
+ const _excluded = ["rotationAxis", "radiusAxis", "series", "width", "height", "margin", "colors", "dataset", "hideLegend", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "showToolbar"];
6
+ import * as React from 'react';
7
+ import useId from '@mui/utils/useId';
8
+ import { RADIAL_BAR_CHART_PLUGINS } from "./RadialBarChart.plugins.mjs";
9
+ import { DEFAULT_ROTATION_AXIS_KEY } from "../constants/index.mjs";
10
+
11
+ /**
12
+ * A helper function that extracts RadialBarChartProps from the input props
13
+ * and returns an object with props for the children components of RadialBarChart.
14
+ *
15
+ * @param props The input props for RadialBarChart
16
+ * @returns An object with props for the children components of RadialBarChart
17
+ */
18
+ export const useRadialBarChartProps = props => {
19
+ const {
20
+ rotationAxis,
21
+ radiusAxis,
22
+ series,
23
+ width,
24
+ height,
25
+ margin,
26
+ colors,
27
+ dataset,
28
+ grid,
29
+ children,
30
+ slots,
31
+ slotProps,
32
+ skipAnimation,
33
+ loading
34
+ } = props,
35
+ other = _objectWithoutPropertiesLoose(props, _excluded);
36
+ const id = useId();
37
+ const clipPathId = `${id}-clip-path`;
38
+ const seriesWithDefault = React.useMemo(() => series.map(s => _extends({
39
+ type: 'radialBar'
40
+ }, s)), [series]);
41
+ const defaultRotationAxis = React.useMemo(() => {
42
+ return [{
43
+ id: DEFAULT_ROTATION_AXIS_KEY,
44
+ scaleType: 'band',
45
+ data: Array.from({
46
+ length: Math.max(...series.map(s => (s.data ?? dataset ?? []).length))
47
+ }, (_, index) => index)
48
+ }];
49
+ }, [series, dataset]);
50
+ const chartsContainerProps = _extends({}, other, {
51
+ series: seriesWithDefault,
52
+ width,
53
+ height,
54
+ margin,
55
+ colors,
56
+ dataset,
57
+ rotationAxis: rotationAxis ?? defaultRotationAxis,
58
+ radiusAxis,
59
+ skipAnimation,
60
+ plugins: RADIAL_BAR_CHART_PLUGINS
61
+ });
62
+ const gridProps = grid;
63
+ const clipPathGroupProps = {
64
+ clipPath: `url(#${clipPathId})`
65
+ };
66
+ const clipPathProps = {
67
+ id: clipPathId
68
+ };
69
+ const overlayProps = {
70
+ slots,
71
+ slotProps,
72
+ loading
73
+ };
74
+ const legendProps = {
75
+ slots,
76
+ slotProps
77
+ };
78
+ const chartsWrapperProps = {
79
+ legendPosition: props.slotProps?.legend?.position,
80
+ legendDirection: props.slotProps?.legend?.direction,
81
+ hideLegend: props.hideLegend ?? false
82
+ };
83
+ return {
84
+ chartsWrapperProps,
85
+ chartsContainerProps,
86
+ gridProps,
87
+ clipPathProps,
88
+ clipPathGroupProps,
89
+ overlayProps,
90
+ legendProps,
91
+ children
92
+ };
93
+ };
@@ -0,0 +1,23 @@
1
+ import { type SeriesId } from '@mui/x-charts/models';
2
+ interface ProcessedRadialBarData {
3
+ seriesId: SeriesId;
4
+ dataIndex: number;
5
+ color: string;
6
+ value: number | null;
7
+ hidden: boolean;
8
+ startAngle: number;
9
+ endAngle: number;
10
+ innerRadius: number;
11
+ outerRadius: number;
12
+ }
13
+ interface ProcessedRadialBarSeriesData {
14
+ seriesId: SeriesId;
15
+ data: ProcessedRadialBarData[];
16
+ layout: 'vertical' | 'horizontal';
17
+ rotationOrigin: number;
18
+ radiusOrigin: number;
19
+ }
20
+ export declare function useRadialBarPlotData(): {
21
+ completedData: ProcessedRadialBarSeriesData[];
22
+ };
23
+ export {};
@@ -0,0 +1,23 @@
1
+ import { type SeriesId } from '@mui/x-charts/models';
2
+ interface ProcessedRadialBarData {
3
+ seriesId: SeriesId;
4
+ dataIndex: number;
5
+ color: string;
6
+ value: number | null;
7
+ hidden: boolean;
8
+ startAngle: number;
9
+ endAngle: number;
10
+ innerRadius: number;
11
+ outerRadius: number;
12
+ }
13
+ interface ProcessedRadialBarSeriesData {
14
+ seriesId: SeriesId;
15
+ data: ProcessedRadialBarData[];
16
+ layout: 'vertical' | 'horizontal';
17
+ rotationOrigin: number;
18
+ radiusOrigin: number;
19
+ }
20
+ export declare function useRadialBarPlotData(): {
21
+ completedData: ProcessedRadialBarSeriesData[];
22
+ };
23
+ export {};
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useRadialBarPlotData = useRadialBarPlotData;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _hooks = require("@mui/x-charts/hooks");
10
+ var _internals = require("@mui/x-charts/internals");
11
+ function useRadialBarPlotData() {
12
+ const seriesData = (0, _internals.useAllSeriesOfType)('radialBar') ?? {
13
+ series: {},
14
+ stackingGroups: [],
15
+ seriesOrder: []
16
+ };
17
+ const {
18
+ rotationAxis: rotationAxes,
19
+ rotationAxisIds
20
+ } = (0, _hooks.useRotationAxes)();
21
+ const {
22
+ radiusAxis: radiusAxes,
23
+ radiusAxisIds
24
+ } = (0, _hooks.useRadiusAxes)();
25
+ const defaultRotationAxisId = rotationAxisIds[0];
26
+ const defaultRadiusAxisId = radiusAxisIds[0];
27
+ return React.useMemo(() => processRadialBarDataForPlot(seriesData.stackingGroups, seriesData.series, rotationAxes, radiusAxes, defaultRotationAxisId, defaultRadiusAxisId), [seriesData.stackingGroups, seriesData.series, rotationAxes, radiusAxes, defaultRotationAxisId, defaultRadiusAxisId]);
28
+ }
29
+ function processRadialBarDataForPlot(stackingGroups, series, rotationAxes, radiusAxes, defaultRotationAxisId, defaultRadiusAxisId) {
30
+ const data = stackingGroups.flatMap(({
31
+ ids: seriesIds
32
+ }, groupIndex) => {
33
+ return seriesIds.map(seriesId => {
34
+ const seriesItem = series[seriesId];
35
+ const rotationAxisId = seriesItem.rotationAxisId ?? defaultRotationAxisId;
36
+ const radiusAxisId = seriesItem.radiusAxisId ?? defaultRadiusAxisId;
37
+ const layout = seriesItem.layout;
38
+ const verticalLayout = layout === 'vertical';
39
+ const rotationAxisConfig = rotationAxes[rotationAxisId];
40
+ const radiusAxisConfig = radiusAxes[radiusAxisId];
41
+ const baseAxisConfig = verticalLayout ? rotationAxisConfig : radiusAxisConfig;
42
+ const valueAxisConfig = verticalLayout ? radiusAxisConfig : rotationAxisConfig;
43
+ const reverse = valueAxisConfig.reverse ?? false;
44
+ const baseScale = baseAxisConfig.scale;
45
+ const valueScale = valueAxisConfig.scale;
46
+ const rotationOrigin = rotationAxisConfig.scale(0) ?? 0;
47
+ const radiusOrigin = radiusAxisConfig.scale(0) ?? 0;
48
+ const {
49
+ barWidth: bandSlice,
50
+ offset
51
+ } = (0, _internals.getBandSize)(baseScale.bandwidth(), stackingGroups.length, baseAxisConfig.barGapRatio);
52
+ const seriesDataPoints = [];
53
+ for (let dataIndex = 0; dataIndex < baseAxisConfig.data.length; dataIndex += 1) {
54
+ const seriesValue = seriesItem.data[dataIndex];
55
+ if (seriesValue == null) {
56
+ continue;
57
+ }
58
+ const stackValues = seriesItem.visibleStackedData[dataIndex];
59
+ const stackCoords = stackValues.map(v => valueScale(v));
60
+ const [minValueCoord, maxValueCoord] = (0, _internals.findMinMax)(stackCoords);
61
+ let barSize = 0;
62
+ if (seriesValue !== 0 && !seriesItem.hidden) {
63
+ barSize = Math.max(seriesItem.minBarSize ?? 0, maxValueCoord - minValueCoord);
64
+ }
65
+ const isPositive = reverse ? seriesValue < 0 : seriesValue > 0;
66
+ const valueStart = isPositive ? maxValueCoord - barSize : minValueCoord;
67
+ const valueEnd = isPositive ? maxValueCoord : minValueCoord + barSize;
68
+ const baseStart = baseScale(baseAxisConfig.data[dataIndex]) + groupIndex * (bandSlice + offset);
69
+ const baseEnd = baseStart + bandSlice;
70
+ seriesDataPoints.push({
71
+ seriesId,
72
+ dataIndex,
73
+ hidden: seriesItem.hidden,
74
+ color: seriesItem.color,
75
+ value: seriesValue,
76
+ startAngle: verticalLayout ? baseStart : valueStart,
77
+ endAngle: verticalLayout ? baseEnd : valueEnd,
78
+ innerRadius: verticalLayout ? valueStart : baseStart,
79
+ outerRadius: verticalLayout ? valueEnd : baseEnd
80
+ });
81
+ }
82
+ return {
83
+ seriesId,
84
+ data: seriesDataPoints,
85
+ layout,
86
+ rotationOrigin,
87
+ radiusOrigin
88
+ };
89
+ });
90
+ });
91
+ return {
92
+ completedData: data
93
+ };
94
+ }
@@ -0,0 +1,87 @@
1
+ import * as React from 'react';
2
+ import { useRadiusAxes, useRotationAxes } from '@mui/x-charts/hooks';
3
+ import { findMinMax, getBandSize, useAllSeriesOfType } from '@mui/x-charts/internals';
4
+ export function useRadialBarPlotData() {
5
+ const seriesData = useAllSeriesOfType('radialBar') ?? {
6
+ series: {},
7
+ stackingGroups: [],
8
+ seriesOrder: []
9
+ };
10
+ const {
11
+ rotationAxis: rotationAxes,
12
+ rotationAxisIds
13
+ } = useRotationAxes();
14
+ const {
15
+ radiusAxis: radiusAxes,
16
+ radiusAxisIds
17
+ } = useRadiusAxes();
18
+ const defaultRotationAxisId = rotationAxisIds[0];
19
+ const defaultRadiusAxisId = radiusAxisIds[0];
20
+ return React.useMemo(() => processRadialBarDataForPlot(seriesData.stackingGroups, seriesData.series, rotationAxes, radiusAxes, defaultRotationAxisId, defaultRadiusAxisId), [seriesData.stackingGroups, seriesData.series, rotationAxes, radiusAxes, defaultRotationAxisId, defaultRadiusAxisId]);
21
+ }
22
+ function processRadialBarDataForPlot(stackingGroups, series, rotationAxes, radiusAxes, defaultRotationAxisId, defaultRadiusAxisId) {
23
+ const data = stackingGroups.flatMap(({
24
+ ids: seriesIds
25
+ }, groupIndex) => {
26
+ return seriesIds.map(seriesId => {
27
+ const seriesItem = series[seriesId];
28
+ const rotationAxisId = seriesItem.rotationAxisId ?? defaultRotationAxisId;
29
+ const radiusAxisId = seriesItem.radiusAxisId ?? defaultRadiusAxisId;
30
+ const layout = seriesItem.layout;
31
+ const verticalLayout = layout === 'vertical';
32
+ const rotationAxisConfig = rotationAxes[rotationAxisId];
33
+ const radiusAxisConfig = radiusAxes[radiusAxisId];
34
+ const baseAxisConfig = verticalLayout ? rotationAxisConfig : radiusAxisConfig;
35
+ const valueAxisConfig = verticalLayout ? radiusAxisConfig : rotationAxisConfig;
36
+ const reverse = valueAxisConfig.reverse ?? false;
37
+ const baseScale = baseAxisConfig.scale;
38
+ const valueScale = valueAxisConfig.scale;
39
+ const rotationOrigin = rotationAxisConfig.scale(0) ?? 0;
40
+ const radiusOrigin = radiusAxisConfig.scale(0) ?? 0;
41
+ const {
42
+ barWidth: bandSlice,
43
+ offset
44
+ } = getBandSize(baseScale.bandwidth(), stackingGroups.length, baseAxisConfig.barGapRatio);
45
+ const seriesDataPoints = [];
46
+ for (let dataIndex = 0; dataIndex < baseAxisConfig.data.length; dataIndex += 1) {
47
+ const seriesValue = seriesItem.data[dataIndex];
48
+ if (seriesValue == null) {
49
+ continue;
50
+ }
51
+ const stackValues = seriesItem.visibleStackedData[dataIndex];
52
+ const stackCoords = stackValues.map(v => valueScale(v));
53
+ const [minValueCoord, maxValueCoord] = findMinMax(stackCoords);
54
+ let barSize = 0;
55
+ if (seriesValue !== 0 && !seriesItem.hidden) {
56
+ barSize = Math.max(seriesItem.minBarSize ?? 0, maxValueCoord - minValueCoord);
57
+ }
58
+ const isPositive = reverse ? seriesValue < 0 : seriesValue > 0;
59
+ const valueStart = isPositive ? maxValueCoord - barSize : minValueCoord;
60
+ const valueEnd = isPositive ? maxValueCoord : minValueCoord + barSize;
61
+ const baseStart = baseScale(baseAxisConfig.data[dataIndex]) + groupIndex * (bandSlice + offset);
62
+ const baseEnd = baseStart + bandSlice;
63
+ seriesDataPoints.push({
64
+ seriesId,
65
+ dataIndex,
66
+ hidden: seriesItem.hidden,
67
+ color: seriesItem.color,
68
+ value: seriesValue,
69
+ startAngle: verticalLayout ? baseStart : valueStart,
70
+ endAngle: verticalLayout ? baseEnd : valueEnd,
71
+ innerRadius: verticalLayout ? valueStart : baseStart,
72
+ outerRadius: verticalLayout ? valueEnd : baseEnd
73
+ });
74
+ }
75
+ return {
76
+ seriesId,
77
+ data: seriesDataPoints,
78
+ layout,
79
+ rotationOrigin,
80
+ radiusOrigin
81
+ };
82
+ });
83
+ });
84
+ return {
85
+ completedData: data
86
+ };
87
+ }