@mui/x-charts 6.18.0 → 7.0.0-alpha.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 (132) hide show
  1. package/BarChart/BarChart.d.ts +15 -8
  2. package/BarChart/BarChart.js +41 -4
  3. package/BarChart/BarPlot.d.ts +2 -2
  4. package/CHANGELOG.md +212 -5
  5. package/ChartsAxis/ChartsAxis.d.ts +3 -3
  6. package/ChartsAxis/ChartsAxis.js +5 -5
  7. package/ChartsAxis/axisClasses.d.ts +2 -2
  8. package/ChartsLegend/ChartsLegend.d.ts +10 -6
  9. package/ChartsLegend/ChartsLegend.js +137 -2
  10. package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  11. package/ChartsLegend/chartsLegendClasses.js +2 -2
  12. package/ChartsReferenceLine/ChartsReferenceLine.d.ts +10 -0
  13. package/ChartsReferenceLine/ChartsReferenceLine.js +78 -0
  14. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +13 -0
  15. package/ChartsReferenceLine/ChartsXReferenceLine.js +112 -0
  16. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +13 -0
  17. package/ChartsReferenceLine/ChartsYReferenceLine.js +112 -0
  18. package/ChartsReferenceLine/chartsReferenceLineClasses.d.ts +15 -0
  19. package/ChartsReferenceLine/chartsReferenceLineClasses.js +14 -0
  20. package/ChartsReferenceLine/common.d.ts +41 -0
  21. package/ChartsReferenceLine/common.js +27 -0
  22. package/ChartsReferenceLine/index.d.ts +2 -0
  23. package/ChartsReferenceLine/index.js +27 -0
  24. package/ChartsReferenceLine/package.json +6 -0
  25. package/ChartsSurface.d.ts +11 -0
  26. package/ChartsTooltip/ChartsTooltip.d.ts +4 -4
  27. package/ChartsXAxis/ChartsXAxis.js +9 -5
  28. package/ChartsYAxis/ChartsYAxis.js +9 -5
  29. package/LineChart/AreaPlot.d.ts +2 -2
  30. package/LineChart/LineChart.d.ts +18 -11
  31. package/LineChart/LineChart.js +41 -4
  32. package/LineChart/LineHighlightPlot.d.ts +4 -4
  33. package/LineChart/LineHighlightPlot.js +1 -1
  34. package/LineChart/LinePlot.d.ts +2 -2
  35. package/LineChart/MarkPlot.d.ts +4 -4
  36. package/LineChart/MarkPlot.js +2 -1
  37. package/PieChart/PieArcLabelPlot.d.ts +4 -4
  38. package/PieChart/PieArcPlot.d.ts +4 -4
  39. package/PieChart/PieChart.d.ts +8 -8
  40. package/PieChart/PieChart.js +34 -4
  41. package/PieChart/PiePlot.d.ts +6 -6
  42. package/ResponsiveChartContainer/index.d.ts +13 -3
  43. package/ScatterChart/ScatterChart.d.ts +8 -8
  44. package/ScatterChart/ScatterChart.js +34 -4
  45. package/ScatterChart/ScatterPlot.d.ts +4 -4
  46. package/SparkLineChart/SparkLineChart.d.ts +10 -10
  47. package/SparkLineChart/SparkLineChart.js +22 -0
  48. package/context/CartesianContextProvider.d.ts +21 -1
  49. package/context/CartesianContextProvider.js +11 -0
  50. package/context/DrawingProvider.d.ts +18 -0
  51. package/context/DrawingProvider.js +6 -0
  52. package/context/HighlightProvider.d.ts +17 -0
  53. package/context/InteractionProvider.d.ts +6 -0
  54. package/context/SeriesContextProvider.d.ts +5 -0
  55. package/esm/BarChart/BarChart.js +41 -4
  56. package/esm/ChartsAxis/ChartsAxis.js +6 -5
  57. package/esm/ChartsLegend/ChartsLegend.js +140 -4
  58. package/esm/ChartsLegend/chartsLegendClasses.js +1 -1
  59. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  60. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
  61. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
  62. package/esm/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  63. package/esm/ChartsReferenceLine/common.js +20 -0
  64. package/esm/ChartsReferenceLine/index.js +2 -0
  65. package/esm/ChartsXAxis/ChartsXAxis.js +10 -6
  66. package/esm/ChartsYAxis/ChartsYAxis.js +10 -6
  67. package/esm/LineChart/LineChart.js +41 -4
  68. package/esm/LineChart/LineHighlightPlot.js +1 -1
  69. package/esm/LineChart/MarkPlot.js +2 -1
  70. package/esm/PieChart/PieChart.js +34 -4
  71. package/esm/ScatterChart/ScatterChart.js +34 -4
  72. package/esm/SparkLineChart/SparkLineChart.js +22 -0
  73. package/esm/context/CartesianContextProvider.js +11 -0
  74. package/esm/context/DrawingProvider.js +6 -0
  75. package/esm/index.js +2 -0
  76. package/esm/internals/geometry.js +2 -2
  77. package/hooks/useScale.d.ts +2 -2
  78. package/index.d.ts +2 -0
  79. package/index.js +23 -1
  80. package/internals/components/ChartsText.d.ts +1 -1
  81. package/internals/geometry.d.ts +2 -2
  82. package/internals/geometry.js +2 -2
  83. package/internals/isBandScale.d.ts +3 -1
  84. package/internals/utils.d.ts +5 -0
  85. package/legacy/BarChart/BarChart.js +41 -4
  86. package/legacy/ChartsAxis/ChartsAxis.js +6 -5
  87. package/legacy/ChartsLegend/ChartsLegend.js +140 -4
  88. package/legacy/ChartsLegend/chartsLegendClasses.js +1 -1
  89. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  90. package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
  91. package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
  92. package/legacy/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  93. package/legacy/ChartsReferenceLine/common.js +20 -0
  94. package/legacy/ChartsReferenceLine/index.js +2 -0
  95. package/legacy/ChartsXAxis/ChartsXAxis.js +15 -12
  96. package/legacy/ChartsYAxis/ChartsYAxis.js +15 -12
  97. package/legacy/LineChart/LineChart.js +41 -4
  98. package/legacy/LineChart/LineHighlightPlot.js +1 -1
  99. package/legacy/LineChart/MarkPlot.js +2 -1
  100. package/legacy/PieChart/PieChart.js +34 -4
  101. package/legacy/ScatterChart/ScatterChart.js +34 -4
  102. package/legacy/SparkLineChart/SparkLineChart.js +22 -0
  103. package/legacy/context/CartesianContextProvider.js +11 -0
  104. package/legacy/context/DrawingProvider.js +6 -0
  105. package/legacy/index.js +3 -1
  106. package/legacy/internals/geometry.js +2 -2
  107. package/models/axis.d.ts +37 -17
  108. package/models/layout.d.ts +6 -0
  109. package/models/seriesType/common.d.ts +16 -0
  110. package/modern/BarChart/BarChart.js +41 -4
  111. package/modern/ChartsAxis/ChartsAxis.js +5 -5
  112. package/modern/ChartsLegend/ChartsLegend.js +140 -4
  113. package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
  114. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  115. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +104 -0
  116. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +104 -0
  117. package/modern/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  118. package/modern/ChartsReferenceLine/common.js +20 -0
  119. package/modern/ChartsReferenceLine/index.js +2 -0
  120. package/modern/ChartsXAxis/ChartsXAxis.js +9 -5
  121. package/modern/ChartsYAxis/ChartsYAxis.js +9 -5
  122. package/modern/LineChart/LineChart.js +41 -4
  123. package/modern/LineChart/LineHighlightPlot.js +1 -1
  124. package/modern/LineChart/MarkPlot.js +2 -1
  125. package/modern/PieChart/PieChart.js +34 -4
  126. package/modern/ScatterChart/ScatterChart.js +34 -4
  127. package/modern/SparkLineChart/SparkLineChart.js +22 -0
  128. package/modern/context/CartesianContextProvider.js +11 -0
  129. package/modern/context/DrawingProvider.js +6 -0
  130. package/modern/index.js +3 -1
  131. package/modern/internals/geometry.js +2 -2
  132. package/package.json +1 -1
