@mui/x-charts 7.1.1 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/BarChart/BarChart.js +32 -2
  2. package/BarChart/BarPlot.js +12 -5
  3. package/BarChart/extremums.js +1 -1
  4. package/BarChart/getColor.d.ts +3 -0
  5. package/BarChart/getColor.js +33 -0
  6. package/CHANGELOG.md +211 -0
  7. package/ChartContainer/ChartContainer.js +35 -4
  8. package/ChartsAxis/ChartsAxis.js +4 -4
  9. package/ChartsClipPath/ChartsClipPath.js +2 -2
  10. package/ChartsLegend/ChartsLegend.js +2 -2
  11. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +4 -1
  12. package/ChartsTooltip/ChartsAxisTooltipContent.js +7 -2
  13. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +6 -0
  14. package/ChartsTooltip/ChartsItemTooltipContent.js +15 -1
  15. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +6 -3
  16. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +13 -4
  17. package/ChartsTooltip/utils.d.ts +5 -1
  18. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
  19. package/ChartsXAxis/ChartsXAxis.js +7 -7
  20. package/ChartsYAxis/ChartsYAxis.js +9 -6
  21. package/Gauge/GaugeProvider.js +5 -5
  22. package/LineChart/AnimatedArea.js +6 -5
  23. package/LineChart/AnimatedLine.js +7 -5
  24. package/LineChart/AreaElement.d.ts +1 -0
  25. package/LineChart/AreaElement.js +4 -1
  26. package/LineChart/AreaPlot.js +7 -1
  27. package/LineChart/LineChart.js +32 -2
  28. package/LineChart/LineElement.d.ts +1 -0
  29. package/LineChart/LineElement.js +4 -1
  30. package/LineChart/LineHighlightPlot.js +4 -1
  31. package/LineChart/LinePlot.js +7 -1
  32. package/LineChart/MarkPlot.js +5 -5
  33. package/LineChart/getColor.d.ts +3 -0
  34. package/LineChart/getColor.js +31 -0
  35. package/PieChart/PieChart.js +32 -2
  36. package/PieChart/PiePlot.js +26 -6
  37. package/PieChart/formatter.js +4 -2
  38. package/PieChart/getColor.d.ts +2 -0
  39. package/PieChart/getColor.js +11 -0
  40. package/PieChart/getPieCoordinates.d.ts +7 -0
  41. package/PieChart/getPieCoordinates.js +25 -0
  42. package/PieChart/index.d.ts +1 -0
  43. package/PieChart/index.js +11 -0
  44. package/ResponsiveChartContainer/ResponsiveChartContainer.js +32 -2
  45. package/ScatterChart/Scatter.d.ts +1 -0
  46. package/ScatterChart/Scatter.js +6 -3
  47. package/ScatterChart/ScatterChart.js +32 -2
  48. package/ScatterChart/ScatterPlot.js +3 -0
  49. package/ScatterChart/getColor.d.ts +3 -0
  50. package/ScatterChart/getColor.js +31 -0
  51. package/SparkLineChart/SparkLineChart.js +15 -0
  52. package/context/CartesianContextProvider.d.ts +2 -2
  53. package/context/CartesianContextProvider.js +23 -8
  54. package/esm/BarChart/BarChart.js +32 -2
  55. package/esm/BarChart/BarPlot.js +13 -5
  56. package/esm/BarChart/extremums.js +1 -1
  57. package/esm/BarChart/getColor.js +27 -0
  58. package/esm/ChartContainer/ChartContainer.js +36 -4
  59. package/esm/ChartsAxis/ChartsAxis.js +4 -4
  60. package/esm/ChartsClipPath/ChartsClipPath.js +2 -2
  61. package/esm/ChartsLegend/ChartsLegend.js +2 -2
  62. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +7 -2
  63. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -1
  64. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +6 -3
  65. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +13 -4
  66. package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
  67. package/esm/ChartsXAxis/ChartsXAxis.js +7 -7
  68. package/esm/ChartsYAxis/ChartsYAxis.js +9 -6
  69. package/esm/Gauge/GaugeProvider.js +5 -5
  70. package/esm/LineChart/AnimatedArea.js +6 -5
  71. package/esm/LineChart/AnimatedLine.js +7 -5
  72. package/esm/LineChart/AreaElement.js +4 -1
  73. package/esm/LineChart/AreaPlot.js +7 -1
  74. package/esm/LineChart/LineChart.js +32 -2
  75. package/esm/LineChart/LineElement.js +4 -1
  76. package/esm/LineChart/LineHighlightPlot.js +4 -1
  77. package/esm/LineChart/LinePlot.js +7 -1
  78. package/esm/LineChart/MarkPlot.js +5 -5
  79. package/esm/LineChart/getColor.js +25 -0
  80. package/esm/PieChart/PieChart.js +32 -2
  81. package/esm/PieChart/PiePlot.js +26 -6
  82. package/esm/PieChart/formatter.js +4 -2
  83. package/esm/PieChart/getColor.js +5 -0
  84. package/esm/PieChart/getPieCoordinates.js +19 -0
  85. package/esm/PieChart/index.js +2 -1
  86. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +32 -2
  87. package/esm/ScatterChart/Scatter.js +6 -3
  88. package/esm/ScatterChart/ScatterChart.js +32 -2
  89. package/esm/ScatterChart/ScatterPlot.js +3 -0
  90. package/esm/ScatterChart/getColor.js +25 -0
  91. package/esm/SparkLineChart/SparkLineChart.js +15 -0
  92. package/esm/context/CartesianContextProvider.js +23 -8
  93. package/esm/hooks/index.js +4 -1
  94. package/esm/hooks/useAxisEvents.js +7 -6
  95. package/esm/hooks/useChartId.js +8 -0
  96. package/esm/hooks/useSeries.js +64 -0
  97. package/esm/hooks/useSvgRef.js +9 -0
  98. package/esm/internals/colorGetter.js +22 -0
  99. package/esm/internals/colorScale.js +16 -0
  100. package/esm/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +96 -0
  101. package/esm/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +55 -0
  102. package/esm/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +41 -0
  103. package/esm/internals/components/ChartsAxesGradients/index.js +1 -0
  104. package/esm/models/colorMapping.js +1 -0
  105. package/esm/models/seriesType/index.js +6 -1
  106. package/hooks/index.d.ts +3 -0
  107. package/hooks/index.js +65 -1
  108. package/hooks/useAxisEvents.js +7 -6
  109. package/hooks/useChartId.d.ts +1 -0
  110. package/hooks/useChartId.js +16 -0
  111. package/hooks/useSeries.d.ts +45 -0
  112. package/hooks/useSeries.js +75 -0
  113. package/hooks/useSvgRef.d.ts +2 -0
  114. package/hooks/useSvgRef.js +17 -0
  115. package/hooks/useTicks.d.ts +1 -1
  116. package/index.js +1 -1
  117. package/internals/colorGetter.d.ts +5 -0
  118. package/internals/colorGetter.js +29 -0
  119. package/internals/colorScale.d.ts +5 -0
  120. package/internals/colorScale.js +24 -0
  121. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +3 -0
  122. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +105 -0
  123. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.d.ts +13 -0
  124. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +63 -0
  125. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.d.ts +12 -0
  126. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +48 -0
  127. package/internals/components/ChartsAxesGradients/index.d.ts +1 -0
  128. package/internals/components/ChartsAxesGradients/index.js +16 -0
  129. package/internals/defaultizeColor.d.ts +4 -4
  130. package/internals/defaultizeValueFormatter.d.ts +5 -5
  131. package/internals/getScale.d.ts +2 -2
  132. package/models/axis.d.ts +44 -4
  133. package/models/colorMapping.d.ts +45 -0
  134. package/models/colorMapping.js +5 -0
  135. package/models/index.d.ts +1 -1
  136. package/models/seriesType/common.d.ts +10 -2
  137. package/models/seriesType/index.d.ts +2 -0
  138. package/models/seriesType/index.js +17 -1
  139. package/modern/BarChart/BarChart.js +32 -2
  140. package/modern/BarChart/BarPlot.js +13 -5
  141. package/modern/BarChart/extremums.js +1 -1
  142. package/modern/BarChart/getColor.js +27 -0
  143. package/modern/ChartContainer/ChartContainer.js +36 -4
  144. package/modern/ChartsAxis/ChartsAxis.js +4 -4
  145. package/modern/ChartsClipPath/ChartsClipPath.js +2 -2
  146. package/modern/ChartsLegend/ChartsLegend.js +2 -2
  147. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +7 -2
  148. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -1
  149. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +6 -3
  150. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +13 -4
  151. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
  152. package/modern/ChartsXAxis/ChartsXAxis.js +7 -7
  153. package/modern/ChartsYAxis/ChartsYAxis.js +9 -6
  154. package/modern/Gauge/GaugeProvider.js +5 -5
  155. package/modern/LineChart/AnimatedArea.js +6 -5
  156. package/modern/LineChart/AnimatedLine.js +7 -5
  157. package/modern/LineChart/AreaElement.js +4 -1
  158. package/modern/LineChart/AreaPlot.js +7 -1
  159. package/modern/LineChart/LineChart.js +32 -2
  160. package/modern/LineChart/LineElement.js +4 -1
  161. package/modern/LineChart/LineHighlightPlot.js +4 -1
  162. package/modern/LineChart/LinePlot.js +7 -1
  163. package/modern/LineChart/MarkPlot.js +5 -5
  164. package/modern/LineChart/getColor.js +25 -0
  165. package/modern/PieChart/PieChart.js +32 -2
  166. package/modern/PieChart/PiePlot.js +26 -6
  167. package/modern/PieChart/formatter.js +4 -2
  168. package/modern/PieChart/getColor.js +5 -0
  169. package/modern/PieChart/getPieCoordinates.js +19 -0
  170. package/modern/PieChart/index.js +2 -1
  171. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +32 -2
  172. package/modern/ScatterChart/Scatter.js +6 -3
  173. package/modern/ScatterChart/ScatterChart.js +32 -2
  174. package/modern/ScatterChart/ScatterPlot.js +3 -0
  175. package/modern/ScatterChart/getColor.js +25 -0
  176. package/modern/SparkLineChart/SparkLineChart.js +15 -0
  177. package/modern/context/CartesianContextProvider.js +23 -8
  178. package/modern/hooks/index.js +4 -1
  179. package/modern/hooks/useAxisEvents.js +7 -6
  180. package/modern/hooks/useChartId.js +8 -0
  181. package/modern/hooks/useSeries.js +64 -0
  182. package/modern/hooks/useSvgRef.js +9 -0
  183. package/modern/index.js +1 -1
  184. package/modern/internals/colorGetter.js +22 -0
  185. package/modern/internals/colorScale.js +16 -0
  186. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +96 -0
  187. package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +55 -0
  188. package/modern/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +41 -0
  189. package/modern/internals/components/ChartsAxesGradients/index.js +1 -0
  190. package/modern/models/colorMapping.js +1 -0
  191. package/modern/models/seriesType/index.js +6 -1
  192. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getColor;
