gifted-charts-core 0.0.50 → 0.0.51
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/package.json +1 -1
- package/src/PieChart/pro.js +12 -10
- package/src/PieChart/pro.ts +24 -10
package/package.json
CHANGED
package/src/PieChart/pro.js
CHANGED
|
@@ -44,9 +44,9 @@ export var usePiePro = function (props) {
|
|
|
44
44
|
: donut || props.centerLabelComponent
|
|
45
45
|
? 'outward'
|
|
46
46
|
: 'mid';
|
|
47
|
-
var getCoordinates = function (index, additionalValue, addInOnlyStart, addInOnlyEnd) {
|
|
47
|
+
var getCoordinates = function (index, additionalValue, addInOnlyStart, addInOnlyEnd, totalParam) {
|
|
48
48
|
var addedValue = addValues(index - 1) + (addInOnlyEnd ? 0 : additionalValue !== null && additionalValue !== void 0 ? additionalValue : 0);
|
|
49
|
-
var angle = (addedValue / total) * endAngle + startAngle;
|
|
49
|
+
var angle = (addedValue / (totalParam !== null && totalParam !== void 0 ? totalParam : total)) * endAngle + startAngle;
|
|
50
50
|
var startInnerX = radius + Math.cos(angle) * innerRadius;
|
|
51
51
|
var startInnerY = radius - Math.sin(angle) * innerRadius;
|
|
52
52
|
var startOuterX = radius + Math.cos(angle) * radius;
|
|
@@ -54,7 +54,7 @@ export var usePiePro = function (props) {
|
|
|
54
54
|
var value = addValues(index - 1) +
|
|
55
55
|
data[index].value +
|
|
56
56
|
(addInOnlyStart ? 0 : additionalValue !== null && additionalValue !== void 0 ? additionalValue : 0);
|
|
57
|
-
angle = (value / total) * endAngle + startAngle;
|
|
57
|
+
angle = (value / (totalParam !== null && totalParam !== void 0 ? totalParam : total)) * endAngle + startAngle;
|
|
58
58
|
var endOuterX = radius + Math.cos(angle) * radius;
|
|
59
59
|
var endOuterY = radius - Math.sin(angle) * radius;
|
|
60
60
|
var endInnerX = radius + Math.cos(angle) * innerRadius;
|
|
@@ -104,16 +104,16 @@ export var usePiePro = function (props) {
|
|
|
104
104
|
}
|
|
105
105
|
return "M".concat(radius + innerRadius, ",").concat(radius, " h").concat(radius - innerRadius, " ");
|
|
106
106
|
};
|
|
107
|
-
var getPath = function (index) {
|
|
107
|
+
var getPath = function (index, totalParam) {
|
|
108
108
|
var _a;
|
|
109
|
-
var _b = getCoordinates(index), endOuterX = _b.endOuterX, endOuterY = _b.endOuterY;
|
|
110
|
-
var isLargeArc = data[index].value / total > 0.5 ? 1 : 0;
|
|
109
|
+
var _b = getCoordinates(index, 0, false, false, totalParam), endOuterX = _b.endOuterX, endOuterY = _b.endOuterY;
|
|
110
|
+
var isLargeArc = data[index].value / (totalParam !== null && totalParam !== void 0 ? totalParam : total) > 0.5 ? 1 : 0;
|
|
111
111
|
var arc = "A".concat(radius + ((_a = props.strokeWidth) !== null && _a !== void 0 ? _a : 0) / 2, ",").concat(radius, " 0 ").concat(isLargeArc, " 0 ");
|
|
112
112
|
var path = "".concat(arc, " ").concat(endOuterX, ", ").concat(endOuterY, "\n L").concat(radius, ",").concat(radius, " ");
|
|
113
113
|
initial = "M".concat(radius, ",").concat(radius, " L").concat(endOuterX, ",").concat(endOuterY);
|
|
114
114
|
return path;
|
|
115
115
|
};
|
|
116
|
-
var getDonutPath = function (index, item) {
|
|
116
|
+
var getDonutPath = function (index, item, totalParam) {
|
|
117
117
|
var _a;
|
|
118
118
|
var additionalForStart = item.isStartEdgeCurved || item.startEdgeRadius
|
|
119
119
|
? (radius - innerRadius) / (radius / 20)
|
|
@@ -123,8 +123,8 @@ export var usePiePro = function (props) {
|
|
|
123
123
|
: 0;
|
|
124
124
|
var cropAtEnd = !!(index === data.length - 1 &&
|
|
125
125
|
(item.isEndEdgeCurved || item.endEdgeRadius));
|
|
126
|
-
var _b = getCoordinates(index, cropAtEnd ? additionalForEnd : additionalForStart, !cropAtEnd, cropAtEnd), startInnerX = _b.startInnerX, startInnerY = _b.startInnerY, endOuterX = _b.endOuterX, endOuterY = _b.endOuterY, endInnerX = _b.endInnerX, endInnerY = _b.endInnerY;
|
|
127
|
-
var isLargeArc = data[index].value / total > 0.5 ? 1 : 0;
|
|
126
|
+
var _b = getCoordinates(index, cropAtEnd ? additionalForEnd : additionalForStart, !cropAtEnd, cropAtEnd, totalParam), startInnerX = _b.startInnerX, startInnerY = _b.startInnerY, endOuterX = _b.endOuterX, endOuterY = _b.endOuterY, endInnerX = _b.endInnerX, endInnerY = _b.endInnerY;
|
|
127
|
+
var isLargeArc = data[index].value / (totalParam !== null && totalParam !== void 0 ? totalParam : total) > 0.5 ? 1 : 0;
|
|
128
128
|
var innerArc = "A".concat(innerRadius, ",").concat(innerRadius, " 0 ").concat(isLargeArc, " 1 ");
|
|
129
129
|
var outerArc = "A".concat(radius + ((_a = props.strokeWidth) !== null && _a !== void 0 ? _a : 0) / 2, ",").concat(radius, " 0 ").concat(isLargeArc, " 0 ");
|
|
130
130
|
var path = "".concat(outerArc, " ").concat(endOuterX, ", ").concat(endOuterY, "\n L").concat(endInnerX, ",").concat(endInnerY, " M").concat(endInnerX, ",").concat(endInnerY, " ").concat(innerArc, " ").concat(startInnerX, ",").concat(startInnerY);
|
|
@@ -158,7 +158,9 @@ export var usePiePro = function (props) {
|
|
|
158
158
|
: __spreadArray(__spreadArray([], __read(data), false), [{ value: total * 100 }], false);
|
|
159
159
|
var dataForFinalPath = isAnimated ? data : __spreadArray(__spreadArray([], __read(data), false), [{ value: 0 }], false);
|
|
160
160
|
var dInitial = dataForInitialPath.map(function (item, index) {
|
|
161
|
-
return "".concat(initial || getInitial(item), " ").concat(donut
|
|
161
|
+
return "".concat(initial || getInitial(item), " ").concat(donut
|
|
162
|
+
? getDonutPath(index, item, total * 101)
|
|
163
|
+
: getPath(index, total * 101));
|
|
162
164
|
});
|
|
163
165
|
initial = '';
|
|
164
166
|
var dFinal = dataForFinalPath.map(function (item, index) {
|
package/src/PieChart/pro.ts
CHANGED
|
@@ -55,11 +55,12 @@ export const usePiePro = (props: PieChartPropsType): IusePiePro => {
|
|
|
55
55
|
index: number,
|
|
56
56
|
additionalValue?: number,
|
|
57
57
|
addInOnlyStart?: boolean,
|
|
58
|
-
addInOnlyEnd?: boolean
|
|
58
|
+
addInOnlyEnd?: boolean,
|
|
59
|
+
totalParam?: number
|
|
59
60
|
) => {
|
|
60
61
|
const addedValue =
|
|
61
62
|
addValues(index - 1) + (addInOnlyEnd ? 0 : additionalValue ?? 0)
|
|
62
|
-
let angle = (addedValue / total) * endAngle + startAngle
|
|
63
|
+
let angle = (addedValue / (totalParam ?? total)) * endAngle + startAngle
|
|
63
64
|
const startInnerX = radius + Math.cos(angle) * innerRadius
|
|
64
65
|
const startInnerY = radius - Math.sin(angle) * innerRadius
|
|
65
66
|
const startOuterX = radius + Math.cos(angle) * radius
|
|
@@ -69,7 +70,7 @@ export const usePiePro = (props: PieChartPropsType): IusePiePro => {
|
|
|
69
70
|
addValues(index - 1) +
|
|
70
71
|
data[index].value +
|
|
71
72
|
(addInOnlyStart ? 0 : additionalValue ?? 0)
|
|
72
|
-
angle = (value / total) * endAngle + startAngle
|
|
73
|
+
angle = (value / (totalParam ?? total)) * endAngle + startAngle
|
|
73
74
|
|
|
74
75
|
const endOuterX = radius + Math.cos(angle) * radius
|
|
75
76
|
const endOuterY = radius - Math.sin(angle) * radius
|
|
@@ -131,10 +132,16 @@ export const usePiePro = (props: PieChartPropsType): IusePiePro => {
|
|
|
131
132
|
}
|
|
132
133
|
return `M${radius + innerRadius},${radius} h${radius - innerRadius} `
|
|
133
134
|
}
|
|
134
|
-
const getPath = (index: number) => {
|
|
135
|
-
const { endOuterX, endOuterY } = getCoordinates(
|
|
135
|
+
const getPath = (index: number, totalParam?: number) => {
|
|
136
|
+
const { endOuterX, endOuterY } = getCoordinates(
|
|
137
|
+
index,
|
|
138
|
+
0,
|
|
139
|
+
false,
|
|
140
|
+
false,
|
|
141
|
+
totalParam
|
|
142
|
+
)
|
|
136
143
|
|
|
137
|
-
const isLargeArc = data[index].value / total > 0.5 ? 1 : 0
|
|
144
|
+
const isLargeArc = data[index].value / (totalParam ?? total) > 0.5 ? 1 : 0
|
|
138
145
|
|
|
139
146
|
const arc = `A${
|
|
140
147
|
radius + (props.strokeWidth ?? 0) / 2
|
|
@@ -146,7 +153,11 @@ export const usePiePro = (props: PieChartPropsType): IusePiePro => {
|
|
|
146
153
|
|
|
147
154
|
return path
|
|
148
155
|
}
|
|
149
|
-
const getDonutPath = (
|
|
156
|
+
const getDonutPath = (
|
|
157
|
+
index: number,
|
|
158
|
+
item: pieDataItem,
|
|
159
|
+
totalParam?: number
|
|
160
|
+
) => {
|
|
150
161
|
const additionalForStart =
|
|
151
162
|
item.isStartEdgeCurved || item.startEdgeRadius
|
|
152
163
|
? (radius - innerRadius) / (radius / 20)
|
|
@@ -172,10 +183,11 @@ export const usePiePro = (props: PieChartPropsType): IusePiePro => {
|
|
|
172
183
|
index,
|
|
173
184
|
cropAtEnd ? additionalForEnd : additionalForStart,
|
|
174
185
|
!cropAtEnd,
|
|
175
|
-
cropAtEnd
|
|
186
|
+
cropAtEnd,
|
|
187
|
+
totalParam
|
|
176
188
|
)
|
|
177
189
|
|
|
178
|
-
const isLargeArc = data[index].value / total > 0.5 ? 1 : 0
|
|
190
|
+
const isLargeArc = data[index].value / (totalParam ?? total) > 0.5 ? 1 : 0
|
|
179
191
|
|
|
180
192
|
const innerArc = `A${innerRadius},${innerRadius} 0 ${isLargeArc} 1 `
|
|
181
193
|
const outerArc = `A${
|
|
@@ -225,7 +237,9 @@ export const usePiePro = (props: PieChartPropsType): IusePiePro => {
|
|
|
225
237
|
const dInitial = dataForInitialPath.map(
|
|
226
238
|
(item, index) =>
|
|
227
239
|
`${initial || getInitial(item)} ${
|
|
228
|
-
donut
|
|
240
|
+
donut
|
|
241
|
+
? getDonutPath(index, item, total * 101)
|
|
242
|
+
: getPath(index, total * 101)
|
|
229
243
|
}`
|
|
230
244
|
)
|
|
231
245
|
|