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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gifted-charts-core",
3
- "version": "0.0.50",
3
+ "version": "0.0.51",
4
4
  "description": "Mathematical and logical utilities used by react-gifted-charts and react-native-gifted-charts",
5
5
  "main": "./src/index.js",
6
6
  "files": [
@@ -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 ? getDonutPath(index, item) : getPath(index));
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) {
@@ -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(index)
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 = (index: number, item: pieDataItem) => {
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 ? getDonutPath(index, item) : getPath(index)
240
+ donut
241
+ ? getDonutPath(index, item, total * 101)
242
+ : getPath(index, total * 101)
229
243
  }`
230
244
  )
231
245