7
+ function getColor(series, xAxis, yAxis) {
8
+ const yColorScale = yAxis.colorScale;
9
+ const xColorScale = xAxis.colorScale;
10
+ if (yColorScale) {
11
+ return dataIndex => {
12
+ const value = series.data[dataIndex];
13
+ const color = value === null ? series.color : yColorScale(value);
14
+ if (color === null) {
15
+ return series.color;
16
+ }
17
+ return color;
18
+ };
19
+ }
20
+ if (xColorScale) {
21
+ return dataIndex => {
22
+ const value = xAxis.data?.[dataIndex];
23
+ const color = value === null ? series.color : xColorScale(value);
24
+ if (color === null) {
25
+ return series.color;
26
+ }
27
+ return color;
28
+ };
29
+ }
30
+ return () => series.color;
31
+ }
@@ -343,11 +343,26 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
343
343
  width: _propTypes.default.number,
344
344
  /**
345
345
  * The configuration of the x-axes.
346
- * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
346
+ * If not provided, a default axis config is used.
347
347
  */
348
348
  xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
349
349
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
350
350
  classes: _propTypes.default.object,
351
+ colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
352
+ color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
353
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
354
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
355
+ type: _propTypes.default.oneOf(['continuous']).isRequired
356
+ }), _propTypes.default.shape({
357
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
358
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
359
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
360
+ }), _propTypes.default.shape({
361
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
362
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
363
+ unknownColor: _propTypes.default.string,
364
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
365
+ })]),
351
366
  data: _propTypes.default.array,