@@ -9,6 +9,7 @@ exports.ChartsLegendRoot = void 0;
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
13
  var _utils = require("@mui/base/utils");
13
14
  var _NoSsr = require("@mui/base/NoSsr");
14
15
  var _utils2 = require("@mui/utils");
@@ -34,7 +35,7 @@ const useUtilityClasses = ownerState => {
34
35
  label: ['label'],
35
36
  series: ['series']
36
37
  };
37
- return (0, _utils2.unstable_composeClasses)(slots, _chartsLegendClasses.getChartsLegendUtilityClass, classes);
38
+ return (0, _utils2.unstable_composeClasses)(slots, _chartsLegendClasses.getLegendUtilityClass, classes);
38
39
  };
39
40
  const ChartsLegendRoot = exports.ChartsLegendRoot = (0, _styles.styled)('g', {
40
41
  name: 'MuiChartsLegend',
@@ -242,6 +243,106 @@ function DefaultChartsLegend(props) {
242
243
  })
243
244
  });
244
245
  }
246
+ process.env.NODE_ENV !== "production" ? DefaultChartsLegend.propTypes = {
247
+ // ----------------------------- Warning --------------------------------
248
+ // | These PropTypes are generated from the TypeScript type definitions |
249
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
250
+ // ----------------------------------------------------------------------
251
+ /**
252
+ * Override or extend the styles applied to the component.
253
+ */
254
+ classes: _propTypes.default.object.isRequired,
255
+ /**
256
+ * The direction of the legend layout.
257
+ * The default depends on the chart.
258
+ */
259
+ direction: _propTypes.default.oneOf(['column', 'row']).isRequired,
260
+ drawingArea: _propTypes.default.shape({
261
+ bottom: _propTypes.default.number.isRequired,
262
+ height: _propTypes.default.number.isRequired,
263
+ left: _propTypes.default.number.isRequired,
264
+ right: _propTypes.default.number.isRequired,
265
+ top: _propTypes.default.number.isRequired,
266
+ width: _propTypes.default.number.isRequired
267
+ }).isRequired,
268
+ /**
269
+ * Set to true to hide the legend.
270
+ */
271
+ hidden: _propTypes.default.bool,
272
+ /**
273
+ * Space between two legend items (in px).
274
+ * @default 10
275
+ */
276
+ itemGap: _propTypes.default.number,
277
+ /**
278
+ * Height of the item mark (in px).
279
+ * @default 20
280
+ */
281
+ itemMarkHeight: _propTypes.default.number,
282
+ /**
283
+ * Width of the item mark (in px).
284
+ * @default 20
285
+ */
286
+ itemMarkWidth: _propTypes.default.number,
287
+ /**
288
+ * Style applied to legend labels.
289
+ * @default theme.typography.subtitle1
290
+ */
291
+ labelStyle: _propTypes.default.object,
292
+ /**
293
+ * Space between the mark and the label (in px).
294
+ * @default 5
295
+ */
296
+ markGap: _propTypes.default.number,
297
+ /**
298
+ * Legend padding (in px).
299
+ * Can either be a single number, or an object with top, left, bottom, right properties.
300
+ * @default 0
301
+ */
302
+ padding: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
303
+ bottom: _propTypes.default.number,
304
+ left: _propTypes.default.number,
305
+ right: _propTypes.default.number,
306
+ top: _propTypes.default.number
307
+ })]),
308
+ position: _propTypes.default.shape({
309
+ horizontal: _propTypes.default.oneOf(['left', 'middle', 'right']).isRequired,
310
+ vertical: _propTypes.default.oneOf(['bottom', 'middle', 'top']).isRequired
311
+ }).isRequired,
312
+ series: _propTypes.default.shape({
313
+ bar: _propTypes.default.shape({
314
+ series: _propTypes.default.object.isRequired,
315
+ seriesOrder: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
316
+ stackingGroups: _propTypes.default.arrayOf(_propTypes.default.shape({
317
+ ids: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
318
+ stackingOffset: _propTypes.default.func.isRequired,
319
+ stackingOrder: _propTypes.default.func.isRequired
320
+ })).isRequired
321
+ }),
322
+ line: _propTypes.default.shape({
323
+ series: _propTypes.default.object.isRequired,
324
+ seriesOrder: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
325
+ stackingGroups: _propTypes.default.arrayOf(_propTypes.default.shape({
326
+ ids: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
327
+ stackingOffset: _propTypes.default.func.isRequired,
328
+ stackingOrder: _propTypes.default.func.isRequired
329
+ })).isRequired
330
+ }),
331
+ pie: _propTypes.default.shape({
332
+ series: _propTypes.default.object.isRequired,
333
+ seriesOrder: _propTypes.default.arrayOf(_propTypes.default.string).isRequired
334
+ }),
335
+ scatter: _propTypes.default.shape({
336
+ series: _propTypes.default.object.isRequired,
337
+ seriesOrder: _propTypes.default.arrayOf(_propTypes.default.string).isRequired
338
+ })
339
+ }).isRequired,
340
+ seriesToDisplay: _propTypes.default.arrayOf(_propTypes.default.shape({
341
+ color: _propTypes.default.string.isRequired,
342
+ id: _propTypes.default.string.isRequired,
343
+ label: _propTypes.default.string.isRequired
344
+ })).isRequired
345
+ } : void 0;
245
346
  function ChartsLegend(inProps) {
246
347
  const props = (0, _styles.useThemeProps)({
247
348
  props: (0, _extends2.default)({}, defaultProps, inProps),
@@ -277,4 +378,38 @@ function ChartsLegend(inProps) {
277
378
  ownerState: {}
278
379
  });
279
380
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(ChartLegendRender, (0, _extends2.default)({}, chartLegendRenderProps));
280
- }
381
+ }
382
+ process.env.NODE_ENV !== "production" ? ChartsLegend.propTypes = {
383
+ // ----------------------------- Warning --------------------------------
384
+ // | These PropTypes are generated from the TypeScript type definitions |
385
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
386
+ // ----------------------------------------------------------------------
387
+ /**
388
+ * Override or extend the styles applied to the component.
389
+ */
390
+ classes: _propTypes.default.object,
391
+ /**
392
+ * The direction of the legend layout.
393
+ * The default depends on the chart.
394
+ */
395
+ direction: _propTypes.default.oneOf(['column', 'row']),
396
+ /**
397
+ * Set to true to hide the legend.
398
+ * @default false
399
+ */
400
+ hidden: _propTypes.default.bool,
401
+ position: _propTypes.default.shape({
402
+ horizontal: _propTypes.default.oneOf(['left', 'middle', 'right']).isRequired,
403
+ vertical: _propTypes.default.oneOf(['bottom', 'middle', 'top']).isRequired
404
+ }),
405
+ /**
406
+ * The props used for each component slot.
407
+ * @default {}
408
+ */
409
+ slotProps: _propTypes.default.object,
410
+ /**
411
+ * Overridable component slots.
412
+ * @default {}
413
+ */
414
+ slots: _propTypes.default.object
415
+ } : void 0;
@@ -13,5 +13,5 @@ export interface ChartsLegendClasses {
13
13
  row: string;
14
14
  }
