gifted-charts-core 0.1.58 → 0.1.59

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 CHANGED
@@ -2,3 +2,13 @@ This library contains the common code used by [react-native-gifted-charts](https
2
2
 
3
3
 
4
4
  ![Gifted charts](https://raw.githubusercontent.com/Abhinandan-Kushwaha/react-native-gifted-charts/db0b1034ed869c87db66998efb8588da76c7439a/docs/dev/gifted-charts-architecture.drawio.svg)
5
+
6
+ ## Contributors
7
+
8
+ Thanks to these awesome contributors who make gifted-charts possible.
9
+ <br /><br />
10
+
11
+ <a href="https://github.com/Abhinandan-Kushwaha/gifted-charts-core/graphs/contributors">
12
+ <img src="https://contrib.rocks/image?repo=Abhinandan-Kushwaha/gifted-charts-core" />
13
+ </a>
14
+ <br/><br/>
@@ -417,4 +417,5 @@ export declare const useLineChart: (props: extendedLineChartPropsType) => {
417
417
  renderTooltip4: Function | undefined;
418
418
  renderTooltip5: Function | undefined;
419
419
  renderTooltipSecondary: Function | undefined;
420
+ pointerItemLocal: any[];
420
421
  };
@@ -39,8 +39,8 @@ import { AxesAndRulesDefaults, LineDefaults, SEGMENT_END, SEGMENT_START, chartTy
39
39
  import { computeMaxAndMinItems, getAllArrowProperties, getArrowPoints, getAxesAndRulesProps, getCurvePathWithSegments, getExtendedContainerHeightWithPadding, getLineSegmentsDueToNoExtrapolation, getLineSegmentsForMissingValues, getMaxValue, getNoOfSections, getPathWithHighlight, getSanitisedData, getSecondaryDataWithOffsetIncluded, getSegmentString, indexOfFirstNonZeroDigit, svgPath } from '../utils';
40
40
  import { EdgePosition } from '../utils/types';
41
41
  export var useLineChart = function (props) {
42
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, _124, _125, _126, _127, _128, _129, _130, _131, _132, _133, _134, _135, _136, _137, _138, _139, _140, _141, _142, _143, _144, _145, _146, _147, _148, _149, _150, _151, _152, _153, _154, _155, _156, _157, _158, _159, _160, _161, _162, _163, _164, _165, _166, _167, _168, _169, _170, _171, _172, _173, _174, _175, _176, _177, _178, _179, _180, _181, _182, _183, _184, _185, _186, _187, _188, _189, _190, _191, _192, _193, _194, _195, _196, _197, _198, _199, _200, _201, _202, _203, _204, _205, _206, _207, _208, _209, _210, _211, _212, _213, _214, _215, _216, _217, _218, _219, _220, _221, _222, _223, _224, _225, _226, _227, _228, _229, _230, _231, _232, _233, _234, _235, _236, _237, _238, _239, _240, _241, _242, _243, _244, _245, _246, _247, _248, _249, _250, _251, _252, _253, _254, _255, _256, _257, _258, _259, _260, _261, _262, _263, _264, _265, _266, _267, _268, _269, _270, _271, _272, _273, _274, _275, _276, _277, _278, _279, _280, _281, _282, _283, _284, _285, _286, _287, _288, _289, _290, _291, _292, _293, _294, _295, _296, _297, _298, _299, _300, _301, _302, _303, _304, _305, _306, _307, _308, _309, _310, _311, _312, _313, _314, _315, _316, _317, _318, _319, _320, _321, _322, _323, _324, _325, _326;
43
- var showDataPointsForMissingValues = props.showDataPointsForMissingValues, _327 = props.interpolateMissingValues, interpolateMissingValues = _327 === void 0 ? true : _327, _328 = props.extrapolateMissingValues, extrapolateMissingValues = _328 === void 0 ? true : _328, yAxisOffset = props.yAxisOffset, parentWidth = props.parentWidth, negativeStepValue = props.negativeStepValue, renderTooltip = props.renderTooltip, _329 = props.renderTooltip1, renderTooltip1 = _329 === void 0 ? props.renderTooltip : _329, _330 = props.renderTooltip2, renderTooltip2 = _330 === void 0 ? props.renderTooltip : _330, _331 = props.renderTooltip3, renderTooltip3 = _331 === void 0 ? props.renderTooltip : _331, _332 = props.renderTooltip4, renderTooltip4 = _332 === void 0 ? props.renderTooltip : _332, _333 = props.renderTooltip5, renderTooltip5 = _333 === void 0 ? props.renderTooltip : _333, _334 = props.renderTooltipSecondary, renderTooltipSecondary = _334 === void 0 ? props.renderTooltip : _334;
42
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, _124, _125, _126, _127, _128, _129, _130, _131, _132, _133, _134, _135, _136, _137, _138, _139, _140, _141, _142, _143, _144, _145, _146, _147, _148, _149, _150, _151, _152, _153, _154, _155, _156, _157, _158, _159, _160, _161, _162, _163, _164, _165, _166, _167, _168, _169, _170, _171, _172, _173, _174, _175, _176, _177, _178, _179, _180, _181, _182, _183, _184, _185, _186, _187, _188, _189, _190, _191, _192, _193, _194, _195, _196, _197, _198, _199, _200, _201, _202, _203, _204, _205, _206, _207, _208, _209, _210, _211, _212, _213, _214, _215, _216, _217, _218, _219, _220, _221, _222, _223, _224, _225, _226, _227, _228, _229, _230, _231, _232, _233, _234, _235, _236, _237, _238, _239, _240, _241, _242, _243, _244, _245, _246, _247, _248, _249, _250, _251, _252, _253, _254, _255, _256, _257, _258, _259, _260, _261, _262, _263, _264, _265, _266, _267, _268, _269, _270, _271, _272, _273, _274, _275, _276, _277, _278, _279, _280, _281, _282, _283, _284, _285, _286, _287, _288, _289, _290, _291, _292, _293, _294, _295, _296, _297, _298, _299, _300, _301, _302, _303, _304, _305, _306, _307, _308, _309, _310, _311, _312, _313, _314, _315, _316, _317, _318, _319, _320, _321, _322, _323, _324, _325, _326, _327, _328, _329, _330, _331, _332, _333, _334, _335, _336;
43
+ var showDataPointsForMissingValues = props.showDataPointsForMissingValues, _337 = props.interpolateMissingValues, interpolateMissingValues = _337 === void 0 ? true : _337, _338 = props.extrapolateMissingValues, extrapolateMissingValues = _338 === void 0 ? true : _338, yAxisOffset = props.yAxisOffset, parentWidth = props.parentWidth, negativeStepValue = props.negativeStepValue, renderTooltip = props.renderTooltip, _339 = props.renderTooltip1, renderTooltip1 = _339 === void 0 ? props.renderTooltip : _339, _340 = props.renderTooltip2, renderTooltip2 = _340 === void 0 ? props.renderTooltip : _340, _341 = props.renderTooltip3, renderTooltip3 = _341 === void 0 ? props.renderTooltip : _341, _342 = props.renderTooltip4, renderTooltip4 = _342 === void 0 ? props.renderTooltip : _342, _343 = props.renderTooltip5, renderTooltip5 = _343 === void 0 ? props.renderTooltip : _343, _344 = props.renderTooltipSecondary, renderTooltipSecondary = _344 === void 0 ? props.renderTooltip : _344;
44
44
  var lastLineNumber = 1;
45
45
  if (props.secondaryData) {
46
46
  lastLineNumber = 6667; // lastLineNumber is 6667 for a secondary line, so the index or key of the secondary line is 6666
@@ -63,48 +63,48 @@ export var useLineChart = function (props) {
63
63
  // because in absence of extrapolation we don't want the chart to unnecessarily show the 4th quadrant
64
64
  var curvature = (_l = props.curvature) !== null && _l !== void 0 ? _l : LineDefaults.curvature;
65
65
  var curveType = (_m = props.curveType) !== null && _m !== void 0 ? _m : LineDefaults.curveType;
66
- var _335 = __read(useState(0), 2), scrollX = _335[0], setScrollX = _335[1];
67
- var _336 = __read(useState(''), 2), arrow1Points = _336[0], setArrow1Points = _336[1];
68
- var _337 = __read(useState(''), 2), arrow2Points = _337[0], setArrow2Points = _337[1];
69
- var _338 = __read(useState(''), 2), arrow3Points = _338[0], setArrow3Points = _338[1];
70
- var _339 = __read(useState(''), 2), arrow4Points = _339[0], setArrow4Points = _339[1];
71
- var _340 = __read(useState(''), 2), arrow5Points = _340[0], setArrow5Points = _340[1];
72
- var _341 = __read(useState(''), 2), secondaryArrowPoints = _341[0], setSecondaryArrowPoints = _341[1];
73
- var _342 = __read(useState(-1), 2), pointerIndex = _342[0], setPointerIndex = _342[1];
74
- var _343 = __read(useState(0), 2), pointerX = _343[0], setPointerX = _343[1];
75
- var _344 = __read(useState(0), 2), pointerY = _344[0], setPointerY = _344[1];
76
- var _345 = __read(useState(), 2), pointerItem = _345[0], setPointerItem = _345[1];
77
- var _346 = __read(useState(0), 2), pointerY2 = _346[0], setPointerY2 = _346[1];
78
- var _347 = __read(useState(), 2), pointerItem2 = _347[0], setPointerItem2 = _347[1];
79
- var _348 = __read(useState(0), 2), pointerY3 = _348[0], setPointerY3 = _348[1];
80
- var _349 = __read(useState(), 2), pointerItem3 = _349[0], setPointerItem3 = _349[1];
81
- var _350 = __read(useState(0), 2), pointerY4 = _350[0], setPointerY4 = _350[1];
82
- var _351 = __read(useState(), 2), pointerItem4 = _351[0], setPointerItem4 = _351[1];
83
- var _352 = __read(useState(0), 2), pointerY5 = _352[0], setPointerY5 = _352[1];
84
- var _353 = __read(useState([]), 2), pointerYsForDataSet = _353[0], setPointerYsForDataSet = _353[1];
85
- var _354 = __read(useState(), 2), pointerItem5 = _354[0], setPointerItem5 = _354[1];
86
- var _355 = __read(useState(0), 2), secondaryPointerY = _355[0], setSecondaryPointerY = _355[1];
87
- var _356 = __read(useState(), 2), secondaryPointerItem = _356[0], setSecondaryPointerItem = _356[1];
88
- var _357 = __read(useState([]), 2), pointerItemsForSet = _357[0], setPointerItemsForSet = _357[1];
89
- var _358 = __read(useState([]), 2), secondaryPointerItemsForSet = _358[0], setSecondaryPointerItemsForSet = _358[1];
90
- var _359 = __read(useState(0), 2), responderStartTime = _359[0], setResponderStartTime = _359[1];
91
- var _360 = __read(useState(false), 2), responderActive = _360[0], setResponderActive = _360[1];
92
- var _361 = __read(useState(''), 2), points = _361[0], setPoints = _361[1];
93
- var _362 = __read(useState(''), 2), points2 = _362[0], setPoints2 = _362[1];
94
- var _363 = __read(useState(''), 2), points3 = _363[0], setPoints3 = _363[1];
95
- var _364 = __read(useState(''), 2), points4 = _364[0], setPoints4 = _364[1];
96
- var _365 = __read(useState(''), 2), points5 = _365[0], setPoints5 = _365[1];
97
- var _366 = __read(useState(''), 2), secondaryPoints = _366[0], setSecondaryPoints = _366[1];
98
- var _367 = __read(useState(''), 2), fillPoints = _367[0], setFillPoints = _367[1];
99
- var _368 = __read(useState(''), 2), fillPoints2 = _368[0], setFillPoints2 = _368[1];
100
- var _369 = __read(useState(''), 2), fillPoints3 = _369[0], setFillPoints3 = _369[1];
101
- var _370 = __read(useState(''), 2), fillPoints4 = _370[0], setFillPoints4 = _370[1];
102
- var _371 = __read(useState(''), 2), fillPoints5 = _371[0], setFillPoints5 = _371[1];
103
- var _372 = __read(useState(''), 2), secondaryFillPoints = _372[0], setSecondaryFillPoints = _372[1];
104
- var _373 = __read(useState([]), 2), pointsFromSet = _373[0], setPointsFromSet = _373[1];
105
- var _374 = __read(useState([]), 2), fillPointsFromSet = _374[0], setFillPointsFromSet = _374[1];
106
- var _375 = __read(useState([]), 2), arrowPointsFromSet = _375[0], setArrowPointsFromSet = _375[1];
107
- var _376 = __read(useState((_o = props.focusedDataPointIndex) !== null && _o !== void 0 ? _o : -1), 2), selectedIndex = _376[0], setSelectedIndex = _376[1];
66
+ var _345 = __read(useState(0), 2), scrollX = _345[0], setScrollX = _345[1];
67
+ var _346 = __read(useState(''), 2), arrow1Points = _346[0], setArrow1Points = _346[1];
68
+ var _347 = __read(useState(''), 2), arrow2Points = _347[0], setArrow2Points = _347[1];
69
+ var _348 = __read(useState(''), 2), arrow3Points = _348[0], setArrow3Points = _348[1];
70
+ var _349 = __read(useState(''), 2), arrow4Points = _349[0], setArrow4Points = _349[1];
71
+ var _350 = __read(useState(''), 2), arrow5Points = _350[0], setArrow5Points = _350[1];
72
+ var _351 = __read(useState(''), 2), secondaryArrowPoints = _351[0], setSecondaryArrowPoints = _351[1];
73
+ var _352 = __read(useState(-1), 2), pointerIndex = _352[0], setPointerIndex = _352[1];
74
+ var _353 = __read(useState(0), 2), pointerX = _353[0], setPointerX = _353[1];
75
+ var _354 = __read(useState(0), 2), pointerY = _354[0], setPointerY = _354[1];
76
+ var _355 = __read(useState(), 2), pointerItem = _355[0], setPointerItem = _355[1];
77
+ var _356 = __read(useState(0), 2), pointerY2 = _356[0], setPointerY2 = _356[1];
78
+ var _357 = __read(useState(), 2), pointerItem2 = _357[0], setPointerItem2 = _357[1];
79
+ var _358 = __read(useState(0), 2), pointerY3 = _358[0], setPointerY3 = _358[1];
80
+ var _359 = __read(useState(), 2), pointerItem3 = _359[0], setPointerItem3 = _359[1];
81
+ var _360 = __read(useState(0), 2), pointerY4 = _360[0], setPointerY4 = _360[1];
82
+ var _361 = __read(useState(), 2), pointerItem4 = _361[0], setPointerItem4 = _361[1];
83
+ var _362 = __read(useState(0), 2), pointerY5 = _362[0], setPointerY5 = _362[1];
84
+ var _363 = __read(useState([]), 2), pointerYsForDataSet = _363[0], setPointerYsForDataSet = _363[1];
85
+ var _364 = __read(useState(), 2), pointerItem5 = _364[0], setPointerItem5 = _364[1];
86
+ var _365 = __read(useState(0), 2), secondaryPointerY = _365[0], setSecondaryPointerY = _365[1];
87
+ var _366 = __read(useState(), 2), secondaryPointerItem = _366[0], setSecondaryPointerItem = _366[1];
88
+ var _367 = __read(useState([]), 2), pointerItemsForSet = _367[0], setPointerItemsForSet = _367[1];
89
+ var _368 = __read(useState([]), 2), secondaryPointerItemsForSet = _368[0], setSecondaryPointerItemsForSet = _368[1];
90
+ var _369 = __read(useState(0), 2), responderStartTime = _369[0], setResponderStartTime = _369[1];
91
+ var _370 = __read(useState(false), 2), responderActive = _370[0], setResponderActive = _370[1];
92
+ var _371 = __read(useState(''), 2), points = _371[0], setPoints = _371[1];
93
+ var _372 = __read(useState(''), 2), points2 = _372[0], setPoints2 = _372[1];
94
+ var _373 = __read(useState(''), 2), points3 = _373[0], setPoints3 = _373[1];
95
+ var _374 = __read(useState(''), 2), points4 = _374[0], setPoints4 = _374[1];
96
+ var _375 = __read(useState(''), 2), points5 = _375[0], setPoints5 = _375[1];
97
+ var _376 = __read(useState(''), 2), secondaryPoints = _376[0], setSecondaryPoints = _376[1];
98
+ var _377 = __read(useState(''), 2), fillPoints = _377[0], setFillPoints = _377[1];
99
+ var _378 = __read(useState(''), 2), fillPoints2 = _378[0], setFillPoints2 = _378[1];
100
+ var _379 = __read(useState(''), 2), fillPoints3 = _379[0], setFillPoints3 = _379[1];
101
+ var _380 = __read(useState(''), 2), fillPoints4 = _380[0], setFillPoints4 = _380[1];
102
+ var _381 = __read(useState(''), 2), fillPoints5 = _381[0], setFillPoints5 = _381[1];
103
+ var _382 = __read(useState(''), 2), secondaryFillPoints = _382[0], setSecondaryFillPoints = _382[1];
104
+ var _383 = __read(useState([]), 2), pointsFromSet = _383[0], setPointsFromSet = _383[1];
105
+ var _384 = __read(useState([]), 2), fillPointsFromSet = _384[0], setFillPointsFromSet = _384[1];
106
+ var _385 = __read(useState([]), 2), arrowPointsFromSet = _385[0], setArrowPointsFromSet = _385[1];
107
+ var _386 = __read(useState((_o = props.focusedDataPointIndex) !== null && _o !== void 0 ? _o : -1), 2), selectedIndex = _386[0], setSelectedIndex = _386[1];
108
108
  useEffect(function () {
109
109
  var _a;
110
110
  setSelectedIndex((_a = props.focusedDataPointIndex) !== null && _a !== void 0 ? _a : -1);
@@ -417,7 +417,7 @@ export var useLineChart = function (props) {
417
417
  Math, __spreadArray([], __read(mergedPrimaryDataArrays.map(function (i) { return Math.max(i.value, 0); })), false)); // find the smallest +ve number
418
418
  var showFractionalValues = (_106 = props.showFractionalValues) !== null && _106 !== void 0 ? _106 : (isFinite(valuesRange) && valuesRange <= 1);
419
419
  var roundToDigits = (_107 = props.roundToDigits) !== null && _107 !== void 0 ? _107 : (showFractionalValues ? indexOfFirstNonZeroDigit(valuesRange) + 1 : 0);
420
- var _377 = computeMaxAndMinItems(mergedPrimaryDataArrays, extrapolateMissingValues, roundToDigits, showFractionalValues, mergedPrimaryDataArraysOriginals), maxItem = _377.maxItem, minItem = _377.minItem;
420
+ var _387 = computeMaxAndMinItems(mergedPrimaryDataArrays, extrapolateMissingValues, roundToDigits, showFractionalValues, mergedPrimaryDataArraysOriginals), maxItem = _387.maxItem, minItem = _387.minItem;
421
421
  var maxValue = getMaxValue(props.maxValue, props.stepValue, noOfSections, maxItem) || 10;
422
422
  var mostNegativeValue = (_108 = props.mostNegativeValue) !== null && _108 !== void 0 ? _108 : minItem;
423
423
  var overflowTop = ((_109 = props.overflowTop) !== null && _109 !== void 0 ? _109 : props.secondaryXAxis)
@@ -437,7 +437,7 @@ export var useLineChart = function (props) {
437
437
  var secondaryRoundToDigits = (_113 = (_112 = props.secondaryYAxis) === null || _112 === void 0 ? void 0 : _112.roundToDigits) !== null && _113 !== void 0 ? _113 : (showSecondaryFractionalValues
438
438
  ? indexOfFirstNonZeroDigit(secondaryValuesRange) + 1
439
439
  : 0);
440
- var _378 = computeMaxAndMinItems(mergedSecondaryDataArrays, extrapolateMissingValues, secondaryRoundToDigits, showSecondaryFractionalValues), secondaryMaxItem = _378.maxItem, secondaryMinItem = _378.minItem;
440
+ var _388 = computeMaxAndMinItems(mergedSecondaryDataArrays, extrapolateMissingValues, secondaryRoundToDigits, showSecondaryFractionalValues), secondaryMaxItem = _388.maxItem, secondaryMinItem = _388.minItem;
441
441
  var secondaryMaxValue = (_115 = (_114 = props.secondaryYAxis) === null || _114 === void 0 ? void 0 : _114.maxValue) !== null && _115 !== void 0 ? _115 : (secondaryMaxItem || maxValue);
442
442
  var getSecondaryY = function (value) {
443
443
  return extendedContainerHeight - (value * containerHeight) / secondaryMaxValue;
@@ -500,7 +500,7 @@ export var useLineChart = function (props) {
500
500
  var endOpacity5 = (_200 = props.endOpacity5) !== null && _200 !== void 0 ? _200 : endOpacity;
501
501
  defaultArrowConfig.strokeWidth = (_202 = (_201 = dataSet === null || dataSet === void 0 ? void 0 : dataSet[0]) === null || _201 === void 0 ? void 0 : _201.thickness) !== null && _202 !== void 0 ? _202 : thickness1;
502
502
  defaultArrowConfig.strokeColor = (_204 = (_203 = dataSet === null || dataSet === void 0 ? void 0 : dataSet[0]) === null || _203 === void 0 ? void 0 : _203.color) !== null && _204 !== void 0 ? _204 : color1;
503
- var _379 = getAllArrowProperties(props, defaultArrowConfig), arrowLength1 = _379.arrowLength1, arrowWidth1 = _379.arrowWidth1, arrowStrokeWidth1 = _379.arrowStrokeWidth1, arrowStrokeColor1 = _379.arrowStrokeColor1, arrowFillColor1 = _379.arrowFillColor1, showArrowBase1 = _379.showArrowBase1, arrowLength2 = _379.arrowLength2, arrowWidth2 = _379.arrowWidth2, arrowStrokeWidth2 = _379.arrowStrokeWidth2, arrowStrokeColor2 = _379.arrowStrokeColor2, arrowFillColor2 = _379.arrowFillColor2, showArrowBase2 = _379.showArrowBase2, arrowLength3 = _379.arrowLength3, arrowWidth3 = _379.arrowWidth3, arrowStrokeWidth3 = _379.arrowStrokeWidth3, arrowStrokeColor3 = _379.arrowStrokeColor3, arrowFillColor3 = _379.arrowFillColor3, showArrowBase3 = _379.showArrowBase3, arrowLength4 = _379.arrowLength4, arrowWidth4 = _379.arrowWidth4, arrowStrokeWidth4 = _379.arrowStrokeWidth4, arrowStrokeColor4 = _379.arrowStrokeColor4, arrowFillColor4 = _379.arrowFillColor4, showArrowBase4 = _379.showArrowBase4, arrowLength5 = _379.arrowLength5, arrowWidth5 = _379.arrowWidth5, arrowStrokeWidth5 = _379.arrowStrokeWidth5, arrowStrokeColor5 = _379.arrowStrokeColor5, arrowFillColor5 = _379.arrowFillColor5, showArrowBase5 = _379.showArrowBase5, arrowLengthsFromSet = _379.arrowLengthsFromSet, arrowWidthsFromSet = _379.arrowWidthsFromSet, arrowStrokeWidthsFromSet = _379.arrowStrokeWidthsFromSet, arrowStrokeColorsFromSet = _379.arrowStrokeColorsFromSet, arrowFillColorsFromSet = _379.arrowFillColorsFromSet, showArrowBasesFromSet = _379.showArrowBasesFromSet;
503
+ var _389 = getAllArrowProperties(props, defaultArrowConfig), arrowLength1 = _389.arrowLength1, arrowWidth1 = _389.arrowWidth1, arrowStrokeWidth1 = _389.arrowStrokeWidth1, arrowStrokeColor1 = _389.arrowStrokeColor1, arrowFillColor1 = _389.arrowFillColor1, showArrowBase1 = _389.showArrowBase1, arrowLength2 = _389.arrowLength2, arrowWidth2 = _389.arrowWidth2, arrowStrokeWidth2 = _389.arrowStrokeWidth2, arrowStrokeColor2 = _389.arrowStrokeColor2, arrowFillColor2 = _389.arrowFillColor2, showArrowBase2 = _389.showArrowBase2, arrowLength3 = _389.arrowLength3, arrowWidth3 = _389.arrowWidth3, arrowStrokeWidth3 = _389.arrowStrokeWidth3, arrowStrokeColor3 = _389.arrowStrokeColor3, arrowFillColor3 = _389.arrowFillColor3, showArrowBase3 = _389.showArrowBase3, arrowLength4 = _389.arrowLength4, arrowWidth4 = _389.arrowWidth4, arrowStrokeWidth4 = _389.arrowStrokeWidth4, arrowStrokeColor4 = _389.arrowStrokeColor4, arrowFillColor4 = _389.arrowFillColor4, showArrowBase4 = _389.showArrowBase4, arrowLength5 = _389.arrowLength5, arrowWidth5 = _389.arrowWidth5, arrowStrokeWidth5 = _389.arrowStrokeWidth5, arrowStrokeColor5 = _389.arrowStrokeColor5, arrowFillColor5 = _389.arrowFillColor5, showArrowBase5 = _389.showArrowBase5, arrowLengthsFromSet = _389.arrowLengthsFromSet, arrowWidthsFromSet = _389.arrowWidthsFromSet, arrowStrokeWidthsFromSet = _389.arrowStrokeWidthsFromSet, arrowStrokeColorsFromSet = _389.arrowStrokeColorsFromSet, arrowFillColorsFromSet = _389.arrowFillColorsFromSet, showArrowBasesFromSet = _389.showArrowBasesFromSet;
504
504
  var secondaryLineConfig = {
505
505
  zIndex: (_206 = (_205 = props.secondaryLineConfig) === null || _205 === void 0 ? void 0 : _205.zIndex) !== null && _206 !== void 0 ? _206 : zIndex1,
506
506
  curved: (_208 = (_207 = props.secondaryLineConfig) === null || _207 === void 0 ? void 0 : _207.curved) !== null && _208 !== void 0 ? _208 : props.curved,
@@ -1161,9 +1161,9 @@ export var useLineChart = function (props) {
1161
1161
  var lineGradientDirection = (_319 = props.lineGradientDirection) !== null && _319 !== void 0 ? _319 : 'vertical';
1162
1162
  var lineGradientStartColor = (_320 = props.lineGradientStartColor) !== null && _320 !== void 0 ? _320 : LineDefaults.lineGradientStartColor;
1163
1163
  var lineGradientEndColor = (_321 = props.lineGradientEndColor) !== null && _321 !== void 0 ? _321 : LineDefaults.lineGradientEndColor;
1164
- var _380 = __read(useState(-1), 2), selectedLineNumber = _380[0], setSelectedLineNumber = _380[1];
1164
+ var _390 = __read(useState(-1), 2), selectedLineNumber = _390[0], setSelectedLineNumber = _390[1];
1165
1165
  var getPointerY = function (value) {
1166
- return value
1166
+ return value || value === 0
1167
1167
  ? containerHeight -
1168
1168
  (value * containerHeight) / maxValue -
1169
1169
  (pointerRadius || pointerHeight / 2) +
@@ -1387,6 +1387,24 @@ export var useLineChart = function (props) {
1387
1387
  highlightEnabled: LineDefaults.highlightEnabled,
1388
1388
  lowlightOpacity: LineDefaults.lowlightOpacity
1389
1389
  };
1390
+ var pointerItemLocal = [];
1391
+ if (pointerConfig) {
1392
+ pointerItemLocal = [
1393
+ __assign(__assign({}, pointerItem), { value: (_328 = (_327 = props.data) === null || _327 === void 0 ? void 0 : _327[pointerIndex]) === null || _328 === void 0 ? void 0 : _328.value })
1394
+ ];
1395
+ if (pointerY2 !== 0) {
1396
+ pointerItemLocal.push(__assign(__assign({}, pointerItem), { value: (_330 = (_329 = props.data2) === null || _329 === void 0 ? void 0 : _329[pointerIndex]) === null || _330 === void 0 ? void 0 : _330.value }));
1397
+ }
1398
+ if (pointerY3 !== 0) {
1399
+ pointerItemLocal.push(__assign(__assign({}, pointerItem), { value: (_332 = (_331 = props.data3) === null || _331 === void 0 ? void 0 : _331[pointerIndex]) === null || _332 === void 0 ? void 0 : _332.value }));
1400
+ }
1401
+ if (pointerY4 !== 0) {
1402
+ pointerItemLocal.push(__assign(__assign({}, pointerItem), { value: (_334 = (_333 = props.data4) === null || _333 === void 0 ? void 0 : _333[pointerIndex]) === null || _334 === void 0 ? void 0 : _334.value }));
1403
+ }
1404
+ if (pointerY5 !== 0) {
1405
+ pointerItemLocal.push(__assign(__assign({}, pointerItem), { value: (_336 = (_335 = props.data5) === null || _335 === void 0 ? void 0 : _335[pointerIndex]) === null || _336 === void 0 ? void 0 : _336.value }));
1406
+ }
1407
+ }
1390
1408
  return {
1391
1409
  curvature: curvature,
1392
1410
  curveType: curveType,
@@ -1770,7 +1788,8 @@ export var useLineChart = function (props) {
1770
1788
  renderTooltip3: renderTooltip3,
1771
1789
  renderTooltip4: renderTooltip4,
1772
1790
  renderTooltip5: renderTooltip5,
1773
- renderTooltipSecondary: renderTooltipSecondary
1791
+ renderTooltipSecondary: renderTooltipSecondary,
1792
+ pointerItemLocal: pointerItemLocal
1774
1793
  // oldPoints
1775
1794
  };
1776
1795
  };
@@ -29,6 +29,22 @@ interface IusePieChart {
29
29
  isDataShifted: boolean;
30
30
  paddingHorizontal: number;
31
31
  paddingVertical: number;
32
+ showTooltip?: boolean;
33
+ tooltipHorizontalShift: number;
34
+ tooltipVerticalShift: any;
35
+ tooltipComponent: any;
36
+ getTooltipText: any;
37
+ tooltipBackgroundColor: any;
38
+ tooltipBorderRadius: any;
39
+ tooltipWidth: any;
40
+ tooltipTextNoOfLines: any;
41
+ textColor: any;
42
+ textSize: any;
43
+ font: any;
44
+ fontWeight: any;
45
+ fontStyle: any;
46
+ tooltipSelectedIndex: number;
47
+ setTooltipSelectedIndex: any;
32
48
  }
33
49
  interface IPieChartPropsType extends PieChartPropsType {
34
50
  pro?: boolean;
@@ -16,8 +16,13 @@ var __read = (this && this.__read) || function (o, n) {
16
16
  };
17
17
  import { useEffect, useState } from 'react';
18
18
  import { getTextSizeForPieLabels } from '../utils';
19
+ import { PieTooltipDefaults } from '../utils/constants';
19
20
  export var usePieChart = function (props) {
20
21
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
22
+ var showTooltip = props.showTooltip, tooltipWidth = props.tooltipWidth, tooltipComponent = props.tooltipComponent, _w = props.tooltipDuration, tooltipDuration = _w === void 0 ? PieTooltipDefaults.tooltipDuration : _w, _x = props.tooltipVerticalShift, tooltipVerticalShift = _x === void 0 ? PieTooltipDefaults.tooltipVerticalShift : _x, _y = props.tooltipHorizontalShift, tooltipHorizontalShift = _y === void 0 ? PieTooltipDefaults.tooltipHorizontalShift : _y, _z = props.showValuesAsTooltipText, showValuesAsTooltipText = _z === void 0 ? PieTooltipDefaults.showValuesAsTooltipText : _z, _0 = props.tooltipTextNoOfLines, tooltipTextNoOfLines = _0 === void 0 ? PieTooltipDefaults.tooltipTextNoOfLines : _0, _1 = props.tooltipBackgroundColor, tooltipBackgroundColor = _1 === void 0 ? PieTooltipDefaults.tooltipBackgroundColor : _1, _2 = props.tooltipBorderRadius, tooltipBorderRadius = _2 === void 0 ? PieTooltipDefaults.tooltipBorderRadius : _2, textColor = props.textColor,
23
+ // textSize,
24
+ font = props.font, fontWeight = props.fontWeight, fontStyle = props.fontStyle;
25
+ var _3 = __read(useState(-1), 2), tooltipSelectedIndex = _3[0], setTooltipSelectedIndex = _3[1];
21
26
  var radius = (_a = props.radius) !== null && _a !== void 0 ? _a : 120;
22
27
  var extraRadius = (_b = props.extraRadius) !== null && _b !== void 0 ? _b : (props.showExternalLabels
23
28
  ? 40
@@ -25,10 +30,10 @@ export var usePieChart = function (props) {
25
30
  ? radius / 10
26
31
  : 0);
27
32
  var pi = props.semiCircle ? Math.PI / 2 : Math.PI;
28
- var _w = __read(useState((_d = props.focusedPieIndex) !== null && _d !== void 0 ? _d : -1), 2), selectedIndex = _w[0], setSelectedIndex = _w[1]; // at the start, nothing is selected
33
+ var _4 = __read(useState((_d = props.focusedPieIndex) !== null && _d !== void 0 ? _d : -1), 2), selectedIndex = _4[0], setSelectedIndex = _4[1]; // at the start, nothing is selected
29
34
  // because we're going to use a useEffect, we need startAngle and total to be state variables
30
- var _x = __read(useState((_e = props.initialAngle) !== null && _e !== void 0 ? _e : (props.semiCircle ? -pi : 0)), 2), startAngle = _x[0], setStartAngle = _x[1];
31
- var _y = __read(useState(0), 2), total = _y[0], setTotal = _y[1];
35
+ var _5 = __read(useState((_e = props.initialAngle) !== null && _e !== void 0 ? _e : (props.semiCircle ? -pi : 0)), 2), startAngle = _5[0], setStartAngle = _5[1];
36
+ var _6 = __read(useState(0), 2), total = _6[0], setTotal = _6[1];
32
37
  useEffect(function () {
33
38
  var _a;
34
39
  setSelectedIndex((_a = props.focusedPieIndex) !== null && _a !== void 0 ? _a : -1);
@@ -71,7 +76,7 @@ export var usePieChart = function (props) {
71
76
  }
72
77
  }
73
78
  }, [selectedIndex]);
74
- var pro = props.pro, data = props.data, donut = props.donut, isThreeD = props.isThreeD, semiCircle = props.semiCircle, _z = props.inwardExtraLengthForFocused, inwardExtraLengthForFocused = _z === void 0 ? 0 : _z, _0 = props.isAnimated, isAnimated = _0 === void 0 ? false : _0, edgesRadius = props.edgesRadius;
79
+ var pro = props.pro, data = props.data, donut = props.donut, isThreeD = props.isThreeD, semiCircle = props.semiCircle, _7 = props.inwardExtraLengthForFocused, inwardExtraLengthForFocused = _7 === void 0 ? 0 : _7, _8 = props.isAnimated, isAnimated = _8 === void 0 ? false : _8, edgesRadius = props.edgesRadius;
75
80
  var endAngle = (_f = props.endAngle) !== null && _f !== void 0 ? _f : startAngle + Math.PI * (semiCircle ? 1 : 2);
76
81
  var canvasWidth = radius * 2;
77
82
  var canvasHeight = isThreeD ? radius * 2.3 : radius * 2;
@@ -96,6 +101,12 @@ export var usePieChart = function (props) {
96
101
  var paddingVertical = ((_u = props.paddingVertical) !== null && _u !== void 0 ? _u : props.labelsPosition === 'onBorder')
97
102
  ? ((_v = props.textBackgroundRadius) !== null && _v !== void 0 ? _v : textSize) * 2 + 6
98
103
  : 0;
104
+ var getTooltipText = function (index) {
105
+ var _a, _b;
106
+ var item = data[index];
107
+ var tooltipText = (_b = (_a = item.tooltipText) !== null && _a !== void 0 ? _a : item.text) !== null && _b !== void 0 ? _b : (showValuesAsTooltipText ? item.value.toString() : '');
108
+ return tooltipText;
109
+ };
99
110
  return {
100
111
  radius: radius,
101
112
  extraRadius: extraRadius,
@@ -124,6 +135,22 @@ export var usePieChart = function (props) {
124
135
  tiltAngle: tiltAngle,
125
136
  isDataShifted: isDataShifted,
126
137
  paddingHorizontal: paddingHorizontal,
127
- paddingVertical: paddingVertical
138
+ paddingVertical: paddingVertical,
139
+ showTooltip: showTooltip,
140
+ tooltipHorizontalShift: tooltipHorizontalShift,
141
+ tooltipVerticalShift: tooltipVerticalShift,
142
+ tooltipComponent: tooltipComponent,
143
+ getTooltipText: getTooltipText,
144
+ tooltipBackgroundColor: tooltipBackgroundColor,
145
+ tooltipBorderRadius: tooltipBorderRadius,
146
+ tooltipWidth: tooltipWidth,
147
+ tooltipTextNoOfLines: tooltipTextNoOfLines,
148
+ textColor: textColor,
149
+ textSize: textSize,
150
+ font: font,
151
+ fontWeight: fontWeight,
152
+ fontStyle: fontStyle,
153
+ tooltipSelectedIndex: tooltipSelectedIndex,
154
+ setTooltipSelectedIndex: setTooltipSelectedIndex
128
155
  };
129
156
  };
@@ -32,8 +32,7 @@ export declare const getPieChartMainProps: (props: PieChartMainProps) => {
32
32
  tooltipBackgroundColor: import("react-native").ColorValue;
33
33
  tooltipBorderRadius: number;
34
34
  tooltipSelectedIndex: number;
35
- setTooltipSelectedIndex: import("react").Dispatch<import("react").SetStateAction<number>>;
36
- getTooltipText: (index: number) => string;
35
+ setTooltipSelectedIndex: any;
37
36
  showText: boolean;
38
37
  textColor: string;
39
38
  textSize: number;
@@ -104,4 +103,5 @@ export declare const getPieChartMainProps: (props: PieChartMainProps) => {
104
103
  font: string | undefined;
105
104
  fontWeight: string | undefined;
106
105
  fontStyle: import("react-native-svg").FontStyle | undefined;
106
+ edgesPressable: boolean | undefined;
107
107
  };
@@ -34,15 +34,15 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
34
  }
35
35
  return to.concat(ar || Array.prototype.slice.call(from));
36
36
  };
37
- import { useRef, useState } from 'react';
37
+ import { useRef } from 'react';
38
38
  import { defaultLabelLineConfig, emptyExternaLabelProperties, getTextSizeForPieLabels } from '../utils';
39
39
  import { PieTooltipDefaults } from '../utils/constants';
40
40
  export var getPieChartMainProps = function (props) {
41
41
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12;
42
- var isThreeD = props.isThreeD, isBiggerPie = props.isBiggerPie, paddingHorizontal = props.paddingHorizontal, paddingVertical = props.paddingVertical, extraRadius = props.extraRadius, showExternalLabels = props.showExternalLabels, externalLabelComponent = props.externalLabelComponent, showTooltip = props.showTooltip, tooltipWidth = props.tooltipWidth, persistTooltip = props.persistTooltip, tooltipComponent = props.tooltipComponent, _13 = props.tooltipDuration, tooltipDuration = _13 === void 0 ? PieTooltipDefaults.tooltipDuration : _13, _14 = props.tooltipVerticalShift, tooltipVerticalShift = _14 === void 0 ? PieTooltipDefaults.tooltipVerticalShift : _14, _15 = props.tooltipHorizontalShift, tooltipHorizontalShift = _15 === void 0 ? PieTooltipDefaults.tooltipHorizontalShift : _15, _16 = props.showValuesAsTooltipText, showValuesAsTooltipText = _16 === void 0 ? PieTooltipDefaults.showValuesAsTooltipText : _16, _17 = props.tooltipTextNoOfLines, tooltipTextNoOfLines = _17 === void 0 ? PieTooltipDefaults.tooltipTextNoOfLines : _17, _18 = props.tooltipBackgroundColor, tooltipBackgroundColor = _18 === void 0 ? PieTooltipDefaults.tooltipBackgroundColor : _18, _19 = props.tooltipBorderRadius, tooltipBorderRadius = _19 === void 0 ? PieTooltipDefaults.tooltipBorderRadius : _19, font = props.font, fontWeight = props.fontWeight, fontStyle = props.fontStyle;
42
+ var isThreeD = props.isThreeD, isBiggerPie = props.isBiggerPie, paddingHorizontal = props.paddingHorizontal, paddingVertical = props.paddingVertical, extraRadius = props.extraRadius, showExternalLabels = props.showExternalLabels, externalLabelComponent = props.externalLabelComponent, showTooltip = props.showTooltip, tooltipWidth = props.tooltipWidth, persistTooltip = props.persistTooltip, tooltipComponent = props.tooltipComponent, _13 = props.tooltipDuration, tooltipDuration = _13 === void 0 ? PieTooltipDefaults.tooltipDuration : _13, _14 = props.tooltipVerticalShift, tooltipVerticalShift = _14 === void 0 ? PieTooltipDefaults.tooltipVerticalShift : _14, _15 = props.tooltipHorizontalShift, tooltipHorizontalShift = _15 === void 0 ? PieTooltipDefaults.tooltipHorizontalShift : _15, _16 = props.showValuesAsTooltipText, showValuesAsTooltipText = _16 === void 0 ? PieTooltipDefaults.showValuesAsTooltipText : _16, _17 = props.tooltipTextNoOfLines, tooltipTextNoOfLines = _17 === void 0 ? PieTooltipDefaults.tooltipTextNoOfLines : _17, _18 = props.tooltipBackgroundColor, tooltipBackgroundColor = _18 === void 0 ? PieTooltipDefaults.tooltipBackgroundColor : _18, _19 = props.tooltipBorderRadius, tooltipBorderRadius = _19 === void 0 ? PieTooltipDefaults.tooltipBorderRadius : _19, font = props.font, fontWeight = props.fontWeight, fontStyle = props.fontStyle, edgesPressable = props.edgesPressable, tooltipSelectedIndex = props.tooltipSelectedIndex, setTooltipSelectedIndex = props.setTooltipSelectedIndex;
43
43
  var propData = props.data;
44
44
  var data = [];
45
- var _20 = __read(useState(-1), 2), tooltipSelectedIndex = _20[0], setTooltipSelectedIndex = _20[1];
45
+ // const [tooltipSelectedIndex, setTooltipSelectedIndex] = useState(-1)
46
46
  var minisculeDataItem = props.data.map(function (item) { return item.value; }).reduce(function (v, a) { return v + a; }) / 160000;
47
47
  var itemHasInnerComponent = false;
48
48
  if (propData) {
@@ -228,6 +228,7 @@ export var getPieChartMainProps = function (props) {
228
228
  coordinates[index] = { sx: sx, sy: sy, ax: ax, ay: ay };
229
229
  });
230
230
  var timer = useRef(setTimeout(function () { })); // timer for tooltip
231
+ console.log('showTooltip----->', showTooltip);
231
232
  var onPressed = function (item, index) {
232
233
  if (item.onPress) {
233
234
  item.onPress();
@@ -246,6 +247,7 @@ export var getPieChartMainProps = function (props) {
246
247
  }
247
248
  }
248
249
  if (showTooltip) {
250
+ console.log('tooltipSelectedIndex b4----->', tooltipSelectedIndex);
249
251
  if (tooltipSelectedIndex === index) {
250
252
  setTooltipSelectedIndex(-1);
251
253
  }
@@ -258,14 +260,9 @@ export var getPieChartMainProps = function (props) {
258
260
  }, tooltipDuration);
259
261
  }
260
262
  }
263
+ console.log('tooltipSelectedIndex after----->', tooltipSelectedIndex);
261
264
  }
262
265
  };
263
- var getTooltipText = function (index) {
264
- var _a, _b;
265
- var item = data[index];
266
- var tooltipText = (_b = (_a = item.tooltipText) !== null && _a !== void 0 ? _a : item.text) !== null && _b !== void 0 ? _b : (showValuesAsTooltipText ? item.value.toString() : '');
267
- return tooltipText;
268
- };
269
266
  return {
270
267
  isThreeD: isThreeD,
271
268
  isBiggerPie: isBiggerPie,
@@ -300,7 +297,7 @@ export var getPieChartMainProps = function (props) {
300
297
  tooltipBorderRadius: tooltipBorderRadius,
301
298
  tooltipSelectedIndex: tooltipSelectedIndex,
302
299
  setTooltipSelectedIndex: setTooltipSelectedIndex,
303
- getTooltipText: getTooltipText,
300
+ // getTooltipText,
304
301
  showText: showText,
305
302
  textColor: textColor,
306
303
  textSize: textSize,
@@ -335,6 +332,7 @@ export var getPieChartMainProps = function (props) {
335
332
  onPressed: onPressed,
336
333
  font: font,
337
334
  fontWeight: fontWeight,
338
- fontStyle: fontStyle
335
+ fontStyle: fontStyle,
336
+ edgesPressable: edgesPressable
339
337
  };
340
338
  };
@@ -73,6 +73,10 @@ export interface PieChartPropsType {
73
73
  showExternalLabels?: boolean;
74
74
  labelLineConfig?: LabelLineConfig;
75
75
  externalLabelComponent?: (item?: pieDataItem, index?: number) => any;
76
+ /**
77
+ * @description If true, the edges of the pie will be pressable, but you may need to press twice for focus- once for unfocusing the already focused pie and then for focusing the new pie
78
+ */
79
+ edgesPressable?: boolean;
76
80
  }
77
81
  export interface pieDataItem {
78
82
  value: number;
@@ -116,4 +120,8 @@ export interface PieChartMainProps extends PieChartPropsType {
116
120
  paddingHorizontal: number;
117
121
  paddingVertical: number;
118
122
  extraRadius: number;
123
+ setTouchX: Function;
124
+ setTouchY: Function;
125
+ tooltipSelectedIndex: number;
126
+ setTooltipSelectedIndex: any;
119
127
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gifted-charts-core",
3
- "version": "0.1.58",
3
+ "version": "0.1.59",
4
4
  "description": "Mathematical and logical utilities used by react-gifted-charts and react-native-gifted-charts",
5
5
  "main": "./dist/index.js",
6
6
  "files": [