352
367
  dataKey: _propTypes.default.string,
353
368
  disableLine: _propTypes.default.bool,
@@ -380,11 +395,26 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
380
395
  })),
381
396
  /**
382
397
  * The configuration of the y-axes.
383
- * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
398
+ * If not provided, a default axis config is used.
384
399
  */
385
400
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
386
401
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
387
402
  classes: _propTypes.default.object,
403
+ colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
404
+ color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
405
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
406
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
407
+ type: _propTypes.default.oneOf(['continuous']).isRequired
408
+ }), _propTypes.default.shape({
409
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
410
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
411
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
412
+ }), _propTypes.default.shape({
413
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
414
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
415
+ unknownColor: _propTypes.default.string,
416
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
417
+ })]),
388
418
  data: _propTypes.default.array,
389
419
  dataKey: _propTypes.default.string,
390
420
  disableLine: _propTypes.default.bool,
@@ -12,6 +12,7 @@ var _DrawingProvider = require("../context/DrawingProvider");
12
12
  var _PieArcPlot = require("./PieArcPlot");
13
13
  var _PieArcLabelPlot = require("./PieArcLabelPlot");
14
14
  var _utils = require("../internals/utils");
15
+ var _getPieCoordinates = require("./getPieCoordinates");
15
16
  var _jsxRuntime = require("react/jsx-runtime");
