@mui/x-charts-pro 8.1.0 → 8.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 (198) hide show
  1. package/BarChartPro/BarChartPro.d.ts +7 -1
  2. package/BarChartPro/BarChartPro.js +62 -5
  3. package/CHANGELOG.md +233 -7
  4. package/ChartContainerPro/useChartContainerProProps.d.ts +1 -1
  5. package/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
  6. package/ChartDataProviderPro/useChartDataProviderProProps.d.ts +2 -2
  7. package/ChartZoomSlider/ChartZoomSlider.d.ts +5 -0
  8. package/ChartZoomSlider/ChartZoomSlider.js +47 -0
  9. package/ChartZoomSlider/index.d.ts +2 -0
  10. package/ChartZoomSlider/index.js +27 -0
  11. package/ChartZoomSlider/internals/ChartAxisZoomSlider.d.ts +23 -0
  12. package/ChartZoomSlider/internals/ChartAxisZoomSlider.js +348 -0
  13. package/ChartZoomSlider/internals/ChartAxisZoomSliderHandle.d.ts +12 -0
  14. package/ChartZoomSlider/internals/ChartAxisZoomSliderHandle.js +92 -0
  15. package/ChartZoomSlider/internals/chartAxisZoomSliderHandleClasses.d.ts +17 -0
  16. package/ChartZoomSlider/internals/chartAxisZoomSliderHandleClasses.js +27 -0
  17. package/ChartsToolbarPro/ChartsToolbarPro.d.ts +2 -0
  18. package/ChartsToolbarPro/ChartsToolbarPro.js +31 -0
  19. package/ChartsToolbarPro/index.d.ts +1 -0
  20. package/ChartsToolbarPro/index.js +16 -0
  21. package/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.d.ts +13 -0
  22. package/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.js +36 -0
  23. package/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.d.ts +13 -0
  24. package/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.js +36 -0
  25. package/FunnelChart/FunnelChart.js +9 -8
  26. package/FunnelChart/FunnelPlot.d.ts +5 -0
  27. package/FunnelChart/FunnelPlot.js +36 -18
  28. package/FunnelChart/FunnelSection.d.ts +1 -0
  29. package/FunnelChart/FunnelSection.js +12 -7
  30. package/FunnelChart/curves/borderRadiusPolygon.d.ts +8 -0
  31. package/FunnelChart/curves/borderRadiusPolygon.js +42 -0
  32. package/FunnelChart/curves/bump.d.ts +27 -0
  33. package/FunnelChart/curves/bump.js +81 -0
  34. package/FunnelChart/curves/curve.types.d.ts +38 -0
  35. package/FunnelChart/curves/curve.types.js +5 -0
  36. package/FunnelChart/curves/getFunnelCurve.d.ts +3 -0
  37. package/FunnelChart/curves/getFunnelCurve.js +30 -0
  38. package/FunnelChart/curves/index.d.ts +2 -0
  39. package/FunnelChart/curves/index.js +27 -0
  40. package/FunnelChart/curves/linear.d.ts +32 -0
  41. package/FunnelChart/curves/linear.js +88 -0
  42. package/FunnelChart/curves/pyramid.d.ts +34 -0
  43. package/FunnelChart/curves/pyramid.js +127 -0
  44. package/FunnelChart/curves/step-pyramid.d.ts +31 -0
  45. package/FunnelChart/curves/step-pyramid.js +107 -0
  46. package/FunnelChart/curves/step.d.ts +32 -0
  47. package/FunnelChart/curves/step.js +88 -0
  48. package/FunnelChart/curves/utils.d.ts +4 -0
  49. package/FunnelChart/curves/utils.js +29 -0
  50. package/FunnelChart/funnel.types.d.ts +25 -4
  51. package/FunnelChart/funnelPlotSlots.types.d.ts +1 -1
  52. package/FunnelChart/funnelSectionClasses.d.ts +6 -2
  53. package/FunnelChart/funnelSectionClasses.js +5 -2
  54. package/FunnelChart/index.d.ts +3 -2
  55. package/FunnelChart/seriesConfig/getSeriesWithDefaultValues.js +1 -0
  56. package/FunnelChart/useFunnelChartProps.d.ts +1 -6
  57. package/FunnelChart/useFunnelChartProps.js +7 -15
  58. package/Heatmap/Heatmap.d.ts +3 -3
  59. package/Heatmap/Heatmap.js +3 -21
  60. package/LineChartPro/LineChartPro.d.ts +7 -1
  61. package/LineChartPro/LineChartPro.js +62 -5
  62. package/ScatterChartPro/ScatterChartPro.d.ts +7 -1
  63. package/ScatterChartPro/ScatterChartPro.js +62 -5
  64. package/esm/BarChartPro/BarChartPro.d.ts +7 -1
  65. package/esm/BarChartPro/BarChartPro.js +62 -5
  66. package/esm/ChartContainerPro/useChartContainerProProps.d.ts +1 -1
  67. package/esm/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
  68. package/esm/ChartDataProviderPro/useChartDataProviderProProps.d.ts +2 -2
  69. package/esm/ChartZoomSlider/ChartZoomSlider.d.ts +5 -0
  70. package/esm/ChartZoomSlider/ChartZoomSlider.js +41 -0
  71. package/esm/ChartZoomSlider/index.d.ts +2 -0
  72. package/esm/ChartZoomSlider/index.js +2 -0
  73. package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.d.ts +23 -0
  74. package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.js +339 -0
  75. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderHandle.d.ts +12 -0
  76. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderHandle.js +85 -0
  77. package/esm/ChartZoomSlider/internals/chartAxisZoomSliderHandleClasses.d.ts +17 -0
  78. package/esm/ChartZoomSlider/internals/chartAxisZoomSliderHandleClasses.js +17 -0
  79. package/esm/ChartsToolbarPro/ChartsToolbarPro.d.ts +2 -0
  80. package/esm/ChartsToolbarPro/ChartsToolbarPro.js +24 -0
  81. package/esm/ChartsToolbarPro/index.d.ts +1 -0
  82. package/esm/ChartsToolbarPro/index.js +1 -0
  83. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.d.ts +13 -0
  84. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.js +29 -0
  85. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.d.ts +13 -0
  86. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.js +29 -0
  87. package/esm/FunnelChart/FunnelChart.js +9 -8
  88. package/esm/FunnelChart/FunnelPlot.d.ts +5 -0
  89. package/esm/FunnelChart/FunnelPlot.js +37 -19
  90. package/esm/FunnelChart/FunnelSection.d.ts +1 -0
  91. package/esm/FunnelChart/FunnelSection.js +12 -7
  92. package/esm/FunnelChart/curves/borderRadiusPolygon.d.ts +8 -0
  93. package/esm/FunnelChart/curves/borderRadiusPolygon.js +36 -0
  94. package/esm/FunnelChart/curves/bump.d.ts +27 -0
  95. package/esm/FunnelChart/curves/bump.js +74 -0
  96. package/esm/FunnelChart/curves/curve.types.d.ts +38 -0
  97. package/esm/FunnelChart/curves/curve.types.js +1 -0
  98. package/esm/FunnelChart/curves/getFunnelCurve.d.ts +3 -0
  99. package/esm/FunnelChart/curves/getFunnelCurve.js +23 -0
  100. package/esm/FunnelChart/curves/index.d.ts +2 -0
  101. package/esm/FunnelChart/curves/index.js +2 -0
  102. package/esm/FunnelChart/curves/linear.d.ts +32 -0
  103. package/esm/FunnelChart/curves/linear.js +82 -0
  104. package/esm/FunnelChart/curves/pyramid.d.ts +34 -0
  105. package/esm/FunnelChart/curves/pyramid.js +121 -0
  106. package/esm/FunnelChart/curves/step-pyramid.d.ts +31 -0
  107. package/esm/FunnelChart/curves/step-pyramid.js +101 -0
  108. package/esm/FunnelChart/curves/step.d.ts +32 -0
  109. package/esm/FunnelChart/curves/step.js +82 -0
  110. package/esm/FunnelChart/curves/utils.d.ts +4 -0
  111. package/esm/FunnelChart/curves/utils.js +19 -0
  112. package/esm/FunnelChart/funnel.types.d.ts +25 -4
  113. package/esm/FunnelChart/funnelPlotSlots.types.d.ts +1 -1
  114. package/esm/FunnelChart/funnelSectionClasses.d.ts +6 -2
  115. package/esm/FunnelChart/funnelSectionClasses.js +5 -2
  116. package/esm/FunnelChart/index.d.ts +3 -2
  117. package/esm/FunnelChart/seriesConfig/getSeriesWithDefaultValues.js +1 -0
  118. package/esm/FunnelChart/useFunnelChartProps.d.ts +1 -6
  119. package/esm/FunnelChart/useFunnelChartProps.js +7 -15
  120. package/esm/Heatmap/Heatmap.d.ts +3 -3
  121. package/esm/Heatmap/Heatmap.js +3 -21
  122. package/esm/LineChartPro/LineChartPro.d.ts +7 -1
  123. package/esm/LineChartPro/LineChartPro.js +62 -5
  124. package/esm/ScatterChartPro/ScatterChartPro.d.ts +7 -1
  125. package/esm/ScatterChartPro/ScatterChartPro.js +62 -5
  126. package/esm/index.d.ts +4 -1
  127. package/esm/index.js +5 -2
  128. package/esm/internals/material/icons.d.ts +3 -0
  129. package/esm/internals/material/icons.js +13 -0
  130. package/esm/internals/material/index.d.ts +4 -0
  131. package/esm/internals/material/index.js +12 -0
  132. package/esm/internals/plugins/useChartProExport/common.d.ts +1 -0
  133. package/esm/internals/plugins/useChartProExport/common.js +8 -0
  134. package/esm/internals/plugins/useChartProExport/exportImage.d.ts +3 -0
  135. package/esm/internals/plugins/useChartProExport/exportImage.js +85 -0
  136. package/esm/internals/plugins/useChartProExport/print.js +6 -50
  137. package/esm/internals/plugins/useChartProExport/useChartProExport.js +22 -2
  138. package/esm/internals/plugins/useChartProExport/useChartProExport.types.d.ts +32 -0
  139. package/esm/internals/plugins/useChartProZoom/calculateZoom.d.ts +23 -0
  140. package/esm/internals/plugins/useChartProZoom/calculateZoom.js +32 -0
  141. package/esm/internals/plugins/useChartProZoom/useChartProZoom.d.ts +1 -1
  142. package/esm/internals/plugins/useChartProZoom/useChartProZoom.js +46 -4
  143. package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +84 -32
  144. package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +3 -2
  145. package/esm/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +17 -2
  146. package/esm/internals/slots/chartBaseSlotProps.d.ts +10 -0
  147. package/esm/internals/slots/chartBaseSlotProps.js +1 -0
  148. package/esm/internals/slots/chartsBaseSlots.d.ts +6 -0
  149. package/esm/internals/slots/chartsBaseSlots.js +1 -0
  150. package/esm/internals/slots/chartsIconSlots.d.ts +14 -0
  151. package/esm/internals/slots/chartsIconSlots.js +1 -0
  152. package/esm/themeAugmentation/components.d.ts +0 -4
  153. package/esm/themeAugmentation/components.js +1 -0
  154. package/esm/themeAugmentation/index.d.ts +3 -3
  155. package/esm/themeAugmentation/overrides.d.ts +0 -3
  156. package/esm/themeAugmentation/overrides.js +2 -0
  157. package/esm/themeAugmentation/props.d.ts +0 -6
  158. package/esm/themeAugmentation/props.js +2 -0
  159. package/esm/typeOverloads/modules.d.ts +1 -1
  160. package/index.d.ts +4 -1
  161. package/index.js +90 -1
  162. package/internals/material/icons.d.ts +3 -0
  163. package/internals/material/icons.js +20 -0
  164. package/internals/material/index.d.ts +4 -0
  165. package/internals/material/index.js +19 -0
  166. package/internals/plugins/useChartProExport/common.d.ts +1 -0
  167. package/internals/plugins/useChartProExport/common.js +14 -0
  168. package/internals/plugins/useChartProExport/exportImage.d.ts +3 -0
  169. package/internals/plugins/useChartProExport/exportImage.js +95 -0
  170. package/internals/plugins/useChartProExport/print.js +6 -50
  171. package/internals/plugins/useChartProExport/useChartProExport.js +22 -2
  172. package/internals/plugins/useChartProExport/useChartProExport.types.d.ts +32 -0
  173. package/internals/plugins/useChartProZoom/calculateZoom.d.ts +23 -0
  174. package/internals/plugins/useChartProZoom/calculateZoom.js +39 -0
  175. package/internals/plugins/useChartProZoom/useChartProZoom.d.ts +1 -1
  176. package/internals/plugins/useChartProZoom/useChartProZoom.js +45 -3
  177. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +84 -32
  178. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +3 -2
  179. package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +17 -2
  180. package/internals/slots/chartBaseSlotProps.d.ts +10 -0
  181. package/internals/slots/chartBaseSlotProps.js +5 -0
  182. package/internals/slots/chartsBaseSlots.d.ts +6 -0
  183. package/internals/slots/chartsBaseSlots.js +5 -0
  184. package/internals/slots/chartsIconSlots.d.ts +14 -0
  185. package/internals/slots/chartsIconSlots.js +5 -0
  186. package/package.json +10 -7
  187. package/themeAugmentation/components.d.ts +0 -4
  188. package/themeAugmentation/components.js +5 -0
  189. package/themeAugmentation/index.d.ts +3 -3
  190. package/themeAugmentation/overrides.d.ts +0 -3
  191. package/themeAugmentation/overrides.js +5 -0
  192. package/themeAugmentation/props.d.ts +0 -6
  193. package/themeAugmentation/props.js +5 -0
  194. package/typeOverloads/modules.d.ts +1 -1
  195. package/FunnelChart/funnelStepCurve.d.ts +0 -4
  196. package/FunnelChart/funnelStepCurve.js +0 -74
  197. package/esm/FunnelChart/funnelStepCurve.d.ts +0 -4
  198. package/esm/FunnelChart/funnelStepCurve.js +0 -67
