gifted-charts-core 0.1.61 → 0.1.63

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.
@@ -5,7 +5,7 @@ interface Animated2dWithGradientPropsType extends BarChartPropsType {
5
5
  item: barDataItemNullSafe;
6
6
  index: number;
7
7
  barHeight: number;
8
- selectedIndex: number;
8
+ selectedIndex: number[];
9
9
  barBackgroundPattern?: () => ReactNode;
10
10
  barInnerComponent?: (item?: stackDataItem | barDataItem, index?: number) => ReactNode;
11
11
  patternId?: string;
@@ -27,7 +27,7 @@ import { getBarFrontColor, getBarWidth } from '../utils';
27
27
  export var getPropsForAnimated2DWithGradient = function (props) {
28
28
  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;
29
29
  var barBorderWidth = props.barBorderWidth, barBorderColor = props.barBorderColor, barBorderRadius = props.barBorderRadius, barMarginBottom = props.barMarginBottom, item = props.item, barBorderTopLeftRadius = props.barBorderTopLeftRadius, barBorderTopRightRadius = props.barBorderTopRightRadius, barBorderBottomLeftRadius = props.barBorderBottomLeftRadius, barBorderBottomRightRadius = props.barBorderBottomRightRadius, barWidth = props.barWidth, barInnerComponent = props.barInnerComponent, barStyle = props.barStyle, index = props.index, opacity = props.opacity, barHeight = props.barHeight, intactTopLabel = props.intactTopLabel, showValuesAsTopLabel = props.showValuesAsTopLabel, topLabelContainerStyle = props.topLabelContainerStyle, topLabelTextStyle = props.topLabelTextStyle, roundedBottom = props.roundedBottom, cappedBars = props.cappedBars, capRadius = props.capRadius, roundedTop = props.roundedTop, barBackgroundPattern = props.barBackgroundPattern, patternId = props.patternId, frontColor = props.frontColor, showGradient = props.showGradient, gradientColor = props.gradientColor, selectedIndex = props.selectedIndex, focusBarOnPress = props.focusBarOnPress, focusedBarConfig = props.focusedBarConfig, isThreeD = props.isThreeD, yAxisOffset = props.yAxisOffset;
30
- var isFocused = (focusBarOnPress !== null && focusBarOnPress !== void 0 ? focusBarOnPress : false) && selectedIndex === index;
30
+ var isFocused = (focusBarOnPress !== null && focusBarOnPress !== void 0 ? focusBarOnPress : false) && selectedIndex.includes(index);
31
31
  var itemOrPropsBarBorderRadius = (_b = (_a = item.barBorderRadius) !== null && _a !== void 0 ? _a : barBorderRadius) !== null && _b !== void 0 ? _b : 0;
32
32
  var localBarBorderRadius = (isFocused !== null && isFocused !== void 0 ? isFocused : false)
33
33
  ? (_c = focusedBarConfig === null || focusedBarConfig === void 0 ? void 0 : focusedBarConfig.borderRadius) !== null && _c !== void 0 ? _c : itemOrPropsBarBorderRadius
@@ -77,8 +77,8 @@ export declare const useBarChart: (props: extendedBarChartPropsType) => {
77
77
  barBorderColor: import("react-native").ColorValue;
78
78
  barInnerComponent: ((item?: stackDataItem | barDataItem, index?: number) => import("react").ReactNode) | undefined;
79
79
  xAxisTextNumberOfLines: number;
80
- selectedIndex: number;
81
- setSelectedIndex: import("react").Dispatch<import("react").SetStateAction<number>>;
80
+ selectedIndex: number[];
81
+ setSelectedIndex: import("react").Dispatch<import("react").SetStateAction<number[]>>;
82
82
  isAnimated: boolean;
83
83
  animationDuration: number;
84
84
  side: string;
@@ -171,8 +171,8 @@ export declare const useBarChart: (props: extendedBarChartPropsType) => {
171
171
  leftShiftForTooltip: number;
172
172
  autoCenterTooltip: boolean | undefined;
173
173
  initialSpacing: number;
174
- selectedIndex: number;
175
- setSelectedIndex: import("react").Dispatch<import("react").SetStateAction<number>>;
174
+ selectedIndex: number[];
175
+ setSelectedIndex: import("react").Dispatch<import("react").SetStateAction<number[]>>;
176
176
  activeOpacity: number;
177
177
  noOfSectionsBelowXAxis: number;
178
178
  leftShiftForLastIndexTooltip: number;
@@ -183,7 +183,7 @@ export declare const useBarChart: (props: extendedBarChartPropsType) => {
183
183
  pointerConfig: import("../utils/types").Pointer | undefined;
184
184
  yAxisExtraHeightAtTop: number;
185
185
  yAxisOffset: number;
186
- focusedBarIndex: number | undefined;
186
+ focusedBarIndex: number | number[] | undefined;
187
187
  stepHeight: number;
188
188
  stepValue: number;
189
189
  negativeStepHeight: number;
@@ -197,7 +197,7 @@ export declare const useBarChart: (props: extendedBarChartPropsType) => {
197
197
  secondaryNoOfSectionsBelowXAxis: number;
198
198
  barMarginBottom: any;
199
199
  highlightEnabled: boolean;
200
- highlightedBarIndex: number;
200
+ highlightedBarIndex: number | number[];
201
201
  lowlightOpacity: number;
202
202
  stackHighlightEnabled: boolean;
203
203
  };
@@ -34,11 +34,19 @@ export var useBarChart = function (props) {
34
34
  var _65 = __read(useState(''), 2), points = _65[0], setPoints = _65[1];
35
35
  var _66 = __read(useState(''), 2), points2 = _66[0], setPoints2 = _66[1];
36
36
  var _67 = __read(useState(''), 2), arrowPoints = _67[0], setArrowPoints = _67[1];
37
- var _68 = __read(useState(focusedBarIndex !== null && focusedBarIndex !== void 0 ? focusedBarIndex : -1), 2), selectedIndex = _68[0], setSelectedIndex = _68[1];
37
+ var _68 = __read(useState(function () {
38
+ if (Array.isArray(focusedBarIndex)) {
39
+ return focusedBarIndex;
40
+ }
41
+ return [focusedBarIndex !== null && focusedBarIndex !== void 0 ? focusedBarIndex : -1];
42
+ }), 2), selectedIndex = _68[0], setSelectedIndex = _68[1];
38
43
  var _69 = __read(useState((_a = props.highlightedStackIndex) !== null && _a !== void 0 ? _a : -1), 2), selectedStackIndex = _69[0], setSelectedStackIndex = _69[1];
39
44
  var showLine = (_b = props.showLine) !== null && _b !== void 0 ? _b : BarDefaults.showLine;
40
45
  useEffect(function () {
41
- setSelectedIndex(focusedBarIndex !== null && focusedBarIndex !== void 0 ? focusedBarIndex : -1);
46
+ var newIndex = Array.isArray(focusedBarIndex)
47
+ ? focusedBarIndex
48
+ : [focusedBarIndex !== null && focusedBarIndex !== void 0 ? focusedBarIndex : -1];
49
+ setSelectedIndex(newIndex);
42
50
  }, [focusedBarIndex]);
43
51
  useEffect(function () {
44
52
  var _a;
@@ -639,7 +647,8 @@ export var useBarChart = function (props) {
639
647
  customBackground: props.customBackground,
640
648
  highlightEnabled: highlightEnabled,
641
649
  lowlightOpacity: lowlightOpacity,
642
- xAxisLabelsAtBottom: xAxisLabelsAtBottom
650
+ xAxisLabelsAtBottom: xAxisLabelsAtBottom,
651
+ onScrollEndDrag: props.onScrollEndDrag
643
652
  };
644
653
  return {
645
654
  lineConfig: lineConfig,
@@ -139,12 +139,15 @@ export interface StackedBarChartPropsType {
139
139
  secondaryNoOfSectionsBelowXAxis: number;
140
140
  containerHeightIncludingBelowXAxis: number;
141
141
  highlightEnabled: boolean;
142
- highlightedBarIndex: number;
142
+ highlightedBarIndex: number | number[];
143
143
  lowlightOpacity: number;
144
144
  stackHighlightEnabled?: boolean;
145
145
  selectedStackIndex: number;
146
146
  setSelectedStackIndex: Function;
147
147
  onBackgroundPress?: Function;
148
+ bounces?: boolean;
149
+ overScrollMode?: 'auto' | 'always' | 'never';
150
+ onScrollEndDrag?: (event: any, direction: any) => void;
148
151
  }
149
152
  export interface StackedBarChartPropsTypeForWeb extends StackedBarChartPropsType {
150
153
  onContextMenu?: Function;
@@ -324,11 +327,14 @@ export interface BarChartPropsType {
324
327
  endReachedOffset?: number;
325
328
  onScroll?: Function;
326
329
  onMomentumScrollEnd?: Function;
330
+ bounces?: boolean;
331
+ overScrollMode?: 'auto' | 'always' | 'never';
332
+ onScrollEndDrag?: (event: any, direction: any) => void;
327
333
  focusBarOnPress?: boolean;
328
334
  focusedBarConfig?: FocusedBarConfig;
329
- focusedBarIndex?: number;
335
+ focusedBarIndex?: number | number[];
330
336
  highlightEnabled?: boolean;
331
- highlightedBarIndex?: number;
337
+ highlightedBarIndex?: number | number[];
332
338
  lowlightOpacity?: number;
333
339
  stackHighlightEnabled?: boolean;
334
340
  highlightedStackIndex?: number;
@@ -599,14 +605,14 @@ export interface RenderBarsPropsType {
599
605
  autoCenterTooltip?: boolean;
600
606
  leftShiftForLastIndexTooltip: number;
601
607
  initialSpacing: number;
602
- selectedIndex: number;
608
+ selectedIndex: number[];
603
609
  setSelectedIndex: Function;
604
610
  barStyle?: object;
605
611
  xAxisThickness?: number;
606
612
  secondaryXAxis?: XAxisConfig;
607
613
  pointerConfig?: Pointer;
608
614
  focusBarOnPress?: boolean;
609
- focusedBarIndex?: number;
615
+ focusedBarIndex?: number | number[];
610
616
  noOfSectionsBelowXAxis?: number;
611
617
  yAxisOffset: number;
612
618
  stepHeight: number;
@@ -619,7 +625,7 @@ export interface RenderBarsPropsType {
619
625
  secondaryNegativeStepValue: number;
620
626
  secondaryNoOfSectionsBelowXAxis: number;
621
627
  highlightEnabled: boolean;
622
- highlightedBarIndex: number;
628
+ highlightedBarIndex: number | number[];
623
629
  lowlightOpacity: number;
624
630
  }
625
631
  export interface RenderBarsPropsTypeForWeb extends RenderBarsPropsType {
@@ -654,7 +660,7 @@ export interface animatedBarPropTypes {
654
660
  barStyle?: object;
655
661
  item: barDataItem;
656
662
  index: number;
657
- selectedIndex: number;
663
+ selectedIndex: number[];
658
664
  focusBarOnPress?: boolean;
659
665
  focusedBarConfig?: FocusedBarConfig;
660
666
  }
@@ -398,7 +398,7 @@ export var useLineChartBiColor = function (props) {
398
398
  scrollAnimation: scrollAnimation,
399
399
  scrollEventThrottle: scrollEventThrottle,
400
400
  indicatorColor: props.indicatorColor,
401
- selectedIndex: selectedIndex,
401
+ selectedIndex: [selectedIndex],
402
402
  setSelectedIndex: setSelectedIndex,
403
403
  spacing: spacing,
404
404
  showLine: false,
@@ -438,7 +438,8 @@ export var useLineChartBiColor = function (props) {
438
438
  extraWidthDueToDataPoint: extraWidthDueToDataPoint,
439
439
  highlightEnabled: LineDefaults.highlightEnabled,
440
440
  lowlightOpacity: LineDefaults.lowlightOpacity,
441
- xAxisLabelsAtBottom: false
441
+ xAxisLabelsAtBottom: false,
442
+ onScrollEndDrag: props.onScrollEndDrag
442
443
  };
443
444
  return {
444
445
  toggle: toggle,
@@ -1345,7 +1345,7 @@ export var useLineChart = function (props) {
1345
1345
  scrollAnimation: scrollAnimation,
1346
1346
  scrollEventThrottle: scrollEventThrottle,
1347
1347
  indicatorColor: props.indicatorColor,
1348
- selectedIndex: selectedIndex,
1348
+ selectedIndex: [selectedIndex],
1349
1349
  setSelectedIndex: setSelectedIndex,
1350
1350
  spacing: spacing,
1351
1351
  showLine: false,
@@ -1389,7 +1389,8 @@ export var useLineChart = function (props) {
1389
1389
  onlyPositive: onlyPositive,
1390
1390
  highlightEnabled: LineDefaults.highlightEnabled,
1391
1391
  lowlightOpacity: LineDefaults.lowlightOpacity,
1392
- xAxisLabelsAtBottom: xAxisLabelsAtBottom
1392
+ xAxisLabelsAtBottom: xAxisLabelsAtBottom,
1393
+ onScrollEndDrag: props.onScrollEndDrag
1393
1394
  };
1394
1395
  var pointerItemLocal = [];
1395
1396
  if (pointerConfig) {
@@ -314,6 +314,9 @@ export interface LineChartPropsType {
314
314
  endReachedOffset?: number;
315
315
  onScroll?: Function;
316
316
  onMomentumScrollEnd?: Function;
317
+ bounces?: boolean;
318
+ overScrollMode?: 'auto' | 'always' | 'never';
319
+ onScrollEndDrag?: (event: any, direction: any) => void;
317
320
  showDataPointsForMissingValues?: boolean;
318
321
  interpolateMissingValues?: boolean;
319
322
  extrapolateMissingValues?: boolean;
@@ -580,6 +583,9 @@ export interface LineChartBicolorPropsType {
580
583
  formatYLabel?: (label: string) => string;
581
584
  onScroll?: Function;
582
585
  endReachedOffset?: number;
586
+ bounces?: boolean;
587
+ overScrollMode?: 'auto' | 'always' | 'never';
588
+ onScrollEndDrag?: (event: any, direction: any) => void;
583
589
  parentWidth?: number;
584
590
  }
585
591
  export interface LineChartPropsTypeForWeb extends LineChartPropsType {
@@ -20,7 +20,7 @@ import { getBarSideColor, getBarTopColor } from '../../utils';
20
20
  export var useAnimatedThreeDBar = function (props) {
21
21
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
22
22
  var focusBarOnPress = props.focusBarOnPress, index = props.index, selectedIndex = props.selectedIndex, focusedBarConfig = props.focusedBarConfig, item = props.item;
23
- var isFocused = focusBarOnPress && index === selectedIndex;
23
+ var isFocused = focusBarOnPress && selectedIndex.includes(index);
24
24
  var localFrontColor = props.frontColor || BarDefaults.threeDBarFrontColor;
25
25
  var localGradientColor = props.gradientColor || BarDefaults.threeDBarGradientColor;
26
26
  var localSideColor = props.sideColor || BarDefaults.threeDBarSideColor;
@@ -147,7 +147,7 @@ export interface LineInBarChartPropsType {
147
147
  labelsExtraHeight: number;
148
148
  scrollEventThrottle: number;
149
149
  xAxisLabelsVerticalShift: number;
150
- selectedIndex: number;
150
+ selectedIndex: number[];
151
151
  yAxisOffset: number;
152
152
  strokeDashArray: number[];
153
153
  highlightEnabled: boolean;
@@ -291,7 +291,7 @@ export interface BarAndLineChartsWrapperTypes {
291
291
  scrollToIndex: number | undefined;
292
292
  scrollAnimation: boolean;
293
293
  indicatorColor: 'black' | 'default' | 'white' | undefined;
294
- selectedIndex: number;
294
+ selectedIndex: number[];
295
295
  setSelectedIndex: any;
296
296
  spacing: number;
297
297
  showLine: boolean;
@@ -341,6 +341,7 @@ export interface BarAndLineChartsWrapperTypes {
341
341
  highlightEnabled: boolean;
342
342
  lowlightOpacity: number;
343
343
  xAxisLabelsAtBottom: boolean;
344
+ onScrollEndDrag?: (event: any, direction: any) => void;
344
345
  }
345
346
  export interface HorizontalStripConfig {
346
347
  thickness?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gifted-charts-core",
3
- "version": "0.1.61",
3
+ "version": "0.1.63",
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": [
@@ -15,10 +15,10 @@
15
15
  "@testing-library/jest-dom": "^6.4.8",
16
16
  "@testing-library/react": "^16.0.0",
17
17
  "@testing-library/user-event": "^14.5.2",
18
- "@typescript-eslint/eslint-plugin": "^7.17.0",
19
18
  "@types/react": "^18.3.3",
20
19
  "@types/react-dom": "^18.3.0",
21
20
  "@types/react-native": "^0.73.0",
21
+ "@typescript-eslint/eslint-plugin": "^7.17.0",
22
22
  "eslint": "^8.56.0",
23
23
  "eslint-config-love": "^62.0.0",
24
24
  "eslint-plugin-import": "^2.29.1",
@@ -29,7 +29,8 @@
29
29
  },
30
30
  "peerDependencies": {
31
31
  "react": "*",
32
- "react-native": "*"
32
+ "react-native": "*",
33
+ "react-native-svg": "*"
33
34
  },
34
35
  "eslintConfig": {
35
36
  "extends": [