16
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); }
17
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; }
@@ -42,7 +43,6 @@ function PiePlot(props) {
42
43
  if (seriesData === undefined) {
43
44
  return null;
44
45
  }
45
- const availableRadius = Math.min(width, height) / 2;
46
46
  const {
47
47
  series,
48
48
  seriesOrder
@@ -61,10 +61,19 @@ function PiePlot(props) {
61
61
  faded,
62
62
  highlightScope
63
63
  } = series[seriesId];
64
+ const {
65
+ cx,
66
+ cy,
67
+ availableRadius
68
+ } = (0, _getPieCoordinates.getPieCoordinates)({
69
+ cx: cxParam,
70
+ cy: cyParam
71
+ }, {
72
+ width,
73
+ height
74
+ });
64
75
  const outerRadius = (0, _utils.getPercentageValue)(outerRadiusParam ?? availableRadius, availableRadius);
65
76
  const innerRadius = (0, _utils.getPercentageValue)(innerRadiusParam ?? 0, availableRadius);
66
- const cx = (0, _utils.getPercentageValue)(cxParam ?? '50%', width);
67
- const cy = (0, _utils.getPercentageValue)(cyParam ?? '50%', height);
68
77
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
69
78
  transform: `translate(${left + cx}, ${top + cy})`,
70
79
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PieArcPlot.PieArcPlot, {
@@ -97,11 +106,20 @@ function PiePlot(props) {
97
106
  cy: cyParam,
98
107
  highlightScope
99
108
  } = series[seriesId];
109
+ const {
110
+ cx,
111
+ cy,
112
+ availableRadius
113
+ } = (0, _getPieCoordinates.getPieCoordinates)({
114
+ cx: cxParam,
115
+ cy: cyParam
116
+ }, {
117
+ width,
118
+ height
119
+ });
100
120
  const outerRadius = (0, _utils.getPercentageValue)(outerRadiusParam ?? availableRadius, availableRadius);
101
121
  const innerRadius = (0, _utils.getPercentageValue)(innerRadiusParam ?? 0, availableRadius);
102
122
  const arcLabelRadius = arcLabelRadiusParam === undefined ? (outerRadius + innerRadius) / 2 : (0, _utils.getPercentageValue)(arcLabelRadiusParam, availableRadius);
103
- const cx = (0, _utils.getPercentageValue)(cxParam ?? '50%', width);
104
- const cy = (0, _utils.getPercentageValue)(cyParam ?? '50%', height);
105
123
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
106
124
  transform: `translate(${left + cx}, ${top + cy})`,
107
125
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PieArcLabelPlot.PieArcLabelPlot, {
@@ -115,7 +133,9 @@ function PiePlot(props) {
115
133
  skipAnimation: skipAnimation,
116
134
  arcLabel: arcLabel,
117
135
  arcLabelMinAngle: arcLabelMinAngle,
118
- highlightScope: highlightScope
136
+ highlightScope: highlightScope,
137
+ slots: slots,
138
+ slotProps: slotProps
119
139
  })
120
140
  }, seriesId);
121
141
  })]