15
15
  export type ChartsLegendClassKey = keyof ChartsLegendClasses;
16
- export declare function getChartsLegendUtilityClass(slot: string): string;
16
+ export declare function getLegendUtilityClass(slot: string): string;
17
17
  export declare const legendClasses: ChartsLegendClasses;
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getChartsLegendUtilityClass = getChartsLegendUtilityClass;
6
+ exports.getLegendUtilityClass = getLegendUtilityClass;
7
7
  exports.legendClasses = void 0;
8
8
  var _utils = require("@mui/utils");
9
- function getChartsLegendUtilityClass(slot) {
9
+ function getLegendUtilityClass(slot) {
10
10
  return (0, _utils.unstable_generateUtilityClass)('MuiChartsLegend', slot);
11
11
  }
12
12
  const legendClasses = exports.legendClasses = (0, _utils.unstable_generateUtilityClasses)('MuiChartsLegend', ['root', 'series', 'mark', 'label', 'column', 'row']);
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { ChartsXReferenceLineProps } from './ChartsXReferenceLine';
3
+ import { ChartsYReferenceLineProps } from './ChartsYReferenceLine';
4
+ import { XOR } from '../internals/utils';
5
+ type ChartsReferenceLineProps<TValue extends string | number | Date = string | number | Date> = XOR<ChartsXReferenceLineProps<TValue>, ChartsYReferenceLineProps<TValue>>;
6
+ declare function ChartsReferenceLine(props: ChartsReferenceLineProps): React.JSX.Element;
7
+ declare namespace ChartsReferenceLine {
8
+ var propTypes: any;
9
+ }
10
+ export { ChartsReferenceLine };
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ChartsReferenceLine = ChartsReferenceLine;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _ChartsXReferenceLine = require("./ChartsXReferenceLine");
12
+ var _ChartsYReferenceLine = require("./ChartsYReferenceLine");
13
+ var _jsxRuntime = require("react/jsx-runtime");
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); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function ChartsReferenceLine(props) {
17
+ if (props.x !== undefined && props.y !== undefined) {
18
+ throw new Error('MUI-X: The ChartsReferenceLine can not have both `x` and `y` props set.');
19
+ }
20
+ if (props.x === undefined && props.y === undefined) {
21
+ throw new Error('MUI-X: The ChartsReferenceLine should have a value in `x` or `y` prop.');
22
+ }
23
+ if (props.x !== undefined) {
24
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsXReferenceLine.ChartsXReferenceLine, (0, _extends2.default)({}, props));
25
+ }
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsYReferenceLine.ChartsYReferenceLine, (0, _extends2.default)({}, props));
27
+ }
28
+ process.env.NODE_ENV !== "production" ? ChartsReferenceLine.propTypes = {
29
+ // ----------------------------- Warning --------------------------------
30
+ // | These PropTypes are generated from the TypeScript type definitions |
31
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
32
+ // ----------------------------------------------------------------------
33
+ /**
34
+ * The id of the axis used for the reference value.
35
+ * @default The `id` of the first defined axis.
36
+ */
37
+ axisId: _propTypes.default.string,
38
+ /**
39
+ * Override or extend the styles applied to the component.
40
+ */
41
+ classes: _propTypes.default.object,
42
+ /**
43
+ * The label to display along the reference line.
44
+ */
45
+ label: _propTypes.default.string,
46
+ /**
47
+ * The alignment if the label is in the chart drawing area.
48
+ * @default 'middle'
49
+ */
50
+ labelAlign: _propTypes.default.oneOf(['end', 'middle', 'start']),
51
+ /**
52
+ * The style applied to the label.
53
+ */
54
+ labelStyle: _propTypes.default.object,
55
+ /**
56
+ * The style applied to the line.
57
+ */
58
+ lineStyle: _propTypes.default.object,
59
+ /**
60
+ * Additional space arround the label in px.
61
+ * Can be a number or an object `{ x, y }` to distinguish space with the reference line and space with axes.
62
+ * @default 5
63
+ */
64
+ spacing: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
65
+ x: _propTypes.default.number,
66
+ y: _propTypes.default.number
67
+ })]),
68
+ /**
69
+ * The x value associated with the reference line.
70
+ * If defined the reference line will be vertical.
71
+ */
72
+ x: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]),
73
+ /**
74
+ * The y value associated with the reference line.
75
+ * If defined the reference line will be horizontal.
76
+ */
77
+ y: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string])
78
+ } : void 0;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import { CommonChartsReferenceLineProps } from './common';
3
+ import { ChartsReferenceLineClasses } from './chartsReferenceLineClasses';
4
+ export type ChartsXReferenceLineProps<TValue extends string | number | Date = string | number | Date> = CommonChartsReferenceLineProps & {
5
+ /**
6
+ * The x value associated with the reference line.
7
+ * If defined the reference line will be vertical.
8
+ */
9
+ x: TValue;
10
+ };
11
+ export declare function getXReferenceLineClasses(classes?: Partial<ChartsReferenceLineClasses>): Record<"label" | "line" | "root", string>;
12
+ declare function ChartsXReferenceLine(props: ChartsXReferenceLineProps): React.JSX.Element | null;
13
+ export { ChartsXReferenceLine };
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ChartsXReferenceLine = ChartsXReferenceLine;
8
+ exports.getXReferenceLineClasses = getXReferenceLineClasses;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
12
+ var _hooks = require("../hooks");
13
+ var _common = require("./common");
14
+ var _ChartsText = require("../internals/components/ChartsText");
15
+ var _chartsReferenceLineClasses = require("./chartsReferenceLineClasses");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ 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); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ const getTextParams = ({
20
+ top,
21
+ height,
22
+ spacingY,
23
+ labelAlign = 'middle'
24
+ }) => {
25
+ switch (labelAlign) {
26
+ case 'start':
27
+ return {
28
+ y: top + spacingY,
29
+ style: {
30
+ dominantBaseline: 'hanging',
31
+ textAnchor: 'start'
32
+ }
33
+ };
34
+ case 'end':
35
+ return {
36
+ y: top + height - spacingY,
37
+ style: {
38
+ dominantBaseline: 'auto',
39
+ textAnchor: 'start'
40
+ }
41
+ };
42
+ default:
43
+ return {
44
+ y: top + height / 2,
45
+ style: {
46
+ dominantBaseline: 'central',
47
+ textAnchor: 'start'
48
+ }
49
+ };
50
+ }
51
+ };
52
+ function getXReferenceLineClasses(classes) {
53
+ return (0, _composeClasses.default)({
54
+ root: ['root', 'vertical'],
55
+ line: ['line'],
56
+ label: ['label']
57
+ }, _chartsReferenceLineClasses.getReferenceLineUtilityClass, classes);
58
+ }
59
+ let warnedOnce = false;
60
+ function ChartsXReferenceLine(props) {
61
+ const {
62
+ x,
63
+ label = '',
64
+ spacing = 5,
65
+ classes: inClasses,
66
+ labelAlign,
67
+ lineStyle,
68
+ labelStyle,
69
+ axisId
70
+ } = props;
71
+ const {
72
+ top,
73
+ height
74
+ } = (0, _hooks.useDrawingArea)();
75
+ const xAxisScale = (0, _hooks.useXScale)(axisId);
76
+ const xPosition = xAxisScale(x);
77
+ if (xPosition === undefined) {
78
+ if (process.env.NODE_ENV !== 'production') {
79
+ if (!warnedOnce) {
80
+ warnedOnce = true;
81
+ console.error(`MUI X: the value ${x} does not exist in the data of x axis with id ${axisId}.`);
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ const d = `M ${xPosition} ${top} l 0 ${height}`;
87
+ const classes = getXReferenceLineClasses(inClasses);
88
+ const spacingX = typeof spacing === 'object' ? spacing.x ?? 0 : spacing;
89
+ const spacingY = typeof spacing === 'object' ? spacing.y ?? 0 : spacing;
90
+ const textParams = (0, _extends2.default)({
91
+ x: xPosition + spacingX,
92
+ text: label,
93
+ fontSize: 12
94
+ }, getTextParams({
95
+ top,
96
+ height,
97
+ spacingY,
98
+ labelAlign
99
+ }), {
100
+ className: classes.label
101
+ });
102
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_common.ReferenceLineRoot, {
103
+ className: classes.root,
104
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
105
+ d: d,
106
+ className: classes.line,
107
+ style: lineStyle
108
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsText.ChartsText, (0, _extends2.default)({}, textParams, {
109
+ style: (0, _extends2.default)({}, textParams.style, labelStyle)
110
+ }))]
111
+ });
112
+ }
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import { CommonChartsReferenceLineProps } from './common';
3
+ import { ChartsReferenceLineClasses } from './chartsReferenceLineClasses';
4
+ export type ChartsYReferenceLineProps<TValue extends string | number | Date = string | number | Date> = CommonChartsReferenceLineProps & {
5
+ /**
6
+ * The y value associated with the reference line.
7
+ * If defined the reference line will be horizontal.
8
+ */
9
+ y: TValue;
10
+ };
11
+ export declare function getYReferenceLineClasses(classes?: Partial<ChartsReferenceLineClasses>): Record<"label" | "line" | "root", string>;
12
+ declare function ChartsYReferenceLine(props: ChartsYReferenceLineProps): React.JSX.Element | null;
13
+ export { ChartsYReferenceLine };
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ChartsYReferenceLine = ChartsYReferenceLine;
8
+ exports.getYReferenceLineClasses = getYReferenceLineClasses;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
12
+ var _hooks = require("../hooks");
13
+ var _common = require("./common");
14
+ var _ChartsText = require("../internals/components/ChartsText");
15
+ var _chartsReferenceLineClasses = require("./chartsReferenceLineClasses");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ 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); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ const getTextParams = ({
20
+ left,
21
+ width,
22
+ spacingX,
23
+ labelAlign = 'middle'
24
+ }) => {
25
+ switch (labelAlign) {
26
+ case 'start':
27
+ return {
28
+ x: left + spacingX,
29
+ style: {
30
+ dominantBaseline: 'auto',
31
+ textAnchor: 'start'
32
+ }
33
+ };
34
+ case 'end':
35
+ return {
36
+ x: left + width - spacingX,
37
+ style: {
38
+ dominantBaseline: 'auto',
39
+ textAnchor: 'end'
40
+ }
41
+ };
42
+ default:
43
+ return {
44
+ x: left + width / 2,
45
+ style: {
46
+ dominantBaseline: 'auto',
47
+ textAnchor: 'middle'
48
+ }
49
+ };
50
+ }
51
+ };
52
+ let warnedOnce = false;
53
+ function getYReferenceLineClasses(classes) {
54
+ return (0, _composeClasses.default)({
55
+ root: ['root', 'horizontal'],
56
+ line: ['line'],
57
+ label: ['label']
58
+ }, _chartsReferenceLineClasses.getReferenceLineUtilityClass, classes);
59
+ }
60
+ function ChartsYReferenceLine(props) {
61
+ const {
62
+ y,
63
+ label = '',
64
+ spacing = 5,
65
+ classes: inClasses,
66
+ labelAlign,
67
+ lineStyle,
68
+ labelStyle,
69
+ axisId
70
+ } = props;
71
+ const {
72
+ left,
73
+ width
74
+ } = (0, _hooks.useDrawingArea)();
75
+ const yAxisScale = (0, _hooks.useYScale)(axisId);
76
+ const yPosition = yAxisScale(y);
77
+ if (yPosition === undefined) {
78
+ if (process.env.NODE_ENV !== 'production') {
79
+ if (!warnedOnce) {
80
+ warnedOnce = true;
81
+ console.error(`MUI X: the value ${y} does not exist in the data of y axis with id ${axisId}.`);
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ const d = `M ${left} ${yPosition} l ${width} 0`;
87
+ const classes = getYReferenceLineClasses(inClasses);
88
+ const spacingX = typeof spacing === 'object' ? spacing.x ?? 0 : spacing;
89
+ const spacingY = typeof spacing === 'object' ? spacing.y ?? 0 : spacing;
90
+ const textParams = (0, _extends2.default)({
91
+ y: yPosition - spacingY,
92
+ text: label,
93
+ fontSize: 12
94
+ }, getTextParams({
95
+ left,
96
+ width,
97
+ spacingX,
98
+ labelAlign
99
+ }), {
100
+ className: classes.label
101
+ });
102
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_common.ReferenceLineRoot, {
103
+ className: classes.root,
104
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
105
+ d: d,
106
+ className: classes.line,
107
+ style: lineStyle
108
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsText.ChartsText, (0, _extends2.default)({}, textParams, {
109
+ style: (0, _extends2.default)({}, textParams.style, labelStyle)
110
+ }))]
111
+ });
112
+ }
@@ -0,0 +1,15 @@
1
+ export interface ChartsReferenceLineClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ /** Styles applied to the root element if the reference line is vertical. */
5
+ vertical: string;
6
+ /** Styles applied to the root element if the reference line is horizontal. */
7
+ horizontal: string;
8
+ /** Styles applied to the reference line. */
9
+ line: string;
10
+ /** Styles applied to the reference label. */
11
+ label: string;
12
+ }
13
+ export type ChartsReferenceLineClassKey = keyof ChartsReferenceLineClasses;
14
+ export declare function getReferenceLineUtilityClass(slot: string): string;
15
+ export declare const referenceLineClasses: ChartsReferenceLineClasses;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getReferenceLineUtilityClass = getReferenceLineUtilityClass;
8
+ exports.referenceLineClasses = void 0;
9
+ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
10
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
11
+ function getReferenceLineUtilityClass(slot) {
12
+ return (0, _generateUtilityClass.default)('MuiChartsReferenceLine', slot);
13
+ }
14
+ const referenceLineClasses = exports.referenceLineClasses = (0, _generateUtilityClasses.default)('MuiChartsReferenceLine', ['root', 'vertical', 'horizontal', 'line', 'label']);
@@ -0,0 +1,41 @@
1
+ /// <reference types="react" />
2
+ import { ChartsReferenceLineClasses } from './chartsReferenceLineClasses';
3
+ import { ChartsTextStyle } from '../internals/components/ChartsText';
4
+ export type CommonChartsReferenceLineProps = {
5
+ /**
6
+ * The alignment if the label is in the chart drawing area.
7
+ * @default 'middle'
8
+ */
9
+ labelAlign?: 'start' | 'middle' | 'end';
10
+ /**
11
+ * The label to display along the reference line.
12
+ */
13
+ label?: string;
14
+ /**
15
+ * Additional space arround the label in px.
16
+ * Can be a number or an object `{ x, y }` to distinguish space with the reference line and space with axes.
17
+ * @default 5
18
+ */
19
+ spacing?: number | {
20
+ x?: number;
21
+ y?: number;
22
+ };
23
+ /**
24
+ * The id of the axis used for the reference value.
25
+ * @default The `id` of the first defined axis.
26
+ */
27
+ axisId?: string;
28
+ /**
29
+ * The style applied to the label.
30
+ */
31
+ labelStyle?: ChartsTextStyle;
32
+ /**
33
+ * The style applied to the line.
34
+ */
35
+ lineStyle?: React.CSSProperties;
36
+ /**
37
+ * Override or extend the styles applied to the component.
38
+ */
39
+ classes?: Partial<ChartsReferenceLineClasses>;
40
+ };
41
+ export declare const ReferenceLineRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, import("react").SVGProps<SVGGElement>, {}>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ReferenceLineRoot = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _styles = require("@mui/material/styles");
10
+ var _chartsReferenceLineClasses = require("./chartsReferenceLineClasses");
11
+ const ReferenceLineRoot = exports.ReferenceLineRoot = (0, _styles.styled)('g')(({
12
+ theme
13
+ }) => ({
14
+ [`& .${_chartsReferenceLineClasses.referenceLineClasses.line}`]: {
15
+ fill: 'none',
16
+ stroke: (theme.vars || theme).palette.text.primary,
17
+ shapeRendering: 'crispEdges',
18
+ strokeWidth: 1,
19
+ pointerEvents: 'none'
20
+ },
21
+ [`& .${_chartsReferenceLineClasses.referenceLineClasses.label}`]: (0, _extends2.default)({
22
+ fill: (theme.vars || theme).palette.text.primary,
23
+ stroke: 'none',
24
+ pointerEvents: 'none',
25
+ fontSize: 12
26
+ }, theme.typography.body1)
27
+ }));
@@ -0,0 +1,2 @@
1
+ export * from './ChartsReferenceLine';
2
+ export * from './chartsReferenceLineClasses';
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _ChartsReferenceLine = require("./ChartsReferenceLine");
7
+ Object.keys(_ChartsReferenceLine).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _ChartsReferenceLine[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _ChartsReferenceLine[key];
14
+ }
15
+ });
16
+ });
17
+ var _chartsReferenceLineClasses = require("./chartsReferenceLineClasses");
18
+ Object.keys(_chartsReferenceLineClasses).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _chartsReferenceLineClasses[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _chartsReferenceLineClasses[key];
25
+ }
26
+ });
27
+ });
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../esm/ChartsReferenceLine/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }