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.
- package/README.md +24 -30
- package/dist/victory-pie.js +2247 -1956
- package/dist/victory-pie.min.js +1 -1
- package/es/helper-methods.js +26 -19
- package/es/slice.js +34 -4
- package/es/victory-pie.js +12 -6
- package/lib/helper-methods.js +27 -19
- package/lib/slice.js +44 -4
- package/lib/victory-pie.js +12 -6
- package/package.json +2 -2
- package/src/helper-methods.js +62 -34
- package/src/slice.js +50 -7
- package/src/victory-pie.js +79 -49
package/es/helper-methods.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
|
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
|
package/lib/helper-methods.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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: (
|
|
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
|
-
|
|
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", {
|
package/lib/victory-pie.js
CHANGED
|
@@ -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
|
|
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": "
|
|
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": "^
|
|
25
|
+
"victory-core": "^31.2.0"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"version": "nps build-libs && nps build-dists"
|