@@ -35,8 +35,10 @@ const formatter = params => {
35
35
  }, series[seriesId], {
36
36
  data: series[seriesId].data.map((item, index) => (0, _extends2.default)({}, item, {
37
37
  id: item.id ?? `auto-generated-pie-id-${seriesId}-${index}`
38
- }, arcs[index])).map(item => (0, _extends2.default)({}, item, {
39
- formattedValue: series[seriesId].valueFormatter?.(item) ?? item.value.toLocaleString()
38
+ }, arcs[index])).map((item, index) => (0, _extends2.default)({}, item, {
39
+ formattedValue: series[seriesId].valueFormatter?.(item, {
40
+ dataIndex: index
41
+ }) ?? item.value.toLocaleString()
40
42
  }))
41
43
  });
42
44
  });
@@ -0,0 +1,2 @@
1
+ import { DefaultizedPieSeriesType } from '../models/seriesType/pie';
2
+ export default function getColor(series: DefaultizedPieSeriesType): (dataIndex: number) => string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getColor;
7
+ function getColor(series) {
8
+ return dataIndex => {
9
+ return series.data[dataIndex].color;
10
+ };
11
+ }
@@ -0,0 +1,7 @@
1
+ import { DrawingArea } from '../context/DrawingProvider';
2
+ import { DefaultizedPieSeriesType } from '../models/seriesType/pie';
3
+ export declare function getPieCoordinates(series: Pick<DefaultizedPieSeriesType, 'cx' | 'cy'>, drawing: Pick<DrawingArea, 'width' | 'height'>): {
4
+ cx: number;
5
+ cy: number;
6
+ availableRadius: number;
7
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getPieCoordinates = getPieCoordinates;
7
+ var _utils = require("../internals/utils");
8
+ function getPieCoordinates(series, drawing) {
9
+ const {
10
+ height,
11
+ width
12
+ } = drawing;
13
+ const {
14
+ cx: cxParam,
15
+ cy: cyParam
16
+ } = series;
17
+ const availableRadius = Math.min(width, height) / 2;
18
+ const cx = (0, _utils.getPercentageValue)(cxParam ?? '50%', width);
19
+ const cy = (0, _utils.getPercentageValue)(cyParam ?? '50%', height);
20
+ return {
21
+ cx,
22
+ cy,
23
+ availableRadius
24
+ };
25
+ }
@@ -4,3 +4,4 @@ export * from './PieArcPlot';
4
4
  export * from './PieArcLabelPlot';
5
5
  export * from './PieArc';
6
6
  export * from './PieArcLabel';
7
+ export * from './getPieCoordinates';
package/PieChart/index.js CHANGED
@@ -68,4 +68,15 @@ Object.keys(_PieArcLabel).forEach(function (key) {
68
68
  return _PieArcLabel[key];
69
69
  }
70
70
  });
71
+ });
72
+ var _getPieCoordinates = require("./getPieCoordinates");
73
+ Object.keys(_getPieCoordinates).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _getPieCoordinates[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function () {
79
+ return _getPieCoordinates[key];
80
+ }
81
+ });
71
82
  });
@@ -115,11 +115,26 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
115
115
  width: _propTypes.default.number,
116
116
  /**
117
117
  * The configuration of the x-axes.
118
- * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
118
+ * If not provided, a default axis config is used.
119
119
  */
120
120
  xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
121
121
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
122
122
  classes: _propTypes.default.object,
123
+ colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
124
+ color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
125
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
126
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
127
+ type: _propTypes.default.oneOf(['continuous']).isRequired
128
+ }), _propTypes.default.shape({
129
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
130
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
131
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
132
+ }), _propTypes.default.shape({
133
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
134
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
135
+ unknownColor: _propTypes.default.string,
136
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
137
+ })]),
123
138
  data: _propTypes.default.array,
124
139
  dataKey: _propTypes.default.string,
125
140
  disableLine: _propTypes.default.bool,
@@ -152,11 +167,26 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
152
167
  })),
153
168
  /**
154
169
  * The configuration of the y-axes.
155
- * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
170
+ * If not provided, a default axis config is used.
156
171
  */
157
172
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
158
173
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
159
174
  classes: _propTypes.default.object,