@@ -1,4 +1,4 @@
1
- import type { FunnelSectionProps } from './FunnelSection';
1
+ import type { FunnelSectionProps } from "./FunnelSection.js";
2
2
  export interface FunnelSectionClasses {
3
3
  /** Styles applied to the root element. */
4
4
  root: string;
@@ -6,6 +6,10 @@ export interface FunnelSectionClasses {
6
6
  highlighted: string;
7
7
  /** Styles applied to the root element if `faded={true}`. */
8
8
  faded: string;
9
+ /** Styles applied to the root element if `variant="filled"`. */
10
+ filled: string;
11
+ /** Styles applied to the root element if `variant="outlined"`. */
12
+ outlined: string;
9
13
  /** Styles applied to the label element. */
10
14
  label: string;
11
15
  /**
@@ -14,5 +18,5 @@ export interface FunnelSectionClasses {
14
18
  */
15
19
  series: string;
16
20
  }
17
- export declare const useUtilityClasses: (props: FunnelSectionProps) => Record<"label" | "highlighted" | "faded" | "root", string>;
21
+ export declare const useUtilityClasses: (props: FunnelSectionProps) => Record<"label" | "filled" | "outlined" | "highlighted" | "faded" | "root", string>;
18
22
  export declare const funnelSectionClasses: FunnelSectionClasses;
@@ -7,14 +7,17 @@ function getFunnelSectionUtilityClass(slot) {
7
7
  export const useUtilityClasses = props => {
8
8
  const {
9
9
  classes,
10
- seriesId
10
+ seriesId,
11
+ variant
11
12
  } = props;
12
13
  const slots = {
13
14
  root: ['root', `series-${seriesId}`],
14
15
  highlighted: ['highlighted'],
15
16
  faded: ['faded'],
17
+ outlined: variant === 'outlined' ? ['outlined'] : [],
18
+ filled: variant === 'filled' ? ['filled'] : [],
16
19
  label: ['label']
17
20
  };
18
21
  return composeClasses(slots, getFunnelSectionUtilityClass, classes);
19
22
  };
20
- export const funnelSectionClasses = generateUtilityClasses('MuiFunnelSection', ['root', 'highlighted', 'faded', 'label', 'series']);
23
+ export const funnelSectionClasses = generateUtilityClasses('MuiFunnelSection', ['root', 'highlighted', 'faded', 'filled', 'outlined', 'label', 'series']);
@@ -1,8 +1,9 @@
1
1
  export { FunnelChart as Unstable_FunnelChart } from "./FunnelChart.js";
2
- export type { FunnelChartProps } from './FunnelChart';
2
+ export type { FunnelChartProps } from "./FunnelChart.js";
3
3
  export * from "./FunnelPlot.js";
4
4
  export * from "./funnel.types.js";
5
5
  export * from "./categoryAxis.types.js";
6
6
  export * from "./funnelSlots.types.js";
7
+ export type { FunnelCurveType } from "./curves/index.js";
7
8
  export { funnelSectionClasses } from "./funnelSectionClasses.js";
8
- export type { FunnelSectionClasses } from './funnelSectionClasses';
9
+ export type { FunnelSectionClasses } from "./funnelSectionClasses.js";
@@ -3,6 +3,7 @@ const getSeriesWithDefaultValues = (seriesData, seriesIndex, colors) => {
3
3
  return _extends({
4
4
  id: seriesData.id ?? `auto-generated-id-${seriesIndex}`
5
5
  }, seriesData, {
6
+ borderRadius: seriesData.borderRadius ?? 8,
6
7
  data: seriesData.data.map((d, index) => _extends({
7
8
  color: colors[index % colors.length]
8
9
  }, d))
@@ -1,11 +1,10 @@
1
1
  import { ChartsOverlayProps } from '@mui/x-charts/ChartsOverlay';
2
2
  import { ChartsAxisProps } from '@mui/x-charts/ChartsAxis';
3
3
  import { ChartsLegendSlotExtension } from '@mui/x-charts/ChartsLegend';
4
- import { ChartsClipPathProps } from '@mui/x-charts/ChartsClipPath';
5
4
  import { ChartsWrapperProps } from '@mui/x-charts/internals';
6
5
  import { ChartsAxisHighlightProps } from '@mui/x-charts/ChartsAxisHighlight';
7
6
  import { FunnelPlotProps } from "./FunnelPlot.js";
8
- import type { FunnelChartProps } from './FunnelChart';
7
+ import type { FunnelChartProps } from "./FunnelChart.js";
9
8
  import { ChartContainerProProps } from "../ChartContainerPro/index.js";
10
9
  /**
11
10
  * A helper function that extracts FunnelChartProps from the input props
@@ -20,10 +19,6 @@ export declare const useFunnelChartProps: (props: FunnelChartProps) => {
20
19
  overlayProps: ChartsOverlayProps;
21
20
  chartsAxisProps: ChartsAxisProps;
22
21
  legendProps: ChartsLegendSlotExtension;
23
- clipPathGroupProps: {
24
- clipPath: string;
25
- };
26
- clipPathProps: ChartsClipPathProps;
27
22
  chartsWrapperProps: Omit<ChartsWrapperProps, "children">;
28
23
  axisHighlightProps: ChartsAxisHighlightProps;
29
24
  children: import("react").ReactNode;
@@ -2,11 +2,11 @@
2
2
 
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["categoryAxis", "series", "width", "height", "margin", "colors", "sx", "children", "slots", "slotProps", "skipAnimation", "loading", "onItemClick", "highlightedItem", "onHighlightChange", "className", "hideLegend", "axisHighlight", "apiRef"];
5
+ const _excluded = ["categoryAxis", "series", "width", "height", "margin", "colors", "sx", "children", "slots", "slotProps", "skipAnimation", "loading", "onItemClick", "highlightedItem", "onHighlightChange", "className", "hideLegend", "axisHighlight", "apiRef", "gap"];
6
6
  import { DEFAULT_MARGINS, DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '@mui/x-charts/constants';
7
- import useId from '@mui/utils/useId';
8
7
  import { defaultizeMargin } from '@mui/x-charts/internals';
9
8
  import { warnOnce } from '@mui/x-internals/warning';
9
+ import { strawberrySkyPalette } from '@mui/x-charts/colorPalettes';
10
10
  function getCategoryAxisConfig(categoryAxis, series, isHorizontal, direction) {
11
11
  const maxSeriesLength = Math.max(...series.map(s => (s.data ?? []).length), 0);
12
12
  const maxSeriesValue = Array.from({
@@ -14,7 +14,7 @@ function getCategoryAxisConfig(categoryAxis, series, isHorizontal, direction) {
14
14
  }, (_, index) => series.reduce((a, s) => a + (s.data?.[index]?.value ?? 0), 0));
15
15
  if (process.env.NODE_ENV !== 'production') {
16
16
  if ((categoryAxis?.position === 'left' || categoryAxis?.position === 'right') && isHorizontal || (categoryAxis?.position === 'top' || categoryAxis?.position === 'bottom') && !isHorizontal) {
17
- warnOnce([`MUI X: the categoryAxis position is set to '${categoryAxis.position}' but the series layout is ${isHorizontal ? 'horizontal' : 'vertical'}.`, `Ensure that the categoryAxis position is set to '${isHorizontal ? 'top' : 'left'}' or '${isHorizontal ? 'bottom' : 'right'}' for ${isHorizontal ? 'horizontal' : 'vertical'} layout.\n`], 'warning');
17
+ warnOnce([`MUI X Charts: the categoryAxis position is set to '${categoryAxis.position}' but the series layout is ${isHorizontal ? 'horizontal' : 'vertical'}.`, `Ensure that the categoryAxis position is set to '${isHorizontal ? 'top' : 'left'}' or '${isHorizontal ? 'bottom' : 'right'}' for ${isHorizontal ? 'horizontal' : 'vertical'} layout.\n`], 'warning');
18
18
  }
19
19
  }
20
20
  const side = isHorizontal ? 'bottom' : 'left';
@@ -84,12 +84,11 @@ export const useFunnelChartProps = props => {
84
84
  onHighlightChange,
85
85
  className,
86
86
  axisHighlight,
87
- apiRef
87
+ apiRef,
88
+ gap
88
89
  } = props,
89
90
  rest = _objectWithoutPropertiesLoose(props, _excluded);
90
91
  const margin = defaultizeMargin(marginProps, DEFAULT_MARGINS);
91
- const id = useId();
92
- const clipPathId = `${id}-clip-path`;
93
92
  const isHorizontal = series.some(s => s.layout === 'horizontal');
94
93
  const valueAxisConfig = {
95
94
  id: isHorizontal ? DEFAULT_Y_AXIS_KEY : DEFAULT_X_AXIS_KEY,
@@ -107,7 +106,7 @@ export const useFunnelChartProps = props => {
107
106
  width,
108
107
  height,
109
108
  margin,
110
- colors,
109
+ colors: colors ?? strawberrySkyPalette,
111
110
  xAxis: [xAxis],
112
111
  yAxis: [yAxis],
113
112
  sx,
@@ -117,6 +116,7 @@ export const useFunnelChartProps = props => {
117
116
  apiRef
118
117
  });
119
118
  const funnelPlotProps = {
119
+ gap,
120
120
  onItemClick,
121
121
  slots,
122
122
  slotProps
@@ -134,12 +134,6 @@ export const useFunnelChartProps = props => {
134
134
  slots,
135
135
  slotProps
136
136
  };
137
- const clipPathGroupProps = {
138
- clipPath: `url(#${clipPathId})`
139
- };
140
- const clipPathProps = {
141
- id: clipPathId
142
- };
143
137
  const chartsWrapperProps = {
144
138
  sx,
145
139
  legendPosition: props.slotProps?.legend?.position,
@@ -152,8 +146,6 @@ export const useFunnelChartProps = props => {
152
146
  overlayProps,
153
147
  chartsAxisProps,
154
148
  legendProps,
155
- clipPathGroupProps,
156
- clipPathProps,
157
149
  chartsWrapperProps,
158
150
  axisHighlightProps,
159
151
  children
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { MakeOptional } from '@mui/x-internals/types';
3
3
  import { ChartsAxisProps } from '@mui/x-charts/ChartsAxis';
4
4
  import { ChartsTooltipProps } from '@mui/x-charts/ChartsTooltip';
5
- import { ChartsAxisSlots, ChartsAxisSlotProps, ChartsXAxisProps, ChartsYAxisProps, AxisConfig } from '@mui/x-charts/internals';
5
+ import { ChartsAxisSlots, ChartsAxisSlotProps, XAxis, YAxis } from '@mui/x-charts/internals';
6
6
  import { ChartsOverlayProps, ChartsOverlaySlotProps, ChartsOverlaySlots } from '@mui/x-charts/ChartsOverlay';
7
7
  import { ChartContainerProProps } from "../ChartContainerPro/index.js";
8
8
  import { HeatmapSeriesType } from "../models/seriesType/heatmap.js";
@@ -25,13 +25,13 @@ export interface HeatmapProps extends Omit<ChartContainerProProps<'heatmap', Hea
25
25
  * If not provided, a default axis config is used.
26
26
  * An array of [[AxisConfig]] objects.
27
27
  */
28
- xAxis: Readonly<MakeOptional<AxisConfig<'band', any, ChartsXAxisProps>, 'id' | 'scaleType'>[]>;
28
+ xAxis: Readonly<Omit<MakeOptional<XAxis<'band'>, 'scaleType'>, 'zoom'>[]>;
29
29
  /**
30
30
  * The configuration of the y-axes.
31
31
  * If not provided, a default axis config is used.
32
32
  * An array of [[AxisConfig]] objects.
33
33
  */
34
- yAxis: Readonly<MakeOptional<AxisConfig<'band', any, ChartsYAxisProps>, 'id' | 'scaleType'>[]>;
34
+ yAxis: Readonly<Omit<MakeOptional<YAxis<'band'>, 'scaleType'>, 'zoom'>[]>;
35
35
  /**
36
36
  * The series to display in the bar chart.
37
37
  * An array of [[HeatmapSeriesType]] objects.
@@ -187,7 +187,7 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
187
187
  * The function called for onClick events.
188
188
  * The second argument contains information about all line/bar elements at the current mouse position.
189
189
  * @param {MouseEvent} event The mouse event recorded on the `<svg/>` element.
190
- * @param {null | AxisData} data The data about the clicked axis and items associated with it.
190
+ * @param {null | ChartsAxisData} data The data about the clicked axis and items associated with it.
191
191
  */
192
192
  onAxisClick: PropTypes.func,
193
193
  /**
@@ -285,16 +285,7 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
285
285
  tickNumber: PropTypes.number,
286
286
  tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
287
287
  tickSize: PropTypes.number,
288
- valueFormatter: PropTypes.func,
289
- zoom: PropTypes.oneOfType([PropTypes.shape({
290
- filterMode: PropTypes.oneOf(['discard', 'keep']),
291
- maxEnd: PropTypes.number,
292
- maxSpan: PropTypes.number,
293
- minSpan: PropTypes.number,
294
- minStart: PropTypes.number,
295
- panning: PropTypes.bool,
296
- step: PropTypes.number
297
- }), PropTypes.bool])
288
+ valueFormatter: PropTypes.func
298
289
  })).isRequired,
299
290
  /**
300
291
  * The configuration of the y-axes.
@@ -352,16 +343,7 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
352
343
  tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
353
344
  tickSize: PropTypes.number,
354
345
  valueFormatter: PropTypes.func,
355
- width: PropTypes.number,
356
- zoom: PropTypes.oneOfType([PropTypes.shape({
357
- filterMode: PropTypes.oneOf(['discard', 'keep']),
358
- maxEnd: PropTypes.number,
359
- maxSpan: PropTypes.number,
360
- minSpan: PropTypes.number,
361
- minStart: PropTypes.number,
362
- panning: PropTypes.bool,
363
- step: PropTypes.number
364
- }), PropTypes.bool])
346
+ width: PropTypes.number
365
347
  })).isRequired,
366
348
  /**
367
349
  * The configuration of the z-axes.
@@ -2,7 +2,13 @@ import * as React from 'react';
2
2
  import { LineChartProps } from '@mui/x-charts/LineChart';
3
3
  import { ChartContainerProProps } from "../ChartContainerPro/index.js";
4
4
  import { LineChartProPluginsSignatures } from "./LineChartPro.plugins.js";
5
- export interface LineChartProProps extends Omit<LineChartProps, 'apiRef'>, Omit<ChartContainerProProps<'line', LineChartProPluginsSignatures>, 'series' | 'plugins' | 'seriesConfig'> {}
5
+ export interface LineChartProProps extends Omit<LineChartProps, 'apiRef'>, Omit<ChartContainerProProps<'line', LineChartProPluginsSignatures>, 'series' | 'plugins' | 'seriesConfig'> {
6
+ /**
7
+ * If true, shows the default chart toolbar.
8
+ * @default false
9
+ */
10
+ showToolbar?: boolean;
11
+ }
6
12
  /**
7
13
  * Demos:
8
14
  *
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["initialZoom", "zoomData", "onZoomChange", "apiRef"];
5
+ const _excluded = ["initialZoom", "zoomData", "onZoomChange", "apiRef", "showToolbar"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import { useThemeProps } from '@mui/material/styles';
@@ -16,6 +16,8 @@ import { ChartsTooltip } from '@mui/x-charts/ChartsTooltip';
16
16
  import { ChartsClipPath } from '@mui/x-charts/ChartsClipPath';
17
17
  import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
18
18
  import { useLineChartProps, ChartsWrapper } from '@mui/x-charts/internals';
19
+ import { ChartZoomSlider } from "../ChartZoomSlider/index.js";
20
+ import { ChartsToolbarPro } from "../ChartsToolbarPro/index.js";
19
21
  import { useChartContainerProProps } from "../ChartContainerPro/useChartContainerProProps.js";
20
22
  import { ChartDataProviderPro } from "../ChartDataProviderPro/index.js";
21
23
  import { LINE_CHART_PRO_PLUGINS } from "./LineChartPro.plugins.js";
@@ -39,7 +41,8 @@ const LineChartPro = /*#__PURE__*/React.forwardRef(function LineChartPro(inProps
39
41
  initialZoom,
40
42
  zoomData,
41
43
  onZoomChange,
42
- apiRef
44
+ apiRef,
45
+ showToolbar
43
46
  } = props,
44
47
  other = _objectWithoutPropertiesLoose(props, _excluded);
45
48
  const {
@@ -71,10 +74,10 @@ const LineChartPro = /*#__PURE__*/React.forwardRef(function LineChartPro(inProps
71
74
  const Tooltip = props.slots?.tooltip ?? ChartsTooltip;
72
75
  return /*#__PURE__*/_jsx(ChartDataProviderPro, _extends({}, chartDataProviderProProps, {
73
76
  children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
74
- children: [!props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
77
+ children: [showToolbar ? /*#__PURE__*/_jsx(ChartsToolbarPro, {}) : null, !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
75
78
  children: [/*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
76
79
  children: [/*#__PURE__*/_jsx(AreaPlot, _extends({}, areaPlotProps)), /*#__PURE__*/_jsx(LinePlot, _extends({}, linePlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
77
- })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx("g", {
80
+ })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx(ChartZoomSlider, {}), /*#__PURE__*/_jsx("g", {
78
81
  "data-drawing-container": true,
79
82
  children: /*#__PURE__*/_jsx(MarkPlot, _extends({}, markPlotProps))
80
83
  }), /*#__PURE__*/_jsx(LineHighlightPlot, _extends({}, lineHighlightPlotProps)), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
@@ -89,6 +92,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
89
92
  // ----------------------------------------------------------------------
90
93
  apiRef: PropTypes.shape({
91
94
  current: PropTypes.shape({
95
+ exportAsImage: PropTypes.func.isRequired,
92
96
  exportAsPrint: PropTypes.func.isRequired,
93
97
  setZoomData: PropTypes.func.isRequired
94
98
  })
@@ -190,7 +194,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
190
194
  * The function called for onClick events.
191
195
  * The second argument contains information about all line/bar elements at the current mouse position.
192
196
  * @param {MouseEvent} event The mouse event recorded on the `<svg/>` element.
193
- * @param {null | AxisData} data The data about the clicked axis and items associated with it.
197
+ * @param {null | ChartsAxisData} data The data about the clicked axis and items associated with it.
194
198
  */
195
199
  onAxisClick: PropTypes.func,
196
200
  /**
@@ -218,6 +222,11 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
218
222
  * An array of [[LineSeriesType]] objects.
219
223
  */
220
224
  series: PropTypes.arrayOf(PropTypes.object).isRequired,
225
+ /**
226
+ * If true, shows the default chart toolbar.
227
+ * @default false
228
+ */
229
+ showToolbar: PropTypes.bool,
221
230
  /**
222
231
  * If `true`, animations are skipped.
223
232
  * @default false
@@ -305,6 +314,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
305
314
  minSpan: PropTypes.number,
306
315
  minStart: PropTypes.number,
307
316
  panning: PropTypes.bool,
317
+ slider: PropTypes.shape({
318
+ enabled: PropTypes.bool
319
+ }),
308
320
  step: PropTypes.number
309
321
  }), PropTypes.bool])
310
322
  }), PropTypes.shape({
@@ -365,6 +377,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
365
377
  minSpan: PropTypes.number,
366
378
  minStart: PropTypes.number,
367
379
  panning: PropTypes.bool,
380
+ slider: PropTypes.shape({
381
+ enabled: PropTypes.bool
382
+ }),
368
383
  step: PropTypes.number
369
384
  }), PropTypes.bool])
370
385
  }), PropTypes.shape({
@@ -420,6 +435,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
420
435
  minSpan: PropTypes.number,
421
436
  minStart: PropTypes.number,
422
437
  panning: PropTypes.bool,
438
+ slider: PropTypes.shape({
439
+ enabled: PropTypes.bool
440
+ }),
423
441
  step: PropTypes.number
424
442
  }), PropTypes.bool])
425
443
  }), PropTypes.shape({
@@ -475,6 +493,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
475
493
  minSpan: PropTypes.number,
476
494
  minStart: PropTypes.number,
477
495
  panning: PropTypes.bool,
496
+ slider: PropTypes.shape({
497
+ enabled: PropTypes.bool
498
+ }),
478
499
  step: PropTypes.number
479
500
  }), PropTypes.bool])
480
501
  }), PropTypes.shape({
@@ -530,6 +551,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
530
551
  minSpan: PropTypes.number,
531
552
  minStart: PropTypes.number,
532
553
  panning: PropTypes.bool,
554
+ slider: PropTypes.shape({
555
+ enabled: PropTypes.bool
556
+ }),
533
557
  step: PropTypes.number
534
558
  }), PropTypes.bool])
535
559
  }), PropTypes.shape({
@@ -585,6 +609,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
585
609
  minSpan: PropTypes.number,
586
610
  minStart: PropTypes.number,
587
611
  panning: PropTypes.bool,
612
+ slider: PropTypes.shape({
613
+ enabled: PropTypes.bool
614
+ }),
588
615
  step: PropTypes.number
589
616
  }), PropTypes.bool])
590
617
  }), PropTypes.shape({
@@ -640,6 +667,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
640
667
  minSpan: PropTypes.number,
641
668
  minStart: PropTypes.number,
642
669
  panning: PropTypes.bool,
670
+ slider: PropTypes.shape({
671
+ enabled: PropTypes.bool
672
+ }),
643
673
  step: PropTypes.number
644
674
  }), PropTypes.bool])
645
675
  }), PropTypes.shape({
@@ -695,6 +725,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
695
725
  minSpan: PropTypes.number,
696
726
  minStart: PropTypes.number,
697
727
  panning: PropTypes.bool,
728
+ slider: PropTypes.shape({
729
+ enabled: PropTypes.bool
730
+ }),
698
731
  step: PropTypes.number
699
732
  }), PropTypes.bool])
700
733
  })]).isRequired),
@@ -762,6 +795,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
762
795
  minSpan: PropTypes.number,
763
796
  minStart: PropTypes.number,
764
797
  panning: PropTypes.bool,
798
+ slider: PropTypes.shape({
799
+ enabled: PropTypes.bool
800
+ }),
765
801
  step: PropTypes.number
766
802
  }), PropTypes.bool])
767
803
  }), PropTypes.shape({
@@ -821,6 +857,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
821
857
  minSpan: PropTypes.number,
822
858
  minStart: PropTypes.number,
823
859
  panning: PropTypes.bool,
860
+ slider: PropTypes.shape({
861
+ enabled: PropTypes.bool
862
+ }),
824
863
  step: PropTypes.number
825
864
  }), PropTypes.bool])
826
865
  }), PropTypes.shape({
@@ -875,6 +914,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
875
914
  minSpan: PropTypes.number,
876
915
  minStart: PropTypes.number,
877
916
  panning: PropTypes.bool,
917
+ slider: PropTypes.shape({
918
+ enabled: PropTypes.bool
919
+ }),
878
920
  step: PropTypes.number
879
921
  }), PropTypes.bool])
880
922
  }), PropTypes.shape({
@@ -929,6 +971,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
929
971
  minSpan: PropTypes.number,
930
972
  minStart: PropTypes.number,
931
973
  panning: PropTypes.bool,
974
+ slider: PropTypes.shape({
975
+ enabled: PropTypes.bool
976
+ }),
932
977
  step: PropTypes.number
933
978
  }), PropTypes.bool])
934
979
  }), PropTypes.shape({
@@ -983,6 +1028,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
983
1028
  minSpan: PropTypes.number,
984
1029
  minStart: PropTypes.number,
985
1030
  panning: PropTypes.bool,
1031
+ slider: PropTypes.shape({
1032
+ enabled: PropTypes.bool
1033
+ }),
986
1034
  step: PropTypes.number
987
1035
  }), PropTypes.bool])
988
1036
  }), PropTypes.shape({
@@ -1037,6 +1085,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
1037
1085
  minSpan: PropTypes.number,
1038
1086
  minStart: PropTypes.number,
1039
1087
  panning: PropTypes.bool,
1088
+ slider: PropTypes.shape({
1089
+ enabled: PropTypes.bool
1090
+ }),
1040
1091
  step: PropTypes.number
1041
1092
  }), PropTypes.bool])
1042
1093
  }), PropTypes.shape({
@@ -1091,6 +1142,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
1091
1142
  minSpan: PropTypes.number,
1092
1143
  minStart: PropTypes.number,
1093
1144
  panning: PropTypes.bool,
1145
+ slider: PropTypes.shape({
1146
+ enabled: PropTypes.bool
1147
+ }),
1094
1148
  step: PropTypes.number
1095
1149
  }), PropTypes.bool])
1096
1150
  }), PropTypes.shape({
@@ -1145,6 +1199,9 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
1145
1199
  minSpan: PropTypes.number,
1146
1200
  minStart: PropTypes.number,
1147
1201
  panning: PropTypes.bool,
1202
+ slider: PropTypes.shape({
1203
+ enabled: PropTypes.bool
1204
+ }),
1148
1205
  step: PropTypes.number
1149
1206
  }), PropTypes.bool])
1150
1207
  })]).isRequired),
@@ -2,7 +2,13 @@ import * as React from 'react';
2
2
  import { ScatterChartProps } from '@mui/x-charts/ScatterChart';
3
3
  import { ChartContainerProProps } from "../ChartContainerPro/ChartContainerPro.js";
4
4
  import { ScatterChartProPluginsSignatures } from "./ScatterChartPro.plugins.js";
5
- export interface ScatterChartProProps extends Omit<ScatterChartProps, 'apiRef'>, Omit<ChartContainerProProps<'scatter', ScatterChartProPluginsSignatures>, 'series' | 'plugins' | 'seriesConfig' | 'onItemClick'> {}
5
+ export interface ScatterChartProProps extends Omit<ScatterChartProps, 'apiRef'>, Omit<ChartContainerProProps<'scatter', ScatterChartProPluginsSignatures>, 'series' | 'plugins' | 'seriesConfig' | 'onItemClick'> {
6
+ /**
7
+ * If true, shows the default chart toolbar.
8
+ * @default false
9
+ */
10
+ showToolbar?: boolean;
11
+ }
6
12
  /**
7
13
  * Demos:
8
14
  *