victory-pie 30.6.1 → 31.2.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.
@@ -1,13 +1,11 @@
1
+ import _isNil from "lodash/isNil";
1
2
  import _isPlainObject from "lodash/isPlainObject";
2
3
  import _isFunction from "lodash/isFunction";
4
+ import _defaults from "lodash/defaults";
3
5
  import _assign from "lodash/assign";
4
6
  import * as d3Shape from "d3-shape";
5
7
  import { Helpers, Data, Style } from "victory-core";
6
8
 
7
- var degreesToRadians = function (degrees) {
8
- return degrees * (Math.PI / 180);
9
- };
10
-
11
9
  var checkForValidText = function (text) {
12
10
  if (text === undefined || text === null) {
13
11
  return text;
@@ -25,7 +23,7 @@ var getColor = function (style, colors, index) {
25
23
  };
26
24
 
27
25
  var getRadius = function (props, padding) {
28
- if (props.radius) {
26
+ if (typeof props.radius === "number") {
29
27
  return props.radius;
30
28
  }
31
29
 
@@ -43,7 +41,7 @@ var getOrigin = function (props, padding) {
43
41
  };
44
42
 
45
43
  var getSlices = function (props, data) {
46
- var layoutFunction = d3Shape.pie().sort(null).startAngle(degreesToRadians(props.startAngle)).endAngle(degreesToRadians(props.endAngle)).padAngle(degreesToRadians(props.padAngle)).value(function (datum) {
44
+ var layoutFunction = d3Shape.pie().sort(null).startAngle(Helpers.degreesToRadians(props.startAngle)).endAngle(Helpers.degreesToRadians(props.endAngle)).padAngle(Helpers.degreesToRadians(props.padAngle)).value(function (datum) {
47
45
  return datum._y;
48
46
  });
49
47
  return layoutFunction(data);
@@ -56,19 +54,17 @@ var getCalculatedValues = function (props) {
56
54
  var style = Helpers.getStyles(props.style, styleObject, "auto", "100%");
57
55
  var colors = Array.isArray(colorScale) ? colorScale : Style.getColorScale(colorScale);
58
56
  var padding = Helpers.getPadding(props);
59
- var radius = getRadius(props, padding);
57
+ var defaultRadius = getRadius(props, padding);
60
58
  var origin = getOrigin(props, padding);
61
59
  var data = Data.getData(props);
62
60
  var slices = getSlices(props, data);
63
- var pathFunction = d3Shape.arc().cornerRadius(props.cornerRadius).outerRadius(radius).innerRadius(props.innerRadius);
64
61
  return {
65
62
  style: style,
66
63
  colors: colors,
67
64
  padding: padding,
68
- radius: radius,
65
+ defaultRadius: defaultRadius,
69
66
  data: data,
70
67
  slices: slices,
71
- pathFunction: pathFunction,
72
68
  origin: origin
73
69
  };
74
70
  };
@@ -155,13 +151,13 @@ var getLabelProps = function (props, dataProps, calculatedValues) {
155
151
  data = dataProps.data,
156
152
  slice = dataProps.slice;
157
153
  var style = calculatedValues.style,
158
- radius = calculatedValues.radius,
154
+ defaultRadius = calculatedValues.defaultRadius,
159
155
  origin = calculatedValues.origin;
160
156
  var labelStyle = Helpers.evaluateStyle(_assign({
161
157
  padding: 0
162
158
  }, style.labels), datum, props.active);
163
159
  var labelRadius = Helpers.evaluateProp(props.labelRadius, datum);
164
- var labelArc = getLabelArc(radius, labelRadius, labelStyle);
160
+ var labelArc = getLabelArc(defaultRadius, labelRadius, labelStyle);
165
161
  var position = getLabelPosition(labelArc, slice, props.labelPosition);
166
162
  var orientation = getLabelOrientation(slice);
167
163
  return {
@@ -185,9 +181,9 @@ export var getBaseProps = function (props, fallbackProps) {
185
181
  var calculatedValues = getCalculatedValues(props);
186
182
  var slices = calculatedValues.slices,
187
183
  style = calculatedValues.style,
188
- pathFunction = calculatedValues.pathFunction,
189
184
  data = calculatedValues.data,
190
- origin = calculatedValues.origin;
185
+ origin = calculatedValues.origin,
186
+ defaultRadius = calculatedValues.defaultRadius;
191
187
  var _props = props,
192
188
  labels = _props.labels,
193
189
  events = _props.events,
@@ -195,28 +191,39 @@ export var getBaseProps = function (props, fallbackProps) {
195
191
  height = _props.height,
196
192
  width = _props.width,
197
193
  standalone = _props.standalone,
198
- name = _props.name;
194
+ name = _props.name,
195
+ innerRadius = _props.innerRadius,
196
+ cornerRadius = _props.cornerRadius,
197
+ padAngle = _props.padAngle;
198
+ var radius = props.radius || defaultRadius;
199
199
  var initialChildProps = {
200
200
  parent: {
201
201
  standalone: standalone,
202
202
  height: height,
203
203
  width: width,
204
204
  slices: slices,
205
- pathFunction: pathFunction,
206
205
  name: name,
207
206
  style: style.parent
208
207
  }
209
208
  };
210
209
  return slices.reduce(function (childProps, slice, index) {
211
- var datum = data[index];
212
- var eventKey = datum.eventKey || index;
210
+ var datum = _defaults({}, data[index], {
211
+ startAngle: Helpers.radiansToDegrees(slice.startAngle),
212
+ endAngle: Helpers.radiansToDegrees(slice.endAngle),
213
+ padAngle: Helpers.radiansToDegrees(slice.padAngle)
214
+ });
215
+
216
+ var eventKey = !_isNil(datum.eventKey) ? datum.eventKey : index;
213
217
  var dataProps = {
214
218
  index: index,
215
219
  slice: slice,
216
- pathFunction: pathFunction,
217
220
  datum: datum,
218
221
  data: data,
219
222
  origin: origin,
223
+ innerRadius: innerRadius,
224
+ radius: radius,
225
+ cornerRadius: cornerRadius,
226
+ padAngle: padAngle,
220
227
  style: getSliceStyle(index, calculatedValues)
221
228
  };
222
229
  childProps[eventKey] = {
package/es/slice.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import _isFunction from "lodash/isFunction";
2
+ import _defaults from "lodash/defaults";
2
3
 
3
4
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
4
5
 
@@ -19,6 +20,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
19
20
  import React from "react";
20
21
  import PropTypes from "prop-types";
21
22
  import { Helpers, CommonProps, Path } from "victory-core";
23
+ import * as d3Shape from "d3-shape";
22
24
 
23
25
  var Slice =
24
26
  /*#__PURE__*/
@@ -32,11 +34,34 @@ function (_React$Component) {
32
34
  }
33
35
 
34
36
  _createClass(Slice, [{
37
+ key: "getPath",
38
+ value: function getPath(props) {
39
+ var datum = props.datum,
40
+ active = props.active,
41
+ slice = props.slice;
42
+
43
+ if (_isFunction(props.pathFunction)) {
44
+ return props.pathFunction(slice);
45
+ }
46
+
47
+ var cornerRadius = Helpers.evaluateProp(props.cornerRadius, datum, active);
48
+ var innerRadius = Helpers.evaluateProp(props.innerRadius, datum, active);
49
+ var radius = Helpers.evaluateProp(props.radius, datum, active);
50
+ var padAngle = Helpers.degreesToRadians(Helpers.evaluateProp(props.padAngle, datum, active));
51
+ var startAngle = Helpers.degreesToRadians(Helpers.evaluateProp(props.sliceStartAngle, datum, active));
52
+ var endAngle = Helpers.degreesToRadians(Helpers.evaluateProp(props.sliceEndAngle, datum, active));
53
+ var pathFunction = d3Shape.arc().cornerRadius(cornerRadius).outerRadius(radius).innerRadius(innerRadius);
54
+ return pathFunction(_defaults({
55
+ startAngle: startAngle,
56
+ endAngle: endAngle,
57
+ padAngle: padAngle
58
+ }, slice));
59
+ }
60
+ }, {
35
61
  key: "render",
36
62
  value: function render() {
37
63
  var _props = this.props,
38
64
  datum = _props.datum,
39
- slice = _props.slice,
40
65
  active = _props.active,
41
66
  role = _props.role,
42
67
  shapeRendering = _props.shapeRendering,
@@ -44,7 +69,6 @@ function (_React$Component) {
44
69
  origin = _props.origin,
45
70
  events = _props.events,
46
71
  pathComponent = _props.pathComponent,
47
- pathFunction = _props.pathFunction,
48
72
  style = _props.style,
49
73
  clipPath = _props.clipPath;
50
74
  var defaultTransform = origin ? "translate(".concat(origin.x, ", ").concat(origin.y, ")") : undefined;
@@ -57,7 +81,7 @@ function (_React$Component) {
57
81
  transform: transform,
58
82
  clipPath: clipPath,
59
83
  style: Helpers.evaluateStyle(style, datum, active),
60
- d: _isFunction(pathFunction) ? pathFunction(slice) : undefined
84
+ d: this.getPath(this.props)
61
85
  });
62
86
  }
63
87
  }]);
@@ -70,10 +94,16 @@ Object.defineProperty(Slice, "propTypes", {
70
94
  enumerable: true,
71
95
  writable: true,
72
96
  value: _objectSpread({}, CommonProps.primitiveProps, {
97
+ cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
73
98
  datum: PropTypes.object,
99
+ innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
100
+ padAngle: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
74
101
  pathComponent: PropTypes.element,
75
102
  pathFunction: PropTypes.func,
76
- slice: PropTypes.object
103
+ radius: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
104
+ slice: PropTypes.object,
105
+ sliceEndAngle: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
106
+ sliceStartAngle: PropTypes.oneOfType([PropTypes.number, PropTypes.func])
77
107
  })
78
108
  });
79
109
  Object.defineProperty(Slice, "defaultProps", {
package/es/victory-pie.js CHANGED
@@ -28,7 +28,6 @@ var fallbackProps = {
28
28
  colorScale: ["#ffffff", "#f0f0f0", "#d9d9d9", "#bdbdbd", "#969696", "#737373", "#525252", "#252525", "#000000"],
29
29
  labelPosition: "centroid"
30
30
  };
31
- var animationWhitelist = ["data", "endAngle", "height", "innerRadius", "cornerRadius", "padAngle", "padding", "colorScale", "startAngle", "style", "width"];
32
31
 
33
32
  var VictoryPie =
34
33
  /*#__PURE__*/
@@ -50,7 +49,8 @@ function (_React$Component) {
50
49
  }, {
51
50
  key: "render",
52
51
  value: function render() {
53
- var role = this.constructor.role;
52
+ var animationWhitelist = VictoryPie.animationWhitelist,
53
+ role = VictoryPie.role;
54
54
  var props = Helpers.modifyProps(this.props, fallbackProps, role);
55
55
 
56
56
  if (this.shouldAnimate()) {
@@ -65,6 +65,12 @@ function (_React$Component) {
65
65
  return VictoryPie;
66
66
  }(React.Component);
67
67
 
68
+ Object.defineProperty(VictoryPie, "animationWhitelist", {
69
+ configurable: true,
70
+ enumerable: true,
71
+ writable: true,
72
+ value: ["data", "endAngle", "height", "innerRadius", "cornerRadius", "padAngle", "padding", "colorScale", "startAngle", "style", "width"]
73
+ });
68
74
  Object.defineProperty(VictoryPie, "displayName", {
69
75
  configurable: true,
70
76
  enumerable: true,
@@ -116,7 +122,7 @@ Object.defineProperty(VictoryPie, "propTypes", {
116
122
  animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
117
123
  colorScale: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.oneOf(["grayscale", "qualitative", "heatmap", "warm", "cool", "red", "green", "blue"])]),
118
124
  containerComponent: PropTypes.element,
119
- cornerRadius: CustomPropTypes.nonNegative,
125
+ cornerRadius: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),
120
126
  data: PropTypes.array,
121
127
  dataComponent: PropTypes.element,
122
128
  endAngle: PropTypes.number,
@@ -135,7 +141,7 @@ Object.defineProperty(VictoryPie, "propTypes", {
135
141
  })),
136
142
  groupComponent: PropTypes.element,
137
143
  height: CustomPropTypes.nonNegative,
138
- innerRadius: CustomPropTypes.nonNegative,
144
+ innerRadius: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),
139
145
  labelComponent: PropTypes.element,
140
146
  labelPosition: PropTypes.oneOf(["startAngle", "centroid", "endAngle"]),
141
147
  labelRadius: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),
@@ -145,14 +151,14 @@ Object.defineProperty(VictoryPie, "propTypes", {
145
151
  x: CustomPropTypes.nonNegative,
146
152
  y: CustomPropTypes.nonNegative
147
153
  }),
148
- padAngle: CustomPropTypes.nonNegative,
154
+ padAngle: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),
149
155
  padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
150
156
  top: PropTypes.number,
151
157
  bottom: PropTypes.number,
152
158
  left: PropTypes.number,
153
159
  right: PropTypes.number
154
160
  })]),
155
- radius: CustomPropTypes.nonNegative,
161
+ radius: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),
156
162
  sharedEvents: PropTypes.shape({
157
163
  events: PropTypes.array,
158
164
  getEventState: PropTypes.func
@@ -5,10 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getBaseProps = void 0;
7
7
 
8
+ var _isNil2 = _interopRequireDefault(require("lodash/isNil"));
9
+
8
10
  var _isPlainObject2 = _interopRequireDefault(require("lodash/isPlainObject"));
9
11
 
10
12
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
11
13
 
14
+ var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
15
+
12
16
  var _assign2 = _interopRequireDefault(require("lodash/assign"));
13
17
 
14
18
  var d3Shape = _interopRequireWildcard(require("d3-shape"));
@@ -19,10 +23,6 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
19
23
 
20
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
25
 
22
- var degreesToRadians = function (degrees) {
23
- return degrees * (Math.PI / 180);
24
- };
25
-
26
26
  var checkForValidText = function (text) {
27
27
  if (text === undefined || text === null) {
28
28
  return text;
@@ -40,7 +40,7 @@ var getColor = function (style, colors, index) {
40
40
  };
41
41
 
42
42
  var getRadius = function (props, padding) {
43
- if (props.radius) {
43
+ if (typeof props.radius === "number") {
44
44
  return props.radius;
45
45
  }
46
46
 
@@ -58,7 +58,7 @@ var getOrigin = function (props, padding) {
58
58
  };
59
59
 
60
60
  var getSlices = function (props, data) {
61
- var layoutFunction = d3Shape.pie().sort(null).startAngle(degreesToRadians(props.startAngle)).endAngle(degreesToRadians(props.endAngle)).padAngle(degreesToRadians(props.padAngle)).value(function (datum) {
61
+ var layoutFunction = d3Shape.pie().sort(null).startAngle(_victoryCore.Helpers.degreesToRadians(props.startAngle)).endAngle(_victoryCore.Helpers.degreesToRadians(props.endAngle)).padAngle(_victoryCore.Helpers.degreesToRadians(props.padAngle)).value(function (datum) {
62
62
  return datum._y;
63
63
  });
64
64
  return layoutFunction(data);
@@ -75,21 +75,19 @@ var getCalculatedValues = function (props) {
75
75
 
76
76
  var padding = _victoryCore.Helpers.getPadding(props);
77
77
 
78
- var radius = getRadius(props, padding);
78
+ var defaultRadius = getRadius(props, padding);
79
79
  var origin = getOrigin(props, padding);
80
80
 
81
81
  var data = _victoryCore.Data.getData(props);
82
82
 
83
83
  var slices = getSlices(props, data);
84
- var pathFunction = d3Shape.arc().cornerRadius(props.cornerRadius).outerRadius(radius).innerRadius(props.innerRadius);
85
84
  return {
86
85
  style: style,
87
86
  colors: colors,
88
87
  padding: padding,
89
- radius: radius,
88
+ defaultRadius: defaultRadius,
90
89
  data: data,
91
90
  slices: slices,
92
- pathFunction: pathFunction,
93
91
  origin: origin
94
92
  };
95
93
  };
@@ -174,7 +172,7 @@ var getLabelProps = function (props, dataProps, calculatedValues) {
174
172
  data = dataProps.data,
175
173
  slice = dataProps.slice;
176
174
  var style = calculatedValues.style,
177
- radius = calculatedValues.radius,
175
+ defaultRadius = calculatedValues.defaultRadius,
178
176
  origin = calculatedValues.origin;
179
177
 
180
178
  var labelStyle = _victoryCore.Helpers.evaluateStyle((0, _assign2.default)({
@@ -183,7 +181,7 @@ var getLabelProps = function (props, dataProps, calculatedValues) {
183
181
 
184
182
  var labelRadius = _victoryCore.Helpers.evaluateProp(props.labelRadius, datum);
185
183
 
186
- var labelArc = getLabelArc(radius, labelRadius, labelStyle);
184
+ var labelArc = getLabelArc(defaultRadius, labelRadius, labelStyle);
187
185
  var position = getLabelPosition(labelArc, slice, props.labelPosition);
188
186
  var orientation = getLabelOrientation(slice);
189
187
  return {
@@ -207,9 +205,9 @@ var getBaseProps = function (props, fallbackProps) {
207
205
  var calculatedValues = getCalculatedValues(props);
208
206
  var slices = calculatedValues.slices,
209
207
  style = calculatedValues.style,
210
- pathFunction = calculatedValues.pathFunction,
211
208
  data = calculatedValues.data,
212
- origin = calculatedValues.origin;
209
+ origin = calculatedValues.origin,
210
+ defaultRadius = calculatedValues.defaultRadius;
213
211
  var _props = props,
214
212
  labels = _props.labels,
215
213
  events = _props.events,
@@ -217,28 +215,38 @@ var getBaseProps = function (props, fallbackProps) {
217
215
  height = _props.height,
218
216
  width = _props.width,
219
217
  standalone = _props.standalone,
220
- name = _props.name;
218
+ name = _props.name,
219
+ innerRadius = _props.innerRadius,
220
+ cornerRadius = _props.cornerRadius,
221
+ padAngle = _props.padAngle;
222
+ var radius = props.radius || defaultRadius;
221
223
  var initialChildProps = {
222
224
  parent: {
223
225
  standalone: standalone,
224
226
  height: height,
225
227
  width: width,
226
228
  slices: slices,
227
- pathFunction: pathFunction,
228
229
  name: name,
229
230
  style: style.parent
230
231
  }
231
232
  };
232
233
  return slices.reduce(function (childProps, slice, index) {
233
- var datum = data[index];
234
- var eventKey = datum.eventKey || index;
234
+ var datum = (0, _defaults2.default)({}, data[index], {
235
+ startAngle: _victoryCore.Helpers.radiansToDegrees(slice.startAngle),
236
+ endAngle: _victoryCore.Helpers.radiansToDegrees(slice.endAngle),
237
+ padAngle: _victoryCore.Helpers.radiansToDegrees(slice.padAngle)
238
+ });
239
+ var eventKey = !(0, _isNil2.default)(datum.eventKey) ? datum.eventKey : index;
235
240
  var dataProps = {
236
241
  index: index,
237
242
  slice: slice,
238
- pathFunction: pathFunction,
239
243
  datum: datum,
240
244
  data: data,
241
245
  origin: origin,
246
+ innerRadius: innerRadius,
247
+ radius: radius,
248
+ cornerRadius: cornerRadius,
249
+ padAngle: padAngle,
242
250
  style: getSliceStyle(index, calculatedValues)
243
251
  };
244
252
  childProps[eventKey] = {
package/lib/slice.js CHANGED
@@ -7,12 +7,18 @@ exports.default = void 0;
7
7
 
8
8
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
9
9
 
10
+ var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
12
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
15
 
14
16
  var _victoryCore = require("victory-core");
15
17
 
18
+ var d3Shape = _interopRequireWildcard(require("d3-shape"));
19
+
20
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
21
+
16
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
23
 
18
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
@@ -43,11 +49,40 @@ function (_React$Component) {
43
49
  }
44
50
 
45
51
  _createClass(Slice, [{
52
+ key: "getPath",
53
+ value: function getPath(props) {
54
+ var datum = props.datum,
55
+ active = props.active,
56
+ slice = props.slice;
57
+
58
+ if ((0, _isFunction2.default)(props.pathFunction)) {
59
+ return props.pathFunction(slice);
60
+ }
61
+
62
+ var cornerRadius = _victoryCore.Helpers.evaluateProp(props.cornerRadius, datum, active);
63
+
64
+ var innerRadius = _victoryCore.Helpers.evaluateProp(props.innerRadius, datum, active);
65
+
66
+ var radius = _victoryCore.Helpers.evaluateProp(props.radius, datum, active);
67
+
68
+ var padAngle = _victoryCore.Helpers.degreesToRadians(_victoryCore.Helpers.evaluateProp(props.padAngle, datum, active));
69
+
70
+ var startAngle = _victoryCore.Helpers.degreesToRadians(_victoryCore.Helpers.evaluateProp(props.sliceStartAngle, datum, active));
71
+
72
+ var endAngle = _victoryCore.Helpers.degreesToRadians(_victoryCore.Helpers.evaluateProp(props.sliceEndAngle, datum, active));
73
+
74
+ var pathFunction = d3Shape.arc().cornerRadius(cornerRadius).outerRadius(radius).innerRadius(innerRadius);
75
+ return pathFunction((0, _defaults2.default)({
76
+ startAngle: startAngle,
77
+ endAngle: endAngle,
78
+ padAngle: padAngle
79
+ }, slice));
80
+ }
81
+ }, {
46
82
  key: "render",
47
83
  value: function render() {
48
84
  var _props = this.props,
49
85
  datum = _props.datum,
50
- slice = _props.slice,
51
86
  active = _props.active,
52
87
  role = _props.role,
53
88
  shapeRendering = _props.shapeRendering,
@@ -55,7 +90,6 @@ function (_React$Component) {
55
90
  origin = _props.origin,
56
91
  events = _props.events,
57
92
  pathComponent = _props.pathComponent,
58
- pathFunction = _props.pathFunction,
59
93
  style = _props.style,
60
94
  clipPath = _props.clipPath;
61
95
  var defaultTransform = origin ? "translate(".concat(origin.x, ", ").concat(origin.y, ")") : undefined;
@@ -68,7 +102,7 @@ function (_React$Component) {
68
102
  transform: transform,
69
103
  clipPath: clipPath,
70
104
  style: _victoryCore.Helpers.evaluateStyle(style, datum, active),
71
- d: (0, _isFunction2.default)(pathFunction) ? pathFunction(slice) : undefined
105
+ d: this.getPath(this.props)
72
106
  });
73
107
  }
74
108
  }]);
@@ -82,10 +116,16 @@ Object.defineProperty(Slice, "propTypes", {
82
116
  enumerable: true,
83
117
  writable: true,
84
118
  value: _objectSpread({}, _victoryCore.CommonProps.primitiveProps, {
119
+ cornerRadius: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.func]),
85
120
  datum: _propTypes.default.object,
121
+ innerRadius: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.func]),
122
+ padAngle: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.func]),
86
123
  pathComponent: _propTypes.default.element,
87
124
  pathFunction: _propTypes.default.func,
88
- slice: _propTypes.default.object
125
+ radius: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.func]),
126
+ slice: _propTypes.default.object,
127
+ sliceEndAngle: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.func]),
128
+ sliceStartAngle: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.func])
89
129
  })
90
130
  });
91
131
  Object.defineProperty(Slice, "defaultProps", {
@@ -41,7 +41,6 @@ var fallbackProps = {
41
41
  colorScale: ["#ffffff", "#f0f0f0", "#d9d9d9", "#bdbdbd", "#969696", "#737373", "#525252", "#252525", "#000000"],
42
42
  labelPosition: "centroid"
43
43
  };
44
- var animationWhitelist = ["data", "endAngle", "height", "innerRadius", "cornerRadius", "padAngle", "padding", "colorScale", "startAngle", "style", "width"];
45
44
 
46
45
  var VictoryPie =
47
46
  /*#__PURE__*/
@@ -63,7 +62,8 @@ function (_React$Component) {
63
62
  }, {
64
63
  key: "render",
65
64
  value: function render() {
66
- var role = this.constructor.role;
65
+ var animationWhitelist = VictoryPie.animationWhitelist,
66
+ role = VictoryPie.role;
67
67
 
68
68
  var props = _victoryCore.Helpers.modifyProps(this.props, fallbackProps, role);
69
69
 
@@ -79,6 +79,12 @@ function (_React$Component) {
79
79
  return VictoryPie;
80
80
  }(_react.default.Component);
81
81
 
82
+ Object.defineProperty(VictoryPie, "animationWhitelist", {
83
+ configurable: true,
84
+ enumerable: true,
85
+ writable: true,
86
+ value: ["data", "endAngle", "height", "innerRadius", "cornerRadius", "padAngle", "padding", "colorScale", "startAngle", "style", "width"]
87
+ });
82
88
  Object.defineProperty(VictoryPie, "displayName", {
83
89
  configurable: true,
84
90
  enumerable: true,
@@ -130,7 +136,7 @@ Object.defineProperty(VictoryPie, "propTypes", {
130
136
  animate: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object]),
131
137
  colorScale: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.oneOf(["grayscale", "qualitative", "heatmap", "warm", "cool", "red", "green", "blue"])]),
132
138
  containerComponent: _propTypes.default.element,
133
- cornerRadius: _victoryCore.PropTypes.nonNegative,
139
+ cornerRadius: _propTypes.default.oneOfType([_victoryCore.PropTypes.nonNegative, _propTypes.default.func]),
134
140
  data: _propTypes.default.array,
135
141
  dataComponent: _propTypes.default.element,
136
142
  endAngle: _propTypes.default.number,
@@ -149,7 +155,7 @@ Object.defineProperty(VictoryPie, "propTypes", {
149
155
  })),
150
156
  groupComponent: _propTypes.default.element,
151
157
  height: _victoryCore.PropTypes.nonNegative,
152
- innerRadius: _victoryCore.PropTypes.nonNegative,
158
+ innerRadius: _propTypes.default.oneOfType([_victoryCore.PropTypes.nonNegative, _propTypes.default.func]),
153
159
  labelComponent: _propTypes.default.element,
154
160
  labelPosition: _propTypes.default.oneOf(["startAngle", "centroid", "endAngle"]),
155
161
  labelRadius: _propTypes.default.oneOfType([_victoryCore.PropTypes.nonNegative, _propTypes.default.func]),
@@ -159,14 +165,14 @@ Object.defineProperty(VictoryPie, "propTypes", {
159
165
  x: _victoryCore.PropTypes.nonNegative,
160
166
  y: _victoryCore.PropTypes.nonNegative
161
167
  }),
162
- padAngle: _victoryCore.PropTypes.nonNegative,
168
+ padAngle: _propTypes.default.oneOfType([_victoryCore.PropTypes.nonNegative, _propTypes.default.func]),
163
169
  padding: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
164
170
  top: _propTypes.default.number,
165
171
  bottom: _propTypes.default.number,
166
172
  left: _propTypes.default.number,
167
173
  right: _propTypes.default.number
168
174
  })]),
169
- radius: _victoryCore.PropTypes.nonNegative,
175
+ radius: _propTypes.default.oneOfType([_victoryCore.PropTypes.nonNegative, _propTypes.default.func]),
170
176
  sharedEvents: _propTypes.default.shape({
171
177
  events: _propTypes.default.array,
172
178
  getEventState: _propTypes.default.func
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "victory-pie",
3
- "version": "30.6.1",
3
+ "version": "31.2.0",
4
4
  "description": "Pie Component for Victory",
5
5
  "keywords": [
6
6
  "data visualization",
@@ -22,7 +22,7 @@
22
22
  "d3-shape": "^1.0.0",
23
23
  "lodash": "^4.17.5",
24
24
  "prop-types": "^15.5.8",
25
- "victory-core": "^30.6.1"
25
+ "victory-core": "^31.2.0"
26
26
  },
27
27
  "scripts": {
28
28
  "version": "nps build-libs && nps build-dists"