175
+ colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
176
+ color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
177
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
178
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
179
+ type: _propTypes.default.oneOf(['continuous']).isRequired
180
+ }), _propTypes.default.shape({
181
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
182
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
183
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
184
+ }), _propTypes.default.shape({
185
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
186
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
187
+ unknownColor: _propTypes.default.string,
188
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
189
+ })]),
160
190
  data: _propTypes.default.array,
161
191
  dataKey: _propTypes.default.string,
162
192
  disableLine: _propTypes.default.bool,
@@ -7,6 +7,7 @@ export interface ScatterProps {
7
7
  yScale: D3Scale;
8
8
  markerSize: number;
9
9
  color: string;
10
+ colorGetter?: (dataIndex: number) => string;
10
11
  /**
11
12
  * Callback fired when clicking on a scatter item.
12
13
  * @param {MouseEvent} event Mouse event recorded on the `<svg/>` element.
@@ -30,6 +30,7 @@ function Scatter(props) {
30
30
  xScale,
31
31
  yScale,
32
32
  color,
33
+ colorGetter,
33
34
  markerSize,
34
35
  onItemClick
35
36
  } = props;
@@ -72,19 +73,20 @@ function Scatter(props) {
72
73
  isFaded: !isHighlighted && (0, _useInteractionItemProps.getIsFaded)(item, pointCtx, highlightScope),
73
74
  interactionProps: getInteractionItemProps(pointCtx),
74
75
  id: scatterPoint.id,
75
- dataIndex: i
76
+ dataIndex: i,
77
+ color: colorGetter ? colorGetter(i) : color
76
78
  });
77
79
  }
78
80
  }
79
81
  return temp;
80
- }, [xScale, yScale, series.data, series.id, item, highlightScope, getInteractionItemProps]);
82
+ }, [xScale, yScale, series.data, series.id, item, highlightScope, getInteractionItemProps, color, colorGetter]);
81
83
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
82
84
  children: cleanData.map(dataPoint => /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", (0, _extends2.default)({
83
85
  cx: 0,
84
86
  cy: 0,
85
87
  r: (dataPoint.isHighlighted ? 1.2 : 1) * markerSize,
86
88
  transform: `translate(${dataPoint.x}, ${dataPoint.y})`,
87
- fill: color,
89
+ fill: dataPoint.color,
88
90
  opacity: dataPoint.isFaded && 0.3 || 1,
89
91
  onClick: onItemClick && (event => onItemClick(event, {
90
92
  type: 'scatter',
@@ -101,6 +103,7 @@ process.env.NODE_ENV !== "production" ? Scatter.propTypes = {
101
103
  // | To update them edit the TypeScript types and run "yarn proptypes" |
102
104
  // ----------------------------------------------------------------------
103
105
  color: _propTypes.default.string.isRequired,
106
+ colorGetter: _propTypes.default.func,
104
107
  markerSize: _propTypes.default.number.isRequired,
105
108
  /**
106
109
  * Callback fired when clicking on a scatter item.
@@ -336,11 +336,26 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
336
336
  width: _propTypes.default.number,
337
337
  /**
338
338
  * The configuration of the x-axes.
339
- * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
339
+ * If not provided, a default axis config is used.
340
340
  */
341
341
  xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
342
342
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
343
343
  classes: _propTypes.default.object,
344
+ colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
345
+ color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
346
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
347
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
348
+ type: _propTypes.default.oneOf(['continuous']).isRequired
349
+ }), _propTypes.default.shape({
350
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
351
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
352
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
353
+ }), _propTypes.default.shape({
354
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
355
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
356
+ unknownColor: _propTypes.default.string,
357
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
358
+ })]),
344
359
  data: _propTypes.default.array,
345
360
  dataKey: _propTypes.default.string,
346
361
  disableLine: _propTypes.default.bool,
@@ -373,11 +388,26 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
373
388
  })),
374
389
  /**
375
390
  * The configuration of the y-axes.
376
- * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
391
+ * If not provided, a default axis config is used.
377
392
  */
378
393
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
379
394
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
380
395
  classes: _propTypes.default.object,
396
+ colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
397
+ color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
398
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
399
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
400
+ type: _propTypes.default.oneOf(['continuous']).isRequired
401
+ }), _propTypes.default.shape({
402
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
403
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
404
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
405
+ }), _propTypes.default.shape({
406
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
407
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
408
+ unknownColor: _propTypes.default.string,
409
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
410
+ })]),
381
411
  data: _propTypes.default.array,
