@ledgerhq/lumen-ui-rnative-visualization 0.1.13 → 0.1.15
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/dist/module/lib/Components/Axis/Axis.constants.js +21 -0
- package/dist/module/lib/Components/Axis/Axis.constants.js.map +1 -0
- package/dist/module/lib/Components/Axis/index.js +5 -0
- package/dist/module/lib/Components/Axis/index.js.map +1 -0
- package/dist/module/lib/Components/CartesianChart/CartesianChart.js +34 -22
- package/dist/module/lib/Components/CartesianChart/CartesianChart.js.map +1 -1
- package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.js +5 -4
- package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.js.map +1 -1
- package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.test.js +54 -0
- package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.test.js.map +1 -1
- package/dist/module/lib/Components/CartesianChart/utils.js +18 -8
- package/dist/module/lib/Components/CartesianChart/utils.js.map +1 -1
- package/dist/module/lib/Components/Line/utils.js +6 -1
- package/dist/module/lib/Components/Line/utils.js.map +1 -1
- package/dist/module/lib/Components/Line/utils.test.js +88 -0
- package/dist/module/lib/Components/Line/utils.test.js.map +1 -0
- package/dist/module/lib/Components/LineChart/LineChart.js +19 -31
- package/dist/module/lib/Components/LineChart/LineChart.js.map +1 -1
- package/dist/module/lib/Components/LineChart/LineChart.stories.js +38 -0
- package/dist/module/lib/Components/LineChart/LineChart.stories.js.map +1 -1
- package/dist/module/lib/Components/LineChart/LineChart.test.js +192 -0
- package/dist/module/lib/Components/LineChart/LineChart.test.js.map +1 -1
- package/dist/module/lib/Components/Point/Point.js +8 -2
- package/dist/module/lib/Components/Point/Point.js.map +1 -1
- package/dist/module/lib/Components/Point/constants.js +9 -0
- package/dist/module/lib/Components/Point/constants.js.map +1 -0
- package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.js +35 -0
- package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.js.map +1 -0
- package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.test.js +153 -0
- package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.test.js.map +1 -0
- package/dist/module/lib/Components/Point/pointContext/index.js +5 -0
- package/dist/module/lib/Components/Point/pointContext/index.js.map +1 -0
- package/dist/module/lib/Components/Point/pointContext/magneticPointsContext.js +10 -0
- package/dist/module/lib/Components/Point/pointContext/magneticPointsContext.js.map +1 -0
- package/dist/module/lib/Components/Point/utils.js +26 -6
- package/dist/module/lib/Components/Point/utils.js.map +1 -1
- package/dist/module/lib/Components/Point/utils.test.js +84 -2
- package/dist/module/lib/Components/Point/utils.test.js.map +1 -1
- package/dist/module/lib/Components/ReferenceLine/utils.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.js +52 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.js.map +1 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.js +81 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.js.map +1 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.test.js +340 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.test.js.map +1 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/constants.js +12 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/constants.js.map +1 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.js +166 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.js.map +1 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.test.js +253 -0
- package/dist/module/lib/Components/Scrubber/DefaultScrubberTooltip/utils.test.js.map +1 -0
- package/dist/module/lib/Components/Scrubber/Scrubber.js +40 -21
- package/dist/module/lib/Components/Scrubber/Scrubber.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/Scrubber.stories.js +80 -30
- package/dist/module/lib/Components/Scrubber/Scrubber.stories.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/Scrubber.test.js +10 -5
- package/dist/module/lib/Components/Scrubber/Scrubber.test.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/ScrubberProvider.js +81 -29
- package/dist/module/lib/Components/Scrubber/ScrubberProvider.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/utils.js +64 -0
- package/dist/module/lib/Components/Scrubber/utils.js.map +1 -1
- package/dist/module/lib/Components/Scrubber/utils.test.js +128 -1
- package/dist/module/lib/Components/Scrubber/utils.test.js.map +1 -1
- package/dist/module/lib/utils/domain/domain.js.map +1 -1
- package/dist/module/lib/utils/scales/scales.js +13 -4
- package/dist/module/lib/utils/scales/scales.js.map +1 -1
- package/dist/module/lib/utils/scales/scales.test.js +29 -0
- package/dist/module/lib/utils/scales/scales.test.js.map +1 -1
- package/dist/module/lib/utils/ticks/ticks.js +13 -3
- package/dist/module/lib/utils/ticks/ticks.js.map +1 -1
- package/dist/module/lib/utils/ticks/ticks.test.js +34 -0
- package/dist/module/lib/utils/ticks/ticks.test.js.map +1 -1
- package/dist/typescript/src/lib/Components/Axis/Axis.constants.d.ts +5 -0
- package/dist/typescript/src/lib/Components/Axis/Axis.constants.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Axis/Axis.types.d.ts +39 -0
- package/dist/typescript/src/lib/Components/Axis/Axis.types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Axis/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/Axis/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/CartesianChart.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/context/useBuildChartContext.d.ts +5 -4
- package/dist/typescript/src/lib/Components/CartesianChart/context/useBuildChartContext.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts +11 -3
- package/dist/typescript/src/lib/Components/CartesianChart/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/CartesianChart/utils.d.ts +18 -8
- package/dist/typescript/src/lib/Components/CartesianChart/utils.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Line/utils.d.ts +4 -0
- package/dist/typescript/src/lib/Components/Line/utils.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts +1 -1
- package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/LineChart/types.d.ts +10 -3
- package/dist/typescript/src/lib/Components/LineChart/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Point/Point.d.ts +1 -1
- package/dist/typescript/src/lib/Components/Point/Point.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Point/constants.d.ts +7 -0
- package/dist/typescript/src/lib/Components/Point/constants.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Point/pointContext/MagneticPointsProvider.d.ts +7 -0
- package/dist/typescript/src/lib/Components/Point/pointContext/MagneticPointsProvider.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Point/pointContext/index.d.ts +3 -0
- package/dist/typescript/src/lib/Components/Point/pointContext/index.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Point/pointContext/magneticPointsContext.d.ts +13 -0
- package/dist/typescript/src/lib/Components/Point/pointContext/magneticPointsContext.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Point/types.d.ts +7 -0
- package/dist/typescript/src/lib/Components/Point/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Point/utils.d.ts +8 -6
- package/dist/typescript/src/lib/Components/Point/utils.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/ReferenceLine/utils.d.ts +3 -2
- package/dist/typescript/src/lib/Components/ReferenceLine/utils.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.d.ts +9 -0
- package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.d.ts +12 -0
- package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/constants.d.ts +10 -0
- package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/constants.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.d.ts +69 -0
- package/dist/typescript/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.d.ts.map +1 -0
- package/dist/typescript/src/lib/Components/Scrubber/Scrubber.d.ts +14 -2
- package/dist/typescript/src/lib/Components/Scrubber/Scrubber.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/ScrubberProvider.d.ts +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/ScrubberProvider.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/index.d.ts +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/index.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/types.d.ts +116 -4
- package/dist/typescript/src/lib/Components/Scrubber/types.d.ts.map +1 -1
- package/dist/typescript/src/lib/Components/Scrubber/utils.d.ts +33 -3
- package/dist/typescript/src/lib/Components/Scrubber/utils.d.ts.map +1 -1
- package/dist/typescript/src/lib/utils/domain/domain.d.ts +5 -4
- package/dist/typescript/src/lib/utils/domain/domain.d.ts.map +1 -1
- package/dist/typescript/src/lib/utils/index.d.ts +1 -1
- package/dist/typescript/src/lib/utils/index.d.ts.map +1 -1
- package/dist/typescript/src/lib/utils/scales/scales.d.ts +11 -5
- package/dist/typescript/src/lib/utils/scales/scales.d.ts.map +1 -1
- package/dist/typescript/src/lib/utils/ticks/ticks.d.ts +13 -5
- package/dist/typescript/src/lib/utils/ticks/ticks.d.ts.map +1 -1
- package/dist/typescript/src/lib/utils/types.d.ts +3 -28
- package/dist/typescript/src/lib/utils/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/lib/Components/Axis/Axis.constants.ts +23 -0
- package/src/lib/Components/Axis/Axis.types.ts +40 -0
- package/src/lib/Components/Axis/index.ts +2 -0
- package/src/lib/Components/CartesianChart/CartesianChart.tsx +39 -24
- package/src/lib/Components/CartesianChart/context/useBuildChartContext.test.ts +56 -0
- package/src/lib/Components/CartesianChart/context/useBuildChartContext.ts +8 -8
- package/src/lib/Components/CartesianChart/types.ts +11 -3
- package/src/lib/Components/CartesianChart/utils.ts +18 -8
- package/src/lib/Components/Line/utils.test.ts +90 -0
- package/src/lib/Components/Line/utils.ts +6 -1
- package/src/lib/Components/LineChart/LineChart.stories.tsx +36 -0
- package/src/lib/Components/LineChart/LineChart.test.tsx +156 -0
- package/src/lib/Components/LineChart/LineChart.tsx +30 -40
- package/src/lib/Components/LineChart/types.ts +10 -3
- package/src/lib/Components/Point/Point.tsx +9 -3
- package/src/lib/Components/Point/constants.ts +6 -0
- package/src/lib/Components/Point/pointContext/MagneticPointsProvider.test.tsx +162 -0
- package/src/lib/Components/Point/pointContext/MagneticPointsProvider.tsx +45 -0
- package/src/lib/Components/Point/pointContext/index.ts +5 -0
- package/src/lib/Components/Point/pointContext/magneticPointsContext.ts +19 -0
- package/src/lib/Components/Point/types.ts +7 -0
- package/src/lib/Components/Point/utils.test.ts +95 -5
- package/src/lib/Components/Point/utils.ts +35 -7
- package/src/lib/Components/ReferenceLine/utils.ts +4 -7
- package/src/lib/Components/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.tsx +54 -0
- package/src/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.test.tsx +259 -0
- package/src/lib/Components/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.tsx +105 -0
- package/src/lib/Components/Scrubber/DefaultScrubberTooltip/constants.ts +9 -0
- package/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.test.ts +264 -0
- package/src/lib/Components/Scrubber/DefaultScrubberTooltip/utils.ts +243 -0
- package/src/lib/Components/Scrubber/Scrubber.stories.tsx +104 -42
- package/src/lib/Components/Scrubber/Scrubber.test.tsx +7 -5
- package/src/lib/Components/Scrubber/Scrubber.tsx +47 -24
- package/src/lib/Components/Scrubber/ScrubberProvider.tsx +92 -28
- package/src/lib/Components/Scrubber/index.ts +10 -1
- package/src/lib/Components/Scrubber/types.ts +122 -4
- package/src/lib/Components/Scrubber/utils.test.ts +150 -0
- package/src/lib/Components/Scrubber/utils.ts +93 -3
- package/src/lib/utils/domain/domain.ts +6 -5
- package/src/lib/utils/index.ts +0 -2
- package/src/lib/utils/scales/scales.test.ts +19 -0
- package/src/lib/utils/scales/scales.ts +15 -9
- package/src/lib/utils/ticks/ticks.test.ts +45 -0
- package/src/lib/utils/ticks/ticks.ts +19 -9
- package/src/lib/utils/types.ts +3 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","ledgerLiveThemes","ThemeProvider","render","CartesianChart","ScrubberContextProvider","Scrubber","jsx","_jsx","sampleSeries","id","stroke","data","Wrapper","children","themes","colorScheme","activeScrubberContext","enableScrubbing","scrubberPosition","onScrubberPositionChange","undefined","renderScrubber","scrubberProps","scrubberContext","series","width","height","value","queryByTestId","toBeNull","getByTestId","toBeTruthy","hideLine","hideOverlay","queryAllByTestId","toHaveLength","getAllByTestId","showBeacons","
|
|
1
|
+
{"version":3,"names":["describe","expect","it","ledgerLiveThemes","ThemeProvider","render","CartesianChart","ScrubberContextProvider","Scrubber","jsx","_jsx","sampleSeries","id","stroke","data","Wrapper","children","themes","colorScheme","activeScrubberContext","enableScrubbing","scrubberPosition","onScrubberPositionChange","undefined","renderScrubber","scrubberProps","scrubberContext","series","width","height","value","queryByTestId","toBeNull","getByTestId","toBeTruthy","hideLine","hideOverlay","queryAllByTestId","toHaveLength","getAllByTestId","showBeacons","tooltip","items","label"],"sourceRoot":"../../../../../src","sources":["lib/Components/Scrubber/Scrubber.test.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,8 +6,11 @@ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
|
6
6
|
import Animated, { useSharedValue } from 'react-native-reanimated';
|
|
7
7
|
import { scheduleOnRN } from 'react-native-worklets';
|
|
8
8
|
import { useCartesianChartContext } from "../CartesianChart/context/index.js";
|
|
9
|
+
import { useMagneticPointsContext } from "../Point/pointContext/index.js";
|
|
9
10
|
import { ScrubberContextProvider } from "./context/index.js";
|
|
10
|
-
import { getDataIndexFromPosition } from "./utils.js";
|
|
11
|
+
import { applyMagnetisation, getDataIndexFromPosition, resolvePixelX, buildSortedMagnets } from "./utils.js";
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
const LONG_PRESS_MIN_DURATION_MS = 50;
|
|
11
14
|
|
|
12
15
|
/**
|
|
13
16
|
* Provides scrubbing interaction for a chart.
|
|
@@ -22,40 +25,83 @@ import { getDataIndexFromPosition } from "./utils.js";
|
|
|
22
25
|
* `FlatList`. The `isScrubbing` shared value gates the pan via manual activation
|
|
23
26
|
* so scroll and scrub gestures never compete.
|
|
24
27
|
*/
|
|
25
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
28
|
export function ScrubberProvider({
|
|
27
29
|
children,
|
|
28
30
|
width,
|
|
29
31
|
height,
|
|
30
32
|
enableScrubbing,
|
|
31
|
-
onScrubberPositionChange
|
|
33
|
+
onScrubberPositionChange,
|
|
34
|
+
magnetRadius = 6,
|
|
35
|
+
style
|
|
32
36
|
}) {
|
|
33
37
|
const [scrubberPosition, setScrubberPosition] = useState();
|
|
34
|
-
const lastPositionRef = useRef(undefined);
|
|
35
38
|
const {
|
|
36
39
|
getXScale,
|
|
37
40
|
getXAxisConfig,
|
|
38
41
|
dataLength
|
|
39
42
|
} = useCartesianChartContext();
|
|
40
|
-
const
|
|
43
|
+
const {
|
|
44
|
+
getMagneticPoints,
|
|
45
|
+
version
|
|
46
|
+
} = useMagneticPointsContext();
|
|
47
|
+
|
|
48
|
+
// All values touched by the gesture's JS-thread callback live in a single
|
|
49
|
+
// ref. Reading via `latest.current` keeps the callbacks reference-stable
|
|
50
|
+
// across data, scale, and prop updates, which in turn keeps `composed` and
|
|
51
|
+
// the gesture surface JSX stable so re-rendering the provider on each
|
|
52
|
+
// index change never tears down the GestureDetector or the View tree.
|
|
53
|
+
const sortedMagnets = useMemo(() => {
|
|
54
|
+
const magneticIndices = getMagneticPoints();
|
|
55
|
+
return buildSortedMagnets({
|
|
56
|
+
magneticIndices,
|
|
57
|
+
getPixelForIndex: index => resolvePixelX(index, getXScale, getXAxisConfig())
|
|
58
|
+
});
|
|
59
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
60
|
+
}, [version, getXScale, getXAxisConfig, getMagneticPoints]);
|
|
61
|
+
const latest = useRef({
|
|
62
|
+
getXScale,
|
|
63
|
+
getXAxisConfig,
|
|
64
|
+
dataLength,
|
|
65
|
+
onChange: onScrubberPositionChange,
|
|
66
|
+
lastIndex: undefined,
|
|
67
|
+
magnetRadius,
|
|
68
|
+
sortedMagnets
|
|
69
|
+
});
|
|
70
|
+
latest.current.getXScale = getXScale;
|
|
71
|
+
latest.current.getXAxisConfig = getXAxisConfig;
|
|
72
|
+
latest.current.dataLength = dataLength;
|
|
73
|
+
latest.current.onChange = onScrubberPositionChange;
|
|
74
|
+
latest.current.magnetRadius = magnetRadius;
|
|
75
|
+
latest.current.sortedMagnets = sortedMagnets;
|
|
41
76
|
const setScrubberPositionAndNotify = useCallback(index => {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
77
|
+
const ref = latest.current;
|
|
78
|
+
const clamped = index === undefined || ref.dataLength <= 0 ? undefined : Math.max(0, Math.min(index, ref.dataLength - 1));
|
|
79
|
+
if (clamped === ref.lastIndex) return;
|
|
80
|
+
ref.lastIndex = clamped;
|
|
45
81
|
setScrubberPosition(clamped);
|
|
46
|
-
|
|
47
|
-
}, [
|
|
82
|
+
ref.onChange?.(clamped);
|
|
83
|
+
}, []);
|
|
48
84
|
const handlePositionChange = useCallback(pixelX => {
|
|
49
85
|
if (pixelX === null) {
|
|
50
86
|
setScrubberPositionAndNotify(undefined);
|
|
51
87
|
return;
|
|
52
88
|
}
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const
|
|
89
|
+
const ref = latest.current;
|
|
90
|
+
const scale = ref.getXScale();
|
|
91
|
+
if (!scale || ref.dataLength <= 0) return;
|
|
92
|
+
const xAxisConfig = ref.getXAxisConfig();
|
|
93
|
+
let index = getDataIndexFromPosition(pixelX, scale, xAxisConfig, ref.dataLength);
|
|
94
|
+
if (ref.magnetRadius > 0) {
|
|
95
|
+
index = applyMagnetisation({
|
|
96
|
+
resolvedIndex: index,
|
|
97
|
+
pixelX,
|
|
98
|
+
sortedMagnets: ref.sortedMagnets,
|
|
99
|
+
magnetRadius: ref.magnetRadius
|
|
100
|
+
});
|
|
101
|
+
}
|
|
57
102
|
setScrubberPositionAndNotify(index);
|
|
58
|
-
}, [
|
|
103
|
+
}, [setScrubberPositionAndNotify]);
|
|
104
|
+
const isScrubbing = useSharedValue(false);
|
|
59
105
|
const resetScrubber = useCallback(() => {
|
|
60
106
|
'worklet';
|
|
61
107
|
|
|
@@ -63,7 +109,7 @@ export function ScrubberProvider({
|
|
|
63
109
|
scheduleOnRN(handlePositionChange, null);
|
|
64
110
|
}, [isScrubbing, handlePositionChange]);
|
|
65
111
|
const composed = useMemo(() => {
|
|
66
|
-
const longPress = Gesture.LongPress().minDuration(
|
|
112
|
+
const longPress = Gesture.LongPress().minDuration(LONG_PRESS_MIN_DURATION_MS).onStart(e => {
|
|
67
113
|
'worklet';
|
|
68
114
|
|
|
69
115
|
isScrubbing.value = true;
|
|
@@ -80,6 +126,24 @@ export function ScrubberProvider({
|
|
|
80
126
|
}).onEnd(resetScrubber).onFinalize(resetScrubber);
|
|
81
127
|
return Gesture.Simultaneous(longPress, pan);
|
|
82
128
|
}, [isScrubbing, handlePositionChange, resetScrubber]);
|
|
129
|
+
|
|
130
|
+
// Memoizing the surface lets React's element-identity bailout skip
|
|
131
|
+
// reconciling the View / GestureDetector / chart `children` subtree when
|
|
132
|
+
// only `scrubberPosition` changes. The Scrubber consumer still updates via
|
|
133
|
+
// context as expected.
|
|
134
|
+
const surface = useMemo(() => /*#__PURE__*/_jsxs(View, {
|
|
135
|
+
style: [{
|
|
136
|
+
width,
|
|
137
|
+
height
|
|
138
|
+
}, style],
|
|
139
|
+
children: [children, enableScrubbing && /*#__PURE__*/_jsx(GestureDetector, {
|
|
140
|
+
gesture: composed,
|
|
141
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
142
|
+
testID: "scrubber-gesture-overlay",
|
|
143
|
+
style: StyleSheet.absoluteFill
|
|
144
|
+
})
|
|
145
|
+
})]
|
|
146
|
+
}), [width, height, style, children, enableScrubbing, composed]);
|
|
83
147
|
const contextValue = useMemo(() => ({
|
|
84
148
|
enableScrubbing,
|
|
85
149
|
scrubberPosition,
|
|
@@ -87,19 +151,7 @@ export function ScrubberProvider({
|
|
|
87
151
|
}), [enableScrubbing, scrubberPosition, setScrubberPositionAndNotify]);
|
|
88
152
|
return /*#__PURE__*/_jsx(ScrubberContextProvider, {
|
|
89
153
|
value: contextValue,
|
|
90
|
-
children:
|
|
91
|
-
style: {
|
|
92
|
-
width,
|
|
93
|
-
height
|
|
94
|
-
},
|
|
95
|
-
children: [children, enableScrubbing && /*#__PURE__*/_jsx(GestureDetector, {
|
|
96
|
-
gesture: composed,
|
|
97
|
-
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
98
|
-
testID: "scrubber-gesture-overlay",
|
|
99
|
-
style: StyleSheet.absoluteFill
|
|
100
|
-
})
|
|
101
|
-
})]
|
|
102
|
-
})
|
|
154
|
+
children: surface
|
|
103
155
|
});
|
|
104
156
|
}
|
|
105
157
|
//# sourceMappingURL=ScrubberProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useRef","useState","StyleSheet","View","Gesture","GestureDetector","Animated","useSharedValue","scheduleOnRN","useCartesianChartContext","ScrubberContextProvider","getDataIndexFromPosition","jsx","_jsx","jsxs","_jsxs","ScrubberProvider","children","width","height","enableScrubbing","onScrubberPositionChange","
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useRef","useState","StyleSheet","View","Gesture","GestureDetector","Animated","useSharedValue","scheduleOnRN","useCartesianChartContext","useMagneticPointsContext","ScrubberContextProvider","applyMagnetisation","getDataIndexFromPosition","resolvePixelX","buildSortedMagnets","jsx","_jsx","jsxs","_jsxs","LONG_PRESS_MIN_DURATION_MS","ScrubberProvider","children","width","height","enableScrubbing","onScrubberPositionChange","magnetRadius","style","scrubberPosition","setScrubberPosition","getXScale","getXAxisConfig","dataLength","getMagneticPoints","version","sortedMagnets","magneticIndices","getPixelForIndex","index","latest","onChange","lastIndex","undefined","current","setScrubberPositionAndNotify","ref","clamped","Math","max","min","handlePositionChange","pixelX","scale","xAxisConfig","resolvedIndex","isScrubbing","resetScrubber","value","composed","longPress","LongPress","minDuration","onStart","e","x","pan","Pan","manualActivation","onTouchesMove","_","manager","activate","onUpdate","onEnd","onFinalize","Simultaneous","surface","gesture","testID","absoluteFill","contextValue"],"sourceRoot":"../../../../../src","sources":["lib/Components/Scrubber/ScrubberProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -80,4 +80,68 @@ export const resolvePixelX = (dataIndex, getXScale, axisConfig) => {
|
|
|
80
80
|
const xValue = typeof axisValue === 'number' ? axisValue : dataIndex;
|
|
81
81
|
return getPointOnScale(xValue, scale);
|
|
82
82
|
};
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Resolves each magnetic index to its pixel position and returns them sorted
|
|
86
|
+
* by `pixelX` ascending. Indices that cannot be projected are filtered out.
|
|
87
|
+
* The sorted output enables early-exit in {@link applyMagnetisation}.
|
|
88
|
+
*/
|
|
89
|
+
export const buildSortedMagnets = ({
|
|
90
|
+
magneticIndices,
|
|
91
|
+
getPixelForIndex
|
|
92
|
+
}) => {
|
|
93
|
+
if (magneticIndices.size === 0) return [];
|
|
94
|
+
const magnets = [];
|
|
95
|
+
for (const index of magneticIndices) {
|
|
96
|
+
const pixelX = getPixelForIndex(index);
|
|
97
|
+
if (pixelX !== undefined) magnets.push({
|
|
98
|
+
index,
|
|
99
|
+
pixelX
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
magnets.sort((a, b) => a.pixelX - b.pixelX);
|
|
103
|
+
return magnets;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Binary search for the magnet whose `pixelX` is closest to `pixelX`.
|
|
108
|
+
* Returns -1 when the array is empty. Favors the left neighbor on ties.
|
|
109
|
+
*/
|
|
110
|
+
export const nearestIndex = (sortedMagnets, pixelX) => {
|
|
111
|
+
if (sortedMagnets.length === 0) return -1;
|
|
112
|
+
let left = 0;
|
|
113
|
+
let right = sortedMagnets.length;
|
|
114
|
+
while (left < right) {
|
|
115
|
+
const mid = Math.floor((left + right) / 2);
|
|
116
|
+
if (sortedMagnets[mid].pixelX < pixelX) {
|
|
117
|
+
left = mid + 1;
|
|
118
|
+
} else {
|
|
119
|
+
right = mid;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (left === 0) return 0;
|
|
123
|
+
if (left === sortedMagnets.length) return left - 1;
|
|
124
|
+
const distBefore = pixelX - sortedMagnets[left - 1].pixelX;
|
|
125
|
+
const distAfter = sortedMagnets[left].pixelX - pixelX;
|
|
126
|
+
return distBefore <= distAfter ? left - 1 : left;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Given a resolved data index and the raw pixel position, checks whether any
|
|
131
|
+
* magnetic point is within `magnetRadius` pixels of `pixelX`. If so, returns
|
|
132
|
+
* the closest magnetic index; otherwise returns the original `resolvedIndex`.
|
|
133
|
+
*/
|
|
134
|
+
export const applyMagnetisation = ({
|
|
135
|
+
resolvedIndex,
|
|
136
|
+
pixelX,
|
|
137
|
+
sortedMagnets,
|
|
138
|
+
magnetRadius
|
|
139
|
+
}) => {
|
|
140
|
+
if (magnetRadius <= 0 || sortedMagnets.length === 0) return resolvedIndex;
|
|
141
|
+
const nearest = nearestIndex(sortedMagnets, pixelX);
|
|
142
|
+
if (nearest >= 0 && Math.abs(sortedMagnets[nearest].pixelX - pixelX) <= magnetRadius) {
|
|
143
|
+
return sortedMagnets[nearest].index;
|
|
144
|
+
}
|
|
145
|
+
return resolvedIndex;
|
|
146
|
+
};
|
|
83
147
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getPointOnScale","isCategoricalScale","isNumericScale","isNumberArray","arr","findClosestIndex","length","pixelX","getPixelPosition","closestIndex","closestDistance","Infinity","i","pos","undefined","distance","Math","abs","getDataIndexFromPosition","scale","axisConfig","dataLength","axisData","data","step","rangeStart","range","offset","paddingOuter","bandwidth","index","round","max","min","inverted","invert","resolvePixelY","dataIndex","seriesData","getYScale","yScale","value","resolvePixelX","getXScale","axisValue","xValue"],"sourceRoot":"../../../../../src","sources":["lib/Components/Scrubber/utils.ts"],"mappings":";;AAAA,SACEA,eAAe,EACfC,kBAAkB,EAClBC,cAAc,QACT,8BAA2B;
|
|
1
|
+
{"version":3,"names":["getPointOnScale","isCategoricalScale","isNumericScale","isNumberArray","arr","findClosestIndex","length","pixelX","getPixelPosition","closestIndex","closestDistance","Infinity","i","pos","undefined","distance","Math","abs","getDataIndexFromPosition","scale","axisConfig","dataLength","axisData","data","step","rangeStart","range","offset","paddingOuter","bandwidth","index","round","max","min","inverted","invert","resolvePixelY","dataIndex","seriesData","getYScale","yScale","value","resolvePixelX","getXScale","axisValue","xValue","buildSortedMagnets","magneticIndices","getPixelForIndex","size","magnets","push","sort","a","b","nearestIndex","sortedMagnets","left","right","mid","floor","distBefore","distAfter","applyMagnetisation","resolvedIndex","magnetRadius","nearest"],"sourceRoot":"../../../../../src","sources":["lib/Components/Scrubber/utils.ts"],"mappings":";;AAAA,SACEA,eAAe,EACfC,kBAAkB,EAClBC,cAAc,QACT,8BAA2B;AAYlC,MAAMC,aAAa,GAAIC,GAAwB,IAC7C,OAAOA,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;;AAE5B;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAGA,CACvBC,MAAc,EACdC,MAAc,EACdC,gBAAuD,KAC5C;EACX,IAAIC,YAAY,GAAG,CAAC;EACpB,IAAIC,eAAe,GAAGC,QAAQ;EAE9B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,MAAM,EAAEM,CAAC,EAAE,EAAE;IAC/B,MAAMC,GAAG,GAAGL,gBAAgB,CAACI,CAAC,CAAC;IAC/B,IAAIC,GAAG,KAAKC,SAAS,EAAE;IAEvB,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAACV,MAAM,GAAGM,GAAG,CAAC;IACvC,IAAIE,QAAQ,GAAGL,eAAe,EAAE;MAC9BA,eAAe,GAAGK,QAAQ;MAC1BN,YAAY,GAAGG,CAAC;IAClB;EACF;EAEA,OAAOH,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMS,wBAAwB,GAAGA,CACtCX,MAAc,EACdY,KAAyB,EACzBC,UAA8C,EAC9CC,UAAkB,KACP;EACX,IAAIA,UAAU,IAAI,CAAC,EAAE,OAAO,CAAC;EAE7B,IAAIpB,kBAAkB,CAACkB,KAAK,CAAC,EAAE;IAC7B,MAAMG,QAAQ,GAAGF,UAAU,EAAEG,IAAI;IACjC,IAAID,QAAQ,IAAIA,QAAQ,CAAChB,MAAM,GAAG,CAAC,IAAIH,aAAa,CAACmB,QAAQ,CAAC,EAAE;MAC9D,OAAOjB,gBAAgB,CAACgB,UAAU,EAAEd,MAAM,EAAGK,CAAC,IAC5CZ,eAAe,CAACsB,QAAQ,CAACV,CAAC,CAAC,EAAEO,KAAK,CACpC,CAAC;IACH;IACA,MAAMK,IAAI,GAAGL,KAAK,CAACK,IAAI,CAAC,CAAC;IACzB,MAAM,CAACC,UAAU,CAAC,GAAGN,KAAK,CAACO,KAAK,CAAC,CAAC;IAClC,MAAMC,MAAM,GACVF,UAAU,GAAGN,KAAK,CAACS,YAAY,CAAC,CAAC,GAAGJ,IAAI,GAAGL,KAAK,CAACU,SAAS,CAAC,CAAC,GAAG,CAAC;IAClE,MAAMC,KAAK,GAAGd,IAAI,CAACe,KAAK,CAAC,CAACxB,MAAM,GAAGoB,MAAM,IAAIH,IAAI,CAAC;IAClD,OAAOR,IAAI,CAACgB,GAAG,CAAC,CAAC,EAAEhB,IAAI,CAACiB,GAAG,CAACH,KAAK,EAAET,UAAU,GAAG,CAAC,CAAC,CAAC;EACrD;EAEA,IAAInB,cAAc,CAACiB,KAAK,CAAC,EAAE;IACzB,MAAMG,QAAQ,GAAGF,UAAU,EAAEG,IAAI;IAEjC,IAAID,QAAQ,IAAIA,QAAQ,CAAChB,MAAM,GAAG,CAAC,IAAIH,aAAa,CAACmB,QAAQ,CAAC,EAAE;MAC9D,OAAOjB,gBAAgB,CAACiB,QAAQ,CAAChB,MAAM,EAAEC,MAAM,EAAGK,CAAC,IACjDO,KAAK,CAACG,QAAQ,CAACV,CAAC,CAAC,CACnB,CAAC;IACH;IAEA,MAAMsB,QAAQ,GAAGf,KAAK,CAACgB,MAAM,CAAC5B,MAAM,CAAC;IACrC,OAAOS,IAAI,CAACgB,GAAG,CACb,CAAC,EACDhB,IAAI,CAACiB,GAAG,CAACjB,IAAI,CAACe,KAAK,CAACG,QAAkB,CAAC,EAAEb,UAAU,GAAG,CAAC,CACzD,CAAC;EACH;EAEA,OAAO,CAAC;AACV,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMe,aAAa,GAAGA,CAC3BC,SAAiB,EACjBC,UAAyC,EACzCC,SAAkD,KAC3B;EACvB,MAAMC,MAAM,GAAGD,SAAS,CAAC,CAAC;EAC1B,IAAI,CAACC,MAAM,IAAI,CAACtC,cAAc,CAACsC,MAAM,CAAC,EAAE,OAAO1B,SAAS;EACxD,IAAI,CAACwB,UAAU,EAAE,OAAOxB,SAAS;EAEjC,MAAM2B,KAAK,GAAGH,UAAU,CAACD,SAAS,CAAC;EACnC,IAAII,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK3B,SAAS,EAAE,OAAOA,SAAS;EAE3D,OAAO0B,MAAM,CAACC,KAAK,CAAC;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAC3BL,SAAiB,EACjBM,SAAkD,EAClDvB,UAA0B,KACH;EACvB,MAAMD,KAAK,GAAGwB,SAAS,CAAC,CAAC;EACzB,IAAI,CAACxB,KAAK,EAAE,OAAOL,SAAS;EAC5B,MAAM8B,SAAS,GAAGxB,UAAU,EAAEG,IAAI,GAAGc,SAAS,CAAC;EAC/C,MAAMQ,MAAM,GAAG,OAAOD,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAGP,SAAS;EACpE,OAAOrC,eAAe,CAAC6C,MAAM,EAAE1B,KAAK,CAAC;AACvC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM2B,kBAAkB,GAAGA,CAAC;EACjCC,eAAe;EACfC;AAIF,CAAC,KAAoB;EACnB,IAAID,eAAe,CAACE,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE;EAEzC,MAAMC,OAAsB,GAAG,EAAE;EAEjC,KAAK,MAAMpB,KAAK,IAAIiB,eAAe,EAAE;IACnC,MAAMxC,MAAM,GAAGyC,gBAAgB,CAAClB,KAAK,CAAC;IACtC,IAAIvB,MAAM,KAAKO,SAAS,EAAEoC,OAAO,CAACC,IAAI,CAAC;MAAErB,KAAK;MAAEvB;IAAO,CAAC,CAAC;EAC3D;EAEA2C,OAAO,CAACE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAAC9C,MAAM,GAAG+C,CAAC,CAAC/C,MAAM,CAAC;EAE3C,OAAO2C,OAAO;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMK,YAAY,GAAGA,CAC1BC,aAAqC,EACrCjD,MAAc,KACH;EACX,IAAIiD,aAAa,CAAClD,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;EAEzC,IAAImD,IAAI,GAAG,CAAC;EACZ,IAAIC,KAAK,GAAGF,aAAa,CAAClD,MAAM;EAEhC,OAAOmD,IAAI,GAAGC,KAAK,EAAE;IACnB,MAAMC,GAAG,GAAG3C,IAAI,CAAC4C,KAAK,CAAC,CAACH,IAAI,GAAGC,KAAK,IAAI,CAAC,CAAC;IAC1C,IAAIF,aAAa,CAACG,GAAG,CAAC,CAACpD,MAAM,GAAGA,MAAM,EAAE;MACtCkD,IAAI,GAAGE,GAAG,GAAG,CAAC;IAChB,CAAC,MAAM;MACLD,KAAK,GAAGC,GAAG;IACb;EACF;EAEA,IAAIF,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC;EACxB,IAAIA,IAAI,KAAKD,aAAa,CAAClD,MAAM,EAAE,OAAOmD,IAAI,GAAG,CAAC;EAElD,MAAMI,UAAU,GAAGtD,MAAM,GAAGiD,aAAa,CAACC,IAAI,GAAG,CAAC,CAAC,CAAClD,MAAM;EAC1D,MAAMuD,SAAS,GAAGN,aAAa,CAACC,IAAI,CAAC,CAAClD,MAAM,GAAGA,MAAM;EAErD,OAAOsD,UAAU,IAAIC,SAAS,GAAGL,IAAI,GAAG,CAAC,GAAGA,IAAI;AAClD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMM,kBAAkB,GAAGA,CAAC;EACjCC,aAAa;EACbzD,MAAM;EACNiD,aAAa;EACbS;AAMF,CAAC,KAAa;EACZ,IAAIA,YAAY,IAAI,CAAC,IAAIT,aAAa,CAAClD,MAAM,KAAK,CAAC,EAAE,OAAO0D,aAAa;EAEzE,MAAME,OAAO,GAAGX,YAAY,CAACC,aAAa,EAAEjD,MAAM,CAAC;EACnD,IACE2D,OAAO,IAAI,CAAC,IACZlD,IAAI,CAACC,GAAG,CAACuC,aAAa,CAACU,OAAO,CAAC,CAAC3D,MAAM,GAAGA,MAAM,CAAC,IAAI0D,YAAY,EAChE;IACA,OAAOT,aAAa,CAACU,OAAO,CAAC,CAACpC,KAAK;EACrC;EACA,OAAOkC,aAAa;AACtB,CAAC","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { describe, expect, it } from '@jest/globals';
|
|
4
4
|
import { getCategoricalScale, getNumericScale } from "../../utils/scales/scales.js";
|
|
5
|
-
import { getDataIndexFromPosition, resolvePixelX, resolvePixelY } from "./utils.js";
|
|
5
|
+
import { applyMagnetisation, buildSortedMagnets, getDataIndexFromPosition, nearestIndex, resolvePixelX, resolvePixelY } from "./utils.js";
|
|
6
6
|
describe('getDataIndexFromPosition', () => {
|
|
7
7
|
describe('with a categorical (band) scale', () => {
|
|
8
8
|
const scale = getCategoricalScale({
|
|
@@ -189,4 +189,131 @@ describe('resolvePixelY', () => {
|
|
|
189
189
|
expect(result).toBe(scale(50));
|
|
190
190
|
});
|
|
191
191
|
});
|
|
192
|
+
describe('buildSortedMagnets', () => {
|
|
193
|
+
it('returns an empty array when the set is empty', () => {
|
|
194
|
+
const result = buildSortedMagnets({
|
|
195
|
+
magneticIndices: new Set(),
|
|
196
|
+
getPixelForIndex: () => 0
|
|
197
|
+
});
|
|
198
|
+
expect(result).toEqual([]);
|
|
199
|
+
});
|
|
200
|
+
it('returns entries sorted by pixelX', () => {
|
|
201
|
+
const result = buildSortedMagnets({
|
|
202
|
+
magneticIndices: new Set([3, 1, 2]),
|
|
203
|
+
getPixelForIndex: i => i * 50
|
|
204
|
+
});
|
|
205
|
+
expect(result).toEqual([{
|
|
206
|
+
index: 1,
|
|
207
|
+
pixelX: 50
|
|
208
|
+
}, {
|
|
209
|
+
index: 2,
|
|
210
|
+
pixelX: 100
|
|
211
|
+
}, {
|
|
212
|
+
index: 3,
|
|
213
|
+
pixelX: 150
|
|
214
|
+
}]);
|
|
215
|
+
});
|
|
216
|
+
it('filters out indices where getPixelForIndex returns undefined', () => {
|
|
217
|
+
const result = buildSortedMagnets({
|
|
218
|
+
magneticIndices: new Set([0, 1, 2]),
|
|
219
|
+
getPixelForIndex: i => i === 1 ? undefined : i * 100
|
|
220
|
+
});
|
|
221
|
+
expect(result).toEqual([{
|
|
222
|
+
index: 0,
|
|
223
|
+
pixelX: 0
|
|
224
|
+
}, {
|
|
225
|
+
index: 2,
|
|
226
|
+
pixelX: 200
|
|
227
|
+
}]);
|
|
228
|
+
});
|
|
229
|
+
it('returns an empty array when all indices resolve to undefined', () => {
|
|
230
|
+
const result = buildSortedMagnets({
|
|
231
|
+
magneticIndices: new Set([0, 1]),
|
|
232
|
+
getPixelForIndex: () => undefined
|
|
233
|
+
});
|
|
234
|
+
expect(result).toEqual([]);
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
describe('nearestIndex', () => {
|
|
238
|
+
const magnets = (...pixelXs) => pixelXs.map((px, i) => ({
|
|
239
|
+
index: i,
|
|
240
|
+
pixelX: px
|
|
241
|
+
}));
|
|
242
|
+
it('returns -1 for an empty array', () => {
|
|
243
|
+
expect(nearestIndex([], 100)).toBe(-1);
|
|
244
|
+
});
|
|
245
|
+
it('returns 0 for a single-element array', () => {
|
|
246
|
+
expect(nearestIndex(magnets(200), 100)).toBe(0);
|
|
247
|
+
});
|
|
248
|
+
it('returns the index of the exact match', () => {
|
|
249
|
+
expect(nearestIndex(magnets(100, 200, 300), 200)).toBe(1);
|
|
250
|
+
});
|
|
251
|
+
it('returns the closer index when target is between two values', () => {
|
|
252
|
+
expect(nearestIndex(magnets(100, 200), 160)).toBe(1);
|
|
253
|
+
expect(nearestIndex(magnets(100, 200), 140)).toBe(0);
|
|
254
|
+
});
|
|
255
|
+
it('favors the left index when equidistant', () => {
|
|
256
|
+
expect(nearestIndex(magnets(100, 200), 150)).toBe(0);
|
|
257
|
+
});
|
|
258
|
+
it('returns the last index when target is beyond all values', () => {
|
|
259
|
+
expect(nearestIndex(magnets(100, 200), 500)).toBe(1);
|
|
260
|
+
});
|
|
261
|
+
it('returns the first index when target is before all values', () => {
|
|
262
|
+
expect(nearestIndex(magnets(100, 200), 0)).toBe(0);
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
describe('applyMagnetisation', () => {
|
|
266
|
+
const toMagnets = (...indices) => indices.map(i => ({
|
|
267
|
+
index: i,
|
|
268
|
+
pixelX: i * 100
|
|
269
|
+
}));
|
|
270
|
+
it('returns resolvedIndex when sortedMagnets is empty', () => {
|
|
271
|
+
expect(applyMagnetisation({
|
|
272
|
+
resolvedIndex: 2,
|
|
273
|
+
pixelX: 200,
|
|
274
|
+
sortedMagnets: [],
|
|
275
|
+
magnetRadius: 30
|
|
276
|
+
})).toBe(2);
|
|
277
|
+
});
|
|
278
|
+
it('returns resolvedIndex when magnetRadius is 0', () => {
|
|
279
|
+
expect(applyMagnetisation({
|
|
280
|
+
resolvedIndex: 1,
|
|
281
|
+
pixelX: 200,
|
|
282
|
+
sortedMagnets: toMagnets(2),
|
|
283
|
+
magnetRadius: 0
|
|
284
|
+
})).toBe(1);
|
|
285
|
+
});
|
|
286
|
+
it('returns resolvedIndex when nearest magnet is outside radius', () => {
|
|
287
|
+
expect(applyMagnetisation({
|
|
288
|
+
resolvedIndex: 2,
|
|
289
|
+
pixelX: 200,
|
|
290
|
+
sortedMagnets: toMagnets(0, 4),
|
|
291
|
+
magnetRadius: 30
|
|
292
|
+
})).toBe(2);
|
|
293
|
+
});
|
|
294
|
+
it('snaps to nearest magnet when within radius', () => {
|
|
295
|
+
expect(applyMagnetisation({
|
|
296
|
+
resolvedIndex: 2,
|
|
297
|
+
pixelX: 280,
|
|
298
|
+
sortedMagnets: toMagnets(3),
|
|
299
|
+
magnetRadius: 30
|
|
300
|
+
})).toBe(3);
|
|
301
|
+
});
|
|
302
|
+
it('snaps at the exact boundary of magnetRadius', () => {
|
|
303
|
+
expect(applyMagnetisation({
|
|
304
|
+
resolvedIndex: 2,
|
|
305
|
+
pixelX: 270,
|
|
306
|
+
sortedMagnets: toMagnets(3),
|
|
307
|
+
magnetRadius: 30
|
|
308
|
+
})).toBe(3);
|
|
309
|
+
});
|
|
310
|
+
it('does not snap when distance exceeds magnetRadius by 1', () => {
|
|
311
|
+
expect(applyMagnetisation({
|
|
312
|
+
resolvedIndex: 2,
|
|
313
|
+
pixelX: 269,
|
|
314
|
+
sortedMagnets: toMagnets(3),
|
|
315
|
+
magnetRadius: 30
|
|
316
|
+
})).toBe(2);
|
|
317
|
+
});
|
|
318
|
+
});
|
|
192
319
|
//# sourceMappingURL=utils.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","expect","it","getCategoricalScale","getNumericScale","getDataIndexFromPosition","resolvePixelX","resolvePixelY","scale","domain","min","max","range","padding","bandwidth","center0","undefined","toBe","center1","scaleType","axisConfig","data","getXScale","toBeUndefined","result","expected","atIndex","atAxisValue","not","getYScale"],"sourceRoot":"../../../../../src","sources":["lib/Components/Scrubber/utils.test.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["describe","expect","it","getCategoricalScale","getNumericScale","applyMagnetisation","buildSortedMagnets","getDataIndexFromPosition","nearestIndex","resolvePixelX","resolvePixelY","scale","domain","min","max","range","padding","bandwidth","center0","undefined","toBe","center1","scaleType","axisConfig","data","getXScale","toBeUndefined","result","expected","atIndex","atAxisValue","not","getYScale","magneticIndices","Set","getPixelForIndex","toEqual","i","index","pixelX","magnets","pixelXs","map","px","toMagnets","indices","resolvedIndex","sortedMagnets","magnetRadius"],"sourceRoot":"../../../../../src","sources":["lib/Components/Scrubber/utils.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["computeXDomain","series","axisConfig","axisData","data","autoBounds","length","nums","min","max","i","value","maxLen","reduce","s","Math","applyDomainOverride","domain","computeYDomain","hasValue","v","undefined","computeDataLength","domainOverride"],"sourceRoot":"../../../../../src","sources":["lib/utils/domain/domain.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["computeXDomain","series","axisConfig","axisData","data","autoBounds","length","nums","min","max","i","value","maxLen","reduce","s","Math","applyDomainOverride","domain","computeYDomain","hasValue","v","undefined","computeDataLength","domainOverride"],"sourceRoot":"../../../../../src","sources":["lib/utils/domain/domain.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,16 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
import { scaleBand, scaleLinear, scaleLog } from 'd3-scale';
|
|
4
4
|
/**
|
|
5
|
-
* Creates a numeric scale
|
|
6
|
-
*
|
|
5
|
+
* Creates a numeric scale.
|
|
6
|
+
*
|
|
7
|
+
* When `nice` is `true` (default), the domain is rounded outward to clean
|
|
8
|
+
* boundaries via d3's `.nice()` (e.g. `[4, 98]` → `[0, 100]`). Set `nice` to
|
|
9
|
+
* `false` to keep the domain exactly as provided so data fills the range
|
|
10
|
+
* boundary-to-boundary.
|
|
7
11
|
*/
|
|
8
12
|
export const getNumericScale = ({
|
|
9
13
|
scaleType,
|
|
10
14
|
domain,
|
|
11
|
-
range
|
|
15
|
+
range,
|
|
16
|
+
nice = true
|
|
12
17
|
}) => {
|
|
13
18
|
const scale = scaleType === 'log' ? scaleLog() : scaleLinear();
|
|
14
|
-
|
|
19
|
+
scale.domain([domain.min, domain.max]);
|
|
20
|
+
if (nice) {
|
|
21
|
+
scale.nice();
|
|
22
|
+
}
|
|
23
|
+
return scale.range([range.min, range.max]);
|
|
15
24
|
};
|
|
16
25
|
export const getCategoricalScale = ({
|
|
17
26
|
domain,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["scaleBand","scaleLinear","scaleLog","getNumericScale","scaleType","domain","range","scale","min","max","
|
|
1
|
+
{"version":3,"names":["scaleBand","scaleLinear","scaleLog","getNumericScale","scaleType","domain","range","nice","scale","min","max","getCategoricalScale","padding","domainArray","Array","from","length","_","i","paddingInner","paddingOuter","isBandScaleType","isCategoricalScale","bandwidth","isNumericScale","getPointOnScale","dataIndex","projectPoint","dataX","dataY","xScale","yScale","x","y"],"sourceRoot":"../../../../../src","sources":["lib/utils/scales/scales.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,UAAU;AAS3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,IAAI,GAAG;AAMT,CAAC,KAAmB;EAClB,MAAMC,KAAK,GAAGJ,SAAS,KAAK,KAAK,GAAGF,QAAQ,CAAC,CAAC,GAAGD,WAAW,CAAC,CAAC;EAC9DO,KAAK,CAACH,MAAM,CAAC,CAACA,MAAM,CAACI,GAAG,EAAEJ,MAAM,CAACK,GAAG,CAAC,CAAC;EACtC,IAAIH,IAAI,EAAE;IACRC,KAAK,CAACD,IAAI,CAAC,CAAC;EACd;EACA,OAAOC,KAAK,CAACF,KAAK,CAAC,CAACA,KAAK,CAACG,GAAG,EAAEH,KAAK,CAACI,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCN,MAAM;EACNC,KAAK;EACLM,OAAO,GAAG;AAKZ,CAAC,KAAuB;EACtB,MAAMC,WAAW,GAAGC,KAAK,CAACC,IAAI,CAC5B;IAAEC,MAAM,EAAEX,MAAM,CAACK,GAAG,GAAGL,MAAM,CAACI,GAAG,GAAG;EAAE,CAAC,EACvC,CAACQ,CAAC,EAAEC,CAAC,KAAKb,MAAM,CAACI,GAAG,GAAGS,CACzB,CAAC;EACD,OAAOlB,SAAS,CAAS,CAAC,CACvBK,MAAM,CAACQ,WAAW,CAAC,CACnBP,KAAK,CAAC,CAACA,KAAK,CAACG,GAAG,EAAEH,KAAK,CAACI,GAAG,CAAC,CAAC,CAC7BS,YAAY,CAACP,OAAO,CAAC,CACrBQ,YAAY,CAACR,OAAO,GAAG,CAAC,CAAC;AAC9B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMS,eAAe,GAC1BjB,SAAqC,IACbA,SAAS,KAAK,MAAM;;AAE9C;AACA;AACA;AACA,OAAO,MAAMkB,kBAAkB,GAC7Bd,KAAyB,IACK;EAC9B,OAAO,WAAW,IAAIA,KAAK,IAAI,OAAOA,KAAK,CAACe,SAAS,KAAK,UAAU;AACtE,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GACzBhB,KAAyB,IACC;EAC1B,OAAO,CAACc,kBAAkB,CAACd,KAAK,CAAC;AACnC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMiB,eAAe,GAAGA,CAC7BC,SAAiB,EACjBlB,KAAyB,KACd;EACX,IAAIc,kBAAkB,CAACd,KAAK,CAAC,EAAE;IAC7B,OAAO,CAACA,KAAK,CAACkB,SAAS,CAAC,IAAI,CAAC,IAAIlB,KAAK,CAACe,SAAS,CAAC,CAAC,GAAG,CAAC;EACxD;EACA,OAAOf,KAAK,CAACkB,SAAS,CAAC;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,KAAa,EACbC,KAAa,EACbC,MAA0B,EAC1BC,MAA0B,MACI;EAC9BC,CAAC,EAAEP,eAAe,CAACG,KAAK,EAAEE,MAAM,CAAC;EACjCG,CAAC,EAAER,eAAe,CAACI,KAAK,EAAEE,MAAM;AAClC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -66,6 +66,35 @@ describe('getNumericScale', () => {
|
|
|
66
66
|
expect(range[0]).toBe(20);
|
|
67
67
|
expect(range[1]).toBe(400);
|
|
68
68
|
});
|
|
69
|
+
it('rounds the domain outward when nice is true (default)', () => {
|
|
70
|
+
const scale = getNumericScale({
|
|
71
|
+
scaleType: 'linear',
|
|
72
|
+
domain: {
|
|
73
|
+
min: 0,
|
|
74
|
+
max: 3769
|
|
75
|
+
},
|
|
76
|
+
range: {
|
|
77
|
+
min: 0,
|
|
78
|
+
max: 400
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
expect(scale.domain()).toEqual([0, 4000]);
|
|
82
|
+
});
|
|
83
|
+
it('keeps the domain exact when nice is false', () => {
|
|
84
|
+
const scale = getNumericScale({
|
|
85
|
+
scaleType: 'linear',
|
|
86
|
+
domain: {
|
|
87
|
+
min: 0,
|
|
88
|
+
max: 3769
|
|
89
|
+
},
|
|
90
|
+
range: {
|
|
91
|
+
min: 0,
|
|
92
|
+
max: 400
|
|
93
|
+
},
|
|
94
|
+
nice: false
|
|
95
|
+
});
|
|
96
|
+
expect(scale.domain()).toEqual([0, 3769]);
|
|
97
|
+
});
|
|
69
98
|
});
|
|
70
99
|
describe('getCategoricalScale', () => {
|
|
71
100
|
it('should create a band scale with correct domain', () => {
|