react-native-chart-kit 7.0.0-next.2 → 7.0.0-next.3
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 +89 -522
- package/dist/charts/line/LineChart.d.ts +3 -3
- package/dist/charts/line/LineChart.js +1 -1
- package/dist/v2/react-native/charts/bar/BarChart.d.ts +1 -1
- package/dist/v2/react-native/charts/bar/BarChart.d.ts.map +1 -1
- package/dist/v2/react-native/charts/bar/BarChart.js +1 -0
- package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts +3 -3
- package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts.map +1 -1
- package/dist/v2/react-native/charts/bar/BarChartSurface.js +53 -45
- package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts +1 -1
- package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts.map +1 -1
- package/dist/v2/react-native/charts/bar/tooltip.d.ts +1 -1
- package/dist/v2/react-native/charts/bar/tooltip.d.ts.map +1 -1
- package/dist/v2/react-native/charts/bar/tooltip.js +5 -2
- package/dist/v2/react-native/charts/bar/tooltipModel.d.ts.map +1 -1
- package/dist/v2/react-native/charts/bar/tooltipModel.js +14 -8
- package/dist/v2/react-native/charts/bar/types.d.ts +1 -1
- package/dist/v2/react-native/charts/bar/types.d.ts.map +1 -1
- package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts +2 -2
- package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts.map +1 -1
- package/dist/v2/react-native/charts/contribution/ContributionGraph.js +104 -10
- package/dist/v2/react-native/charts/contribution/interaction.d.ts +23 -0
- package/dist/v2/react-native/charts/contribution/interaction.d.ts.map +1 -0
- package/dist/v2/react-native/charts/contribution/interaction.js +75 -0
- package/dist/v2/react-native/charts/contribution/types.d.ts +21 -0
- package/dist/v2/react-native/charts/contribution/types.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/AreaChart.d.ts +1 -1
- package/dist/v2/react-native/charts/line/AreaChart.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/ChartSurface.d.ts +1 -1
- package/dist/v2/react-native/charts/line/ChartSurface.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/LineChart.d.ts +1 -1
- package/dist/v2/react-native/charts/line/LineChart.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/StickyYAxis.d.ts +1 -1
- package/dist/v2/react-native/charts/line/StickyYAxis.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/defaultTooltip.d.ts +1 -1
- package/dist/v2/react-native/charts/line/defaultTooltip.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/legend.d.ts +1 -1
- package/dist/v2/react-native/charts/line/legend.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/markers.d.ts +1 -1
- package/dist/v2/react-native/charts/line/markers.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/rangeSelector.d.ts +1 -1
- package/dist/v2/react-native/charts/line/rangeSelector.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/rangeSelector.js +27 -18
- package/dist/v2/react-native/charts/line/responders.d.ts.map +1 -1
- package/dist/v2/react-native/charts/line/responders.js +3 -0
- package/dist/v2/react-native/charts/line/thresholdRendering.d.ts +3 -3
- package/dist/v2/react-native/charts/line/thresholdRendering.d.ts.map +1 -1
- package/dist/v2/react-native/charts/pie/PieChart.d.ts +2 -2
- package/dist/v2/react-native/charts/pie/PieChart.d.ts.map +1 -1
- package/dist/v2/react-native/charts/pie/PieChart.js +12 -3
- package/dist/v2/react-native/charts/pie/slices.d.ts +1 -1
- package/dist/v2/react-native/charts/pie/slices.d.ts.map +1 -1
- package/dist/v2/react-native/charts/progress/ProgressChart.d.ts +2 -2
- package/dist/v2/react-native/charts/progress/ProgressChart.d.ts.map +1 -1
- package/dist/v2/react-native/index.d.ts +1 -1
- package/dist/v2/react-native/index.d.ts.map +1 -1
- package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts +1 -1
- package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts.map +1 -1
- package/dist/v2/react-native/theme/presets.js +39 -39
- package/dist/v2/react-native/theme/provider.d.ts +1 -1
- package/dist/v2/react-native/theme/provider.d.ts.map +1 -1
- package/dist/v2/react-native/viewport/pinchZoom.d.ts +1 -1
- package/dist/v2/react-native/viewport/pinchZoom.d.ts.map +1 -1
- package/dist/v2/svg-renderer/defs.d.ts +2 -2
- package/dist/v2/svg-renderer/defs.d.ts.map +1 -1
- package/dist/v2/svg-renderer/layers.d.ts +1 -1
- package/dist/v2/svg-renderer/layers.d.ts.map +1 -1
- package/dist/v2/svg-renderer/primitives.d.ts +9 -9
- package/dist/v2/svg-renderer/primitives.d.ts.map +1 -1
- package/dist/v2/svg-renderer/symbols.d.ts +1 -1
- package/dist/v2/svg-renderer/symbols.d.ts.map +1 -1
- package/package.json +20 -5
- package/dist/v2/react-native/charts/line/viewportInteractionConfig.d.ts +0 -3
- package/dist/v2/react-native/charts/line/viewportInteractionConfig.d.ts.map +0 -1
- package/dist/v2/react-native/charts/line/viewportInteractionConfig.js +0 -1
- package/dist/v2/react-native/viewport/panResponder.d.ts +0 -14
- package/dist/v2/react-native/viewport/panResponder.d.ts.map +0 -1
- package/dist/v2/react-native/viewport/panResponder.js +0 -115
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react-hooks/refs -- PanResponder stores callbacks during creation; refs keep gesture state outside render. */
|
|
2
|
-
import { useMemo, useRef } from "react";
|
|
3
|
-
import { PanResponder } from "react-native";
|
|
4
|
-
import { resolveChartViewportWindowFromPanDelta } from "../../core/index";
|
|
5
|
-
import { getChartViewportPanDeltaPoints, resolveChartViewportInteractionConfig } from "./config";
|
|
6
|
-
const isSameViewportWindow = (first, second) => first.startIndex === second.startIndex && first.endIndex === second.endIndex;
|
|
7
|
-
const emitViewportChange = ({ nextWindow, onViewportChange }) => {
|
|
8
|
-
onViewportChange?.({
|
|
9
|
-
viewport: {
|
|
10
|
-
startIndex: nextWindow.startIndex,
|
|
11
|
-
endIndex: nextWindow.endIndex
|
|
12
|
-
},
|
|
13
|
-
startIndex: nextWindow.startIndex,
|
|
14
|
-
endIndex: nextWindow.endIndex,
|
|
15
|
-
visibleCount: nextWindow.visibleCount,
|
|
16
|
-
itemCount: nextWindow.itemCount,
|
|
17
|
-
isWindowed: nextWindow.isWindowed,
|
|
18
|
-
source: "mainPlot",
|
|
19
|
-
interaction: "pan"
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
export const useChartViewportPanResponder = ({ dataLength, enabled, onPress, onViewportChange, plotBounds, preventBrowserSelection, viewportInteraction, viewportWindow }) => {
|
|
23
|
-
const panStateRef = useRef(undefined);
|
|
24
|
-
return useMemo(() => {
|
|
25
|
-
const config = resolveChartViewportInteractionConfig(viewportInteraction);
|
|
26
|
-
const canPan = enabled &&
|
|
27
|
-
config.pan &&
|
|
28
|
-
onViewportChange !== undefined &&
|
|
29
|
-
dataLength > viewportWindow.visibleCount &&
|
|
30
|
-
viewportWindow.visibleCount > 0 &&
|
|
31
|
-
plotBounds.width > 0;
|
|
32
|
-
const isEnabled = canPan || onPress !== undefined;
|
|
33
|
-
const startPan = () => {
|
|
34
|
-
panStateRef.current = {
|
|
35
|
-
didPan: false,
|
|
36
|
-
lastWindow: viewportWindow,
|
|
37
|
-
startWindow: viewportWindow
|
|
38
|
-
};
|
|
39
|
-
config.onGestureStart?.({ interaction: "pan" });
|
|
40
|
-
};
|
|
41
|
-
const updatePan = (gestureState) => {
|
|
42
|
-
const panState = panStateRef.current;
|
|
43
|
-
if (!canPan || !panState) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (Math.abs(gestureState.dx) < config.minPanDistance) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const deltaPoints = getChartViewportPanDeltaPoints({
|
|
50
|
-
currentLocationX: gestureState.dx,
|
|
51
|
-
plotWidth: plotBounds.width,
|
|
52
|
-
startLocationX: 0,
|
|
53
|
-
visibleCount: panState.startWindow.visibleCount
|
|
54
|
-
});
|
|
55
|
-
if (deltaPoints === 0) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
const nextWindow = resolveChartViewportWindowFromPanDelta({
|
|
59
|
-
currentWindow: panState.startWindow,
|
|
60
|
-
deltaPoints,
|
|
61
|
-
itemCount: dataLength
|
|
62
|
-
});
|
|
63
|
-
if (isSameViewportWindow(nextWindow, panState.lastWindow)) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
panStateRef.current = {
|
|
67
|
-
...panState,
|
|
68
|
-
didPan: true,
|
|
69
|
-
lastWindow: nextWindow
|
|
70
|
-
};
|
|
71
|
-
emitViewportChange({ nextWindow, onViewportChange });
|
|
72
|
-
};
|
|
73
|
-
const endPan = (event) => {
|
|
74
|
-
const didPan = panStateRef.current?.didPan ?? false;
|
|
75
|
-
if (panStateRef.current) {
|
|
76
|
-
panStateRef.current = undefined;
|
|
77
|
-
config.onGestureEnd?.({ interaction: "pan" });
|
|
78
|
-
}
|
|
79
|
-
if (!didPan) {
|
|
80
|
-
onPress?.(event);
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
return PanResponder.create({
|
|
84
|
-
onMoveShouldSetPanResponder: (_event, gestureState) => canPan && Math.abs(gestureState.dx) >= config.minPanDistance,
|
|
85
|
-
onPanResponderGrant: (event) => {
|
|
86
|
-
preventBrowserSelection(event);
|
|
87
|
-
if (canPan) {
|
|
88
|
-
startPan();
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
onPanResponderMove: (event, gestureState) => {
|
|
92
|
-
preventBrowserSelection(event);
|
|
93
|
-
updatePan(gestureState);
|
|
94
|
-
},
|
|
95
|
-
onPanResponderRelease: endPan,
|
|
96
|
-
onPanResponderTerminate: () => {
|
|
97
|
-
if (panStateRef.current) {
|
|
98
|
-
panStateRef.current = undefined;
|
|
99
|
-
config.onGestureEnd?.({ interaction: "pan" });
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
onShouldBlockNativeResponder: () => canPan && config.lockParentScroll,
|
|
103
|
-
onStartShouldSetPanResponder: () => isEnabled
|
|
104
|
-
});
|
|
105
|
-
}, [
|
|
106
|
-
dataLength,
|
|
107
|
-
enabled,
|
|
108
|
-
onPress,
|
|
109
|
-
onViewportChange,
|
|
110
|
-
plotBounds.width,
|
|
111
|
-
preventBrowserSelection,
|
|
112
|
-
viewportInteraction,
|
|
113
|
-
viewportWindow
|
|
114
|
-
]);
|
|
115
|
-
};
|