382
412
  dataKey: _propTypes.default.string,
383
413
  disableLine: _propTypes.default.bool,
@@ -11,6 +11,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _Scatter = require("./Scatter");
12
12
  var _SeriesContextProvider = require("../context/SeriesContextProvider");
13
13
  var _CartesianContextProvider = require("../context/CartesianContextProvider");
14
+ var _getColor = _interopRequireDefault(require("./getColor"));
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -57,12 +58,14 @@ function ScatterPlot(props) {
57
58
  markerSize,
58
59
  color
59
60
  } = series[seriesId];
61
+ const colorGetter = (0, _getColor.default)(series[seriesId], xAxis[xAxisKey ?? defaultXAxisId], yAxis[yAxisKey ?? defaultYAxisId]);
60
62
  const xScale = xAxis[xAxisKey ?? defaultXAxisId].scale;
61
63
  const yScale = yAxis[yAxisKey ?? defaultYAxisId].scale;
62
64
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(ScatterItems, (0, _extends2.default)({
63
65
  xScale: xScale,
64
66
  yScale: yScale,
65
67
  color: color,
68
+ colorGetter: colorGetter,
66
69
  markerSize: markerSize ?? 4,
67
70
  series: series[seriesId],
68
71
  onItemClick: onItemClick
@@ -0,0 +1,3 @@
1
+ import { AxisDefaultized } from '../models/axis';
2
+ import { DefaultizedScatterSeriesType } from '../models/seriesType/scatter';
3
+ export default function getColor(series: DefaultizedScatterSeriesType, xAxis: AxisDefaultized, yAxis: AxisDefaultized): (dataIndex: number) => string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getColor;
7
+ function getColor(series, xAxis, yAxis) {
8
+ const yColorScale = yAxis.colorScale;
9
+ const xColorScale = xAxis.colorScale;
10
+ if (yColorScale) {
11
+ return dataIndex => {
12
+ const value = series.data[dataIndex];
13
+ const color = value === null ? series.color : yColorScale(value.y);
14
+ if (color === null) {
15
+ return series.color;
16
+ }
17
+ return color;
18
+ };
19
+ }
20
+ if (xColorScale) {
21
+ return dataIndex => {
22
+ const value = series.data[dataIndex];
23
+ const color = value === null ? series.color : xColorScale(value.x);
24
+ if (color === null) {
25
+ return series.color;
26
+ }
27
+ return color;
28
+ };
29
+ }
30
+ return () => series.color;
31
+ }
@@ -234,6 +234,21 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
234
234
  xAxis: _propTypes.default.shape({
235
235
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
236
236
  classes: _propTypes.default.object,
237
+ colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
238
+ color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
239
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
240
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
241
+ type: _propTypes.default.oneOf(['continuous']).isRequired
242
+ }), _propTypes.default.shape({
243
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
244
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
245
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
246
+ }), _propTypes.default.shape({
247
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
248
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
249
+ unknownColor: _propTypes.default.string,
250
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
251
+ })]),
237
252
  data: _propTypes.default.array,
238
253
  dataKey: _propTypes.default.string,
239
254
  disableLine: _propTypes.default.bool,
@@ -6,12 +6,12 @@ import { MakeOptional } from '../models/helpers';
6
6
  export type CartesianContextProviderProps = {
7
7
  /**
8
8
  * The configuration of the x-axes.
9
- * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
9
+ * If not provided, a default axis config is used.
10
10
  */
11
11
  xAxis?: MakeOptional<AxisConfig, 'id'>[];
12
12
  /**
13
13
  * The configuration of the y-axes.
14
- * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
14
+ * If not provided, a default axis config is used.
15
15
  */
16
16
  yAxis?: MakeOptional<AxisConfig, 'id'>[];
17
17
  /**
@@ -14,10 +14,11 @@ var _extremums2 = require("../ScatterChart/extremums");
14
14
  var _extremums3 = require("../LineChart/extremums");
15
15
  var _axis = require("../models/axis");
16
16
  var _getScale = require("../internals/getScale");
17
- var _DrawingProvider = require("./DrawingProvider");
18
17
  var _SeriesContextProvider = require("./SeriesContextProvider");
19
18
  var _constants = require("../constants");
20
19
  var _useTicks = require("../hooks/useTicks");
20
+ var _useDrawingArea = require("../hooks/useDrawingArea");
21
+ var _colorScale = require("../internals/colorScale");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
23
  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); }
23
24
  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; }
@@ -52,7 +53,7 @@ function CartesianContextProvider(props) {
52
53
  children
53
54
  } = props;
54
55
  const formattedSeries = React.useContext(_SeriesContextProvider.SeriesContext);
55
- const drawingArea = React.useContext(_DrawingProvider.DrawingContext);
56
+ const drawingArea = (0, _useDrawingArea.useDrawingArea)();
56
57
  const xAxis = React.useMemo(() => inXAxis?.map(axisConfig => {
57
58
  const dataKey = axisConfig.dataKey;
58
59
  if (dataKey === undefined || axisConfig.data !== undefined) {
@@ -122,13 +123,19 @@ function CartesianContextProvider(props) {
122
123
  barGapRatio
123
124
  }, axis, {
124
125
  scale: (0, _d3Scale.scaleBand)(axis.data, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
125
- tickNumber: axis.data.length
126
+ tickNumber: axis.data.length,
127
+ colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? (0, _colorScale.getOrdinalColorScale)((0, _extends2.default)({
128
+ values: axis.data
129
+ }, axis.colorMap)) : (0, _colorScale.getColorScale)(axis.colorMap))
126
130
  });
127
131
  }
128
132
  if ((0, _axis.isPointScaleConfig)(axis)) {
129
133
  completedXAxis[axis.id] = (0, _extends2.default)({}, axis, {
130
134
  scale: (0, _d3Scale.scalePoint)(axis.data, range),
131
- tickNumber: axis.data.length
135
+ tickNumber: axis.data.length,
136
+ colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? (0, _colorScale.getOrdinalColorScale)((0, _extends2.default)({
137
+ values: axis.data
138
+ }, axis.colorMap)) : (0, _colorScale.getColorScale)(axis.colorMap))
132
139
  });
133
140
  }
134
141
  if (axis.scaleType === 'band' || axis.scaleType === 'point') {
@@ -147,7 +154,8 @@ function CartesianContextProvider(props) {
147
154
  completedXAxis[axis.id] = (0, _extends2.default)({}, axis, {
148
155
  scaleType,
149
156
  scale: niceScale.domain(domain),
150
- tickNumber
157
+ tickNumber,
158
+ colorScale: axis.colorMap && (0, _colorScale.getColorScale)(axis.colorMap)
151
159
  });
152
160
  });
153
161
  const allYAxis = [...(yAxis?.map((axis, index) => (0, _extends2.default)({
@@ -170,13 +178,19 @@ function CartesianContextProvider(props) {
170
178
  barGapRatio: 0
171
179
  }, axis, {
172
180
  scale: (0, _d3Scale.scaleBand)(axis.data, [range[1], range[0]]).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
173
- tickNumber: axis.data.length
181
+ tickNumber: axis.data.length,
182
+ colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? (0, _colorScale.getOrdinalColorScale)((0, _extends2.default)({
183
+ values: axis.data
184
+ }, axis.colorMap)) : (0, _colorScale.getColorScale)(axis.colorMap))
174
185
  });
175
186
  }
176
187
  if ((0, _axis.isPointScaleConfig)(axis)) {
177
188
  completedYAxis[axis.id] = (0, _extends2.default)({}, axis, {
178
189
  scale: (0, _d3Scale.scalePoint)(axis.data, [range[1], range[0]]),
179
- tickNumber: axis.data.length
190
+ tickNumber: axis.data.length,
191
+ colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? (0, _colorScale.getOrdinalColorScale)((0, _extends2.default)({
192
+ values: axis.data
193
+ }, axis.colorMap)) : (0, _colorScale.getColorScale)(axis.colorMap))
180
194
  });
181
195
  }
182
196
  if (axis.scaleType === 'band' || axis.scaleType === 'point') {
@@ -195,7 +209,8 @@ function CartesianContextProvider(props) {
195
209
  completedYAxis[axis.id] = (0, _extends2.default)({}, axis, {
196
210
  scaleType,
197
211
  scale: niceScale.domain(domain),
198
- tickNumber
212
+ tickNumber,
213
+ colorScale: axis.colorMap && (0, _colorScale.getColorScale)(axis.colorMap)
199
214
  });
200
215
  });
201
216
  return {